unit U_MYSC_CKTJ; 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,DateUtils, cxButtonEdit, cxTextEdit, cxDropDownEdit, RM_e_Xls, BtnEdit, cxPC; type TfrmMYSC_CKTJ = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; Label4: TLabel; OrdDefNote3: TComboBox; ToolButton3: TToolButton; RMXLSExport1: TRMXLSExport; Panetime: TPanel; cxTabControl1: TcxTabControl; Panel2: TPanel; begdate: TDateTimePicker; Panel3: TPanel; Label1: TLabel; FBegDate: TDateTimePicker; FEndDate: TDateTimePicker; Panel4: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v1Column9: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column2: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1LJQty: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; RadioGroup1: TRadioGroup; Label34: TLabel; Label3: TLabel; Label5: TLabel; Label6: TLabel; MYCode: TEdit; MYName: TEdit; Note: TEdit; GYLXName: TEdit; Label7: TLabel; MYColor: TEdit; Label8: TLabel; Edit1: TEdit; Label9: TLabel; Edit2: TEdit; CheckBox1: TCheckBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure v2Column3PropertiesEditValueChanged(Sender: TObject); procedure v2Column3CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure ToFactoryNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure MYNameChange(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure DateSel(FMonth:string); public { Public declarations } RKFlag,FCYID:String; fType,FMX:string; PState:Integer; end; var frmMYSC_CKTJ: TfrmMYSC_CKTJ; implementation uses U_DataLink,U_Fun,U_ZDYHelp,U_RTFun,U_ZdyAttachGYS, U_KHListSelJJ; {$R *.dfm} procedure TfrmMYSC_CKTJ.DateSel(FMonth:string); var FYMD:Tdatetime; FRQ:string; i:Integer; begin {FYMD:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-'+FMonth+'-01'); FRQ:=FormatDateTime('dd',EndOfTheMonth(FYMD)); cxTabControl2.Tabs.Clear; for i:=0 to StrToInt(FRQ)-1 do begin cxTabControl2.Tabs.Add(' '+IntToStr(i+1)+'日'); end;} end; procedure TfrmMYSC_CKTJ.InitGrid(); var FYue,FRQ,FDate,Fdate1:string; FInt,Fint1:Integer; begin FInt:=cxTabControl1.TabIndex+1; FYue:=Trim(IntToStr(FInt)); if FInt<10 then begin FYue:='0'+Trim(IntToStr(FInt)); end; FDate:=Trim(FormatDateTime('yyyy',begdate.Date))+'-'+FYue; FBegDate.Date:=StrToDate(Fdate+'-01'); if FInt=12 then FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-12-31') else FEndDate.Date:=StrToDate(Trim(FormatDateTime('yyyy',begdate.Date))+'-'+Trim(IntToStr(FInt+1))+'-01')-1; 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 Filtered:=False; Close; SQL.Clear; if RadioGroup1.ItemIndex=0 then begin sql.Add(' exec P_Qry_Ysk_CKMonth :FDate,:MYName,:GYLXName,:MYCode,:Note,:MYColor'); Parameters.ParamByName('FDate').Value:=Trim(Fdate); if Trim(MYName.Text)='' then Parameters.ParamByName('MYName').Value:=NULL else Parameters.ParamByName('MYName').Value:=Trim(MYName.Text); if Trim(GYLXName.Text)='' then Parameters.ParamByName('GYLXName').Value:=NULL else Parameters.ParamByName('GYLXName').Value:=Trim(GYLXName.Text); if Trim(MYCode.Text)='' then Parameters.ParamByName('MYCode').Value:=NULL else Parameters.ParamByName('MYCode').Value:=Trim(MYCode.Text); if Trim(Note.Text)='' then Parameters.ParamByName('Note').Value:=NULL else Parameters.ParamByName('Note').Value:=Trim(Note.Text); if Trim(MYColor.Text)='' then Parameters.ParamByName('MYColor').Value:=NULL else Parameters.ParamByName('MYColor').Value:=Trim(MYColor.Text); end else if RadioGroup1.ItemIndex=1 then begin sql.Add(' exec P_Qry_Ysk_CK :FBegDate,:FEndDate,:MYName,:GYLXName,:MYCode,:Note,:MYColor'); Parameters.ParamByName('FBegdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FBegDate.Date)); Parameters.ParamByName('FEndDate').Value:=Trim(FormatDateTime('yyyy-MM-dd',FEndDate.Date+1)); if Trim(MYName.Text)='' then Parameters.ParamByName('MYName').Value:=NULL else Parameters.ParamByName('MYName').Value:=Trim(MYName.Text); if Trim(GYLXName.Text)='' then Parameters.ParamByName('GYLXName').Value:=NULL else Parameters.ParamByName('GYLXName').Value:=Trim(GYLXName.Text); if Trim(MYCode.Text)='' then Parameters.ParamByName('MYCode').Value:=NULL else Parameters.ParamByName('MYCode').Value:=Trim(MYCode.Text); if Trim(Note.Text)='' then Parameters.ParamByName('Note').Value:=NULL else Parameters.ParamByName('Note').Value:=Trim(Note.Text); if Trim(MYColor.Text)='' then Parameters.ParamByName('MYColor').Value:=NULL else Parameters.ParamByName('MYColor').Value:=Trim(MYColor.Text); end; Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; Panetime.Visible:=false; screen.Cursor:=crdefault; end; end; procedure TfrmMYSC_CKTJ.FormDestroy(Sender: TObject); begin frmMYSC_CKTJ:=nil; end; procedure TfrmMYSC_CKTJ.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmMYSC_CKTJ.TBCloseClick(Sender: TObject); begin WriteCxGrid('应收款对账单YX1',Tv2,'财务管理'); Close; end; procedure TfrmMYSC_CKTJ.FormShow(Sender: TObject); var fstr,FRQ:string; begin ReadCxGrid('应收款对账单YX1',Tv2,'财务管理'); if Trim(FMX)='' then begin begdate.DateTime:=SGetServerDateMBeg(ADOQueryTemp); fstr:=Trim(FormatDateTime('MM',begdate.Date)); cxTabControl1.TabIndex:=StrToInt(fstr)-1; Panel3.Visible:=False; end else begin RadioGroup1.ItemIndex:=PState; if RadioGroup1.ItemIndex=0 then begin Panel2.Visible:=True; Panel3.Visible:=False; cxTabControl1.Visible:=True; end else if RadioGroup1.ItemIndex=1 then begin Panel2.Visible:=False; Panel3.Visible:=True; cxTabControl1.Visible:=False; end; FBegDate.Date:=SGetServerDate(ADOQueryCmd)-7; FEndDate.Date:=SGetServerDate(ADOQueryCmd); InitGrid(); end; end; procedure TfrmMYSC_CKTJ.TBRafreshClick(Sender: TObject); begin ToolBar1.SetFocus; InitGrid(); end; procedure TfrmMYSC_CKTJ.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2,ADOQueryMain,self.Caption); end; procedure TfrmMYSC_CKTJ.FormCreate(Sender: TObject); begin cxGrid2.Align:=AlClient; end; procedure TfrmMYSC_CKTJ.ToolButton3Click(Sender: TObject); var filepath,fsj:string; mBegdate,mEnddate:string; begin fsj:=cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption; mbegdate:=FormatDateTime('yyyy',begdate.Date)+'年'+Trim(Copy(fsj,3,Length(fsj)-2))+'份'; if CDS_HZ.IsEmpty then exit; try filepath:=ExtractFilePath(Application.ExeName) + 'report\应收款对账单YX.rmf'; if not FileExists(Pchar(filepath)) then begin application.MessageBox(pchar('文件['+filepath+']不存在!'),'提示信息',MB_IConError); exit; end; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',date()); RMVariables['zdr'] :=trim(DName); RmVariables['begDate'] :=mbegdate; RmVariables['endNum'] :=CDS_HZ.fieldbyname('MoneyYe').AsString; RM1.LoadFromFile(filepath); RM1.ShowReport; finally end; end; procedure TfrmMYSC_CKTJ.v2Column3PropertiesEditValueChanged( Sender: TObject); var mvalue:Boolean; begin mvalue:=TcxCheckBox(Sender).EditValue; with CDS_HZ do begin Edit; FieldByName('DZFlag').Value:=mvalue; end; if mvalue=True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR Set DZFlag=1,DZTime=getdate(),DZPerson='''+Trim(DName)+''''); sql.Add(' where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+''''); ExecSQL; end; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR Set DZFlag=0,DZTime=getdate(),DZPerson='''+Trim(DName)+''''); sql.Add(' where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+''''); ExecSQL; end; end; end; procedure TfrmMYSC_CKTJ.v2Column3CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var id:Integer; begin Id:=TV2.GetColumnByFieldName('DZFlag').Index;//;-TV1.GroupedItemCount; if Id<0 then Exit; if AViewInfo.GridRecord.Values[Id]=True then begin ACanvas.Brush.Color:=clRed; end; end; procedure TfrmMYSC_CKTJ.ToFactoryNameChange(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 TfrmMYSC_CKTJ.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmMYSC_CKTJ.RadioGroup1Click(Sender: TObject); begin if RadioGroup1.ItemIndex=0 then begin Panel2.Visible:=True; Panel3.Visible:=False; cxTabControl1.Visible:=True; end else if RadioGroup1.ItemIndex=1 then begin Panel2.Visible:=False; Panel3.Visible:=True; cxTabControl1.Visible:=False; end; InitGrid(); end; procedure TfrmMYSC_CKTJ.MYNameChange(Sender: TObject); begin InitGrid(); end; end.