📄 unitmain.cpp
字号:
//---------------------------------------------------------------------------
//运行程序前应该在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 + -