unit U_DDLIST; 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, IdHTTP, dxBarBuiltInMenu, cxPC; type TfrmDDLIST = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ToolButton1: TToolButton; RM1: TRMGridReport; RMDBHZ: TRMDBDataSet; Label3: TLabel; cxGridPopupMenu2: TcxGridPopupMenu; EndDate: TDateTimePicker; Label5: TLabel; Begdate: TDateTimePicker; Label2: TLabel; OrderNo: TEdit; Label6: TLabel; Conno: TEdit; ToolButton3: TToolButton; CDSPRTHZ: TClientDataSet; CDSPRTMX: TClientDataSet; RMDBMX: TRMDBDataSet; ADOQueryMain: TADOQuery; DataSource1: TDataSource; CDS_HZ: TClientDataSet; Label7: TLabel; Label8: TLabel; Label9: TLabel; ToolButton4: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v2Column6: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Label1: TLabel; ToolButton5: TToolButton; IdHTTP1: TIdHTTP; Tv1Column8: TcxGridDBColumn; cxTabControl1: TcxTabControl; ToolButton6: TToolButton; ToolButton7: TToolButton; Tv1Column9: TcxGridDBColumn; Label10: TLabel; WCZT: TComboBox; SCSTATUS: TComboBox; Label11: TLabel; CheckBox1: TCheckBox; Tv1Column10: TcxGridDBColumn; CheckBox2: TCheckBox; Label4: TLabel; YWKHSTATUS: TComboBox; Tv1Column12: TcxGridDBColumn; GDYNAME: TComboBox; leader: TComboBox; filler: TComboBox; CustomerNoName: TComboBox; Tv1Column11: TcxGridDBColumn; Label12: TLabel; hxzt: TComboBox; Tv1Column13: TcxGridDBColumn; bztype: TComboBox; 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 CustomerNoNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure SCSTATUSChange(Sender: TObject); procedure CheckBox2Click(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public fkhType: string; Fmanage: string; canshu1: string; end; var frmDDLIST: TfrmDDLIST; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_Con_DDXQ; {$R *.dfm} procedure TfrmDDLIST.SetStatus(); begin ToolButton6.Visible := False; ToolButton7.Visible := False; if cxTabControl1.TabIndex = 0 then begin ToolButton6.Visible := True; end else if cxTabControl1.TabIndex = 1 then begin ToolButton7.Visible := True; end; end; procedure TfrmDDLIST.InitGrid(); var STRwhere, Pwhere: string; begin STRwhere := ''; //if Trim(canshu1) = '录入' then Pwhere := SGetFilters(Panel1, 1, 2); if CheckBox2.Checked = True then begin STRwhere := STRwhere + 'AND SSMONEY>0'; end; begin if trim(Pwhere) <> '' then STRwhere := STRwhere + ' and ' + trim(Pwhere); end; try ADOQueryMain.DisableControls; if canshu1 = '组长' then begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_DDQKYLB_HZ_zz @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); SQL.Add(',@qx=' + QuotedStr(Trim(canshu1))); SQL.Add(',@filler=' + QuotedStr(Trim(DName))); // SQL.Add(',@STATUS='+QuotedStr(Trim())); // ShowMessage(sql.Text); if cxTabControl1.TabIndex < 2 then begin SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex)))); end; SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere))); if CheckBox1.Checked = True then begin SQL.Add(',@ischuan=''1'''); end; Open; end; end else if canshu1 = '跟单' then begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_DDQKYLB_gdy @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); SQL.Add(',@qx=' + QuotedStr(Trim(canshu1))); SQL.Add(',@filler=' + QuotedStr(Trim(DName))); // ShowMessage(sql.Text); if cxTabControl1.TabIndex < 2 then begin SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex)))); end; SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere))); if CheckBox1.Checked = True then begin SQL.Add(',@ischuan=''1'''); end; Open; end; end else if canshu1 = '业务' then begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_DDQKYLB_YW @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); SQL.Add(',@qx=' + QuotedStr(Trim(canshu1))); SQL.Add(',@filler=' + QuotedStr(Trim(DName))); // ShowMessage(sql.Text); if cxTabControl1.TabIndex < 2 then begin SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex)))); end; SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere))); if CheckBox1.Checked = True then begin SQL.Add(',@ischuan=''1'''); end; Open; end; end else begin with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' exec P_View_DDQKYLB_HZ @Begdate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' ,@enddate=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); SQL.Add(',@qx=' + QuotedStr(Trim(canshu1))); SQL.Add(',@filler=' + QuotedStr(Trim(DName))); if cxTabControl1.TabIndex < 2 then begin SQL.Add(',@STATUS=' + QuotedStr(Trim(IntToStr(cxTabControl1.TabIndex)))); end; SQL.Add(',@criteria=' + QuotedStr(Trim(STRwhere))); if CheckBox1.Checked = True then begin SQL.Add(',@ischuan=''1'''); end; // ShowMessage(sql.Text); Open; end; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); // CDS_HZ.Last; finally ADOQueryMain.EnableControls; end; end; procedure TfrmDDLIST.FormDestroy(Sender: TObject); begin frmDDLIST := nil; end; procedure TfrmDDLIST.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmDDLIST.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.caption), Tv1, '订单情况一览表'); Close; end; procedure TfrmDDLIST.FormShow(Sender: TObject); var FSJ, fsj2,fsj3: string; begin ReadCxGrid(trim(self.caption), Tv1, '订单情况一览表'); FSJ := 'SELECT DISTINCT NAME= FILLER FROM XH_Cloth_DH WHERE dhtype=''成品出库'' ORDER BY FILLER '; SInitComBoxBySql(ADOQueryCmd, GDYNAME, False, FSJ); fsj2 := 'SELECT DISTINCT NAME= FILLER FROM jyorder_main where FILLER not in (''admin'',''ygname'',''业务员'') ORDER BY FILLER '; SInitComBoxBySql(ADOQueryCmd, FILLER, False, fsj2); fsj3 := 'SELECT DISTINCT NAME= CustomerNoName FROM jyorder_main ORDER BY CustomerNoName '; SInitComBoxBySql(ADOQueryCmd, CustomerNoName, False, fsj3); SetStatus(); Tv1Column3.Visible := True; Tv1Column3.Hidden := False; Tv1Column2.Visible := True; Tv1Column2.Hidden := False; Tv1Column4.Visible := True; Tv1Column4.Hidden := False; Tv1Column1.Visible := True; Tv1Column1.Hidden := False; Tv1Column6.Visible := True; Tv1Column6.Hidden := False; Tv1Column7.Visible := True; Tv1Column7.Hidden := False; if (canshu1 = '业务') or (canshu1 = '组长') or (Trim(DName) = '蔡列娜') then begin Tv1Column3.Visible := False; Tv1Column3.Hidden := True; end; if (canshu1 = '跟单') or (canshu1 = '跟单组长') then begin Tv1Column2.Visible := False; Tv1Column2.Hidden := True; Tv1Column4.Visible := False; Tv1Column4.Hidden := True; Tv1Column1.Visible := False; Tv1Column1.Hidden := True; Tv1Column6.Visible := False; Tv1Column6.Hidden := True; Tv1Column7.Visible := False; Tv1Column7.Hidden := True; // Label10.Visible := False; end; // InitGrid(); end; procedure TfrmDDLIST.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmDDLIST.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 TfrmDDLIST.CustomerNoNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmDDLIST.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmDDLIST.FormCreate(Sender: TObject); begin canshu1 := Trim(DParameters1); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 60; end; procedure TfrmDDLIST.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 TfrmDDLIST.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if (AViewInfo.GridRecord.Values[Tv1Column1.Index] > 30) or (AViewInfo.GridRecord.Values[Tv1Column8.Index] > 0) or (AViewInfo.GridRecord.Values[v1Column7.Index] > 0) or (AViewInfo.GridRecord.Values[v1Column16.Index] > 0) then begin ACanvas.font.Color := clRed; end; end; procedure TfrmDDLIST.ToolButton4Click(Sender: TObject); begin if CDS_HZ.IsEmpty = true then Exit; try frmCon_DDXQ := TfrmCon_DDXQ.Create(Application); with frmCon_DDXQ do begin FMainID := CDS_HZ.fieldbyname('MainId').AsString; Forderno := CDS_HZ.fieldbyname('orderno').AsString; canshu1 := Self.canshu1; if (canshu1 = '业务') or (canshu1 = '组长') or (DName = '蔡列娜') then begin JGMoney.Visible := False; Label9.Visible := False; GroupBox7.Visible := False; button1.Visible := False; end; if (canshu1 = '跟单') or (canshu1 = '跟单组长') then begin GroupBox4.Visible := False; GroupBox5.Visible := False; GroupBox6.Visible := False; GroupBox8.Visible := False; button2.Visible := False; Label4.Visible := False; // Label10.Visible := False; end; if ShowModal = 1 then begin InitGrid(); end; end; finally frmCon_DDXQ.Free; end; end; procedure TfrmDDLIST.ToolButton5Click(Sender: TObject); begin try with ADOQueryCmd do begin close; sql.Clear; sql.Add('exec P_INSERT_DD '); sql.Add('@MAINID=' + quotedstr(Trim(CDS_HZ.fieldbyname('mainid').AsString))); sql.Add(',@ORDERNO=' + quotedstr(Trim(CDS_HZ.fieldbyname('orderno').AsString))); sql.Add(',@days=' + quotedstr(Trim(CDS_HZ.fieldbyname('cqts').AsString))); execsql; end; GetHTTP(IdHTTP1, 'http://zhengyong.rightsoft.top/api/message/send/Feedback'); finally application.MessageBox('推送成功!', '提示信息'); end; end; procedure TfrmDDLIST.ToolButton6Click(Sender: TObject); begin if CDS_HZ.Locate('ssel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; // CDS_HZ.DisableControls; with CDS_HZ do begin First; while not Eof do begin if CDS_HZ.FieldByName('SSel').AsBoolean = True then begin if CDS_HZ.FieldByName('yqts').AsFloat > 30 then begin Application.MessageBox('逾期天数>30不能完成!', '提示', 0); Exit; end; if CDS_HZ.FieldByName('SPK').AsFloat > 0 then begin Application.MessageBox('有索赔不能完成!', '提示', 0); Exit; end; if CDS_HZ.FieldByName('cqts').AsFloat > 0 then begin Application.MessageBox('有延误不能完成!', '提示', 0); Exit; end; if CDS_HZ.FieldByName('cps').AsFloat > 30 then begin Application.MessageBox('次品数大于30不能完成!', '提示', 0); Exit; end; if StrToFloatdef(CDS_HZ.FieldByName('JCS').AsString, 0) = 0 then begin Application.MessageBox('进仓数为0不能完成!', '提示', 0); Exit; end; if StrToFloatdef(CDS_HZ.FieldByName('JGMONEY').AsString, 0) = 0 then begin Application.MessageBox('加工费为0不能完成!', '提示', 0); Exit; end; if StrToFloatdef(CDS_HZ.FieldByName('SSMONEY').AsString, 0) = 0 then begin Application.MessageBox('到账净额为0不能完成!', '提示', 0); Exit; end; if StrToFloatdef(CDS_HZ.FieldByName('FPMONEY').AsString, 0) - StrToFloatdef(CDS_HZ.FieldByName('SSMONEY').AsString, 0) < 100 then begin Application.MessageBox('发票金额-到账净额<100美金!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update JYOrder_Main SET WCstatus=''1'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_HZ.fieldbyname('mainID').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('orderNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; CDS_HZ.Delete; end else Next; end; end; // CDS_HZ.EnableControls; end; procedure TfrmDDLIST.ToolButton7Click(Sender: TObject); begin if CDS_HZ.Locate('ssel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; CDS_HZ.DisableControls; with CDS_HZ do begin First; while not Eof do begin if CDS_HZ.FieldByName('SSel').AsBoolean = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update JYOrder_Main SET WCstatus=''0'' '); sql.Add('where mainID=' + quotedstr(trim(CDS_HZ.fieldbyname('mainID').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('orderNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; CDS_HZ.Delete; end else Next; end; end; CDS_HZ.EnableControls; end; procedure TfrmDDLIST.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmDDLIST.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmDDLIST.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmDDLIST.SCSTATUSChange(Sender: TObject); begin InitGrid(); end; procedure TfrmDDLIST.CheckBox2Click(Sender: TObject); begin InitGrid(); end; end.