📄 mainfrm.cpp
字号:
AnsiString strUptId = dmMain->qryExam->FieldByName("Id")->AsString;
TADOQuery * qryEx = dmMain->qrySQLPlus;
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from Exam where id=" + strUptId);
qryEx->Open();
pDlg->Caption = "修改";
pDlg->dtpExamDate->Date = qryEx->FieldByName("ExamDate")->Value;
pDlg->dtpExamTime->Time = qryEx->FieldByName("ExamTime")->Value;
pDlg->mmoRemark->Text = qryEx->FieldByName("ExamRemark")->AsString;
pDlg->mmoOpinon->Text = qryEx->FieldByName("ExamOpinon")->AsString;
pDlg->rdoExamKind->ItemIndex = qryEx->FieldByName("ExamKind")->Value;
pDlg->rdoExamResult->ItemIndex = qryEx->FieldByName("ExamResult")->Value;
if (pDlg->ShowModal() == mrOk)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->Prepared = true;
qryEx->SQL->Add( "update Exam set ExamKind=" + IntToStr(pDlg->rdoExamKind->ItemIndex) + ","
+ "ExamDate='" + DateToStr(pDlg->dtpExamDate->Date) + "',"
+ "ExamTime='" + TimeToStr(pDlg->dtpExamTime->Time) + "',"
+ "ExamResult=" + IntToStr(pDlg->rdoExamResult->ItemIndex) + ","
+ "ExamRemark='" + pDlg->mmoRemark->Text + "',"
+ "ExamOpinon='" + pDlg->mmoOpinon->Text + "',"
+ "OptId=" + gLogonInf.m_strOptId + ","
+ "OptDate=Date() where id=" + strUptId);
//ShowMessage(qryEx->SQL->Text);
qryEx->ExecSQL();
qryEx->Prepared = false;
dmMain->qryExam->Close();
dmMain->qryExam->Open();
}
delete pDlg;
dmMain->qryExam->Close();
dmMain->qryExam->Open();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::miModiMedicalClick(TObject *Sender)
{
if (dmMain->qryMedical->RecordCount < 1)
{
return;
}
TfrmMedical * pDlg = new TfrmMedical(this);
pDlg->Caption = "修改";
AnsiString strMedicalId = dmMain->qryMedical->FieldByName("Id")->AsString;
TADOQuery * qryEx = dmMain->qrySQLPlus;
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from Medical where id=" + strMedicalId);
qryEx->Open();
if (qryEx->RecordCount < 1)
{
return;
}
pDlg->chkDrug->Checked = qryEx->FieldByName("IsDrug")->AsInteger == 1;
pDlg->chkInjection->Checked = qryEx->FieldByName("IsInjection")->AsInteger == 1;
pDlg->chkPregnancy->Checked =qryEx->FieldByName("IsPregnancy")->AsInteger == 1;
pDlg->chkEkg->Checked =qryEx->FieldByName("IsEkg")->AsInteger == 1;
pDlg->chkSplint->Checked =qryEx->FieldByName("IsSplint")->AsInteger == 1;
pDlg->chkWound->Checked =qryEx->FieldByName("IsWound")->AsInteger == 1;
pDlg->chkOxygen->Checked =qryEx->FieldByName("IsOxygen")->AsInteger == 1;
pDlg->chkVaccination->Checked =qryEx->FieldByName("IsVaccination")->AsInteger == 1;
pDlg->chkSickLeave->Checked =qryEx->FieldByName("IsSickLeave")->AsInteger == 1;
pDlg->chkReferral->Checked =qryEx->FieldByName("IsReferral")->AsInteger == 1;
pDlg->dtpMedicalDate->Date = qryEx->FieldByName("MedicalDate")->Value;
pDlg->mmoComplaint->Text = qryEx->FieldByName("Complaint")->AsString;
pDlg->mmoCheckUp->Text = qryEx->FieldByName("CheckUp")->AsString;
pDlg->mmoCheckResult->Text = qryEx->FieldByName("CheckResult")->AsString;
pDlg->mmoRemark->Text = qryEx->FieldByName("Remark")->AsString;
pDlg->mmoHealthEdu->Text = qryEx->FieldByName("HealthEdu")->AsString;
if (pDlg->chkDrug->Checked)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from Drug where MedicalId=" + strMedicalId);
qryEx->Open();
while (!qryEx->Eof)
{
TListItem * li = pDlg->lvDrug->Items->Add();
AnsiString strNum = qryEx->FieldByName("Number")->AsString;
AnsiString strPrice =qryEx->FieldByName("Price")->AsString;
li->Caption = qryEx->FieldByName("Mode")->AsString;
li->SubItems->Add(qryEx->FieldByName("Name")->AsString);
li->SubItems->Add(strNum);
li->SubItems->Add(qryEx->FieldByName("Unit")->AsString);
li->SubItems->Add(strPrice);
AnsiString strTotalPrice;
if (strNum == "")
{
strNum = "0";
}
if (strPrice == "")
{
strPrice = "0";
}
strTotalPrice.sprintf("%.2f", atof(strPrice.c_str()) * atof(strNum.c_str()));
li->SubItems->Add(strTotalPrice);
qryEx->Next();
}
}
if (pDlg->chkInjection->Checked)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from Injection where MedicalId=" + strMedicalId);
qryEx->Open();
while (!qryEx->Eof)
{
TListItem * li = pDlg->lvInjection->Items->Add();
AnsiString strNum = qryEx->FieldByName("Number")->AsString;
AnsiString strPrice =qryEx->FieldByName("Price")->AsString;
li->Caption = qryEx->FieldByName("Mode")->AsString;
li->SubItems->Add(qryEx->FieldByName("Name")->AsString);
li->SubItems->Add(strNum);
li->SubItems->Add(qryEx->FieldByName("Unit")->AsString);
li->SubItems->Add(strPrice);
AnsiString strTotalPrice;
if (strNum == "")
{
strNum = "0";
}
if (strPrice == "")
{
strPrice = "0";
}
strTotalPrice.sprintf("%.2f", atof(strPrice.c_str()) * atof(strNum.c_str()));
li->SubItems->Add(strTotalPrice);
qryEx->Next();
}
}
if (pDlg->chkOxygen->Checked)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from OxyGen where MedicalId=" + strMedicalId);
qryEx->Open();
#ifdef _DEBUG
ShowMessage("Open Oxygen ok");
#endif
pDlg->dtpOxygenStartDate->Date = qryEx->FieldByName("StartDate")->Value;
pDlg->dtpOxygenStartTime->Time = qryEx->FieldByName("StartTime")->Value;
pDlg->dtpOxygenEndDate->Date = qryEx->FieldByName("EndDate")->Value;
pDlg->dtpOxygenEndTime->Time = qryEx->FieldByName("EndTime")->Value;
pDlg->edtStreamSize->Text = qryEx->FieldByName("StreamSize")->AsString;
}
if (pDlg->chkVaccination->Checked)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from Vaccination where MedicalId=" + strMedicalId);
qryEx->Open();
#ifdef _DEBUG
ShowMessage("Open Vaccination ok");
#endif
pDlg->cboVaccinationDrug->Text = qryEx->FieldByName("Name")->AsString;
pDlg->edtVaccinationNum->Text = qryEx->FieldByName("Number")->AsString;
pDlg->cboVaccinationUnit->Text = qryEx->FieldByName("Unit")->AsString;
pDlg->edtVaccinationPrice->Text = qryEx->FieldByName("Price")->AsString;
}
if (pDlg->chkSickLeave->Checked)
{
qryEx->Close();
qryEx->SQL->Clear();
qryEx->SQL->Add("select * from SickLeave where MedicalId=" + strMedicalId);
qryEx->Open();
#ifdef _DEBUG
ShowMessage("Open SickLeave ok");
#endif
pDlg->edtSickLeaveNum->Text = qryEx->FieldByName("DayNum")->AsString;
}
if (pDlg->ShowModal() != mrOk)
{
delete pDlg;
return;
}
AnsiString strDrug = pDlg->chkDrug->Checked ? "1" : "0"; //1
AnsiString strInjection = pDlg->chkInjection->Checked ? "1" : "0"; //2
AnsiString strPregnancy = pDlg->chkPregnancy->Checked ? "1" : "0"; //3
AnsiString strEkg = pDlg->chkEkg->Checked ? "1" : "0"; //4
AnsiString strSplint = pDlg->chkSplint->Checked ? "1" : "0"; //5
AnsiString strWound = pDlg->chkWound->Checked ? "1" : "0"; //6
AnsiString strOxygen = pDlg->chkOxygen->Checked ? "1" : "0"; //7
AnsiString strVaccination = pDlg->chkVaccination->Checked ? "1" : "0"; //8
AnsiString strSickLeave = pDlg->chkSickLeave->Checked ? "1" : "0"; //9
AnsiString strReferral = pDlg->chkReferral->Checked ? "1" : "0"; //10
//Write the Main Talbe
qryEx->Close();
qryEx->SQL->Clear();
AnsiString strFmt = "update Medical set MedicalDate='%s',Complaint='%s',"
"CheckUp='%s',CheckResult='%s',IsDrug=%s,IsInjection=%s,"
"IsOxygen=%s,IsPregnancy=%s,IsEkg=%s,IsSplint=%s,IsVaccination=%s,"
"IsWound=%s,IsReferral=%s,IsSickLeave=%s,Remark='%s',HealthEdu='%s',OptId=%s,OptDate=Date() where id=%s";
AnsiString strExec;
strExec.sprintf(strFmt.c_str(),
DateToStr(pDlg->dtpMedicalDate->Date),
pDlg->mmoComplaint->Text.c_str(),
pDlg->mmoCheckUp->Text.c_str(),
pDlg->mmoCheckResult->Text.c_str(),
strDrug,
strInjection,
strOxygen,
strPregnancy,
strEkg,
strSplint,
strVaccination,
strWound,
strReferral,
strSickLeave,
pDlg->mmoRemark->Text.c_str(),
pDlg->mmoHealthEdu->Text.c_str(),
gLogonInf.m_strOptId.c_str(),
strMedicalId);
qryEx->SQL->Add(strExec);
#ifdef _DEBUG
ShowMessage(strExec);
#endif
qryEx->ExecSQL();
//get just insert record no
qryEx->Close();
qryEx->SQL->Clear();
if (pDlg->chkDrug->Checked)
{
qryEx->SQL->Clear();
qryEx->SQL->Add("delete from Drug where MedicalId=" + strMedicalId);
qryEx->ExecSQL();
for (int i = 0; i < pDlg->lvDrug->Items->Count; ++i)
{
AnsiString strFmt = "insert into Drug "
"(MedicalId,[Mode],[Name],[Unit],"
"[Price],[Number],OptId) values"
" (%s,'%s','%s','%s',%s,%s,%s)";
AnsiString strExec;
strExec.sprintf(strFmt.c_str(),
strMedicalId,
pDlg->lvDrug->Items->Item[i]->Caption,
pDlg->lvDrug->Items->Item[i]->SubItems->Strings[0],
pDlg->lvDrug->Items->Item[i]->SubItems->Strings[2],
pDlg->lvDrug->Items->Item[i]->SubItems->Strings[3],
pDlg->lvDrug->Items->Item[i]->SubItems->Strings[1],
gLogonInf.m_strOptId.c_str());
qryEx->SQL->Clear();
#ifdef _DEBUG
ShowMessage(strExec);
#endif
qryEx->SQL->Add(strExec);
qryEx->ExecSQL();
}
}
if (pDlg->chkInjection->Checked)
{
qryEx->SQL->Clear();
qryEx->SQL->Add("delete from Injection where MedicalId=" + strMedicalId);
qryEx->ExecSQL();
for (int i = 0; i < pDlg->lvInjection->Items->Count; ++i)
{
AnsiString strFmt = "insert into Injection "
"(MedicalId,[Mode],[Name],[Unit],"
"[Price],[Number],OptId) values"
" (%s,'%s','%s','%s',%s,%s,%s)";
AnsiString strExec;
strExec.sprintf(strFmt.c_str(),
strMedicalId,
pDlg->lvInjection->Items->Item[i]->Caption,
pDlg->lvInjection->Items->Item[i]->SubItems->Strings[0],
pDlg->lvInjection->Items->Item[i]->SubItems->Strings[2],
pDlg->lvInjection->Items->Item[i]->SubItems->Strings[3],
pDlg->lvInjection->Items->Item[i]->SubItems->Strings[1],
gLogonInf.m_strOptId.c_str());
qryEx->SQL->Clear();
#ifdef _DEBUG
ShowMessage(strExec);
#endif
qryEx->SQL->Add(strExec);
qryEx->ExecSQL();
}
}
if (pDlg->chkOxygen->Checked)
{
qryEx->SQL->Clear();
qryEx->SQL->Add("delete from Oxygen where MedicalId=" + strMedicalId);
qryEx->ExecSQL();
AnsiString strFmt = "insert into Oxygen(MedicalId,StartDate,"
"StartTime,EndDate,EndTime,StreamSize,OptId) "
" values (%s,'%s','%s','%s','%s','%s',%s)";
AnsiString strExec;
strExec.sprintf(strFmt.c_str(),
strMedicalId,
DateToStr(pDlg->dtpOxygenStartDate->Date),
TimeToStr(pDlg->dtpOxygenStartTime->Date),
DateToStr(pDlg->dtpOxygenEndDate->Date),
TimeToStr(pDlg->dtpOxygenEndTime->Date),
pDlg->edtStreamSize->Text.c_str(),
gLogonInf.m_strOptId.c_str());
qryEx->SQL->Clear();
#ifdef _DEBUG
ShowMessage(strExec);
#endif
qryEx->SQL->Add(strExec);
qryEx->ExecSQL();
}
if (pDlg->chkVaccination->Checked)
{
qryEx->SQL->Clear();
qryEx->SQL->Add("delete from Vaccination where MedicalId=" + strMedicalId);
qryEx->ExecSQL();
AnsiString strFmt = "insert into Vaccination "
"(MedicalId,[Name],[Unit],"
"[Price],[Number],OptId) values"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -