unit U_ZZJWLRKList; 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 TfrmZZJWLRKList = 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; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; chkprice: TCheckBox; TBPrice: TToolButton; Label6: TLabel; Note: TEdit; v1Column11: TcxGridDBColumn; Label7: TLabel; FKNote: TEdit; v1Column13: TcxGridDBColumn; v1Column15: TcxGridDBColumn; Label9: TLabel; KuWei: TEdit; 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); procedure TBPriceClick(Sender: TObject); procedure chkpriceClick(Sender: TObject); private canshu1, canshu2, canshu3: string; procedure InitGrid(); procedure SetStatus(); { Private declarations } public { Public declarations } end; //var // frmShaRKList: TfrmShaRKList; implementation uses U_DataLink, U_RTFun, U_ShaRKInPut; {$R *.dfm} procedure TfrmZZJWLRKList.SetStatus(); begin TBAdd.Visible := False; TBDel.Visible := False; TBEdit.Visible := False; TBZF.Visible := False; cxTabControl1.Visible := False; TBPrice.Visible := False; if Trim(Self.Caption) = '机物料入库管理' then begin TBAdd.Visible := True; TBDel.Visible := True; TBEdit.Visible := True; TBZF.Visible := True; cxTabControl1.Visible := True; end; if Trim(Self.Caption) = '机物料入库管理(高权限)' then begin TBAdd.Visible := True; TBDel.Visible := True; TBEdit.Visible := True; TBZF.Visible := True; cxTabControl1.Visible := True; end; if Trim(Self.Caption) = '机物料入库单价修改' then begin TBPrice.Visible := True; end; end; procedure TfrmZZJWLRKList.FormDestroy(Sender: TObject); begin //frmShaRKList:=nil; end; procedure TfrmZZJWLRKList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmZZJWLRKList.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 TfrmZZJWLRKList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' ,JSMoney=price*Qty '); 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 chkprice.Checked then SQL.Add(' and isnull(price,0)=0 '); 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; if Trim(Self.Caption) = '机物料入库管理' then begin Sql.Add(' and Filler=' + quotedstr(Trim(DName))); end; SQL.Add(' order by CRTime desc'); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZZJWLRKList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmZZJWLRKList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmZZJWLRKList.TBCloseClick(Sender: TObject); begin WriteCxGrid('机物料入库列表', Tv1, '机物料仓库'); Close; end; procedure TfrmZZJWLRKList.FormShow(Sender: TObject); begin ReadCxGrid('机物料入库列表', Tv1, '机物料仓库'); SetStatus(); //InitGrid(); end; procedure TfrmZZJWLRKList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('机物料入库列表', cxGrid2); end; procedure TfrmZZJWLRKList.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 TfrmZZJWLRKList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmZZJWLRKList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmZZJWLRKList.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 TfrmZZJWLRKList.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 TfrmZZJWLRKList.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 TfrmZZJWLRKList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmZZJWLRKList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmZZJWLRKList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmZZJWLRKList.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 TfrmZZJWLRKList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmZZJWLRKList.TBPriceClick(Sender: TObject); var str: string; dstr: Double; begin if CDS_Main.IsEmpty then Exit; if InputQuery('单价修改', '请输入数字', str) then begin if TryStrToFloat(str, dstr) then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPdate CK_SXPB_CR Set Price=' + str); sql.Add(' , Money=' + str + '*Qty '); sql.Add(' where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); ExecSQL; end; Application.MessageBox('确认成功!', '提示', 0); with CDS_Main do begin Edit; FieldByName('Price').Value := dstr; FieldByName('Money').Value := FieldByName('Qty').AsFloat * dstr; end; end else begin Application.MessageBox('请输入数字!', '提示', 0); end; end; end; procedure TfrmZZJWLRKList.chkpriceClick(Sender: TObject); begin InitGrid(); end; end.