public bool Upgrade() { ColumnCollection oldcolumns = null; BusinessObject BO = null; object dsid = SqlHelper.ExecuteScalar(_metastring, "select DataSourceID from uap_report where id='" + _reportid + "'"); if (dsid != null) { oldcolumns = ((QueryFunction)BO.Functions[0]).QuerySettings[0].QueryResultTable.Columns; //((QueryFunction)BO.Functions[0]).QuerySettings[0].QueryResultTable.Columns=new ColumnCollection(); } else { //new bo } ColumnCollection newcolumns = ((QueryFunction)BO.Functions[0]).QuerySettings[0].QueryResultTable.Columns; //获取老报表数据,考虑列的顺序 SqlDataReader reader = SqlHelper.ExecuteReader(_datastring, "select ,, from rpt order by orderid"); while (reader.Read()) { string columnname = reader["ColumnName"].ToString(); TableColumn column = AlreadyInColumns(columnname, oldcolumns); if (column != null) { newcolumns.Add(column); } else//不存在则加进去 { DataTypeEnum dt = GetDataType(); string desc = null; column = new TableColumn(columnname, dt, desc); newcolumns.Add(column); } } ConfigureServiceProxy c = new ConfigureServiceProxy(); c.UpdateBusinessObject(BO); UpgradeReport ur = new UpgradeReport(); ur.DataSourceID = BO.MetaID; //创建BusinessObject对象,并调用Save方法 //创建Report对象,并调用Save方法 //reportengine //Report report=reportengine.DesignReport() //reportengine.UpgradeSave(report,ref commonxml,ref cnxml,ref twxml,ref enxml); //if rpt_id在meta库中UAP_Report表不存在 //BusinessObject BO = new BusinessObject(); //else rpt_id在meta库中UAP_Report表存在 //ConfigureServiceProxy proxy =new ConfigureServiceProxy(); //proxy.GetBusinessObject() ur.Save(); return(true); }
/// <summary> /// 升级861报表 /// </summary> public void Upgrade(string id) { try { string[] elements = this.GetSubIdAndReportName(id); UpgradeReportMetaWrapper urmw = new UpgradeReportMetaWrapper(); urmw.SetArgument(UpgradeReportMetaWrapper.ReportId, id); urmw.SetArgument(UpgradeReportMetaWrapper.ReportName861, elements[1]); urmw.SetArgument(UpgradeReportMetaWrapper.ReportSubId, elements[0]); urmw.SetArgument(UpgradeReportMetaWrapper.DBAppServer, this._loginInfor.AppServer); urmw.SetArgument(UpgradeReportMetaWrapper.DBUfMetaConnString, this._loginInfor.UfMetaCnnString); urmw.SetArgument(UpgradeReportMetaWrapper.DBcAccId, this._loginInfor.cAccId); urmw.SetArgument(UpgradeReportMetaWrapper.DBcYear, this._loginInfor.cYear); // 升级数据源,格式.... Hashtable infos = new Hashtable(); infos[Upgrade872Controller.InfoKeyLoginInfo] = this._loginInfor; infos[Upgrade872Controller.InfoKeyReportSubId] = elements[0]; infos[Upgrade872Controller.InfoKeyReportName861] = elements[1]; UpgradeFormatService ufs = new UpgradeFormatService(); ufs.DeliverEnvironmentInfos(infos); ufs.SetMeta(urmw); UpgradeReport ur = urmw.WrapData2Object(); ur.Save(); } catch (Exception e) { Logger logger = Logger.GetLogger("Report872UpradeError"); logger.Error(e); throw e; } finally { GC.Collect(); } }