Example #1
0
        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);
        }
Example #2
0
        /// <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();
            }
        }