Exemplo n.º 1
0
        protected override void DisplayDesignData()
        {
            string strFilterUI = "";

            if (this.designView.FileParameters != null)
            {
                Dictionary <string, RptViewFileParameter> paramMap = new Dictionary <string, RptViewFileParameter>();
                for (int i = 0; i < this.designView.FileParameters.Length; i++)
                {
                    paramMap.Add(this.designView.FileParameters[i].FileParameterName, this.designView.FileParameters[i]);
                }
                for (int i = 0; i < this.gridWebGrid.Rows.Count; i++)
                {
                    string strName = this.gridWebGrid.Rows[i].Items.FindItemByKey("ParameterName").Value.ToString();
                    if (paramMap.ContainsKey(strName) == true)
                    {
                        RptViewFileParameter param = paramMap[strName];
                        this.gridWebGrid.Rows[i].Items.FindItemByKey("UserInput").Value     = FormatHelper.StringToBoolean(param.ViewerInput);
                        this.gridWebGrid.Rows[i].Items.FindItemByKey("ParameterDesc").Value = param.Description;
                        this.gridWebGrid.Rows[i].Items.FindItemByKey("DefaultValue").Value  = param.DefaultValue;
                    }

                    for (int n = 0; this.designView.FiltersUI != null && n < this.designView.FiltersUI.Length; n++)
                    {
                        if (this.designView.FiltersUI[n].InputType == ReportViewerInputType.FileParameter)
                        {
                            if (this.designView.FiltersUI[n].InputName == strName)
                            {
                                strFilterUI += strName + "@" + this.designView.FiltersUI[n].UIType + ";";
                                if (this.designView.FiltersUI[n].UIType == ReportFilterUIType.SelectQuery)
                                {
                                    strFilterUI += this.designView.FiltersUI[n].SelectQueryType + ";";
                                }
                                else if (this.designView.FiltersUI[n].UIType == ReportFilterUIType.DropDownList)
                                {
                                    strFilterUI += this.designView.FiltersUI[n].ListDataSourceType + ";";
                                    if (this.designView.FiltersUI[n].ListDataSourceType == "static")
                                    {
                                        strFilterUI += this.designView.FiltersUI[n].ListStaticValue + ";";
                                    }
                                    else
                                    {
                                        strFilterUI += Convert.ToInt32(this.designView.FiltersUI[n].ListDynamicDataSource).ToString() + ";" + this.designView.FiltersUI[n].ListDynamicTextColumn + ";" + this.designView.FiltersUI[n].ListDynamicValueColumn + ";";
                                    }
                                }
                                strFilterUI += "|";
                            }
                        }
                    }
                }
            }
            this.hidInputUIType.Value = strFilterUI;
        }
Exemplo n.º 2
0
        private void InitParameter()
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(this.designView.UploadFileName);
            XmlNamespaceManager manager = new XmlNamespaceManager(xmlDoc.CreateNavigator().NameTable);

            manager.AddNamespace("a", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
            manager.AddNamespace("rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner");

            XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("//a:ReportParameters", manager);

            if (node == null)
            {
                return;
            }
            List <RptViewFileParameter> paramList = new List <RptViewFileParameter>();

            for (int i = 0; i < node.ChildNodes.Count; i++)
            {
                XmlNode nodeParam = node.ChildNodes[i];
                if (nodeParam.Name == "ReportParameter")
                {
                    RptViewFileParameter param = new RptViewFileParameter();
                    param.FileParameterName = nodeParam.Attributes["Name"].FirstChild.Value;
                    param.Description       = nodeParam.SelectSingleNode("a:Prompt", manager).FirstChild.Value;
                    param.DataType          = nodeParam.SelectSingleNode("a:DataType", manager).FirstChild.Value.ToLower();
                    if (nodeParam.SelectSingleNode("a:DefaultValue/a:Values/a:Value", manager) != null)
                    {
                        param.DefaultValue = nodeParam.SelectSingleNode("a:DefaultValue/a:Values/a:Value", manager).FirstChild.Value;
                    }
                    param.Sequence = paramList.Count + 1;
                    paramList.Add(param);
                }
            }
            for (int i = 0; i < paramList.Count; i++)
            {
                DataRow row = DtSource.NewRow();
                row["Sequence"]      = paramList[i].Sequence;
                row["ParameterName"] = paramList[i].FileParameterName;
                row["ParameterDesc"] = paramList[i].Description;
                row["DataType"]      = paramList[i].DataType;
                row["DefaultValue"]  = paramList[i].DefaultValue;
                row["UserInput"]     = true;
                row["InputUIType"]   = "<a href='#' onclick=\"OpenTotalSetWindow('" + this.gridWebGrid.Rows.Count + "');return false;\">Click</a>";
                DtSource.Rows.Add(row);
            }
            this.gridWebGrid.DataSource = DtSource;
            this.gridWebGrid.DataBind();
        }
Exemplo n.º 3
0
        protected override void UpdateReportDesignView()
        {
            ArrayList listFilterUI = new ArrayList();
            Dictionary <string, string> filterUIList = new Dictionary <string, string>();
            string strFilterUI = this.hidInputUIType.Value;

            string[] strFilterUIList = strFilterUI.Split('|');
            for (int i = 0; i < strFilterUIList.Length; i++)
            {
                if (strFilterUIList[i] != "")
                {
                    string[] strTmpList = strFilterUIList[i].Split('@');
                    filterUIList.Add(strTmpList[0], strTmpList[1]);
                }
            }

            RptViewFileParameter[] parames = new RptViewFileParameter[this.gridWebGrid.Rows.Count];
            for (int i = 0; i < this.gridWebGrid.Rows.Count; i++)
            {
                RptViewFileParameter param = new RptViewFileParameter();
                param.Sequence          = i + 1;
                param.FileParameterName = this.gridWebGrid.Rows[i].Items.FindItemByKey("ParameterName").Text;
                param.Description       = this.gridWebGrid.Rows[i].Items.FindItemByKey("ParameterDesc").Text;
                param.DataType          = this.gridWebGrid.Rows[i].Items.FindItemByKey("DataType").Text;
                param.DefaultValue      = this.gridWebGrid.Rows[i].Items.FindItemByKey("DefaultValue").Text;
                param.ViewerInput       = FormatHelper.BooleanToString(Convert.ToBoolean(this.gridWebGrid.Rows[i].Items.FindItemByKey("UserInput").Value));
                parames[i] = param;

                string strName = param.FileParameterName;
                if (filterUIList.ContainsKey(strName) == true)
                {
                    RptViewFilterUI filterUI = new RptViewFilterUI();
                    filterUI.Sequence          = listFilterUI.Count + 1;
                    filterUI.InputType         = ReportViewerInputType.FileParameter;
                    filterUI.InputName         = strName;
                    filterUI.SqlFilterSequence = 0;
                    string[] strUIValList = filterUIList[strName].Split(';');
                    filterUI.UIType = strUIValList[0];
                    if (filterUI.UIType == ReportFilterUIType.SelectQuery)
                    {
                        filterUI.SelectQueryType = strUIValList[1];
                    }
                    else if (filterUI.UIType == ReportFilterUIType.DropDownList)
                    {
                        filterUI.ListDataSourceType = strUIValList[1];
                        if (filterUI.ListDataSourceType == "static")
                        {
                            string strStaticVal = "";
                            for (int n = 2; n < strUIValList.Length; n++)
                            {
                                if (strUIValList[n] != "" && strUIValList[n].IndexOf(",") >= 0)
                                {
                                    strStaticVal += strUIValList[n] + ";";
                                }
                            }
                            filterUI.ListStaticValue = strStaticVal;
                        }
                        else
                        {
                            filterUI.ListDynamicDataSource  = decimal.Parse(strUIValList[2]);
                            filterUI.ListDynamicTextColumn  = strUIValList[3];
                            filterUI.ListDynamicValueColumn = strUIValList[4];
                        }
                    }
                    listFilterUI.Add(filterUI);
                }
            }
            this.designView.FileParameters = parames;

            for (int i = 0; this.designView.FiltersUI != null && i < this.designView.FiltersUI.Length; i++)
            {
                if (this.designView.FiltersUI[i].InputType != ReportViewerInputType.FileParameter)
                {
                    listFilterUI.Add(this.designView.FiltersUI[i]);
                }
            }
            RptViewFilterUI[] targetFilterUI = new RptViewFilterUI[listFilterUI.Count];
            listFilterUI.CopyTo(targetFilterUI);
            this.designView.FiltersUI = targetFilterUI;
        }