rmbh.cpp

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

CPP
559
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Rmbh.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmRmbh *frmRmbh;
//---------------------------------------------------------------------------
__fastcall TfrmRmbh::TfrmRmbh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
   // AutoCtl=seRmbhCode;
    SetAutoCodeString(seRmbhCode,"ACM-032");
//    InitRsGoods();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,fpRmbh,fpRmbh->Name);
    ClientGroup->AddComponent(1,false,true,false,seRmbhCode,seRmbhCode->Name);
    ClientGroup->AddComponent(1,false,true,true,seRmbhWo,seRmbhWo->Name);
    ClientGroup->AddComponent(1,true,true,true,chkRmbhCheck,chkRmbhCheck->Name);
    ClientGroup->AddComponent(1,true,true,true,scRmbhFmonth,scRmbhFmonth->Name);

    ClientGroup->AddComponent(2,false,false,true,fpRmbd,fpRmbd->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,true,true,true,plRmbdGoods,plRmbdGoods->Name);
    ClientGroup->AddComponent(2,false,true,true,seRmbdProcess,seRmbdProcess->Name);
    ClientGroup->AddComponent(2,true,true,true,seRmbdRLoc,seRmbdRLoc->Name);
    ClientGroup->AddComponent(2,false,true,true,seRmbdLine,seRmbdLine->Name);
    //Rmbh
    FillComboBox(Handle,scRmbhFmonth,"SELECT FcMonth FROM sdFc order by FcMonth","FcMonth");
    FillComboBox(Handle,scRmbhPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where PosTypeFlg=3 order by PosTypeCode","PosTypeName","PosTypeCode");
    //Rmbd
    FillComboBox(Handle,scRmbdUnit,"SELECT UnitName,UnitCode from sdUnit order by UnitCode","UnitName","UnitCode");
    FillEdit(Handle,seRmbdRLoc,"SELECT LocName,LocCode from sdLoc where LocType=2 order by LocCode","LocName","LocCode");
    FillEdit(Handle,seRmbdLoc,"SELECT LocName,LocCode from sdLoc where LocType=1 order by LocCode","LocName","LocCode");
    FillEdit(Handle,seRmbdProcess,"SELECT ProcessName,ProcessCode from sdProcess order by ProcessCode","ProcessName","ProcessCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    try
    {
       switch (MsgSrc)
       {
         case euSdFc:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scRmbhFmonth,"SELECT FcMonth FROM sdFc order by FcMonth","FcMonth");
	           EndWaitForm();
	           break;
           }
         case euSdPosType:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scRmbhPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType order by PosTypeCode","PosTypeName","PosTypeCode");
	           EndWaitForm();
	           break;
           }
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scRmbdUnit,"SELECT UnitName,UnitCode from sdUnit order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           }
         case euSdLoc:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
               FillEdit(Handle,seRmbdRLoc,"SELECT LocName,LocCode from sdLoc where LocType=2 order by LocCode","LocName","LocCode");
               FillEdit(Handle,seRmbdLoc,"SELECT LocName,LocCode from sdLoc where LocType=1 order by LocCode","LocName","LocCode");
	           EndWaitForm();
	           break;
           }
         case euSdProcess:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
               FillEdit(Handle,seRmbdProcess,"SELECT ProcessName,ProcessCode from sdProcess order by ProcessCode","ProcessName","ProcessCode");
	           EndWaitForm();
	           break;
           }
         default:
           break;
       }
    }
    __finally
    {
        //AddCode
    }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::ClearControl(int Section,bool BringToNext)
{
    if(Section == 1)
    {
       if(!BringToNext)
       {
          seRmbhCode->Text="";
          deRmbhDate->Text=g_sdCurDate;
          scRmbhFmonth->LocateKey(g_sdMMonth);
          scRmbhPosType->ItemIndex=-1;
          seRmbhWo->Text="";
          labUser->Caption=g_sdUserCode;
          chkRmbhCheck->Checked=false;
          labChecker->Caption="";
          labCheckDate->Caption="";
          memRmbhDesc->Text="";
       }
       sgRmbh->RowCount=1;
    }
    else
    {
       if(!BringToNext)
       {
          seRmbdLine->Text=AnsiString(comServer->ItemCount+1);
          seRmbdGoods->Text="";
          seRmbdGoodsName->Text="";
          scRmbdUnit->ItemIndex=-1;
          scRmbdGoodsType->ItemIndex=-1;
          scRmbdGoodsFrom->ItemIndex=-1;
          seRmbdGoodsOoq->Text="";
          seRmbdQty->Text="0.00";
          seRmbdProcess->ItemIndex=-1;
          seRmbdRLoc->Text="";//ItemIndex=-1;
          seRmbdLoc->ItemIndex=-1;
          memRmbdDesc->Text="";
       }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::GetDataFromComObject(int Section)
{
    if(Section==1)
    {
        seRmbhCode->Text=GetHeadValue("RmbhCode");
        deRmbhDate->Text=GetHeadValue("RmbhDate");
        scRmbhFmonth->LocateKey(GetHeadValue("RmbhFmonth"));
        scRmbhPosType->LocateKey(GetHeadValue("RmbhPosType"));
        seRmbhWo->Text=GetHeadValue("RmbhWoCode");
        memRmbhDesc->Text=GetHeadValue("RmbhDesc");
        chkRmbhCheck->Checked=GetHeadValue("RmbhCheck")=="1";
        if(chkRmbhCheck->Checked)
           SetCheckToolbarStatus(true);
        else
           SetCheckToolbarStatus(false);
        labChecker->Caption=GetHeadValue("RmbhChecker");
        labCheckDate->Caption=GetHeadValue("RmbhCheckDate");
        labUser->Caption=GetHeadValue("RmbhUser");
    }
    else
    {
        seRmbdLine->Text=GetDetailValue("RmbdLine");
        seRmbdGoods->Text=GetDetailValue("RmbdGoods");
        InitRsGoods(seRmbdGoods->Text);
//        l_RsGoods->LocateByKey(WideString(GetDetailValue("RmbdGoods")));
        seRmbdGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
        scRmbdUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));

        if(GetGoodsValue(gtInitRs,"GoodsType")!="")
          scRmbdGoodsType->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsType"))-1;
        else
          scRmbdGoodsType->ItemIndex=-1;

        if(GetGoodsValue(gtInitRs,"GoodsFrom")!="")
          scRmbdGoodsFrom->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsFrom"))-1;
        else
          scRmbdGoodsFrom->ItemIndex=-1;

        seRmbdGoodsOoq->Text=GetGoodsValue(gtInitRs,"GoodsOoq");

        seRmbdQty->Text=GetDetailValue("RmbdQty");
        seRmbdProcess->LocateKey(GetDetailValue("RmbdProcess"));
        seRmbdRLoc->Text=GetDetailValue("RmbdRLoc");//LocateKey(GetDetailValue("RmbdRLoc"));
        seRmbdLoc->LocateKey(GetDetailValue("RmbdLoc"));
        memRmbdDesc->Text=GetDetailValue("RmbdDesc");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::SendDataToComObject(int Section)
{
    if(Section==1)
    {
       SetHeadValue("RmbhCode",seRmbhCode->Text);
       SetHeadValue("RmbhDate",deRmbhDate->Text);
       SetHeadValue("RmbhFmonth",scRmbhFmonth->Text);
       SetHeadValue("RmbhPosType",scRmbhPosType->ItemData[1]);
       SetHeadValue("RmbhWoCode",seRmbhWo->Text);
       SetHeadValue("RmbhUser",labUser->Caption);
       SetHeadValue("RmbhDesc",memRmbhDesc->Text);
    }
    else
    {
       SetDetailValue("RmbdCode",seRmbhCode->Text);
       SetDetailValue("RmbdLine",seRmbdLine->Text);
       SetDetailValue("RmbdProcess",seRmbdProcess->ItemData[1]);
       SetDetailValue("RmbdRLoc",seRmbdRLoc->Text);//ItemData[1]);
       SetDetailValue("RmbdGoods",seRmbdGoods->Text);
       SetDetailValue("RmbdGoodsName",seRmbdGoodsName->Text);
       SetDetailValue("RmbdUnit",scRmbdUnit->Text);
       SetDetailValue("RmbdLoc",seRmbdLoc->ItemData[1]);
       SetDetailValue("RmbdQty",seRmbdQty->Text);
       SetDetailValue("RmbdDesc",memRmbdDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::WaitUserInput(int Section)
{
    if(Section ==1){
       if(seRmbhCode->Enabled)
          seRmbhCode->SetFocus();
       else
          deRmbhDate->SetFocus();
    }
    else
    {
       ChangeToBrowseState(false);
       if(seRmbdLine->Enabled)
          seRmbdLine->SetFocus();
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmRmbh::GetDataToGrid()
{
    AnsiString ItemStr;
    ItemStr=GetDetailValue("RmbdLine")+
            "\t"+GetDetailValue("RmbdGoods")+
            "\t"+GetDetailValue("RmbdGoodsName")+
            "\t"+GetDetailValue("RmbdGoodsSpec")+
            "\t"+GetDetailValue("RmbdUnit")+
            "\t"+GetDetailValue("RmbdQty")+
            "\t"+GetDetailValue("RmbdProcess")+
            "\t"+GetDetailValue("RmbdRLoc")+
            "\t"+GetDetailValue("RmbdLoc");
    return ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetDataToGrid();
    switch(mAction)
    {
       case 0: //Add
         sgRmbh->AddItem(ItemStr);
         sgRmbh->Row=sgRmbh->RowCount-1;
         break;
       case 1: //Edit
         sgRmbh->ChangeItem(ItemStr,sgRmbh->Row);
         break;
       case 2: //Delete
         sgRmbh->RemoveItem(sgRmbh->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRmbh::FillGridWithData()
{
    int i;
    AnsiString ItemStr;
    sgRmbh->RowCount=1;
    if(comServer->RecordCount > 0)
    {
      for(i=0;i<comServer->ItemCount;i++)
      {
         comServer->LocateItemByIndex(i);
         RefreshGridData(0);
      }
    }
}

⌨️ 快捷键说明

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