unit U_ShaRKList; 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 TfrmShaRKList = 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; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label12: TLabel; SPName: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; CRType: TComboBox; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column1: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; Label10: TLabel; SXPinPai: TEdit; TBZF: TToolButton; cxTabControl1: TcxTabControl; 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 FactoryNameChange(Sender: TObject); procedure TBZFClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); private canshu1,canshu2,canshu3:string; procedure InitGrid(); { Private declarations } public { Public declarations } end; //var // frmShaRKList: TfrmShaRKList; implementation uses U_DataLink,U_RTFun,U_ShaRKInPut; {$R *.dfm} procedure TfrmShaRKList.FormDestroy(Sender: TObject); begin //frmShaRKList:=nil; end; procedure TfrmShaRKList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmShaRKList.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 TfrmShaRKList.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.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''); sql.Add(' and A.CRTime<='''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+''''); sql.Add(' and isnull(CKName,'''')=''机物料'''); SQL.Add(' and CRFlag=''入库'' '); if cxTabControl1.TabIndex=0 then begin Sql.Add(' and ZFFlag=0 '); end else if cxTabControl1.TabIndex=1 then begin Sql.Add(' and ZFFlag=1 '); end; SQL.Add(' order by CRTime desc'); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmShaRKList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmShaRKList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmShaRKList.TBCloseClick(Sender: TObject); begin WriteCxGrid('机物料入库列表',Tv1,'机物料仓库'); Close; end; procedure TfrmShaRKList.FormShow(Sender: TObject); begin ReadCxGrid('机物料入库列表',Tv1,'机物料仓库'); if Trim(Self.Caption)='机物料入库管理' then begin TBEdit.Visible:=False; TBDel.Visible:=False; end else if Trim(Self.Caption)='机物料入库查询' then begin TBAdd.Visible:=False; TBDel.Visible:=False; TBEdit.Visible:=False; TBZF.Visible:=False; cxTabControl1.Visible:=False; end; //InitGrid(); end; procedure TfrmShaRKList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('机物料入库列表',cxGrid2); end; procedure TfrmShaRKList.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 TfrmShaRKList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmShaRKList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmShaRKList.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 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 YFTypeId='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已经生成应付款不能删除!','提示',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); sql.Add(' and CRQtyFlag=-1'); 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 TfrmShaRKList.TBAddClick(Sender: TObject); begin try frmShaRKInPut:=TfrmShaRKInPut.Create(Application); with frmShaRKInPut do begin FBCId:=''; frmShaRKInPut.canshu3:=Trim(Self.canshu3); if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmShaRKInPut.Free; end; end; procedure TfrmShaRKList.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFTypeId='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已经生成应付款不能修改!','提示',0); Exit; end; try frmShaRKInPut:=TfrmShaRKInPut.Create(Application); with frmShaRKInPut do begin FBCId:=Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible:=False; TBAdd.Visible:=False; if ShowModal=1 then begin Self.InitGrid(); end; end; finally frmShaRKInPut.Free; end; end; procedure TfrmShaRKList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text))<4 then begin if Trim(SPID.Text)<>'' then Exit; end; TBFind.Click; end; procedure TfrmShaRKList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmShaRKList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmShaRKList.TBZFClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if cxTabControl1.TabIndex<>0 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 YFTypeId='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('已经生成应付款不能作废!','提示',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where FZSPID='''+Trim(CDS_Main.fieldbyname('SPID').AsString)+''''); sql.Add(' and CRQtyFlag=-1 and ZFFlag=0 '); Open; end; if ADOQueryTemp.IsEmpty=False then begin if Application.MessageBox('已有出库记录,确定连同出库记录一起作废吗?','提示',32+4)<>IDYES then Exit; end else begin if Application.MessageBox('确定要作废此入库记录吗?','提示',32+4)<>IDYES then Exit; end; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate CK_SXPB_CR Set ZFFlag=1,ZFTime=Getdate(),ZFPerson='''+Trim(DName)+''''); sql.Add(' where FZSPID='''+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 TfrmShaRKList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.