unit U_PBXSListSel2; 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, cxCalc, dxBarBuiltInMenu, cxPC, cxSplitter; type TfrmPBOUTSQList2 = 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; Label5: TLabel; pbid: TEdit; Label13: TLabel; ToFactoryName: TEdit; ADOQueryPrint: TADOQuery; CheckBox1: TCheckBox; Panel4: TPanel; Label1: TLabel; Button1: TButton; Button2: TButton; YWNOTE: TEdit; cxTabControl1: TcxTabControl; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column4: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column7: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxSplitter1: TcxSplitter; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; v1Column14: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v1Column20: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; DataSource2: TDataSource; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; ToolButton1: TToolButton; 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 SPNameChange(Sender: TObject); procedure pbidKeyPress(Sender: TObject; var Key: Char); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure SPSpecChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CRTypeChange(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); private canshu2: string; procedure InitGrid(); procedure InitSUB(); procedure SetStatus(); { Private declarations } public canshu1: string; { Public declarations } end; var frmPBOUTSQList2: TfrmPBOUTSQList2; implementation uses U_DataLink, U_RTFun, U_FUN, U_ZdyAttachGYS; {$R *.dfm} procedure TfrmPBOUTSQList2.SetStatus(); begin end; procedure TfrmPBOUTSQList2.FormDestroy(Sender: TObject); begin frmPBOUTSQList2 := nil; end; procedure TfrmPBOUTSQList2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmPBOUTSQList2.FormCreate(Sender: TObject); begin //cxGrid1.Align:=alClient; // canshu1 := Trim(DParameters1); canshu2 := Trim(DParameters2); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 30; end; procedure TfrmPBOUTSQList2.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 * from (select isnull(A.ChkStatus,''0'')ChkStatus,PBID,ToFactoryName,YWY,YWZB,ZBZNOTE, '); SQL.Add('convert(varchar(10),ChkTime,120)ChkTime,Chker,convert(varchar(10),CRTIME,120)CRTIME,FILLER'); sql.Add(' from CK_SXPB_CR A'); sql.Add(' 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(A.ChkStatus,''0'')=''1'' '); case cxTabControl1.TabIndex of 0: begin SQL.Add(' and not exists(select YFPZNO from YF_MONEY_CR_SUB X where X.YFPZNO=A.SPID ) '); end; 1: begin SQL.Add(' and exists(select YFPZNO from YF_MONEY_CR_SUB X where X.YFPZNO=A.SPID ) '); end; end; SQL.Add(' and CRFlag=''出库'' '); SQL.Add(' and isnull(CKName,'''')=''坯布'' AND CKTYPE=''申请'' '); sql.Add('group by isnull(A.ChkStatus,''0''),PBID,ToFactoryName,YWY,YWZB,ZBZNOTE,convert(varchar(10),ChkTime,120),Chker,convert(varchar(10),CRTIME,120),FILLER)aa where 1=1'); sql.Add(pwhere); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBOUTSQList2.InitSUB(); begin try ADOQueryCmd.DisableControls; with ADOQueryCmd do begin Filtered := False; Close; sql.Clear; sql.Add(' select A.* ,B.PRTColor,B.PRTHX'); SQL.Add(',GYSJC=(SELECT COHRNAME FROM COMPANY WHERE COTYPE=''供应商'' and valid=''Y'' and coname=a.FactoryName )'); sql.Add(' from CK_SXPB_CR A'); sql.Add(' left join JYOrder_Sub B on A.ORDSubIdCK=B.SubId'); sql.Add(' where 1=1'); SQL.ADD('AND PBID=' + QuotedStr(Trim(CDS_MAIN.FIELDBYNAME('PBID').ASSTRING))); Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryCmd, CDS_HZ); SInitCDSData20(ADOQueryCmd, CDS_HZ); finally CDS_HZ.EnableControls; end; end; procedure TfrmPBOUTSQList2.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmPBOUTSQList2.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmPBOUTSQList2.TBCloseClick(Sender: TObject); begin writeCxGrid(Self.Caption + 'TV1', Tv1, '坯布仓库4'); writeCxGrid(Self.Caption + 'TV2', Tv2, '坯布仓库4'); Close; end; procedure TfrmPBOUTSQList2.FormShow(Sender: TObject); begin ReadCxGrid(Self.Caption + 'TV1', Tv1, '坯布仓库4'); ReadCxGrid(Self.Caption + 'TV2', Tv2, '坯布仓库4'); SetStatus(); InitGrid(); end; procedure TfrmPBOUTSQList2.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('坯布出库列表', cxGrid2); end; procedure TfrmPBOUTSQList2.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 TfrmPBOUTSQList2.SPNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBOUTSQList2.pbidKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmPBOUTSQList2.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmPBOUTSQList2.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmPBOUTSQList2.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 Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin First; while not Eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' delete CK_SXPB_CR where SPID=''' + Trim(CDS_HZ.fieldbyname('SPID').AsString) + ''''); sql.Add(' Update CK_SXPB_CR Set MXKCQty=(select sum(isnull(Qty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(',MXKCPiQty=(select sum(isnull(PiQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(',MXKCKgQty=(select sum(isnull(KgQty,0)*CRQtyFlag) from CK_SXPB_CR A where A.FZSPID=CK_SXPB_CR.SPID)'); sql.Add(' where SPID=''' + Trim(CDS_HZ.fieldbyname('FZSPID').AsString) + ''''); ExecSQL; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); Application.MessageBox('删除成功!', '提示', 0); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('删除异常!', '提示', 0); end; end; procedure TfrmPBOUTSQList2.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBOUTSQList2.ToolButton1Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if CDS_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmPBOUTSQList2.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmPBOUTSQList2.CRTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmPBOUTSQList2.ToolButton2Click(Sender: TObject); begin Panel4.Visible := True; end; procedure TfrmPBOUTSQList2.Button2Click(Sender: TObject); begin Panel4.Visible := False; end; procedure TfrmPBOUTSQList2.Button1Click(Sender: TObject); begin if Application.MessageBox('修改编号会同时修改入库编号,确定吗?', '提示', 32 + 4) <> IDYES then Exit; if trim(YWNOTE.Text) = '' then begin Application.MessageBox('编号不能为空!', '提示', 0); Exit; end; try CDS_Main.DisableControls; ADOQueryCmd.Connection.BeginTrans; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_SXPB_CR Set spcode=''' + trim(YWNOTE.Text) + ''' '); sql.Add('where FZSPID=''' + Trim(CDS_Main.fieldbyname('fzspid').AsString) + ''''); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; application.MessageBox('数据保存成功!', '提示信息'); Panel4.Visible := false; TBRafresh.Click; exit; except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; application.MessageBox('数据保存失败!', '提示信息', 0); end; end; procedure TfrmPBOUTSQList2.ToolButton3Click(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin with ADOQueryCmd do begin close; sql.Clear; SQL.Add('UPDATE CK_SXPB_CR SET ToFactoryName=' + QuotedStr(Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('coName').AsString))); SQL.ADD('WHERE SPID=' + QuotedStr(Trim(Self.CDS_Main.FieldByName('SPID').AsString))); execsql; end; with ADOQueryCmd do begin close; sql.Clear; 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(Self.CDS_Main.FieldByName('SPID').AsString) + ' 原出到单位:' + trim(Self.CDS_Main.FieldByName('FactoryName').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; with CDS_Main do begin Edit; FieldByName('ToFactoryName').Value := frmZdyAttachGYS.CDS_HZ.fieldbyname('coName').AsString; end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmPBOUTSQList2.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmPBOUTSQList2.ToolButton4Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要执行审核操作吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CK_SXPB_CR Set ChkStatus=''1'',ChkTime=GETDATE(),Chker=' + QuotedStr(Trim(DName))); sql.Add(' where pbid=''' + Trim(CDS_Main.fieldbyname('pbid').AsString) + ''''); ExecSQL; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmPBOUTSQList2.ToolButton5Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if Application.MessageBox('确定要执行撤销操作吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate CK_SXPB_CR SET ChkStatus=NULL,ChkTime=Null,Chker=Null'); sql.Add(' where pbid=''' + Trim(CDS_Main.fieldbyname('pbid').AsString) + ''''); ExecSQL; end; end; CDS_Main.EnableControls; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except CDS_Main.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmPBOUTSQList2.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if CDS_Main.IsEmpty = FALSE then begin INITSUB(); end; end; end.