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

📄 bomhcopy.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "BomhCopy.h"
#include "BomdCopy.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "GenBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmBomhCopy *frmBomhCopy;
TfrmBomdCopy *BomdCopyfrm;
//---------------------------------------------------------------------------
__fastcall TfrmBomhCopy::TfrmBomhCopy(TComponent* Owner)
    : TGenBaseForm(Owner,euSdBomh,"")
{
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomhCopy::InitEditControl()
{
    ClientGroup->AddComponent(1,true,true,false,sgBomhCopy,sgBomhCopy->Name);
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,seBomhGoods,seBomhGoods->Name);
    ClientGroup->AddComponent(1,true,true,true,Panel1,Panel1->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,true,true,true,Panel2,Panel2->Name);
    ClientGroup->AddComponent(2,true,true,true,seBomdEco,seBomdEco->Name);
    ClientGroup->AddComponent(2,true,true,true,seBomdSn,seBomdSn->Name);

    //Bomh
    FillComboBox(scBomhProducter,"SELECT ProducterCode,memo=ProducterCode+space(1)+'('+UserName+')' FROM sdProducter,sdUser where ProducterCode=UserCode order by ProducterCode","memo","ProducterCode");
    FillComboBox(scBomhUnit,"SELECT UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    //Bomd
    FillComboBox(scBomdUnit,"SELECT UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    FillComboBox(scBomdProcess,"SELECT ProcessCode,memo=ProcessCode+Space(1)+'('+ProcessName+')',ProcessName FROM sdProcess order by ProcessCode","memo","ProcessCode","ProcessName");
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomhCopy::RefreshUpdateData(int MsgSrc,int MsgType)
{
    try
    {
       switch (MsgSrc)
       {
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(scBomhUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           FillComboBox(scBomdUnit,"Select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           } 
         case euSdProcess:
           if(ShowUpdateMessage(MsgSrc,MsgType)){ 
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(scBomdProcess,"select ProcessCode,memo=ProcessCode+space(1)+'('+ProcessName+')',ProcessName from sdProcess order by ProcessCode","memo","ProcessCode","ProcessName");
	           EndWaitForm();
	           break;
           }
         case euSdProducter:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(scBomhProducter,"select ProducterCode,memo=ProducterCode+Space(1)+'('+UserName+')' FROM sdProducter,sdUser where UserCode=ProducterCode order by ProducterCode","memo","ProducterCode");
	           EndWaitForm();
	           break;
           }
         default:
           break;
       }
    }
    __finally
    {
        //AddCode;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomhCopy::ClearControl(int Section,bool BringToNext)
{
    if(Section == 1){
      if(!BringToNext){
        seBomhGoods->Text ="";
        seBomhGoodsName->Text ="";
        seBomhVer->Text = "";
        seBomhModel->Text = "";
        scBomhUnit->ItemIndex=-1;
        seBomhEoq->Text = "0";
        seBomhRlt->Text = "0";
        scBomhType->ItemIndex=0;
        scBomhOp->ItemIndex=0;
        scBomhPp->ItemIndex=0;
        seBomhFpr->Text = "1";
        scBomhProducter->ItemIndex =-1;
        labSysDate->Caption="";
        labBomhUser->Caption=g_sdUserCode;
        deBomhEdate->Text=g_sdCurDate;
        deBomhIdate->Text="";
        memBomhDesc->Text="";
      }
      sgBomhCopy->RowCount=1;
    }
    else if(Section==2){
      if(!BringToNext){
        seBomdSn->Text =AnsiString(comServer->ItemCount+1);
        seBomdGoods->Text="";
        seBomdGoodsName->Text="";
        seBomdVer->Text="";
        seBomdModel->Text="";
        scBomdUnit->ItemIndex =-1;
        seBomdQty->Text="0";
        seBomdShl->Text="0";
        scBomdFrom->ItemIndex=0;
        scBomdType->ItemIndex=0;
        scBomdProcess->ItemIndex=-1;
        cheBomdRepFlg->Checked=false;
        scBomdOp->ItemIndex=0;
        scBomdPp->ItemIndex=0;
        scBomdCfg->ItemIndex=0;
        seBomdLot->Text="0";
        seBomdEco->Text="";
        memBomdDesc->Text="";
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::GetDataFromComObject(int Section)
{
    if(Section==1)
    {
       seBomhGoods->Text=GetHeadValue(fiBomhGoods);
       g_sdRsGoods->LocateByKey(WideString(GetHeadValue(fiBomhGoods)));
       seBomhGoodsName->Text=GetGoodsValue("GoodsName");
       seBomhVer->Text=GetGoodsValue("GoodsVer");
       seBomhModel->Text=GetGoodsValue("GoodsModel");
       scBomhUnit->LocateKey(GetGoodsValue("GoodsUnitCode"));
       if(GetGoodsValue("GoodsType")!="")
          scBomhType->ItemIndex=StrToInt(GetGoodsValue("GoodsType"))-1;
       else
          scBomhType->ItemIndex=-1;
       seBomhEoq->Text=GetHeadValue(fiBomhEoq);
       seBomhRlt->Text=GetHeadValue(fiBomhRlt);
       scBomhOp->ItemIndex=StrToInt(GetHeadValue(fiBomhOp))-1;
       scBomhPp->ItemIndex=StrToInt(GetHeadValue(fiBomhPp))-1;
       seBomhFpr->Text=GetHeadValue(fiBomhFpr);
       scBomhProducter->LocateKey(GetHeadValue(fiBomhProducter));
       deBomhEdate->Text=GetHeadValue(fiBomhEdate);
       deBomhIdate->Text=GetHeadValue(fiBomhIdate);
       labSysDate->Caption=GetHeadValue(fiBomhSysDate);
       labBomhUser->Caption=GetHeadValue(fiBomhUser);
       memBomhDesc->Text=GetHeadValue(fiBomhDesc);
    }
    else
    {
       seBomdSn->Text=GetDetailValue(fiBomdSn);
       seBomdGoods->Text=GetDetailValue(fiBomdGoods);
       g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiBomdGoods)));
       seBomdGoodsName->Text=GetGoodsValue("GoodsName");
       seBomdVer->Text=GetGoodsValue("GoodsVer");
       seBomdModel->Text=GetGoodsValue("GoodsModel");
       scBomdUnit->LocateKey(GetGoodsValue("GoodsUnitCode"));
       scBomdType->ItemIndex=StrToInt(GetGoodsValue("GoodsType"))-1;
       scBomdFrom->ItemIndex=StrToInt(GetGoodsValue("GoodsFrom"))-1;

       seBomdQty->Text=GetDetailValue(fiBomdQty);
       seBomdShl->Text=GetDetailValue(fiBomdShl);
       scBomdType->ItemIndex=StrToInt(GetDetailValue(fiBomdType))-1;
       scBomdFrom->ItemIndex=StrToInt(GetDetailValue(fiBomdFrom))-1;

       scBomdProcess->LocateKey(GetDetailValue(fiBomdProcess));

       cheBomdRepFlg->Checked=GetDetailValue(fiBomdRepFlg)=="1";
       scBomdOp->ItemIndex=StrToInt(GetDetailValue(fiBomdOp))-1;
       scBomdPp->ItemIndex=StrToInt(GetDetailValue(fiBomdPp))-1;
       scBomdCfg->ItemIndex=StrToInt(GetDetailValue(fiBomdCfg))-1;
       seBomdLot->Text=GetDetailValue(fiBomdLot);

       seBomdEco->Text=GetDetailValue(fiBomdEco);
       memBomdDesc->Text=GetDetailValue(fiBomdDesc);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::SendDataToComObject(int Section)
{
    if(Section==1)
    {
      SetHeadValue(fiBomhGoods,seBomhGoods->Text);
      SetHeadValue(fiBomhRlt,seBomhRlt->Text);
      SetHeadValue(fiBomhOp,IntToStr(scBomhOp->ItemIndex+1));
      SetHeadValue(fiBomhPp,IntToStr(scBomhPp->ItemIndex+1));
      SetHeadValue(fiBomhFpr,seBomhFpr->Text);
      SetHeadValue(fiBomhUser,g_sdUserCode);
      SetHeadValue(fiBomhProducter,scBomhProducter->ItemData[1]);
      SetHeadValue(fiBomhEdate,deBomhEdate->Text);
      SetHeadValue(fiBomhIdate,deBomhIdate->Text);
      SetHeadValue(fiBomhDesc,memBomhDesc->Text);
    }
    else
    {
      SetDetailValue(fiBomdSn,seBomdSn->Text);
      //给物料单行的父件编码(BomdPgoods)赋值
      SetDetailValue(fiBomdPgoods,seBomhGoods->Text);
      SetDetailValue(fiBomdGoods,seBomdGoods->Text);
      //---------------------------------------
      SetDetailValue(fiBomdQty,seBomdQty->Text);
      SetDetailValue(fiBomdShl,seBomdShl->Text);
      SetDetailValue(fiBomdProcess,scBomdProcess->ItemData[cbItem2]);
      SetDetailValue(fiBomdRepFlg,cheBomdRepFlg->Checked ? "1":"0");
      SetDetailValue(fiBomdOp,IntToStr(scBomdOp->ItemIndex+1));
      SetDetailValue(fiBomdPp,IntToStr(scBomdPp->ItemIndex+1));
      SetDetailValue(fiBomdCfg,IntToStr(scBomdCfg->ItemIndex+1));
      SetDetailValue(fiBomdLot,seBomdLot->Text);
      SetDetailValue(fiBomdDesc,memBomdDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::WaitUserInput(int Section)
{
    if(Section==1){
      if(CurrentState==caAddHead && seBomhGoods->Enabled)
         seBomhGoods->SetFocus();
      else
         seBomhRlt->SetFocus();
    }
    else{
      ChangeToBrowseState(false);
      if(seBomdGoods->Enabled)
         seBomdGoods->SetFocus();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetItemStringToGrid();
    switch(mAction)
    {
       case 0:
         sgBomhCopy->AddItem(ItemStr);
         sgBomhCopy->Row=sgBomhCopy->RowCount-1;
         break;
       case 1:
         sgBomhCopy->ChangeItem(ItemStr,sgBomhCopy->Row);
         break;
       case 2:
         sgBomhCopy->RemoveItem(sgBomhCopy->Row);
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmBomhCopy::GetItemStringToGrid()
{
    AnsiString  s_ItemStr,s1,s2;
    s1=GetDetailValue(fiBomdUnit);
    s2=GetDetailValue(fiBomdProcess);
    scBomdUnit->LocateKey(s1);
    scBomdProcess->LocateKey(s2);
    s_ItemStr = GetDetailValue(fiBomdSn)+
                "\t"+GetDetailValue(fiBomdGoods)+
                "\t"+scBomdUnit->ItemData[0]+
                "\t"+GetDetailValue(fiBomdQty)+
                "\t"+GetDetailValue(fiBomdShl)+
                "\t"+scBomdProcess->ItemData[2];
    return s_ItemStr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::DisplayBill()
{
    if(comServer->RecordCount>0)
    {
       GetDataFromComObject(1);
       FillGridWithData();
       if(sgBomhCopy->RowCount >1)
       {
         AnsiString Keystr;
         Keystr=sgBomhCopy->Cells[1][sgBomhCopy->Row];
         comServer->LocateItemByKey(WideString(Keystr));
         GetDataFromComObject(2);
       }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomhCopy::GetBill(AnsiString BillID)

⌨️ 快捷键说明

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