?? lg.cpp
字號(hào):
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Lg.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmLg *frmLg;
//---------------------------------------------------------------------------
__fastcall TfrmLg::TfrmLg(TComponent* Owner)
: TRecBaseForm(Owner,euSdLg,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::InitEditControl()
{
ClientGroup->AddComponent(2,true,true,false,scLgLocCode,scLgLocCode->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, sgLg,sgLg->Name);
ClientGroup->AddComponent(2,true,false,true,scLgState,scLgState->Name);
ClientGroup->AddComponent(2,false,true,true,seLgGoodsCode,seLgGoodsCode->Name);
ClientGroup->AddComponent(2,true,true,true,Panel1,Panel1->Name);
FillComboBox(scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocName","LocCode","LocType");
scLgState->ClearAll();
scLgState->AddItems("1-正在使用","1");
scLgState->AddItems("2-正在停用","2");
scLgState->AddItems("3-已停用","3");
}
//----------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetFieldValue(int iFieldIndex)
{
AnsiString S;
S=ReadFieldValue(comServer,iFieldIndex);
return S;
}
//----------------------------------------------------------------------------
void __fastcall TfrmLg::WaitUserInput()
{
if(seLgGoodsCode->Enabled)
seLgGoodsCode->SetFocus();
}
//----------------------------------------------------------------------------
void __fastcall TfrmLg::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seLgGoodsCode->Text="";
scLgState->ItemIndex=0;
seLgGoodsName->Text="";
seLgGoodsSpec->Text="";
seLgGoodsUnitCode->Text="";
seLgGoodsMaxQty->Text="0.00";
seLgGoodsRopQty->Text="0.00";
seLgGoodsOoq->Text="0.00";
}
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::SendDataToComObject()
{
WriteFieldValue(comServer,fiLgLocCode,scLgLocCode->ItemData[1]);
WriteFieldValue(comServer,fiLgGoodsCode,seLgGoodsCode->Text);
if(scLgState->ItemData[1] == "")
throw Exception("請(qǐng)選擇物料的使用狀態(tài)");
WriteFieldValue(comServer,fiLgState,scLgState->ItemData[1]);
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::GetDataFromComObject()
{
seLgGoodsCode->Text=GetFieldValue(fiLgGoodsCode);
DisplayGoodsInfo();
scLgState->LocateKey(GetFieldValue(fiLgState));
sgLg->LocateGrid(1,GetFieldValue(fiLgGoodsCode));
}
//------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetDataToGrid()
{
AnsiString s;
g_sdRsGoods->LocateByKey(WideString(GetFieldValue(fiLgGoodsCode)));
s = "\t" +GetGoodsValue("GoodsCode")+
"\t" +GetGoodsValue("GoodsName");
return (s);
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::RefreshGridData(int mAction)
{
AnsiString sGridItem;
sGridItem=GetDataToGrid();
int i;
switch(mAction)
{
case 0: //新增
sgLg->AddItem(sGridItem);
break;
case 1: //修改
i = sgLg->Row;
sgLg->ChangeItem(sGridItem,i);
break;
case 2: //刪除
sgLg->RemoveItem(sgLg->Row);
} ;
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgLg->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgLg->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::FormShow(TObject *Sender)
{
ClearControl(false);
if(scLgLocCode->Items->Count > 0)
{
scLgLocCode->ItemIndex=0;
scLgLocCodeClick(NULL);
}
sgLg->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::scLgLocCodeClick(TObject *Sender)
{
AnsiString s,sType;
seLocName->Text=scLgLocCode->ItemData[1];
sType=scLgLocCode->ItemData[2];
switch(StrToIntDef(sType,0))
{
case 1:
s="存儲(chǔ)";break;
case 2:
s="在制";break;
case 3:
s="待檢";break;
case 4:
s="待發(fā)";break;
case 5:
s="在途";break;
case 6:
s="維修";break;
case 7:
s="次品";break;
case 8:
s="廢品";break;
case 9:
s="待處理";break;
default:
s="";
}
seLocType->Text=s;
s = Trim(scLgLocCode->ItemData[1]);
s = " LgLocCode = '" + s + "'";
comServer->FilterString = WideString(s);
comServer->Query();
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::seLgGoodsCodeButtonClick(TObject *Sender)
{
//選取貨品狀態(tài)為“正在使用”,且沒有被取消的貨品
AnsiString SqlStr;
SqlStr="006[物料編碼][物料名稱][計(jì)量單位][多計(jì)量單位][批次管理][訂單管理]";
SqlStr+=" select GoodsCode,GoodsName,GoodsUnitCode,GoodsMUnit,GoodsBatch,GoodsTrackSo from sdgoods where ";
SqlStr+=" Goodsstate=2 and Goodscancel=0 ";
SqlStr+=" order by GoodsCode";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查詢,請(qǐng)稍候...");
p=new TfrmWnQuery(this,"物料查詢",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seLgGoodsCode->Text=p->ColData[1];
DisplayGoodsInfo();
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::sgLgClick(TObject *Sender)
{
int ARow=sgLg->Row;
AnsiString s;
s=sgLg->TextMatrix[ARow][1];
if (ARow > 0)
comServer->LocateByKey(WideString(Trim(scLgLocCode->ItemData[1])+","+sgLg->TextMatrix[ARow][1]));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::RefreshUpdateData(int MsgSrc,int MsgType)
{
if(MsgSrc==euSdLoc)
{
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocCode","LocName","LocType");
scLgLocCodeClick(NULL);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::DisplayGoodsInfo()
{
int GoodsFound;
GoodsFound=g_sdRsGoods->LocateByKey(WideString(Trim(seLgGoodsCode->Text)));
if(GoodsFound != 0) //物料編碼不存在
{
seLgGoodsCode->Text="";
seLgGoodsName->Text="";
seLgGoodsSpec->Text="";
seLgGoodsUnitCode->Text="";
seLgGoodsMaxQty->Text="";
seLgGoodsRopQty->Text="";
seLgGoodsOoq->Text="";
}
else
{
seLgGoodsCode->Text=GetGoodsValue("GoodsCode");
seLgGoodsName->Text=GetGoodsValue("GoodsName");
seLgGoodsSpec->Text=GetGoodsValue("GoodsSpec");
seLgGoodsUnitCode->Text=GetGoodsValue("GoodsUnitCode");
seLgGoodsMaxQty->Text=GetGoodsValue("GoodsMaxQty");
seLgGoodsRopQty->Text=GetGoodsValue("GoodsRopQty");
seLgGoodsOoq->Text=GetGoodsValue("GoodsOoq");
}
}
void __fastcall TfrmLg::seLgGoodsCodeExit(TObject *Sender)
{
DisplayGoodsInfo();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -