📄 commondata.cpp
字号:
return Count;
}
bool TsdTax::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="SELECT * FROM SDTax 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_Query->Close();
return true;
}
}
TsdTax::~TsdTax()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//==========================================
//(TsdCurrency)币别维护
//==========================================
void __fastcall TsdCurrency::SetCurrencyCode(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("货币编码名不能为空");
if(value.Length()>18)
throw Exception("货币编码长度不能超过18");
if (value!=m_CurrencyCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT * FROM SDCURRENCY WHERE CurrencyCODE='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("货币编码已经已存在");
}
m_Query->Close();
}
m_CurrencyCode = value;
}
void __fastcall TsdCurrency::SetCurrencyName(AnsiString value)
{
if(value.IsEmpty()==true)
throw Exception("货币名不能为空");
if(value.Length()>20)
throw Exception("货币名长度不能超过20");
if (value!=m_CurrencyName)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT * FROM SDCURRENCY WHERE Currencyname='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("货币名已存在");
}
m_Query->Close();
}
m_CurrencyName=value;
}
void __fastcall TsdCurrency::SetCurrencyAmtDec(int value)
{
if(value<0||value>6)
throw Exception("货币金额精度只能取零至六。");
m_CurrencyAmtDec=value;
}
void __fastcall TsdCurrency::SetCurrencyPriceDec(int value)
{
if(value<0||value>6)
throw Exception("货币价格精度只能取零至六。");
m_CurrencyPriceDec = value;
}
void __fastcall TsdCurrency::SetCurrencyLocal(int value)
{
AnsiString m_Sql;
if(value!=0&&value!=1)
throw Exception("本币标志位值只能是0-非本币 1-本币");
if(m_CurrencyLocal==0 && value==1)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Sql=AnsiString("SELECT * FROM SDCURRENCY WHERE CurrencyLocal=1 and CurrencyCode<>'"+m_CurrencyCode+"'");
m_Query->SQL->Add(m_Sql);
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("已经设有本位币");
}
m_Query->Close();
}
m_CurrencyLocal=value;
}
void __fastcall TsdCurrency::SetCurrencyCarry(int value)
{
if(value!=1 && value!=2 && value!=3)
throw Exception("进位只能取值1-四舍五入 2-取整 3-向上取整");
m_CurrencyCarry=value;
}
void __fastcall TsdCurrency::SetCurrencySym(AnsiString value)
{
if(value.Length()>2)
throw Exception("货币符号长度不能超过2");
m_CurrencySym=value;
}
void __fastcall TsdCurrency::SetCurrencyPos(int value)
{
if(value!=1 && value!=2)
throw Exception("符号位置只能取1-首位 2-末位");
m_CurrencyPos=value;
}
TsdCurrency::TsdCurrency(TDataComm *DC)
:TsdStandard(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDCurrency";
FilterString="";
OrderString="CURRENCYCODE";
}
catch(Exception &e)
{
throw Exception("构造函数出错!");
}
}
TsdCurrency::TsdCurrency()
:TsdStandard()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM SDCurrency";
FilterString="";
OrderString="CURRENCYCODE";
}
catch(Exception &e)
{
throw Exception("构造函数出错!");
}
}
AnsiString TsdCurrency::GetFieldValue(euCurrency sdFieldName)
{
switch(sdFieldName)
{
case fiCurrencyCode:
return CurrencyCode;
case fiCurrencyName:
return CurrencyName;
case fiCurrencyAmtDec:
return IntToStr(CurrencyAmtDec);
case fiCurrencyPriceDec:
return IntToStr(CurrencyPriceDec);
case fiCurrencyLocal:
return IntToStr(CurrencyLocal);
case fiCurrencyCarry:
return IntToStr(CurrencyCarry);
case fiCurrencySym:
return CurrencySym;
case fiCurrencyPos:
return IntToStr(CurrencyPos);
default:
throw Exception("当前未定义可取值");
}
}
void TsdCurrency::SetFieldValue(euCurrency sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiCurrencyCode:
CurrencyCode=value;
break;
case fiCurrencyName:
CurrencyName=value;
break;
case fiCurrencyAmtDec:
CurrencyAmtDec=StrToInt(value);
break;
case fiCurrencyPriceDec:
CurrencyPriceDec=StrToInt(value);
break;
case fiCurrencyLocal:
CurrencyLocal=StrToInt(value);
break;
case fiCurrencyCarry:
CurrencyCarry=StrToInt(value);
break;
case fiCurrencySym:
CurrencySym=value;
break;
case fiCurrencyPos:
CurrencyPos=StrToInt(value);
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
void TsdCurrency::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_CurrencyCode.IsEmpty()==true)
throw Exception("货币代码不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdCurrency_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@CurrencyCode",ftString,pdInput,18,m_CurrencyCode);
m_StoredProc->Parameters->CreateParameter("@CurrencyName",ftString,pdInput,20,m_CurrencyName);
m_StoredProc->Parameters->CreateParameter("@CurrencyAmtDec",ftInteger,pdInput,10,m_CurrencyAmtDec);
m_StoredProc->Parameters->CreateParameter("@CurrencyPriceDec",ftInteger,pdInput,10,m_CurrencyPriceDec);
m_StoredProc->Parameters->CreateParameter("@CurrencyLocal",ftInteger,pdInput,1,m_CurrencyLocal);
m_StoredProc->Parameters->CreateParameter("@CurrencyCarry",ftInteger,pdInput,1,m_CurrencyCarry);
m_StoredProc->Parameters->CreateParameter("@CurrencySym",ftString,pdInput,2,m_CurrencySym);
m_StoredProc->Parameters->CreateParameter("@CurrencyPos",ftInteger,pdInput,1,m_CurrencyPos);
m_StoredProc->ExecProc();
}
else
{
m_StoredProc->ProcedureName="sdCurrency_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_CurrencyCode",ftString,pdInput,18,b_CurrencyCode);
m_StoredProc->Parameters->CreateParameter("@CurrencyCode",ftString,pdInput,18,m_CurrencyCode);
m_StoredProc->Parameters->CreateParameter("@CurrencyName",ftString,pdInput,20,m_CurrencyName);
m_StoredProc->Parameters->CreateParameter("@CurrencyAmtDec",ftInteger,pdInput,10,m_CurrencyAmtDec);
m_StoredProc->Parameters->CreateParameter("@CurrencyPriceDec",ftInteger,pdInput,10,m_CurrencyPriceDec);
m_StoredProc->Parameters->CreateParameter("@CurrencyLocal",ftInteger,pdInput,1,m_CurrencyLocal);
m_StoredProc->Parameters->CreateParameter("@CurrencyCarry",ftInteger,pdInput,1,m_CurrencyCarry);
m_StoredProc->Parameters->CreateParameter("@CurrencySym",ftString,pdInput,2,m_CurrencySym);
m_StoredProc->Parameters->CreateParameter("@CurrencyPos",ftInteger,pdInput,1,m_CurrencyPos);
m_StoredProc->ExecProc();
}
m_StoredProc->Close();
TsdCurrency *p=new TsdCurrency();
if(CurStatus==2) {
SetActionID(1); // for browsing only
p->Assign(this);
AddRecord((void *)p,p->CurrencyCode);
}
else {
SetActionID(1); // for browsing only
p->Assign(this);
ChangeRecord((void *)p,p->CurrencyCode,this->b_CurrencyCode);
}
}
void TsdCurrency::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_CurrencyCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdCurrency_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_CurrencyCode",ftString,pdInput,18,b_CurrencyCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_CurrencyCode);
}
void TsdCurrency::BackupValue()
{
b_CurrencyCode=m_CurrencyCode;
b_CurrencyName=m_CurrencyName;
b_CurrencyAmtDec=m_CurrencyAmtDec;
b_CurrencyPriceDec=m_CurrencyPriceDec;
b_CurrencyLocal=m_CurrencyLocal;
b_CurrencyCarry=m_CurrencyCarry;
b_CurrencySym=m_CurrencySym;
b_CurrencyPos=m_CurrencyPos;
}
void TsdCurrency::RestoreValue()
{
m_CurrencyCode=b_CurrencyCode;
m_CurrencyName=b_CurrencyName;
m_CurrencyAmtDec=b_CurrencyAmtDec;
m_CurrencyPriceDec=b_CurrencyPriceDec;
m_CurrencyLocal=b_CurrencyLocal;
m_CurrencyCarry=b_CurrencyCarry;
m_CurrencySym=b_CurrencySym;
m_CurrencyPos=b_CurrencyPos;
}
void TsdCurrency::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_CurrencyCode="";
m_CurrencyName="";
m_CurrencyAmtDec=2;
m_CurrencyPriceDec=4;
m_CurrencyLocal=0;
m_CurrencyCarry=1;
m_CurrencySym="";
m_CurrencyPos=0;
break;
case 1:
b_CurrencyCode="";
b_CurrencyName="";
b_CurrencyAmtDec=2;
b_CurrencyPriceDec=4;
b_CurrencyLocal=0;
b_CurrencyCarry=1;
b_CurrencySym="";
b_CurrencyPos=0;
break;
}
}
void TsdCurrency::BatchLetValue()
{
m_CurrencyCode=m_Query->FieldValues["CurrencyCode"];
m_CurrencyName=m_Query->FieldValues["CurrencyName"];
m_CurrencyAmtDec=m_Query->FieldValues["CurrencyAmtDec"];
m_CurrencyPriceDec=m_Query->FieldValues["CurrencyPriceDec"];
m_CurrencyLocal=m_Query->FieldValues["CurrencyLocal"];
m_CurrencyCarry=m_Query->FieldValues["CurrencyCarry"];
m_CurrencySym=m_Query->FieldValues["CurrencySym"];
m_CurrencyPos=m_Query->FieldValues["CurrencyPos"];
BackupValue();
}
void TsdCurrency::Assign(TsdCurrency *p)
{
this->SetActionID(p->CurStatus);
m_CurrencyCode=p->m_CurrencyCode;
m_CurrencyName=p->m_CurrencyName;
m_CurrencyAmtDec=p->m_CurrencyAmtDec;
m_CurrencyPriceDec=p->m_CurrencyPriceDec;
m_CurrencyLocal=p->m_CurrencyLocal;
m_CurrencyCarry=p->m_CurrencyCarry;
m_CurrencySym=p->m_CurrencySym;
m_CurrencyPos=p->m_CurrencyPos;
BackupValue();
}
void TsdCurrency::AssignValue()
{
TsdCurrency *p=(TsdCurrency *)Records(CurRecNo);
this->SetActionID(p->CurStatus);
m_CurrencyCode=p->m_CurrencyCode;
m_CurrencyName=p->m_CurrencyName;
m_CurrencyAmtDec=p->m_CurrencyAmtDec;
m_CurrencyPriceDec=p->m_CurrencyPriceDec;
m_CurrencyLocal=p->m_CurrencyLocal;
m_CurrencyCarry=p->m_CurrencyCarry;
m_CurrencySym=p->m_CurrencySym ;
m_CurrencyPos=p->m_CurrencyPos;
BackupValue();
}
int TsdCurrency::Query()
{
AnsiString m_SqlStr;
m_SqlStr=QueryString;
if(FilterString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" where "+FilterString;
if(OrderString.IsEmpty()==false)
m_SqlStr=m_SqlStr+" Order by "+OrderString;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add(m_SqlStr);
m_Query->Open();
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
TsdCurrency *p=new TsdCurrency();
SetActionID(1); // for browsing only
p->Assign(this);
AddRecord((void *)p,p->CurrencyCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
bool TsdCurrency::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="SELECT * FROM SDCurrency 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_Query->Close();
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -