unit U_BpRklist; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxPC; type TfrmBpRklist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1P_CodeName: TcxGridDBColumn; v1P_SPEC: TcxGridDBColumn; v1P_MF: TcxGridDBColumn; v1P_KZ: TcxGridDBColumn; v1RollNum: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Note: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1CRType: TcxGridDBColumn; v1CRTime: TcxGridDBColumn; v1Filler: TcxGridDBColumn; v1FillTime: TcxGridDBColumn; Label2: TLabel; Label3: TLabel; Label4: TLabel; P_CodeName: TEdit; P_Code: TEdit; CRType: TComboBox; Label5: TLabel; ADOQueryCmd: TADOQuery; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; CDS_Main: TClientDataSet; cxGridPopupMenu1: TcxGridPopupMenu; v1CPType: TcxGridDBColumn; ckName: TComboBox; Label6: TLabel; v1P_Color: TcxGridDBColumn; v1P_Code: TcxGridDBColumn; TBAddSM: TToolButton; v1INoutNo: TcxGridDBColumn; Label7: TLabel; ywy: TEdit; v1ywy: TcxGridDBColumn; v1Column1: TcxGridDBColumn; kuwei: TEdit; Label8: TLabel; v1Column3: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxTabControl1: TcxTabControl; v1editer: TcxGridDBColumn; v1editTime: TcxGridDBColumn; v1DefStr6: TcxGridDBColumn; Label9: TLabel; factoryName: TEdit; P_Color: TEdit; Label10: TLabel; Tchk: TToolButton; Tnochk: TToolButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure P_CodeNameChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBAddSMClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure TBFindClick(Sender: TObject); private procedure InitGrid(); procedure SetComboBox(); procedure Setstatus(); { Private declarations } public fCKName:string; canshu1:string; { Public declarations } end; var frmBpRklist: TfrmBpRklist; implementation uses U_DataLink,U_Fun10,U_ZDYHelp, U_BpRk, U_BpSmRk; {$R *.dfm} procedure TfrmBpRklist.SetStatus(); begin TBedit.Visible:=false; Tbdel.Visible:=false; Tchk.Visible:=false; Tnochk.Visible:=false; IF trim(canshu1)='' then begin case cxTabControl1.TabIndex of 0:begin TBedit.Visible:=true; Tbdel.Visible:=true; end; 1:begin // tbcdel.Visible:=true; end; end; end else begin case cxTabControl1.TabIndex of 0:begin TBedit.Visible:=true; Tbdel.Visible:=true; Tchk.Visible:=true; end; 1:begin Tnochk.Visible:=true; end; end; end; end; procedure TfrmBpRklist.SetComboBox(); begin ckName.Items.Clear; with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''YPCK'' '); if trim(fCKName)<>'' then sql.Add('and zdyName='+quotedstr(trim(fCKName))); open; while not eof do begin ckName.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if ckName.Items.Count>0 then ckName.ItemIndex:=0; CRType.Items.Clear; CRType.Items.Add(''); with adoQueryTmp do begin close; sql.Clear; sql.Add('select * from KH_ZDY where Type=''YPRKTYPE'''); if trim(fCKName)<>'' then sql.Add('and note='+quotedstr(trim(fCKName))); open; while not eof do begin CRType.Items.Add(trim(fieldbyname('zdyName').AsString)); next; end; end; if CRType.Items.Count>0 then CRType.ItemIndex:=0; end; procedure TfrmBpRklist.InitGrid(); begin try with adoqueryTmp do begin close; sql.Clear; sql.Add('select A.*,B.CYMF,B.CYKZ,B.defnote5,B.defstr6 from YP_InOut A'); sql.Add('left join CP_YDang B on B.CYNO=A.P_Code'); sql.Add('where CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' '); sql.Add('and CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' '); sql.Add('and CRFlag=''入库'' '); sql.Add('and valid=''Y'' '); if trim(FckName)<>'' then sql.Add('and ckName='+quotedstr(trim(fckName)) ); if cxTabControl1.TabIndex<2 then sql.Add('and A.status='''+inttostr(cxTabControl1.TabIndex)+''' '); open; end; SCreateCDS20(adoqueryTmp,CDS_Main); SInitCDSData20(adoqueryTmp,CDS_Main); finally end; end; procedure TfrmBpRklist.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxGrid(self.Caption,Tv1,'成品仓库'); Action:=cafree; end; procedure TfrmBpRklist.FormDestroy(Sender: TObject); begin frmBpRklist:=nil; end; procedure TfrmBpRklist.TBAddClick(Sender: TObject); begin frmbpRk:=TfrmbpRk.create(self); with frmbpRk do begin fkeyNo:=''; fType:=0; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; end; procedure TfrmBpRklist.P_CodeNameChange(Sender: TObject); begin if ADOQueryTmp.Active=False then Exit; SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryTmp,CDS_Main); SInitCDSData20(ADOQueryTmp,CDS_Main); end; procedure TfrmBpRklist.FormShow(Sender: TObject); begin readCxGrid(self.Caption,Tv1,'成品仓库'); SetComboBox(); SetStatus(); InitGrid(); end; procedure TfrmBpRklist.FormCreate(Sender: TObject); begin BegDate.Date:=DServerDate-7; EndDate.Date:=DServerDate; cxGrid1.Align:=alclient; end; procedure TfrmBpRklist.TBCloseClick(Sender: TObject); begin close; end; procedure TfrmBpRklist.TBEditClick(Sender: TObject); var rkNum,ckNum:double; begin if CDS_Main.IsEmpty then Exit; { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then begin Application.MessageBox('不能操作他人的数据!','提示',0); Exit; end; } rkNum:=0.0; ckNum:=0.0; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select sum(Qty)as Qty from YP_InOut A'); SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' '); SQL.Add('and A.CRNO<'''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.CRFlag=''入库'''); sQL.Add('and A.valid=''Y'''); Open; end; if not ADOQueryCmd.IsEmpty then begin rkNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select sum(Qty)as Qty from YP_InOut A'); SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' '); sQL.Add('and A.CRFlag=''出库'''); sQL.Add('and A.valid=''Y'''); Open; end; if not ADOQueryCmd.IsEmpty then begin ckNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat; end; IF rkNum< ckNum then begin Application.MessageBox('已产生出库数据,不能修改!','提示',0); exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_money_CR A'); SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.status>=''1'' '); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('应收款数据已审核,不能修改!','提示',0); Exit; end; frmbpRk:=TfrmbpRk.create(self); with frmbpRk do begin fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString; fType:=1; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; end; procedure TfrmBpRklist.TBDelClick(Sender: TObject); var rkNum,ckNum:double; begin if CDS_Main.IsEmpty then Exit; { if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then begin Application.MessageBox('不能操作他人的数据!','提示',0); Exit; end; } rkNum:=0.0; ckNum:=0.0; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select sum(Qty)as Qty from YP_InOut A'); SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' '); SQL.Add('and A.CRNO<'''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.CRFlag=''入库'''); sQL.Add('and A.valid=''Y'''); Open; end; if not ADOQueryCmd.IsEmpty then begin rkNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select sum(Qty)as Qty from YP_InOut A'); SQL.Add('where A.P_Code='''+Trim(CDS_Main.fieldbyname('P_Code').AsString)+''' '); sQL.Add('and A.CRFlag=''出库'''); sQL.Add('and A.valid=''Y'''); Open; end; if not ADOQueryCmd.IsEmpty then begin ckNum:= ADOQueryCmd.fieldbyname('Qty').AsFloat; end; IF rkNum< ckNum then begin Application.MessageBox('已产生出库数据,不能删除!','提示',0); exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_money_CR A'); SQL.Add('where A.mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); sQL.Add('and A.status>=''1'' '); Open; end; if not ADOQueryCmd.IsEmpty then begin Application.MessageBox('应收款数据已审核,不能删除!','提示',0); Exit; end; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; try with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update YP_InOut SET valid=''N'' '); sql.Add(',editer='+quotedstr(trim(DName))); sql.Add(',edittime=getdate()'); SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); SQL.Add('and CRID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' '); sql.Add('delete from YF_money_CR '); SQL.Add('where mainID='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); SQL.Add('and subID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' '); { sql.Add('delete from YP_InOut '); SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); SQL.Add('and CRID='''+Trim(CDS_Main.fieldbyname('CRID').AsString)+''' '); sql.Add('delete from YP_kc '); SQL.Add('where CRNO='''+Trim(CDS_Main.fieldbyname('CRNO').AsString)+''' '); } execsql; end; TBRafresh.Click; except Application.MessageBox('数据删除失败!','提示信息',0); end; end; procedure TfrmBpRklist.TBRafreshClick(Sender: TObject); begin initGrid(); end; procedure TfrmBpRklist.TBPrintClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmBpRklist.TBExportClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmBpRklist.TBAddSMClick(Sender: TObject); begin frmBpSmRk:=TfrmBpSmRk.create(self); with frmBpSmRk do begin fkeyNo:=''; fType:=0; fckName:=self.fckName; if showmodal=1 then begin TBRafresh.Click; // self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ; end; free; end; end; procedure TfrmBpRklist.cxTabControl1Change(Sender: TObject); begin SetStatus(); initGrid(); end; procedure TfrmBpRklist.TchkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YP_InOut SET status=''1'' '); sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; application.MessageBox('审核成功!','提示信息'); TBRafresh.Click; except application.MessageBox('审核失败!','提示信息',0); end; end; procedure TfrmBpRklist.TnochkClick(Sender: TObject); begin if CDS_Main.IsEmpty then exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YP_InOut SET status=''0'' '); sql.Add('where CRNO='+quotedstr(trim(CDS_Main.fieldbyname('CRNO').AsString))); execsql; end; application.MessageBox('撤销审核成功!','提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!','提示信息',0); end; end; procedure TfrmBpRklist.TBFindClick(Sender: TObject); begin if ADOQueryTmp.Active=False then Exit; SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryTmp,CDS_Main); SInitCDSData20(ADOQueryTmp,CDS_Main); end; end.