unit U_OrderProgress; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDBLookupComboBox, cxGridBandedTableView, cxGridDBBandedTableView, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, Menus, Clipbrd; type TfrmOrderProgress = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ToolButton1: TToolButton; RM1: TRMGridReport; RMDBHZ: TRMDBDataSet; cxGridPopupMenu2: TcxGridPopupMenu; Label1: TLabel; MPRTCode: TEdit; EndDate: TDateTimePicker; Label4: TLabel; Label5: TLabel; Begdate: TDateTimePicker; cxGrid1: TcxGrid; TV1: TcxGridDBBandedTableView; cxGridDBBandedColumn35: TcxGridDBBandedColumn; cxGridDBBandedColumn42: TcxGridDBBandedColumn; cxGridDBBandedColumn51: TcxGridDBBandedColumn; cxGridDBBandedColumn52: TcxGridDBBandedColumn; cxGridDBBandedColumn56: TcxGridDBBandedColumn; cxGridDBBandedColumn57: TcxGridDBBandedColumn; cxGridDBBandedColumn59: TcxGridDBBandedColumn; cxGridDBBandedColumn60: TcxGridDBBandedColumn; cxGridDBBandedColumn61: TcxGridDBBandedColumn; cxGridDBBandedColumn62: TcxGridDBBandedColumn; cxGridDBBandedColumn63: TcxGridDBBandedColumn; cxGridDBBandedColumn64: TcxGridDBBandedColumn; cxGridDBBandedColumn77: TcxGridDBBandedColumn; cxGridDBBandedColumn79: TcxGridDBBandedColumn; cxGridDBBandedColumn81: TcxGridDBBandedColumn; cxGridDBBandedColumn87: TcxGridDBBandedColumn; cxGridDBBandedColumn91: TcxGridDBBandedColumn; V1Column1: TcxGridDBBandedColumn; V1Column2: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; cxGridLevel2: TcxGridLevel; V1Column25: TcxGridDBBandedColumn; V1Column26: TcxGridDBBandedColumn; V1Column27: TcxGridDBBandedColumn; V1Column28: TcxGridDBBandedColumn; Label2: TLabel; OrderNoX: TEdit; V1Column4: TcxGridDBBandedColumn; V1Column5: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; ToolButton3: TToolButton; CDSPRTHZ: TClientDataSet; CDSPRTMX: TClientDataSet; RMDBMX: TRMDBDataSet; ADOQueryMain: TADOQuery; DataSource1: TDataSource; CDS_HZ: TClientDataSet; Label7: TLabel; DDTYPE: TComboBox; TV1Column1: TcxGridDBBandedColumn; TV1Column2: TcxGridDBBandedColumn; TV1Column3: TcxGridDBBandedColumn; Label8: TLabel; wcstatus: TComboBox; TV1Column4: TcxGridDBBandedColumn; TV1Column5: TcxGridDBBandedColumn; TV1Column6: TcxGridDBBandedColumn; TV1Column7: TcxGridDBBandedColumn; Label3: TLabel; Label6: TLabel; PBCODE: TEdit; JGFactoryName: TEdit; TV1Column8: TcxGridDBBandedColumn; Label9: TLabel; Label10: TLabel; YWY: TEdit; khname: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; ToolButton4: TToolButton; TV1Column9: TcxGridDBBandedColumn; TV1Column10: TcxGridDBBandedColumn; TV1Column11: TcxGridDBBandedColumn; TV1Column12: TcxGridDBBandedColumn; Label11: TLabel; PRTCOLOR: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure MPRTCodeNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxGridDBBandedColumn35CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure TV1Column6PropertiesEditValueChanged(Sender: TObject); procedure MPRTCodeKeyPress(Sender: TObject; var Key: Char); procedure DDTYPEChange(Sender: TObject); procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure N1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure TV1Column10PropertiesEditValueChanged(Sender: TObject); private { Private declarations } procedure InitGrid(); public fkhType: string; Fmanage: string; canshu1: string; end; var frmOrderProgress: TfrmOrderProgress; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_PDOrderProgress; {$R *.dfm} procedure TfrmOrderProgress.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); begin if trim(Pwhere) <> '' then fwhere := fwhere + ' and ' + trim(Pwhere); end; if wcstatus.Text <> '' then begin if wcstatus.Text = '已完成' then begin fwhere := fwhere + 'and status=''2''' end; if wcstatus.Text = '未完成' then begin fwhere := fwhere + 'and status<>''2''' end; end; ToolBar1.SetFocus; if canshu1 = '管理' then begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_OrderProgress_MX_CS @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); sql.Add(' ,@dname=' + QuotedStr(Trim(YWY.Text))); sql.Add(' ,@orderno=' + QuotedStr(OrderNoX.Text)); sql.Add(' ,@MPRTCODE=' + QuotedStr(MPRTCODE.Text)); sql.Add(' ,@ddtype=' + QuotedStr(ddtype.Text)); sql.Add(' ,@wcstatus=' + QuotedStr(wcstatus.Text)); sql.Add(' ,@JGFactoryName=' + QuotedStr(JGFactoryName.Text)); sql.Add(' ,@PBCODE=' + QuotedStr(PBCODE.Text)); sql.Add(' ,@khname=' + QuotedStr(khname.Text)); sql.Add(' ,@color=' + QuotedStr(PRTCOLOR.Text)); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); // CDS_HZ.Last; finally ADOQueryMain.EnableControls; end; end else begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_OrderProgress_MX_CS @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); sql.Add(' ,@dname=' + QuotedStr(Trim(DNAME))); sql.Add(' ,@orderno=' + QuotedStr(OrderNoX.Text)); sql.Add(' ,@MPRTCODE=' + QuotedStr(MPRTCODE.Text)); sql.Add(' ,@ddtype=' + QuotedStr(ddtype.Text)); sql.Add(' ,@wcstatus=' + QuotedStr(wcstatus.Text)); sql.Add(' ,@JGFactoryName=' + QuotedStr(JGFactoryName.Text)); sql.Add(' ,@PBCODE=' + QuotedStr(PBCODE.Text)); sql.Add(' ,@khname=' + QuotedStr(khname.Text)); sql.Add(' ,@color=' + QuotedStr(PRTCOLOR.Text)); // sql.Add(' exec P_View_OrderProgress_MX2 @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); // sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); // sql.Add(',@DNAME=' + QuotedStr(Trim(DName))); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); // CDS_HZ.Last; finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmOrderProgress.FormDestroy(Sender: TObject); begin frmOrderProgress := nil; end; procedure TfrmOrderProgress.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmOrderProgress.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(trim(self.caption), Tv1, '进度管理99'); Close; end; procedure TfrmOrderProgress.FormShow(Sender: TObject); begin ReadCxBandedGrid(trim(self.caption), Tv1, '进度管理99'); if canshu1 <> '管理' then begin YWY.Text := Trim(DName); YWY.Enabled := False; end; // InitGrid(); end; procedure TfrmOrderProgress.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmOrderProgress.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; procedure TfrmOrderProgress.MPRTCodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmOrderProgress.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid1); end; procedure TfrmOrderProgress.FormCreate(Sender: TObject); begin canshu1 := Trim(DParameters1); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 90; end; procedure TfrmOrderProgress.ToolButton3Click(Sender: TObject); var fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string; i: Integer; begin ExportFtErpFile('跟进表.rmf', ADOQueryTemp); with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CRJD_HZ '); sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDSPRTHZ); SInitCDSData20(ADOQueryTemp, CDSPRTHZ); with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CRJD_CD '); sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString))); Open; end; RMVariables['HZCD'] := ADOQueryTemp.fieldbyname('HZCD').Value; with ADOQueryTemp do begin Close; sql.Clear; sql.add('exec P_Print_CRJD '); sql.add('@MainId=' + quotedstr(Trim(CDS_HZ.fieldbyname('MainId').AsString))); sql.add(',@Falg=''明细'''); Open; end; SCreateCDS20(ADOQueryTemp, CDSPRTMX); SInitCDSData20(ADOQueryTemp, CDSPRTMX); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\跟进表.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找到' + fPrintFile), '提示', 0); end; end; procedure TfrmOrderProgress.cxGridDBBandedColumn35CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); begin if (ARow1.Values[TV1Column3.Index] = ARow2.Values[TV1Column3.Index]) then AAreEqual := True else AAreEqual := False; end; procedure TfrmOrderProgress.TV1Column6PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYORDER_SUB '); SQL.Add(' Set ' + FFieldName + '=' + QuotedStr(mvalues)); sql.Add(' where SUBID=''' + Trim(CDS_HZ.fieldbyname('SUBID').AsString) + ''''); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('修改进度备注'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_HZ.FieldByName('subid').AsString) + ';现备注:' + trim(CDS_HZ.FieldByName('JDNOTE').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmOrderProgress.MPRTCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmOrderProgress.DDTYPEChange(Sender: TObject); begin InitGrid(); end; procedure TfrmOrderProgress.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('chk').Index]) = 0 then begin ACanvas.FONT.Color := CLRED; end; end; procedure TfrmOrderProgress.N1Click(Sender: TObject); var myclipbrd: TClipboard; begin myclipbrd := TClipboard.Create(); myclipbrd.AsText := CDS_HZ.FieldByName('MPRTCode').ASSTRING; end; procedure TfrmOrderProgress.ToolButton4Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; try frmPDOrderProgress := TfrmPDOrderProgress.Create(Application); with frmPDOrderProgress do begin FMainID := Trim(Self.CDS_HZ.fieldbyname('MainId').AsString); if ShowModal = 1 then begin end; end; finally frmPDOrderProgress.Free; end; end; procedure TfrmOrderProgress.TV1Column10PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv1.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYORDER_SUB '); SQL.Add(' Set ' + FFieldName + '=' + QuotedStr(mvalues)); sql.Add(' where SUBID=''' + Trim(CDS_HZ.fieldbyname('SUBID').AsString) + ''''); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('修改染厂已排数量'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_HZ.FieldByName('subid').AsString) + ';现数量:' + trim(CDS_HZ.FieldByName('RCYPQTY').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; end.