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

📄 querysaleunit.pas

📁 Delphi 编写的"会员销售管理系统",源码全,数据库全,未经测试,请有兴趣的朋友自己测试!
💻 PAS
字号:
unit querysaleunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, ComCtrls, DB, ADODB;

type
  Tfrm_querysale = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    articleId: TComboBox;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    lowTime: TDateTimePicker;
    highTime: TDateTimePicker;
    GroupBox3: TGroupBox;
    Label4: TLabel;
    lowMoney: TEdit;
    highMoney: TEdit;
    b_query: TButton;
    b_clear: TButton;
    articleName: TEdit;
    GroupBox4: TGroupBox;
    DBNavigator1: TDBNavigator;
    GroupBox6: TGroupBox;
    asc: TRadioButton;
    desc: TRadioButton;
    GroupBox7: TGroupBox;
    DBGrid1: TDBGrid;
    q_sale: TADOQuery;
    t_article: TADOTable;
    ds_sale: TDataSource;
    procedure b_clearClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure b_queryClick(Sender: TObject);
    procedure ascClick(Sender: TObject);
    procedure articleIdChange(Sender: TObject);
  private
    { Private declarations }
    str:string;
    function ismoney(s:string):boolean;
  public
    { Public declarations }
  end;

var
  frm_querysale: Tfrm_querysale;

implementation
  uses datamoduleunit;
{$R *.dfm}
function  Tfrm_querysale.ismoney(s:string):boolean;
 var i:integer;
begin
  i:=1;
   while i<length(s) do
    begin
         if (s[i]<>'.') and((ord(s[i])<48) or (ord(s[i])>57)) then
         begin
         result:=false;
         exit;
        end;
     i:=i+1;
    end;
   result:=true;
end;
procedure Tfrm_querysale.b_clearClick(Sender: TObject);
begin
articleid.ItemIndex:=0;
articlename.Clear;
lowtime.Date:=strtodate('1983-6-27');
hightime.Date:=now;
lowmoney.Text:='';
highmoney.Text:='';
if desc.Checked then desc.Checked:=false;
if asc.Checked then asc.Checked:=false;

end;

procedure Tfrm_querysale.FormCreate(Sender: TObject);
var i:integer;
begin
 articleid.Items.Add('');
 i:=1;
 t_article.Open;
 while i<=t_article.RecordCount do
  begin
   articleid.Items.Add(t_article.FieldValues['商品编号']);
   t_article.Next;
   i:=i+1;
  end;

end;

procedure Tfrm_querysale.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
t_article.Close;
q_sale.Close;
end;

procedure Tfrm_querysale.FormShow(Sender: TObject);
begin
frm_querysale.b_clearClick(nil);
end;

procedure Tfrm_querysale.b_queryClick(Sender: TObject);
var s:string;
 low,high:string;
begin
 s:='select 商品编号,sum(金额) as 销售总金额 from mytransaction';
 if articleid.Text<>'' then
   s:=s+' where 商品编号='+articleid.Text;
  if articleid.Text=''  then s:=s+' where' else s:=s+' and';
  s:=s+' 日期>='''+datetostr(lowtime.Date)+'''';
  s:=s+' and 日期<='''+datetostr(hightime.Date)+'''';
  s:=s+' group by 商品编号 having sum(金额)>=';
  if lowmoney.Text=''
    then s:=s+'0'
    else if ismoney(lowmoney.Text)=true
           then s:=s+lowmoney.Text
            else begin
                showmessage('你输入的销售金额错误,请重新输入');
                activecontrol:=lowmoney;
                exit;
               end;
   if highmoney.Text=''
    then s:=s+' and sum(金额)<=999999'
    else if ismoney(highmoney.Text)=true
           then s:=s+' and sum(金额)<='+highmoney.Text
            else begin
                showmessage('你输入的销售金额错误,请重新输入');
                activecontrol:=highmoney;
                exit;
               end;
  q_sale.Close;
  q_sale.SQL.Clear;
  q_sale.SQL.Add(s);
   try
    q_sale.Open;
   except
    q_sale.ExecSQL;
   end;
  str:=s;
end;

procedure Tfrm_querysale.ascClick(Sender: TObject);
var s:string;
begin
 s:=str;
 if asc.Checked then  s:=s+' order by 商品编号 asc' else s:=s+' order by 商品编号 desc';
 q_sale.Close;
 q_sale.SQL.Clear;
 q_sale.SQL.Add(s);
  try
   q_sale.Open;
  except
   q_sale.ExecSQL;
  end;

end;

procedure Tfrm_querysale.articleIdChange(Sender: TObject);
begin
 t_article.Close;
 if articleid.ItemIndex=0 then
 begin
 articlename.Text:='';
 exit;
 end
 else  t_article.Filter:='商品编号='+articleid.Text;
 t_article.Filtered:=true;
 t_article.Open;
 if t_article.RecordCount=1
  then  articlename.Text:=t_article.FieldValues['商品姓名'];
 end;


end.

⌨️ 快捷键说明

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