unit U_TatWBCZList_QJCL; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit, cxCalendar, RM_System, RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxCheckBox, Vcl.Menus, dxScrollbarAnnotations, FrameDateTimeSel, cxContainer, cxTextEdit, U_SLTGDTP, cxMemo, Vcl.Imaging.jpeg, cxPC, cxProgressBar, FrameDateSel; type TfrmTatWBCZList_QJCL = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label3: TLabel; pcid: TcxTextEdit; CDS_Main: TClientDataSet; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; MovePanel2: TMovePanel; RMGridReport1: TRMGridReport; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; TBdel: TToolButton; ToolButton1: TToolButton; Tv1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Label4: TLabel; MachineNo: TcxTextEdit; Tv1Column17: TcxGridDBColumn; ToolButton2: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; v1Column18: TcxGridDBColumn; v1Column15: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1SPName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; ADO_2: TADOQuery; CDS_2: TClientDataSet; GPM_2: TcxGridPopupMenu; DS_2: TDataSource; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; adoqueryPicture: TADOQuery; Tv1Column4: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column23: TcxGridDBColumn; Tv1Column24: TcxGridDBColumn; Tv1Column25: TcxGridDBColumn; Tv1Column26: TcxGridDBColumn; Tv1Column27: TcxGridDBColumn; Tv1Column28: TcxGridDBColumn; Tv1Column29: TcxGridDBColumn; Tv1Column30: TcxGridDBColumn; Tv1Column31: TcxGridDBColumn; Tv1Column32: TcxGridDBColumn; Tv1Column33: TcxGridDBColumn; Tv1Column34: TcxGridDBColumn; Tv1Column35: TcxGridDBColumn; Tv1Column36: TcxGridDBColumn; TV2Column1: TcxGridDBColumn; cxTabControl1: TcxTabControl; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; Panel3: TPanel; Label1: TLabel; XGPrice: TcxTextEdit; Button2: TButton; Button1: TButton; Tv1Column13: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; Frame11: TfrmFrameDateSel; Tv1Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure pcidChange(Sender: TObject); procedure TBdelClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure pcidPropertiesChange(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TextEdit(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Tv1Column13PropertiesEditValueChanged(Sender: TObject); private FLeft, FTop: Integer; procedure InitGrid(); procedure setstatus(); procedure initZX(); procedure InitImages(); { Private declarations } public fsyrName, canshu1, canshu2: string; { Public declarations } end; var frmTatWBCZList_QJCL: TfrmTatWBCZList_QJCL; Mach: array of TfrmSLTGDTP; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_OutPutHelp; {$R *.dfm} procedure TfrmTatWBCZList_QJCL.InitImages(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); if CDS_Main.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where isnull(WBID,'''')<>'''' and WBID=' + quotedstr(Trim(CDS_Main.fieldbyname('GOID').AsString))); open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSltGDTP.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; Mach[i].Left := 0 + i * 165; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg, adoqueryPicture.fieldbyname('URL').AsString, Trim(CDS_Main.fieldbyname('GOID').AsString)); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmTatWBCZList_QJCL.initZX(); begin with ADO_2 do begin Close; sql.Clear; // sql.Add(' select A.* from Tat_WB_Formula A inner join Tat_WB_Spec B on A.WBSID=B.WBSID '); // sql.Add(' where WB_Code=''' + Trim(CDS_Main.fieldbyname('WB_Code').AsString) + ''''); sql.Add(' select A.* from Tat_Plan_Yarn A '); sql.Add(' where A.MainID = ''' + Trim(CDS_Main.fieldbyname('WB_Code').AsString) + ''''); // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADO_2, CDS_2); SInitCDSData(ADO_2, CDS_2); end; procedure TfrmTatWBCZList_QJCL.FormDestroy(Sender: TObject); begin inherited; frmTatWBCZList_QJCL := nil; end; procedure TfrmTatWBCZList_QJCL.cxTabControl1Change(Sender: TObject); begin setstatus(); initgrid(); end; procedure TfrmTatWBCZList_QJCL.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmTatWBCZList_QJCL.FormCreate(Sender: TObject); begin inherited; Frame11.EndDate.Date := SGetServerDateTime(ADOQueryTemp); Frame11.BegDate.Date := Frame11.EndDate.Date - 30; fsyrName := trim(DdataBase); canshu1 := trim(DParameters1); end; procedure TfrmTatWBCZList_QJCL.InitGrid(); var Msql, mbegdate, menddate: string; SqlStr: string; begin SqlStr := 'select A.GOID,A.GOTime,A.StaffId,A.StaffName,A.PCID,A.GlideName,A.FillTime,A.Qty,A.OutMoney,A.Price,A.Reward,A.Fine,A.JCSM,A.MachineNo '; SqlStr := SqlStr + ',B.WB_Code,B.WB_Name,B.WB_MachNo,B.WB_Macher,B.WB_Code,B.WB_Code,B.WB_YarnLen,B.WB_YarnQty,B.WB_YarnArr '; SqlStr := SqlStr + ',B.Note,B.WB_Arg_QJZL,B.WB_Move,B.WB_Arg_SDWZ,B.WB_Arg_PXDS,B.WB_ReedNote,B.WB_ReedNo,B.WB_Width,B.WB_YarnStripRemainder,B.WB_YarnStripQty '; SqlStr := SqlStr + ',JGSJ=DATEDIFF(MI, A.FillTime, A.EndTime) '; SqlStr := SqlStr + ' ,Money=round(( isnull(Price,0)* isnull(Qty,0) + isnull(Reward,0) - isnull(Fine,0) ),2) '; SqlStr := SqlStr + ' from Tat_Plan_OutPut A left join Tat_WB_Card B on A.PCID=B.WBCID '; SqlStr := SqlStr + 'where GlideName=''起机'' '; SqlStr := SqlStr + ' and A.GOTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', Frame11.BegDate.Date)) + ''''; SqlStr := SqlStr + ' and A.GOTime<''' + Trim(FormatDateTime('yyyy-MM-dd', Frame11.enddate.Date + 1)) + ''''; case cxTabControl1.TabIndex of 0: begin SqlStr := SqlStr + ' and isnull(ISDZ,0) = 0'; end; 1: begin SqlStr := SqlStr + ' and isnull(ISDZ,0) = 1'; end; 2: begin end; end; SqlStr := SqlStr + 'order by GOTime,pcid'; InitCDSData(ADOQueryMain, CDS_Main, Tv1, SqlStr, SGetFilters(Panel1, 1, 2), 'GOID'); initZX(); InitImages(); end; procedure TfrmTatWBCZList_QJCL.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, true); end; procedure TfrmTatWBCZList_QJCL.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmTatWBCZList_QJCL.TBRafreshClick(Sender: TObject); begin // MovePanel2.Visible := True; // MovePanel2.Refresh; ToolBar1.SetFocus; InitGrid(); // MovePanel2.Visible := False; end; procedure TfrmTatWBCZList_QJCL.ToolButton1Click(Sender: TObject); begin WriteCxGrid(self.Caption + tv1.Name, Tv1, '成品仓库'); end; procedure TfrmTatWBCZList_QJCL.ToolButton2Click(Sender: TObject); var MGOIDS: string; begin if CDS_Main.IsEmpty then exit; if not CDS_Main.Locate('SSel', True, []) then begin application.MessageBox('请选择数据', '提示'); Exit; end; with CDS_Main do begin DisableControls; while CDS_Main.Locate('SSel', True, []) do begin MGOIDS := MGOIDS + Trim(CDS_Main.fieldbyname('GOID').AsString) + ','; CDS_Main.Delete; end; EnableControls; end; try frmOutPutHelp := TfrmOutPutHelp.Create(Application); with frmOutPutHelp do begin FGOIDS := MGOIDS; if ShowModal = 1 then begin InitGrid(); end; end; finally frmOutPutHelp.Free; end; end; procedure TfrmTatWBCZList_QJCL.ToolButton3Click(Sender: TObject); var WSql: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := SelCDSKey(CDS_Main, ['GOID'])[0]; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_Tat_Plan_OutPut_DZ '); Sql.Add(' @GOIDS=' + quotedstr(Trim(WSql))); Sql.Add(',@DCode=' + Quotedstr(DCode)); Sql.Add(',@DName=' + Quotedstr(DName)); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); application.MessageBox('对账成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTatWBCZList_QJCL.ToolButton4Click(Sender: TObject); var WSql: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := SelCDSKey(CDS_Main, ['GOID'])[0]; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_Tat_Plan_OutPut_CXDZ '); Sql.Add(' @GOIDS=' + quotedstr(Trim(WSql))); Sql.Add(',@DCode=' + Quotedstr(DCode)); Sql.Add(',@DName=' + Quotedstr(DName)); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); application.MessageBox('撤销对账成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTatWBCZList_QJCL.ToolButton5Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; Panel3.Visible := true; CDS_Main.DisableControls; end; procedure TfrmTatWBCZList_QJCL.TextEdit(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if Trim(mvalue) = '' then begin mvalue := '0'; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); FieldByName('Money').Value := CDS_Main.fieldbyname('Price').asfloat * CDS_Main.fieldbyname('Qty').asfloat + CDS_Main.fieldbyname('Reward').asfloat - CDS_Main.fieldbyname('Fine').asfloat; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate Tat_Plan_OutPut '); sql.Add(' Set ' + FFieldName + '=' + Trim(mvalue) + ''); sql.Add(' where GOID=' + QuotedStr(CDS_Main.fieldbyname('GOID').AsString)); // ShowMessage(sql.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv1.Controller.EditingController.ShowEdit(); except tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmTatWBCZList_QJCL.Tv1Column13PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); try ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin Edit; FieldByName(FFieldName).Value := Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate Tat_Plan_OutPut '); sql.Add(' Set ' + FFieldName + '=''' + Trim(mvalue) + ''''); sql.Add(' where GOID=' + QuotedStr(CDS_Main.fieldbyname('GOID').AsString)); // ShowMessage(sql.text); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; tv1.Controller.EditingController.ShowEdit(); except tv1.Controller.EditingController.ShowEdit(); ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!', '提示', 0); end end; procedure TfrmTatWBCZList_QJCL.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin initZX(); InitImages(); end; procedure TfrmTatWBCZList_QJCL.Button1Click(Sender: TObject); begin Panel3.Visible := false; CDS_Main.EnableControls; XGPrice.text := ''; end; procedure TfrmTatWBCZList_QJCL.Button2Click(Sender: TObject); var WSql: string; begin WSql := SelCDSKey(CDS_Main, ['GOID'])[0]; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_Tat_Plan_OutPut_Price '); Sql.Add(' @GOIDS=' + quotedstr(Trim(WSql))); Sql.Add(',@DCode=' + Quotedstr(DCode)); Sql.Add(',@DName=' + Quotedstr(DName)); Sql.Add(',@Price=' + floattostr(strtofloatdef(XGPrice.text, 0))); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); end; ADOQueryCmd.Connection.CommitTrans; Panel3.Visible := false; CDS_Main.EnableControls; XGPrice.text := ''; InitGrid(); application.MessageBox('修改成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTatWBCZList_QJCL.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTatWBCZList_QJCL.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTatWBCZList_QJCL.FormShow(Sender: TObject); begin inherited; ReadCxGrid(self.Caption + tv1.Name, Tv1, '成品仓库'); canshu1 := self.fParameters1; canshu2 := self.fParameters2; setstatus(); initgrid(); Frame11.lbl1.caption := '整经日期'; end; procedure TfrmTatWBCZList_QJCL.setstatus(); begin ToolButton3.Enabled := False; ToolButton4.Enabled := False; TBdel.Enabled := False; ToolButton5.Enabled := False; Tv1Column35.Options.Editing := false; Tv1Column36.Options.Editing := false; case cxTabControl1.TabIndex of 0: begin ToolButton3.Enabled := true; TBdel.Enabled := true; ToolButton5.Enabled := true; Tv1Column35.Options.Editing := true; Tv1Column36.Options.Editing := true; end; 1: begin ToolButton4.Enabled := true; end; 2: begin end; end; end; procedure TfrmTatWBCZList_QJCL.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(self.Caption, cxGrid1); end; procedure TfrmTatWBCZList_QJCL.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); initZX(); InitImages(); end; end; procedure TfrmTatWBCZList_QJCL.pcidChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTatWBCZList_QJCL.pcidPropertiesChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTatWBCZList_QJCL.TBdelClick(Sender: TObject); var WSql: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := SelCDSKey(CDS_Main, ['GOID'])[0]; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_Tat_Plan_OutPut_Del '); Sql.Add(' @GOIDS=' + quotedstr(Trim(WSql))); Sql.Add(',@DCode=' + Quotedstr(DCode)); Sql.Add(',@DName=' + Quotedstr(DName)); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); application.MessageBox('删除成功!', '提示信息'); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; end.