📄 rpt.cpp
字号:
//---------------------------------------------------------------------------
bool TsdReport::Find(AnsiString WhereStr)
{
AnsiString m_SqlStr;
if(WhereStr.IsEmpty()==true)
throw Exception("查找表达式不能为空");
m_SqlStr="select * from sdReport 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;
}
}
//**************************************
// TsdRptTempleth
//**************************************
//--------------------------------------------------------------
void __fastcall TsdRptTempleth:: SetRptTemplethCode(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板代码不能为空");
if(value.Length()>18)
throw Exception("报表模板代码长度不能大于18字节");
if(value.UpperCase()!=m_RptTemplethCode.UpperCase())
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select RptTemplethCode from sdRptTempleth where RptTemplethCode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_Query->Close();
throw Exception("该报表模板编号:'"+value+"'已经存在!");
}
m_Query->Close();
}
m_RptTemplethCode=value;
}
void __fastcall TsdRptTempleth:: SetRptTemplethName(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板名称不能为空");
m_RptTemplethName=value;
}
void __fastcall TsdRptTempleth:: SetRptTemplethDesc(AnsiString value)
{
m_RptTemplethDesc=value;
}
void __fastcall TsdRptTempleth:: SetRptTemplethClassID(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板所属模块不能为空");
m_RptTemplethClassID=value;
}
void __fastcall TsdRptTempleth:: SetRptTemplethView(AnsiString value)
{
if(value.IsEmpty())
throw Exception("报表模板视图不能为空");
if(value!=m_RptTemplethView)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select ViewClassID from sdView where ViewName='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount>0)
{
m_RptTemplethView=value;
m_RptTemplethClassID=m_Query->FieldValues["ViewClassID"];
m_Query->Close();
}
else
throw Exception("该视图未注册或不存在");
}
}
void __fastcall TsdRptTempleth:: SetRptTemplethUser(AnsiString value)
{
m_RptTemplethUser=value;
}
//---------------------------------------------------------------------------
AnsiString TsdRptTempleth::GetFieldValue(euRptTempleth sdFieldName)
{
switch(sdFieldName)
{
case fiRptTemplethCode:
return RptTemplethCode;
case fiRptTemplethName:
return RptTemplethName;
case fiRptTemplethDesc:
return RptTemplethDesc;
case fiRptTemplethClassID:
return RptTemplethClassID;
case fiRptTemplethView:
return RptTemplethView;
case fiRptTemplethUser:
return RptTemplethUser;
case fiRptTemplethSysDate:
return RptTemplethSysDate;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::SetFieldValue(euRptTempleth sdFieldName, AnsiString value)
{
value=Trim(value);
switch(sdFieldName)
{
case fiRptTemplethCode:
RptTemplethCode=value;
break;
case fiRptTemplethName:
RptTemplethName=value;
break;
case fiRptTemplethDesc:
RptTemplethDesc=value;
break;
case fiRptTemplethClassID:
RptTemplethClassID=value;
break;
case fiRptTemplethView:
RptTemplethView=value;
break;
case fiRptTemplethUser:
RptTemplethUser=value;
break;
default:
throw Exception("当前字段未定义可赋值");
}
}
//---------------------------------------------------------------------------
TsdRptTempleth::TsdRptTempleth(TDataComm *DC)
:TsdHead(DC)
{
try
{
/* m_Query=new TQuery(Application);
m_Query->SessionName=pSessionName;
m_Query->DatabaseName=pDatabaseName;
m_StoredProc=new TStoredProc(Application);
m_StoredProc->SessionName =pSessionName;
m_StoredProc->DatabaseName=pDatabaseName;
m_SessionName=pSessionName;
m_DatabaseName=pDatabaseName;*/
QueryString="SELECT * FROM sdRptTempleth";
FilterString="";
OrderString="RptTemplethCode";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
TsdRptTempleth::TsdRptTempleth()
:TsdHead()
{
try
{
/* m_Query=new TQuery(Application);
m_Query->SessionName=pSessionName;
m_Query->DatabaseName=pDatabaseName;
m_StoredProc=new TStoredProc(Application);
m_StoredProc->SessionName =pSessionName;
m_StoredProc->DatabaseName=pDatabaseName;
m_SessionName=pSessionName;
m_DatabaseName=pDatabaseName;*/
QueryString="SELECT * FROM sdRptTempleth";
FilterString="";
OrderString="RptTemplethCode";
EmptyValue(0);
EmptyValue(1);
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}
//---------------------------------------------------------------------------
TsdRptTempleth::~TsdRptTempleth()
{
try{
// delete m_Query;
// delete m_StoredProc;
for(int i=0;i<this->Count;i++)
{
this->LocateByIndex(i);
this->AssignValue();
delete m_sdRptTempletd;
}
}
catch(...)
{
throw Exception("析构函数出错");
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Update()
{
if(CurStatus==0||CurStatus==1)
throw Exception("当前不是编辑状态,不能进行存盘操作!");
if(m_RptTemplethCode.IsEmpty()==true)
throw Exception("单号不能为空!");
if(ItemCount<=0)
throw Exception("单没有定义明细字段");
m_StoredProc->Close();
switch(CurStatus)
{
case 2:
case 4:
m_StoredProc->ProcedureName="sdRptTempleth_Insert";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@RptTemplethCode",ftString,pdInputOutput,18,m_RptTemplethCode);
m_StoredProc->Parameters->CreateParameter("@RptTemplethName",ftString,pdInput,20,m_RptTemplethName);
m_StoredProc->Parameters->CreateParameter("@RptTemplethDesc",ftString,pdInput,40,m_RptTemplethDesc);
m_StoredProc->Parameters->CreateParameter("@RptTemplethClassID",ftString,pdInput,18,m_RptTemplethClassID);
m_StoredProc->Parameters->CreateParameter("@RptTemplethView",ftString,pdInput,20,m_RptTemplethView);
m_StoredProc->Parameters->CreateParameter("@RptTemplethUser",ftString,pdInput,18,m_RptTemplethUser);
m_StoredProc->Parameters->CreateParameter("@RptTemplethSysDate",ftString,pdOutput,30,m_RptTemplethSysDate);
m_StoredProc->ExecProc();
m_RptTemplethCode=m_StoredProc->Parameters->ParamValues["@RptTemplethCode"];
m_RptTemplethSysDate=m_StoredProc->Parameters->ParamValues["@RptTemplethSysDate"];
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
// if(m_sdRptTempletd->CurStatus==2||m_sdRptTempletd->CurStatus==3)
m_sdRptTempletd->SetFieldValue(fiRptTempletdCode,m_RptTemplethCode);
AddToObject();
m_sdRptTempletd->Update();
}
break;
case 3:
m_StoredProc->ProcedureName="sdRptTempleth_Update";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_RptTemplethCode",ftString,pdInput,18,b_RptTemplethCode);
m_StoredProc->Parameters->CreateParameter("@RptTemplethCode",ftString,pdInput,18,m_RptTemplethCode);
m_StoredProc->Parameters->CreateParameter("@RptTemplethName",ftString,pdInput,20,m_RptTemplethName);
m_StoredProc->Parameters->CreateParameter("@RptTemplethDesc",ftString,pdInput,40,m_RptTemplethDesc);
m_StoredProc->Parameters->CreateParameter("@RptTemplethClassID",ftString,pdInput,18,m_RptTemplethClassID);
m_StoredProc->Parameters->CreateParameter("@RptTemplethView",ftString,pdInput,20,m_RptTemplethView);
m_StoredProc->Parameters->CreateParameter("@RptTemplethUser",ftString,pdInput,18,m_RptTemplethUser);
m_StoredProc->Parameters->CreateParameter("@RptTemplethSysDate",ftString,pdOutput,30,m_RptTemplethSysDate);
m_StoredProc->ExecProc();
m_RptTemplethSysDate=m_StoredProc->Parameters->ParamValues["@RptTemplethSysDate"];
break;
case 5:
case 6:
for(int i=0;i<ItemCount;i++)
{
LocateItemByIndex(i);
if(m_sdRptTempletd->CurStatus==2||m_sdRptTempletd->CurStatus==3)
m_sdRptTempletd->Update();
}
break;
}
TsdRptTempleth *p=new TsdRptTempleth();
if(CurStatus==2)
{
SetActionID(1);
p->Assign(this);
AddRecord((void *)p,p->RptTemplethCode);
}
else
{
SetActionID(1);
p->Assign(this);
ChangeRecord((void *)p,p->RptTemplethCode,this->b_RptTemplethCode);
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::Delete()
{
if(CurStatus!=1)
throw Exception("当前状态不能进行删除操作!");
if(m_RptTemplethCode.IsEmpty()==true)
throw Exception("当前没有记录可以删除!");
m_StoredProc->Close();
m_StoredProc->ProcedureName="sdRptTempleth_Delete";
m_StoredProc->Parameters->Clear();
m_StoredProc->Parameters->CreateParameter("@W_RptTemplethCode",ftString,pdInput,18,b_RptTemplethCode);
m_StoredProc->ExecProc();
DeleteRecord(this->b_RptTemplethCode);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AddItem()
{
m_sdRptTempletd->AddNew();
if(CurStatus!=2)
SetActionID(5);
}
//---------------------------------------------------------------------------
void TsdRptTempleth::InsertItem()
{
/* m_sdField->AddNew();
TsdField *p=new TsdField(DataComm);
p->Assign(m_sdField);
if(CurStatus==2)
m_sdField->AddRecord((void *)p,p->GetFieldValue(fiFieldName));
else
m_sdField->Update();
*/
}
//---------------------------------------------------------------------------
void TsdRptTempleth::EditItem()
{
if(CurStatus==1)
{
m_sdRptTempletd->Edit();
SetActionID(6);
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::DeleteItem()
{
if(CurStatus==2||CurStatus==5)
m_sdRptTempletd->DeleteRecord(m_sdRptTempletd->Key);
else
m_sdRptTempletd->Delete();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::RemoveItem()
{
if(CurStatus==2||CurStatus==5)
m_sdRptTempletd->RemoveRecord(m_sdRptTempletd->Index);
else
m_sdRptTempletd->Delete();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::ClearItem()
{
int iCount;
if(CurStatus==2)
m_sdRptTempletd->ClearRecord();
else
{
iCount=m_sdRptTempletd->Count;
for(int i=0;i<iCount;i++)
{
m_sdRptTempletd->LocateByIndex(0);
m_sdRptTempletd->Delete();
}
}
}
//---------------------------------------------------------------------------
void TsdRptTempleth::CancelItem()
{
m_sdRptTempletd->Cancel();
}
//---------------------------------------------------------------------------
void TsdRptTempleth::AddToObject()
{
TsdRptTempletd *p=new TsdRptTempletd();
p->Assign(m_sdRptTempletd);
if(m_sdRptTempletd->FindKey(m_sdRptTempletd->GetOldFieldValue(fiRptTempletdField)))
m_sdRptTempletd->ChangeRecord((void*)p,p->GetFieldValue(fiRptTempletdField),m_sdRptTempletd->GetOldFieldValue(fiRptTempletdField));
else
m_sdRptTempletd->AddRecord((void *)p,p->GetFieldValue(fiRptTempletdField));
}
//---------------------------------------------------------------------------
bool TsdRptTempleth::LocateItemByIndex(int Index)
{
return m_sdRptTempletd->LocateByIndex(Index);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -