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

📄 queryddtj_2.pas

📁 客户档案管理-delphi开发
💻 PAS
字号:
unit queryddtj_2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, query, bsSkinShellCtrls, PrnDbgeh, Menus, bsSkinMenus, DB,
  ADODB, BusinessSkinForm, bsSkinCtrls, Grids, DBGridEh, ExtCtrls,
  StdCtrls, Mask, bsSkinBoxCtrls;

type
  TFormQueryDDTJ_2 = class(TFormQuery)
    bsSkinPanel2: TbsSkinPanel;
    bsSkinStdLabel3: TbsSkinStdLabel;
    bsSkinStdLabel4: TbsSkinStdLabel;
    cdsQueryDSDesigner: TStringField;
    cdsQueryDSDesigner2: TStringField;
    cdsQueryDSDesigner3: TStringField;
    cdsQueryDSDesigner4: TDateTimeField;
    cdsQueryDSDesigner5: TStringField;
    cdsQueryDSDesigner6: TBCDField;
    ADODataSet1: TADODataSet;
    bsSkinCheckRadioBox1: TbsSkinCheckRadioBox;
    bsSkinCheckRadioBox2: TbsSkinCheckRadioBox;
    bsSkinCheckRadioBox3: TbsSkinCheckRadioBox;
    procedure cdsQueryAfterOpen(DataSet: TDataSet);
    procedure cdsQueryCalcFields(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure bsSkinSpeedButton5Click(Sender: TObject);
    procedure bsSkinCheckRadioBox1Click(Sender: TObject);
    procedure bsSkinCheckRadioBox2Click(Sender: TObject);
    procedure bsSkinCheckRadioBox3Click(Sender: TObject);
    procedure bsSkinSpeedButton7Click(Sender: TObject);
  private
    { Private declarations }
    procedure xxxx;
  public
    { Public declarations }
  end;

var
  FormQueryDDTJ_2: TFormQueryDDTJ_2;

implementation

uses
  dm, addCustom;

{$R *.dfm}

procedure TFormQueryDDTJ_2.cdsQueryAfterOpen(DataSet: TDataSet);
var
  eTotal : Extended;
begin
  inherited;

  eTotal := 0.0;

  cdsQuery.DisableControls;
  with cdsQuery do
  begin
    First;
    while not eof do
    begin
      if not FindField('销售数量').IsNull then
        eTotal := eTotal + FindField('销售数量').Value;
      Next;
    end;
  end;
  cdsQuery.EnableControls;

  bsSkinStdLabel4.Caption := FormatFloat('0.##', eTotal);
end;

procedure TFormQueryDDTJ_2.cdsQueryCalcFields(DataSet: TDataSet);
var
  khid : String;  // 客户编号
begin
  inherited;
  with DataSet do
  begin
     khid := FindField('客户编号').Value;
     if ADODataSet1.Active then
       ADODataSet1.Close;
     ADODataSet1.Parameters.ParamByName('khid').Value := khid;
     ADODataSet1.Open;
     if ADODataSet1.RecordCount > 0 then
     begin
       if not ADODataSet1.FindField('日期').IsNull then
         FindField('发生日期').Value := ADODataSet1.FindField('日期').Value;
       if not ADODataSet1.FindField('数量').IsNull then
         FindField('销售数量').Value := ADODataSet1.FindField('数量').Value;
     end;
  end;
end;

procedure TFormQueryDDTJ_2.FormCreate(Sender: TObject);
begin
  inherited;
  with ADODataSet1 do
  begin
    if Active then Close;
    CommandText := 'select top 1 日期, 数量 from 订单 where (日期 < dateadd(Month, 3, getdate())) and (客户编号=:khid ) order by 日期 desc';
  end;

  with cdsQuery do
  begin
    if Active then Close;
    CommandText := 'SELECT  *  from 流失客户3个月统计';
    Open;
  end;
end;

procedure TFormQueryDDTJ_2.bsSkinSpeedButton5Click(Sender: TObject);
begin
  PrintDBGridEh1.AfterGridText.Clear;
  PrintDBGridEh1.AfterGridText.Add(bsSkinStdLabel3.Caption + bsSkinStdLabel4.Caption);

  inherited;
end;

procedure TFormQueryDDTJ_2.bsSkinCheckRadioBox1Click(Sender: TObject);
begin
  inherited;
  with ADODataSet1 do
  begin
    if Active then Close;
    CommandText := 'select top 1 日期, 数量 from 订单 where (日期 < dateadd(Month, 3, getdate())) and (客户编号=:khid ) order by 日期 desc';
  end;

  with cdsQuery do
  begin
    if Active then Close;
    CommandText := 'SELECT  *  from 流失客户3个月统计';
    Open;
  end;
end;

procedure TFormQueryDDTJ_2.bsSkinCheckRadioBox2Click(Sender: TObject);
begin
  inherited;
  with ADODataSet1 do
  begin
    if Active then Close;
    CommandText := 'select top 1 日期, 数量 from 订单 where (日期 < dateadd(Month, 6, getdate())) and (客户编号=:khid ) order by 日期 desc';
  end;

  with cdsQuery do
  begin
    if Active then Close;
    CommandText := 'SELECT  *  from 流失客户6个月统计';
    Open;
  end;
end;

procedure TFormQueryDDTJ_2.bsSkinCheckRadioBox3Click(Sender: TObject);
begin
  inherited;
  with ADODataSet1 do
  begin
    if Active then Close;
    CommandText := 'select top 1 日期, 数量 from 订单 where (日期 < dateadd(Year, 1, getdate())) and (客户编号=:khid ) order by 日期 desc';
  end;

  with cdsQuery do
  begin
    if Active then Close;
    CommandText := 'SELECT  *  from 流失客户1年统计';
    Open;
  end;
end;

procedure TFormQueryDDTJ_2.bsSkinSpeedButton7Click(Sender: TObject);
begin
  inherited;
  xxxx;
end;

procedure TFormQueryDDTJ_2.xxxx;
begin
  // 打开详细信息
  if not cdsQuery.Active then Exit;
  if cdsQuery.RecordCount <= 0 then Exit;

      with TFormAddCustom.Create(self) do
      try
        // 定位到相关记录
        if cdsQuery.RecordCount > 0 then
        begin
          cdsAdd.Parameters.ParamByName('id').Value := cdsQuery.FindField('客户编号').Value;
          cdsAdd.Open;
        end;
        ShowModal;
      finally
        Free;
      end;
end;

end.

⌨️ 快捷键说明

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