unit U_FHSQListCX; 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, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, RM_E_llPDF, cxDropDownEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmFHSQListCX = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1OrdDate: TcxGridDBColumn; Order_Main: TClientDataSet; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label9: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; HZSCConNo: TEdit; cxTabControl1: TcxTabControl; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; ClientDataSet2: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Note: TClientDataSet; RM1: TRMGridReport; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column26: TcxGridDBColumn; Panel5: TPanel; Label28: TLabel; Button5: TButton; Button6: TButton; DateTimePicker1: TDateTimePicker; Label11: TLabel; lblFSID: TLabel; v1Column27: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cv1Column12: TcxGridDBColumn; cv1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; SQTYPE: TComboBox; Label3: TLabel; ToolButton3: TToolButton; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Label5: TLabel; CRTYPE: TComboBox; Label6: TLabel; Label7: TLabel; Label10: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; HZCODE: TEdit; SALESMAN: TEdit; SalesClass: TEdit; FSID: TEdit; HZcolor: TEdit; HZganghao: TEdit; ToolButton4: TToolButton; ComboBox1: TComboBox; ToolButton5: TToolButton; Tv1Column5: TcxGridDBColumn; Panel2: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cv2Column10: TcxGridDBColumn; cv2Column4: TcxGridDBColumn; cv2Column7: TcxGridDBColumn; cv2Column5: TcxGridDBColumn; cv2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; Tv2Column5: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; Tv2Column6: TcxGridDBColumn; Tv2Column2: TcxGridDBColumn; Tv2Column3: TcxGridDBColumn; Tv2Column4: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; cxGrid3: TcxGrid; TV3: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; CDS_CW: TClientDataSet; DataSource3: TDataSource; cxSplitter2: TcxSplitter; TV3Column1: TcxGridDBColumn; TV3Column2: TcxGridDBColumn; TV3Column3: TcxGridDBColumn; TV3Column4: TcxGridDBColumn; TV3Column5: TcxGridDBColumn; TV3Column6: TcxGridDBColumn; TV3Column7: TcxGridDBColumn; TV3Column8: TcxGridDBColumn; TV3Column9: TcxGridDBColumn; Tv2Column7: TcxGridDBColumn; TV3Column10: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; TV3Column11: TcxGridDBColumn; TV3Column12: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; //RMllPDFExport1: TRMllPDFExport; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure tchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton2Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure CRTYPEChange(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); procedure SetStatus(); function DelData(): Boolean; { Private declarations } public FFInt: Integer; canshu1, canshu2: string; { Public declarations } end; var frmFHSQListCX: TfrmFHSQListCX; implementation uses U_DataLink, U_FHSQInPut, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmFHSQListCX.SetStatus(); begin ToolButton2.Visible := False; ToolButton3.Visible := False; TBPrint.Visible := True; ToolButton4.Visible := True; ToolButton5.Visible := False; case cxTabControl1.TabIndex of 0: begin ToolButton2.Visible := true; TBPrint.Visible := False; ToolButton4.Visible := False; ToolButton5.Visible := True; end; 1: begin ToolButton3.Visible := true; end; end; // Tnochk.Visible := False; // btn2.Visible := False; // btn3.Visible := False; // case cxTabControl1.TabIndex of // 0: // begin // btn2.Visible := true; // end; // 1: // begin // btn3.Visible := true; // end; // 2: // begin // // end; // end; // if canshu1 = '审核' then // begin // case cxTabControl1.TabIndex of // 0: // begin // // end; // 1: // begin // tchk.Visible := true; // end; // 2: // begin // Tnochk.Visible := true; // end; // end; // end // else if canshu1 = '高权限' then // begin // case cxTabControl1.TabIndex of // 0: // begin // // end; // 1: // begin // // tchk.Visible := true; // end; // 2: // begin // Tnochk.Visible := true; // end; // end; // end // else // begin // end; end; procedure TfrmFHSQListCX.FormDestroy(Sender: TObject); begin frmFHSQListCX := nil; end; procedure TfrmFHSQListCX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmFHSQListCX.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; end; procedure TfrmFHSQListCX.TBCloseClick(Sender: TObject); begin WriteCxGrid('物流发货进度', Tv1, '发货管理'); WriteCxGrid('物流发货进度', Tv2, '发货管理1'); WriteCxGrid('物流发货进度', Tv3, '发货管理3'); Close; end; procedure TfrmFHSQListCX.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.*,isnull(status,''未完成'')status2 '); SQL.Add(' ,isbd=(select isbd from Company E WHERE E.coname=A.CustomerNoName AND E.VALID=''Y'' AND CoType=''客户'')'); SQL.Add(',SQPSHZ1=(SELECT COUNT(MJID) FROM FHSQ_SUB B WHERE A.FSID=B.FSID)'); SQL.Add(',SQQTYHZ1=(SELECT SUM(SQQTY) FROM FHSQ_SUB B WHERE A.FSID=B.FSID)'); Sql.Add(' ,HZSCConNo=CAST((select distinct(SCConNo) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); Sql.Add(' ,HZCODE=CAST((select distinct(SPrtCode) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); Sql.Add(' ,HZcolor=CAST((select distinct(prtcolor) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); Sql.Add(' ,HZganghao=CAST((select distinct(ganghao) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); Sql.Add(' ,HZSCConNo=CAST((select distinct(SCConNo) + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); SQL.Add(',YFMONEY=isnull((SELECT SUM(QtyFlag*Money) FROM YF_MONEY_CR Y WHERE Y.FactoryName=A.CustomerNoName and y.YWY=a.Salesman and status=''1'''); sql.add('and ((crtime>=''2022-08-02'') or (ChkTime>=''2022-08-02'' and CRTime<''2022-08-02'') or crtype=''收款登记'')),0) '); sql.Add(' from FHSQ_Main A'); sql.Add(' where SQType IN(''订单'',''现货'') '); SQL.Add(' and isnull(A.Chker,'''')<>'''' '); // if cxTabControl1.TabIndex <> 0 then // begin sql.Add(' and SQDate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and SQDate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); // end; if cxTabControl1.TabIndex = 0 then begin SQL.Add(' and isnull(A.status,''未完成'')=''未完成'' '); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add(' and isnull(A.status,''未完成'')<>''未完成'' AND isnull(A.status,''未完成'')<>''已取消'' '); end else if cxTabControl1.TabIndex = 3 then begin SQL.Add('AND isnull(A.status,''未完成'')=''已取消'' '); end; if crtype.Text = '销售出库' then begin SQL.Add(' and crtype=''销售出库'''); end else if crtype.Text = '其他出库' then begin SQL.Add(' and crtype<>''销售出库'''); end; // ShowMessage(sql.Text); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmFHSQListCX.InitForm(); begin ReadCxGrid('物流发货进度', Tv1, '发货管理'); ReadCxGrid('物流发货进度', Tv2, '发货管理1'); ReadCxGrid('物流发货进度', Tv3, '发货管理3'); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 60; InitGrid(); end; procedure TfrmFHSQListCX.TBFindClick(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 TfrmFHSQListCX.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(canshu1) = '高权限' then begin if (cxTabControl1.TabIndex <> 0) and (cxTabControl1.TabIndex <> 1) then Exit; end; if Trim(canshu1) <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; if (cxTabControl1.TabIndex <> 0) then Exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能修改数据!', '提示', 0); Exit; end; try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); if ShowModal = 1 then begin InitGrid(); end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQListCX.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; if canshu1 <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select * from CK_BanCP_CR where CRFlag=''出库'''); sql.add(' and CKOrdNo=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已发货不能删除数据!', '提示', 0); exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能删除!', '提示', 0); Exit; end; if ADOQueryTemp.FieldByName('FHPSHZ').AsInteger > 0 then begin Application.MessageBox('已发货不能删除数据!', '提示', 0); exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; InitSubGrid(); end; end; function TfrmFHSQListCX.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete FHSQ_Sub where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete FHSQ_Main where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmFHSQListCX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '发货申请列表'); end; procedure TfrmFHSQListCX.TBPrintClick(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Order_Main.IsEmpty then Exit; // if cxTabControl1.TabIndex <> 1 then // Exit; ExportFtErpFile('坯布发货申请单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\坯布发货申请单.rmf'; with ADOQueryPrint do begin Close; sql.Clear; SQL.Add('EXEC P_Print_XHSQD @FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if FileExists(fPrintFile) then begin try Moudle := LoadLibrary('MakeQRBarcode.dll'); @Makebar := GetProcAddress(Moudle, 'Make'); @Mixtext := GetProcAddress(Moudle, 'MixText'); Txt := Trim(Order_Main.fieldbyname('FSID').AsString); fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); if FileExists(fImagePath) then DeleteFile(fImagePath); Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); except application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR); exit; end; RMVariables['QRBARCODE'] := fImagePath; RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmFHSQListCX.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; InitSubGrid(); end; procedure TfrmFHSQListCX.TBAddClick(Sender: TObject); var maxno: string; begin try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 0; FMainId := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQListCX.FormShow(Sender: TObject); begin InitForm(); SetStatus(); end; procedure TfrmFHSQListCX.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmFHSQListCX.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmFHSQListCX.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmFHSQListCX.CustomerNoNameChange(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 TfrmFHSQListCX.tchkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET Chker=''' + Trim(DName) + ''',ChkTime=getdate(),ChkStatus=''审核通过'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then sql.Add('select A.*,B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''') else sql.Add('select A.*,B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId where 1=2'); // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmFHSQListCX.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 2 then exit; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能撤销!', '提示', 0); Exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET Chker=Null,ChkTime=Null,ChkStatus=Null '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; SetStatus(); end; procedure TfrmFHSQListCX.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // with ADOQueryTemp do // begin // Close; // sql.Clear; // if Order_Main.IsEmpty = False then // begin // sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); // // sql.Add(' inner join CLoth_Sub B on A.SubId=B.SubId'); // // sql.Add(' inner join CLoth_Main C on B.MainId=C.MainId'); // sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); // end // else // begin // sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); // // sql.Add(' where 1=2'); // end; // // Open; // end; // SCreateCDS20(ADOQueryTemp, ClientDataSet2); // SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmFHSQListCX.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if Order_Main.fieldbyname('FHPSHZ').AsString = '0' then begin application.MessageBox('未发货禁止完成!', '提示信息'); exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET status='' 已完成'',WCDATE=GETDATE(),WCPERSON=' + QuotedStr(Trim(DName))); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); // ShowMessage(SQL.Text); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.Button6Click(Sender: TObject); begin Panel5.Visible := false; end; procedure TfrmFHSQListCX.Button5Click(Sender: TObject); begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET fhDate=' + QuotedStr(Trim(FormatDateTime('yyyy-MM-dd', DateTimePicker1.Date)))); sql.Add('where FSID=' + quotedstr(trim(lblFSID.Caption))); execsql; end; InitGrid(); Order_Main.Locate('FSID', lblFSID.Caption, []); Panel5.Visible := false; application.MessageBox('修改成功!', '提示信息'); except application.MessageBox('修改失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.btn1Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET status='' 已完成'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); // ShowMessage(SQL.Text); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.btn2Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 0 then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET tjstatus=''审核通过'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('提交成功!', '提示信息'); except application.MessageBox('提交失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.btn3Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET tjstatus=NULL '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.ToolButton3Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from YF_Money_CR_SUB WHERE YFPZNO=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if ADOQueryTemp.IsEmpty = False then begin application.MessageBox('财务已生成,禁止取消!', '提示信息'); exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET status=''未完成'',WCPERSON=NULL '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); // ShowMessage(SQL.Text); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.CRTYPEChange(Sender: TObject); begin InitGrid(); end; procedure TfrmFHSQListCX.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if Order_Main.IsEmpty = True then begin Exit; end; with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then begin sql.Add('select A.*, B.ORDERNO '); SQL.Add(',je=(case when orderUnit=''KG'' or orderUnit=''公斤'' then Price*(fhqty-ISNULL(ADDM,0))+isnull(bgfee,0) else '); sql.Add('Price*fhms+isnull(bgfee,0) end )'); // sql.Add(' inner join CLoth_Sub B on A.SubId=B.SubId'); // sql.Add(' inner join CLoth_Main C on B.MainId=C.MainId'); sql.Add('from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId'); sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); end else begin sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); sql.Add(' where 1=2'); end; Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then begin sql.Add(' exec P_YSSK_List_ZQ_z '); sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', SGetServerDate10(ADOQueryCmd))))); sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', SGetServerDate10(ADOQueryCmd))))); sql.Add(',@flag=''已审核'' '); SQL.Add(',@FactoryName=' + QuotedStr(Trim(Order_Main.fieldbyname('CustomerNoName').AsString))); // sql.Add('SELECT FactoryName,YWY,SUM(QtyFlag*Money)money FROM YF_MONEY_CR Y '); // SQL.Add('WHERE status=''1'' AND Y.FactoryName=' + QuotedStr(Trim(Order_Main.fieldbyname('CustomerNoName').AsString))); // sql.add('and ((crtime>=''2022-08-02'') or (ChkTime>=''2022-08-02'' and CRTime<''2022-08-02'') or crtype=''收款登记'') '); // SQL.Add('GROUP BY FactoryName,YWY'); // ShowMessage(sql.Text); end else begin sql.Add('select A.*, B.ORDERNO from FHSQ_Sub A LEFT JOIN JYOrder_Main B ON A.MainId=B.MainId '); sql.Add(' where 1=2'); end; Open; end; SCreateCDS20(ADOQueryTemp, CDS_CW); SInitCDSData20(ADOQueryTemp, CDS_CW); end; procedure TfrmFHSQListCX.ToolButton4Click(Sender: TObject); var fPrintFile: string; begin if Order_Main.IsEmpty then EXIT; ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp); if trim(ComboBox1.Text) = '出库码单1' then begin with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec P_Print_CKMD4 @FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; // SCreateCDS20(ADOQueryTemp, CDS_JuanPRT); // SInitCDSData20(ADOQueryTemp, CDS_JuanPRT); end; if trim(ComboBox1.Text) = '出库码单2' then begin with ADOQueryPrint do begin Close; sql.Clear; sql.add('exec P_Print_CKMD2 @CKOrdNo=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; // SCreateCDS20(ADOQueryTemp, CDS_JuanPRT); // SInitCDSData20(ADOQueryTemp, CDS_JuanPRT); end; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf'; with ADOQueryTemp do begin Close; sql.Clear; sql.add('UPDATE FHSQ_Main SET DYCS=ISNULL(DYCS,0)+1 WHERE FSID=' + quotedstr(Trim(Order_Main.fieldbyname('FSID').AsString))); ExecSQL; end; if FileExists(fPrintFile) then begin // RMVariables['OrdNo'] := Trim(CDS_Main.fieldbyname('OrdNo').AsString); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; procedure TfrmFHSQListCX.ToolButton5Click(Sender: TObject); begin if Order_Main.IsEmpty then exit; if Order_Main.fieldbyname('FHPSHZ').AsString <> '' then begin application.MessageBox('已发货禁止取消!', '提示信息'); exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update FHSQ_Main SET status=''已取消'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); // ShowMessage(SQL.Text); execsql; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmFHSQListCX.ToolButton6Click(Sender: TObject); begin if Order_Main.IsEmpty = True then Exit; ShowMessage(Order_Main.fieldbyname('CustomerNoName').AsString + '的累计欠款为:' + Order_Main.fieldbyname('YFMONEY').AsString); end; end.