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

📄 bomh.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Bomh.h"
#include "Rep.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 link "SdPanel"
#pragma link "SDTreeView"
#pragma resource "*.dfm"
TfrmBomh *frmBomh;
//---------------------------------------------------------------------------
__fastcall TfrmBomh::TfrmBomh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TBillBaseForm(Owner,chWnd,MidCode,WhereStr)
{
  FillTreeView();
  OldTreeCode="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::FillTreeView()
{
     TTreeNode *TempNode[7];
     int mLevel;
     TComResultSet *RsPmpc;
     RsPmpc=new TComResultSet(Handle,g_ClientHandle);

     trBom->Items->Clear();
     TempNode[0]=trBom->Items->Add(NULL,"物料清单");
     TempNode[0]->StateIndex = 0;
     TempNode[0]->SelectedIndex = 0;

     RsPmpc->Open("select PmpcCode,PmpcName,PmpcLevel,PmpcEnd from sdPmpc order by PmpcCode,PmPcLevel","");
     RsPmpc->MoveFirst();
     while( RsPmpc->Eof == 0 )
     {
        mLevel=RsPmpc->FieldByName("PmpcLevel").ToInt();
        TempNode[mLevel] = trBom->Items->AddChild(TempNode[mLevel-1],"(" + RsPmpc->FieldByName("PmpcCode") + ")" +RsPmpc->FieldByName("PmpcName"));
        if(RsPmpc->FieldByName("PmpcEnd")=="1")
        {
         TempNode[mLevel]->StateIndex = 2;
         TempNode[mLevel]->SelectedIndex = 2;
        }
        else
        {
         TempNode[mLevel]->StateIndex = 0;
         TempNode[mLevel]->SelectedIndex = 0;
        }
        TempNode[mLevel]->Text= "(" + RsPmpc->FieldByName("PmpcCode") + ")"+RsPmpc->FieldByName("PmpcName");
        RsPmpc->MoveNext();
     }
     RsPmpc->Close();
     TempNode[0]->Expand(false);
//     if (tvGoods->Items->Count > 0)
//         tvGoods->FullExpand();
     delete RsPmpc;
////////////////////////////////

}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::InitEditControl()
{
    ClientGroup->AddComponent(1,true,true,false,sgBomh,sgBomh->Name);
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,true,true,true,Panel1,Panel1->Name);
    ClientGroup->AddComponent(1,false,true,false,seBomhGoods,seBomhGoods->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,true,true,true,cheBomdRepFlg,cheBomdRepFlg->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,seBomhEoq,seBomhEoq->Name);
    ClientGroup->AddComponent(2,true,true,true,cheBomdRepFlg,cheBomdRepFlg->Name);
    ClientGroup->AddComponent(2,true,true,true,seBomdSn,seBomdSn->Name);
    //Bomh
    FillComboBox(Handle,scBomhProducter,"select ProducterCode,memo=ProducterCode+Space(1)+'('+UserName+')' FROM sdProducter,sdUser where UserCode=ProducterCode order by ProducterCode","memo","ProducterCode");
    FillComboBox(Handle,scBomhUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    //Bomd
    FillComboBox(Handle,scBomdUnit,"Select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    FillComboBox(Handle,scBomdProcess,"select ProcessCode,memo=ProcessCode+space(1)+'('+ProcessName+')',ProcessName from sdProcess order by ProcessCode","memo","ProcessCode","ProcessName");

}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    try
    {
       switch (MsgSrc)
       {
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scBomhUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           FillComboBox(Handle,scBomdUnit,"Select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           }
         case euSdProcess:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,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(Handle,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 TfrmBomh::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="";
       }
       sgBomh->RowCount=1;
    }
    else if(Section==2){
       if(!BringToNext){
          if(comServer->RecordCount>0)
            seBomdSn->Text =AnsiString(comServer->ItemCount+1);
          else
            seBomdSn->Text="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 TfrmBomh::GetDataFromComObject(int Section)
{
    if(Section==1)
    {
       seBomhGoods->Text=GetHeadValue("BomhGoods");
       InitRsGoods(seBomhGoods->Text);
//       l_RsGoods->LocateByKey(WideString(GetHeadValue("BomhGoods")));
       seBomhGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
       seBomhVer->Text=GetGoodsValue(gtInitRs,"GoodsVer");
       seBomhModel->Text=GetGoodsValue(gtInitRs,"GoodsModel");
       AnsiString type=AnsiString(GetGoodsValue(gtInitRs,"GoodsType"));
       if (!type.IsEmpty())
         scBomhType->ItemIndex=StrToInt(type)-1;
       scBomhUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
       seBomhEoq->Text=GetHeadValue("BomhEoq");
       seBomhRlt->Text=GetHeadValue("BomhRlt");
       AnsiString hop= AnsiString(GetHeadValue("BomhOp"));
       if(!hop.IsEmpty())
         scBomhOp->ItemIndex=StrToInt(hop)-1;
       AnsiString hpp=AnsiString(GetHeadValue("BomhPp"));
       if(!hpp.IsEmpty())
         scBomhPp->ItemIndex=StrToInt(hpp)-1;
       seBomhFpr->Text=GetHeadValue("BomhFpr");
       scBomhProducter->LocateKey(GetHeadValue("BomhProducter"));
       labSysDate->Caption=GetHeadValue("BomhSysDate");
       labBomhUser->Caption=GetHeadValue("BomhUser");
       deBomhEdate->Text=GetHeadValue("BomhEdate");
       deBomhIdate->Text=GetHeadValue("BomhIdate");
       memBomhDesc->Text=GetHeadValue("BomhDesc");
    }
    else
    {
       seBomdSn->Text=GetDetailValue("BomdSn");
       seBomdGoods->Text=GetDetailValue("BomdGoods");
       InitRsGoods(seBomdGoods->Text);
//       l_RsGoods->LocateByKey(WideString(GetDetailValue("BomdGoods")));
//       seBomdGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
       seBomdGoodsName->Text=GetDetailValue("BomdGoodsName");
       seBomdVer->Text=GetGoodsValue(gtInitRs,"GoodsVer");
       seBomdModel->Text=GetGoodsValue(gtInitRs,"GoodsModel");
       scBomdUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
       if(GetGoodsValue(gtInitRs,"GoodsType")!="")
          scBomdType->ItemIndex=StrToInt(AnsiString(GetGoodsValue(gtInitRs,"GoodsType")))-1;
       if(GetGoodsValue(gtInitRs,"GoodsFrom")!="")
          scBomdFrom->ItemIndex=StrToInt(AnsiString(GetGoodsValue(gtInitRs,"GoodsFrom")))-1;
       seBomdQty->Text=GetDetailValue("BomdQty");
       seBomdShl->Text=GetDetailValue("BomdShl");
       scBomdProcess->LocateKey(GetDetailValue("BomdProcess"));
       cheBomdRepFlg->Checked=GetDetailValue("BomdRepFlg")=="1";
       AnsiString l_op= AnsiString(GetDetailValue("BomdOp"));
       if (l_op.IsEmpty()||l_op=="")
          scBomdOp->ItemIndex=0 ;
       else
          scBomdOp->ItemIndex=StrToInt(l_op)-1;
          AnsiString l_pp=AnsiString(GetDetailValue("BomdPp"));
       if(l_pp.IsEmpty()||l_pp=="")
          scBomdPp->ItemIndex=0;
       else
          scBomdPp->ItemIndex=StrToInt(l_pp)-1;
       AnsiString l_fg=AnsiString(GetDetailValue("BomdCfg"));
       if (l_fg.IsEmpty()|| l_fg=="")
          scBomdCfg->ItemIndex=0 ;
       else
          scBomdCfg->ItemIndex=StrToInt(l_fg)-1;
       seBomdLot->Text=GetDetailValue("BomdLot");
       seBomdEco->Text=GetDetailValue("BomdEco");
       memBomdDesc->Text=GetDetailValue("BomdDesc");
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::SendDataToComObject(int Section)
{
    if(Section==1)
    {
        SetHeadValue("BomhGoods",seBomhGoods->Text);
        SetHeadValue("BomhRlt",seBomhRlt->Text);
        SetHeadValue("BomhOp",IntToStr(scBomhOp->ItemIndex+1));
        SetHeadValue("BomhPp",IntToStr(scBomhPp->ItemIndex+1));
        SetHeadValue("BomhFpr",seBomhFpr->Text);
        SetHeadValue("BomhUser",g_sdUserCode);
        SetHeadValue("BomhProducter",scBomhProducter->ItemData[1]);
        SetHeadValue("BomhEdate",deBomhEdate->Text);
        SetHeadValue("BomhIdate",deBomhIdate->Text);
        SetHeadValue("BomhDesc",memBomhDesc->Text);
    }
    else
    {
        SetDetailValue("BomdSn",seBomdSn->Text);
        //给物料单行的父件编码(BomdPgoods)赋值
        SetDetailValue("BomdPgoods",seBomhGoods->Text);
        SetDetailValue("BomdGoods",seBomdGoods->Text);
        SetDetailValue("BomdGoodsName",seBomdGoodsName->Text);
        SetDetailValue("BomdFrom",IntToStr(scBomdFrom->ItemIndex+1));
        SetDetailValue("BomdType",IntToStr(scBomdType->ItemIndex+1));
        SetDetailValue("BomdUnit",scBomdUnit->Text);
        //---------------------------------------
        SetDetailValue("BomdQty",seBomdQty->Text);
        SetDetailValue("BomdShl",seBomdShl->Text);
        SetDetailValue("BomdProcess",scBomdProcess->ItemData[cbItem2]);
        SetDetailValue("BomdRepFlg",cheBomdRepFlg->Checked ? "1":"0");
        SetDetailValue("BomdOp",IntToStr(scBomdOp->ItemIndex+1));
        SetDetailValue("BomdPp",IntToStr(scBomdPp->ItemIndex+1));
        SetDetailValue("BomdCfg",IntToStr(scBomdCfg->ItemIndex+1));
        SetDetailValue("BomdLot",seBomdLot->Text);
        SetDetailValue("BomdDesc",memBomdDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::WaitUserInput(int Section)
{
    if(Section ==1){
      if(CurrentState==caAddHead && seBomhGoods->Enabled)
         seBomhGoods->SetFocus();
      else

⌨️ 快捷键说明

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