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

📄 mainfrm.cpp

📁 醫院管理 還不錯 醫院管理 還不錯 醫院管理 還不錯
💻 CPP
📖 第 1 页 / 共 4 页
字号:
bool TfrmMain::SwitchLang(int nLang)
{
    if (0 == nLang)
    {}
    else if (1 == nLang)
    {}
    else
    {}

    MessageBox(Handle, "中文英文切换功能,暂时没有做!", "语言切换", MB_OK | MB_ICONINFORMATION);
    //if change the language succuss, then return true;;;haha
    return true;
}

bool TfrmMain::DeleteEmployee(int nEmployeeId)
{
    if (dmMain->qryClientInfo->RecordCount < 1)
    {
        return false;
    }

    AnsiString strConfirm;
    strConfirm.sprintf("真的需要删除%s的资料吗?", \
                       dmMain->qryClientInfo->FieldByName("Name")->AsString);
    if (IDNO == Msg(Handle, strConfirm.c_str(), "询问", MB_YESNO | MB_ICONQUESTION))
    {
        return false;
    }


    dmMain->DeleteEmployee(nEmployeeId);



    return true;
}






void __fastcall TfrmMain::btnAllBillClick(TObject *Sender)
{
    dmMain->OpenClientInfo("");
    m_bSearch = false;

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

void __fastcall TfrmMain::miAddEmployeeClick(TObject *Sender)
{
    AddEmployeeInf();

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

void __fastcall TfrmMain::miDeleEmployeeClick(TObject *Sender)
{
    DeleteEmployee(dmMain->qryClientInfo->FieldByName("Id")->Value);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miModiEmployeeClick(TObject *Sender)
{
    ModiEmployeeInf();
}
//---------------------------------------------------------------------------



void __fastcall TfrmMain::miAddMedicalClick(TObject *Sender)
{
    if (dmMain->qryClientInfo->RecordCount < 1)
        return;
    TfrmMedical * pDlg = new TfrmMedical(this);
    pDlg->Caption = "添加";
    int nEmployeeId = dmMain->qryClientInfo->FieldByName("Id")->Value;

    TADOQuery * qryEx = dmMain->qrySQLPlus;
    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 = "insert into Medical (MedicalDate,Complaint,CheckUp,"
                        "CheckResult,IsDrug,IsInjection,IsOxygen,IsPregnancy,IsEkg,"
                        "IsSplint,IsVaccination,IsWound,IsReferral,IsSickLeave,"
                        "Remark,HealthEdu,OptId,EmployeeId) values ('%s','%s',"
                        "'%s','%s',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,'%s','%s',%s,%d)";

    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(),
                    nEmployeeId);

    qryEx->SQL->Add(strExec);
    //ShowMessage(qryEx->SQL->Text);
    qryEx->ExecSQL();

    //get just insert record no

    qryEx->Close();
    qryEx->SQL->Clear();
    qryEx->SQL->Add("Select @@IDENTITY as MaxId");
    qryEx->Open();

    AnsiString strMedicalId = qryEx->FieldByName("MaxId")->AsString;
    qryEx->Close();

    qryEx->SQL->Clear();

    if (pDlg->chkDrug->Checked)
    {
        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)
    {
        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)
    {
        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)
    {
        AnsiString strFmt = "insert into Vaccination "
                            "(MedicalId,[Name],[Unit],"
                            "[Price],[Number],OptId) values"
                            " (%s,'%s','%s',%s,%s,%s)";
        AnsiString strExec;
        if (pDlg->edtVaccinationNum->Text == "")
        {
            pDlg->edtVaccinationNum->Text = "0";
        }
        if (pDlg->edtVaccinationPrice->Text == "")
        {
            pDlg->edtVaccinationPrice->Text = "0";
        }
        strExec.sprintf(strFmt.c_str(),
                        strMedicalId,
                        pDlg->cboVaccinationDrug->Text.c_str(),

                        pDlg->cboVaccinationUnit->Text.c_str(),
                        pDlg->edtVaccinationPrice->Text.c_str(),
                        pDlg->edtVaccinationNum->Text.c_str(),
                        gLogonInf.m_strOptId.c_str());

        qryEx->SQL->Clear();

#ifdef _DEBUG

        ShowMessage(strExec);
#endif

        qryEx->SQL->Add(strExec);

        qryEx->ExecSQL();
    }

    if (pDlg->chkSickLeave->Checked)
    {
        AnsiString strFmt = "insert into SickLeave "
                            "(MedicalId,DayNum,OptId) values"
                            " (%s,%s,%s)";

        AnsiString strExec;

        if (pDlg->edtSickLeaveNum->Text == "")
        {
            pDlg->edtSickLeaveNum->Text = "0";
        }

        strExec.sprintf(strFmt.c_str(),
                        strMedicalId,
                        pDlg->edtSickLeaveNum->Text.c_str(),
                        gLogonInf.m_strOptId.c_str());

        qryEx->SQL->Clear();
#ifdef _DEBUG

        ShowMessage(strExec);
#endif

        qryEx->SQL->Add(strExec);

        qryEx->ExecSQL();
    }
    //ShowMessage(qryEx->SQL->Text);
    //if (qryEx->SQL->Text != "")
    //{
    ///qryEx->ExecSQL();
    //}
    delete pDlg;

    dmMain->qryMedical->Close();
    dmMain->qryMedical->Open();
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::miAddExamClick(TObject *Sender)
{
    TfrmExam * pDlg = new TfrmExam(this);

    pDlg->Caption = "新建";

    pDlg->dtpExamDate->Date = Now();
    pDlg->dtpExamTime->Time = Now();
    TADOQuery * qryEx = dmMain->qrySQLPlus;

    int nEmployeeId = dmMain->qryClientInfo->FieldByName("Id")->Value;

    if (pDlg->ShowModal() == mrOk)
    {
        qryEx->Close();
        qryEx->SQL->Clear();
        qryEx->Prepared = true;

        qryEx->SQL->Add("insert into Exam "
                        "(EmployeeId,ExamKind,ExamDate,ExamTime,ExamResult,ExamOpinon,ExamRemark, OptId)"
                        " values ("
                        + IntToStr(nEmployeeId) + ","
                        + IntToStr(pDlg->rdoExamKind->ItemIndex) + ",'"
                        + DateToStr(pDlg->dtpExamDate->Date) + "','"
                        + TimeToStr(pDlg->dtpExamTime->Time) + "',"
                        + IntToStr(pDlg->rdoExamResult->ItemIndex) + ",'"
                        + pDlg->mmoOpinon->Text + "','"
                        +  pDlg->mmoRemark->Text + "',"
                        + gLogonInf.m_strOptId + ")");


        qryEx->ExecSQL();
        qryEx->Prepared = false;
        dmMain->qryExam->Close();
        dmMain->qryExam->Open();

    }
    delete pDlg;

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


void __fastcall TfrmMain::miDeleExamClick(TObject *Sender)
{
    if (dmMain->qryExam->RecordCount < 1)
    {
        return;
    }
    AnsiString strConfirm;
    strConfirm.sprintf("真的删除%s的体检记录吗?", dmMain->qryClientInfo->FieldByName("Name")->AsString);
    if (IDNO == Msg(Handle, strConfirm.c_str(), "询问", MB_YESNO | MB_ICONQUESTION))
    {
        return;
    }


    AnsiString strDelId = dmMain->qryExam->FieldByName("Id")->AsString;

    dmMain->qrySQLPlus->Close();
    dmMain->qrySQLPlus->SQL->Clear();
    dmMain->qrySQLPlus->SQL->Add("delete from Exam where id=" + strDelId);
    dmMain->qrySQLPlus->ExecSQL();

    dmMain->qryExam->Close();
    dmMain->qryExam->Open();

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

void __fastcall TfrmMain::miModiExamClick(TObject *Sender)
{
    if (dmMain->qryExam->RecordCount < 1)
    {
        return;
    }

    TfrmExam * pDlg = new TfrmExam(this);

⌨️ 快捷键说明

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