unit U_JGSXKNewList; 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 TfrmJGSXNewList = 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; Label12: TLabel; CRType: TComboBox; Label6: TLabel; FactoryName: TEdit; cxTabControl1: TcxTabControl; TTJ: TToolButton; TCXTJ: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1CRTime: TcxGridDBColumn; v1CRType: TcxGridDBColumn; v1FactoryName: TcxGridDBColumn; v1YLName: TcxGridDBColumn; v2Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1tuobie: TcxGridDBColumn; v1dunWei: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Ssel: TcxGridDBColumn; Label7: TLabel; tuobie: TEdit; v1CheDui: TcxGridDBColumn; Label8: TLabel; CheDui: TEdit; v1YLQName: TcxGridDBColumn; Label3: TLabel; YLName: TEdit; Label9: TLabel; YLQName: TEdit; v1filltime: TcxGridDBColumn; v1YFPrice: TcxGridDBColumn; v1CheQty: TcxGridDBColumn; v1DHDate: TcxGridDBColumn; 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 SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure OrderNoChange(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 frmJGSXNewList: TfrmJGSXNewList; implementation uses U_DataLink,U_RTFun,U_SXCKInPut, U_JGSXCKInPut; {$R *.dfm} procedure TfrmJGSXNewList.setstatus(); begin TBAdd.Visible:=False; TBEdit.Visible:=false; TBDel.Visible:=False; TTJ.Visible:=False; TCXTJ.Visible:=False; 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; procedure TfrmJGSXNewList.FormDestroy(Sender: TObject); begin frmJGSXNewList:=nil; end; procedure TfrmJGSXNewList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmJGSXNewList.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-30; canshu1:=Trim(DParameters1); canshu2:=Trim(DParameters2); canshu3:=Trim(DParameters3); end; procedure TfrmJGSXNewList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CK_SXPB_CR A'); sql.add(' where A.filltime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.date))+''''); sql.Add(' and A.filltime<='''+Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1))+''''); sql.Add(' and isnull(CKName,'''')=''原料'''); SQL.Add(' and CRFlag=''入库'' '); 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; if Trim(canshu1)<>'高权限' then begin sql.Add(' and A.Filler='''+Trim(DName)+''''); end; SQL.Add(' order by A.CRTime'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmJGSXNewList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmJGSXNewList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmJGSXNewList.TBCloseClick(Sender: TObject); begin WriteCxGrid('原料入库列表FM',Tv1,'原料仓库'); Close; end; procedure TfrmJGSXNewList.FormShow(Sender: TObject); begin ReadCxGrid('原料入库列表FM',Tv1,'原料仓库'); if Trim(canshu2)='查看' then begin TBAdd.Visible:=False; TBDel.Visible:=False; TBEdit.Visible:=False; end else begin TBAdd.Visible:=True; TBDel.Visible:=True; TBEdit.Visible:=True; end; //InitGrid(); end; procedure TfrmJGSXNewList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('原料入库列表',cxGrid2); end; procedure TfrmJGSXNewList.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 TfrmJGSXNewList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmJGSXNewList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmJGSXNewList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Trim(CDS_Main.fieldbyname('SPID').AsString)<>'' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where Mainid='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已产生费用,不能删除!','提示',0); Exit; end; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.Delete; except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!','提示',0); end; end else begin CDS_Main.Delete; end; end; procedure TfrmJGSXNewList.TBAddClick(Sender: TObject); begin try frmJGSXCKInPut:=TfrmJGSXCKInPut.Create(Application); with frmJGSXCKInPut do begin FBCId:=''; frmJGSXCKInPut.canshu3:=Trim(Self.canshu3); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmJGSXCKInPut.Free; end; end; procedure TfrmJGSXNewList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; ToolBar1.SetFocus; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where Mainid='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已产生费用,不能修改!','提示',0); Exit; end; try frmJGSXCKInPut:=TfrmJGSXCKInPut.Create(Application); with frmJGSXCKInPut do begin FBCId:=Trim(CDS_Main.fieldbyname('SPID').AsString); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmJGSXCKInPut.Free; end; end; procedure TfrmJGSXNewList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmJGSXNewList.SPIDChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmJGSXNewList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmJGSXNewList.OrderNoChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmJGSXNewList.cxTabControl1Change(Sender: TObject); begin setstatus(); InitGrid(); end; procedure TfrmJGSXNewList.TTJClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if CDS_Main.Locate('Ssel',True,[])=false then begin application.MessageBox('没有选择数据','提示'); exit; end; CDS_Main.DisableConstraints; 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 CK_SXPB_CR 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; CDS_Main.EnableConstraints; application.MessageBox('操作成功','提示'); end; procedure TfrmJGSXNewList.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 CK_SXPB_CR 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.