ftelezone.cpp

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

CPP
165
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "FTeleZone.h"
#include "TeleZoneInfo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFrmTeleZone *FrmTeleZone;
//---------------------------------------------------------------------------
__fastcall TFrmTeleZone::TFrmTeleZone(   TIniFile *pMessageIniFile, TDMTelSys* pDMTelSys,
        TComponent* Owner)
        : pMsgIniFile( pMessageIniFile), pDMTelSys( pDMTelSys), TForm(Owner)
{
    TeleZoneQuery->Open();
    TLocateOptions Options;
    Options.Clear();
    Options << loPartialKey;
    if( pDMTelSys->UserRightQuery->Locate( "FormID", Variant( "FrmTeleZone"), Options)) {
        if( pDMTelSys->UserRightQuery->FieldByName( "Write")->AsString == "No") {
            ModifyToolButton->Enabled = false;
            SaveToolButton->Enabled = false;
            GiveUpToolButton->Enabled = false;
            NewToolButton->Enabled = false;
            DeleteToolButton->Enabled = false;
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TFrmTeleZone::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    Action = caFree;
    FrmTeleZone = NULL;
}
//---------------------------------------------------------------------------
void __fastcall TFrmTeleZone::NewToolButtonClick(TObject *Sender)
{
    TeleZone tz( pDMTelSys->TelSysADOConnection);
    DlgTeleZoneInfo = new TDlgTeleZoneInfo( true, tz, pMsgIniFile, this);

    if( DlgTeleZoneInfo->ShowModal() == mrOk) {
        NewTZVec.push_back( tz);

        TeleZoneQuery->Append();
        TeleZoneQuery->FieldByName( "type")->AsString = tz.GetType();
        TeleZoneQuery->FieldByName( "local_code")->AsString = tz.GetCode();
        TeleZoneQuery->FieldByName( "area")->AsString = tz.GetZone();
        TeleZoneQuery->FieldByName( "location")->AsString = tz.GetLocation();
        TeleZoneQuery->FieldByName( "price")->AsString = tz.GetPriceStr();
        TeleZoneQuery->FieldByName( "interval")->AsString = tz.GetUnitStr();
        TeleZoneQuery->Post();
    }
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::ExitToolButtonClick(TObject *Sender)
{
    Close();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::ModifyToolButtonClick(TObject *Sender)
{
    TeleZone tz( pDMTelSys->TelSysADOConnection);
    tz.SetType( TeleZoneQuery->FieldByName( "type")->AsString);
    tz.SetCode( TeleZoneQuery->FieldByName( "local_code")->AsString);
    tz.SetZone( TeleZoneQuery->FieldByName( "area")->AsString);
    tz.SetLocation( TeleZoneQuery->FieldByName( "location")->AsString);
    tz.SetPrice( TeleZoneQuery->FieldByName( "Price")->AsString);
    tz.SetUnit( TeleZoneQuery->FieldByName( "interval")->AsString);

    DlgTeleZoneInfo = new TDlgTeleZoneInfo( false, tz, pMsgIniFile, this);

    if( DlgTeleZoneInfo->ShowModal() == mrOk) {
        ModifyTZVec.push_back( tz);

        TeleZoneQuery->Edit();
        TeleZoneQuery->FieldByName( "area")->AsString = tz.GetZone();
        TeleZoneQuery->FieldByName( "location")->AsString = tz.GetLocation();
        TeleZoneQuery->FieldByName( "price")->AsString = tz.GetPriceStr();
        TeleZoneQuery->FieldByName( "interval")->AsString = tz.GetUnitStr();
        TeleZoneQuery->Post();
    }
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::DeleteToolButtonClick(TObject *Sender)
{
    TeleZone tz( pDMTelSys->TelSysADOConnection);
    tz.SetType( TeleZoneQuery->FieldByName( "type")->AsString);
    tz.SetCode( TeleZoneQuery->FieldByName( "local_code")->AsString);

    DeleteTZVec.push_back( tz);
    TeleZoneQuery->Delete();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::SaveToolButtonClick(TObject *Sender)
{
    std::for_each( NewTZVec.begin(), NewTZVec.end(), std::mem_fun_ref( &TeleZone::sql_insert));

    std::vector< TeleZone>::const_iterator pIter;
    for( pIter = ModifyTZVec.begin(); pIter != ModifyTZVec.end(); ++pIter) {
        pIter->sql_update( *pIter);
    }

    for( pIter = DeleteTZVec.begin(); pIter != DeleteTZVec.end(); ++pIter) {
        pIter->sql_delete( pIter->GetType(), pIter->GetCode());
    }

    NewTZVec.clear();
    ModifyTZVec.clear();
    DeleteTZVec.clear();

    TeleZoneQuery->Close();
    TeleZoneQuery->Open();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::GiveUpToolButtonClick(TObject *Sender)
{
    NewTZVec.clear();
    ModifyTZVec.clear();
    DeleteTZVec.clear();

    TeleZoneQuery->Close();
    TeleZoneQuery->Open();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::RefreshToolButtonClick(TObject *Sender)
{
    TeleZoneQuery->Close();
    TeleZoneQuery->Open();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::FirstPageToolButtonClick(TObject *Sender)
{
    TeleZoneQuery->First();
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::PrevPageToolButtonClick(TObject *Sender)
{
    TeleZoneQuery->Prior();        
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::NextPageToolButtonClick(TObject *Sender)
{
    TeleZoneQuery->Next();        
}
//---------------------------------------------------------------------------

void __fastcall TFrmTeleZone::LastPageToolButtonClick(TObject *Sender)
{
    TeleZoneQuery->Last();        
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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