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

📄 unitmain.cpp

📁 基于MD110程控交换机的计费程序,使用C++Builder开发
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
//运行程序前应该在BDE(数据库引擎)管理器中,为当前目录下的Data文件夹中的数据库
//建立数据库别名"JiFei "
#include <vcl.h>
#pragma hdrstop

#include "UnitMain.h"
#include "UnitRecord.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormCreate(TObject *Sender)
{
    CurrentRecord=0;

    COMX=new SCommunication();
    COMX->ComInitialization();

    pThread=new ThreadComm(false);

    DateTimeInit();
    BaseFunctionIni();
    NoEdiet=false;
    ComboBox1Change(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::MessageProc(TMessage & Message)
{
    COMX->ReadCommToBuffer();
}

//---------------------------------------------------------------------------

AnsiString __fastcall TFormMain::GetCommParameter(int * BaudRateP, int * ByteSizeP, int * ParityP, int * StopBitsP)
{
    char A1[16];
    AnsiString FileName=GetCurrentDir()+AnsiString("\\Data\\JFConfig.ini");

    GetPrivateProfileString("Communication","BaudRate","9600",A1,15, FileName.c_str());
    *BaudRateP=AnsiString(A1).ToInt();

    GetPrivateProfileString("Communication","ByteSize","8",A1,15, FileName.c_str());
    *ByteSizeP=AnsiString(A1).ToInt();

    GetPrivateProfileString("Communication","Parity","无校验",A1,15, FileName.c_str());
    if(AnsiString(A1).AnsiCompare("无校验")==0)
        *ParityP=0;
    else if(AnsiString(A1).AnsiCompare("奇校验")==0)
        *ParityP=1;
    else
        *ParityP=2;

    GetPrivateProfileString("Communication","StopBits","1",A1,15, FileName.c_str());
    if(AnsiString(A1).AnsiCompare("1")==0)
        *StopBitsP=0;
    else if(AnsiString(A1).AnsiCompare("1.5")==0)
        *StopBitsP=1;
    else
        *StopBitsP=2;

    GetPrivateProfileString("Communication","Device","COM1",A1,15, FileName.c_str());
    return AnsiString(A1);
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::SetCommParameter(char * DeviceP, char * BaudRateP, char * ByteSizeP, char * ParityP, char * StopBitsP)
{
    AnsiString FileName=GetCurrentDir()+AnsiString("\\Data\\JFConfig.ini");

    WritePrivateProfileString("Communication","Device",DeviceP, FileName.c_str());
    WritePrivateProfileString("Communication","BaudRate",BaudRateP, FileName.c_str());
    WritePrivateProfileString("Communication","ByteSize",ByteSizeP, FileName.c_str());
    WritePrivateProfileString("Communication","Parity",ParityP, FileName.c_str());
    WritePrivateProfileString("Communication","StopBits",StopBitsP, FileName.c_str());
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
    Timer1->Enabled=false;
    while(Memo1->Lines->Count>CurrentRecord)
    {
        ModuleRecord->FileRecord(Memo1->Lines->Strings[CurrentRecord]);
        CurrentRecord++;
        if(FormMain->Memo1->Lines->Count>50)
        {
            FormMain->Memo1->Lines->Delete(0);
            if(CurrentRecord)CurrentRecord--;
        }
    }
    Timer1->Enabled=true;
    if(CheckBox4->Checked)ControlTimer();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::PageControl1Change(TObject *Sender)
{
    switch(PageControl1->ActivePage->TabIndex)
    {
        case 0:
            Memo1->Visible=true;
            DBGrid1->Visible=false;
            break;
        case 1:
            Memo1->Visible=false;
            DBGrid1->Visible=true;
            break;
        default:
            Memo1->Visible=false;
            DBGrid1->Visible=false;
    }
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Button5Click(TObject *Sender)
{
    ModuleRecord -> LocateUser(Edit2->Text);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Button6Click(TObject *Sender)
{
    ModuleRecord -> LocateUser(Edit4->Text);
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Button11Click(TObject *Sender)
{
    DBNavigator1->BtnClick(nbDelete);
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Button12Click(TObject *Sender)
{
    DBNavigator1->BtnClick(nbInsert);
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Button13Click(TObject *Sender)
{
    DBNavigator1->BtnClick(nbCancel);
}
//---------------------------------------------------------------------------

void __fastcall TFormMain::Button14Click(TObject *Sender)
{
    DBNavigator1->BtnClick(nbPost);
}
//---------------------------------------------------------------------------


void __fastcall TFormMain::DateTimeInit()
{
    DateTimePicker1->Date=Now()-1;
    DateTimePicker2->Time=TDateTime("0:0:0");
    DateTimePicker3->Date=Now();
    DateTimePicker4->Time=TDateTime("23:59:59");
}

bool __fastcall TFormMain::DateTimeV()
{
    DateTimePicker1->Time=DateTimePicker2->Time;
    DateTimePicker3->Time=DateTimePicker4->Time;
    if(DateTimePicker1->DateTime>DateTimePicker3->DateTime)
    {
        ShowMessage("时间范围错误!");
        return false;
    }
    return true;
}

void __fastcall TFormMain::Button8Click(TObject *Sender)
{

    if(!DateTimeV())return;
    int i=0;
    AnsiString SQL="SELECT * FROM JifeiMem.db WHERE ";
    int j=SQL.Length();

    if(!Edit6->Text.IsEmpty())
    {
        SQL+="Zjhm='"+Edit6->Text+"' ";
        i=1;
    }
    if(!Edit7->Text.IsEmpty())
    {
        if(i!=0) SQL+=" OR ";
        SQL+="Zjhm='"+Edit7->Text+"' ";
        i=1;
    }
    if(!Edit8->Text.IsEmpty())
    {
        if(i!=0) SQL+=" OR ";
        SQL+="Zjhm='"+Edit8->Text+"' ";
        i=1;
    }
    if(!Edit9->Text.IsEmpty())
    {
        if(i!=0) SQL+=" OR ";
        SQL+="Zjhm='"+Edit9->Text+"' ";
        i=1;
    }
    if(!Edit1->Text.IsEmpty())
    {
        if(i!=0) SQL+=" OR ";
        SQL+="Zjhm='"+Edit1->Text+"' ";
        i=1;
    }
    if(i!=0)
    {
        SQL+=") AND ";
        SQL.Insert(" ( ",j);
    }
if(DateTimePicker1->Date.DateString()==DateTimePicker3->Date.DateString())
{
    SQL+="( Dt='"+DateTimePicker1->Date.FormatString("mm'/'dd'/'yyyy")+"' AND ";
    SQL+="Tm>='"+DateTimePicker3->Time.TimeString()+"' AND ";
    SQL+="Tm<='"+DateTimePicker4->Time.TimeString()+"') ";
}
else
{
    SQL+="( Dt='"+DateTimePicker1->Date.FormatString("mm'/'dd'/'yyyy")+"' AND ";
    SQL+="Tm>='"+DateTimePicker2->Time.TimeString()+"' OR ";

    SQL+=" Dt>'"+DateTimePicker1->Date.FormatString("mm'/'dd'/'yyyy")+"' AND ";
    SQL+=" Dt<'"+DateTimePicker3->Date.FormatString("mm'/'dd'/'yyyy")+"' OR ";

    SQL+=" Dt='"+DateTimePicker3->Date.FormatString("mm'/'dd'/'yyyy")+"' AND ";
    SQL+="Tm<='"+DateTimePicker4->Time.TimeString()+"') ";

}
if(CheckBox11->Checked||CheckBox12->Checked||CheckBox13->Checked)
{
    i=0;
    SQL+=" AND (";
    if(CheckBox11->Checked)
    {
        SQL+=" Variety='IDD'";
        i++;
    }
    if(CheckBox12->Checked)
    {
        if(i!=0)SQL+=" OR ";
        SQL+=" Variety='DDD'";
        i++;
    }
    if(CheckBox13->Checked)
    {
        if(i!=0)SQL+=" OR ";
        SQL+=" Variety='LND'";
    }
SQL+=")";

}
//Caption=SQL;
ModuleRecord->Query3->Close();
ModuleRecord->Query3->SQL->Clear();
ModuleRecord->Query3->SQL->Add(SQL);
ModuleRecord->Query3->ExecSQL();
ModuleRecord->Query3->Active=true;

ModuleRecord->DataSource5->Enabled=false;
float hz=0;
while (!ModuleRecord->Query3->Eof)
{
    hz+=ModuleRecord->Query3->FieldByName("Fee")->AsFloat;
    ModuleRecord->Query3->Next();
}
Label9->Caption=FormatFloat("###,###",ModuleRecord->Query3->RecordCount);
Label10->Caption=FormatFloat("###,###,##0.00",hz);
ModuleRecord->DataSource5->Enabled=true;

}
//---------------------------------------------------------------------------



void __fastcall TFormMain::BaseFunctionIni()
{
    char A1[16];
    AnsiString FileName=GetCurrentDir()+AnsiString("\\Data\\JFConfig.ini");

    GetPrivateProfileString("BaseFunction","J01","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox21->Visible=false;
    else
        CheckBox21->Caption=A1;
    GetPrivateProfileString("BaseFunction","J02","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox22->Visible=false;
    else
        CheckBox22->Caption=A1;
    GetPrivateProfileString("BaseFunction","J03","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox23->Visible=false;
    else
        CheckBox23->Caption=A1;
    GetPrivateProfileString("BaseFunction","J04","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox24->Visible=false;
    else
        CheckBox24->Caption=A1;
    GetPrivateProfileString("BaseFunction","J05","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox25->Visible=false;
    else
        CheckBox25->Caption=A1;
    GetPrivateProfileString("BaseFunction","J06","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox26->Visible=false;
    else
        CheckBox26->Caption=A1;
    GetPrivateProfileString("BaseFunction","J07","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox27->Visible=false;
    else
        CheckBox27->Caption=A1;
    GetPrivateProfileString("BaseFunction","J08","",A1,9, FileName.c_str());
    if(AnsiString(A1).IsEmpty())
        CheckBox28->Visible=false;

⌨️ 快捷键说明

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