📄 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;
type
TfrmProductQuery = class(TfrmBase_DLL)
GroupBox2: TGroupBox;
DBGridEh1: TDBGridEh;
Panel1: TPanel;
Panel2: TPanel;
Button3: TButton;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button4: TButton;
Bevel1: TBevel;
cdstype: TClientDataSet;
dsType: TDataSource;
cdstypefID: TIntegerField;
cdstypefParentID: TIntegerField;
cdstypefParentCode: TWideStringField;
cdstypefCode: TWideStringField;
cdstypefName: TWideStringField;
cdstypefNotes: TWideStringField;
CDSProduct: TClientDataSet;
CDSProductfID: TAutoIncField;
CDSProductfTypeId: TIntegerField;
CDSProductfTypeName: TWideStringField;
CDSProductfCode: TWideStringField;
CDSProductfName: TWideStringField;
CDSProductfSpec: TWideStringField;
CDSProductfEnglishName: TWideStringField;
CDSProductfColor: TWideStringField;
CDSProductfLevel: TWideStringField;
CDSProductfUnitName: TWideStringField;
CDSProductfunitSName: TWideStringField;
CDSProductfUnitRelation: TBCDField;
CDSProductfWholePrice: TBCDField;
CDSProductfRetailPrice: TBCDField;
CDSProductfPrePrice: TBCDField;
CDSProductfRefPrice: TBCDField;
CDSProductfMaxNum: TBCDField;
CDSProductfMinNum: TBCDField;
CDSProductfMaxSum: TBCDField;
CDSProductfMinSum: TBCDField;
CDSProductfStatus: TBooleanField;
CDSProductfNotes: TMemoField;
CDSProductfIsPackage: TBooleanField;
CDSProductfPicture: TWideStringField;
CDSProductfReadmeFile: TWideStringField;
CDSTMP: TClientDataSet;
DSTMP: TDataSource;
typecode: TdxLookupTreeView;
procedure FormDestroy(Sender: TObject);
procedure Button3Click(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);
private
procedure CreateTMPData;
procedure DeleteCDSData;
{ Private declarations }
public
{ Public declarations }
end;
var
frmProductQuery: TfrmProductQuery;
implementation
uses DataProcess, Global;
{$R *.dfm}
procedure TfrmProductQuery.FormDestroy(Sender: TObject);
begin
inherited;
frmProductQuery:=nil;
end;
procedure TfrmProductQuery.Button3Click(Sender: TObject);
begin
inherited;
ProductDATA:=null;
Close;
end;
procedure TfrmProductQuery.FormCreate(Sender: TObject);
begin
inherited;
Getsqldata(CDStype,'tProductType','fid','fid>0',20);
CreateTMPData;
end;
procedure TfrmProductQuery.Button1Click(Sender: TObject);
begin
inherited;
typecode.Text:='';
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
procedure TfrmProductQuery.Button4Click(Sender: TObject);
var
sFilter:string;
begin
inherited;
sFilter:='';
if Trim(TypeCode.Text)<>'' then
begin
sFilter:= sFilter+' fTypeID = '+Vartosql(CDSType.fieldbyname('fID').AsInteger);
end;
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+' fSpec like '+vartosql('%'+Trim(Edit3.Text)+'%');
end;
if sFilter='' then Exit;
DeleteCDSData;
GetsqlData(CDSProduct,'tProduct','fid',sFilter,20);
if CDSproduct.RecordCount > 0 then
begin
CDSProduct.First;
while not CDSProduct.Eof do
begin
CDSTMP.AppendRecord([ CDSproduct.FieldByName('fid').AsInteger,
CDSproduct['fcode'],
CDSproduct['fname'],
CDSproduct['fSpec'],
CDSProduct['funitName'],
False,
CDSProduct.FieldByName('frefPrice').AsFloat]);
CDSproduct.Next;
end;
CDStmp.Fields.FieldByName('fcode').ReadOnly:=True;
CDStmp.Fields.FieldByName('fname').ReadOnly:=True;
CDStmp.Fields.FieldByName('fspec').ReadOnly:=True;
CDStmp.Fields.FieldByName('funitname').ReadOnly:=True;
CDStmp.Fields.FieldByName('fselect').ReadOnly:=False;
end;
end;
procedure TfrmProductQuery.CreateTMPData;
begin
with CDSTMP do
begin
Close;
FieldDefs.Add('fid',ftInteger);
FieldDefs.Add('fcode',ftString,20);
FieldDefs.Add('fname',ftString,38);
FieldDefs.Add('fSpec',ftString,46);
FieldDefs.Add('funitName',ftString,8);
FieldDefs.Add('fSelect',ftboolean);
FieldDefs.Add('frefPrice',ftFloat);
Createdataset;
open;
fields.FieldByName('fid').Visible:=False;
fields.FieldByName('fcode').DisplayLabel:='玻珇
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -