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