unit U_PBZSDsel; 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; type TfrmpbzsdlistSEL = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: 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; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; Label4: TLabel; Label5: TLabel; FactoryName: TEdit; SPID: TEdit; 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; Label10: TLabel; SPCode: TEdit; Label11: TLabel; pihao: TEdit; v1Column19: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; CheckBox1: TCheckBox; ToolButton1: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: 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 FactoryNameChange(Sender: TObject); procedure SPCodeKeyPress(Sender: TObject; var Key: Char); procedure CRTypeChange(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); private canshu1, canshu2, canshu3: string; procedure InitGrid(); { Private declarations } public { Public declarations } end; var frmpbzsdlistSEL: TfrmpbzsdlistSEL; implementation uses U_DataLink, U_RTFun, U_PBORDERInPut; {$R *.dfm} procedure TfrmpbzsdlistSEL.FormDestroy(Sender: TObject); begin frmpbzsdlistSEL := nil; end; procedure TfrmpbzsdlistSEL.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmpbzsdlistSEL.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 TfrmpbzsdlistSEL.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; sql.Add(' and isnull(CKName,'''')=''坯布指示单'''); SQL.Add(' and CRFlag=''入库'' '); SQL.Add(' and status=''1'' '); sql.Add(pwhere); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmpbzsdlistSEL.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmpbzsdlistSEL.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmpbzsdlistSEL.TBCloseClick(Sender: TObject); begin WriteCxGrid('坯布指示单选择', Tv1, '坯布仓库1'); Close; end; procedure TfrmpbzsdlistSEL.FormShow(Sender: TObject); begin ReadCxGrid('坯布指示单选择', Tv1, '坯布仓库1'); //InitGrid(); end; procedure TfrmpbzsdlistSEL.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('坯布指示单选择', cxGrid2); end; procedure TfrmpbzsdlistSEL.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 TfrmpbzsdlistSEL.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmpbzsdlistSEL.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmpbzsdlistSEL.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 TfrmpbzsdlistSEL.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 TfrmpbzsdlistSEL.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 TfrmpbzsdlistSEL.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmpbzsdlistSEL.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmpbzsdlistSEL.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmpbzsdlistSEL.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmpbzsdlistSEL.SPCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmpbzsdlistSEL.CRTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmpbzsdlistSEL.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmpbzsdlistSEL.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty = False then begin ModalResult := 1; end; end; end.