unit U_ZXBList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, cxCheckBox; type TfrmZXBList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; CDS_PRT: TClientDataSet; ToolButton3: TToolButton; cxGridPopupMenu2: TcxGridPopupMenu; Panel1: TPanel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; MDID: TEdit; Label6: TLabel; Label8: TLabel; OrderNo: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1ShipDate: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; ComboBox2: TComboBox; Label3: TLabel; Label1: TLabel; v1Column21: TcxGridDBColumn; v1Column22: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton4: TToolButton; Label4: TLabel; ZhuoNo: TEdit; Label5: TLabel; JiTaiNo: TEdit; v1Column1: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label7: TLabel; PRTColor: TEdit; Label9: TLabel; PRTHX: TEdit; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; ADOQueryPrint: TADOQuery; v1Column15: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure WorkerChange(Sender: TObject); procedure MDIDKeyPress(Sender: TObject; var Key: Char); procedure v1Column15CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure v1Column9CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure ToolButton1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); private FInt,PFInt:Integer; canshu1,canshu2:string; FNowDate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure InitGridWsql(fsj:string); function SaveData():Boolean; { Private declarations } public { Public declarations } end; var frmZXBList: TfrmZXBList; implementation uses U_DataLink,U_RTFun,U_ZXBInPut,U_ModuleNote, U_ZDYHelp; {$R *.dfm} procedure TfrmZXBList.FormDestroy(Sender: TObject); begin frmZXBList:=nil; end; procedure TfrmZXBList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmZXBList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('检验安排',Tv1,'检验管理'); end; procedure TfrmZXBList.InitGrid(); var fsj:String; begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select AA.* from ('); sql.Add(' select A.*,C.OrderNo,B.PS,B.Qty,B.MDDate,D.PRTHX '); sql.Add(',PRTColor=isnull(D.PRTColorNo,'''')+'' ''+isnull(D.PRTColor,'''')+'' ''+isnull(D.PRTColorEng,'''')'); sql.Add(',XTDBDate=(select Top 1 Convert(varchar(10), WM.FillTime,120) from WFB_MJJY WM where WM.APID=A.MDID)'); sql.Add(',XTDBPS=(select count(MJID) from WFB_MJJY WM where WM.APID=A.MDID)'); SQL.Add(' from JYOrder_Main_MD_CJ A'); sql.Add(' inner join JYOrder_Main_MD B on A.MDID=B.MDID'); sql.Add(' inner join JYOrder_Main C on B.ORDMainId=C.MainId'); sql.Add(' left join JYOrder_Sub D on B.ORDSubId=D.SubId ) AA'); sql.Add(' where 1=1 '); fsj:=TA(ComboBox2.Items.Objects[ComboBox2.Items.IndexOf(Trim(ComboBox2.Text))]).S; sql.Add(' and AA.'+Trim(fsj)+'>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and AA.'+Trim(fsj)+'<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZXBList.InitForm(); begin FNowDate:=SGetServerDate(ADOQueryTemp); EndDate.Date:=FNowDate; BegDate.Date:=EndDate.Date-7; ReadCxGrid('检验安排',Tv1,'检验管理'); //InitGrid(); end; procedure TfrmZXBList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(DName)<>Trim(Order_Main.fieldbyname('Filler').AsString) then begin Application.MessageBox('不能操作他人的信息!','提示',0); Exit; end; try frmZXBInPut:=TfrmZXBInPut.Create(Application); with frmZXBInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('CJID').AsString); if ShowModal=1 then begin end; end; finally frmZXBInPut.Free; end; end; procedure TfrmZXBList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(DName)<>Trim(Order_Main.fieldbyname('Filler').AsString) then begin Application.MessageBox('不能操作他人的信息!','提示',0); Exit; end; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmZXBList.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Main_MD_CJ where CJId='''+Trim(Order_Main.fieldbyname('CJId').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmZXBList.TBExportClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; TcxGridToExcel('检验安排',cxGrid1); end; procedure TfrmZXBList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmZXBList.TBAddClick(Sender: TObject); begin try frmZXBInPut:=TfrmZXBInPut.Create(Application); with frmZXBInPut do begin PState:=0; FMainId:=''; if ShowModal=1 then begin end; end; finally frmZXBInPut.Free; end; end; procedure TfrmZXBList.FormShow(Sender: TObject); var i:Integer; begin InitForm(); SInitComBoxByTvColumns(ComboBox2,Tv1,999,True,True); end; procedure TfrmZXBList.cxPageControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmZXBList.ToolButton3Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='检验安排'; if ShowModal=1 then begin end; end; finally frmModuleNote.Free; end; end; procedure TfrmZXBList.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); end; procedure TfrmZXBList.InitGridWsql(fsj:string); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select AA.* from ('); sql.Add(' select A.*,C.OrderNo,B.PS,B.Qty,B.MDDate,D.PRTColor,D.PRTColorNo,D.PRTHX '); sql.Add(',XTDBDate=(select Top 1 Convert(varchar(10), WM.FillTime,120) from WFB_MJJY WM where WM.APID=A.MDID)'); sql.Add(',XTDBPS=(select count(MJID) from WFB_MJJY WM where WM.APID=A.MDID)'); SQL.Add(' from JYOrder_Main_MD_CJ A'); sql.Add(' inner join JYOrder_Main_MD B on A.MDID=B.MDID'); sql.Add(' inner join JYOrder_Main C on B.ORDMainId=C.MainId'); sql.Add(' left join JYOrder_Sub D on B.ORDSubId=D.SubId ) AA'); sql.Add(' where 1=1 '); sql.Add(fsj); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; function TfrmZXBList.SaveData():Boolean; var maxno,maxSubNo:String; begin try Result:=False; ADOQueryCmd.Connection.BeginTrans; //保存主表 if Trim(Order_Main.fieldbyname('MRID').AsString)='' then begin if GetLSNo(ADOQueryCmd,maxno,'MR','Module_Prompt_Result',4,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取工作子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_Main.fieldbyname('MRID').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select * from Module_Prompt_Result where MRId='''+Trim(Order_Main.fieldbyname('MRID').AsString)+''''); Open; end; with ADOQueryCmd do begin if Trim(Order_Main.fieldbyname('MRID').AsString)='' then begin Append; end else begin Edit; end; FieldByName('MPId').Value:=Trim(Order_Main.fieldbyname('MPId').AsString); FieldByName('MRId').Value:=Trim(maxno); FieldByName('MRStatus').Value:='已处理'; FieldByName('MRDate').Value:=SGetServerDateTime(ADOQueryTemp); if Trim(Order_Main.fieldbyname('MRId').AsString)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp); end; Post; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmZXBList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmZXBList.WorkerChange(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmZXBList.MDIDKeyPress(Sender: TObject; var Key: Char); var fsj:String; begin if Length(Trim(MDID.Text))<4 then Exit; fsj:=' and AA.MDID like '''+'%'+Trim(MDID.Text)+'%'+''''; InitGridWsql(fsj); end; procedure TfrmZXBList.v1Column15CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var Id,Id10:Integer; begin Id:=TV1.GetColumnByFieldName('YuJinagDate1').Index;// Id10:=TV1.GetColumnByFieldName('MoneyKC').Index; if Id<0 then Exit; //$008000FF 橙红色 橙色 $000D55FF $00B9EE9F 浅绿 if AViewInfo.GridRecord.Values[Id10]>0 then begin if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then begin ACanvas.Brush.Color:=clYellow; end else if AViewInfo.GridRecord.Values[Id]=null then begin // ACanvas.Brush.Color:=clWhite; end; end else begin //ACanvas.Brush.Color:=clWhite; end; end; procedure TfrmZXBList.v1Column9CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var Id,Id10:Integer; begin Id:=TV1.GetColumnByFieldName('YuJinagDate2').Index;// Id10:=TV1.GetColumnByFieldName('MoneyKC').Index; if Id<0 then Exit; //$008000FF 橙红色 橙色 $000D55FF $00B9EE9F 浅绿 if AViewInfo.GridRecord.Values[Id10]>0 then begin if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then begin ACanvas.Brush.Color:=clRed; end else if AViewInfo.GridRecord.Values[Id]=null then begin //ACanvas.Brush.Color:=clWhite; end; end else begin //ACanvas.Brush.Color:=clWhite; end; end; procedure TfrmZXBList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmZXBList.ToolButton4Click(Sender: TObject); var fPrintFile:String; begin if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\检验指示单标签.rmf' ; Order_Main.DisableControls; with Order_Main do begin First; while not eof do begin if Order_Main.FieldByName('SSel').AsBoolean=True then begin {with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD where MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+''''); Open; end; if ADOQueryTemp.FieldByName('NotPrint').AsBoolean=True then begin Order_Main.EnableControls; Application.MessageBox('不能打印《不打印》的缸条码!','提示',0); Exit; end; } if FileExists(fPrintFile) then begin with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select B.OrderNo,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ,C.PRTHX,C.PRTColorNo,C.PRTColor,GangNo=A.GangNo,A.PS,A.Qty,A.QtyUnit,A.MDID '); SQL.Add(',B.MPRTCode,B.MPRTGY,C.PRTColorEng,A.SelfGangNo'); sql.Add('from JYOrder_Main_MD A'); sql.Add('inner join JYOrder_Main B on A.OrdMainid=B.Mainid'); sql.Add(' inner join JYOrder_Sub C on A.OrdSubid=C.SubId'); sql.Add(' where A.MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+''''); Open; end; RM1.LoadFromFile(fPrintFile); //RM1.ShowReport; RM1.PrintReport; end else begin Order_Main.DisableControls; Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\检验指示单标签.rmf'),'提示',0); Exit; end; end; Next; end; end; Order_Main.EnableControls; end; procedure TfrmZXBList.OrderNoKeyPress(Sender: TObject; var Key: Char); var fsj:String; begin if Length(Trim(OrderNo.Text))<3 then Exit; fsj:=' and AA.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''; InitGridWsql(fsj); end; end.