📄 bomh.cpp
字号:
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 + -