private void InitColumnList()
        {
            this.lstUnSelectColumn.Items.Clear();
            ReportViewFacade  rptFacade  = new ReportViewFacade(this.DataProvider);
            RptViewDataSource dataSource = (RptViewDataSource)rptFacade.GetRptViewDataSource(this.designView.DesignMain.DataSourceID);

            if (dataSource.SourceType == DataSourceType.SQL)
            {
                RptViewDataSourceColumn[] columns = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
                for (int i = 0; i < columns.Length; i++)
                {
                    if (FormatHelper.StringToBoolean(columns[i].Visible) == true)
                    {
                        this.lstUnSelectColumn.Items.Add(new System.Web.UI.WebControls.ListItem(columns[i].Description, columns[i].ColumnName));
                    }
                }
                bIsSqlDataSource = true;
            }
            else if (dataSource.SourceType == DataSourceType.DLL)
            {
                RptViewDataSourceParam[] parames = rptFacade.GetRptViewDataSourceParamByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
                for (int i = 0; parames != null && i < parames.Length; i++)
                {
                    this.lstUnSelectColumn.Items.Add(new System.Web.UI.WebControls.ListItem(parames[i].Description, parames[i].ParameterName));
                }
            }
        }
        private void InitData()
        {
            string strDataSourceId = this.GetRequestParam("datasourceid");
            string strGroupColumn  = this.GetRequestParam("groupcolumn");
            string strColumnList   = this.Request.QueryString["columnlist"];

            if (strDataSourceId == "" || strGroupColumn == "" || strColumnList == "")
            {
                throw new Exception("$Error_RequestUrlParameter_Lost");
            }
            ReportViewFacade rptFacade = new ReportViewFacade(this.DataProvider);

            RptViewDataSourceColumn[]   columns   = rptFacade.GetRptViewDataSourceColumnByDataSourceId(int.Parse(strDataSourceId));
            Dictionary <string, string> columnMap = new Dictionary <string, string>();

            for (int i = 0; i < columns.Length; i++)
            {
                columnMap.Add(columns[i].ColumnName, columns[i].Description);
            }

            string strExistSet = this.Request.QueryString["existsetting"];
            Dictionary <string, string> existSetting = new Dictionary <string, string>();

            string[] strSelectColumns = strExistSet.Split(';');
            for (int i = 0; i < strSelectColumns.Length; i++)
            {
                if (strSelectColumns[i].Trim() != "")
                {
                    string[] tmpArr = strSelectColumns[i].Trim().Split(',');
                    existSetting.Add(tmpArr[0], tmpArr[1]);
                }
            }
            string[] columnList = strColumnList.Split(',');
            for (int i = 0; i < columnList.Length; i++)
            {
                if (columnList[i] != "" && columnList[i] != strGroupColumn)
                {
                    string strTotalType = ReportTotalType.Empty;
                    if (existSetting.ContainsKey(columnList[i]) == true)
                    {
                        strTotalType = existSetting[columnList[i]];
                    }
                    DataRow row = DtSource.NewRow();
                    if (this.DtSource.Columns.Contains("GUID"))
                    {
                        row["GUID"] = Guid.NewGuid().ToString();
                    }
                    row["Sequence"]   = this.DtSource.Rows.Count + 1;
                    row["ColumnName"] = columnList[i];
                    row["ColumnDesc"] = columnMap[columnList[i]];
                    row["TotalType"]  = strTotalType;
                    this.DtSource.Rows.Add(row);
                }
            }
            this.gridWebGrid.DataSource = DtSource;
            this.gridWebGrid.DataBind();
            this.txtGroupColumnName.Text = columnMap[strGroupColumn];
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // 初始化页面语言
            this.InitPageLanguage(this.languageComponent1, false);

            this.imgSelect.Attributes.Add("onclick", "MoveUserGroup('" + this.lstUnSelectedColumn.ClientID + "','" + this.lstSelectedColumn.ClientID + "')");
            this.imgUnSelect.Attributes.Add("onclick", "MoveUserGroup('" + this.lstSelectedColumn.ClientID + "','" + this.lstUnSelectedColumn.ClientID + "')");
            if (this.IsPostBack == false)
            {
                ReportViewFacade          rptFacade = new ReportViewFacade(this.DataProvider);
                RptViewDataSourceColumn[] columns   = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
                for (int i = 0; columns != null && i < columns.Length; i++)
                {
                    if (FormatHelper.StringToBoolean(columns[i].Visible) == true)
                    {
                        this.lstUnSelectedColumn.Items.Add(new ListItem(columns[i].Description, columns[i].ColumnName));
                    }
                }
                this.lblDesignStep2Title.Text = this.languageComponent1.GetString("$PageControl_DesignStep2Title");
            }
        }
        private void InitColumnList()
        {
            this.lstUnSelectColumn.Items.Clear();
            ReportViewFacade  rptFacade  = new ReportViewFacade(this.DataProvider);
            RptViewDataSource dataSource = (RptViewDataSource)rptFacade.GetRptViewDataSource(this.designView.DesignMain.DataSourceID);

            RptViewDataSourceColumn[]   columns   = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
            Dictionary <string, string> columnMap = new Dictionary <string, string>();

            for (int i = 0; i < columns.Length; i++)
            {
                columnMap.Add(columns[i].ColumnName, columns[i].Description);
            }
            for (int i = 0; i < this.designView.GridColumns.Length; i++)
            {
                this.lstUnSelectColumn.Items.Add(new ListItem(columnMap[this.designView.GridColumns[i].ColumnName], this.designView.GridColumns[i].ColumnName));
            }
            if (dataSource.SourceType == DataSourceType.SQL)
            {
                bIsSqlDataSource = true;
            }
        }
示例#5
0
        void drpDDLDynamicDataSource_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.txtHideDDLDynamicSourceText.Value  = "";
            this.hidHideDDLDynamicSourceText.Value  = "";
            this.txtHideDDLDynamicSourceValue.Value = "";
            this.hidHideDDLDynamicSourceValue.Value = "";

            this.listHideDDLDynamicSourceColumnList.Items.Clear();
            if (this.drpDDLDynamicDataSource.SelectedValue == "")
            {
                return;
            }
            ReportViewFacade facade = new ReportViewFacade(this.DataProvider);

            object[] objs = facade.GetRptViewDataSourceColumnByDataSourceId(int.Parse(this.drpDDLDynamicDataSource.SelectedValue));
            if (objs != null)
            {
                for (int i = 0; i < objs.Length; i++)
                {
                    this.listHideDDLDynamicSourceColumnList.Items.Add(new ListItem(((RptViewDataSourceColumn)objs[i]).Description, ((RptViewDataSourceColumn)objs[i]).ColumnName));
                }
            }
        }
示例#6
0
        /// <summary>
        /// 构建DataSet
        /// </summary>
        private string BuildDataSet(ReportDesignView designView, XmlDocument formatXml)
        {
            ReportViewFacade rptFacade = new ReportViewFacade(this.DataProvider);

            RptViewDataSourceColumn[] columnObjs = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(designView.DesignMain.DataSourceID));
            Dictionary <string, RptViewDataSourceColumn> columns = new Dictionary <string, RptViewDataSourceColumn>();

            for (int i = 0; i < columnObjs.Length; i++)
            {
                columns.Add(columnObjs[i].ColumnName, columnObjs[i]);
            }

            string strDataSet = formatXml.SelectSingleNode("//DataSet").FirstChild.Value;
            string strFields  = "";
            string strField   = formatXml.SelectSingleNode("//DataSetField").FirstChild.Value;

            for (int i = 0; designView.GridColumns != null && i < designView.GridColumns.Length; i++)
            {
                string strTmp = strField.Replace("<%Name%>", designView.GridColumns[i].ColumnName);
                strTmp    = strTmp.Replace("<%Type%>", columns[designView.GridColumns[i].ColumnName].DataType);
                strFields = strFields + strTmp;
            }
            if (designView.GridColumns == null || designView.GridColumns.Length == 0)
            {
                for (int i = 0; i < columnObjs.Length; i++)
                {
                    string strTmp = strField.Replace("<%Name%>", columnObjs[i].ColumnName);
                    strTmp    = strTmp.Replace("<%Type%>", columnObjs[i].DataType);
                    strFields = strFields + strTmp;
                }
            }
            strDataSet = strDataSet.Replace("<%FieldList%>", strFields);
            strDataSet = strDataSet.Replace("<%SQLQuery%>", "");

            return(strDataSet);
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            needVScroll     = true;
            this.gridHelper = new GridHelperNew(this.gridWebGrid, DtSource);
            ReportViewFacade rptFacade = new ReportViewFacade(this.DataProvider);

            RptViewDataSourceColumn[] columns = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
            if (!IsPostBack)
            {
                // 初始化页面语言
                this.InitPageLanguage(this.languageComponent1, false);
                InitButtonVisible();

                this.txtReportName.Text = this.designView.DesignMain.ReportName;
                //InitGridData();
                this.InitChartDescLanguage();
                this.lstUnSelectColumn.Items.Clear();
                for (int i = 0; columns != null && i < columns.Length; i++)
                {
                    this.lstUnSelectColumn.Items.Add(new System.Web.UI.WebControls.ListItem(columns[i].Description, columns[i].ColumnName));
                }
            }
            this.lstUnSelectedSeries.Items.Clear();
            this.lstUnSelectedCategory.Items.Clear();
            for (int i = 0; columns != null && i < columns.Length; i++)
            {
                this.lstUnSelectedSeries.Items.Add(new System.Web.UI.WebControls.ListItem(columns[i].Description, columns[i].ColumnName));
                this.lstUnSelectedCategory.Items.Add(new System.Web.UI.WebControls.ListItem(columns[i].Description, columns[i].ColumnName));
            }
            this.lstSelectedSeries.Items.Clear();
            this.lstSelectedCategory.Items.Clear();
            if (this.hidSelectedSeriesValue.Value != "")
            {
                string[] strArrTmp = this.hidSelectedSeriesValue.Value.Split(';');
                for (int i = 0; i < strArrTmp.Length; i++)
                {
                    if (strArrTmp[i] != "")
                    {
                        System.Web.UI.WebControls.ListItem item = this.lstUnSelectedSeries.Items.FindByValue(strArrTmp[i]);
                        if (item != null)
                        {
                            this.lstSelectedSeries.Items.Add(new System.Web.UI.WebControls.ListItem(item.Text, item.Value));
                            this.lstUnSelectedSeries.Items.Remove(item);
                        }
                    }
                }
            }
            if (this.hidSelectedCategoryValue.Value != "")
            {
                string[] strArrTmp = this.hidSelectedCategoryValue.Value.Split(';');
                for (int i = 0; i < strArrTmp.Length; i++)
                {
                    if (strArrTmp[i] != "")
                    {
                        System.Web.UI.WebControls.ListItem item = this.lstUnSelectedCategory.Items.FindByValue(strArrTmp[i]);
                        if (item != null)
                        {
                            this.lstSelectedCategory.Items.Add(new System.Web.UI.WebControls.ListItem(item.Text, item.Value));
                            this.lstUnSelectedCategory.Items.Remove(item);
                        }
                    }
                }
            }
            if (this.hidSelectedDataValue.Value != "")
            {
                string[] strArrTmp = this.hidSelectedDataValue.Value.Split(';');
                for (int i = 0; i < strArrTmp.Length; i++)
                {
                    if (strArrTmp[i] != "")
                    {
                        System.Web.UI.WebControls.ListItem item = this.lstUnSelectColumn.Items.FindByValue(strArrTmp[i]);
                        if (item != null)
                        {
                            this.lstUnSelectColumn.Items.Remove(item);
                        }
                    }
                }
            }
            if (this.gridWebGrid.Columns.FromKey("TotalType") != null)
            {
                DropDownProvider dropdownProvider = this.gridWebGrid.EditorProviders.GetProviderById("dropdownProviderTotalType") as DropDownProvider;
                BindDropDownTotalType(dropdownProvider);
                dropdownProvider.EditorControl.DropDownContainerWidth = new Unit(150);
            }
            this.gridWebGrid.Behaviors.CreateBehavior <Activation>().Enabled = true;
        }
示例#8
0
        private void InitGridData()
        {
            ReportViewFacade rptFacade = new ReportViewFacade(this.DataProvider);

            RptViewDataSourceColumn[] sourceColumns = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(this.designView.DesignMain.DataSourceID));
            Dictionary <string, RptViewDataSourceColumn> columnMap = new Dictionary <string, RptViewDataSourceColumn>();

            for (int i = 0; i < sourceColumns.Length; i++)
            {
                columnMap.Add(sourceColumns[i].ColumnName, sourceColumns[i]);
            }

            this.tbFormat.Rows.Clear();
            // 列格式
            HtmlTableRow rowColumn = new HtmlTableRow();

            rowColumn.Cells.Add(new HtmlTableCell());
            for (int i = 0; i < this.designView.GridColumns.Length; i++)
            {
                HtmlTableCell cellHeader = new HtmlTableCell();
                cellHeader.Style.Add("border", "solid 1px #000000");
                cellHeader.Style.Add("width", "2.5cm");
                HtmlInputHidden hidHeader = new HtmlInputHidden();
                hidHeader.ID = "hidColumn_" + this.designView.GridColumns[i].ColumnName;
                hidHeader.Attributes.Add("FormatType", "column");
                hidHeader.Attributes.Add("ColumnName", this.designView.GridColumns[i].ColumnName);
                hidHeader.Value = Request[hidHeader.ID];
                cellHeader.Controls.Add(hidHeader);
                HyperLink linkHeader = new HyperLink();
                linkHeader.NavigateUrl = "#";
                linkHeader.Text        = this.languageComponent1.GetString("$PageControl_ColumnFormat");
                linkHeader.ID          = "linkColumn_" + this.designView.GridColumns[i].ColumnName;
                linkHeader.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=column&column=" + this.designView.GridColumns[i].ColumnName + "','" + hidHeader.ClientID + "','" + linkHeader.ClientID + "');return false;");
                cellHeader.Controls.Add(linkHeader);
                rowColumn.Cells.Add(cellHeader);
            }
            this.tbFormat.Rows.Add(rowColumn);

            // Header
            HtmlTableRow  rowHeader     = new HtmlTableRow();
            HtmlTableCell cellHeaderRow = new HtmlTableCell();

            cellHeaderRow.Style.Add("border", "solid 1px #000000");
            cellHeaderRow.Style.Add("width", "2.5cm");
            HtmlInputHidden hidHeaderRow = new HtmlInputHidden();

            hidHeaderRow.ID = "hidHeaderRow";
            hidHeaderRow.Attributes.Add("FormatType", "headerrow");
            hidHeaderRow.Value = this.Request[hidHeaderRow.ID];
            cellHeaderRow.Controls.Add(hidHeaderRow);
            HyperLink linkHeaderRow = new HyperLink();

            linkHeaderRow.NavigateUrl = "#";
            linkHeaderRow.Text        = this.languageComponent1.GetString("$PageControl_TableHeadFormat");
            linkHeaderRow.ID          = "linkHeaderRow";
            linkHeaderRow.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=headerrow','" + hidHeaderRow.ClientID + "','" + linkHeaderRow.ClientID + "');return false;");
            cellHeaderRow.Controls.Add(linkHeaderRow);
            rowHeader.Cells.Add(cellHeaderRow);
            for (int i = 0; i < this.designView.GridColumns.Length; i++)
            {
                HtmlTableCell cellHeader = new HtmlTableCell();
                cellHeader.Style.Add("border", "solid 1px #000000");
                cellHeader.Style.Add("width", "2.5cm");
                HtmlInputHidden hidHeader = new HtmlInputHidden();
                hidHeader.ID = "hidHeader_" + this.designView.GridColumns[i].ColumnName;
                hidHeader.Attributes.Add("FormatType", "header");
                hidHeader.Attributes.Add("ColumnName", this.designView.GridColumns[i].ColumnName);
                hidHeader.Value = this.Request[hidHeader.ID];
                cellHeader.Controls.Add(hidHeader);
                HyperLink linkHeader = new HyperLink();
                linkHeader.NavigateUrl = "#";
                linkHeader.Text        = columnMap[this.designView.GridColumns[i].ColumnName].Description;
                linkHeader.ID          = "linkHeader_" + this.designView.GridColumns[i].ColumnName;
                linkHeader.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=header&column=" + this.designView.GridColumns[i].ColumnName + "','" + hidHeader.ClientID + "','" + linkHeader.ClientID + "');return false;");
                cellHeader.Controls.Add(linkHeader);
                rowHeader.Cells.Add(cellHeader);
            }
            this.tbFormat.Rows.Add(rowHeader);

            // 分组
            for (int i = 0; this.designView.GridGroups != null && i < this.designView.GridGroups.Length; i++)
            {
                HtmlTableRow  rowGroup        = new HtmlTableRow();
                HtmlTableCell cellGroupHeader = new HtmlTableCell();
                cellGroupHeader.Style.Add("border", "solid 1px #000000");
                cellGroupHeader.Style.Add("width", "2.5cm");
                HtmlInputHidden hidGroupHeader = new HtmlInputHidden();
                hidGroupHeader.ID = "hidGroup_" + this.designView.GridGroups[i].GroupSequence;
                hidGroupHeader.Attributes.Add("FormatType", "group");
                hidGroupHeader.Attributes.Add("GroupSeq", this.designView.GridGroups[i].GroupSequence.ToString());
                hidGroupHeader.Value = this.Request[hidGroupHeader.ID];
                cellGroupHeader.Controls.Add(hidGroupHeader);
                HyperLink linkGroupHeader = new HyperLink();
                linkGroupHeader.NavigateUrl = "#";
                linkGroupHeader.Text        = this.languageComponent1.GetString("$PageControl_RowFormat");
                linkGroupHeader.ID          = "linkGroup_" + this.designView.GridGroups[i].GroupSequence;
                linkGroupHeader.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=group&group=" + this.designView.GridGroups[i].GroupSequence + "','" + hidGroupHeader.ClientID + "','" + linkGroupHeader.ClientID + "');return false;");
                cellGroupHeader.Controls.Add(linkGroupHeader);
                rowGroup.Cells.Add(cellGroupHeader);
                for (int n = 0; n < this.designView.GridColumns.Length; n++)
                {
                    HtmlTableCell cellGrupData = new HtmlTableCell();
                    cellGrupData.Style.Add("border", "solid 1px #000000");
                    cellGrupData.Style.Add("width", "2.5cm");
                    bool bIsEmpty = false;
                    if (this.designView.GridColumns[n].ColumnName != this.designView.GridGroups[i].ColumnName)
                    {
                        bIsEmpty = true;
                    }
                    for (int x = 0; x < this.designView.GridGroupTotals.Length; x++)
                    {
                        if (this.designView.GridGroupTotals[x].GroupSequence == this.designView.GridGroups[i].GroupSequence &&
                            this.designView.GridGroupTotals[x].ColumnName == this.designView.GridColumns[n].ColumnName)
                        {
                            if (this.designView.GridGroupTotals[x].TotalType != ReportTotalType.Empty)
                            {
                                bIsEmpty = false;
                            }
                            break;
                        }
                    }
                    for (int x = 0; x < this.designView.GridGroups.Length; x++)
                    {
                        if (this.designView.GridColumns[n].ColumnName == this.designView.GridGroups[x].ColumnName)
                        {
                            if (x < i)
                            {
                                bIsEmpty = true;
                            }
                        }
                    }
                    if (bIsEmpty == false)
                    {
                        HtmlInputHidden hidGrupData = new HtmlInputHidden();
                        hidGrupData.ID = "hidGroupData_" + this.designView.GridGroups[i].GroupSequence + "_" + this.designView.GridColumns[n].ColumnName;
                        hidGrupData.Attributes.Add("FormatType", "groupdata");
                        hidGrupData.Attributes.Add("GroupSeq", this.designView.GridGroups[i].GroupSequence.ToString());
                        hidGrupData.Attributes.Add("ColumnName", this.designView.GridColumns[n].ColumnName);
                        hidGrupData.Value = this.Request[hidGrupData.ID];
                        cellGrupData.Controls.Add(hidGrupData);
                        HyperLink linkGroupData = new HyperLink();
                        linkGroupData.NavigateUrl = "#";
                        linkGroupData.Text        = columnMap[this.designView.GridColumns[n].ColumnName].Description;
                        linkGroupData.ID          = "linkGroupData_" + this.designView.GridGroups[i].GroupSequence + "_" + this.designView.GridColumns[n].ColumnName;
                        linkGroupData.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=groupdata&group=" + this.designView.GridGroups[i].GroupSequence + "&column=" + this.designView.GridColumns[n].ColumnName + "','" + hidGrupData.ClientID + "','" + linkGroupData.ClientID + "');return false;");
                        cellGrupData.Controls.Add(linkGroupData);
                    }
                    rowGroup.Cells.Add(cellGrupData);
                }
                this.tbFormat.Rows.Add(rowGroup);
            }

            // 详细数据
            HtmlTableRow  rowItemData    = new HtmlTableRow();
            HtmlTableCell cellItemHeader = new HtmlTableCell();

            cellItemHeader.Style.Add("border", "solid 1px #000000");
            cellItemHeader.Style.Add("width", "2.5cm");
            HtmlInputHidden hidItemHeader = new HtmlInputHidden();

            hidItemHeader.ID = "hidItemHeader";
            hidItemHeader.Attributes.Add("FormatType", "item");
            hidItemHeader.Value = this.Request[hidItemHeader.ID];
            cellItemHeader.Controls.Add(hidItemHeader);
            HyperLink linkItemHeader = new HyperLink();

            linkItemHeader.NavigateUrl = "#";
            linkItemHeader.Text        = this.languageComponent1.GetString("$PageControl_RowFormat");
            linkItemHeader.ID          = "linkItemHeader";
            linkItemHeader.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=item" + "','" + hidItemHeader.ClientID + "','" + linkItemHeader.ClientID + "');return false;");
            cellItemHeader.Controls.Add(linkItemHeader);
            rowItemData.Cells.Add(cellItemHeader);
            for (int n = 0; n < this.designView.GridColumns.Length; n++)
            {
                HtmlTableCell cellItemData = new HtmlTableCell();
                cellItemData.Style.Add("border", "solid 1px #000000");
                cellItemData.Style.Add("width", "2.5cm");
                bool bIsEmpty = false;
                for (int x = 0; this.designView.GridGroups != null && x < this.designView.GridGroups.Length; x++)
                {
                    if (this.designView.GridGroups[x].ColumnName == this.designView.GridColumns[n].ColumnName)
                    {
                        bIsEmpty = true;
                        break;
                    }
                }
                if (bIsEmpty == false)
                {
                    HtmlInputHidden hidItemData = new HtmlInputHidden();
                    hidItemData.ID = "hidItemData_" + this.designView.GridColumns[n].ColumnName;
                    hidItemData.Attributes.Add("FormatType", "itemdata");
                    hidItemData.Attributes.Add("ColumnName", this.designView.GridColumns[n].ColumnName);
                    hidItemData.Value = this.Request[hidItemData.ID];
                    cellItemData.Controls.Add(hidItemData);
                    HyperLink linkItemData = new HyperLink();
                    linkItemData.NavigateUrl = "#";
                    linkItemData.Text        = columnMap[this.designView.GridColumns[n].ColumnName].Description;
                    linkItemData.ID          = "linkItemData_" + this.designView.GridColumns[n].ColumnName;
                    linkItemData.Attributes.Add("onclick", "OpenFormatWin('" + "FRptTextFormatMP.aspx?type=itemdata&column=" + this.designView.GridColumns[n].ColumnName + "','" + hidItemData.ClientID + "','" + linkItemData.ClientID + "');return false;");
                    cellItemData.Controls.Add(linkItemData);
                }
                rowItemData.Cells.Add(cellItemData);
            }
            this.tbFormat.Rows.Add(rowItemData);
        }
示例#9
0
        /// <summary>
        /// 生成报表文件
        /// </summary>
        /// <param name="designView">报表设计数据</param>
        /// <param name="formatFile">报表格式模板</param>
        /// <returns>报表文件路径</returns>
        public string Generate(ReportDesignView designView, string formatFile, string reportFile)
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(formatFile);
            StringBuilder sbRpt = new StringBuilder();

            sbRpt.Append(xmlDoc.SelectSingleNode("//MainBody").FirstChild.Value);

            designView.DataSourceColumns.Clear();
            ReportViewFacade rptFacade = new ReportViewFacade(this.DataProvider);

            RptViewDataSourceColumn[] objColumns = rptFacade.GetRptViewDataSourceColumnByDataSourceId(Convert.ToInt32(designView.DesignMain.DataSourceID));
            for (int i = 0; objColumns != null && i < objColumns.Length; i++)
            {
                designView.DataSourceColumns.Add(objColumns[i].ColumnName, objColumns[i]);
            }

            sbRpt.Replace("<%ReportID%>", System.Guid.NewGuid().ToString().ToLower());

            string  strTable     = "";
            string  strChart     = "";
            decimal iRptHeight   = 0;
            decimal iRptWidth    = 0;
            decimal iTableHeight = 0;

            if (designView.DesignMain.DisplayType == ReportDisplayType.Grid ||
                designView.DesignMain.DisplayType == ReportDisplayType.GridChart)
            {
                strTable   = this.BuildTable(designView, xmlDoc);
                iRptHeight = ((designView.GridGroups == null ? 0 : designView.GridGroups.Length) + 2) * 0.5M;
                foreach (decimal dWidth in dicColumnWidth.Values)
                {
                    iRptWidth += dWidth;
                }
                iTableHeight = iRptHeight;
            }
            if (designView.DesignMain.DisplayType == ReportDisplayType.Chart ||
                designView.DesignMain.DisplayType == ReportDisplayType.GridChart)
            {
                strChart   = this.BuildChart(designView, xmlDoc);
                iRptHeight = iRptHeight + 9;
                if (iRptWidth == 0)
                {
                    iRptWidth = 22;
                }
            }
            string strExtendText = BuildExtendText(designView, xmlDoc);

            strTable   = strTable.Replace("<%Top%>", dRptExtendTextHeight.ToString());
            strChart   = strChart.Replace("<%Top%>", (iTableHeight + dRptExtendTextHeight).ToString());
            iRptHeight = iRptHeight + dRptExtendTextHeight;

            sbRpt.Replace("<%ExtendText%>", strExtendText);
            sbRpt.Replace("<%Table%>", strTable);
            sbRpt.Replace("<%Chart%>", strChart);
            sbRpt.Replace("<%ReportHeight%>", iRptHeight.ToString() + "cm");
            sbRpt.Replace("<%ReportWidth%>", iRptWidth.ToString() + "cm");

            sbRpt.Replace("<%DataSet%>", this.BuildDataSet(designView, xmlDoc));

            string strFileName = reportFile;

            System.IO.StreamWriter writer = new System.IO.StreamWriter(strFileName, false, Encoding.UTF8);
            writer.Write(sbRpt.ToString());
            writer.Close();

            return(strFileName);
        }