📄 queryddtj_2.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 + -