unit U_CLShuiPiao; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, cxPC; type TfrmCLShuiPiao = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; TBDel: TToolButton; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TBAdd: TToolButton; TBEdit: TToolButton; Label4: TLabel; Label12: TLabel; GCName: TEdit; Label6: TLabel; CPNo: TEdit; cxTabControl1: TcxTabControl; TTJ: TToolButton; TCXTJ: TToolButton; Label3: TLabel; SJName: TEdit; Label5: TLabel; CLSpec: TEdit; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1CRTime: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1SJName: TcxGridDBColumn; v1CLSpec: TcxGridDBColumn; v1CPNo: TcxGridDBColumn; v1JPSpec: TcxGridDBColumn; v1CheHao: TcxGridDBColumn; v2CPFLQty: TcxGridDBColumn; v1GLQty: TcxGridDBColumn; v1CLQty: TcxGridDBColumn; v1SPQty: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; JPSpec: TEdit; v1SPType: TcxGridDBColumn; Label7: TLabel; Label8: TLabel; SPType: TEdit; v1KKMoney: TcxGridDBColumn; v1Ssel: TcxGridDBColumn; Label9: TLabel; Label10: TLabel; BTNo: TEdit; CZName: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure GCNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TTJClick(Sender: TObject); procedure TCXTJClick(Sender: TObject); private canshu1,canshu2,canshu3:string; procedure InitGrid(); procedure setstatus(); { Private declarations } public { Public declarations } end; var frmCLShuiPiao: TfrmCLShuiPiao; implementation uses U_DataLink,U_RTFun,U_SXCKInPut, U_JGSXCKInPut, U_CLShuiPiao_Sub; {$R *.dfm} procedure TfrmCLShuiPiao.setstatus(); begin TBAdd.Visible:=False; TBEdit.Visible:=false; TBDel.Visible:=False; TTJ.Visible:=False; TCXTJ.Visible:=False; cxTabControl1.Visible:=false; if Trim(canshu1)<>'高权限' then begin cxTabControl1.Visible:=true; if cxTabControl1.TabIndex=0 then begin TBAdd.Visible:=true; TBEdit.Visible:=true; TBDel.Visible:=true; TTJ.Visible:=true; end; if cxTabControl1.TabIndex=1 then begin TCXTJ.Visible:=true; end; end else begin cxTabControl1.TabIndex:=2; end; end; procedure TfrmCLShuiPiao.FormDestroy(Sender: TObject); begin frmCLShuiPiao:=nil; end; procedure TfrmCLShuiPiao.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmCLShuiPiao.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-1; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); canshu3:=Trim(DParameters3); end; procedure TfrmCLShuiPiao.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CL_SP_Main A'); sql.add(' where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1))+''''); if cxTabControl1.TabIndex=0 then begin sql.Add(' and isnull(Chkstatus,'''') in ('''',''审核不通过'')'); end; if cxTabControl1.TabIndex=1 then begin sql.Add(' and isnull(Chkstatus,'''')=''已提交'''); end; if cxTabControl1.TabIndex=2 then begin sql.Add(' and isnull(Chkstatus,'''')=''已审核'''); end; SQL.Add(' order by A.CRTime desc'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCLShuiPiao.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmCLShuiPiao.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmCLShuiPiao.TBCloseClick(Sender: TObject); begin WriteCxGrid('水票列表FM1',Tv1,'水票仓库'); Close; end; procedure TfrmCLShuiPiao.FormShow(Sender: TObject); begin ReadCxGrid('水票列表FM1',Tv1,'水票仓库'); setstatus(); //InitGrid(); end; procedure TfrmCLShuiPiao.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('水票列表',cxGrid2); end; procedure TfrmCLShuiPiao.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmCLShuiPiao.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmCLShuiPiao.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmCLShuiPiao.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('SPID').AsString)<>'' then begin if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; if CDS_Main.Locate('Ssel',True,[])=false then begin application.MessageBox('没有选择数据','提示'); exit; end; with CDS_Main do begin First; while not eof do begin if FieldByName('Ssel').AsBoolean=true then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete from CL_SP_Main where SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; end; next; end; end; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!','提示',0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmCLShuiPiao.TBAddClick(Sender: TObject); begin ToolBar1.SetFocus; try frmCLShuiPiao_Sub:=TfrmCLShuiPiao_Sub.Create(Application); with frmCLShuiPiao_Sub do begin FBCId:=''; frmCLShuiPiao_Sub.canshu3:=Trim(Self.canshu3); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmCLShuiPiao_Sub.Free; end; end; procedure TfrmCLShuiPiao.TBEditClick(Sender: TObject); begin ToolBar1.SetFocus; if CDS_Main.IsEmpty then Exit; try frmCLShuiPiao_Sub:=TfrmCLShuiPiao_Sub.Create(Application); with frmCLShuiPiao_Sub do begin ToolButton1.Visible:=false; ToolButton2.Visible:=false; FBCId:=Trim(CDS_Main.fieldbyname('SPID').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmCLShuiPiao_Sub.Free; end; end; procedure TfrmCLShuiPiao.SPIDChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLShuiPiao.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLShuiPiao.GCNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCLShuiPiao.cxTabControl1Change(Sender: TObject); begin setstatus(); InitGrid(); end; procedure TfrmCLShuiPiao.TTJClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('Ssel',True,[])=false then begin application.MessageBox('没有选择数据','提示'); exit; end; with CDS_Main do begin First; while not eof do begin if FieldByName('Ssel').AsBoolean=true then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('Update CL_SP_Main set '); sql.Add('Chker='''+trim(DName)+''',Chkstatus=''已提交'',Chkdate=getdate() '); sql.Add('where SPID='''+trim(CDS_Main.fieldbyname('SPID').AsString)+''''); ExecSQL; end; CDS_Main.Delete; end else next; end; end; application.MessageBox('操作成功','提示'); end; procedure TfrmCLShuiPiao.TCXTJClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('Ssel',True,[])=false then begin application.MessageBox('没有选择数据','提示'); exit; end; with CDS_Main do begin First; while not eof do begin if FieldByName('Ssel').AsBoolean=true then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('Update CL_SP_Main set '); sql.Add('Chker='''',Chkstatus='''',Chkdate=NULL '); sql.Add('where SPID='''+trim(CDS_Main.fieldbyname('SPID').AsString)+''''); ExecSQL; end; CDS_Main.Delete; end else next; end; end; application.MessageBox('操作成功','提示'); end; end.