unit U_TradeSampleClothStkSel; 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_BaseHelp, System.ImageList, Vcl.ImgList, dxSkinWXI, dxScrollbarAnnotations, jpeg, Math, U_SLT; type TfrmTradeSampleClothStkSel = class(TfrmBaseHelp) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; CDS_HZ: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ToolButton1: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column17: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Label3: TLabel; Label4: TLabel; Label8: TLabel; Label2: TLabel; C_name: TEdit; FromCoName: TEdit; C_Spec: TEdit; BatchNo: TEdit; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column11: TcxGridDBColumn; Label5: TLabel; OrderNo: TEdit; Tv1Column1: TcxGridDBColumn; ToolButton2: TToolButton; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; cxStyleRepository2: TcxStyleRepository; cxStyle2: TcxStyle; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Label1: TLabel; BCIID: TEdit; Tv1Column9: TcxGridDBColumn; adoqueryPicture: TADOQuery; Panel9: TPanel; Panel10: TPanel; GroupBox1: TGroupBox; ScrollBox1: TScrollBox; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; 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 N1Click(Sender: TObject); procedure N2Click(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 ToolButton2Click(Sender: TObject); procedure BCIIDKeyPress(Sender: TObject; var Key: Char); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure InitGrid(); procedure InitImage(); { Private declarations } public FstkName: string; { Public declarations } end; var frmTradeSampleClothStkSel: TfrmTradeSampleClothStkSel; Mach: array of TfrmSlt; implementation uses U_DataLink, U_RTFun; {$R *.dfm} procedure TfrmTradeSampleClothStkSel.FormDestroy(Sender: TObject); begin inherited; frmTradeSampleClothStkSel := nil; end; procedure TfrmTradeSampleClothStkSel.FormClose(Sender: TObject; var Action: TCloseAction); var i, j: integer; begin inherited; j := length(Mach); if j > 0 then begin for i := 0 to j - 1 do begin Mach[i].free; end; end; SetLength(Mach, 0); Action := cafree; end; procedure TfrmTradeSampleClothStkSel.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) + ''''); Open; end; SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmTradeSampleClothStkSel.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 TfrmTradeSampleClothStkSel.TBRafreshClick(Sender: TObject); begin InitGrid(); InitImage(); end; procedure TfrmTradeSampleClothStkSel.BCIIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin with ADOQueryTemp 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 := ADOQueryTemp.FieldByName('C_Name').ASString; end; end; procedure TfrmTradeSampleClothStkSel.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmTradeSampleClothStkSel.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeSampleClothStkSel.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(self.Caption), Tv1, '贸易汇总仓库'); InitGrid(); InitImage(); end; procedure TfrmTradeSampleClothStkSel.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_Main); SInitCDSData(ADOQueryMain, CDS_Main); end; end; procedure TfrmTradeSampleClothStkSel.MPRTCodeNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkSel.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmTradeSampleClothStkSel.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmTradeSampleClothStkSel.SXBatchNOChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkSel.FromCoNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmTradeSampleClothStkSel.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; ModalResult := 1; end; procedure TfrmTradeSampleClothStkSel.ToolButton2Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '贸易汇总仓库'); end; procedure TfrmTradeSampleClothStkSel.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ModalResult := 1; end; procedure TfrmTradeSampleClothStkSel.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin inherited; InitImage(); end; end.