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

📄 bomh.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    seBomdGoodsName->Text=p->ColData[2];
    seBomdVer->Text=p->ColData[3];
    seBomdModel->Text=p->ColData[4];
    scBomdUnit->Text=p->ColData[7];
    if(InitRsGoods(seBomdGoods->Text))
//    if(l_RsGoods->LocateByKey(WideString(seBomdGoods->Text))==0)
    {
      scBomdType->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsType"))-1;
      scBomdFrom->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsFrom"))-1;
    }
  }
  delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::seBomhGoodsExit(TObject *Sender)
{
    AnsiString tempS;
    tempS=seBomhGoods->Text;
    if(tempS.IsEmpty())
       return;
    if(CurrentState==caAddHead)
    {
      if(InitRsGoods(tempS))
//      if(l_RsGoods->LocateByKey(WideString(tempS))==0)
      {
        seBomhGoods->Text=GetGoodsValue(gtInitRs,"GoodsCode");
        seBomhGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
        seBomhVer->Text=GetGoodsValue(gtInitRs,"GoodsVer");
        seBomhModel->Text=GetGoodsValue(gtInitRs,"GoodsModel");
        scBomhType->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsType"))-1;
        scBomhUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
        seBomhEoq->Text=GetGoodsValue(gtInitRs,"GoodsEoq");
      }
      else
        ::MessageBox(Handle,"录入的物料编码不存在!","错误提示",MB_OK|MB_ICONSTOP);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::seBomdGoodsExit(TObject *Sender)
{
    if(seBomdGoods->Text.IsEmpty())
       return;
    if(CurrentState!=caNormal)
    {
      AnsiString tempS;
      tempS=seBomdGoods->Text;
      if(!tempS.IsEmpty())
      {
         if(InitRsGoods(tempS))
//         if(l_RsGoods->LocateByKey(WideString(tempS))==0)
         {
           seBomdGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
           seBomdVer->Text=GetGoodsValue(gtInitRs,"GoodsVer");
           seBomdModel->Text=GetGoodsValue(gtInitRs,"GoodsModel");
           scBomdType->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsType"))-1;
           scBomdFrom->ItemIndex=StrToInt(GetGoodsValue(gtInitRs,"GoodsFrom"))-1;
           scBomdUnit->Text=GetGoodsValue(gtInitRs,"GoodsUnitCode");
         }
         else
           ::MessageBox(Handle,"录入的物料编码不存在!","错误提示",MB_OK|MB_ICONSTOP);
      }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomh::seBomhGoodsKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    AnsiString pStr=seBomhGoods->Text;
    if(Key==13 && !pStr.IsEmpty() && CurrentState==caNormal)
    {
       //comServer->LocateByKey(WideString(pStr));
       InitRsGoods(pStr);
       DisplayBill();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::tvBomhDblClick(TObject *Sender)
{
 if(trBom->Selected->Count>0)
    return;
 if(trBom->Selected == NULL)
    return;
// if(trBom->Selected->StateIndex != 2)
//  return;
//  if(OldTreeCode!=trBom->Selected->Text.SubString(2,trBom->Selected->Text.AnsiPos(")")-2))
    FillGoods(trBom->Selected);
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomh::FillGoods(TTreeNode *SelectedPmpcNode)
{
  AnsiString sSQL,sPmpcCode,ItemStr,SqlItemStr;
  TComResultSet *RsGoods;
  TTreeNode *TempNode;
 if(SelectedPmpcNode==NULL)
   return;
  sPmpcCode = SelectedPmpcNode->Text;
  sPmpcCode = sPmpcCode.SubString(2,sPmpcCode.AnsiPos(")")-2);
  if(sPmpcCode=="")
     return;
  sSQL=" select goodscode,goodsname from sdgoods where goodspmpccode ='"
      +sPmpcCode+"'";
  SqlItemStr="1";
//  RsGoods=NewResultSet();
  RsGoods=new TComResultSet(Handle,g_ClientHandle);
  RsGoods->Open(sSQL,"");
  if(RsGoods->RecordCount < 1)
  {
     sSQL=" select GoodsName,BomdGoods,BomdpGoods from sdGoods INNER JOIN sdBomd ON GoodsCode=BomdGoods WHERE BomdPgoods ='"+sPmpcCode+"'";
     SqlItemStr="2";
  }
  try
  {
    StartWaitForm("正在执行查询...");
    RsGoods=new TComResultSet(Handle,g_ClientHandle);
    RsGoods->Open(sSQL,"");
   while( RsGoods->Eof == 0)
    {
      if(SqlItemStr=="1")
         ItemStr="("+RsGoods->FieldByName("GoodsCode")+
              ")"+RsGoods->FieldByName("GoodsName");
      else
         ItemStr="("+RsGoods->FieldByName("BomdGoods")+
              ")"+RsGoods->FieldByName("GoodsName");
      TempNode= trBom->Items->AddChild(SelectedPmpcNode,ItemStr);
      TempNode->StateIndex = 1;
      TempNode->SelectedIndex = 1;
      TempNode->Text=ItemStr;
      RsGoods->MoveNext();
    }
  }
  __finally
  {
    EndWaitForm();
  }
  SelectedPmpcNode->Expand(false);
  SelectedPmpcNode->StateIndex=3;
  SelectedPmpcNode->SelectedIndex=3;
  delete RsGoods;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::trGoodsChange(TObject *Sender, TTreeNode *Node)
{
    AnsiString m,n;
    TTreeNode *SelNode = trBom->Selected;
    if(SelNode->Parent)
    {
     TTreeNode *ParentNode = SelNode->Parent;
     n= ParentNode->Text;
     n= n.SubString(2,n.AnsiPos(")")-2);
    }
    if(Node == trBom->Items->Item[0])
     return;
    if(trBom->Selected==NULL)
     return;

    m = Node->Text;
    OldTreeCode=m = m.SubString(2,m.AnsiPos(")")-2);

    comServer->FilterString="bomhgoods='"+m+"'";
    comServer->Query();
    int l_count =comServer->RecordCount;
/*
     AnsiString SelectStr="select * from sdBomh where bomhgoods='"+m+"'";
     TComResultSet *RsPmpc;
     RsPmpc=new TComResultSet(Handle,g_ClientHandle);
     RsPmpc->Open(SelectStr,"");
     RsPmpc->MoveFirst();
    int l_count =RsPmpc->RecordCount;
*/

    if (l_count==0)
    {
        sgBomh->RowCount=1;
        BomdGrid(n,m);
        ChangeToBrowseState(false);
        tbEditDetail->Enabled=false;
        tbEditHead ->Enabled=false;
     }
    else
    {
      tbEditDetail->Enabled=true;
      tbEditHead ->Enabled=true;
      ChangeToBrowseState(true);
      GetDataFromComObject(1);
      FillGridWithData();
    }
//    delete RsPmpc;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::tbEditHeadClick(TObject *Sender)
{
  if(comServer->RecordCount==0)
     throw Exception("该物料为底层物料不能直接修改,请选择父件后单击《改行》按钮修改明细单据!");
  TBillBaseForm::EditHeadRecord();
  trBom->Enabled=false ;
  cheBomdRepFlg->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::tbSaveClick(TObject *Sender)
{
   TBillBaseForm::SaveRecord();
   trBom->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::tbCancelClick(TObject *Sender)
{
   TBillBaseForm::CancelRecord();
   trBom->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmBomh::tbEditDetailClick(TObject *Sender)
{
  if(comServer->RecordCount==0)
  throw Exception("该物料为底层物料不能直接修改,请选择父件后单击《改行》按钮修改明细单据!");
  TBillBaseForm::EditDetailRecord();
  cheBomdRepFlg->Enabled=true;
  seBomdSn->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::BomdGrid(AnsiString f_pgoods,AnsiString l_goods)
{
     TComResultSet *RsPmpcG;
     AnsiString l_Sql,ItemStr;
     l_Sql=" select sdBomd.*,BomdGoodsname=isnull((select goodsname from sdgoods where goodscode=Bomdgoods),''),";
     l_Sql +=" BomdGoodsspec=isnull((select goodsspec from sdgoods where goodscode=Bomdgoods),'') " ;
     l_Sql +=" from sdBomd where sdBomd.bomdgoods ='"+ l_goods+"' and sdBomd.bomdPgoods ='"+f_pgoods+"'";
     RsPmpcG=new TComResultSet(Handle,g_ClientHandle);

     RsPmpcG->Close();
     RsPmpcG->Open(l_Sql,"");
     RsPmpcG->MoveFirst();
     while( RsPmpcG->Eof == 0 )
     {
        /*ItemStr = AnsiString(RsPmpc->FieldByName("BomdSn"))+
                "\t"+AnsiString(RsPmpc->FieldByName("BomdGoods"))+
                "\t"+AnsiString(RsPmpc->FieldByName("BomdGoodsname"))+
                "\t"+AnsiString(RsPmpc->FieldByName("BomdGoodsspec"))+
                "\t"+scBomdUnit->ItemData[0]+
                "\t"+AnsiString(RsPmpc->FieldByName("BomdQty"))+
                "\t"+AnsiString(RsPmpc->FieldByName("BomdShl"))+
                "\t"+scBomdProcess->ItemData[2];
                sgBomh->AddItem(ItemStr); */

       seBomdSn->Text=RsPmpcG->FieldByName("BomdSn");
       seBomdGoods->Text=RsPmpcG->FieldByName("BomdGoods");
       InitRsGoods(seBomdGoods->Text);
       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=RsPmpcG->FieldByName("BomdQty");
       seBomdShl->Text=GetDetailValue("BomdShl");
       scBomdProcess->LocateKey(RsPmpcG->FieldByName("BomdProcess"));
       cheBomdRepFlg->Checked=RsPmpcG->FieldByName("BomdRepFlg")=="1";
       AnsiString l_op= AnsiString(RsPmpcG->FieldByName("BomdOp"));
       if (l_op.IsEmpty()||l_op=="")
          scBomdOp->ItemIndex=0 ;
       else
          scBomdOp->ItemIndex=StrToInt(l_op)-1;
          AnsiString l_pp=AnsiString(RsPmpcG->FieldByName("BomdPp"));
       if(l_pp.IsEmpty()||l_pp=="")
          scBomdPp->ItemIndex=0;
       else
          scBomdPp->ItemIndex=StrToInt(l_pp)-1;
       AnsiString l_fg=AnsiString(RsPmpcG->FieldByName("BomdCfg"));
       if (l_fg.IsEmpty()|| l_fg=="")
          scBomdCfg->ItemIndex=0 ;
       else
          scBomdCfg->ItemIndex=StrToInt(l_fg)-1;
       seBomdLot->Text=RsPmpcG->FieldByName("BomdLot");
       seBomdEco->Text=RsPmpcG->FieldByName("BomdEco");
       memBomdDesc->Text=RsPmpcG->FieldByName("BomdDesc");

      RsPmpcG->MoveNext();
     }
    RsPmpcG->Close();

}
//---------------------------------------------------------------------------
void __fastcall TfrmBomh::tbAddDetailClick(TObject *Sender)
{
  TBillBaseForm::AddDetailRecord();
  seBomdSn->Enabled=true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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