/// <summary> /// 按时间次序获取一个下载任务 /// </summary> /// <returns>一个下载任务</returns> public static MobileReportDownloadTask GetDownloadTask(U8LoginInfor loginInfo) { string sql = string.Format("SELECT TOP 1 * FROM dbo.UAP_MobileReportTask WHERE Status in( 0,1) ORDER BY CreatedOn"); DataSet ds = SqlHelper.ExecuteDataSet(loginInfo.UfDataCnnString, sql); if (ds == null || ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count <= 0) { return(null); } DataRow dr = ds.Tables[0].Rows[0]; var task = new MobileReportDownloadTask() { TaskId = dr["TaskID"].ToString(), Status = int.Parse(dr["Status"].ToString()), SolutionId = dr["SolutionID"].ToString(), Condition = dr["Condition"].ToString(), UserId = dr["UserID"].ToString(), Url = dr["Url"].ToString(), CreateOn = (DateTime)dr["CreatedOn"], CompletedOn = (DateTime)dr["CompletedOn"], Token = dr["Token"].ToString(), SubId = dr["subid"].ToString(), Pass = dr["pass"].ToString(), AppServer = dr["appserver"].ToString(), AccId = dr["accid"].ToString(), DataSource = dr["datasource"].ToString(), Syear = dr["syear"].ToString(), Sdate = dr["sdate"].ToString() }; sql = string.Format("UPDATE dbo.UAP_MobileReportTask SET Status = '{0}' WHERE TaskID = '{1}'", "1", task.TaskId); SqlHelper.ExecuteNonQuery(loginInfo.UfDataCnnString, sql); return(task); }
private void InitFilter(ref FilterArgs filterargs, U8LoginInfor login) { filterargs.Login = login != null ? login.U8Login : null; filterargs.IsWebFilter = false; filterargs.ViewID = this._viewId; if (login != null) { filterargs.UserID = login.UserID; filterargs.LangID = login.LocaleID; filterargs.AccID = login.cAccId; filterargs.UserToken = login.UserToken; } filterargs.DataSource.FilterString = this._customFilterString; object result = SqlHelper.ExecuteDataSet(login.UfMetaCnnString, string.Format( "SELECT * FROM uap_report WHERE ID = '{0}'", this._reportId)); var dataSet = result as DataSet; if (dataSet != null) { var dt = dataSet.Tables[0]; if (dt != null) { _className = dt.Rows[0]["ClassName"].ToString(); _filterClass = dt.Rows[0]["FilterClass"].ToString(); _filterId = dt.Rows[0]["FilterID"].ToString(); filterargs.InitClass(null, _filterId, _filterClass, _className); } } }
/// <summary> /// 通过传入参数初始化查询报表需要参数 /// </summary> private void Init(string token, string actionType, Dictionary <string, string> parameters, ref string responseXml) { this._loginInfo = TokenTransfer.GetLoginInfo(token); ClientReportContext.Login = this._loginInfo; this._solutionId = this.GetInformationByKey("solutionId", parameters); this.Init2(); }
public MobileReportEngine(U8LoginInfor login, string actionType, Dictionary <string, string> parameters, ref string responseXml) { this._loginInfo = login; this._solutionId = this.GetInformationByKey("solutionId", parameters); this.Init2(); }
/// <summary> /// 销毁当前任务 /// </summary> internal void DestroyTask() { PrepairReportDataError(this._task, this._loginInfo); this._loginInfo = null; this._mobileReport = null; this._task = null; this.Busy = false; }
public string GetReportList(string token) { var result = new ActionResult() { Action = "", Flag = 1, Description = "调用失败", ResultData = null }; var time = System.DateTime.Now; System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + token + " Start:" + time.ToString()); var ds = new DataSet(); this._loginInfo = TokenTransfer.GetLoginInfo(token); //TimerTask timer = new TimerTask(1000, this._loginInfo); try { ds = this.GetDataFromDb(false, false); } catch (Exception ex) { result.Description = "获取模块信息失败:" + ex.Message; return(result.Description);//代码走查点修改 } if (ds != null && ds.Tables.Count > 0) { ds.Tables[0].TableName = "ReportListInfo"; } const string templateId = "getReportList"; #region 将login缓存到MERP中 var token1 = ""; var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(token); var doc = xmlDocument.DocumentElement; var tokennode = doc.SelectSingleNode("/ufsoft/data/SignedToken"); if (tokennode != null) { token1 = tokennode.Attributes["id"].Value; } var login = new UFSoft.U8.Framework.Login.UI.clsLogin(); var userData = login.GetLoginInfo(token); login.login(userData.cSubID, userData.UserId, userData.Password, userData.AppServer, userData.operDate, userData.DataSource, userData.WorkStationSerial, false); ContextObj context = new ContextObj(); context.Login = login; //context.Login = _u8LoginCls as UFSoft.U8.Framework.Login.UI.clsLogin; ContextManager.SingletonInstance.Add(token1, context); #endregion var service = new SchemaServiceForNet(); result.ResultData = service.MakeSchema(token1, templateId, ds, null); result.Flag = 0; result.Description = "查询报表列表信息成功!"; System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + token1 + " End:" + System.DateTime.Now.ToString()); System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->GetReportList TaskID: " + token1 + " Use Time " + (DateTime.Now - time).ToString()); return(result.ResultData); }
/// <summary> /// 如果在准备数据时发生异常,则将报表下载任务状态置为6,等待前端删除或者重新下载 /// </summary> /// <param name="task">报表下载任务</param> private static void PrepairReportDataError(MobileReportDownloadTask task, U8LoginInfor login) { if (task != null && login != null) { string sql = string.Format("UPDATE dbo.UAP_MobileReportTask SET Status = 6 WHERE TaskID = '{0}'", task.TaskId); SqlHelper.ExecuteNonQuery(login.UfDataCnnString, sql); } }
public FilterXmlService( U8LoginInfor login, string reportId, string localeId) { this._login = login; this._reportId = reportId; this._localeId = localeId; }
/// <summary> /// 初始化关注报表需要的参数信息 /// </summary> /// <param name="token"></param> /// <param name="actionType"></param> /// <param name="parameters"></param> /// <param name="responseXml"></param> private void Init(string token, string actionType, Dictionary <string, string> parameters, ref string responseXml) { this._loginInfo = TokenTransfer.GetLoginInfo(token); this._taskId = TokenTransfer.GetInformationByKey("taskId", parameters); if (string.IsNullOrEmpty(this._taskId)) { this._taskId = Guid.NewGuid().ToString(); } this._solutionId = TokenTransfer.GetInformationByKey("solutionId", parameters); this._queryParams = TokenTransfer.GetInformationByKey("queryParams", parameters); }
public DataHelper(U8LoginInfor login) { _login = login; _year = _login.Year; _month = _login.Month; _day = _login.Day; _date = _login.Date; _time = _login.Time; _accountmonth = _login.AccountMonth; _accountyear = _login.AccountYear; _levelexpandsrv = new LevelExpandSrv(_login); }
//web public void Initialize(string reportid, ReportStates reportstate, string usertoken, string taskid, string subid, string url, string userid, string langid, string accid, string filterclass, string authstring, string ciyear, string curdate) { _usertoken = usertoken; _taskid = taskid; _subid = subid; _login = new U8LoginInfor(); _login.UserToken = _usertoken; _login.TaskID = _taskid; _login.SubID = _subid; _login.LocaleID = langid; Initialize(reportid, reportstate, null, true, url, userid, langid, accid, filterclass, authstring, ciyear, curdate); }
public ClientReportContext(object vblogin) : this() { _rawlogin = vblogin; //if (_login == null) _login = new U8LoginInfor(vblogin); _usertoken = _login.UserToken; _localeid = _login.LocaleID; _taskid = _login.TaskID; _subid = _login.SubID; //_ufDataDbString = _login.UfDataCnnString; //_ufMetaDbString = _login.UfMetaCnnString; _appServer = _login.AppServer; System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(_localeid); }
public int RetrieveFactDepth(U8LoginInfor login) { if (_factDepth <= 0) { string codeRule = this.RetrieveCodeRule(login); if (this._depth > codeRule.Length) { _factDepth = codeRule.Length; } else { _factDepth = this._depth; } } return(_factDepth); }
public static ReportEngine GetRemoteEngine(U8LoginInfor login, ReportStates state) { try { object[] attrs = new object[] { new UrlAttribute(_url) }; object[] objs = new object[] { login, state }; return((ReportEngine)Activator.CreateInstance(typeof(ReportEngine), objs, attrs)); } catch (TargetInvocationException e) { throw new ReportException(LanError + ((e.InnerException is TargetInvocationException)?e.InnerException.InnerException.Message:e.InnerException.Message) + CheckLan); } catch (Exception e) { throw new ReportException(LanError + e.Message + CheckLan); } }
public override ActionResult Execute(string token, string actionType, Dictionary <string, string> parameters, ref string responseXml) { var result = new ActionResult() { Action = actionType, Flag = 1, Description = "调用失败", ResultData = null }; var time = System.DateTime.Now; System.Diagnostics.Trace.Write("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + token + " Start:" + time.ToString()); var ds = new DataSet(); this._loginInfo = TokenTransfer.GetLoginInfo(token); System.Diagnostics.Trace.Write("<<<<<<<<<<MobileReportTest>>>>>>>>>>TokenTransfer处理之后-->token=: " + token); System.Diagnostics.Trace.Write("<<<<<<<<<<MobileReportTest>>>>>>>>>>Login.UfMetaCnnString-->" + this._loginInfo.UfMetaCnnString); //TimerTask timer = new TimerTask(1000, this._loginInfo); try { ds = this.GetDataFromDb(false, false); } catch (Exception ex) { result.Description = "获取模块信息失败:" + ex.Message; return(result);//代码走查点修改 } if (ds != null && ds.Tables.Count > 0) { ds.Tables[0].TableName = "ReportListInfo"; } const string templateId = "getReportList"; var service = new SchemaServiceForNet(); result.ResultData = service.MakeSchema(token, templateId, ds, null); result.Flag = 0; result.Description = "查询报表列表信息成功!"; System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + token + " End:" + System.DateTime.Now.ToString()); System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->GetReportList TaskID: " + token + " Use Time " + (DateTime.Now - time).ToString()); return(result); }
/// <summary> /// 启动定时任务,执行报表计算任务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private bool GoTask(MobileReportDownloadTask task) { this._loginInfo = ConstructLogin(task); // 1.查询报表 try { PrepairReportData(task); // 2.生成文件 string fileName = string.Empty; MakeFile(ref fileName); // 3.更新数据库状态及URL UpdateDb(fileName); } catch (Exception) { // 如果在准备数据时发生异常,则将报表下载任务状态置为6,等待前端删除或者重新下载。 PrepairReportDataError(task, this._loginInfo); throw; } return(true); }
/// <summary> /// 获取报表下载任务并开始进行下载数据准备 /// </summary> /// <param name="loginInfor">U8登陆对象</param> public void BeginTask(U8LoginInfor loginInfor = null) { try { this._task = GetDownloadTask(_loginInfo); if (_task != null) { if (GoTask(_task)) { Busy = false; } } else { Busy = false; } } catch (Exception) { Busy = false; } }
public LevelExpandSrv(U8LoginInfor loginInfo) { this.CachePool = new CachePool(loginInfo); this.u8LoginInfor = loginInfo; }
public string GetReportList(U8LoginInfor login) { var result = new ActionResult() { Action = "", Flag = 1, Description = "调用失败", ResultData = null }; var time = System.DateTime.Now; System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + login.TaskID + " Start:" + time.ToString()); var ds = new DataSet(); this._loginInfo = login; //TimerTask timer = new TimerTask(1000, this._loginInfo); try { ds = this.GetDataFromDb(false, false); } catch (Exception ex) { result.Description = "获取模块信息失败:" + ex.Message; return(result.Description);//代码走查点修改 } if (ds != null && ds.Tables.Count > 0) { ds.Tables[0].TableName = "ReportListInfo"; } const string templateId = "getReportList"; var token = ""; var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(login.UserToken); var doc = xmlDocument.DocumentElement; var tokennode = doc.SelectSingleNode("/ufsoft/data/SignedToken"); if (tokennode != null) { token = tokennode.Attributes["id"].Value; } var service = new SchemaServiceForNet(); result.ResultData = service.MakeSchema(token, templateId, ds, null); result.Flag = 0; result.Description = "查询报表列表信息成功!"; //System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>GetReportList-->GetReportList TaskID: " + token + " End:" + System.DateTime.Now.ToString()); //System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->GetReportList TaskID: " + token + " Use Time " + (DateTime.Now - time).ToString()); var xmlResult = result.ResultData; var doc1 = new XmlDocument(); doc1.LoadXml(xmlResult); var dataXML = doc1.SelectSingleNode("/struct/reportList"); string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(dataXML); result.ResultData = json; string finalResult = JsonTransfer.ReportListToJson(result); return(finalResult); }
public CachePool(U8LoginInfor loginInfo) { dataSetObjects = new NameDataSetCollection(); this.U8LoginInfor = loginInfo; }
public MobileReportEngineAdapter(U8LoginInfor login) { this._login = login; _datacontainer = new SemiRowsContainerOnServer(); _rdh = new RemoteDataHelper(); }
public DataHelper(U8LoginInfor login, ReportStates understate) : this(login) { _understate = understate; }
/// <summary> /// 创建下载计算引擎并开始下载任务 /// </summary> /// <param name="loginInfor">u8登陆对象</param> public void CreatDownLoadEngine(U8LoginInfor loginInfor) { Busy = true; _loginInfo = loginInfor; BeginTask(); }
/// <summary> /// 移动报表下载调用 /// </summary> /// <param name="task">移动报表下载任务</param> public MobileReportEngine(MobileReportDownloadTask task, U8LoginInfor loginInfor = null) { this._loginInfo = loginInfor; this.Init(task); }
public string RetrieveCodeRule(U8LoginInfor login) { if (this._codeRule == string.Empty) { string strSQL = string.Empty; DataSet ds = null; if (this._expandType == LevelExpandEnum.AreaClass) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cAreaClass'"; } else if (this._expandType == LevelExpandEnum.CustClass) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cCustClass'"; } else if (this._expandType == LevelExpandEnum.DepLevel) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cDepLevel'"; } else if (this._expandType == LevelExpandEnum.DispLevel) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cDispLevel'"; } else if (this._expandType == LevelExpandEnum.GoodClass) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cGoodClass'"; } else if (this._expandType == LevelExpandEnum.GradeLevel) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cGradeLevel'"; } else if (this._expandType == LevelExpandEnum.PosLevel) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cPosLevel'"; } else if (this._expandType == LevelExpandEnum.ProvClass) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cProvClass'"; } else if (this._expandType == LevelExpandEnum.SettleLevel) { strSQL = "select cValue from accinformation where csysid ='aa' and cname ='cSettleLevel'"; } else if (this._expandType == LevelExpandEnum.fa_SourceClass)//资金构成分类 { strSQL = "select CODINGRULE cValue from GradeDef_base where keyword='fa_SourceClass'"; } //string strConn = "user id=sa; password=1; database=UFDATA_777_2005; server=zblpwin;"; // ds = SqlHelper.ExecuteDataSet(strConn, strSQL); else { _expandProgram = new ExpandProgram(login); strSQL = _expandProgram.RetriveRuleSQL(Convert.ToInt32(_expandType)); if (string.IsNullOrEmpty(strSQL)) { //throw new Exception("No Difinition!"); return(""); } } ds = SqlHelper.ExecuteDataSet(login.UfDataCnnString, strSQL); if (ds.Tables[0].Rows.Count == 0)//资金构成分类 { return(""); } this._codeRule = ds.Tables[0].Rows[0][0].ToString(); } return(this._codeRule); }
/// <summary> /// CS端有界面打开习文过滤时需要添加以下参数,这里先加上,可能没用。 /// </summary> /// <param name="filterargs"></param> /// <param name="login"></param> private void InitFilter2(ref FilterArgs filterargs, U8LoginInfor login) { //if (login.Year.ToString() != null && login.Year.ToString() != "") // filterargs.Args.Add("CIYear", login.Year.ToString()); //if (!string.IsNullOrEmpty(login.Date)) // filterargs.Args.Add("CurDate", login.Date); if (!filterargs.Args.Contains("ufreportarg")) { #region init filterargs string metastring = null; string datastring = null; string tempstring = null; //RemoteDataHelper rdh = DefaultConfigs.GetRemoteHelper(); var rdh = new RemoteDataHelper(); ReportRelateInfor rri = rdh.GetReportInfor(ClientReportContext.Login, filterargs.ReportID, ref metastring, ref datastring, ref tempstring); if (rri.Views.Count == 0) { throw new ResourceReportException("U8.UAP.Services.ReportElements.RemoteDataEngine.没有权限"); } ClientReportContext.Login.UfMetaCnnString = metastring; ClientReportContext.Login.UfDataCnnString = datastring; ClientReportContext.Login.TempDBCnnString = tempstring; var SimpleViews = rri.Views; filterargs.InitClass(rri.RootReportId, rri.FilterId, rri.FilterClass, rri.ClassName); //_rootReportId = rri.RootReportId; filterargs.Args.Add("filterxml", rri.FilterXML); StringBuilder sb = new StringBuilder(); SimpleView sv = null; if (string.IsNullOrEmpty(rri.FilterId) && string.IsNullOrEmpty(rri.FilterClass)) { string vid = filterargs.ViewID ?? SimpleViews.DefaultView.ID; //string gid = _context.Report != null ? _context.Report.CurrentSchemaID : ""; string gid = string.Empty; sb.Append("<Data"); sb.Append(" ViewID=\""); sb.Append(vid); sb.Append("\" GroupID=\""); sb.Append(gid ?? ""); sb.Append("\" dispdetail=\""); sb.Append("1"); sb.Append("\">"); } else { sb.Append("<Data>"); } sb.Append("<Views>"); for (int i = 0; i < SimpleViews.Count; i++) { sv = SimpleViews[i]; sb.Append("<View id=\""); sb.Append(sv.ID); sb.Append("\" ViewType=\""); sb.Append(sv.ViewType); sb.Append("\" Name=\""); sb.Append(getXmlStr(sv.Name)); sb.Append("\" ViewClass=\""); sb.Append(sv.ViewClass); sb.Append("\" bShowDetail=\""); sb.Append(sv.bShowDetail ? "True" : "False"); sb.Append("\" RowsCount=\""); sb.Append(sv.RowsCount.ToString()); sb.Append("\" bDefault=\""); sb.Append(sv.IsDefault ? "True" : "False"); sb.Append("\">"); sb.Append("</View>"); } sb.Append("</Views>"); sb.Append("</Data>"); filterargs.Args.Add("ufreportarg", sb.ToString()); #endregion } }
public string SaveCrossSchemasWithLock(U8LoginInfor login, string viewID, string crossSchemas, string actionType) { //1开一个新的连接,并开事务 SqlConnection cnn = new SqlConnection(login.UfMetaCnnString); cnn.Open(); SqlTransaction tran = cnn.BeginTransaction(); string result = string.Empty; try { //21 首先获取当前数据库的groupSchemas,并构造要保存的groupSchemas XmlDocument doc = this.GetCrossSchemasWithXLock(viewID, tran); //tran GroupSchemas haveSaveCrossSchemas = GroupSchemas.GetSchemas(doc, ""); GroupSchemas toSaveCrossSchemas = GroupSchemas.GetSchemasNoSetDefaultSchema(crossSchemas, ""); //3然后每一个groupSchema做对比 if (toSaveCrossSchemas.Count <= 0) { return(toSaveCrossSchemas.ToXml().InnerXml); } GroupSchema cs = toSaveCrossSchemas[0];//要更新的 foreach (GroupSchema group in toSaveCrossSchemas) { if (group.ID != NOGROUPID) { cs = group; } } GroupSchema oldGs = GetGroupSchemaById(haveSaveCrossSchemas, cs.ID);//数据库中已经有的 switch (actionType.ToLower().Trim()) { case "delete": if (oldGs == null) { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Delete.Ex", login.LocaleID)); //"没有权限" //throw new Exception(String4Report.GetString("操作失败,别人已经删除")); } haveSaveCrossSchemas.Remove(oldGs); break; case "add": if (HaveSameName(haveSaveCrossSchemas, cs)) { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Add.Ex", login.LocaleID)); //throw new Exception(String4Report.GetString("存在重名的分组/交叉,请再次打开报表后更改")); } cs.GuidVersion = Guid.NewGuid().ToString(); haveSaveCrossSchemas.Add(cs); SetOtherSchemaBDefault(haveSaveCrossSchemas, cs); break; case "modify": if (oldGs == null) { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Delete.Ex", login.LocaleID)); //"没有权限" //throw new Exception(String4Report.GetString("操作失败,别人已经删除")); } //表明同一个用户在操作,不校验并发 if (string.IsNullOrEmpty(oldGs.LastUserGuid) || oldGs.LastUserGuid == cs.LastUserGuid) { if (HaveSameName(haveSaveCrossSchemas, cs)) { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Modify.Ex2", login.LocaleID)); //throw new Exception(String4Report.GetString("存在重名的分组/交叉,请再次打开报表后更改")); } haveSaveCrossSchemas.Remove(oldGs); cs.GuidVersion = Guid.NewGuid().ToString(); haveSaveCrossSchemas.Add(cs); SetOtherSchemaBDefault(haveSaveCrossSchemas, cs); } //表明同一个用户在操作,不校验并发 else { if (oldGs.GuidVersion == cs.GuidVersion) { if (HaveSameName(haveSaveCrossSchemas, cs)) { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Modify.Ex2", login.LocaleID)); //throw new Exception(String4Report.GetString("存在重名的分组/交叉,请再次打开报表后更改")); } haveSaveCrossSchemas.Remove(oldGs); cs.GuidVersion = Guid.NewGuid().ToString(); haveSaveCrossSchemas.Add(cs); SetOtherSchemaBDefault(haveSaveCrossSchemas, cs); } else { throw new ResourceReportException(String4Report.GetString("U8.UAP.Services.ReportData.ReportDataFacade.Modify.Ex3", login.LocaleID)); //throw new Exception(String4Report.GetString("操作失败,别人已经修改")); } } break; default: break; } result = haveSaveCrossSchemas.ToXml().InnerXml; string sql = "UPDATE UAP_ReportView SET PreservedField = @CrossSchemas WHERE ID=@ViewID"; SqlCommand command = new SqlCommand(sql, cnn); command.Parameters.Add(new SqlParameter("CrossSchemas", result)); command.Parameters.Add(new SqlParameter("ViewID", viewID)); SqlHelper.ExecuteNonQuery(tran, command); tran.Commit(); } catch (Exception e) { tran.Rollback(); throw e; } finally { if (cnn.State == ConnectionState.Open) { cnn.Close(); } } return(result); }
public void Retrieve(U8LoginInfor login) { RetrieveFactDepth(login); RetrieveCodeRule(login); }
private void Init(string token, string actionType, Dictionary <string, string> parameters, ref string responseXml) { this._loginInfo = TokenTransfer.GetLoginInfo(token); TokenTransfer.GetInformationByKey("taskId", parameters); }
/// <summary> /// 新增供U易联调用的接口 /// </summary> /// <param name="login"></param> /// <param name="actionType"></param> /// <param name="parameters"></param> /// <param name="responseXml"></param> /// <returns></returns> public string Execute(U8LoginInfor login, string actionType, Dictionary <string, string> parameters, ref string responseXml) { string result = ""; bool is4chart = false; if (parameters.ContainsKey("is4chart")) { is4chart = Boolean.Parse(parameters["is4chart"]); } this._loginInfo = login; this._responseXml = responseXml; if (!this.CheckReportExist(parameters)) { result = "该查询方案不存在,可能已经取消发布到移动端,请确认!"; throw new Exception("该查询方案不存在,可能已经取消发布到移动端,请确认!"); } try { MobileReportEngine engine = new MobileReportEngine(this._loginInfo, actionType, parameters, ref responseXml); int startLine = Convert.ToInt32(this.GetInformationByKey("startline", parameters)); this._columnsStr = this.GetInformationByKey("columnsstring", parameters); int pageRowCount = 25; if (this.GetInformationByKey("count", parameters) != null) { pageRowCount = Convert.ToInt32(this.GetInformationByKey("count", parameters)); } engine.SetReportPageRowCount(pageRowCount); if (startLine == 1) //请求第一页数据 { this._mobileReport = engine.OpenReport(parameters); this._pageRowsCount = engine.GetReportPageRowCount(); //this._mobileReport = this.OpenReport(this._loginInfo, parameters); this._mobileReport.Page = 0; int totalpage = this._mobileReport.Report.RowsCount / this._pageRowsCount + 1; string reportCacheString = RetrieveRowData2Json.GetColumnsInfoString(this._mobileReport); this.SetCacheInfoIntoSession(ref responseXml, "currentpage", "1"); this.SetCacheInfoIntoSession(ref responseXml, "totalpage", totalpage.ToString()); byte[] bytes = Encoding.Default.GetBytes(reportCacheString); reportCacheString = Convert.ToBase64String(bytes); this.SetCacheInfoIntoSession(ref responseXml, "columnsString", reportCacheString); this.SetCacheInfoIntoSession(ref responseXml, "cacheid", this._mobileReport.Report.CacheID); } else { int pageIndex = Convert.ToInt32(this.GetCacheInfoFromSession(responseXml, "currentpage")); if (pageIndex == 0) { pageIndex = Convert.ToInt32(this.GetInformationByKey("currentpage", parameters)); //pageIndex = Convert.ToInt32(parameters["currentpage"].ToString()); } int totalpage = Convert.ToInt32(this.GetCacheInfoFromSession(responseXml, "totalpage")); if (totalpage == 0) { totalpage = Convert.ToInt32(this.GetInformationByKey("totalpage", parameters)); this._totolPage = totalpage.ToString(); } if (pageIndex + 1 > totalpage) { result = null; return(result); } else { string cacheId = GetCacheInfoFromSession(responseXml, "cacheid"); if (string.IsNullOrEmpty(cacheId)) { cacheId = this.GetInformationByKey("cacheid", parameters); this._cacheid = cacheId; } int lastIndex = -1; //this._mobileReport = this.PageTo(cacheId, pageIndex, lastIndex); this._mobileReport = engine.PageTo(cacheId, pageIndex, lastIndex); this.SetCacheInfoIntoSession(ref responseXml, "currentpage", (pageIndex + 1).ToString()); this._mobileReport.Page = pageIndex + 1; } } if (_mobileReport != null) { int pageIndex = Convert.ToInt32(this.GetCacheInfoFromSession(responseXml, "currentpage")); if (pageIndex == 0) { if (parameters.ContainsKey("currentpage")) { pageIndex = Convert.ToInt32(this.GetInformationByKey("currentpage", parameters)); } } // 由于CS端每页都需要显示总计行,这里需要将不是最后一页的总计行删除掉 //if (!bLastPage(pageIndex, _mobileReport.Report) && this._mobileReport.Report.Sections[SectionType.ReportSummary] != null) //{ // _mobileReport.SemiRows.RemoveAt(_mobileReport.SemiRows.Count - 1); //} // 如果是请求图表数据 if (is4chart) { var report = _mobileReport.Report; engine.InitMobileReportChartSchema(report); ChartService chartservice = new ChartService(report); ChartSchemas css = report.ChartSchemas; if (css.CurrentGroupChart.Items != null && css.CurrentGroupChart.Items.Count > 0) { ChartSchemaItem groupCharts = css.CurrentGroupChart.Items[1] as ChartSchemaItem; if (groupCharts != null) { foreach (ChartSchemaItemAmong among in groupCharts.Items.Values) { UltraChart designChart = MobileChartHelper.CreateAchartByDesignTime(among); var dataTable1 = chartservice.GetDataSource(groupCharts.Level, among.ID, null, designChart.ChartType); MobileChart mobileChart = new MobileChart(designChart.ChartType, dataTable1); string result1 = MobileChartHelper.TransferDataTableToString(mobileChart); MobileChartHelper.Desrialize <MobileChart>(mobileChart, result1); return(result1); } } } } System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->ParseReport TaskID: " + _loginInfo.TaskID + " Start:" + System.DateTime.Now.ToString()); result = ULinkParse(this._mobileReport); System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->ParseReport TaskID: " + _loginInfo.TaskID + " End:" + System.DateTime.Now.ToString()); } } catch (Exception ex) { if (ex.Message.Contains("无法将类型为“U8Login.clsLoginClass”的 COM 对象强制转换为接口类型“U8Login._clsLogin”") && !parameters.ContainsKey("AAA")) { parameters.Add("AAA", "1"); return(Execute(this._loginInfo, actionType, parameters, ref responseXml)); } else { throw ex; } } System.Diagnostics.Trace.WriteLine("<<<<<<<<<<MobileReportTest>>>>>>>>>>OpenReport-->ExecuteOpenReport TaskID: " + this._loginInfo.UserToken + " End:" + System.DateTime.Now.ToString()); return(result); }