⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 productquery.pas

📁 三层ERP系统 (SQL)
💻 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 + -