📄 bad_tel_un.pas
字号:
unit bad_tel_un;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, stand_un, BusinessSkinForm, bsSkinCtrls, ComCtrls, bsSkinTabs,
StdCtrls, Mask, bsSkinBoxCtrls, bsSkinGrids, bsDBGrids,db;
type
Tbad_tel = class(Tstand)
bsSkinPanel1: TbsSkinPanel;
bsSkinGroupBox2: TbsSkinGroupBox;
bsSkinLabel2: TbsSkinLabel;
bsSkinDateEdit1: TbsSkinDateEdit;
bsSkinDateEdit2: TbsSkinDateEdit;
bsSkinLabel3: TbsSkinLabel;
bsSkinXFormButton10: TbsSkinXFormButton;
bsSkinXFormButton2: TbsSkinXFormButton;
bsSkinXFormButton3: TbsSkinXFormButton;
bsSkinGroupBox3: TbsSkinGroupBox;
bsSkinLabel1: TbsSkinLabel;
bsSkinEdit1: TbsSkinEdit;
bsSkinLabel4: TbsSkinLabel;
bsSkinEdit2: TbsSkinEdit;
bsSkinGroupBox4: TbsSkinGroupBox;
bsSkinPageControl1: TbsSkinPageControl;
bsSkinTabSheet1: TbsSkinTabSheet;
bsSkinDBGrid4: TbsSkinDBGrid;
bsSkinScrollBar7: TbsSkinScrollBar;
bsSkinScrollBar8: TbsSkinScrollBar;
bsSkinTabSheet2: TbsSkinTabSheet;
bsSkinDBGrid1: TbsSkinDBGrid;
bsSkinScrollBar1: TbsSkinScrollBar;
bsSkinScrollBar2: TbsSkinScrollBar;
procedure FormCreate(Sender: TObject);
procedure bsSkinXFormButton2Click(Sender: TObject);
procedure bsSkinXFormButton10Click(Sender: TObject);
procedure bsSkinXFormButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
bad_tel: Tbad_tel;
datasource1,datasource2:tdatasource;
implementation
uses globe,dm_un,main_un,bad_prn_un;
{$R *.dfm}
procedure Tbad_tel.FormCreate(Sender: TObject);
var
k:double;
begin
inherited;
main.stu.Caption:='正在计算坏帐的数据,请稍稍候...............';
screen.Cursor:= crappstart;
bsskindateedit1.Date:=now;
bsskindateedit2.Date:=now;
bsskinedit1.Clear;
bsskinedit2.Clear;
dm:=tdm.Create(nil);
datasource1:=tdatasource.Create(nil);
datasource2:=tdatasource.Create(nil);
with dm do
begin
q_b.Close;
q_b.SQL.Clear;
q_b.SQL.Add('select ZJ_TEL as 主叫号码,BJ_TEL as 被叫号码,');
q_b.SQL.add('B_DATE as 开始日期,B_TIME as 开始时间,E_TIME as 结束时间,');
q_b.SQL.Add('round((e_time-b_time)*3600*24,2) as 通话时间秒,');
q_b.SQL.Add('TEL_UNIT as 单元,FL_NAME as 费类名称,TOTAL_MONEY as 总费用,');
q_b.SQL.Add('JBFL as 基本费率,USER_ID as 操作员工号 from no_DATA_YW');
q_b.SQL.Add(' where ');
q_b.SQL.Add('b_time>=:b_time and e_time<=:e_time');
q_b.Parameters.ParamByName('b_time').Value:=strtodatetime(datetostr(bsskindateedit1.Date)+' 00:00:00');
q_b.Parameters.ParamByName('e_time').Value:=strtodatetime(datetostr(bsskindateedit2.Date)+' 23:59:59');
q_b.Prepared;
q_b.Open;
q_c.Close;
q_c.SQL.Clear;
q_c.SQL.Add('select ZJ_TEL as 主叫号码,');
q_c.SQL.Add('sum(TOTAL_MONEY) as 总费用');
q_c.SQL.Add('from no_DATA_YW');
q_c.SQL.Add(' where ');
q_c.SQL.Add('b_time>=:b_time and e_time<=:e_time');
q_c.SQL.Add('group by zj_tel');
q_c.Parameters.ParamByName('b_time').Value:=strtodatetime(datetostr(bsskindateedit1.Date)+' 00:00:00');
q_c.Parameters.ParamByName('e_time').Value:=strtodatetime(datetostr(bsskindateedit2.Date)+' 23:59:59');
q_c.Prepared;
q_c.Open;
end;
dm.q_b.First;
while not dm.q_b.Eof do
begin
k:=k+dm.q_b.FieldValues['总费用'] ;
dm.q_b.Next;
end;
dm.q_b.First;
bsskinedit2.Text:=floattostr(k);
bsskinedit1.Text:=inttostr(dm.q_c.Recordset.RecordCount );
datasource1.DataSet:=dm.q_b;
datasource2.DataSet:=dm.q_c;
bsskindbgrid4.DataSource:=datasource1;
bsskindbgrid1.DataSource:=datasource2;
screen.Cursor:= crdefault;
main.stu.Caption:='数据计算完毕,可以正常使用...........';
end;
procedure Tbad_tel.bsSkinXFormButton2Click(Sender: TObject);
var
k:double;
begin
inherited;
main.stu.Caption:='正在计算坏帐的数据,请稍稍候...............';
screen.Cursor:= crappstart;
bsskinedit1.Clear;
bsskinedit2.Clear;
dm:=tdm.Create(nil);
datasource1:=tdatasource.Create(nil);
datasource2:=tdatasource.Create(nil);
with dm do
begin
q_b.Close;
q_b.SQL.Clear;
q_b.SQL.Add('select ZJ_TEL as 主叫号码,BJ_TEL as 被叫号码,');
q_b.SQL.add('B_DATE as 开始日期,B_TIME as 开始时间,E_TIME as 结束时间,');
q_b.SQL.Add('round((e_time-b_time)*3600*24,2) as 通话时间秒,');
q_b.SQL.Add('TEL_UNIT as 单元,FL_NAME as 费类名称,TOTAL_MONEY as 总费用,');
q_b.SQL.Add('JBFL as 基本费率,USER_ID as 操作员工号 from no_DATA_YW');
q_b.SQL.Add(' where ');
q_b.SQL.Add('b_time>=:b_time and e_time<=:e_time');
q_b.Parameters.ParamByName('b_time').Value:=strtodatetime(datetostr(bsskindateedit1.Date)+' 00:00:00');
q_b.Parameters.ParamByName('e_time').Value:=strtodatetime(datetostr(bsskindateedit2.Date)+' 23:59:59');
q_b.Prepared;
q_b.Open;
q_c.Close;
q_c.SQL.Clear;
q_c.SQL.Add('select ZJ_TEL as 主叫号码,');
q_c.SQL.Add('sum(TOTAL_MONEY) as 总费用');
q_c.SQL.Add('from no_DATA_YW');
q_c.SQL.Add(' where ');
q_c.SQL.Add('b_time>=:b_time and e_time<=:e_time');
q_c.SQL.Add('group by zj_tel ');
q_c.Parameters.ParamByName('b_time').Value:=strtodatetime(datetostr(bsskindateedit1.Date)+' 00:00:00');
q_c.Parameters.ParamByName('e_time').Value:=strtodatetime(datetostr(bsskindateedit2.Date)+' 23:59:59');
q_c.Prepared;
q_c.Open;
end;
dm.q_b.First;
while not dm.q_b.Eof do
begin
k:=k+dm.q_b.FieldValues['总费用'] ;
dm.q_b.Next;
end;
dm.q_b.First;
bsskinedit2.Text:=floattostr(k);
bsskinedit1.Text:=inttostr(dm.q_c.Recordset.RecordCount );
datasource1.DataSet:=dm.q_b;
datasource2.DataSet:=dm.q_c;
bsskindbgrid4.DataSource:=datasource1;
bsskindbgrid1.DataSource:=datasource2;
screen.Cursor:= crdefault;
main.stu.Caption:='数据计算完毕,可以正常使用...........';
end;
procedure Tbad_tel.bsSkinXFormButton10Click(Sender: TObject);
begin
inherited;
close;
end;
procedure Tbad_tel.bsSkinXFormButton3Click(Sender: TObject);
var
bad_prn:tbad_prn;
begin
inherited;
bad_prn:=tbad_prn.Create(bad_tel);
bad_prn.QuickRep1.DataSet:=dm.q_b;
bad_prn.QRLabel2.Caption:='时间范围: '+datetostr(bsskindateedit1.Date)+' 到'+datetostr(bsskindateedit2.Date);
bad_prn.QRLabel10.Caption:='坏帐电话总数为: '+bsskinedit1.Text +' 坏帐总金额为:'+bsskinedit2.Text;
bad_prn.QRDBText1.DataSet:=dm.q_b;
bad_prn.QRDBText1.DataField:='主叫号码';
bad_prn.QRDBText2.DataSet:=dm.q_b;
bad_prn.QRDBText2.DataField:='被叫号码';
bad_prn.QRDBText3.DataSet:=dm.q_b;
bad_prn.QRDBText3.DataField:='开始时间';
bad_prn.QRDBText4.DataSet:=dm.q_b;
bad_prn.QRDBText4.DataField:='结束时间';
bad_prn.QRDBText5.DataSet:=dm.q_b;
bad_prn.QRDBText5.DataField:='费类名称';
bad_prn.QRDBText6.DataSet:=dm.q_b;
bad_prn.QRDBText6.DataField:='总费用';
bad_prn.QRDBText7.DataSet:=dm.q_b;
bad_prn.QRDBText7.DataField:='基本费率';
bad_prn.QuickRep1.Prepare;
bad_prn.QuickRep1.Preview;
bad_prn.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -