public virtual DataTable GetProcedureDataNoPaged(HttpContext context) { YZRequest request = new YZRequest(context); string dataSourceName = request.GetString("DataSource", null); string procedureName = request.GetString("ProcedureName"); YZDSFilterCollection filters = JObject.Parse(request.GetString("Filter", "{}")).ToObject <YZDSFilterCollection>(); BPMDBParameterCollection @params = new BPMDBParameterCollection(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { BPMDBParameter paramater = new BPMDBParameter(filter.Key, typeof(String), filter.Value.value); @params.Add(paramater); } } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); FlowDataTable table = DataSourceManager.ExecProcedure(cn, dataSourceName, procedureName, @params); return(table.ToDataTable()); } }
public virtual DataTable GetTableDataNoPaged(HttpContext context) { YZRequest request = new YZRequest(context); string dataSourceName = request.GetString("DataSource", null); string tableName = request.GetString("TableName"); string orderBy = request.GetString("OrderBy", null); YZDSFilterCollection filters = JObject.Parse(request.GetString("Filter", "{}")).ToObject <YZDSFilterCollection>(); BPMDBParameterCollection @params = new BPMDBParameterCollection(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { BPMDBParameter paramater = new BPMDBParameter(filter.Key, typeof(String), filter.Value.value); paramater.ParameterCompareType = BPMDBParameter.ParseOp(filter.Value.op, ParameterCompareType.Equ) | ParameterCompareType.NecessaryCondition; @params.Add(paramater); } } using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); FlowDataTable table = DataSourceManager.LoadTableData(cn, dataSourceName, tableName, @params, orderBy); return(table.ToDataTable()); } }
private BPMDBParameterCollection GetSelectParameters(MyColumnInfoCollection columnInfos) { BPMDBParameterCollection selectParameters = new BPMDBParameterCollection(); //添加过滤条件 foreach (MyColumnInfo column in columnInfos) { if (!column.FixFilter) { continue; } BPMDBParameter parameter = new BPMDBParameter(column.ColumnName, TypeCode.String, column.FixFilterValue); parameter.ParameterCompareType = ParameterCompareType.FullCompare | ParameterCompareType.NecessaryCondition; selectParameters.Add(parameter); } //添加搜索条件 string sch = this.Page.Request.QueryString["sch"]; if (!String.IsNullOrEmpty(sch)) { sch = sch.Trim(); string schtype = this.Page.Request.QueryString["schtype"]; if (String.IsNullOrEmpty(schtype) || schtype == "all") { foreach (MyColumnInfo column in columnInfos) { if (!column.Display) { continue; } BPMDBParameter parameter = new BPMDBParameter(column.ColumnName, TypeCode.String, sch); parameter.ParameterCompareType = ParameterCompareType.LikeCompare | ParameterCompareType.OptionCondition; selectParameters.Add(parameter); } } else { BPMDBParameter parameter = new BPMDBParameter(schtype, TypeCode.String, sch); parameter.ParameterCompareType = ParameterCompareType.LikeCompare | ParameterCompareType.OptionCondition; selectParameters.Add(parameter); } } return(selectParameters); }
public virtual JObject GetUserDataProcedure(BPMConnection cn, JObject request) { string dataSourceName = (string)request["DataSource"]; string procedureName = (string)request["ProcedureName"]; YZDSFilterCollection filters = request["Filter"] != null ? request["Filter"].ToObject <YZDSFilterCollection>() : null; BPMDBParameterCollection @params = new BPMDBParameterCollection(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { BPMDBParameter paramater = new BPMDBParameter(filter.Key, typeof(String), filter.Value.value); @params.Add(paramater); } } FlowDataTable table = DataSourceManager.ExecProcedure(cn, dataSourceName, procedureName, @params); return(this.ToResult(table, false)); }
public static string GetKeyWordString(QueryParameterCollection peramaterDefines, BPMDBParameterCollection currentParamaters) { StringBuilder sb = new StringBuilder(); foreach (BPMDBParameter parameter in currentParamaters) { QueryParameter queryParameter = peramaterDefines.TryGetItem(parameter.Name); if (queryParameter == null) { continue; } if (queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.QuickSearch && queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.AdvancedSearch && queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.Both) { continue; } if (parameter.Value == null) { continue; } string keyword = parameter.Value.ToString().Trim(); if (String.IsNullOrEmpty(keyword)) { continue; } if (sb.Length != 0) { sb.Append(";"); } sb.Append(keyword); } return(sb.ToString()); }
public virtual JObject GetUserDataTable(BPMConnection cn, JObject request) { string dataSourceName = (string)request["DataSource"]; string tableName = (string)request["TableName"]; string orderBy = (string)request["OrderBy"]; YZDSFilterCollection filters = request["Filter"] != null ? request["Filter"].ToObject <YZDSFilterCollection>() : null; BPMDBParameterCollection @params = new BPMDBParameterCollection(); if (filters != null) { foreach (KeyValuePair <string, YZDSFilter> filter in filters) { BPMDBParameter paramater = new BPMDBParameter(filter.Key, typeof(String), filter.Value.value); paramater.ParameterCompareType = BPMDBParameter.ParseOp(filter.Value.op, ParameterCompareType.Equ) | ParameterCompareType.NecessaryCondition; @params.Add(paramater); } } FlowDataTable table = DataSourceManager.LoadTableData(cn, dataSourceName, tableName, @params, orderBy); return(this.ToResult(table, false)); }
public virtual object GetQueryData(HttpContext context) { YZRequest request = new YZRequest(context); String datasourceName = request.GetString("DataSource", null); String query = request.GetString("Query"); QueryParameterCollection queryParams = JArray.Parse(request.GetString("QueryParams")).ToObject <QueryParameterCollection>(); YZClientParamCollection @params = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(request.GetString("params", YZJsonHelper.Base64EmptyJArray)))).ToObject <YZClientParamCollection>(); bool clientCursor = request.GetBool("clientCursor", false); //应用查询条件 BPMDBParameterCollection finallyParams = queryParams.CreateNullDBParameters(); foreach (BPMDBParameter @param in finallyParams) { YZClientParam clientParam = @params.TryGetItem(@param.Name); if (clientParam != null && clientParam.value != null) { @param.Value = clientParam.value; } } FlowDataTable table = new FlowDataTable(); int rowcount; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); table.Load(cn, BPMCommandType.Query, query, finallyParams, clientCursor, request.Start, request.Limit, out rowcount); } return(new { total = rowcount, children = table.ToDataTable() }); }
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ClientScriptManager cs = this.Page.ClientScript; if (!cs.IsClientScriptIncludeRegistered("MyScript")) { cs.RegisterClientScriptInclude("MyScript", this.ResolveClientUrl("../Scripts/Main.js")); } if (!cs.IsClientScriptIncludeRegistered("FormScript")) { cs.RegisterClientScriptInclude("FormScript", this.Page.ResolveClientUrl("../Scripts/Form.js")); } if (!cs.IsClientScriptIncludeRegistered("XFormScript")) { cs.RegisterClientScriptInclude("XFormScript", this.Page.ResolveClientUrl("../Scripts/XForm.js")); } //获得ColumnInfo string datasourceName = this.Request.QueryString["ds"]; string tableName = this.Request.QueryString["table"]; string orderBy = this.Request.QueryString["orderby"]; this._columnInfos = this.ParseColumnInfos(this.Request.QueryString["cinfs"]); this._columnInfos.ParseFixFilter(this.Page, this.Request.QueryString["fcols"]); bool ms = this.Request.QueryString["ms"] == "1" ? true : false; bool hiddenlink = this.Request.QueryString["hl"] == "1" ? true : false; if (ms) { this._bs.Visible = true; this._bs.OnClientClick = String.Format("F_CloseDialogNBat(mlist,{0},'{1}','');return false;", this.Request.QueryString["idx"], Resources.BPMResource.DataBrowser_Msg_AtleastSelOne); } else { this._bs.Visible = false; } //初始化页导航条 this.Page.Header.Title = tableName; this._navigateBar.InitState(); //获得数据 TableRow row; TableCell cell; BPMConnection cn = new BPMConnection(); FlowDataTable schema = null; FlowDataTable table = null; int rowcount = 0; try { cn.WebOpen(Page); //获得表的Schema schema = DataSourceManager.LoadTableSchema(cn, datasourceName, tableName); //规则化显示行 if (this._columnInfos.DisplayColumnCount == 0) //没有显示行 { //有map则显示map列 if (this._columnInfos.MapColumnCount != 0) { foreach (MyColumnInfo column in this._columnInfos) { if (column.Map) { column.Display = true; } } } else //没有则显示所有列 { foreach (FlowDataColumn column in schema.Columns) { MyColumnInfo columnInfo = this._columnInfos.TryGetColumn(column.ColumnName); if (columnInfo == null) { columnInfo = new MyColumnInfo(column.ColumnName, true, false, column.ColumnName); } columnInfo.Display = true; this._columnInfos.Add(columnInfo); } } } foreach (MyColumnInfo column in this._columnInfos) { FlowDataColumn dbcolumn = schema.Columns.TryGetItem(column.ColumnName); if (dbcolumn != null) { column.AllowSearch = dbcolumn.AllowSearch; } } BPMDBParameterCollection parameters = GetSelectParameters(this._columnInfos); //获得数据 table = DataSourceManager.LoadTableDataPaged(cn, datasourceName, tableName, this._columnInfos.AllOutputColumnNames, parameters, orderBy, (this._navigateBar.CurPage - 1) * this._navigateBar.PageSize, this._navigateBar.PageSize, out rowcount); this._navigateBar.ItemCount = rowcount; } finally { cn.Close(); } //建立ComboBox this._schType.Items.Add(new ListItem(Resources.BPMResource.Com_All, "all")); foreach (MyColumnInfo column in this._columnInfos) { if (!column.Display || column.FixFilter || !column.AllowSearch) { continue; } this._schType.Items.Add(new ListItem(column.DisplayName, column.ColumnName)); } //设置状态值 this._schBox.Text = this.Request.QueryString["sch"]; this._schType.SelectedValue = this.Request.QueryString["schtype"]; //建立List的Header row = CreateHeaderRow(); this._table.Rows.Add(row); //获得按SELECT排序的DisplayColumn MyColumnInfoCollection displayColumnsOrdered = new MyColumnInfoCollection(); foreach (FlowDataColumn tableColumn in schema.Columns) { MyColumnInfo columnInfo = this._columnInfos.TryGetColumn(tableColumn.ColumnName); if (columnInfo == null) { continue; } if (!columnInfo.Display) { continue; } displayColumnsOrdered.Add(columnInfo); } if (ms) { row.Cells.Add(CreateCheckColumn()); } foreach (MyColumnInfo column in displayColumnsOrdered) { if (row.Cells.Count != 0) { row.Cells.Add(CreateSepratorColumn()); } cell = CreateColumn(column.DisplayName, -1); row.Cells.Add(cell); } //总记录数 this._labCount.Text = rowcount.ToString(); //添加行 foreach (FlowDataRow dataRow in table.Rows) { row = CreateItemRow(); this._table.Rows.Add(row); if (ms) { cell = new TableCell(); cell.Text = "<input id=\"" + GetMapValue(this._columnInfos, dataRow) + "\" type=\"checkbox\" onclick=\"checkrow(this);\">"; cell.ColumnSpan = 1; row.Cells.Add(cell); } foreach (MyColumnInfo column in displayColumnsOrdered) { //列分割 if (row.Cells.Count != 0) { row.Cells.Add(CreateEmptyCell(1)); } foreach (string key in dataRow.Keys) { object v = dataRow[key]; } object value = dataRow[column.ColumnName]; if (row.Cells.Count == 0 && !hiddenlink) { HyperLink link = CreateSetValueLink(FormatValue(value), this._columnInfos, dataRow, this._table.Rows.Count - 1); cell = CreateCell(String.Empty, 1); cell.Controls.Add(link); } else { cell = CreateCell(FormatValue(value), 1); } //cell.Style.Add("text-align", "center"); row.Cells.Add(cell); } } } }
public static string GetKeyWordString(QueryParameterCollection peramaterDefines, BPMDBParameterCollection currentParamaters) { StringBuilder sb = new StringBuilder(); foreach (BPMDBParameter parameter in currentParamaters) { QueryParameter queryParameter = peramaterDefines.TryGetItem(parameter.Name); if (queryParameter == null) continue; if (queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.QuickSearch && queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.AdvancedSearch && queryParameter.ParameterUIBindType != BPM.Data.Common.ParameterUIBindType.Both) continue; if (parameter.Value == null) continue; string keyword = parameter.Value.ToString().Trim(); if (String.IsNullOrEmpty(keyword)) continue; if (sb.Length != 0) sb.Append(";"); sb.Append(keyword); } return sb.ToString(); }
public virtual JObject GetReportData(HttpContext context) { YZRequest request = new YZRequest(context); string path = request.GetString("path"); string viewName = request.GetString("viewName", null); string outputType = request.GetString("outputType", ""); YZClientParamCollection runtimeParams = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(request.GetString("params", YZJsonHelper.Base64EmptyJArray)))).ToObject <YZClientParamCollection>(); //获得数据 Report report; ReportView view; DataTable dataTable; int rowcount; using (BPMConnection cn = new BPMConnection()) { cn.WebOpen(); //获得报表定义 report = Report.Open(cn, path); if (String.IsNullOrEmpty(viewName)) { view = report.DefaultView; } else { view = report.Views.TryGetItem(viewName); } string srcdata = request.GetString("srcdata", null); if (String.IsNullOrEmpty(srcdata)) { BPMDBParameterCollection selectParameters = report.QueryParameters.CreateNullDBParameters(); //应用查询条件 foreach (BPMDBParameter selectParam in selectParameters) { YZClientParam clientParam = runtimeParams.TryGetItem(selectParam.Name); if (clientParam != null && clientParam.value != null) { selectParam.Value = clientParam.value; } } cn.RequestParams["sortstring"] = request.GetSortString(""); cn.UpdateRequestParams(); //获得数据 FlowDataTable ftable = new FlowDataTable(); ftable.Load(cn, BPMCommandType.Report, path, selectParameters, report.ClientCursor, request.Start, request.Limit, out rowcount); dataTable = ftable.ToDataTable(); } else { dataTable = JArray.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(srcdata))).ToObject <DataTable>(); rowcount = request.GetInt32("total"); } } //将数据转化为Json集合 JObject rv = new JObject(); rv[YZJsonProperty.total] = rowcount; rv["srcdata"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(JArray.FromObject(dataTable).ToString(Formatting.None, YZJsonHelper.Converters))); JArray children = new JArray(); rv.Add("children", children); //不管是什么view都要给数据 foreach (DataRow row in dataTable.Rows) { JObject item = new JObject(); children.Add(item); foreach (DataColumn column in dataTable.Columns) { object value = row[column.ColumnName]; item[column.ColumnName] = JToken.FromObject(value); if (NameCompare.EquName(column.ColumnName, "TaskID") && (value is int)) { item["Token"] = YZSecurityHelper.GenTaskAccessToken((int)value); } //为任务链接生成Token ReportColumnInfo colInfo = report.ReportColumnInfos.TryGetItem(column.ColumnName); if (colInfo != null && colInfo.LinkType == ReportLinkType.Task) { ParameterFill paramFill = colInfo.ParametersFill.TryGetItem("@TaskID"); if (paramFill != null) { int linktoTaskID; if (Int32.TryParse(Convert.ToString(row[paramFill.FillWith]), out linktoTaskID)) { item[column.ColumnName + "Token"] = YZSecurityHelper.GenTaskAccessToken((int)linktoTaskID); } } } } } if (String.Compare(outputType, "Export", true) != 0) { if (view is ReportMSChartView) { this.ApplyMSChartData(request, rv, view as ReportMSChartView, dataTable); } if (view is ReportExcelView) { this.ApplyExcelData(request, rv, view as ReportExcelView, dataTable, runtimeParams); } } return(rv); }