fstatselftel.cpp

来自「一套BCB6开发的电话管理系统」· C++ 代码 · 共 151 行

CPP
151
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "FStatSelfTel.h"
#include "DStatSelfTel.h"
#include "PStatSelfTel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFrmStatSelfTel *FrmStatSelfTel;
//---------------------------------------------------------------------------
__fastcall TFrmStatSelfTel::TFrmStatSelfTel(  TIniFile *pMessageIniFile,
        TDMTelSys* pDMTelSys, TComponent* Owner)
        : pMsgIniFile( pMessageIniFile), pDMTelSys( pDMTelSys), TForm(Owner)
{
    TLocateOptions Options;
    Options.Clear();
    Options << loPartialKey;
    if( pDMTelSys->UserRightQuery->Locate( "FormID", Variant( "FrmStatSelfTel"), Options)) {
        if( pDMTelSys->UserRightQuery->FieldByName( "Write")->AsString == "No") {
            PrintToolButton->Enabled = false;
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TFrmStatSelfTel::StatSelfTelProcCalcFields(
      TDataSet *DataSet)
{
/*
    int second;
    String TimeStr = StatSelfTelProc->FieldByName( "duration")->AsString;
    int hIndex, mIndex;
    hIndex = TimeStr.Pos( ":");
    second = StrToInt( TimeStr.SubString( 1, hIndex - 1)) * 3600;
    TimeStr = TimeStr.SubString( hIndex + 1, TimeStr.Length());
    mIndex = TimeStr.Pos( ":");
    second += StrToInt( TimeStr.SubString( 1, mIndex - 1)) * 60;
    TimeStr = TimeStr.SubString( mIndex + 1, TimeStr.Length());
    second += StrToInt( TimeStr);


    StatSelfTelProc->FieldByName( "TDuration")->AsInteger = second;
    StatSelfTelProc->FieldByName( "SDateTime")->AsDateTime
        = StatSelfTelProc->FieldByName( "StartDate")->AsDateTime
            + StatSelfTelProc->FieldByName( "StartTime")->AsDateTime;
    StatSelfTelProc->FieldByName( "Destination")->AsString
        = StatSelfTelProc->FieldByName( "location")->AsString
            + StatSelfTelProc->FieldByName( "area")->AsString;
*/
}
//---------------------------------------------------------------------------
void __fastcall TFrmStatSelfTel::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    Action = caFree;
    FrmStatSelfTel = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TFrmStatSelfTel::FindToolButtonClick(TObject *Sender)
{
    String Phone, SQLStr;
    TDateTime BeginDate, EndDate;
    DlgStatSelfTel = new TDlgStatSelfTel( SQLStr, BeginDate, EndDate, pDMTelSys, this);

    if( DlgStatSelfTel->ShowModal() == mrOk){
        CDSStatSelfTel->Close();
        StatSelfTelQuery->Close();
        StatSelfTelQuery->SQL->Clear();
        StatSelfTelQuery->SQL->Add( SQLStr);
        StatSelfTelQuery->Parameters->Clear();
        StatSelfTelQuery->Parameters->ParseSQL( SQLStr, true);
        StatSelfTelQuery->Parameters->ParamByName( "EndDate")->Value = EndDate;
        StatSelfTelQuery->Parameters->ParamByName( "BeginDate")->Value = BeginDate;

        StatSelfTelQuery->Open();
        CDSStatSelfTel->Open();

        DateStr = BeginDate.DateString() + "-" + EndDate.DateString();
    }
}
//---------------------------------------------------------------------------
void __fastcall TFrmStatSelfTel::ExitToolButtonClick(TObject *Sender)
{
    Close();        
}
//---------------------------------------------------------------------------
void __fastcall TFrmStatSelfTel::StatSelfTelQueryCalcFields(
      TDataSet *DataSet)
{
    int second;
    String TimeStr = StatSelfTelQuery->FieldByName( "duration")->AsString;
    int hIndex, mIndex;
    hIndex = TimeStr.Pos( ":");
    second = StrToInt( TimeStr.SubString( 1, hIndex - 1)) * 3600;
    TimeStr = TimeStr.SubString( hIndex + 1, TimeStr.Length());
    mIndex = TimeStr.Pos( ":");
    second += StrToInt( TimeStr.SubString( 1, mIndex - 1)) * 60;
    TimeStr = TimeStr.SubString( mIndex + 1, TimeStr.Length());
    second += StrToInt( TimeStr);

    StatSelfTelQuery->FieldByName( "TDuration")->AsInteger = second;                                              StatSelfTelQuery->FieldByName( "SDateTime")->AsDateTime
        = StatSelfTelQuery->FieldByName( "StartDate")->AsDateTime
            + StatSelfTelQuery->FieldByName( "StartTime")->AsDateTime;

    StatSelfTelQuery->FieldByName( "Destination")->AsString
        = StatSelfTelQuery->FieldByName( "location")->AsString
            + StatSelfTelQuery->FieldByName( "area")->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TFrmStatSelfTel::PrintToolButtonClick(TObject *Sender)
{
    PrtStatSelfTel = new TPrtStatSelfTel( this);
    PrtStatSelfTel->Visible = false;
    if( CDSStatSelfTel->Aggregates->Items[0]->Value().IsNull() == false) {
        int second = CDSStatSelfTel->Aggregates->Items[0]->Value().operator int();
        int hour = second / 3600;
        int minute = (second - hour * 3600) / 60;
        second = second - hour * 3600 - 60 * minute;

        String str = "";
        if( hour < 10)
            str = "0" ;
        str += IntToStr( hour) + ":";
        if( minute < 10)
            str += "0";
        str += IntToStr( minute) + ":";
        if( second < 10)
            str += "0";
        str += IntToStr( second);
        PrtStatSelfTel->QRLabel6->Caption = str;
    }

    if( CDSStatSelfTel->Aggregates->Items[1]->Value().IsNull() == false) {
        float money = CDSStatSelfTel->Aggregates->Items[1]->Value().operator float();
        PrtStatSelfTel->QRLabel7->Caption = FormatFloat( "##00.00", money);
    }

    PrtStatSelfTel->QRLabel5->Caption = DateStr;
    if( pDMTelSys->GSNameQuery->Active == false) {
        pDMTelSys->GSNameQuery->Open();
    }

    PrtStatSelfTel->ReportTitle->Caption = pDMTelSys->GSNameQuery->FieldByName( "coname")->AsString;
    PrtStatSelfTel->QuickRep1->PreviewModal();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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