unit U_PBZSD; 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, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxPC, MovePanel; type Tfrmpbzsdlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; 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; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column6: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column19: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; CheckBox1: TCheckBox; Label4: TLabel; Label5: TLabel; Label10: TLabel; Label11: TLabel; FactoryName: TEdit; SPID: TEdit; SPCode: TEdit; pihao: TEdit; cxTabControl1: TcxTabControl; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; MovePanel1: TMovePanel; Label15: TLabel; Button2: TButton; SL: TEdit; Button8: TButton; Label1: TLabel; ToolButton4: TToolButton; ToolButton5: TToolButton; ComboBox1: TComboBox; Label3: TLabel; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Label6: TLabel; YWZB: 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 SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure SPCodeKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Button8Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); private canshu2, canshu3: string; procedure InitGrid(); procedure SetStatus(); { Private declarations } public canshu1: string; { Public declarations } end; var frmpbzsdlist: Tfrmpbzsdlist; implementation uses U_DataLink, U_RTFun, U_PBORDERInPut; {$R *.dfm} procedure Tfrmpbzsdlist.SetStatus(); begin TBAdd.Visible := False; ToolButton1.Visible := False; ToolButton2.Visible := False; TBEdit.Visible := False; TBDel.Visible := False; ToolButton4.Visible := False; ToolButton5.Visible := False; ToolButton3.Visible := False; case cxTabControl1.TabIndex of 0: begin TBAdd.Visible := True; TBEdit.Visible := true; TBDel.Visible := true; if canshu1 = '管理' then begin ToolButton1.Visible := True; end; end; 1: begin if canshu1 = '管理' then begin ToolButton2.Visible := True; end; ToolButton4.Visible := True; ToolButton5.Visible := True; ToolButton3.Visible := True; end; 2: begin end; end; end; procedure Tfrmpbzsdlist.FormDestroy(Sender: TObject); begin frmpbzsdlist := nil; end; procedure Tfrmpbzsdlist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure Tfrmpbzsdlist.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); canshu3 := Trim(DParameters3); end; procedure Tfrmpbzsdlist.InitGrid(); var pwhere: string; begin if SGetFilters(Panel1, 1, 2) <> '' then pwhere := ' and ' + SGetFilters(Panel1, 1, 2); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* '); SQL.Add(',WCQTY2=(ISNULL((SELECT SUM(QTY) FROM CK_SXPB_CR B WHERE B.PBORDERNO=A.SPID ),0)+isnull(wcqty,0))'); SQL.Add(',CS=QTY-(ISNULL((SELECT SUM(QTY) FROM CK_SXPB_CR B WHERE B.PBORDERNO=A.SPID ),0)+isnull(wcqty,0))'); sql.Add(' from CK_PBZSD A where 1=1'); if CheckBox1.Checked = true then begin sql.add(' and A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + ''''); end; if cxTabControl1.TabIndex = 0 then begin sql.Add('and isnull(status,'''')='''''); end else if cxTabControl1.TabIndex = 1 then begin sql.Add('and isnull(status,'''')=''1'''); end; sql.Add(' and isnull(CKName,'''')=''坯布指示单'''); SQL.Add(' and CRFlag=''入库'' '); if ComboBox1.Text <> '' then begin sql.Add('and ISNULL(wcstatus,''未完成'')=' + QuotedStr(ComboBox1.Text)); end; sql.Add(pwhere); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure Tfrmpbzsdlist.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure Tfrmpbzsdlist.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure Tfrmpbzsdlist.TBCloseClick(Sender: TObject); begin WriteCxGrid('坯布入库列表', Tv1, '坯布仓库1'); Close; end; procedure Tfrmpbzsdlist.FormShow(Sender: TObject); begin ReadCxGrid('坯布入库列表', Tv1, '坯布仓库1'); 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; SetStatus(); //InitGrid(); end; procedure Tfrmpbzsdlist.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('坯布指示单', cxGrid2); end; procedure Tfrmpbzsdlist.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 Tfrmpbzsdlist.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure Tfrmpbzsdlist.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure Tfrmpbzsdlist.TBDelClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if trim(CDS_Main.FieldByName('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人数据!', '提示', 0); Exit; end; if Trim(CDS_Main.fieldbyname('SPID').AsString) <> '' then begin if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能删除!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from CK_PBZSD 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_PBZSD 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 Tfrmpbzsdlist.TBAddClick(Sender: TObject); begin try frmPBORDERLIST := TfrmPBORDERLIST.Create(Application); with frmPBORDERLIST do begin FBCId := ''; frmPBORDERLIST.canshu3 := Trim(Self.canshu3); if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmPBORDERLIST.Free; end; end; procedure Tfrmpbzsdlist.TBEditClick(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; // if trim(CDS_Main.FieldByName('Filler').AsString) <> Trim(DName) then // begin // Application.MessageBox('不能操作他人数据!', '提示', 0); // Exit; // end; if Trim(CDS_Main.fieldbyname('CRType').AsString) = '平移入库' then begin Application.MessageBox('平移入库的数据为自动生成,不能修改!', '提示', 0); Exit; end; try frmPBORDERLIST := TfrmPBORDERLIST.Create(Application); with frmPBORDERLIST do begin if Trim(CDS_Main.fieldbyname('filler').AsString) <> Trim(DName) then begin fzdr := '1'; end; FBCId := Trim(CDS_Main.fieldbyname('SPID').AsString); TBDel.Visible := False; TBAdd.Visible := False; if ShowModal = 1 then begin Self.InitGrid(); end; end; finally frmPBORDERLIST.Free; end; end; procedure Tfrmpbzsdlist.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure Tfrmpbzsdlist.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure Tfrmpbzsdlist.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure Tfrmpbzsdlist.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure Tfrmpbzsdlist.SPCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure Tfrmpbzsdlist.CRTypeChange(Sender: TObject); begin InitGrid(); end; procedure Tfrmpbzsdlist.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure Tfrmpbzsdlist.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET status=''1'',chker=''' + trim(DName) + ''',Chktime=getdate() '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('订单审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('订单审核失败!', '提示信息', 0); end; end; procedure Tfrmpbzsdlist.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET status=NULL,chker=NULL,Chktime=NULL '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('撤销成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure Tfrmpbzsdlist.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure Tfrmpbzsdlist.Button8Click(Sender: TObject); var FReal: Double; fspid: string; begin if CDS_Main.IsEmpty then Exit; if trim(SL.Text) = '' then begin Application.MessageBox('数量不能为空!', '提示', 0); Exit; end; if TryStrToFloat(SL.Text, FReal) = False then begin Application.MessageBox('数量格式不正确!', '提示', 0); Exit; end; fspid := CDS_Main.FieldByName('spid').AsString; try CDS_Main.DisableControls; ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_PBZSD Set WCQTY=isnull(wcqty,0)+' + trim(SL.Text)); sql.Add('where SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('完成数量修改'))); sql.Add(',' + quotedstr(trim('单号:' + trim(CDS_Main.FieldByName('spid').AsString) + '增减数量为:' + trim(sl.Text)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; application.MessageBox('数据保存成功!', '提示信息'); MovePanel1.Visible := False; InitGrid(); CDS_Main.locate('spid', fspid, []); exit; except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure Tfrmpbzsdlist.ToolButton3Click(Sender: TObject); begin MovePanel1.Visible := True; end; procedure Tfrmpbzsdlist.Button2Click(Sender: TObject); begin MovePanel1.Visible := FALSE; end; procedure Tfrmpbzsdlist.ToolButton4Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET wcstatus=''已完成'' '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('操作成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure Tfrmpbzsdlist.ToolButton5Click(Sender: TObject); begin if CDS_Main.IsEmpty then exit; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update CK_PBZSD SET wcstatus=''未完成'' '); sql.Add('where SPID=' + quotedstr(trim(CDS_Main.fieldbyname('SPID').AsString))); execsql; end; application.MessageBox('操作成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure Tfrmpbzsdlist.ComboBox1Change(Sender: TObject); begin InitGrid(); end; end.