📄 apmhdl.cpp
字号:
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空!");
m_SqlStr="select * from sdApivh where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
if(m_Query->RecordCount!=1)
{
m_Query->Close();
return false;
}
else
{
BatchLetValue();
m_sdApivd->FilterString="ApivdCode='"+m_ApivhCode+"'";
m_sdApivd->OrderString="ApivdLine";
m_sdApivd->Query();
m_Query->Close();
return true;
}
}
//---------------------------------------------------------------------------
AnsiString TsdApivh::GetItemValue(euApivd FieldName)
{
return m_sdApivd->GetFieldValue(FieldName);
}
//---------------------------------------------------------------------------
void TsdApivh::SetItemValue(euApivd FieldName, AnsiString value)
{
m_sdApivd->SetFieldValue(FieldName,value);
}
//---------------------------------------------------------------------------
int __fastcall TsdApivh::GetItemCount()
{
return m_sdApivd->Count;
}
//---------------------------------------------------------------------------
int __fastcall TsdApivh::GetCurItemNo()
{
return m_sdApivd->CurRecNo;
}
//---------------------------------------------------------------------------
char __fastcall TsdApivh::GetCurItemStatus()
{
return m_sdApivd->CurStatus;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TsdApivh::GetItemBookMark()
{
return m_sdApivd->BookMark;
}
//---------------------------------------------------------------------------
void TsdApivh::NewDetail()
{
m_sdApivd=new TsdApivd(DataComm);
m_sdApivd->sdParent=this;
}
void TsdApivh::DeleteDetail()
{
delete m_sdApivd;
}
//**************************************
// TsdApnp 应付票据
//**************************************
//--------------------------------------------------------------
void __fastcall TsdApnp:: SetApnpCode(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("票据号不能为空!");
if(value.Length()>18)
throw Exception("票据号长度不能大于18!");
if (value!=m_ApnpCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT ApnpCODE FROM SDApnp WHERE ApnpCODE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("票据号'"+value+"'已存在!");
}
m_Query->Close();
}
m_ApnpCode=value;
}
void __fastcall TsdApnp:: SetApnpFmonth(AnsiString value)
{
if(value.IsEmpty())
throw Exception("财务月份不能为空!");
if(value!=m_ApnpFmonth)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select fcmonth from sdfc where fcmonth='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("财务月份:"+value+"未定义");
}
m_Query->Close();
}
m_ApnpFmonth=value;
}
void __fastcall TsdApnp:: SetApnpDate(AnsiString value)
{
if(value.IsEmpty())
throw Exception("票据日期不能为空!");
m_ApnpDate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpCant(AnsiString value)
{
if(value.IsEmpty())
throw Exception("票据类型不能为空!");
if(value.Length()>18)
throw Exception("票据类型长度不能大于18!");
if(value!=m_ApnpCant)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select Cantcode from sdCant where Cantcode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("票据类型'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApnpCant=value;
}
void __fastcall TsdApnp:: SetApnpSupply(AnsiString value)
{
if(value.IsEmpty())
throw Exception("供应商编码不能为空!");
if(value.Length()>18)
throw Exception("供应商编码长度不能大于18!");
if(value!=m_ApnpSupply)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select supplycode from sdsupply where supplycode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("供应商'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApnpSupply=value;
}
void __fastcall TsdApnp:: SetApnpCurrency(AnsiString value)
{
if(value.IsEmpty())
throw Exception("货币代码不能为空!");
if(value.Length()>18)
throw Exception("货币代码长度不能大于18!");
if(value!=m_ApnpCurrency)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select currencycode from sdcurrency where currencycode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("货币编码'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApnpCurrency=value;
}
void __fastcall TsdApnp:: SetApnpEnrate(double value)
{
if(value<=0)
throw Exception("汇率不能小于等于零!");
AnsiString FCurrency;
if(m_ApnpCurrency.IsEmpty())
throw Exception("币种代码不能为空!");
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select currencycode from sdCurrency where currencylocal=1");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("本币未定义!");
}
FCurrency=m_Query->FieldValues["currencycode"];
m_Query->Close();
if(FCurrency.UpperCase()!=m_ApnpCurrency.UpperCase())
m_ApnpEnrate=value;
else
m_ApnpEnrate=1;
}
void __fastcall TsdApnp:: SetApnpAmt(double value)
{
if(value<0)
throw Exception("金额不能小于零!");
m_ApnpAmt=value;
}
void __fastcall TsdApnp:: SetApnpUiRate(double value)
{
if(value<0)
throw Exception("未到期利率不能小于零!");
m_ApnpUiRate=value;
}
void __fastcall TsdApnp:: SetApnpEiRate(double value)
{
if(value<0)
throw Exception("到期利率不能小于零!");
m_ApnpEiRate=value;
}
void __fastcall TsdApnp:: SetApnpSdate(AnsiString value)
{
if(value.IsEmpty())
throw Exception("签发日期不能为空!");
m_ApnpSdate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpEdate(AnsiString value)
{
if(value.IsEmpty())
throw Exception("到期日期不能为空!");
if(m_ApnpSdate.IsEmpty())
throw Exception("签发日期不能为空!");
if(Validate(value)<Validate(m_ApnpSdate))
throw Exception("签发日期不能大于到期日期!");
m_ApnpEdate=Validate(value);
}
void __fastcall TsdApnp:: SetApnpTerm(int value)
{
if(value<0)
throw Exception("期限不能小于零!");
m_ApnpTerm=value;
}
void __fastcall TsdApnp:: SetApnpCAmt(double value)
{
if(value<0)
throw Exception("核销金额不能小于零!");
m_ApnpCAmt=value;
}
void __fastcall TsdApnp:: SetApnpDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注长度不能大于40!");
m_ApnpDesc=value;
}
void __fastcall TsdApnp:: SetApnpState(int value)
{
if(value!=1&&value!=2)
throw Exception("状态只能取值:1-状态一 2-状态二!");
m_ApnpState=value;
}
void __fastcall TsdApnp:: SetApnpUser(AnsiString value)
{
if(value.IsEmpty())
throw Exception("操作员不能为空!");
if(value.Length()>18)
throw Exception("操作员长度不能大于18!");
if(value!=m_ApnpUser)
{
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_ApnpUser=value;
}
void __fastcall TsdApnp:: SetApnpCheck(int value)
{
if(value!=0 && value!=1)
throw Exception("审核标志只能取值: 0-未审核 1-已审核!");
m_ApnpCheck=value;
}
void __fastcall TsdApnp:: SetApnpChecker(AnsiString value)
{
if(m_ApnpCheck==1)
{
if(value.IsEmpty())
throw Exception("审核员编码不能为空!");
if(value.Length()>18)
throw Exception("审核员长度不能大于18!");
if(value!=m_ApnpChecker)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select purserCode from sdpurser where purserCheck=1 and pursercode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("审核员:"+value+"未定义或没有审核权限!");
}
m_Query->Close();
}
m_ApnpChecker=value;
}
else
m_ApnpChecker="";
}
void __fastcall TsdApnp:: SetApnpCheckDate(AnsiString value)
{
if(m_ApnpCheck==1)
{
if(value.IsEmpty())
throw Exception("审核日期不能为空!");
m_ApnpCheckDate=Validate(value);
}
else
m_ApnpCheckDate="";
}
void __fastcall TsdApnp:: SetApnpSysDate(AnsiString value)
{
m_ApnpSysDate=value;
}
//---------------------------------------------------------------------------
AnsiString TsdApnp::GetFieldValue(euApnp sdFieldName)
{
switch(sdFieldName)
{
case fiApnpCode:
return ApnpCode;
case fiApnpFmonth:
return ApnpFmonth;
case fiApnpDate:
return ApnpDate;
case fiApnpCant:
return ApnpCant;
case fiApnpSupply:
return ApnpSupply;
case fiApnpCurrency:
return ApnpCurrency;
case fiApnpEnrate:
return ApnpEnrate;
case fiApnpAmt:
return ApnpAmt;
case fiApnpUiRate:
return ApnpUiRate;
case fiApnpEiRate:
return ApnpEiRate;
case fiApnpSdate:
return ApnpSdate;
case fiApnpEdate:
return ApnpEdate;
case fiApnpTerm:
return ApnpTerm;
case fiApnpCAmt:
return ApnpCAmt;
case fiApnpDesc:
return ApnpDesc;
case fiApnpState:
return ApnpState;
case fiApnpUser:
return ApnpUser;
case fiApnpCheck:
return ApnpCheck;
case fiApnpChecker:
return ApnpChecker;
case fiApnpCheckDate:
return ApnpCheckDate;
case fiApnpSysDate:
return ApnpSysDate;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdApnp::SetFieldValue(euApnp sdFieldName, AnsiString value)
{
value=Trim(value);
switch(sdFieldName)
{
case fiApnpCode:
ApnpCode=value;
break;
case fiApnpFmonth:
ApnpFmonth=value;
break;
case fiApnpDate:
ApnpDate=value;
break;
case fiApnpCant:
ApnpCant=value;
break;
case fiApnpSupply:
ApnpSupply=value;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -