📄 lg.cpp
字号:
//---------------------------------------------------------------------------
#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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
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(Handle,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");
}
//----------------------------------------------------------------------------
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()
{
SetFieldValue("LgLocCode",scLgLocCode->ItemData[1]);
SetFieldValue("LgGoodsCode",seLgGoodsCode->Text);
SetFieldValue("GoodsName",seLgGoodsName->Text);
if(scLgState->ItemData[1] == "")
throw Exception("请选择物料的使用状态");
SetFieldValue("LgState",scLgState->ItemData[1]);
}
//------------------------------------------------------------------------
void __fastcall TfrmLg::GetDataFromComObject()
{
seLgGoodsCode->Text=GetFieldValue("LgGoodsCode");
DisplayGoodsInfo();
scLgState->LocateKey(GetFieldValue("LgState"));
sgLg->LocateGrid(1,GetFieldValue("LgGoodsCode"));
}
//------------------------------------------------------------------------
AnsiString __fastcall TfrmLg::GetDataToGrid()
{
AnsiString s;
s="\t"+GetFieldValue("LgGoodsCode")
+"\t"+GetFieldValue("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="存储";break;
case 2:
s="在制";break;
case 3:
s="待检";break;
case 4:
s="待发";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)
{
//选取货品状态为“正在使用”,且没有被取消的货品
AnsiString SqlStr;
/*SqlStr="006[物料编码][物料名称][计量单位][多计量单位][批次管理][订单管理]";
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("正在查询,请稍候...");
p=new TfrmWnQuery(this,"物料查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
seLgGoodsCode->Text=p->ColData[1];
DisplayGoodsInfo();
}
delete p;
*/
SqlStr=" Goodsstate=2 and Goodscancel=0 ";
if(OpenGoodsForm(SqlStr)) //过滤条件
{
seLgGoodsCode->Text=GetGoodsValue(gtOpenForm,"GoodsCode");
DisplayGoodsInfo();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::sgLgClick(TObject *Sender)
{
int ARow=sgLg->Row;
AnsiString s;
s=sgLg->TextMatrix[ARow][1];
if (ARow > 0)
comServer->LocateByKey(WideString(sgLg->TextMatrix[ARow][1]+"\t"+scLgLocCode->ItemData[1]+"\t"));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
if(MsgSrc==euSdLoc)
{
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(Handle,scLgLocCode,"select LocCode,LocName,LocType from SdLoc Order by LocCode" ,"LocCode","LocName","LocType");
scLgLocCodeClick(NULL);
}
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLg::DisplayGoodsInfo()
{
if(!InitRsGoods(WideString(Trim(seLgGoodsCode->Text)))) //输入无效编码
{
seLgGoodsCode->Text="";
seLgGoodsName->Text="";
seLgGoodsSpec->Text="";
seLgGoodsUnitCode->Text="";
seLgGoodsMaxQty->Text="";
seLgGoodsRopQty->Text="";
seLgGoodsOoq->Text="";
}
else
{
seLgGoodsCode->Text=GetGoodsValue(gtInitRs,"GoodsCode");
seLgGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
seLgGoodsSpec->Text=GetGoodsValue(gtInitRs,"GoodsSpec");
seLgGoodsUnitCode->Text=GetGoodsValue(gtInitRs,"GoodsUnitCode");
seLgGoodsMaxQty->Text=GetGoodsValue(gtInitRs,"GoodsMaxQty");
seLgGoodsRopQty->Text=GetGoodsValue(gtInitRs,"GoodsRopQty");
seLgGoodsOoq->Text=GetGoodsValue(gtInitRs,"GoodsOoq");
}
}
void __fastcall TfrmLg::seLgGoodsCodeExit(TObject *Sender)
{
DisplayGoodsInfo();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -