📄 emdoc.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define _YW_SDERP_DLL
#include "Emdoc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//**************************************
// TKSFat 设备分类码
//**************************************
//--------------------------------------------------------------
void __fastcall TKSFat:: SetFatCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("设备分类码不能为空");
if(value.Length()>18)
throw Exception("设备分类码长度不能超过18");
m_FatCode=value;
}
void __fastcall TKSFat:: SetFatItem(AnsiString value)
{
if(value.IsEmpty())
throw Exception("本级编码不能为空");
if(value.Length()>18)
throw Exception("本级编码长度不能超过18");
if (value!=m_FatItem)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT * FROM SDFat WHERE FatCode='"+Trim(m_FatUpperCode)+Trim(value)+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("本级编码已经已存在");
}
m_Query->Close();
}
m_FatItem=value;
}
void __fastcall TKSFat:: SetFatUpperCode(AnsiString value)
{
if(value.Length()>18)
throw Exception("上级设备分类编码长度不能超过18");
if(value.IsEmpty())
{
m_FatUpperCode="";
m_FatLevel=1;
return;
}
if (value!=m_FatUpperCode)
{
int mLevel;
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select FatLevel from sdFat where FatCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
mLevel = m_Query->FieldValues["FatLevel"];
else
{
m_Query->Close();
throw Exception("上级编码不存在");
}
mLevel = mLevel+1;
m_FatLevel = mLevel;
m_FatUpperCode = value;
m_Query->Close();
}
}
void __fastcall TKSFat:: SetFatLevel(int value)
{
if(value<=0)
throw Exception("编码级别不能小于等于零");
m_FatLevel=value;
}
void __fastcall TKSFat:: SetFatName(AnsiString value)
{
if(value.IsEmpty())
throw Exception("分类名称不能为空");
if(value.Length()>20)
throw Exception("分类名称长度不能超过20");
if(value!=m_FatName)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT Fatname FROM SDFat WHERE fatname='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("分类名称'"+value+"'未定义");
}
m_Query->Close();
}
m_FatName=value;
}
void __fastcall TKSFat:: SetFatEnd(int value)
{
if(value!=0&&value!=1)
throw Exception("末级标志只能取值0-非末级 1-末级");
if(value==1&& b_FatLevel==m_FatLevel)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select * from sdfat where FATUPPERCODE='"+m_FatCode+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("本级分类码已有下级不能设置为末级");
}
m_Query->Close();
}
m_FatEnd=value;
}
void __fastcall TKSFat:: SetFatFadmCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("折旧方法不能为空");
if(value.Length()>18)
throw Exception("折旧方法长度不能超过18");
if (value!=m_FatFadmCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT fadmcode FROM sdFadm where fadmcode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<1 )
{
m_Query->Close();
throw Exception("折旧方法未定义");
}
m_Query->Close();
}
m_FatFadmCode=value;
}
void __fastcall TKSFat:: SetFatPeriod(int value)
{
if (value<=0)
throw Exception("使用年限不能小于等于零");
m_FatPeriod=value;
}
void __fastcall TKSFat:: SetFatValRate(double value)
{
if (value<=0)
throw Exception("残值率不能小于等于零");
m_FatValRate=value;
}
void __fastcall TKSFat:: SetFatFacsCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("卡片样式编码不能为空");
if(value.Length()>18)
throw Exception("卡片样式编码长度不能超过18");
if (value!=m_FatFacsCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT facscode FROM sdFacs where facscode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<1 )
{
m_Query->Close();
throw Exception("卡片样式编码'"+value+"'未定义");
}
m_Query->Close();
}
m_FatFacsCode=value;
}
//---------------------------------------------------------------------------
AnsiString TKSFat::GetFieldValue(euFat sdFieldName)
{
switch(sdFieldName)
{
case fiFatCode:
return FatCode;
case fiFatItem:
return FatItem;
case fiFatUpperCode:
return FatUpperCode;
case fiFatLevel:
return FatLevel;
case fiFatName:
return FatName;
case fiFatEnd:
return FatEnd;
case fiFatFadmCode:
return FatFadmCode;
case fiFatPeriod:
return FatPeriod;
case fiFatValRate:
return FatValRate;
case fiFatFacsCode:
return FatFacsCode;
default:
throw Exception("当前未定义可取值");
}
}
//---------------------------------------------------------------------------
void TKSFat::SetFieldValue(euFat sdFieldName, AnsiString value)
{
switch(sdFieldName)
{
case fiFatCode:
FatCode=value;
break;
case fiFatItem:
FatItem=value;
break;
case fiFatUpperCode:
FatUpperCode=value;
break;
case fiFatLevel:
FatLevel=value.ToInt();
break;
case fiFatName:
FatName=value;
break;
case fiFatEnd:
FatEnd=value.ToInt();
break;
case fiFatFadmCode:
FatFadmCode=value;
break;
case fiFatPeriod:
FatPeriod=value.ToInt();
break;
case fiFatValRate:
FatValRate=value.ToDouble();
break;
case fiFatFacsCode:
FatFacsCode=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TKSFat::TKSFat(TDataComm *DC)
:TKSStandard(DC)
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdFat";
FilterString="";
OrderString="FatCode";
}
catch(Exception &e)
{
throw Exception("设备类别初始化出错");
}
}
//---------------------------------------------------------------------------
TKSFat::TKSFat()
:TKSStandard()
{
try
{
EmptyValue(0);
EmptyValue(1);
QueryString="SELECT * FROM sdFat";
FilterString="";
OrderString="FatCode";
}
catch(Exception &e)
{
throw Exception("设备类别初始化出错");
}
}
//---------------------------------------------------------------------------
TKSFat::~TKSFat()
{
try{
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TKSFat::BackupValue()
{
b_FatCode=m_FatCode;
b_FatItem=m_FatItem;
b_FatUpperCode=m_FatUpperCode;
b_FatLevel=m_FatLevel;
b_FatName=m_FatName;
b_FatEnd=m_FatEnd;
b_FatFadmCode=m_FatFadmCode;
b_FatPeriod=m_FatPeriod;
b_FatValRate=m_FatValRate;
b_FatFacsCode=m_FatFacsCode;
}
//---------------------------------------------------------------------------
void TKSFat::RestoreValue()
{
m_FatCode=b_FatCode;
m_FatItem=b_FatItem;
m_FatUpperCode=b_FatUpperCode;
m_FatLevel=b_FatLevel;
m_FatName=b_FatName;
m_FatEnd=b_FatEnd;
m_FatFadmCode=b_FatFadmCode;
m_FatPeriod=b_FatPeriod;
m_FatValRate=b_FatValRate;
m_FatFacsCode=b_FatFacsCode;
}
//---------------------------------------------------------------------------
void TKSFat::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_FatCode="";
m_FatItem="";
m_FatUpperCode="";
m_FatLevel=0;
m_FatName="";
m_FatEnd=0;
m_FatFadmCode="";
m_FatPeriod=0;
m_FatValRate=0;
m_FatFacsCode="";
break;
case 1:
b_FatCode="";
b_FatItem="";
b_FatUpperCode="";
b_FatLevel=0;
b_FatName="";
b_FatEnd=0;
b_FatFadmCode="";
b_FatPeriod=0;
b_FatValRate=0;
b_FatFacsCode="";
break;
}
}
//---------------------------------------------------------------------------
void TKSFat::BatchLetValue()
{
m_FatCode=m_Query->FieldValues["FatCode"];
m_FatItem=m_Query->FieldValues["FatItem"];
m_FatUpperCode=m_Query->FieldValues["FatUpperCode"];
m_FatLevel=m_Query->FieldValues["FatLevel"];
m_FatName=m_Query->FieldValues["FatName"];
m_FatEnd=m_Query->FieldValues["FatEnd"];
m_FatFadmCode=m_Query->FieldValues["FatFadmCode"];
m_FatPeriod=m_Query->FieldValues["FatPeriod"];
m_FatValRate=m_Query->FieldValues["FatValRate"];
m_FatFacsCode=m_Query->FieldValues["FatFacsCode"];
BackupValue();
}
//---------------------------------------------------------------------------
void TKSFat::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
m_FatCode=Trim(m_FatUpperCode)+Trim(m_FatItem);
if(m_FatCode.IsEmpty()==true)
throw Exception("设备分类码不能为空!");
m_StoredProc->Close();
if(CurStatus==2||CurStatus==4)
{
m_StoredProc->ProcedureName="sdFat_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@FatCode",ftString,pdInput,18,m_FatCode);
m_StoredProc->Parameters->CreateParameter("@FatItem",ftString,pdInput,18,m_FatItem);
m_StoredProc->Parameters->CreateParameter("@FatUpperCode",ftString,pdInput,18,m_FatUpperCode);
m_StoredProc->Parameters->CreateParameter("@FatLevel",ftInteger,pdInput,10,m_FatLevel);
m_StoredProc->Parameters->CreateParameter("@FatName",ftString,pdInput,20,m_FatName);
m_StoredProc->Parameters->CreateParameter("@FatEnd",ftInteger,pdInput,1,m_FatEnd);
m_StoredProc->Parameters->CreateParameter("@FatFadmCode",ftString,pdInput,18,m_FatFadmCode);
m_StoredProc->Parameters->CreateParameter("@FatPeriod",ftInteger,pdInput,10,m_FatPeriod);
m_StoredProc->Parameters->CreateParameter("@FatValRate",ftFloat,pdInput,12,m_FatValRate);
m_StoredProc->Parameters->CreateParameter("@FatFacsCode",ftString,pdInput,18,m_FatFacsCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
else
{
m_StoredProc->ProcedureName="sdFat_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_FatCode",ftString,pdInput,18,b_FatCode);
m_StoredProc->Parameters->CreateParameter("@FatCode",ftString,pdInput,18,m_FatCode);
m_StoredProc->Parameters->CreateParameter("@FatItem",ftString,pdInput,18,m_FatItem);
m_StoredProc->Parameters->CreateParameter("@FatUpperCode",ftString,pdInput,18,m_FatUpperCode);
m_StoredProc->Parameters->CreateParameter("@FatLevel",ftInteger,pdInput,10,m_FatLevel);
m_StoredProc->Parameters->CreateParameter("@FatName",ftString,pdInput,20,m_FatName);
m_StoredProc->Parameters->CreateParameter("@FatEnd",ftInteger,pdInput,1,m_FatEnd);
m_StoredProc->Parameters->CreateParameter("@FatFadmCode",ftString,pdInput,18,m_FatFadmCode);
m_StoredProc->Parameters->CreateParameter("@FatPeriod",ftInteger,pdInput,10,m_FatPeriod);
m_StoredProc->Parameters->CreateParameter("@FatValRate",ftFloat,pdInput,12,m_FatValRate);
m_StoredProc->Parameters->CreateParameter("@FatFacsCode",ftString,pdInput,18,m_FatFacsCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
}
TKSFat *p=new TKSFat();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->FatCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->FatCode,this->b_FatCode);
}
}
//---------------------------------------------------------------------------
void TKSFat::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_FatCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdFat_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_FatCode",ftString,pdInput,18,b_FatCode);
m_StoredProc->ExecProc();
m_StoredProc->Close();
DeleteRecord(this->b_FatCode);
}
//---------------------------------------------------------------------------
void TKSFat::Assign(TKSFat *p)
{
this->SetActionID(p->CurStatus);
this->m_FatCode=p->m_FatCode;
this->m_FatItem=p->m_FatItem;
this->m_FatUpperCode=p->m_FatUpperCode;
this->m_FatLevel=p->m_FatLevel;
this->m_FatName=p->m_FatName;
this->m_FatEnd=p->m_FatEnd;
this->m_FatFadmCode=p->m_FatFadmCode;
this->m_FatPeriod=p->m_FatPeriod;
this->m_FatValRate=p->m_FatValRate;
this->m_FatFacsCode=p->m_FatFacsCode;
this->BackupValue();
}
//---------------------------------------------------------------------------
void TKSFat::AssignValue()
{
TKSFat *p=(TKSFat *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TKSFat::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();
TKSFat *p=new TKSFat();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->FatCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TKSFat::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdFat where "+WhereStr;
m_Query->Close();
m_Query->SQL->Clear();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -