unit U_CaiGouSQChkList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, cxDropDownEdit, cxCheckBox, Menus; type TfrmCaiGouSQChkList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; ToolButton3: TToolButton; Panel1: TPanel; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column7: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column11: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; TBFind: TToolButton; YCLName: TEdit; Label4: TLabel; SQPerson: TEdit; Label5: TLabel; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column6: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton4: TToolButton; cxTabControl1: TcxTabControl; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Label3: TLabel; YCLSpec: TEdit; v1SQPirce: TcxGridDBColumn; v1SQGYSName: TcxGridDBColumn; Label6: TLabel; SQGYSName: TEdit; v1SQMoney: TcxGridDBColumn; v1Column14: TcxGridDBColumn; Label7: TLabel; ChkNote: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure YCLNameChange(Sender: TObject); procedure v1Column14PropertiesEditValueChanged(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); private canshu1,canshu2:string; procedure InitGrid(); procedure InitForm(); { Private declarations } public { Public declarations } end; implementation uses U_DataLink,U_RTFun,U_CaiGouSQInPut,U_ModuleNote; {$R *.dfm} procedure TfrmCaiGouSQChkList.FormDestroy(Sender: TObject); begin //frmCaiGouSQChkList:=nil; end; procedure TfrmCaiGouSQChkList.FormClose(Sender: TObject; var Action: TCloseAction); begin application:=mainapplication; Action:=caFree; end; procedure TfrmCaiGouSQChkList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid(Self.Caption,Tv1,'采购申请管理'); end; procedure TfrmCaiGouSQChkList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); SQL.Add(' from CaiGou_SQ A where isnull(SChkStatus,'''')<>'''' and SQType='''+Trim(canshu2)+''''); if cxTabControl1.TabIndex=0 then begin sql.Add(' and isnull(ChkStatus,'''')='''' '); end else if cxTabControl1.TabIndex=1 then begin sql.Add(' and isnull(ChkStatus,'''')=''审批通过'' '); end; if cxTabControl1.TabIndex<>0 then begin sql.Add(' and A.SQDate>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and A.SQDate<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); end; sql.Add(' order by SQDate'); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCaiGouSQChkList.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid(Self.Caption,Tv1,'采购申请管理'); InitGrid(); end; procedure TfrmCaiGouSQChkList.TBExportClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; TcxGridToExcel('采购申请审批列表',cxGrid1); end; procedure TfrmCaiGouSQChkList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQChkList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmCaiGouSQChkList.cxPageControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQChkList.ToolButton3Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='采购申请登记'; if ShowModal=1 then begin end; end; finally; frmModuleNote.Free; end; end; procedure TfrmCaiGouSQChkList.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); end; procedure TfrmCaiGouSQChkList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQChkList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmCaiGouSQChkList.ToolButton1Click(Sender: TObject); begin if cxTabControl1.TabIndex<>0 then Exit; if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; Order_Main.DisableControls; with Order_Main do begin First; while Locate('SSel',True,[])=True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CaiGou_SQ Set ChkStatus=''审批通过'',Chktime=getdate(),Chker='''+Trim(DName)+''''); sql.Add(' where SQID='''+Trim(Order_Main.fieldbyname('SQID').AsString)+''''); ExecSQL; end; Order_Main.Delete; end; end; Order_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; except Order_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmCaiGouSQChkList.ToolButton4Click(Sender: TObject); begin if cxTabControl1.TabIndex<>1 then Exit; if Order_Main.IsEmpty then Exit; if Order_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Application.MessageBox('确定要执行此操作吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; Order_Main.DisableControls; with Order_Main do begin First; while Locate('SSel',True,[])=True do begin {with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CaiGou_SQ '); sql.Add(' where SQID='''+Trim(Order_Main.fieldbyname('SQID').AsString)+''''); Open; end; if Trim(ADOQueryTemp.fieldbyname('ChkStatus').AsString)='已审批' then begin Order_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; InitGrid(); Application.MessageBox('已审批的数据不能撤销!','提示',0); Exit; end; } with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CaiGou_SQ Set ChkStatus=Null,Chktime=getdate(),Chker='''+Trim(DName)+''''); sql.Add(' where SQID='''+Trim(Order_Main.fieldbyname('SQID').AsString)+''''); ExecSQL; end; Order_Main.Delete; end; end; Order_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; except Order_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!','提示',0); end; end; procedure TfrmCaiGouSQChkList.YCLNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmCaiGouSQChkList.v1Column14PropertiesEditValueChanged( Sender: TObject); var mvalue:String; begin mvalue:=TcxTextEdit(Sender).EditingText; with Order_Main do begin Edit; FieldByName('ChkNote').Value:=mvalue; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CaiGou_SQ Set ChkNote='''+Trim(mvalue)+''''); sql.Add(' where SQID='''+Trim(Order_Main.fieldbyname('SQID').AsString)+''''); ExecSQL; end; end; procedure TfrmCaiGouSQChkList.N1Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmCaiGouSQChkList.N2Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; end.