📄 rpt.cpp
字号:
bool TsdRptTempleth::LocateItemByKey(AnsiString Key)
{
return m_sdRptTempletd->LocateByKey(Key);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::BackupValue()
{
b_sdRptTempletd=m_sdRptTempletd;
b_RptTemplethCode=m_RptTemplethCode;
b_RptTemplethName=m_RptTemplethName;
b_RptTemplethDesc=m_RptTemplethDesc;
b_RptTemplethClassID=m_RptTemplethClassID;
b_RptTemplethView=m_RptTemplethView;
b_RptTemplethUser=m_RptTemplethUser;
b_RptTemplethSysDate=m_RptTemplethSysDate;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::RestoreItem()
{
if(CurItemStatus==4||CurItemStatus==5)
m_sdRptTempletd->RestoreValue();
}
void TsdRptTempleth::RestoreValue()
{
m_sdRptTempletd=b_sdRptTempletd;
m_RptTemplethCode=b_RptTemplethCode;
m_RptTemplethName=b_RptTemplethName;
m_RptTemplethDesc=b_RptTemplethDesc;
m_RptTemplethClassID=b_RptTemplethClassID;
m_RptTemplethView=b_RptTemplethView;
m_RptTemplethUser=b_RptTemplethUser;
m_RptTemplethSysDate=b_RptTemplethSysDate;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::EmptyValue(int Index)
{
switch(Index)
{
case 0:
m_sdRptTempletd=NULL;
m_RptTemplethCode="";
m_RptTemplethName="";
m_RptTemplethDesc="";
m_RptTemplethClassID="";
m_RptTemplethView="";
m_RptTemplethUser="";
m_RptTemplethSysDate="";
break;
case 1:
b_sdRptTempletd=NULL;
b_RptTemplethCode="";
b_RptTemplethName="";
b_RptTemplethDesc="";
b_RptTemplethClassID="";
b_RptTemplethView="";
b_RptTemplethUser="";
b_RptTemplethSysDate="";
break;
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::BatchLetValue()
{
m_RptTemplethCode=m_Query->FieldValues["RptTemplethCode"];
m_RptTemplethName=m_Query->FieldValues["RptTemplethName"];
m_RptTemplethDesc=m_Query->FieldValues["RptTemplethDesc"];
m_RptTemplethClassID=m_Query->FieldValues["RptTemplethClassID"];
m_RptTemplethView=m_Query->FieldValues["RptTemplethView"];
m_RptTemplethUser=m_Query->FieldValues["RptTemplethUser"];
m_RptTemplethSysDate=m_Query->FieldValues["RptTemplethSysDate"];
BackupValue();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Assign(TsdRptTempleth *p)
{
this->SetActionID(p->CurStatus);
this->m_sdRptTempletd=p->m_sdRptTempletd;
this->m_RptTemplethCode=p->m_RptTemplethCode;
this->m_RptTemplethName=p->m_RptTemplethName;
this->m_RptTemplethDesc=p->m_RptTemplethDesc;
this->m_RptTemplethClassID=p->m_RptTemplethClassID;
this->m_RptTemplethView=p->m_RptTemplethView;
this->m_RptTemplethUser=p->m_RptTemplethUser;
this->m_RptTemplethSysDate=p->m_RptTemplethSysDate;
if(this->CurStatus==3)
{
this->b_sdRptTempletd=p->b_sdRptTempletd;
this->b_RptTemplethCode=p->b_RptTemplethCode;
this->b_RptTemplethName=p->b_RptTemplethName;
this->b_RptTemplethDesc=p->b_RptTemplethDesc;
this->b_RptTemplethClassID=p->b_RptTemplethClassID;
this->b_RptTemplethView=p->b_RptTemplethView;
this->b_RptTemplethUser=p->b_RptTemplethUser;
this->b_RptTemplethSysDate=p->b_RptTemplethSysDate;
}
else
this->BackupValue();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AssignValue()
{
TsdRptTempleth *p=(TsdRptTempleth *)Records(CurRecNo);
Assign(p);
}
//---------------------------------------------------------------------------
int TsdRptTempleth::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();
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete m_sdRptTempletd;
}
ClearRecord();
if(m_Query->RecordCount>0)
{
m_Query->First();
while(!m_Query->Eof)
{
BatchLetValue();
NewDetail();
m_sdRptTempletd->FilterString="RptTempletdCode='"+m_RptTemplethCode+"'";
m_sdRptTempletd->OrderString="RptTempletdNo";
m_sdRptTempletd->Query();
TsdRptTempleth *p=new TsdRptTempleth();
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->RptTemplethCode);
m_Query->Next();
}
MoveFirst();
}
m_Query->Close();
return Count;
}
//---------------------------------------------------------------------------
bool TsdRptTempleth::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdRptTempleth 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_sdRptTempletd->FilterString="RptTempletdCode='"+m_RptTemplethCode+"'";
m_sdRptTempletd->OrderString="RptTempletdLine";
m_sdRptTempletd->Query();
m_Query->Close();
return true;
}
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempleth::GetItemValue(euRptTempletd FieldName)
{
return m_sdRptTempletd->GetFieldValue(FieldName);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::SetItemValue(euRptTempletd FieldName, AnsiString value)
{
m_sdRptTempletd->SetFieldValue(FieldName,value);
}
//---------------------------------------------------------------------------
int __fastcall TsdRptTempleth::GetItemCount()
{
if(m_sdRptTempletd)
return m_sdRptTempletd->Count;
else
return 0;
}
//---------------------------------------------------------------------------
int __fastcall TsdRptTempleth::GetCurItemNo()
{
return m_sdRptTempletd->CurRecNo;
}
//---------------------------------------------------------------------------
char __fastcall TsdRptTempleth::GetCurItemStatus()
{
return m_sdRptTempletd->CurStatus;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TsdRptTempleth::GetItemBookMark()
{
return m_sdRptTempletd->BookMark;
}
//---------------------------------------------------------------------------
void TsdRptTempleth::NewDetail()
{
m_sdRptTempletd=new TsdRptTempletd(DataComm);
}
void TsdRptTempleth::DeleteDetail()
{
delete m_sdRptTempletd;
}
//**************************************
// TsdRptTempletd
//**************************************
//--------------------------------------------------------------
void __fastcall TsdRptTempletd:: SetRptTempletdCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板代码不能为空");
m_RptTempletdCode=value;
}
void __fastcall TsdRptTempletd:: SetRptTempletdField(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板字段名不能为空");
if (value!=m_RptTempletdField)
{
if(FindKey(AnsiString(value)))
{
throw Exception("该字段已存在!");
}
else
m_RptTempletdField=value;
}
}
void __fastcall TsdRptTempletd:: SetRptTempletdName(AnsiString value)
{
if(value.IsEmpty())
throw Exception("字段名称不能为空");
m_RptTempletdName=value;
}
void __fastcall TsdRptTempletd:: SetRptTempletdDesc(AnsiString value)
{ m_RptTempletdDesc=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdType(AnsiString value)
{
if(value.IsEmpty())
throw Exception("字段类型不能为空");
m_RptTempletdType=value;
}
void __fastcall TsdRptTempletd:: SetRptTempletdFlg(int value)
{
if(value!=m_RptTempletdFlg)
{
/* if(value==0)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT * FROM SDVField WHERE VFieldName='"+m_RptTempletdField+"' and VFieldView=(select RptTemplethView from sdRptTempleth where RptTemplethCode='"+m_RptTempletdCode+"')");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("模板字段'"+m_RptTempletdField+"'在视图中不存在");
}
m_Query->Close();
}*/
m_RptTempletdFlg=value;
}
}
void __fastcall TsdRptTempletd:: SetRptTempletdExpr(AnsiString value)
{
if(m_RptTempletdFlg==1)
{
if(value.IsEmpty())
throw Exception("虚拟字段表达式不能为空");
m_RptTempletdExpr=value;
}
else
m_RptTempletdExpr="";
}
void __fastcall TsdRptTempletd:: SetRptTempletdWidth(int value)
{ m_RptTempletdWidth=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdScale(int value)
{ m_RptTempletdScale=value;}
void __fastcall TsdRptTempletd:: SetRptTempletdNo(int value)
{
if(value<1)
throw Exception("行号不能小于零");
if(value!=m_RptTempletdNo)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT * FROM SDRptTempletd WHERE RptTempletdNo=" +IntToStr(value)+" and RptTempletdCode='"+m_RptTempletdCode+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("模板字段序号'"+IntToStr(value)+"'已存在");
}
m_Query->Close();
m_RptTempletdNo=value;
}
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempletd::GetFieldValue(euRptTempletd sdFieldName)
{
switch(sdFieldName)
{
case fiRptTempletdCode:
return RptTempletdCode;
case fiRptTempletdField:
return RptTempletdField;
case fiRptTempletdName:
return RptTempletdName;
case fiRptTempletdDesc:
return RptTempletdDesc;
case fiRptTempletdType:
return RptTempletdType;
case fiRptTempletdFlg:
return RptTempletdFlg;
case fiRptTempletdExpr:
return RptTempletdExpr;
case fiRptTempletdWidth:
return RptTempletdWidth;
case fiRptTempletdScale:
return RptTempletdScale;
case fiRptTempletdNo:
return RptTempletdNo;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempletd::GetOldFieldValue(euRptTempletd sdFieldName)
{
switch(sdFieldName)
{
case fiRptTempletdCode:
return b_RptTempletdCode;
case fiRptTempletdField:
return b_RptTempletdField;
case fiRptTempletdName:
return b_RptTempletdName;
case fiRptTempletdDesc:
return b_RptTempletdDesc;
case fiRptTempletdType:
return b_RptTempletdType;
case fiRptTempletdFlg:
return b_RptTempletdFlg;
case fiRptTempletdExpr:
return b_RptTempletdExpr;
case fiRptTempletdWidth:
return b_RptTempletdWidth;
case fiRptTempletdScale:
return b_RptTempletdScale;
case fiRptTempletdNo:
return b_RptTempletdNo;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdRptTempletd::SetFieldValue(euRptTempletd sdFieldName, AnsiString value)
{
value=Trim(value);
switch(sdFieldName)
{
case fiRptTempletdCode:
RptTempletdCode=value;
break;
case fiRptTempletdField:
RptTempletdField=value;
break;
case fiRptTempletdName:
RptTempletdName=value;
break;
case fiRptTempletdDesc:
RptTempletdDesc=value;
break;
case fiRptTempletdType:
RptTempletdType=value;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -