unit U_CaiGouSQList; 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; type TfrmCaiGouSQList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: 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; v1YCLSpec: 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; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(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); private canshu1,canshu2,ChildFlag:string; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; { Private declarations } public { Public declarations } end; //frmCaiGouSQListJWL: TfrmCaiGouSQList; implementation uses U_DataLink,U_RTFun,U_CaiGouSQInPut,U_ModuleNote; {$R *.dfm} procedure TfrmCaiGouSQList.FormClose(Sender: TObject; var Action: TCloseAction); begin application:=mainapplication; Action:=caFree; end; procedure TfrmCaiGouSQList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid(Self.Caption,Tv1,'采购申请管理'); end; procedure TfrmCaiGouSQList.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 SQType='''+Trim(canshu2)+''''); if Trim(canshu1)<>'高权限' then begin sql.Add(' and Filler='''+Trim(DName)+''''); end; if cxTabControl1.TabIndex=0 then begin sql.Add(' and isnull(SChkStatus,'''')='''' '); end else if cxTabControl1.TabIndex=1 then begin sql.Add(' and isnull(SChkStatus,'''')<>'''' '); 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 TfrmCaiGouSQList.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid(Self.Caption,Tv1,'采购申请管理'); InitGrid(); end; procedure TfrmCaiGouSQList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 then Exit; try frmCaiGouSQInPut:=TfrmCaiGouSQInPut.Create(Application); with frmCaiGouSQInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('SQID').AsString); frmCaiGouSQInPut.ToolButton3.Visible:=False; frmCaiGouSQInPut.ToolButton4.Visible:=False; FSQType:=Trim(Self.canshu2); if ShowModal=1 then begin end; end; finally frmCaiGouSQInPut.Free; end; end; procedure TfrmCaiGouSQList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmCaiGouSQList.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete CaiGou_SQ where SQId='''+Trim(Order_Main.fieldbyname('SQId').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmCaiGouSQList.TBExportClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; TcxGridToExcel('采购申请登记列表',cxGrid1); end; procedure TfrmCaiGouSQList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQList.TBAddClick(Sender: TObject); begin try frmCaiGouSQInPut:=TfrmCaiGouSQInPut.Create(Application); with frmCaiGouSQInPut do begin PState:=0; FMainId:=''; FSQType:=Trim(Self.canshu2); if ShowModal=1 then begin end; end; finally frmCaiGouSQInPut.Free; end; end; procedure TfrmCaiGouSQList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmCaiGouSQList.cxPageControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQList.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 TfrmCaiGouSQList.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); end; procedure TfrmCaiGouSQList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmCaiGouSQList.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 TfrmCaiGouSQList.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 SChkStatus=''已送审'',SChktime=getdate(),SChker='''+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 TfrmCaiGouSQList.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 SChkStatus=Null,SChktime=getdate(),SChker='''+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 TfrmCaiGouSQList.YCLNameChange(Sender: TObject); begin TBFind.Click; end; end.