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.