📄 bomh.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Bomh.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 resource "*.dfm"
TfrmBomh *frmBomh;
//---------------------------------------------------------------------------
__fastcall TfrmBomh::TfrmBomh(TComponent* Owner)
: TBillBaseForm(Owner,euSdBomh,"")
{
}
//---------------------------------------------------------------------------
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(scBomhProducter,"select ProducterCode,memo=ProducterCode+Space(1)+'('+UserName+')' FROM sdProducter,sdUser where UserCode=ProducterCode 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 TfrmBomh::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 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){
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 TfrmBomh::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");
scBomhType->ItemIndex=StrToInt(GetGoodsValue("GoodsType"))-1;
scBomhUnit->LocateKey(GetGoodsValue("GoodsUnitCode"));
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));
labSysDate->Caption=GetHeadValue(fiBomhSysDate);
labBomhUser->Caption=GetHeadValue(fiBomhUser);
deBomhEdate->Text=GetHeadValue(fiBomhEdate);
deBomhIdate->Text=GetHeadValue(fiBomhIdate);
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"));
if(GetGoodsValue("GoodsType")!="")
scBomdType->ItemIndex=StrToInt(GetGoodsValue("GoodsType"))-1;
if(GetGoodsValue("GoodsFrom")!="")
scBomdFrom->ItemIndex=StrToInt(GetGoodsValue("GoodsFrom"))-1;
seBomdQty->Text=GetDetailValue(fiBomdQty);
seBomdShl->Text=GetDetailValue(fiBomdShl);
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 TfrmBomh::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 TfrmBomh::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 TfrmBomh::RefreshGridData(int mAction)
{
int i;
AnsiString ItemStr=GetItemStringToGrid();
switch(mAction)
{
case 0:
sgBomh->AddItem(ItemStr);
sgBomh->Row=sgBomh->RowCount-1;
break;
case 1:
sgBomh->ChangeItem(ItemStr,sgBomh->Row);
break;
case 2:
sgBomh->RemoveItem(sgBomh->Row);
}
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmBomh::GetItemStringToGrid()
{
AnsiString s_ItemStr,s1,s2;
s1=GetDetailValue(fiBomdProcess);
s2=GetDetailValue(fiBomdUnit);
scBomdProcess->LocateKey(s1);
scBomdUnit->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 TfrmBomh::DisplayBill()
{
if(comServer->RecordCount>0)
{
GetDataFromComObject(1);
FillGridWithData();
if(sgBomh->RowCount >1)
{
AnsiString Keystr;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -