📄 productquery.pas
字号:
unit ProductQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_Dll, StdCtrls, Grids, DBGridEh, ExtCtrls, DB, DBClient, ADODB,
dxdbtrel, jpeg;
type
TfrmProductQuery = class(TfrmBase_DLL)
CDSProduct: TClientDataSet;
CDSTMP: TClientDataSet;
DSTMP: TDataSource;
GroupBox1: TGroupBox;
Label3: TLabel;
Label5: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
Panel1: TPanel;
DBGridEh1: TDBGridEh;
Button1: TButton;
Button4: TButton;
Button2: TButton;
Image1: TImage;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button2Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure CDSTMPAfterScroll(DataSet: TDataSet);
private
procedure CreateTMPData;
procedure DeleteCDSData;
procedure assingcarimg;
{ Private declarations }
public
{ Public declarations }
end;
var
frmProductQuery: TfrmProductQuery;
implementation
uses DataProcess, Global, untImageBrowse;
{$R *.dfm}
procedure TfrmProductQuery.FormDestroy(Sender: TObject);
begin
inherited;
frmProductQuery:=nil;
end;
procedure TfrmProductQuery.FormCreate(Sender: TObject);
begin
inherited;
CreateTMPData;
end;
procedure TfrmProductQuery.Button1Click(Sender: TObject);
begin
inherited;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
procedure TfrmProductQuery.Button4Click(Sender: TObject);
var
sFilter:string;
begin
inherited;
sFilter:='';
if Trim(edit1.Text) <> '' then
begin
if sFilter<>'' then sFilter := sFilter+' and ';
sFilter:= sFilter+' fCode like '+vartosql('%'+Trim(Edit1.Text)+'%');
end;
if Trim(edit2.Text) <> '' then
begin
if sFilter<>'' then sFilter := sFilter+' and ';
sFilter:= sFilter+' fName like '+vartosql('%'+Trim(Edit2.Text)+'%');
end;
if Trim(edit2.Text) <> '' then
begin
if sFilter<>'' then sFilter := sFilter+' and ';
sFilter:= sFilter+' fModel like '+vartosql('%'+Trim(Edit3.Text)+'%');
end;
if sFilter='' then sFilter:=' fid > 0 ';
DeleteCDSData;
GetsqlData(CDSProduct,'tVehicle','fid',sFilter,20);
if CDSproduct.RecordCount > 0 then
begin
CDSProduct.First;
while not CDSProduct.Eof do
begin
CDSTMP.AppendRecord([ False,
CDSproduct.FieldByName('fid').AsInteger,
CDSproduct['fcode'],
CDSproduct['fname'],
CDSproduct['fmodel'],
CDSProduct['fcolor'],
CDSProduct['ffuel'],
CDSProduct['frentday'],
CDSProduct['fPicture'] ]);
CDSproduct.Next;
end;
CDStmp.Fields.FieldByName('fcode').ReadOnly:=True;
CDStmp.Fields.FieldByName('fname').ReadOnly:=True;
CDStmp.Fields.FieldByName('fmodel').ReadOnly:=True;
CDStmp.Fields.FieldByName('fcolor').ReadOnly:=True;
CDStmp.Fields.FieldByName('ffuel').ReadOnly:=True;
CDStmp.Fields.FieldByName('fselect').ReadOnly:=False;
end;
end;
procedure TfrmProductQuery.CreateTMPData;
begin
with CDSTMP do
begin
Close;
FieldDefs.Add('fSelect',ftboolean);
FieldDefs.Add('fid',ftInteger);
FieldDefs.Add('fcode',ftString,20);
FieldDefs.Add('fname',ftString,40);
FieldDefs.Add('fmodel',ftString,50);
FieldDefs.Add('fcolor',ftString,48);
FieldDefs.Add('ffuel',ftFloat);
FieldDefs.Add('frentday',ftFloat);
FieldDefs.Add('fPicture',ftString,80);
Createdataset;
open;
fields.FieldByName('fid').Visible:=False;
fields.FieldByName('frentday').Visible:=False;
fields.FieldByName('fPicture').Visible:=False;
fields.FieldByName('fcode').DisplayLabel:='车号';
fields.FieldByName('fcode').DisplayWidth:=10;
fields.FieldByName('fname').DisplayLabel:='车名';
fields.FieldByName('fname').DisplayWidth:=16;
fields.FieldByName('fmodel').DisplayLabel:='车型';
fields.FieldByName('fmodel').DisplayWidth:=20;
fields.FieldByName('fcolor').DisplayLabel:='颜色';
fields.FieldByName('fcolor').DisplayWidth:=16;
fields.FieldByName('ffuel').DisplayLabel:='排气量';
fields.FieldByName('ffuel').DisplayWidth:=8;
fields.FieldByName('fselect').DisplayLabel:='选择';
fields.FieldByName('fselect').DisplayWidth:=6;
end;
end;
procedure TfrmProductQuery.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
inherited;
if CDSTMP.RecNo mod 2 = 0 then
begin
DBGridEh1.Canvas.Brush.Color:=$00EAEFED;
DBGridEh1.Canvas.Font.Color:=clBlack;
end
else
begin
DBGridEh1.Canvas.Brush.Color:=clWhite;
DBGridEh1.Canvas.Font.Color:=clBlack;
end;
if gdselected in state then
begin
DBGridEh1.Canvas.Brush.Color:=clBackground;
DBGridEh1.Canvas.Font.Color:=clWhite;
end;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TfrmProductQuery.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if (key=VK_DOWN) or (key=VK_TAB) then
begin
(sender as TDBgridEH).DataSource.DataSet.Next;
key:=0;
end;
end;
procedure TfrmProductQuery.Button2Click(Sender: TObject);
begin
inherited;
if CDSTMP.RecordCount = 0 then Exit;
PublicData:=CDSTmp.Data;
frmProductQuery.Close;
end;
procedure TfrmProductQuery.DeleteCDSData;
begin
if CDSTMP.Active then
begin
CDSTMP.First;
while not CDSTMP.Eof do
CDSTMP.Delete;
CDStmp.Fields.FieldByName('fcode').ReadOnly:=False;
CDStmp.Fields.FieldByName('fname').ReadOnly:=False;
CDStmp.Fields.FieldByName('fmodel').ReadOnly:=False;
CDStmp.Fields.FieldByName('fcolor').ReadOnly:=False;
CDStmp.Fields.FieldByName('ffuel').ReadOnly:=False;
end;
end;
procedure TfrmProductQuery.Image1Click(Sender: TObject);
begin
inherited;
if not CDSTmp.Active then Exit;
if CDStmp.FieldByName('fPicture').AsString <> '' then
begin
ItemImages:=CDStmp.FieldByName('fPicture').AsString;
openModalForm(TfrmImageBrowse,self,Tform(FrmImageBrowse));
end;
end;
procedure TfrmProductQuery.assingcarimg;
var
imgStream:TmemoryStream;
jpg:TjpegImage;
begin
if CDSTMP.FieldByName('fPicture').AsString<>'' then
begin
try
imgStream:=TmemoryStream.Create;
jpg:=TjpegImage.Create;
try
imgStream.LoadFromFile(CDSTMP.FieldByName('fPicture').AsString);
jpg.LoadFromStream(imgStream);
image1.Picture.Assign(jpg);
except
image1.Picture:=nil;
end;
finally
imgStream.Free;
Jpg.free;
end;
end
else
image1.Picture:=nil;
end;
procedure TfrmProductQuery.CDSTMPAfterScroll(DataSet: TDataSet);
begin
inherited;
assingcarimg;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -