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

📄 selbill1.pas

📁 飞恒进销存(超市批发)管理系统V5.1(含源程序) 语言:Delphi 6/7 相关控件:FastReport 2.4以上, Ehlib 3.4以上 1.数据库为fhe2db_V51.da
💻 PAS
字号:

unit selBill1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, Grids, DBGridEh, ExtCtrls,adodb,db;

type
  TdlgSelBill1 = class(TForm)
    PanelCondition: TPanel;
    Panel1: TPanel;
    cmdExit: TSpeedButton;
    cmdFilter: TSpeedButton;
    cmdOk: TSpeedButton;
    dbGrid1: TDBGridEh;
    procedure FormShow(Sender: TObject);
    procedure cmdExitClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure cmdFilterClick(Sender: TObject);
    procedure cmdOkClick(Sender: TObject);
  private
    { Private declarations }
    FSql:string;
    FTablename:string;
    sQueryCode:string;
  public
    { Public declarations }
    property  xSql:string read FSql write FSql;
    property  xTableName:string read FTableName write FTableName;
  end;

var
  dlgSelBill1: TdlgSelBill1;

implementation

uses datamodule1, search;

{$R *.dfm}

procedure TdlgSelBill1.FormShow(Sender: TObject);
var
  tmpStream:TADOBlobStream;
  dLastMonth:TDateTime;
  ssql:string;
begin
  dLastMonth:=dataE2.GetLastMonth(date);
  dbGrid1.DataSource :=Nil ;

  panelCondition.caption:='  查询条件:[ '+'开单日期: '+dateTostr(dLastMonth)+'至'+dateTostr(date)+' ]';
  // read blob field
  if dataE2.OpenTable('select * from queryModule where upper(ModuleCode)= :ModuleCode',xTableName) then
  begin
    tmpStream := TADOBlobStream.Create(DataE2.adoQuery1.FieldByName('GridColumns') as TBlobField, bmRead);
    xSql:=dataE2.ADOQuery1.fieldbyname('Sql1').asstring+' '+dataE2.ADOQuery1.fieldbyname('Sql2').asstring;
    sQueryCode:=Trim(dataE2.ADOQuery1.fieldbyname('queryCode').asstring);
    dataE2.ADOQuery1.close;  end
  else exit;

  try
    tmpStream.Position :=0;
    try
      dbGrid1.Columns.LoadFromStream(tmpStream);  //load columns from gridcolumns
    except
      dbGrid1.Columns.clear;
    end;
  finally
    tmpStream.Free ;
  end;

  //:Cdn 动态SQL代替此串
  //sSql:=StringReplace(xsql,':Cdn',' where Billdate between :billdate and :billdate1',[rfIgnoreCase]);
  sSql:=' where Billdate between '''+dateTostr(dLastMonth)+''' and '''+dateTostr(date)+''''; //dateTimeTostr(now)+''''

  with dataE2 do
  begin
    if QueryRpt.active then QueryRpt.Close;
    QueryRpt.close;
    QueryRpt.sql.clear;
    QueryRpt.sql.add(xsql);
    queryRpt.Parameters[0].value:=sSql;
    //queryRpt.Parameters[0].value:=dLastMonth;
    //queryRpt.Parameters[1].value:=date;

    QueryRpt.open;
  end;

  dbGrid1.DataSource :=dataE2.dsRpt ;
end;

procedure TdlgSelBill1.cmdExitClick(Sender: TObject);
begin
  modalResult:=mrNone;
  close;
end;

procedure TdlgSelBill1.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  dataE2.QueryRpt.close;
  dbGrid1.DataSource :=nil ;
end;

procedure TdlgSelBill1.cmdFilterClick(Sender: TObject);
var
  sSql:string;
begin
  schConditionForm.xTableName:=xTableName;
  schConditionForm.xQueryCode:=sQueryCode;
  if schConditionForm.showmodal=mrOk then
  begin
     //动态字段
     sSql:=schConditionForm.xSql;
     //sql为空时,默认为>'2000-01-01';
     if sSql='' then sSql:=' where Billdate > '''+'2000-01-01''';
     //:Cdn 动态SQL代替此串
     //sSql:=StringReplace(xsql,':Condition',sSql,[rfIgnoreCase]);

     with dataE2 do
     begin
       if QueryRpt.active then QueryRpt.Close;
       queryRpt.Parameters[0].value:=sSql;

       QueryRpt.open;
     end;
  end;
end;

procedure TdlgSelBill1.cmdOkClick(Sender: TObject);
begin
  dataE2.nBillId :=dataE2.queryRpt.fieldbyname('BillId').asinteger;
  dataE2.QueryRpt.Close;

  modalResult:=mrOk;
end;

end.

⌨️ 快捷键说明

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