unit U_YSMXlist3; 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, cxDropDownEdit, RM_e_Xls, cxGridBandedTableView, cxGridDBBandedTableView, BtnEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmYSMXlist3 = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; cpcode: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; Label3: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; cxGridLevel1: TcxGridLevel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; Label4: TLabel; OrdDefNote3: TComboBox; Label5: TLabel; ToolButton3: TToolButton; RMGridReport1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; ADOQueryPrint: TADOQuery; Panetime: TPanel; TV1: TcxGridDBBandedTableView; V1Column1: TcxGridDBBandedColumn; V1Column2: TcxGridDBBandedColumn; V1Column4: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; V1Column9: TcxGridDBBandedColumn; V1Column12: TcxGridDBBandedColumn; V1Column15: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; factoryName: TBtnEditA; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; V1Column13: TcxGridDBBandedColumn; V1Column14: TcxGridDBBandedColumn; cxTabControl1: TcxTabControl; Label7: TLabel; YFGSType: TComboBox; V1Column18: TcxGridDBBandedColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; V1Column19: TcxGridDBBandedColumn; Label8: TLabel; ishs: TComboBox; V1Column20: TcxGridDBBandedColumn; V1Column21: TcxGridDBBandedColumn; TV1Column1: TcxGridDBBandedColumn; TV1Column2: TcxGridDBBandedColumn; TV1Column3: TcxGridDBBandedColumn; TV1Column4: TcxGridDBBandedColumn; TV1Column5: TcxGridDBBandedColumn; Label9: TLabel; YWY: TEdit; TV1Column6: TcxGridDBBandedColumn; TV1Column7: TcxGridDBBandedColumn; TV1Column8: TcxGridDBBandedColumn; Label11: TLabel; CPKH: TEdit; TV1Column9: TcxGridDBBandedColumn; Label12: TLabel; SEASON: TComboBox; cxStyle2: TcxStyle; TV1Column10: TcxGridDBBandedColumn; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox5: TCheckBox; CheckBox6: TCheckBox; CheckBox7: TCheckBox; CheckBox8: TCheckBox; CheckBox9: TCheckBox; TV1Column11: TcxGridDBBandedColumn; 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 P_OrderNo_YSK(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure cpcodeChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure factoryNameBtnClick(Sender: TObject); procedure V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure cxTabControl1Change(Sender: TObject); procedure YWYChange(Sender: TObject); procedure XSTYPEChange(Sender: TObject); procedure TV1Column9PropertiesChange(Sender: TObject); procedure TV1Column8PropertiesEditValueChanged(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag, FCYID: string; fType: string; end; var frmYSMXlist3: TfrmYSMXlist3; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ZdyAttachment; {$R *.dfm} procedure TfrmYSMXlist3.InitGrid(); var ftype: string; begin if trim(factoryName.Text) = '' then begin application.MessageBox('请输入客户,以便提高查询速度!', '提示信息', MB_ICONERROR); exit; end; // if trim(YFGSType.Text) = '' then // begin // application.MessageBox('请选择应收类别,以便提高查询速度!', '提示信息', MB_ICONERROR); // exit; // end; screen.Cursor := crsqlwait; Panetime.Visible := true; Panetime.Left := (Width - Panetime.Width) div 2; Panetime.top := (Height - Panetime.Height - 200) div 2; application.ProcessMessages; ftype := ''; if CheckBox2.Checked = True then begin ftype := Trim(ftype + '大货销售'); end; if CheckBox3.Checked = True then begin ftype := Trim(ftype + '样布销售样布款'); end; if CheckBox4.Checked = True then begin ftype := Trim(ftype + '定金'); end; if CheckBox5.Checked = True then begin ftype := Trim(ftype + '货款'); end; if CheckBox7.Checked = True then begin ftype := Trim(ftype + '客户退货'); end; if CheckBox8.Checked = True then begin ftype := Trim(ftype + '冲账'); end; if CheckBox9.Checked = True then begin ftype := Trim(ftype + '税金'); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered := False; sql.Add(' exec P_YSSK_List_mx_TT '); if CheckBox1.Checked = true then begin sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime)))); sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1)))); end else begin sql.Add(' @begdate=''1950-01-01'''); sql.Add(',@Enddate=''2099-12-12'''); end; sql.Add(',@factoryName=' + quotedstr(Trim(factoryName.Text))); case cxTabControl1.TabIndex of 0: begin sql.Add(',@flag=''已审核'' '); end; 1: begin sql.Add(',@flag=''全部'' '); end; end; sql.Add(',@YFGSType=' + quotedstr(Trim(YFGSType.Text))); sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text))); sql.Add(',@YWY=' + quotedstr(Trim(YWY.Text))); if ftype <> '' then begin sql.Add(',@XSTYPE=' + quotedstr(Trim(ftype))); end; Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; Panetime.Visible := false; screen.Cursor := crdefault; end; end; procedure TfrmYSMXlist3.FormDestroy(Sender: TObject); begin frmYSMXlist3 := nil; end; procedure TfrmYSMXlist3.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYSMXlist3.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(self.Caption + '333', Tv1, '财务管理'); Close; end; procedure TfrmYSMXlist3.FormShow(Sender: TObject); begin readCxBandedGrid(self.Caption + '333', Tv1, '财务管理'); // if YWY.Text = '' then // begin // YWY.Text := Trim(DName); // end; // YWY.Enabled := False; end; procedure TfrmYSMXlist3.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSMXlist3.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 TfrmYSMXlist3.P_OrderNo_YSK(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSMXlist3.ToolButton1Click(Sender: TObject); var fname: string; begin if ADOQueryMain.IsEmpty then Exit; fname := StringReplace((self.Caption + '-' + trim(factoryName.Text)), '/', '-', [rfReplaceAll]); // ShowMessage(fname); // SelExportData(Tv2, ADOQuery1, fname); TcxGridToExcel(fname, cxgrid2); end; procedure TfrmYSMXlist3.OrderNoChange(Sender: TObject); begin if Length(Trim(OrderNo.Text)) < 3 then Exit; ToolButton2.Click; end; procedure TfrmYSMXlist3.cpcodeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSMXlist3.FormCreate(Sender: TObject); var fsj: string; begin cxGrid2.Align := AlClient; Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime; fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''应收款登记'' '; SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj); end; procedure TfrmYSMXlist3.ToolButton3Click(Sender: TObject); var filepath: string; mBegdate, mEnddate: string; fQC, fqm, fzdj: Double; begin if CDS_HZ.IsEmpty then exit; CDS_HZ.last; fqm := CDS_HZ.fieldbyname('moneyYE').Value; CDS_HZ.First; fQC := CDS_HZ.fieldbyname('moneyYE').Value + CDS_HZ.fieldbyname('money').Value - CDS_HZ.fieldbyname('ymoney').Value; fzdj := CDS_HZ.fieldbyname('ZDJMONEY').Value; // ShowMessage(FloatToStr(fQC)); try filepath := ExtractFilePath(Application.ExeName) + 'report\应收款对账单.rmf'; ExportFtErpFile('应收款对账单.rmf', ADOQueryTemp); if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件[' + filepath + ']不存在!'), '提示信息', MB_IConError); exit; end; RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date); RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date); RmVariables['ishs'] := Trim(ishs.Text); RMVariables['zdr'] := trim(DName); RMVariables['QCMONEY'] := trim(FloatToStr(fQC)); RMVariables['QMMONEY'] := trim(FloatToStr(fqm)); RMVariables['ZDJMONEY'] := trim(FloatToStr(fzdj)); // RmVariables['begDate'] := FormatDateTime('yymmdd', begDate.Date) + '-' + FormatDateTime('yymmdd', enddate.Date); RMGridReport1.LoadFromFile(filepath); // RMGridReport1.PrintReport; RMGridReport1.ShowReport; finally end; end; procedure TfrmYSMXlist3.factoryNameBtnClick(Sender: TObject); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin canshu1 := '组长'; if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); InitGrid(); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmYSMXlist3.V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); begin if ARow1.Values[V1Column10.Index] = ARow2.Values[V1Column10.Index] then AAreEqual := True else AAreEqual := False; end; procedure TfrmYSMXlist3.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('keyNO').Index]) mod 2 = 0 then begin ACanvas.Brush.Color := $EEF5FF; end else begin ACanvas.Brush.Color := $FFF8F0; end; end; procedure TfrmYSMXlist3.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYSMXlist3.YWYChange(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 TfrmYSMXlist3.XSTYPEChange(Sender: TObject); begin InitGrid(); end; procedure TfrmYSMXlist3.TV1Column9PropertiesChange(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_SUB SET SEASON=' + QuotedStr(Trim(mvalue))); sql.Add('where YFsID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmYSMXlist3.TV1Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_SUB SET CPKH=' + QuotedStr(Trim(mvalue))); sql.Add('where YFsID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmYSMXlist3.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYSMXlist3.CheckBox2Click(Sender: TObject); begin initgrid(); end; end.