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

📄 bad_tel_un.pas

📁 布林电话收费管理系统
💻 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 + -