unit U_CraftInfoSel; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, ToolWin, ComCtrls, StdCtrls, ExtCtrls, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, dxScrollbarAnnotations, cxCheckBox, dxSkinWXI; type TfrmCraftInfoSel = class(TForm) ToolBar1: TToolBar; TBFind: TToolButton; TBSave: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; Label2: TLabel; CR_Code: TEdit; CR_Name: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1CR_Code: TcxGridDBColumn; Tv1CR_Name: TcxGridDBColumn; Tv1C_Width: TcxGridDBColumn; Tv1C_GramWeight: TcxGridDBColumn; Tv1C_Color: TcxGridDBColumn; Tv1C_YarnQty: TcxGridDBColumn; Tv1head_count: TcxGridDBColumn; Tv1strip_width: TcxGridDBColumn; Tv1C_MachLatitudeDensity: TcxGridDBColumn; Tv1row_count_top: TcxGridDBColumn; Tv1displace: TcxGridDBColumn; Tv1reed_width: TcxGridDBColumn; Tv1C_ReedNo: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; DS_1: TDataSource; CDS_1: TClientDataSet; ADOQueryMain: TADOQuery; procedure FormShow(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure CRCodeKeyPress(Sender: TObject; var Key: Char); private procedure InitGrid(); { Private declarations } public { Public declarations } end; var frmCraftInfoSel: TfrmCraftInfoSel; implementation uses U_DataLink, U_RTFun; {$R *.dfm} procedure TfrmCraftInfoSel.InitGrid(); var fwhere: string; begin fwhere := ' where 1=1 '; if Trim(CR_Code.Text) <> '' then fwhere := fwhere + ' and CR_Code like ' + QuotedStr('%' + Trim(CR_Code.Text) + '%'); if Trim(CR_Name.Text) <> '' then fwhere := fwhere + ' and CR_Name like ' + QuotedStr('%' + Trim(CR_Name.Text) + '%'); with ADOQueryMain do begin Close; Filtered := False; SQL.Clear; SQL.Add('select * from BS_Craft_Info' + fwhere + ' order by CR_Code'); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); TV1.DataController.Filter.Clear; end; procedure TfrmCraftInfoSel.FormShow(Sender: TObject); begin InitGrid(); end; procedure TfrmCraftInfoSel.FormDestroy(Sender: TObject); begin frmCraftInfoSel := nil; end; procedure TfrmCraftInfoSel.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmCraftInfoSel.TBSaveClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmCraftInfoSel.TBFindClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCraftInfoSel.Tv1DblClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmCraftInfoSel.CRCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; InitGrid(); end; end; end.