pbeh.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 465 行 · 第 1/2 页

CPP
465
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "GenBaseForm"
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Pbeh.h"
#include "Pbed.h"
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPbeh *frmPbeh;
//---------------------------------------------------------------------------
__fastcall TfrmPbeh::TfrmPbeh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,MidCode,WhereStr)

{
 SetAutoCodeString(sePbehCode,"Acm-047");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::InitEditControl()
{
    ClientGroup->AddComponent(1,true,true,false,sgPbeh,sgPbeh->Name);
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePbehCode,sePbehCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scPbehFmonth,scPbehFmonth->Name);
    ClientGroup->AddComponent(1,false,true,true,sePbehCurrency,sePbehCurrency->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,true,true,true,sePbedPrecdLine,sePbedPrecdLine->Name);
    ClientGroup->AddComponent(2,true,true,true,sePbedGoods,sePbedGoods->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    //Pbeh
    FillEdit(Handle,sePbehCurrency,"SELECT CurrencyCode,CurrencyName FROM sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
    FillComboBox(Handle,scPbehExpense,"select Expensecode,ExpenseName from sdExpense order by ExpenseCode","ExpenseName","ExpenseCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (!BringToNext)
       {
           sePbehCode->Text ="";
           scPbehFmonth->Text =g_sdPMonth;
           dePbehDate->Text=g_sdCurDate;
           sePbehCurrency->ItemIndex=-1;
           sePbehCurrency->Text ="";
           scPbehExpense->ItemIndex=-1;
           scPbehExpense->Text ="";
           cbxPbehCheck->Checked =false;
           labPbehChecker->Caption   ="";
           labPbehUser->Caption   =g_sdUserCode;
           labPbehSysDate->Caption = "";
           memPbehDesc->Text="";
           //新增单据,工具栏使能
           SetCheckToolbarStatus(false);
       }
       sgPbeh->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
           sePbedLine->Text =AnsiString(comServer->ItemCount+1);
           sePbedPrecCode->Text="";
           sePbedPrecdLine->Text="";
           sePbedGoods->Text="";
           labPbedGoodsName->Caption ="";
           sePbedAmt->Text="";
           memPbedDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPbeh::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
       sePbehCode->Text =GetHeadValue("PbehCode");
       scPbehFmonth->Text =GetHeadValue("PbehFmonth");
       dePbehDate->Text=GetHeadValue("PbehDate");
       sePbehCurrency->LocateKey(GetHeadValue("PbehCurrency"));
       scPbehExpense->LocateKey(GetHeadValue("PbehExpense"));
       cbxPbehCheck->Checked =GetHeadValue("PbehCheck")=="1";
       labPbehChecker->Caption   =GetHeadValue("PbehChecker");
       labPbehUser->Caption   =GetHeadValue("PbehUser");
       labPbehSysDate->Caption =GetHeadValue("PbehSysDate");
       //根据审核、取消状态,设置工具栏
       if((GetHeadValue("PbehCheck")=="1"))
        SetCheckToolbarStatus(true);
       else
        SetCheckToolbarStatus(false);
    }
    else
    {
       sePbedLine->Text=GetDetailValue("PbedLine");
       sePbedPrecCode->Text=GetDetailValue("PbedPrecCode");
       sePbedPrecdLine->Text=GetDetailValue("PbedPrecdLine");
       sePbedGoods->Text = GetDetailValue("PbedGoods");
       labPbedGoodsName->Caption = GetDetailValue("GoodsName");
       GoodsSpec->Caption = GetDetailValue("Goodsspec");

       sePbedAmt->Text=GetDetailValue("PbedAmt");
       memPbedDesc->Text=GetDetailValue("PbedDesc");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::SendDataToComObject(int Section)
{
    if (Section==1)
    {
        if(sePbehCode->Text=="")
            throw Exception("请输入分摊单号");
        if(sePbehCurrency->ItemData[1]=="")
            throw Exception("请输入币种");
        SetHeadValue("PbehCode",sePbehCode->Text);
        SetHeadValue("PbehFmonth",scPbehFmonth->Text);
        SetHeadValue("PbehDate",dePbehDate->Text);
        SetHeadValue("PbehCurrency",sePbehCurrency->ItemData[1]);
        SetHeadValue("PbehExpense",scPbehExpense->ItemData[1]);
        SetHeadValue("PbehUser",labPbehUser->Caption);
        SetHeadValue("PbehDesc",memPbehDesc->Text);
    }
    else
    {
       if(sePbedLine->Text=="")
            throw Exception("请输入分摊单行号");
       if(sePbedPrecCode->Text=="")
            throw Exception("请输收货单号");
       if(sePbedAmt->Text=="0")
            throw Exception("请输分摊金额");
        SetDetailValue("PbedCode",sePbehCode->Text);
        SetDetailValue("PbedLine",sePbedLine->Text);
        SetDetailValue("PbedPrecCode",sePbedPrecCode->Text);
        SetDetailValue("PbedPrecdLine",sePbedPrecdLine->Text);
        SetDetailValue("PbedGoods",sePbedGoods->Text);
        SetDetailValue("PbedAmt",sePbedAmt->Text);
        SetDetailValue("PbedDesc",memPbedDesc->Text);
        SetDetailValue("Goodsname",labPbedGoodsName->Caption);
        SetDetailValue("goodsspec",GoodsSpec->Caption);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::WaitUserInput(int Section)
{
    if (Section ==1)
    {
     if(sePbehCode->Enabled)
      sePbehCode->SetFocus();
    }
    else
    {
      sgPbeh->Visible=false;
      FloatPanel2->Visible=true;
      if(sePbedPrecCode->Enabled)
        sePbedPrecCode->SetFocus();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPbeh::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetItemStringToGrid();
    switch(mAction)
    {
       case 0:
         sgPbeh->AddItem(ItemStr);
         break;
       case 1:
         i = sgPbeh->Row;
         sgPbeh->ChangeItem(ItemStr,i);
         break;
       case 2:
         sgPbeh->RemoveItem(sgPbeh->Row);
         break;
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPbeh::GetItemStringToGrid()
{
    AnsiString s_ItemStr;
    s_ItemStr = "\t"+GetDetailValue("PbedLine")+
                "\t"+GetDetailValue("PbedPrecCode")+
                "\t"+GetDetailValue("PbedPrecdLine")+
                "\t"+GetDetailValue("PbedGoods")+
                "\t"+GetDetailValue("Goodsname")+
                "\t"+GetDetailValue("Goodsspec")+
                "\t"+GetDetailValue("PbedAmt")+
                "\t"+GetDetailValue("PbedDesc");
    return s_ItemStr;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPbeh::DisplayBill()
{
    if(comServer->RecordCount<=0)
      return;
    GetDataFromComObject(1);
    FillGridWithData();
}
//---------------------------------------------------------------------------

void __fastcall TfrmPbeh::GetBill(AnsiString BillID)
{
    int iRow;
    iRow=comServer->Find("PbehCode='"+BillID+"'");
    if (iRow>0)      //FIND THIS BILL
    {
       DisplayBill();
    }
    else
       if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
       {
           AddHeadRecord();
       }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPbeh::FillGridWithData()
{
    int i;
    AnsiString ItemStr;
    sgPbeh->RowCount=1;
    if(comServer->RecordCount>0)
    {
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);

⌨️ 快捷键说明

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