unit U_YSMXlist; 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, Menus, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmYSMXlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; MPRTCodeName: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; Label3: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; cxGridLevel1: TcxGridLevel; Label2: TLabel; 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; V1Column5: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; V1Column9: TcxGridDBBandedColumn; V1Column12: TcxGridDBBandedColumn; V1Column15: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; factoryName: TBtnEditA; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; V1Column13: TcxGridDBBandedColumn; V1Column14: TcxGridDBBandedColumn; V1Column16: TcxGridDBBandedColumn; V1Column17: TcxGridDBBandedColumn; cxTabControl1: TcxTabControl; V1Column18: TcxGridDBBandedColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; V1Column19: TcxGridDBBandedColumn; Label8: TLabel; ishs: TComboBox; V1Column20: TcxGridDBBandedColumn; V1Column21: TcxGridDBBandedColumn; V1Column22: TcxGridDBBandedColumn; pm1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; btn1: TToolButton; lbl1: TLabel; PRICE: TComboBox; CPName: TEdit; lbl2: TLabel; lbl3: TLabel; cpcode: TEdit; V1Column23: 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 MPRTCodeNameChange(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 N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure PRICEDropDown(Sender: TObject); procedure PRICEChange(Sender: TObject); procedure factoryNameChange(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag, FCYID: string; fType: string; end; var frmYSMXlist: TfrmYSMXlist; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ZdyAttachment, U_YSKInput, U_SKInput; {$R *.dfm} procedure TfrmYSMXlist.InitGrid(); begin if trim(factoryName.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; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered := False; sql.Add(' exec P_YSSK_List_mx '); sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime)))); sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1)))); 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='''' '); sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text))); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; Panetime.Visible := false; screen.Cursor := crdefault; end; end; procedure TfrmYSMXlist.FormDestroy(Sender: TObject); begin frmYSMXlist := nil; end; procedure TfrmYSMXlist.FormClose(Sender: TObject; var Action: TCloseAction); begin WriteCxBandedGrid(self.Caption + '2', Tv1, '应收款对账单管理'); Action := caFree; end; procedure TfrmYSMXlist.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(self.Caption + '2', Tv1, '应收款对账单管理'); Close; end; procedure TfrmYSMXlist.FormShow(Sender: TObject); begin readCxBandedGrid(self.Caption + '2', Tv1, '应收款对账单管理'); end; procedure TfrmYSMXlist.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSMXlist.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 TfrmYSMXlist.P_OrderNo_YSK(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSMXlist.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption + '-' + trim(factoryName.Text), cxgrid2); end; procedure TfrmYSMXlist.OrderNoChange(Sender: TObject); begin if Length(Trim(OrderNo.Text)) < 3 then Exit; ToolButton2.Click; end; procedure TfrmYSMXlist.MPRTCodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSMXlist.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 TfrmYSMXlist.ToolButton3Click(Sender: TObject); var filepath: string; mBegdate, mEnddate: string; begin if CDS_HZ.IsEmpty then exit; try filepath := ExtractFilePath(Application.ExeName) + 'report\应收款对账单.rmf'; 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['begDate'] := FormatDateTime('yymmdd', begDate.Date) + '-' + FormatDateTime('yymmdd', enddate.Date); RMGridReport1.LoadFromFile(filepath); // RMGridReport1.PrintReport; RMGridReport1.ShowReport; finally end; end; procedure TfrmYSMXlist.factoryNameBtnClick(Sender: TObject); begin try frmZdyAttachment := TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); InitGrid(); end; end; finally frmZdyAttachment.Free; end; end; procedure TfrmYSMXlist.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 TfrmYSMXlist.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 TfrmYSMXlist.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYSMXlist.N1Click(Sender: TObject); begin try frmYSKInput := TfrmYSKInput.Create(self); with frmYSKInput do begin FYFID := ''; fkh := trim(Self.factoryName.Text); if showmodal = 1 then begin initGrid(); end; end; finally frmYSKInput.free; end; end; procedure TfrmYSMXlist.N2Click(Sender: TObject); begin try frmSKInput := TfrmSKInput.Create(self); with frmSKInput do begin FYFID := ''; FKH := TRIM(Self.factoryName.Text); if showmodal = 1 then begin initGrid(); end; end; finally frmSKInput.free; end; end; procedure TfrmYSMXlist.btn1Click(Sender: TObject); begin if (Trim(CDS_HZ.fieldbyname('crtype').AsString) = '应收款登记') then begin try frmYSKInput := TfrmYSKInput.Create(self); with frmYSKInput do begin FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString); // ToolButton1.Visible := false; if showmodal = 1 then begin initGrid(); end; end; finally frmYSKInput.free; end; end else begin try frmSKInput := TfrmSKInput.Create(self); with frmSKInput do begin FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString); if showmodal = 1 then begin initGrid(); end; end; finally frmSKInput.free; end; end; end; procedure TfrmYSMXlist.PRICEDropDown(Sender: TObject); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select DISTINCT A.PRICE,B.FactoryName from YF_Money_CR_Sub A '); sql.Add(' inner join YF_Money_CR B on A.YFID=B.YFID '); sql.Add(' where FactoryName=''' + Trim(FactoryName.Text) + ''' '); Open; end; PRICE.Items.Clear; while not ADOQueryTemp.eof do begin PRICE.Items.Add(ADOQueryTemp.fieldbyname('PRICE').AsString); ADOQueryTemp.next; end; end; procedure TfrmYSMXlist.PRICEChange(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 TfrmYSMXlist.factoryNameChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); end; end; end.