📄 unitmainform.cpp
字号:
//新添的
ShowMessage("该人信息已删除!");
delete per;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnZZZAddClick(TObject *Sender)
{
if (edtZZZName->Text.IsEmpty())
{
ShowMessage("名字不能为空!");
return;
}
if(SysUtil::JudgeSfzID(edtZZZSfzID->Text))
{
//判断身份证是否存在
//修改!!!!
if((Global::SearchIndex(pCZRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已在常住及迁入记录中存在,请检查你的输入!");
return ;
}
if((Global::SearchIndex(pQCRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已在迁出记录中存在,请检查你的输入!");
return ;
}
if((Global::SearchIndex(pSWRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已在死亡记录中存在,请检查你的输入!");
return ;
}
if((Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已在暂住记录中存在,请检查你的输入!");
return ;
}
//判断数字是否合法
if (!SysUtil::IsNumberString(edtZZZAge->Text))
{
ShowMessage("你输入的年龄不是一个合法的整数");
return;
}
else
{
if (edtZZZAge->Text.ToInt()<1 || edtZZZAge->Text.ToInt() > 150)
{
ShowMessage("你输入的年龄不是一个有效的年龄段");
return;
}
}
//BUG
int QRtime,birth;
QRtime=DTZZZQianRuShiJian->DateTime.operator int();
birth=DTZZZBirthday->DateTime.operator int();
if (QRtime<birth)
{
ShowMessage("出生日期与迁入时间不匹配!");
return ;
}
//添加新的索引节点
UserIndex *pIndex=new UserIndex;
strcpy(pIndex->SfzID,edtZZZSfzID->Text.c_str());
pZZRYHead=Global::AddPerson(pZZRYHead,pIndex);
//delete pIndex;//delete *pIndex
//创建一个临时结构体
PerInfo *per=new PerInfo;
strcpy(per->Name,edtZZZName->Text.c_str());
strcpy(per->MinZu,edtZZZMinZu->Text.c_str());
strcpy(per->JiGuan,edtZZZJiGuan->Text.c_str());
per->QianRuShiJian=DTZZZQianRuShiJian->DateTime.operator int();
per->Sex=RGZZZSex->ItemIndex;
per->Age=edtZZZAge->Text.ToInt();
per->Birthday=DTZZZBirthday->DateTime.operator int();
per->HunYin=comBxZZZHunYin->ItemIndex;
strcpy(per->SfzID,edtZZZSfzID->Text.c_str());
strcpy(per->QianRuDiDian,edtZZZAddress->Text.c_str());
strcpy(per->QianRuYuanYin,edtZZZYuanYin->Text.c_str());
per->ZhongDian=RGZZZZhongDian->ItemIndex;
if (!Global::WritePerInfoToFile("ZZZPerson.db",pIndex->Index,per))
{
ShowMessage("你成功添加了一条信息!");
}
//刷新统计信息 新添的
Global::AddJieGouMes(RenKouTJ,per->Age,-1,-1,2);
delete per;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnZZZFindClick(TObject *Sender)
{
if (SysUtil::JudgeSfzID(edtZZZSfzID->Text))
{
double index;
//判断身份证是否存在
if((index=Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
//创建临时PERINFO
PerInfo *per=new PerInfo;
if (!Global::ReadPerInfoFromFile("ZZZPerson.db",index,per))
{
edtZZZName->Text=per->Name;
edtZZZMinZu->Text=per->MinZu;
edtZZZJiGuan->Text=per->JiGuan;
DTZZZQianRuShiJian->DateTime=per->QianRuShiJian;
RGZZZSex->ItemIndex=per->Sex;
edtZZZAge->Text=per->Age;
DTZZZBirthday->DateTime=per->Birthday;
comBxZZZHunYin->ItemIndex=per->HunYin;
edtZZZSfzID->Text=per->SfzID;
edtZZZAddress->Text=per->QianRuDiDian;
edtZZZYuanYin->Text=per->QianRuYuanYin;
RGZZZZhongDian->ItemIndex=per->ZhongDian;
}
delete per;
if(Admin)
btnZZZDelete->Enabled=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnZZZDeleteClick(TObject *Sender)
{
if (SysUtil::JudgeSfzID(edtZZZSfzID->Text))
{
double index ; //新添的
//判断身份证是否存在
if((index=Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
//创建一个临时结构体 新添的
PerInfo *per1=new PerInfo;
Global::ReadPerInfoFromFile("ZZZPerson.db",index,per1);
Global::DeleteJieGouMes(RenKouTJ,per1->Age,-1,-1,2);
pZZRYHead=Global::DeleteIndex(pZZRYHead,edtZZZSfzID->Text.c_str());
//新添的
ShowMessage("该人信息已删除!");
delete per1;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::DTSWRYJLBirthdayChange(TObject *Sender)
{
//年龄的判断
AnsiString Dead,Birth;
// double p;
Dead= DTSWRYJLDeadTime->DateTime;
Birth=DTSWRYJLBirthday->DateTime;
/*
p=Dead.SubString(0,3).ToDouble() -Birth.SubString(0,3).ToDouble();
if(p<0)
{
ShowMessage("出生日期与死亡时间不符!");
return ;
}
*/
edtSWRYJLAge->Text=Dead.SubString(0,4).ToInt()-Birth.SubString(0,4).ToInt();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::DTSWRYJLDeadTimeChange(TObject *Sender)
{
//年龄的判断
AnsiString Dead,Birth;
int p;
Dead= DTSWRYJLDeadTime->DateTime;
Birth=DTSWRYJLBirthday->DateTime;
p=Dead.SubString(0,4).ToInt()-Birth.SubString(0,4).ToInt();
if(p<0)
{
ShowMessage("出生日期与死亡时间不符!");
return ;
}
edtSWRYJLAge->Text=p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSWRYJLAddClick(TObject *Sender)
{
if (edtSWRYJLName->Text.IsEmpty())
{
ShowMessage("名字不能为空!");
return;
}
if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
{
double index;
//判断身份证是否存在
if((index=Global::SearchIndex(pCZRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
//判断死亡记录是否已存在该记录
if((Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已存到死亡记录里,请检查你的输入!");
return ;
}
//判断数字是否合法
if (!SysUtil::IsNumberString(edtSWRYJLAge->Text))
{
ShowMessage("你输入的年龄不是一个合法的整数");
return;
}
else
{
if (edtSWRYJLAge->Text.ToInt()<1 || edtSWRYJLAge->Text.ToInt() > 150)
{
ShowMessage("你输入的年龄不是一个有效的年龄段");
return;
}
}
//创建一个临时结构体
PerInfo *per1=new PerInfo;
Global::ReadPerInfoFromFile("Person.db",index,per1);
Global::DeleteJieGouMes(RenKouTJ,per1->Age,per1->WenHua,per1->ShouRu,per1->XingZhi);
pCZRYHead=Global::DeleteIndex(pCZRYHead,edtSWRYJLSfzID->Text.c_str());
delete per1;
//添加新的索引节点
UserIndex *pIndex=new UserIndex;
strcpy(pIndex->SfzID,edtSWRYJLSfzID->Text.c_str());
pSWRYHead=Global::AddPerson(pSWRYHead,pIndex);
//创建一个临时结构体
PerInfo *per=new PerInfo;
strcpy(per->Name,edtSWRYJLName->Text.c_str());
per->Sex=RGSWRYJLSex->ItemIndex;
per->Birthday=DTSWRYJLBirthday->DateTime.operator int();
strcpy(per->JiGuan,edtSWRYJLJiGuan->Text.c_str());
strcpy(per->MinZu,edtSWRYJLMinZu->Text.c_str());
per->ZengZhi=comBxSWRYJLZZMM->ItemIndex;
per->Age=edtSWRYJLAge->Text.ToInt();
per->HunYin=comBxSWRYJLHunYin->ItemIndex;
per->WenHua=comBxSWRYJLWenHua->ItemIndex;
per->SiWangShiJian=DTSWRYJLDeadTime->DateTime.operator double();
strcpy(per->SfzID,edtSWRYJLSfzID->Text.c_str());
strcpy(per->Address,edtSWRYJLAddress->Text.c_str());
strcpy(per->SiWangYuanyin,edtSWRYJLQianChuYuanYin->Text.c_str());
per->ZhongDian=RGSWRYJLZhongDian->ItemIndex;
if (!Global::WritePerInfoToFile("DeadPerson.db",pIndex->Index,per))
{
ShowMessage("你成功添加了一条信息!");
}
delete per;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSWRYJLFindClick(TObject *Sender)
{
if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
{
double index;
//判断死亡记录是否已存在该记录
if((index=Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
//创建一个临时结构体
PerInfo *per=new PerInfo;
if (!Global::ReadPerInfoFromFile("DeadPerson.db",index,per))
{
edtSWRYJLName->Text=per->Name;
RGSWRYJLSex->ItemIndex=per->Sex;
DTSWRYJLBirthday->DateTime=per->Birthday;
edtSWRYJLJiGuan->Text=per->JiGuan;
edtSWRYJLMinZu->Text=per->MinZu;
comBxSWRYJLZZMM->ItemIndex=per->ZengZhi;
edtSWRYJLAge->Text=per->Age;
comBxSWRYJLHunYin->ItemIndex=per->HunYin;
comBxSWRYJLWenHua->ItemIndex=per->WenHua;
DTSWRYJLDeadTime->DateTime=per->SiWangShiJian;
edtSWRYJLSfzID->Text=per->SfzID;
edtSWRYJLAddress->Text=per->Address;
edtSWRYJLQianChuYuanYin->Text=per->SiWangYuanyin;
RGSWRYJLZhongDian->ItemIndex=per->ZhongDian;
delete per;
if(Admin)
btnSWRYJLDelete->Enabled=true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSWRYJLDeleteClick(TObject *Sender)
{
if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
{
//判断死亡记录是否已存在该记录
if((Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
pSWRYHead=Global::DeleteIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str());
//新添的
ShowMessage("该人信息已删除!");
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::DTQCRYJLBirthdayChange(TObject *Sender)
{
//年龄 BUG
AnsiString time,birth;
time=Date();
birth=DTQCRYJLBirthday->Date;
edtQCRYJLAge->Text= time.SubString(0,4).ToInt()-birth.SubString(0,4).ToInt();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnQCRYJLAddClick(TObject *Sender)
{
if (edtQCRYJLName->Text.IsEmpty())
{
ShowMessage("名字不能为空!");
return;
}
if(SysUtil::JudgeSfzID(edtQCRYJLSfzID->Text))
{
double index;
//判断身份证是否存在
if((index=Global::SearchIndex(pCZRYHead,edtQCRYJLSfzID->Text.c_str()))==-1L)
{
ShowMessage("找不到你要的身份证号码,请检查你的输入!");
return ;
}
//判断迁出记录是否已存在该记录
if((Global::SearchIndex(pQCRYHead,edtQCRYJLSfzID->Text.c_str()))!=-1L)
{
ShowMessage("此身份证号码已存到迁出记录里,请检查你的输入!");
return ;
}
//判断数字是否合法
if (!SysUtil::IsNumberString(edtQCRYJLAge->Text))
{
ShowMessage("你输入的年龄不是一个合法的整数");
return;
}
else
{
if (edtQCRYJLAge->Text.ToInt()<1 || edtQCRYJLAge->Text.ToInt() > 150)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -