unit U_TradeSampleClothStkList; 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, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseList, dxSkinWXI, dxScrollbarAnnotations, jpeg, Math, U_SLT; type TfrmTradeSampleClothStkList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; GPM_1: TcxGridPopupMenu; CDS_Main: TClientDataSet; CDS_HZ: TClientDataSet; PopupMenu1: TPopupMenu; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label3: TLabel; Label4: TLabel; Label8: TLabel; Label2: TLabel; C_name: TEdit; FromCoName: TEdit; C_spec: TEdit; BatchNo: TEdit; v1Column6: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column11: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; BCIID: TEdit; Label1: TLabel; ADOQuery1: TADOQuery; Panel9: TPanel; Panel10: TPanel; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; Tv1Column12: TcxGridDBColumn; adoqueryPicture: TADOQuery; Tv1Column13: TcxGridDBColumn; ADOQuery2: TADOQuery; C_Code: TEdit; Label5: TLabel; ToolButton1: TToolButton; ToolButton3: TToolButton; Tv1Column14: TcxGridDBColumn; ADOQueryPrint: TADOQuery; RMDB_1: TRMDBDataSet; Rm1: TRMGridReport; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure MPRTCodeNameChange(Sender: TObject); procedure SXBatchNOChange(Sender: TObject); procedure FromCoNameChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure FormCreate(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure BCIIDKeyPress(Sender: TObject; var Key: Char); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ToolButton3Click(Sender: TObject); private procedure InitGrid(); procedure InitImage(); { Private declarations } public FstkName: string; { Public declarations } end; var frmTradeSampleClothStkList: TfrmTradeSampleClothStkList; Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmTradeSampleClothStkList.FormDestroy(Sender: TObject); begin inherited; frmTradeSampleClothStkList := nil; end; procedure TfrmTradeSampleClothStkList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmTradeSampleClothStkList.FormCreate(Sender: TObject); begin inherited; inherited; end; procedure TfrmTradeSampleClothStkList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add(' select CBMoney=ISNULL(A.CBPrice,0)*ISNULL(A.stkqty,0),A.* '); sql.Add(',IsImg=cast((case when (select COUNT(T.WBID) from TP_File T where T.FileType = ''YPCK'' and T.WBID=A.BCIOID)=0 then 0 else 1 end) as bit ) '); sql.Add(' from BS_Cloth_IO A '); SQL.Add(' where A.IOFlag=''入库'' and (isnull(StkQty,0)>0 or isnull(StkPiece,0)>0) '); sql.Add(' and isnull(stkName,'''')=''' + Trim(FstkName) + ''''); // ShowMessage(Sql.text); Open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTradeSampleClothStkList.InitImage(); var i, j: integer; jpg: TJpegImage; myStream: TADOBlobStream; begin j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); if CDS_Main.IsEmpty then exit; try with adoqueryPicture do begin close; sql.Clear; sql.Add(' select A.TFID,A.WBID,A.FilesOther,A.FileName from TP_File A '); sql.add('where A.WBID=' + quotedstr(trim(CDS_Main.fieldbyname('BCIOID').AsString))); open; end; j := adoqueryPicture.RecordCount; if j < 1 then exit; adoqueryPicture.DisableControls; adoqueryPicture.First; SetLength(Mach, j); jpg := TJpegImage.Create(); for i := 0 to j - 1 do begin if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then begin myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread); jpg.LoadFromStream(myStream); Mach[i] := TfrmSlt.Create(Self); Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString); Mach[i].Parent := ScrollBox1; // Mach[i].Left := 0; Mach[i].Top := 0 + i * 180; Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg); end; adoqueryPicture.Next; end; adoqueryPicture.EnableControls; finally jpg.free; application.ProcessMessages; end; end; procedure TfrmTradeSampleClothStkList.TBRafreshClick(Sender: TObject); begin InitGrid(); InitImage(); end; procedure TfrmTradeSampleClothStkList.BCIIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin with ADOQuery2 do begin close; sql.Clear; sql.Add('select * from BS_Cloth_Info A where A.BCIID=''' + trim(BCIID.Text) + ''' '); // showmessage(sql.text); open; end; C_name.text := ADOQuery2.FieldByName('C_Name').ASString; end; end; procedure TfrmTradeSampleClothStkList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTradeSampleClothStkList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeSampleClothStkList.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(Self.Caption), Tv1, '贸易汇总仓库'); InitGrid(); InitImage(); end; procedure TfrmTradeSampleClothStkList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; // TBFind.Click end; procedure TfrmTradeSampleClothStkList.MPRTCodeNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkList.SXBatchNOChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkList.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkList.ToolButton1Click(Sender: TObject); var SavedTopRowIndex: Integer; PBCIOIDS: string; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('ssel', true, []) = False then begin Application.MessageBox('请选择数据', '提示', 0); exit; end; try SavedTopRowIndex := Self.Tv1.Controller.TopRowIndex; Self.CDS_Main.First; frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'StkPosition'; flagname := '库位'; MainType := FSTKName; if ShowModal = 1 then begin Self.CDS_Main.DisableControls; with Self.CDS_Main do begin First; while not eof do begin if FieldByName('ssel').value = true then begin if PBCIOIDS = '' then PBCIOIDS := PBCIOIDS + '''' + CDS_Main.FieldByName('BCIOID').AsString + '''' else PBCIOIDS := PBCIOIDS + ',''' + CDS_Main.FieldByName('BCIOID').AsString + ''''; end; Next; end; end; Self.CDS_Main.EnableControls; with ADOQueryBaseCmd do begin close; sql.Clear; SQL.Add('update BS_Cloth_IO set stkposition = ' + QuotedStr(Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString)) + ' where BCIOID in (' + PBCIOIDS + ')'); ExecSQL; end; Self.InitGrid(); if SavedTopRowIndex < self.Tv1.DataController.RowCount then self.Tv1.Controller.TopRowIndex := SavedTopRowIndex; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmTradeSampleClothStkList.ToolButton2Click(Sender: TObject); begin WriteCxGrid(trim(Self.Caption), Tv1, '贸易汇总仓库'); end; procedure TfrmTradeSampleClothStkList.ToolButton3Click(Sender: TObject); var fPrintFile, FLabVolume: string; SavedTopRowIndex: Integer; begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; SavedTopRowIndex := Self.Tv1.Controller.TopRowIndex; CDS_Main.DisableControls; with CDS_Main do begin First; while not Eof do begin if CDS_Main.FieldByName('SSel').AsBoolean = True then begin with ADOQueryPrint do begin Close; SQL.Clear; sql.Add(' EXEC P_BS_SampleCloth_In_Prt1 '); SQL.Add(' @Filtration=''' + Trim(CDS_Main.fieldbyname('BCIOID').AsString) + ''''); Open; end; if ADOQueryPrint.IsEmpty then begin application.MessageBox('标签内容未找到!', '提示信息', MB_ICONERROR); exit; end; FLabVolume := '样品入库标签'; ExportFtErpFile(FLabVolume + '.rmf', ADOQueryBaseTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + FLabVolume + '.rmf'; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); // if Trim(ADOQueryPrint.fieldbyname('LabVolume').AsString) <> '次品标签' then // Rm1.DefaultCopies := 2 // else Rm1.DefaultCopies := 1; RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0); end; end; Next; end; end; CDS_Main.EnableControls; if SavedTopRowIndex < self.Tv1.DataController.RowCount then self.Tv1.Controller.TopRowIndex := SavedTopRowIndex; end; procedure TfrmTradeSampleClothStkList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ModalResult := 1; end; procedure TfrmTradeSampleClothStkList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; InitImage(); end; end.