unit U_FDINVOICE; 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, cxPC; type TfrmFDINVOICE = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; P_CodeName: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; InvoiceNo: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_FP: TDataSource; CDS_FP: TClientDataSet; TADD: TToolButton; TUPDATE: TToolButton; TBDEL: TToolButton; v1InvoiceNo: TcxGridDBColumn; v1InvoiceType: TcxGridDBColumn; v1InvoiceDate: TcxGridDBColumn; v1ToFactoryName: TcxGridDBColumn; v1FactoryName: TcxGridDBColumn; v1note: TcxGridDBColumn; v1P_CodeName: TcxGridDBColumn; v1P_Spec: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1Money: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1PriceUnit: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label4: TLabel; P_Spec: TEdit; Label5: TLabel; FactoryName: TEdit; TCHK: TToolButton; TNOCHK: TToolButton; cxTabControl1: TcxTabControl; TSel: TToolButton; 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 ToolButton1Click(Sender: TObject); procedure InvoiceNoChange(Sender: TObject); procedure TADDClick(Sender: TObject); procedure TUPDATEClick(Sender: TObject); procedure TBDELClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TCHKClick(Sender: TObject); procedure TNOCHKClick(Sender: TObject); procedure TSelClick(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public fInvoiceFlag:string; { Public declarations } end; var frmFDINVOICE: TfrmFDINVOICE; implementation uses U_DataLink,U_Fun,U_ZDYHelp,U_FDINVOICE_Sub; {$R *.dfm} procedure TfrmFDINVOICE.SetStatus(); begin tchk.Visible:=false; tnochk.Visible:=false; TUPDATE.Visible:=false; tbdel.Visible:=false; if trim(DParameters1)<>'高权限' then begin case cxTabControl1.TabIndex of 0:begin TUPDATE.Visible:=true; tbdel.Visible:=true; end; 1:begin end; 2:begin end; end; end else begin case cxTabControl1.TabIndex of 0:begin tchk.Visible:=true; TUPDATE.Visible:=true; tbdel.Visible:=true; end; 1:begin tnochk.Visible:=true; end; 2:begin end; end; end; IF fInvoiceFlag='' then fInvoiceFlag:='1'; end; procedure TfrmFDINVOICE.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select A.*,B.* from FD_Invoice A '); sql.add('inner join FD_Invoicesub B on B.InvoiceNo=A.InvoiceNo '); sql.add('where A.InvoiceDate>='''+formatdatetime('yyyy-MM-dd',begdate.datetime)+''' '); sql.Add(' and A.InvoiceDate<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''' '); sql.Add(' and InvoiceFlag='''+fInvoiceFlag+''' '); if cxTabControl1.TabIndex=0 then sql.add(' and A.Chkstatus=''0'''); if cxTabControl1.TabIndex=1 then sql.add(' and A.Chkstatus=''1'''); Open; end; SCreateCDS20(ADOQueryMain,CDS_FP); SInitCDSData20(ADOQueryMain,CDS_FP); finally ADOQueryMain.EnableControls; end; end; procedure TfrmFDINVOICE.FormDestroy(Sender: TObject); begin frmFDINVOICE:=nil; end; procedure TfrmFDINVOICE.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmFDINVOICE.TBCloseClick(Sender: TObject); begin WriteCxGrid('发票管理',Tv1,'财务管理'); Close; end; procedure TfrmFDINVOICE.FormShow(Sender: TObject); begin ReadCxGrid('发票管理',Tv1,'财务管理'); Enddate.DateTime:=SGetServerDate(ADOQueryTemp); begdate.DateTime:=Enddate.DateTime-30; SetStatus(); InitGrid(); end; procedure TfrmFDINVOICE.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmFDINVOICE.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_FP); SInitCDSData20(ADOQueryMain,CDS_FP); end; end; procedure TfrmFDINVOICE.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1,ADOQueryMain,'发票列表'); end; procedure TfrmFDINVOICE.InvoiceNoChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmFDINVOICE.TADDClick(Sender: TObject); begin FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self); with FrmInvoice_Sub do begin FInvoiceNo:=''; fInvoiceFlag:=self.fInvoiceFlag; if showmodal=1 then begin initGrid(); end; free; end; end; procedure TfrmFDINVOICE.TUPDATEClick(Sender: TObject); begin FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self); with FrmInvoice_Sub do begin InvoiceNo.Enabled:=False; FInvoiceNo:=trim(CDS_FP.fieldbyname('InvoiceNo').asstring); fInvoiceFlag:=self.fInvoiceFlag; if showmodal=1 then begin initGrid(); end; free; end; end; procedure TfrmFDINVOICE.TBDELClick(Sender: TObject); begin if CDS_FP.IsEmpty then exit; if application.MessageBox('确定要删除发票吗?','提示',1)=2 then exit; with ADOQueryMain do begin close; sql.Clear; sql.add('delete from FD_Invoicesub where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' '); sql.add('delete from FD_Invoice where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' '); execsql; end; initGrid(); end; procedure TfrmFDINVOICE.cxTabControl1Change(Sender: TObject); begin SetStatus(); initGrid(); end; procedure TfrmFDINVOICE.TCHKClick(Sender: TObject); begin if CDS_FP.IsEmpty then exit; try with ADOQueryMain do begin close; sql.Clear; sql.add('update FD_Invoicesub set Chker='''+trim(DName)+''',Chktime=getdate(),chkstatus=''1'' '); sql.add('where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' '); execsql; end; application.MessageBox('审核成功','提示'); initGrid(); except; application.MessageBox('审核失败','提示'); end; end; procedure TfrmFDINVOICE.TNOCHKClick(Sender: TObject); begin if CDS_FP.IsEmpty then exit; try with ADOQueryMain do begin close; sql.Clear; sql.add('update FD_Invoicesub set Chker=null,Chktime=null,chkstatus=''0'' '); sql.add('where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' '); execsql; end; application.MessageBox('撤销成功','提示'); initGrid(); except; application.MessageBox('撤销失败','提示'); end; end; procedure TfrmFDINVOICE.TSelClick(Sender: TObject); begin FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self); with FrmInvoice_Sub do begin TSave.Visible:=False; ToolBar2.Enabled:=False; FInvoiceNo:=trim(CDS_FP.fieldbyname('InvoiceNo').asstring); fInvoiceFlag:=self.fInvoiceFlag; if showmodal=1 then begin end; end; end; end.