📄 pg.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Pg.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPg *frmPg;
//---------------------------------------------------------------------------
__fastcall TfrmPg::TfrmPg(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
sePgGoods->Text = "";
sePgGoodsName->Text = "";
scPgGoodsUnit->ItemIndex= -1;
sePgGoodsSpec->Text = "";
sePgGoodsModel->Text= "";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::GetDataFromComObject()
{
// l_RsGoods->LocateByKey(GetFieldValue("PgGoods"));
sePgGoods->Text=GetFieldValue("PgGoods");
//MoveFirst,MovePrority,MoveNext,MoveLast
sgPg->LocateGrid(0,sePgGoods->Text);
sePgGoodsName->Text =GetFieldValue("GoodsName");
scPgGoodsUnit->LocateKey(GetFieldValue("GoodsUnitCode"));
sePgGoodsSpec->Text =GetFieldValue("GoodsSpec");
sePgGoodsModel->Text=GetFieldValue("GoodsModel");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::SendDataToComObject()
{
SetFieldValue("PgProcess",scPgProcess->ItemData[cbItem2]);
SetFieldValue("PgGoods",Trim(sePgGoods->Text));
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::WaitUserInput()
{
sePgGoods->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPg::GetDataToGrid()
{
// int status;
AnsiString ItemStr,pKey;
pKey=GetFieldValue("PgGoods");
InitRsGoods(pKey);
// status=l_RsGoods->LocateByKey(pKey);
ItemStr=GetGoodsValue(gtInitRs,"GoodsCode")+"\t"+
GetGoodsValue(gtInitRs,"GoodsName");
// ItemStr=GetFieldValue("GoodsCode")+"\t"+
// GetFieldValue("GoodsName");
return(ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
if (mAction == 0)
{
sgPg->AddItem(ItemStr);
sgPg->Row=sgPg->RowCount-1;
}
else if(mAction == 1)
{
sgPg->ChangeItem(ItemStr,sgPg->Row);
}
else if(mAction == 2)
{
sgPg->RemoveItem(sgPg->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgPg->RowCount = 1;
scPgProcess->LocateKey(GetFieldValue("PgProcess"));
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgPg->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,true,true,false, scPgProcess,scPgProcess->Name);
ClientGroup->AddComponent(2,true,true,false, sgPg,sgPg->Name);
ClientGroup->AddComponent(2,true,true,true, Panel1,Panel1->Name);
FillComboBox(Handle,scPgProcess,"SELECT ProcessCode+space(18-Len(ProcessCode))+ProcessName memo,ProcessCode FROM sdProcess order by ProcessCode","memo","ProcessCode");
FillComboBox(Handle,scPgGoodsUnit,"SELECT UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
try
{
switch (MsgSrc)
{
case euSdUnit:
if(ShowUpdateMessage(MsgSrc,MsgType)){
StartWaitForm("正在刷新引用数据!");
FillComboBox(Handle,scPgGoodsUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
EndWaitForm();
break;
}
case euSdProcess:
if(ShowUpdateMessage(MsgSrc,MsgType)){
StartWaitForm("正在刷新引用数据!");
FillComboBox(Handle,scPgProcess,"SELECT ProcessCode+space(1)+'('+ProcessName+')' memo,ProcessCode FROM sdProcess order by ProcessCode","memo","ProcessCode");
EndWaitForm();
break;
}
default:
break;
}
}
__finally
{
//AddCode;
}
*/
}
//---------------------------------------------------------
void __fastcall TfrmPg::FormClose(TObject *Sender, TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::FormShow(TObject *Sender)
{
ClearControl(false);
if(scPgProcess->ItemIndex!=-1)
scPgProcessClick(this);
if(scPgProcess->Enabled)
scPgProcess->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::scPgProcessClick(TObject *Sender)
{
AnsiString pFilstr;
if(scPgProcess->Text.IsEmpty())
return;
if(OldPgProcess==scPgProcess->ItemData[cbItem2])
return;
pFilstr = Trim(scPgProcess->ItemData[cbItem2]);
if(!pFilstr.IsEmpty())
{
OldPgProcess=scPgProcess->ItemData[cbItem2];
pFilstr = "PgProcess = '" + pFilstr + "'";
comServer->FilterString = pFilstr;
comServer->Query();
if(comServer->RecordCount==0)
{
ClearControl(false);
sgPg->RowCount=1;
return;
}
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
else
throw Exception("工序编码不存在或没有定义!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::sePgGoodsButtonClick(TObject *Sender)
{
AnsiString SqlStr;
SqlStr="005[产品编码][产品名称][计量单位][规格][型号]";
SqlStr+="select GoodsCode,GoodsName,GoodsUnitCode,GoodsSpec,GoodsModel from sdGoods";
SqlStr+=" Where (GoodsType=1 or GoodsType=2) and GoodsFrom=2 order by GoodsCode";
TfrmWnQuery *p;
try
{
StartWaitForm("正在查询,请稍候...");
p=new TfrmWnQuery(this,"产品数据查询",SqlStr);
}
__finally
{
EndWaitForm();
}
if(p->ShowModal()==mrOk)
{
sePgGoods->Text=p->ColData[1];
sePgGoodsName->Text=p->ColData[2];
scPgGoodsUnit->LocateKey(p->ColData[3]);
sePgGoodsSpec->Text=p->ColData[4];
sePgGoodsModel->Text=p->ColData[5];
}
delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::muAddDetailClick(TObject *Sender)
{
AnsiString tempS;
tempS=Trim(scPgProcess->Text);
if(tempS.IsEmpty())
{
::MessageBox(Handle,"请先选择或输入一个工序代码,再点增加操作。","操作错误",MB_OK|MB_ICONSTOP);
return;
}
TRecBaseForm::muAddDetailClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::sgPgClick(TObject *Sender)
{
int ARow;
ARow=sgPg->Row;
if(ARow > 0)
comServer->LocateByKey(sgPg->TextMatrix[ARow][0]+"\t"+scPgProcess->ItemData[cbItem2]+"\t");
// comServer->LocateByIndex(ARow);
if(!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::sePgGoodsKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState!=caNormal)
{
AnsiString pGoodsCode;
pGoodsCode=sePgGoods->Text;
if(l_RsGoods->LocateByKey(WideString(pGoodsCode))==0)
{
sePgGoodsName->Text = GetGoodsValue(gtInitRs,"GoodsName");
scPgGoodsUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
sePgGoodsSpec->Text = GetGoodsValue(gtInitRs,"GoodsSpec");
sePgGoodsModel->Text= GetGoodsValue(gtInitRs,"GoodsModel");
}
else
ShowMessage("货物编码:'"+pGoodsCode+"'不存在!");
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -