unit U_FHSQList220313; 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; type TfrmFHSQList220313 = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: 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; v1OrdPerson1: 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; Label5: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; ConPerson1: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; //RMllPDFExport1: TRMllPDFExport; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; ClientDataSet2: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Note: TClientDataSet; v2Column2: TcxGridDBColumn; RM1: TRMGridReport; v1Column3: TcxGridDBColumn; v1Column9: TcxGridDBColumn; Label7: TLabel; Label10: TLabel; PrtCode: TEdit; PrtCodeName: TEdit; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v2Column6: TcxGridDBColumn; Label3: TLabel; SQBatchNoHZ: TEdit; Label6: TLabel; SQGCCode: TEdit; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column26: TcxGridDBColumn; ToolButton2: TToolButton; Panel5: TPanel; Label28: TLabel; Button5: TButton; Button6: TButton; DateTimePicker1: TDateTimePicker; Label11: TLabel; lblFSID: TLabel; v1Column27: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cv2Column4: TcxGridDBColumn; cv2Column5: TcxGridDBColumn; cv2Column6: TcxGridDBColumn; cv2Column7: TcxGridDBColumn; cv1Column13: TcxGridDBColumn; cv2Column8: TcxGridDBColumn; btn1: TToolButton; cv1Column12: TcxGridDBColumn; cv2Column9: TcxGridDBColumn; cv2Column10: TcxGridDBColumn; cv2Column11: TcxGridDBColumn; cv2Column12: TcxGridDBColumn; cv1Column14: TcxGridDBColumn; v1Column12: 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); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); procedure SetStatus(); function DelData(): Boolean; { Private declarations } public FFInt: Integer; canshu1, canshu2: string; { Public declarations } end; //var //frmContractListNX: TfrmContractListNX; implementation uses U_DataLink, U_FHSQInPut, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmFHSQList220313.SetStatus(); begin tchk.Visible := False; Tnochk.Visible := False; if canshu1 = '审核' then begin case cxTabControl1.TabIndex of 0: begin tchk.Visible := true; end; 1: begin Tnochk.Visible := true; end; 2: begin end; end; end else if canshu1 = '高权限' then begin case cxTabControl1.TabIndex of 0: begin tchk.Visible := true; end; 1: begin Tnochk.Visible := true; end; 2: begin end; end; end else begin end; end; procedure TfrmFHSQList220313.FormDestroy(Sender: TObject); begin //frmFHSQList:=nil; end; procedure TfrmFHSQList220313.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmFHSQList220313.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; end; procedure TfrmFHSQList220313.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('发货主表', Tv1, '发货管理'); WriteCxGrid('发货子表', Tv2, '发货管理'); end; procedure TfrmFHSQList220313.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.*,isnull(status,''未完成'')status2 '); Sql.Add(' ,HZSCConNo=CAST((select SCConNo + '' '' from FHSQ_Sub X where A.FSID=X.FSID for xml path('''') ) AS VARCHAR(100))'); sql.Add(' from FHSQ_Main A'); sql.Add(' where SQType=''订单'' '); 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.Chker,'''')='''' '); end else if cxTabControl1.TabIndex = 1 then begin SQL.Add(' and isnull(A.Chker,'''')<>'''' '); end; if Trim(canshu1) <> '高权限' then begin sql.Add(' and isnull(A.Filler,'''')=''' + Trim(DName) + ''''); end; if (canshu2 = '内销') or (canshu2 = '外销') then begin sql.Add(' and isnull(A.XSType,'''')=''' + Trim(canshu2) + ''''); end; // ShowMessage(sql.Text); Open; end; SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmFHSQList220313.InitForm(); begin ReadCxGrid('发货主表', Tv1, '发货管理'); ReadCxGrid('发货子表', Tv2, '发货管理'); EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 60; InitGrid(); end; procedure TfrmFHSQList220313.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmFHSQList220313.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; if Trim(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 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 TfrmFHSQList220313.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 TfrmFHSQList220313.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 TfrmFHSQList220313.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '发货申请列表'); end; procedure TfrmFHSQList220313.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(' select A.*,B.* '); sql.Add(' from FHSQ_Main A left join FHSQ_Sub B on A.FSId=B.FSId '); sql.Add(' where A.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 TfrmFHSQList220313.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; InitSubGrid(); end; procedure TfrmFHSQList220313.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 TfrmFHSQList220313.FormShow(Sender: TObject); begin InitForm(); SetStatus(); end; procedure TfrmFHSQList220313.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmFHSQList220313.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmFHSQList220313.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 TfrmFHSQList220313.CustomerNoNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmFHSQList220313.tchkClick(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 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 TfrmFHSQList220313.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; SCreateCDS(ADOQueryTemp, ClientDataSet2); SInitCDSData(ADOQueryTemp, ClientDataSet2); end; procedure TfrmFHSQList220313.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 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 TfrmFHSQList220313.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; SetStatus(); end; procedure TfrmFHSQList220313.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; SCreateCDS(ADOQueryTemp, ClientDataSet2); SInitCDSData(ADOQueryTemp, ClientDataSet2); end; procedure TfrmFHSQList220313.ToolButton2Click(Sender: TObject); begin if Trim(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 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; lblFSID.Caption := Order_Main.fieldbyname('FSID').AsString; DateTimePicker1.DateTime := SGetServerDate(ADOQueryTemp); Panel5.Left := (self.Width - Panel5.Width) div 2; Panel5.Visible := true; end; procedure TfrmFHSQList220313.Button6Click(Sender: TObject); begin Panel5.Visible := false; end; procedure TfrmFHSQList220313.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 TfrmFHSQList220313.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; end.