📄 pmhdl.cpp
字号:
m_Query->SQL->Clear();
m_Query->SQL->Add("select TransModeCode from sdTransMode where TransModeCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("运输方式编码'"+value+"'未定义");
}
m_Query->Close();
}
m_PohTransMode=value;
}
void __fastcall TsdPoh::SetPohUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员代码不能为空");
if(value.Length()>18)
throw Exception("操作员代码长度不能大于18");
if(value!=m_PohUser)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select Usercode from sdUser where Usercode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("操作员'"+value+"'未定义");
}
m_Query->Close();
}
m_PohUser=value;
}
//---------------------------------------------------------------------------
AnsiString TsdPoh::GetFieldValue(euPoh sdFieldName)
{
switch(sdFieldName)
{
case fiPohCode:
return PohCode;
case fiPohSupply:
return PohSupply;
case fiPohDate:
return PohDate;
case fiPohCurrency:
return PohCurrency;
case fiPohEnrate:
return AnsiString(PohEnrate);
case fiPohTaxCode:
return PohTaxCode;
case fiPohPmode:
return PohPmode;
case fiPohContract:
return PohContract;
case fiPohSettleMode:
return PohSettleMode;
case fiPohSugDate:
return PohSugDate;
case fiPohBuyer:
return PohBuyer;
case fiPohDesc:
return PohDesc;
case fiPohAmt:
return AnsiString(PohAmt);
case fiPohPayTerm:
return AnsiString(PohPayTerm);
case fiPohPrePayAmt:
return AnsiString(PohPrePayAmt);
case fiPohCarriage:
return AnsiString(PohCarriage);
case fiPohCheck:
return AnsiString(PohCheck);
case fiPohChecker:
return PohChecker;
case fiPohCheckDate:
return PohCheckDate;
case fiPohCancel:
return AnsiString(PohCancel);
case fiPohCanceler:
return PohCanceler;
case fiPohCancelDate:
return PohCancelDate;
case fiPohStop:
return AnsiString(PohStop);
case fiPohClose:
return AnsiString(PohClose);
case fiPohPsite:
return PohPsite;
case fiPohDeliver:
return PohDeliver;
case fiPohTransMode:
return PohTransMode;
case fiPohUser:
return PohUser;
case fiPohSysDate:
return PohSysDate;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdPoh::SetFieldValue(euPoh sdFieldName, AnsiString Value)
{
switch(sdFieldName)
{
case fiPohCode:
PohCode=Value;
break;
case fiPohSupply:
PohSupply=Value;
break;
case fiPohDate:
PohDate=Value;
break;
case fiPohCurrency:
PohCurrency=Value;
break;
case fiPohEnrate:
PohEnrate=Value.ToDouble();
break;
case fiPohTaxCode:
PohTaxCode=Value;
break;
case fiPohPmode:
PohPmode=Value;
break;
case fiPohContract:
PohContract=Value;
break;
case fiPohSettleMode:
PohSettleMode=Value;
break;
case fiPohSugDate:
PohSugDate=Value;
break;
case fiPohBuyer:
PohBuyer=Value;
break;
case fiPohDesc:
PohDesc=Value;
break;
case fiPohAmt:
PohAmt=Value.ToDouble();
break;
case fiPohPayTerm:
PohPayTerm=Value.ToInt();
break;
case fiPohPrePayAmt:
PohPrePayAmt=Value.ToDouble();
break;
case fiPohCarriage:
PohCarriage=Value.ToDouble();
break;
case fiPohCheck:
PohCheck=Value.ToInt();
break;
case fiPohChecker:
PohChecker=Value;
break;
case fiPohCheckDate:
PohCheckDate=Value;
break;
case fiPohCancel:
PohCancel=Value.ToInt();
break;
case fiPohCanceler:
PohCanceler=Value;
break;
case fiPohCancelDate:
PohCancelDate=Value;
break;
case fiPohStop:
PohStop=Value.ToInt();
break;
case fiPohClose:
PohClose=Value.ToInt();
break;
case fiPohPsite:
PohPsite=Value;
break;
case fiPohDeliver:
PohDeliver=Value;
break;
case fiPohTransMode:
PohTransMode=Value;
break;
case fiPohUser:
PohUser=Value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TsdPoh::TsdPoh(TDataComm *DC)
:TsdHead(DC)
{
try
{
m_sdPod=NULL;
QueryString=AnsiString("select * from sdPoh");
FilterString="";
OrderString=" PohCode";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("初始化出错");
}
}
//---------------------------------------------------------------------------
TsdPoh::TsdPoh()
:TsdHead()
{
try
{
m_sdPod=NULL;
QueryString=AnsiString("select * from sdPoh");
FilterString="";
OrderString=" PohCode";
EmptyValue(0);
EmptyValue(1);
}
catch(...)
{
throw Exception("初始化出错");
}
}
//---------------------------------------------------------------------------
void TsdPoh::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_PohCode.IsEmpty()==true)
throw Exception("采购单号不能为空!");
if(ItemCount<=0)
throw Exception("采购单没有定义明细字段");
m_StoredProc->Close();
switch(CurStatus)
{
case 2:
case 4:
m_StoredProc->ProcedureName="sdPoh_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@PohCode",ftString,pdInputOutput,18,m_PohCode);
m_StoredProc->Parameters->CreateParameter("@PohSupply",ftString,pdInput,18,m_PohSupply);
m_StoredProc->Parameters->CreateParameter("@PohCurrency",ftString,pdInput,18,m_PohCurrency);
m_StoredProc->Parameters->CreateParameter("@PohEnrate",ftFloat,pdInput,12,m_PohEnrate);
m_StoredProc->Parameters->CreateParameter("@PohTaxCode",ftString,pdInput,18,m_PohTaxCode);
m_StoredProc->Parameters->CreateParameter("@PohPmode",ftString,pdInput,18,m_PohPmode);
m_StoredProc->Parameters->CreateParameter("@PohContract",ftString,pdInput,18,m_PohContract);
m_StoredProc->Parameters->CreateParameter("@PohSettleMode",ftString,pdInput,18,m_PohSettleMode);
m_StoredProc->Parameters->CreateParameter("@PohBuyer",ftString,pdInput,18,m_PohBuyer);
m_StoredProc->Parameters->CreateParameter("@PohDate",ftString,pdInput,10,m_PohDate);
m_StoredProc->Parameters->CreateParameter("@PohDesc",ftString,pdInput,40,m_PohDesc);
m_StoredProc->Parameters->CreateParameter("@PohSysDate",ftString,pdOutput,40,m_PohSysDate);
m_StoredProc->Parameters->CreateParameter("@PohSugDate",ftString,pdInput,10,m_PohSugDate);
m_StoredProc->Parameters->CreateParameter("@PohAmt",ftFloat,pdInput,12,m_PohAmt);
m_StoredProc->Parameters->CreateParameter("@PohPayTerm",ftInteger,pdInput,10,m_PohPayTerm);
m_StoredProc->Parameters->CreateParameter("@PohPrePayAmt",ftFloat,pdInput,12,m_PohPrePayAmt);
m_StoredProc->Parameters->CreateParameter("@PohCarriage",ftFloat,pdInput,12,m_PohCarriage);
m_StoredProc->Parameters->CreateParameter("@PohPsite",ftString,pdInput,18,m_PohPsite);
m_StoredProc->Parameters->CreateParameter("@PohDeliver",ftString,pdInput,18,m_PohDeliver);
m_StoredProc->Parameters->CreateParameter("@PohTransMode",ftString,pdInput,18,m_PohTransMode);
m_StoredProc->Parameters->CreateParameter("@PohUser",ftString,pdInput,18,m_PohUser);
m_StoredProc->ExecProc();
m_PohCode=m_StoredProc->Parameters->ParamValues["@PohCode"];
m_PohSysDate=m_StoredProc->Parameters->ParamValues["@PohSysDate"];
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
m_sdPod->SetFieldValue(fiPodCode,m_PohCode);
AddToObject();
m_sdPod->Update();
}
break;
case 3:
m_StoredProc->ProcedureName="sdPoh_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_PohCode",ftString,pdInput,18,b_PohCode);
m_StoredProc->Parameters->CreateParameter("@PohCode",ftString,pdInput,18,m_PohCode);
m_StoredProc->Parameters->CreateParameter("@PohSupply",ftString,pdInput,18,m_PohSupply);
m_StoredProc->Parameters->CreateParameter("@PohCurrency",ftString,pdInput,18,m_PohCurrency);
m_StoredProc->Parameters->CreateParameter("@PohEnrate",ftFloat,pdInput,12,m_PohEnrate);
m_StoredProc->Parameters->CreateParameter("@PohTaxCode",ftString,pdInput,18,m_PohTaxCode);
m_StoredProc->Parameters->CreateParameter("@PohPmode",ftString,pdInput,18,m_PohPmode);
m_StoredProc->Parameters->CreateParameter("@PohContract",ftString,pdInput,18,m_PohContract);
m_StoredProc->Parameters->CreateParameter("@PohSettleMode",ftString,pdInput,18,m_PohSettleMode);
m_StoredProc->Parameters->CreateParameter("@PohBuyer",ftString,pdInput,18,m_PohBuyer);
m_StoredProc->Parameters->CreateParameter("@PohDate",ftString,pdInput,10,m_PohDate);
m_StoredProc->Parameters->CreateParameter("@PohDesc",ftString,pdInput,40,m_PohDesc);
m_StoredProc->Parameters->CreateParameter("@PohSysDate",ftString,pdOutput,40,m_PohSysDate);
m_StoredProc->Parameters->CreateParameter("@PohSugDate",ftString,pdInput,10,m_PohSugDate);
m_StoredProc->Parameters->CreateParameter("@PohAmt",ftFloat,pdInput,12,m_PohAmt);
m_StoredProc->Parameters->CreateParameter("@PohPayTerm",ftInteger,pdInput,10,m_PohPayTerm);
m_StoredProc->Parameters->CreateParameter("@PohPrePayAmt",ftFloat,pdInput,12,m_PohPrePayAmt);
m_StoredProc->Parameters->CreateParameter("@PohCheck",ftInteger,pdInput,1,m_PohCheck);
m_StoredProc->Parameters->CreateParameter("@PohChecker",ftString,pdInput,18,m_PohChecker);
m_StoredProc->Parameters->CreateParameter("@PohCheckDate",ftString,pdInput,10,m_PohCheckDate);
m_StoredProc->Parameters->CreateParameter("@PohCancel",ftInteger,pdInput,1,m_PohCancel);
m_StoredProc->Parameters->CreateParameter("@PohCanceler",ftString,pdInput,18,m_PohCanceler);
m_StoredProc->Parameters->CreateParameter("@PohCancelDate",ftString,pdInput,10,m_PohCancelDate);
m_StoredProc->Parameters->CreateParameter("@PohCarriage",ftFloat,pdInput,12,m_PohCarriage);
m_StoredProc->Parameters->CreateParameter("@PohStop",ftInteger,pdInput,1,m_PohStop);
m_StoredProc->Parameters->CreateParameter("@PohClose",ftInteger,pdInput,1,m_PohClose);
m_StoredProc->Parameters->CreateParameter("@PohPsite",ftString,pdInput,18,m_PohPsite);
m_StoredProc->Parameters->CreateParameter("@PohDeliver",ftString,pdInput,18,m_PohDeliver);
m_StoredProc->Parameters->CreateParameter("@PohTransMode",ftString,pdInput,18,m_PohTransMode);
m_StoredProc->Parameters->CreateParameter("@PohUser",ftString,pdInput,18,m_PohUser);
m_StoredProc->ExecProc();
m_PohSysDate=m_StoredProc->Parameters->ParamValues["@PohSysDate"];
break;
case 5:
case 6:
case 7:
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
if(m_sdPod->CurStatus==2 || m_sdPod->CurStatus==3)
m_sdPod->Update();
}
break;
}
TsdPoh *p=new TsdPoh();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->PohCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->PohCode,this->b_PohCode);
}
}
//---------------------------------------------------------------------------
void TsdPoh::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_PohCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdPoh_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_PohCode",ftString,pdInput,18,b_PohCode);
m_StoredProc->ExecProc();
delete m_sdPod;
DeleteRecord(this->b_PohCode);
}
void TsdPoh::NewDetail()
{
m_sdPod=new TsdPod(DataComm);
m_sdPod->sdParent=this;
}
void TsdPoh::DeleteDetail()
{
delete m_sdPod;
m_sdPod=NULL;
}
//---------------------------------------------------------------------------
void TsdPoh::AddItem()
{
m_sdPod->AddNew();
if(CurStatus!=2)
SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdPoh::InsertItem()
{
//m_sdField->AddNew();
//TsdField *p=new TsdField();
//p->Assign(m_sdField);
//if(CurStatus==2)
// m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
//else
// m_sdField->Update();
}
//---------------------------------------------------------------------------
void TsdPoh::EditItem()
{
m_sdPod->Edit();
if(CurStatus==1)
{
SetActionID(6);
}
}
//---------------------------------------------------------------------------
void TsdPoh::DeleteItem()
{
if(CurStatus==2 || CurStatus==5)
m_sdPod->DeleteRecord(m_sdPod->Key);
else
m_sdPod->Delete();
}
//---------------------------------------------------------------------------
void TsdPoh::RemoveItem()
{
if(CurStatus==2||CurStatus==5)
m_sdPod->RemoveRecord(m_sdPod->Index);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -