unit U_YFMXlist2; 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 TfrmYFMXlist2 = 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; V1Column15: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; factoryName: TBtnEditA; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; V1Column13: TcxGridDBBandedColumn; V1Column14: TcxGridDBBandedColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxTabControl1: TcxTabControl; V1Column16: TcxGridDBBandedColumn; V1Column17: TcxGridDBBandedColumn; V1Column18: TcxGridDBBandedColumn; pm1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; btn1: TToolButton; PRICE: TComboBox; lbl1: TLabel; TV1Column1: TcxGridDBBandedColumn; TV1Column2: TcxGridDBBandedColumn; Label7: TLabel; FtySYRName: TEdit; TV1Column3: TcxGridDBBandedColumn; TV1Column4: TcxGridDBBandedColumn; TV1Column5: TcxGridDBBandedColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(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 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 YFGSTypeChange(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure PRICEDropDown(Sender: TObject); procedure PRICEChange(Sender: TObject); procedure FtySYRNameChange(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag, FCYID: string; fType: string; end; var frmYFMXlist2: TfrmYFMXlist2; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ZdyAttachGYS, U_YFKInput, U_FKInput, U_YFMXlist; {$R *.dfm} procedure TfrmYFMXlist2.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_YFFK_List_mx2_CS '); 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; Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; Panetime.Visible := false; screen.Cursor := crdefault; end; end; procedure TfrmYFMXlist2.FormDestroy(Sender: TObject); begin frmYFMXlist2 := nil; end; procedure TfrmYFMXlist2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYFMXlist2.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid('应付款对账单明细1213', Tv1, '财务管理'); Close; end; procedure TfrmYFMXlist2.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYFMXlist2.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 TfrmYFMXlist2.P_OrderNo_YSK(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFMXlist2.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmYFMXlist2.OrderNoChange(Sender: TObject); begin if Length(Trim(OrderNo.Text)) < 3 then Exit; ToolButton2.Click; end; procedure TfrmYFMXlist2.FormCreate(Sender: TObject); var fsj: string; begin readCxBandedGrid('应付款对账单明细1213', Tv1, '财务管理'); 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 TfrmYFMXlist2.ToolButton3Click(Sender: TObject); var filepath: string; mBegdate, mEnddate: string; begin mBegdate := FormatDateTime('yyyy-MM-dd', begdate.Date); mEnddate := FormatDateTime('yyyy-MM-dd', enddate.Date); if CDS_HZ.IsEmpty then exit; with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' exec P_YFFK_List_mx :begdate,:enddate,:factoryName'); Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime)); Parameters.ParamByName('Enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1)); Parameters.ParamByName('factoryName').Value := Trim(factoryName.Text); Open; end; 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['zdr'] := trim(DName); RMGridReport1.LoadFromFile(filepath); RMGridReport1.ShowReport; finally end; end; procedure TfrmYFMXlist2.factoryNameBtnClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); InitGrid(); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmYFMXlist2.V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); begin if ARow1.Values[V1Column11.Index] = ARow2.Values[V1Column11.Index] then AAreEqual := True else AAreEqual := False; end; procedure TfrmYFMXlist2.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('keyNO2').Index]) mod 2 = 0 then begin ACanvas.Brush.Color := $EEF5FF; end else begin ACanvas.Brush.Color := $FFF8F0; end; end; procedure TfrmYFMXlist2.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFMXlist2.N1Click(Sender: TObject); begin try frmYFKInput := TfrmYFKInput.Create(self); with frmYFKInput do begin FYFID := ''; Fgys := trim(Self.FactoryName.text); if showmodal = 1 then begin initGrid(); end; end; finally frmYFKInput.free; end; end; procedure TfrmYFMXlist2.N2Click(Sender: TObject); begin try frmFKInput := TfrmFKInput.Create(self); with frmFKInput do begin FYFID := ''; Fgys := trim(Self.FactoryName.text); if showmodal = 1 then begin initGrid(); end; end; finally frmFKInput.free; end; end; procedure TfrmYFMXlist2.btn1Click(Sender: TObject); begin if Trim(CDS_HZ.fieldbyname('crtype').AsString) = '应付款管理' then begin try frmYFKInput := TfrmYFKInput.Create(self); with frmYFKInput do begin FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString); ToolButton1.Visible := false; if showmodal = 1 then begin initGrid(); end; end; finally frmYFKInput.free; end; end else begin try frmFKInput := TfrmFKInput.Create(self); with frmFKInput do begin FYFID := Trim(CDS_HZ.fieldbyname('YFID').AsString); if showmodal = 1 then begin initGrid(); end; end; finally frmFKInput.free; end; end; end; procedure TfrmYFMXlist2.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 TfrmYFMXlist2.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 TfrmYFMXlist2.FtySYRNameChange(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.