Ejemplo n.º 1
0
 private TablixHierarchyType CreateTablixRowHierarchy()
 {
     var members = CreateMs(new TablixMembersType(), true, true);
     var hie = new TablixHierarchy { TablixMembers = new TablixMembersType[] { members } };
     return hie.Create();
 }
Ejemplo n.º 2
0
 public TablixHierarchyType CreateTablixColumnHierarchy()
 {
     TablixMembersType main = new TablixMembersType();
     List<TablixMemberType> members = new List<TablixMemberType>();
     foreach (var f in m_fields)
     {
         TablixMember m = new TablixMember();
         members.Add(m.Create());
     }
     main.TablixMember = members.ToArray();
     TablixHierarchy hie = new TablixHierarchy();
     hie.TablixMembers = new TablixMembersType[] { main };
     return hie.Create();
 }
Ejemplo n.º 3
0
        public Rdl.TablixType CreateTable()
        {
            Tablix table = new Tablix();
            table.Style = new Style { Border = new Border { Style = "Solid" }.Create() }.Create();
            table.TablixBody = new TablixBody().Create();
            TablixBody tableBody = new TablixBody();
            tableBody.TablixColumns = new TablixColumnsType[] { CreateTablixColumns() };

            TablixRows rows = new TablixRows();
            List<TablixRowType> rowList = new List<TablixRowType>();

            TablixMembersType m_rowHierarchy = new TablixMembersType();
            List<TablixMemberType> members = new List<TablixMemberType>();
            if (ShowHeader)
            {
                rowList.Add( CreateHeaderTableRow());
                TablixMember m = new TablixMember();
                m.KeepWithGroup = TablixMemberTypeKeepWithGroup.After;
                members.Add(m.Create());
            }
            if (ShowDetails)
            {
                rowList.Add(CreateTableRow());

                //����Ϊ��ϸ
                TablixMember m = new TablixMember();
                GroupType g = new GroupType();
                g.Name = "��ϸ��Ϣ";
                m.Group = g;

                TablixMembersType childMembers = new TablixMembersType();
                TablixMember childMember = new TablixMember();
                childMembers.TablixMember = new TablixMemberType[] { childMember.Create() };
                m.TablixMembers=childMembers;
                members.Add(m.Create());
            }
            rows.TablixRow = rowList.ToArray();

            //<TablixRowHierarchy>
            m_rowHierarchy.TablixMember = members.ToArray();
            TablixHierarchy rowHierarchy = new TablixHierarchy();
            rowHierarchy.TablixMembers = new TablixMembersType[] { m_rowHierarchy };
            table.TablixRowHierarchy = rowHierarchy.Create();

            //if (Parent.Grouping!=null)
            //{
            //    table.TableGroups = CreateTableGroups();
            //}
            tableBody.TablixRows = new TablixRowsType[]{ rows.Create()};
            table.TablixBody = tableBody.Create();

            //<TablixColumnHierarchy>
            table.TablixColumnHierarchy = CreateTablixColumnHierarchy();
            table.Top = "0.2mm";
            table.Left = Parent.LeftMargin.ToString() + "mm";
            return table.Create(TableName);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Create report
        /// </summary>
        /// <param name="model">Create report model</param>
        public void CreateReport(CreateReportModel model)
        {
            var ssrs = this.ssrsWrapperProvider.GetReportingServiceWrapper();

            Warning[] warnings;

            Report report = new Report();

            report.Description = model.ReportDescription;

            report.Page.PageWidth  = new ReportSize(280, SizeTypes.Mm);
            report.Page.PageHeight = new ReportSize(210, SizeTypes.Mm);
            report.Width           = new ReportSize(297, SizeTypes.Mm);
            report.Body.Height     = new ReportSize(210, SizeTypes.Mm);

            DataSource dataSource = new DataSource
            {
                Name = "DataSource",
                DataSourceReference = ConfigurationManager.AppSettings["SharedSsrsDataSourceName"]
            };

            report.DataSources.Add(dataSource);

            report.DataSets.Add(new DataSet()
            {
                Name   = "DataSet1",
                Fields = this.ssrsProvider.GetFieldsFromQuery(model.DatabaseName, model.Query),
                Query  = new Query()
                {
                    CommandType    = CommandTypes.Text,
                    CommandText    = string.Format("USE {0}; {1}", model.DatabaseName, model.Query),
                    Timeout        = 30,
                    DataSourceName = report.DataSources[0].Name
                }
            });

            //report.ReportParameters.Add(new ReportParameter()
            //                                {
            //                                    DataType = DataTypes.String,
            //                                    UsedInQuery = UsedInQueryTypes.False,
            //                                    MultiValue = false,
            //                                    Prompt = "?",
            //                                    Name = "TestParameter",
            //                                    AllowBlank = true
            //                                });

            Tablix tablix = new Tablix()
            {
                Name  = "tablix1",
                Width = new ReportSize("250mm"),
                Left  = new ReportSize("3mm")
            };

            tablix.DataSetName = report.DataSets[0].Name;

            var colHeirarcy = new TablixHierarchy();
            var rowHeirarcy = new TablixHierarchy();

            foreach (var field in report.DataSets[0].Fields)
            {
                tablix.TablixBody.TablixColumns.Add(new TablixColumn()
                {
                    Width = new ReportSize(50, SizeTypes.Mm)
                });
            }

            TablixRow header = new TablixRow()
            {
                Height = new ReportSize(8, SizeTypes.Mm)
            };

            foreach (var field in report.DataSets[0].Fields)
            {
                TablixCell cell = new TablixCell();
                Textbox    tbx  = new Textbox();
                tbx.Name = tablix.Name + "_Header_txt" + field.Name.Replace(" ", string.Empty);
                tbx.Paragraphs[0].TextRuns[0].Value = field.Name;
                tbx.Paragraphs[0].TextRuns[0].Style = new Style()
                {
                    FontWeight = new ReportExpression <FontWeights>(FontWeights.Bold),
                    FontSize   = new ReportExpression <ReportSize>("10pt"),
                };

                cell.CellContents = new CellContents()
                {
                    ReportItem = tbx
                };
                header.TablixCells.Add(cell);
                colHeirarcy.TablixMembers.Add(new TablixMember());
            }

            tablix.TablixBody.TablixRows.Add(header);

            TablixRow row = new TablixRow()
            {
                Height = new ReportSize(5, SizeTypes.Mm)
            };

            foreach (var field in report.DataSets[0].Fields)
            {
                TablixCell cell = new TablixCell();

                Textbox tbx = new Textbox();
                tbx.Name = "txt" + field.Name.Replace(" ", string.Empty);
                tbx.Paragraphs[0].TextRuns[0].Value = "=Fields!" + field.Name + ".Value";
                tbx.Paragraphs[0].TextRuns[0].Style = new Style()
                {
                    FontSize = new ReportExpression <ReportSize>("8pt")
                };
                cell.CellContents = new CellContents()
                {
                    ReportItem = tbx
                };
                row.TablixCells.Add(cell);
            }

            tablix.TablixBody.TablixRows.Add(row);
            var mem = new TablixMember()
            {
                KeepTogether = true
            };
            var mem2 = new TablixMember()
            {
                Group = new Group {
                    Name = "Details"
                }
            };

            rowHeirarcy.TablixMembers.Add(mem);
            rowHeirarcy.TablixMembers.Add(mem2);

            tablix.TablixColumnHierarchy = colHeirarcy;
            tablix.TablixRowHierarchy    = rowHeirarcy;

            tablix.Style = new Style()
            {
                Border = new Border()
            };

            report.Body.ReportItems.Add(tablix);

            RdlSerializer serializer = new RdlSerializer();

            using (MemoryStream ms = new MemoryStream())
            {
                serializer.Serialize(ms, report);
                ssrs.CreateCatalogItem("Report", model.ReportName, "/", false, ms.ToArray(), null, out warnings);
            }
        }