f_stosearch.pas

来自「仓库管理系统 仓库管理系统」· PAS 代码 · 共 212 行

PAS
212
字号
unit f_stosearch;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, DB, ADODB, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons,
  DBCtrls, Mask, DBGridEh, ppVar, ppPrnabl, ppClass, ppCtrls, ppDB,
  ppBands, ppCache, ppProd, ppReport, ppComm, ppRelatv, ppDBPipe;

type
  Tdfmstosearch = class(TForm)
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    DataSource2: TDataSource;
    Atblbranch: TADOTable;
    ATblspec: TADOTable;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    AQryware: TADOQuery;
    DataSource5: TDataSource;
    aqrystore: TADOQuery;
    Panel2: TPanel;
    postbtn: TBitBtn;
    Label3: TLabel;
    Label2: TLabel;
    Label6: TLabel;
    MaskEdit3: TMaskEdit;
    DBGridEh1: TDBGridEh;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    atbllabel: TADOTable;
    MaskEdit1: TMaskEdit;
    UpDown1: TUpDown;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    ppDBPipeline1: TppDBPipeline;
    ppReport1: TppReport;
    ppHeaderBand1: TppHeaderBand;
    ppDetailBand1: TppDetailBand;
    ppFooterBand1: TppFooterBand;
    ppLabel1: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppGroup1: TppGroup;
    ppGroupHeaderBand1: TppGroupHeaderBand;
    ppGroupFooterBand1: TppGroupFooterBand;
    ppLabel2: TppLabel;
    ppDBText1: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppGroup2: TppGroup;
    ppGroupHeaderBand2: TppGroupHeaderBand;
    ppGroupFooterBand2: TppGroupFooterBand;
    ppLabel3: TppLabel;
    ppDBText5: TppDBText;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppDBCalc1: TppDBCalc;
    ppLabel6: TppLabel;
    ppLabel7: TppLabel;
    ppDBCalc2: TppDBCalc;
    ppSummaryBand1: TppSummaryBand;
    ppLabel8: TppLabel;
    ppDBCalc3: TppDBCalc;
    CheckBox1: TCheckBox;
    aqrystorebmh: TWideStringField;
    aqrystoreclabel: TWideStringField;
    aqrystorespbh: TWideStringField;
    aqrystoredqsl: TFloatField;
    aqrystorecname: TWideStringField;
    aqrystorekcje: TBCDField;
    ppDBText2: TppDBText;
    ppLabel9: TppLabel;
    ppDBCalc4: TppDBCalc;
    ppDBCalc5: TppDBCalc;
    ppDBCalc6: TppDBCalc;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure postbtnClick(Sender: TObject);
    procedure qry10;
    procedure qryzero;
    procedure ComboBox2Enter(Sender: TObject);
    procedure ComboBox1Enter(Sender: TObject);
    procedure DBGridEh1TitleClick(Column: TColumnEh);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dfmstosearch: Tdfmstosearch;

implementation

uses dbmRainbowMis, chHeadUnit;

{$R *.dfm}

procedure Tdfmstosearch.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Atblbranch.Active := false;
  ATblspec.Active := false;
  atbllabel.Active := false;   
  action:=cafree;
end;

procedure Tdfmstosearch.FormCreate(Sender: TObject);
begin
  Atblbranch.Active := true;
  ATblspec.Active := true;
  atbllabel.Active := true;
  combobox2.Text:=dmRainbowMIS.atbldefault['cbmh'];
  combobox1.Text:=dmRainbowMIS.atbldefault['clabel'];
end;

procedure Tdfmstosearch.FormKeyPress(Sender: TObject; var Key: Char);
begin
  chHeadUnit.tabventer(dfmstosearch,key);
end;

procedure Tdfmstosearch.postbtnClick(Sender: TObject);
begin
  if CheckBox1.Checked = false then
    qry10
  else
    qryzero;
end;

procedure Tdfmstosearch.qry10;
var
  fss:string;
