/// <summary> /// 用到HTML的显示。把Val 根据URL的设置转换为Link. /// </summary> /// <param name="pk1">主键1</param> /// <param name="pk2">主键2</param> /// <param name="pk3">主键3</param> /// <param name="adt">数据分析类型</param> /// <returns>link</returns> public string GetCellContext(string pk1, string pk2, string pk3, AnalyseDataType adt) { Rpt3DCell cell = this.HisCells.GetCell(pk1, pk2, pk3); if (cell.Url == "") { return(cell.val.ToString()); } //string val = cell.val.ToString(); switch (adt) { case AnalyseDataType.AppFloat: return("<a href=\"javascript:openit('" + cell.Url + "&abc=xyz&" + this.Key1 + "=" + cell.PK1 + "&" + this.Key2 + "=" + cell.PK2 + "&" + this.Key3 + "=" + cell.PK3 + "')\" >" + float.Parse(cell.val.ToString()) + "</a>"); case AnalyseDataType.AppInt: return("<a href=\"javascript:openit('" + cell.Url + "&abc=xyz&" + this.Key1 + "=" + cell.PK1 + "&" + this.Key2 + "=" + cell.PK2 + "&" + this.Key3 + "=" + cell.PK3 + "')\" >" + int.Parse(cell.val.ToString()) + "</a>"); case AnalyseDataType.AppMoney: return("<a href=\"javascript:openit('" + cell.Url + "&abc=xyz&" + this.Key1 + "=" + cell.PK1 + "&" + this.Key2 + "=" + cell.PK2 + "&" + this.Key3 + "=" + cell.PK3 + "')\" >" + decimal.Parse(cell.val.ToString()).ToString("0.00") + "</a>"); default: throw new Exception("error adt"); } //return "<a href=\"javascript:openit('"+cell.Url+"&abc=xyz&"+this.D1ClassesName+"="+cell.PK1+"&"+this.D2ClassesName+"="+cell.PK2+"&"+this.D3ClassesName+"="+cell.PK3+"')\" >"+cell.val+"</a>"; //return "<a href='javascript:window.open('"+cell.Url+"&abc=xyz&"+this.D1ClassesName+"="+cell.PK1+"&"+this.D2ClassesName+"="+cell.PK2+"&"+this.D3ClassesName+"="+cell.PK3+"','"+CellUrlTarget+"','toolbar=false')' >"+cell.val+"</a>"; //return "<a href='"+cell.Url+"&abc=xyz&"+this.D1ClassesName+"="+cell.PK1+"&"+this.D2ClassesName+"="+cell.PK2+"&"+this.D3ClassesName+"="+cell.PK3+"' Target='"+CellUrlTarget+"' >"+cell.val+"</a>"; }
/// <summary> /// 交叉报表实体 /// </summary> /// <param name="d1">纬度1集合</param> /// <param name="d2">纬度2集合</param> /// <param name="dt">数据表</param> /// <param name="cellUrl">单元格连接</param> /// <param name="adt">数据类型</param> public RptPlanarEntity(Entities d1, Entities d2, DataTable dt, string cellUrl, AnalyseDataType adt) { this.SingleDimensionItem1 = d1; this.SingleDimensionItem2 = d2; this.PlanarCells = new RptPlanarCells(dt, cellUrl); this.HisADT = adt; }
/// <summary> /// 增加一个分析对象 /// </summary> /// <param name="DataProperty">数据属性</param> /// <param name="OperationColumn">操作列</param> /// <param name="adp">数据类型</param> /// <returns>返回增加的位置</returns> public virtual int AddAnalyseObj(string DataProperty, string OperationColumn, AnalyseDataType adp) { AnalyseObj ao = new AnalyseObj(DataProperty, OperationColumn, adp); return(this.InnerList.Add(ao)); }
/// <summary> /// 分析目标 /// </summary> /// <param name="dp">描述</param> /// <param name="oc">操作列</param> /// <param name="adt">分析的数据类型</param> public AnalyseObj(string dp, string oc, AnalyseDataType adt) { this.DataProperty = dp; this.OperationColumn = oc; this.HisADT = adt; }
/// <summary> /// 得到一个单元格内的字符串 /// </summary> /// <param name="pk1">pk1</param> /// <param name="pk2">pk2</param> /// <returns>html 标记</returns> public string GenerHtmlStrBy(string d1EnsName, string pk1, string d2EnsName, string pk2, AnalyseDataType adt) { RptPlanarCell en = this.GetCell(pk1, pk2); if (en.Url == "") { return(en.val.ToString()); } try { switch (adt) { case AnalyseDataType.AppFloat: return("<A href=\"javascript:openit('" + en.Url + "&" + d1EnsName + "=" + pk1 + "&" + d2EnsName + "=" + pk2 + "')\" >" + float.Parse(en.val.ToString()) + "</A>"); case AnalyseDataType.AppInt: return("<A href=\"javascript:openit('" + en.Url + "&" + d1EnsName + "=" + pk1 + "&" + d2EnsName + "=" + pk2 + "')\" >" + int.Parse(en.val.ToString()) + "</A>"); case AnalyseDataType.AppMoney: return("<A href=\"javascript:openit('" + en.Url + "&" + d1EnsName + "=" + pk1 + "&" + d2EnsName + "=" + pk2 + "')\" >" + float.Parse(en.val.ToString()).ToString("0.00") + "</A>"); default: throw new Exception("adt 类型错误."); } } catch { return("0"); } }