unit U_TradeClothOutList; 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, MovePanel, Math, Clipbrd, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, cxTextEdit, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxPC, System.StrUtils, dxScrollbarAnnotations; type TfrmTradeClothOutList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBExport: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_1: TDataSource; GPM_1: TcxGridPopupMenu; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_1: TClientDataSet; TBRKCX: TToolButton; begtime: TDateTimePicker; endTime: TDateTimePicker; IsJYTime: TCheckBox; ToolButton2: TToolButton; ToolButton4: TToolButton; Panel6: TPanel; Label31: TLabel; LBCPAP: TLabel; BTLP: TButton; BTNP: TButton; TCBNOR: TComboBox; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column22: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v1Column32: TcxGridDBColumn; v1Column1: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column10: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column42: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label3: TLabel; Label7: TLabel; Label10: TLabel; Label5: TLabel; Label20: TLabel; Label23: TLabel; OrderNo: TEdit; conNO: TEdit; STKID: TEdit; C_Name: TEdit; C_Color: TEdit; C_Composition: TEdit; C_Code: TEdit; Tv1Column9: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; PM_1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ToolButton1: TToolButton; N3: TMenuItem; Tv1Column6: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Label1: TLabel; BCIOID: TEdit; Tv1Column5: TcxGridDBColumn; Label4: TLabel; ToCoName: TEdit; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; ToolButton3: TToolButton; panel2: TPanel; Label6: TLabel; Edit1: TEdit; Label8: TLabel; Edit2: TEdit; Button1: TButton; Button2: TButton; Label9: TLabel; IONO: TEdit; btn1: TToolButton; btn2: TToolButton; ADOQueryPrint: TADOQuery; RM1: TRMGridReport; RMDB_1: TRMDBDataSet; cxgrdbclmnTv1Column13: TcxGridDBColumn; MovePanel1: TMovePanel; lbl2: TLabel; btn3: TButton; btn4: TButton; edt1: TEdit; 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 orderNoKeyPress(Sender: TObject; var Key: Char); procedure TBRKCXClick(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure TCBNORChange(Sender: TObject); procedure JYTypeChange(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure CDS_1BeforeOpen(DataSet: TDataSet); procedure Tv1DataControllerFilterBeforeChange(Sender: TcxDBDataFilterCriteria; ADataSet: TDataSet; const AFilterText: string); procedure Tv1TcxGridDBDataControllerTcxDataSummaryFooterSummaryItems6GetText(Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; var AText: string); procedure ToolButton4Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure btn4Click(Sender: TObject); private CurrentPage, RecordsNumber: Integer; lstCust: TStringList; procedure InitGrid(); procedure SetStatus(); { Private declarations } public canshu1, canshu2, FWorkshop, FFCIID, FFIONO: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_LabelPrint, U_LabSet; {$R *.dfm} procedure TfrmTradeClothOutList.SetStatus(); begin TBRKCX.Enabled := False; ToolButton3.Enabled := False; if canshu1 = '管理' then begin TBRKCX.Enabled := true; ToolButton3.Enabled := true; end; end; procedure TfrmTradeClothOutList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; FreeAndNil(lstCust); Action := caFree; end; procedure TfrmTradeClothOutList.FormCreate(Sender: TObject); begin inherited; lstCust := TStringList.Create; EndDate.DateTime := SGetServerDateTime(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 20; end; procedure TfrmTradeClothOutList.InitGrid(); var WSql: string; begin WSql := SGetFilters(Panel1, 1, 2); if Trim(WSql) <> '' then WSql := ' and ' + WSql; if IsJYTime.Checked then begin WSql := WSql + ' and IOTime>=' + quotedstr(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)); WSql := WSql + ' and IOTime<' + quotedstr(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)); end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select top ' + inttostr(RecordsNumber) + ' temp_row.* '); sql.Add(' from '); sql.Add('(select rownumber=cast((row_number() over(order by A.IOTime desc)) as int)'); sql.Add(',COUNT(1) OVER() AS TotalCount'); sql.Add(',* from V_Trade_Cloth_IO A where A.IOFlag = ''出库'' ' + WSql); sql.Add(') temp_row '); sql.Add(' where rownumber> ' + inttostr(((CurrentPage - 1) * RecordsNumber))); sql.Add(' order by rownumber'); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber)); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; end; end; procedure TfrmTradeClothOutList.TBRafreshClick(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmTradeClothOutList.CDS_1BeforeOpen(DataSet: TDataSet); begin lstCust.Clear; end; procedure TfrmTradeClothOutList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTradeClothOutList.cxPageControl1Change(Sender: TObject); begin CurrentPage := 1; SetStatus(); InitGrid(); end; procedure TfrmTradeClothOutList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeClothOutList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(self.Caption) + 'Tv11', Tv1, '成品仓库'); CurrentPage := 1; RecordsNumber := 500; canshu1 := self.fParameters1; canshu2 := self.fParameters3; FWorkshop := self.fParameters3; SetStatus(); end; procedure TfrmTradeClothOutList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(Self.Caption, cxGrid1); end; procedure TfrmTradeClothOutList.orderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin CurrentPage := 1; InitGrid(); end; end; procedure TfrmTradeClothOutList.TBRKCXClick(Sender: TObject); var MIOIDS, MStkIds, MOutNos: string; begin if CDS_1.IsEmpty then Exit; if not CDS_1.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MIOIDS := ''; MStkIds := ''; MOutNos := ''; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin MIOIDS := MIOIDS + (Trim(CDS_1.fieldbyname('IOID').AsString)) + ','; MStkIds := MStkIds + (Trim(CDS_1.fieldbyname('STKID').AsString)) + ','; MOutNos := MOutNos + (Trim(CDS_1.fieldbyname('IONO').AsString)) + ','; end; Next; end; end; MIOIDS := leftBstr(trim(MIOIDS), length(MIOIDS) - 1); MStkIds := leftBstr(trim(MStkIds), length(MStkIds) - 1); MOutNos := leftBstr(trim(MOutNos), length(MOutNos) - 1); CDS_1.Locate('SSel', True, []); CDS_1.EnableControls; if Application.MessageBox('确定要执行操作吗?', '提示', 32 + 4) <> IdyeS then Exit; try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; Sql.Clear; sql.Add('insert into Finance_Need_Up(UType,UDataId) values(''印染成品出库'',' + quotedstr(MOutNos) + ') '); Sql.Add('exec P_Trade_Cloth_ReOut '); Sql.Add('@StkIds=' + quotedstr(trim(MStkIds))); Sql.Add(',@IOIDS=' + quotedstr(trim(MIOIDS))); Sql.Add(',@FillId=' + Quotedstr(DCode)); Sql.Add(',@Filler=' + Quotedstr(DName)); Sql.Add('exec P_Trade_Cloth_DR '); Sql.Add('@OutNo=' + quotedstr(trim(MOutNos))); Open; end; if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then begin raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString))); 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(MIOIDS))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTradeClothOutList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin // Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmTradeClothOutList.Tv1DataControllerFilterBeforeChange(Sender: TcxDBDataFilterCriteria; ADataSet: TDataSet; const AFilterText: string); begin lstCust.Clear; end; procedure TfrmTradeClothOutList.Tv1TcxGridDBDataControllerTcxDataSummaryFooterSummaryItems6GetText(Sender: TcxDataSummaryItem; const AValue: Variant; AIsFooter: Boolean; var AText: string); begin if lstCust <> nil then AText := IntToStr(lstCust.Count); end; procedure TfrmTradeClothOutList.btn1Click(Sender: TObject); var fPrintFile, FLabVolume: string; begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; frmLabSet := TfrmLabSet.Create(self); with frmLabSet do begin if self.fParameters1 = '录入' then FAuthority := '理单业务'; if showmodal = 1 then begin // Order_Sub.Edit; // Order_Sub.fieldbyname('LabName').Value := frmLabSet.CDS_Label.fieldbyname('labelCaption').asstring; // Order_Sub.Post; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.FieldByName('SSel').AsBoolean = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update Trade_Cloth_Inspect Set LabName=''' + frmLabSet.CDS_Label.fieldbyname('labelCaption').asstring + ''''); sql.Add(' where CIID=''' + Trim(CDS_1.fieldbyname('CIID').AsString) + ''''); ExecSQL; end; end; Next; end; end; CDS_1.EnableControls; application.MessageBox('重设成功!', '提示信息'); end; free; end; end; procedure TfrmTradeClothOutList.btn2Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; MovePanel1.Visible := true; end; procedure TfrmTradeClothOutList.btn3Click(Sender: TObject); var fPrintFile, FLabVolume: string; begin CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.FieldByName('SSel').AsBoolean = True then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update Trade_Cloth_Inspect Set PrtCount=PrtCount+1,PrtDate=getdate(),Prter=''' + Trim(DName) + ''''); sql.Add(' where CIID=''' + Trim(CDS_1.fieldbyname('CIID').AsString) + ''''); ExecSQL; end; with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' EXEC P_Trade_Insp_Prt_Lab '); SQL.Add(' @CIID=''' + Trim(CDS_1.fieldbyname('CIID').AsString) + ''''); Open; end; if ADOQueryPrint.IsEmpty then begin application.MessageBox('标签内容未找到!', '提示信息', MB_ICONERROR); exit; end; if Trim(ADOQueryPrint.fieldbyname('Grade').AsString) = '正品' then FLabVolume := Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString) else FLabVolume := '次品标签'; ExportFtErpFile(FLabVolume + '.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); if Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString) <> '次品标签' then Rm1.DefaultCopies := strtointdef((edt1.Text), 1) else Rm1.DefaultCopies := strtointdef((edt1.Text), 1); RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; Next; end; end; MovePanel1.Visible := false; CDS_1.EnableControls; end; procedure TfrmTradeClothOutList.btn4Click(Sender: TObject); begin MovePanel1.Visible := false; end; procedure TfrmTradeClothOutList.BTNPClick(Sender: TObject); begin if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmTradeClothOutList.Button1Click(Sender: TObject); begin if StrToFloatdef(Edit1.Text, 0) = 0 then begin Application.MessageBox('米数填写错误!', '提示', 0); Exit; end; if Edit2.Text = '' then begin Edit2.Text := '0'; end; with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('exec P_Trade_Copy_Out '); Sql.Add(' @CIID=' + quotedstr(trim(FFCIID))); Sql.Add(',@Meter=' + Quotedstr(Edit1.text)); Sql.Add(',@GrossWeight=' + Quotedstr(Edit2.text)); Sql.Add('exec P_Trade_Cloth_DR '); Sql.Add('@OutNo=' + quotedstr(trim(FFIONO))); ExecSQL; end; Edit1.Text := ''; Edit2.Text := ''; TBRafresh.Click; end; procedure TfrmTradeClothOutList.Button2Click(Sender: TObject); begin panel2.Visible := false; cxGrid1.Enabled := true; Edit1.Text := ''; Edit2.Text := ''; end; procedure TfrmTradeClothOutList.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmTradeClothOutList.TCBNORChange(Sender: TObject); begin RecordsNumber := StrToInt(TCBNOR.Text); CurrentPage := 1; InitGrid(); end; procedure TfrmTradeClothOutList.JYTypeChange(Sender: TObject); begin CurrentPage := 1; InitGrid(); end; procedure TfrmTradeClothOutList.N1Click(Sender: TObject); begin SelOKNo(CDS_1, true); end; procedure TfrmTradeClothOutList.N2Click(Sender: TObject); begin SelOKNo(CDS_1, false); end; procedure TfrmTradeClothOutList.N3Click(Sender: TObject); begin Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString))); end; procedure TfrmTradeClothOutList.ToolButton1Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradeOutPrint'; FFiltration1 := Trim(self.CDS_1.fieldbyname('IONO').AsString); CheckBox1.Checked := True; if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmTradeClothOutList.ToolButton2Click(Sender: TObject); var WSql: string; begin if CDS_1.IsEmpty then Exit; if not CDS_1.Locate('SSel', True, []) then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := ''; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin if WSql <> '' then begin WSql := WSql + ',' + QuotedStr(Trim(CDS_1.fieldbyname('CIID').AsString)); end else begin WSql := QuotedStr(Trim(CDS_1.fieldbyname('CIID').AsString)); end; end; Next; end; end; CDS_1.Locate('SSel', True, []); CDS_1.EnableControls; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradeClothOut2'; FFiltration1 := WSql; if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmTradeClothOutList.ToolButton3Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; FFCIID := Trim(CDS_1.fieldbyname('CIID').AsString); FFIONO := Trim(CDS_1.fieldbyname('IONO').AsString); panel2.Visible := true; cxGrid1.Enabled := false; end; procedure TfrmTradeClothOutList.ToolButton4Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv11', Tv1, '成品仓库'); end; end.