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

📄 umain.cpp

📁  基于C++Builder 6的医药类单据打印系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    qryOrder->FieldByName("fTitle")->AsString = edtTitle->Text;

    qryOrder->Post();

    qryDetail->Close();
    qryDetail->SQL->Text = "select top 1 * from tblDetail";
    qryDetail->Open();

    int nCount = tblTemp->RecordCount;

    tblTemp->First();
    
    for(int i=0; i<nCount; i++)
    {
        qryDetail->Append();

        qryDetail->FieldByName("fBillNumber")->AsString = edtBillNumber->Text;
        qryDetail->FieldByName("fBatchNumber")->AsString = tblTemp->FieldByName("fBatchNumber")->AsString;
        qryDetail->FieldByName("fLeechdom")->AsString = tblTemp->FieldByName("fLeechdom")->AsString;
        qryDetail->FieldByName("fSpec")->AsString = tblTemp->FieldByName("fSpec")->AsString;
        qryDetail->FieldByName("fProFact")->AsString = tblTemp->FieldByName("fProFact")->AsString;
        qryDetail->FieldByName("fUnit")->AsString = tblTemp->FieldByName("fUnit")->AsString;
        qryDetail->FieldByName("fAmount")->AsInteger = tblTemp->FieldByName("fAmount")->AsInteger;
        qryDetail->FieldByName("fUnitPrice")->AsCurrency = tblTemp->FieldByName("fUnitPrice")->AsCurrency;
        qryDetail->FieldByName("fSum")->AsCurrency = tblTemp->FieldByName("fSum")->AsCurrency;
        qryDetail->FieldByName("fRefer")->AsCurrency = tblTemp->FieldByName("fRefer")->AsCurrency;
        qryDetail->FieldByName("fCasing")->AsString = tblTemp->FieldByName("fCasing")->AsString;
        qryDetail->FieldByName("fBale")->AsString = tblTemp->FieldByName("fBale")->AsString;

        qryDetail->Post();

        tblTemp->Next();
    }

    if(nCount)
    {
        tblTemp->First();
        while(!tblTemp->Eof)
            tblTemp->Delete();
    }

    MessageBox(Handle,
            String().sprintf("订单添加成功. 共有 %d 条药品明细.", nCount).c_str(),
            g_strAppName.c_str(),
            MB_OK | MB_ICONINFORMATION);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnQueryAllClick(TObject *Sender)
{
    qryOrder->Close();
    qryOrder->SQL->Text = "select * from tblOrder";
    qryOrder->Open();

    dbgrdOrderCellClick(NULL);

    stbMain->Panels->Items[0]->Text = String().sprintf("共有 %d 条订单记录.", qryOrder->RecordCount);    
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnQueryClick(TObject *Sender)
{
    String strSQL("");
    if(edtQueryByBillNumber->Text.Trim().Length() > 0)
        strSQL += String().sprintf(" and fBillNumber='%s'", edtQueryByBillNumber->Text);
    if(edtQueryByClient->Text.Trim().Length() > 0)
        strSQL += String().sprintf(" and fClient like '%%%s%%'", edtQueryByClient->Text);
    if(edtQueryByBillAuthor->Text.Trim().Length() > 0)
        strSQL = String().sprintf(" and fBillAuthor='%s'", edtQueryByBillAuthor->Text);
    if(edtQueryByOpera->Text.Trim().Length() > 0)
        strSQL = String().sprintf(" and fOpera='%s'", edtQueryByOpera->Text);
    if(chkQueryByDate->Checked)
        strSQL = String().sprintf(" and fGenBillDate between #%s# and #%s#",
                FormatDateTime("yyy-mm-dd", dtpQueryStart->Date),
                FormatDateTime("yyy-mm-dd", dtpQueryEnd->Date + 1));

    qryOrder->Close();
    qryOrder->SQL->Text = "select * from tblOrder where 1=1" + strSQL;
    qryOrder->Open();

    if(qryOrder->RecordCount)
    {
        qryDetail->Close();
        qryDetail->SQL->Text = String().sprintf(
                "select * from tblDetail where fBillNumber='%s'",
                qryOrder->FieldByName("fBillNumber")->AsString);
        qryDetail->Open();
    }
    stbMain->Panels->Items[0]->Text = String().sprintf("共有 %d 条订单记录.", qryOrder->RecordCount);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnDeleteOrderClick(TObject *Sender)
{
    if(qryOrder->Active && qryOrder->RecordCount)
    {
        if(MessageBox(Handle,
                String().sprintf("确定要删除单据号为 %s 的这条记录吗? "
                "相关的药品明细记录也将删除.",
                qryOrder->FieldByName("fBillNumber")->AsString).c_str(),
                g_strAppName.c_str(),
                MB_YESNO | MB_ICONQUESTION) == IDYES)
        {
            //
            qryDetail->Close();
            qryDetail->SQL->Text = String().sprintf(
                    "delete from tblDetail where fBillNumber='%s'",
                    qryOrder->FieldByName("fBillNumber")->AsString);
            qryDetail->ExecSQL();
            //
            qryOrder->Delete();
        }
        btnQueryAllClick(Sender);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnDeleteDetailClick(TObject *Sender)
{
    if(qryDetail->Active && qryDetail->RecordCount)
    {
        if(MessageBox(Handle,
                String().sprintf("确定要删除批号为 %s 的这条记录吗?",
                qryDetail->FieldByName("fBatchNumber")->AsString).c_str(),
                g_strAppName.c_str(),
                MB_YESNO | MB_ICONQUESTION) == IDYES)
        {
            qryDetail->Delete();
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnClearDetailClick(TObject *Sender)
{
    CrnClearOrderForm();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::dbgrdOrderCellClick(TColumn *Column)
{
    if(qryOrder->RecordCount)
    {
        qryDetail->Close();
        qryDetail->SQL->Text = String().sprintf(
                "select * "
                "from tblDetail "
                "where fBillNumber='%s'",
                qryOrder->FieldByName("fBillNumber")->AsString);
        qryDetail->Open();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSaveDetailClick(TObject *Sender)
{
    if(qryDetail->State == dsEdit || qryDetail->State == dsInsert)
        qryDetail->Post();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSaveOrderClick(TObject *Sender)
{
    if(qryOrder->State == dsEdit || qryOrder->State == dsInsert)
        qryOrder->Post();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnDeleteTempClick(TObject *Sender)
{
    if(tblTemp->Active && tblTemp->RecordCount)
    {
        if(MessageBox(Handle,
                String().sprintf("确定要删除批号为 %s 的这条记录吗?",
                tblTemp->FieldByName("fBatchNumber")->AsString).c_str(),
                g_strAppName.c_str(),
                MB_YESNO | MB_ICONQUESTION) == IDYES)
        {
            tblTemp->Delete();
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnSaveTempClick(TObject *Sender)
{
    if(tblTemp->State == dsEdit || tblTemp->State == dsInsert)
        tblTemp->Post();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::qryDetailBeforePost(TDataSet *DataSet)
{
    if(DataSet->FieldByName("fBillNumber")->AsString.Trim().Length() < 1)
    {
        if(qryOrder->Active && qryOrder->RecordCount)
            DataSet->FieldByName("fBillNumber")->AsString =
                qryOrder->FieldByName("fBillNumber")->AsString;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::miDesignReportClick(TObject *Sender)
{
    frReport->LoadFromFile(ExtractFilePath(ParamStr(0)) + "Report.fr3");
    frReport->DesignReport();
}
//---------------------------------------------------------------------------
Variant __fastcall TfrmMain::frReportUserFunction(
      const AnsiString MethodName, Variant &Params)
{
//    if(UpperCase(MethodName) == UpperCase("NumToRMBStr"))
//        return NumToRMBStr(Params.GetElement(0));
    return 0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::qryDetailAfterInsert(TDataSet *DataSet)
{
    DataSet->FieldByName("fAmount")->AsInteger = 0;
    DataSet->FieldByName("fUnitPrice")->AsFloat = 0.0;
    DataSet->FieldByName("fSum")->AsFloat = 0.0;
    DataSet->FieldByName("fRefer")->AsFloat = 0.0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::tblTempAfterInsert(TDataSet *DataSet)
{
    DataSet->FieldByName("fAmount")->AsInteger = 0;
    DataSet->FieldByName("fUnitPrice")->AsFloat = 0.0;
    DataSet->FieldByName("fSum")->AsFloat = 0.0;
    DataSet->FieldByName("fRefer")->AsFloat = 0.0;    
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::tblTempfUnitPriceChange(TField *Sender)
{
    Sender->DataSet->FieldByName("FSum")->AsCurrency = Sender->AsCurrency
            * Sender->DataSet->FieldByName("fAmount")->AsCurrency;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::tblTempfAmountChange(TField *Sender)
{
    Sender->DataSet->FieldByName("FSum")->AsCurrency = Sender->AsCurrency
            * Sender->DataSet->FieldByName("fUnitPrice")->AsCurrency;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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