📄 runreportinfo.cs
字号:
using System;
using System.Data;
using System.Data.OleDb;
namespace TreeReportApp
{
/// <summary>
/// RunReportInfo 的摘要:报表管理及配置信息的数据实体类
/// 当前报表的管理、可配置、用户配置、搜索条件配置等集中信息对象
/// </summary>
public class RunReportInfo
{
/// <summary>
//当前报表的管理、可配置、用户配置、搜索条件配置等集中信息(数据集)
/// </summary>
public DataSet infodataset;
private OleDbDataAdapter adapter_manageinfo,adapter_dictioninfo,adapter_configurabl,adapter_configinfo,adapter_searchfields;
/// <summary>
//从数居字典中得到的数据源SQL,或原报表布局文件的数据源SQL
/// </summary>
public string datasourceSQL = "";
/// <summary>
//标明从数居字典中得到的数据源SQL,是否是特别定义的SQLStr
/// </summary>
public bool IsNotSqlStrInDict = true;
public RunReportInfo()
{
infodataset = new DataSet("reportinfo");
}
/// <summary>
/// readReportInfo(string report_id) -- 从数据库中读取报表信息
/// </summary>
public bool readReportInfoFromDB(string report_id)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = TreeConnection.connstr;
conn.Open();
bool resultflag = true;
try
{
infodataset.Clear();
adapter_manageinfo = new OleDbDataAdapter("SELECT * FROM ReportsManage WHERE ReportID='"+report_id+"'",conn);
adapter_manageinfo.Fill(infodataset,"ManageInfo");
adapter_configurabl = new OleDbDataAdapter("SELECT * FROM Reportsconfigurable WHERE ReportID='"+report_id+"'",conn);
adapter_configurabl.Fill(infodataset,"Configurable");
adapter_configinfo = new OleDbDataAdapter("SELECT * FROM ReportsUserConfigInfo WHERE ReportID='"+report_id+"'",conn);
adapter_configinfo.Fill(infodataset,"ConfigInfo");
adapter_searchfields = new OleDbDataAdapter("SELECT * FROM ReportSearchField WHERE ReportID='"+report_id+"'",conn);
adapter_searchfields.Fill(infodataset,"Searchfields");
string datadict_id = ""+this.getManageInfo().Rows[0]["BusinessDictID"];
adapter_dictioninfo = new OleDbDataAdapter("SELECT ItemName,EItemDescription,CItemDescription,HItemDescription FROM TreeDbObjectInfos_items WHERE ObjectName='"+datadict_id+"'",conn);
adapter_dictioninfo.Fill(infodataset,"DictionInfo");
//建立可配置信息与配置信息的关系
//DataColumn[] parentCols = new DataColumn[2];
//DataColumn[] childCols = new DataColumn[2];
//parentCols(0) = infodataset.Tables["Configurable"].Columns["ReportID"];
//parentCols(1) = infodataset.Tables["Configurable"].Columns["ControlID"];
//childCols(0) = infodataset.Tables["ConfigInfo"].Columns["ReportID"];
//childCols(1) = infodataset.Tables["ConfigInfo"].Columns["ControlID"];
//DataRelation configrelation = new DataRelation("config", parentCols, childCols);
}
catch
{
resultflag = false;
}
conn.Close();
return resultflag;
}
/// <summary>
/// getManageInfo() -- 取管理信息
/// </summary>
public DataTable getManageInfo()
{
return infodataset.Tables["ManageInfo"];
}
/// <summary>
/// getDictionInfo() -- 取数据字典信息
/// </summary>
public DataTable getDictionInfo()
{
return infodataset.Tables["DictionInfo"];
}
/// <summary>
/// getConfigurableInfo() -- 取可配置信息
/// </summary>
public DataTable getConfigurableInfo()
{
return infodataset.Tables["Configurable"];
}
/// <summary>
/// getConfigInfo() -- 取配置信息
/// </summary>
public DataTable getConfigInfo()
{
return infodataset.Tables["ConfigInfo"];
}
/// <summary>
/// getConfigInfoRow -- 取配置信息
/// </summary>
public DataRow getConfigInfoRow(string control_id)
{
DataRow[] inforows = infodataset.Tables["ConfigInfo"].Select("ControlID='"+control_id +"'");
if(inforows.Length==0)
return null;
else
return inforows[0];
}
/// <summary>
/// getSearchfieldsInfo() -- 取搜索条件信息
/// </summary>
public DataTable getSearchfieldsInfo()
{
return infodataset.Tables["Searchfields"];
}
/// <summary>
/// getConfigurableRow -- //查看可配置信息
/// </summary>
public DataRow getConfigurableRow( string control_id)
{
DataRow[] configurablerows = getConfigurableInfo().Select("ControlID='"+control_id+"'");
if (configurablerows.Length==0)
return null;
return configurablerows[0];
}
/// <summary>
/// saveUserConfigInfo() -- 保存配置信息
/// </summary>
public void saveUserConfigInfo()
{
OleDbCommandBuilder cmdbuilder = new OleDbCommandBuilder(adapter_configinfo);
adapter_configinfo.Update(infodataset,"ConfigInfo");
}
/// <summary>
/// IsExistReportInfo(string report_id) -- 数据库中是否存在报表信息
/// </summary>
public int IsExistReportInfo(string report_id)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = TreeConnection.connstr;
conn.Open();
OleDbCommand cmd = new OleDbCommand("SELECT count(*) FROM ReportsManage WHERE ReportID='"+report_id+"'",conn);
int resultval = Convert.ToInt32(cmd.ExecuteScalar().ToString());
conn.Close();
return resultval;
}
/// <summary>
/// getDataSourceSQLFromReportInfo -- 从报表信息中取出数据源SQL,并存放在datasourceSQL
/// </summary>
public bool readDataSourceSQLFromReportInfo()
{
//如果设置了数据字典,则数据字典优先,原数据源被丢弃,用数据字典重设,此函数要返回SQL
datasourceSQL = "";
string datadictid = ""+this.getManageInfo().Rows[0]["BusinessDictID"];
//如果没有设置数据字典,返回空串的SQL,使用布局文件中原带的SQL
if(datadictid.Length==0)
return false;
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = TreeConnection.connstr;
conn.Open();
//查找字典表中,此字典是否定义了特别的SQL串,应休选使用定义了的SQL串,没有SQL串,就把字典ID当表名或视图名
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand("select ObjectName,EDescription,CDescription,HDescription,SQLStr from TreeDbObjectInfos where ObjectName='"+ datadictid +"'",conn);
System.Data.OleDb.OleDbDataReader rd = cmd.ExecuteReader();
//查数据字典
if(rd.Read())
{
datasourceSQL = "" + rd["SQLStr"];
}
rd.Close();
conn.Close();
//如果数据字典中设置了SQL语句,则使用SQL语句,否则使用datadictid作为表名或视图名
if (datasourceSQL.Trim().Length>0)
{
IsNotSqlStrInDict = false;
}
else
{
datasourceSQL = datadictid;
IsNotSqlStrInDict = true;
}
return true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -