Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
        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());
            }
        }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
    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());
    }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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()
            });
        }
Exemplo n.º 8
0
    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);
                }
            }
        }
    }
Exemplo n.º 9
0
    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();
    }
Exemplo n.º 10
0
        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);
        }