begin
{  fss:='SELECT [t_store].[bmh], [t_store].[clabel], left(t_store.spbh,%d) as spbh, sum(t_store.dqsl)as dqsl FROM t_store'
      +' where [t_store].[bmh] like ''%s'' and[t_store].[clabel] like ''%s'' and [t_store].[spbh] like ''%s'' and t_store.dqsl>0'
      +' group by t_store.bmh, t_store.clabel, left(t_store.spbh,%d)';}
  fss:='SELECT t_store.bmh, t_store.clabel, Left(t_store.spbh,%d) AS spbh, Sum(t_store.dqsl) AS dqsl, t_spec.cname, (t_store.dqsl*t_ware.lsj) AS kcje'
       +' FROM t_store INNER JOIN (t_spec INNER JOIN t_ware ON (t_spec.cstyle = t_ware.flh) AND (t_spec.clabel = t_ware.clabel)) ON (t_store.spbh = t_ware.spbh) AND (t_store.clabel = t_ware.clabel)'
       +' where [t_store].[bmh] like ''%s'' and[t_store].[clabel] like ''%s'' and [t_store].[spbh] like ''%s'' and t_store.dqsl>0'
       +' GROUP BY t_store.bmh, t_store.clabel, left(t_store.spbh,%d), t_spec.cname, (t_store.dqsl*t_ware.lsj)';
  with aqrystore do
  begin
    close;
    sql.Clear ;
    sql.Add(Format(fss,[strtoint(trim(MaskEdit1.text)),trim(combobox2.text)+'%',trim(combobox1.text)+'%',trim(MaskEdit3.text)+'%',strtoint(MaskEdit1.text)]));
    Prepared;
    open;
  end;
end;

procedure Tdfmstosearch.ComboBox2Enter(Sender: TObject);
begin
  chHeadUnit.combolist(combobox2,Atblbranch,'bmh','bmmc',1);
end;

procedure Tdfmstosearch.ComboBox1Enter(Sender: TObject);
begin
  chHeadUnit.combolist(combobox1,atbllabel,'clabel','cfactory',1);
end;

procedure Tdfmstosearch.DBGridEh1TitleClick(Column: TColumnEh);
begin
  chHeadUnit.ehtitclick(column); 
end;

procedure Tdfmstosearch.BitBtn1Click(Sender: TObject);
begin
  aqrystore.Sort := 'bmh'+' ASC';
  ppReport1.Print;
end;

procedure Tdfmstosearch.qryzero;
var
  fss:string;
begin
  fss:='SELECT t_store.bmh, t_store.clabel, Left(t_store.spbh,%d) AS spbh, Sum(t_store.dqsl) AS dqsl, t_spec.cname, (t_store.dqsl*t_ware.lsj) AS kcje'
       +' FROM t_store INNER JOIN (t_spec INNER JOIN t_ware ON (t_spec.cstyle = t_ware.flh) AND (t_spec.clabel = t_ware.clabel)) ON (t_store.spbh = t_ware.spbh) AND (t_store.clabel = t_ware.clabel)'
       +' where [t_store].[bmh] like ''%s'' and[t_store].[clabel] like ''%s'' and [t_store].[spbh] like ''%s'''
       +' GROUP BY t_store.bmh, t_store.clabel, left(t_store.spbh,%d), t_spec.cname, (t_store.dqsl*t_ware.lsj)';
  with aqrystore do
  begin
    close;
    sql.Clear ;
    sql.Add(Format(fss,[strtoint(trim(MaskEdit1.text)),trim(combobox2.text)+'%',trim(combobox1.text)+'%',trim(MaskEdit3.text)+'%',strtoint(MaskEdit1.text)]));
    Prepared;
    open;
  end;
end;

procedure Tdfmstosearch.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
var
 holdColor: TColor;
begin
  holdColor := DBGridEh1.Canvas.Brush.Color; {store the original color}
    if aqrystore.FieldByName('dqsl').Asinteger>=0 then begin
    end
    else
    begin
      DBGridEh1.Canvas.Brush.Color := clred;
      DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      DBGridEh1.Canvas.Brush.Color := holdColor;
    end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?