Esempio n. 1
0
        public void Deserialize(IntermediateFormatReader reader)
        {
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.Hidden:
                    m_hidden = (ExpressionInfo)reader.ReadRIFObject();
                    break;

                case MemberName.Toggle:
                    m_toggle = reader.ReadString();
                    break;

                case MemberName.RecursiveReceiver:
                    m_recursiveReceiver = reader.ReadBoolean();
                    break;

                case MemberName.ToggleSender:
                    m_toggleSender = reader.ReadReference <TextBox>(this);
                    break;

                case MemberName.RecursiveMember:
                    m_recursiveMember = reader.ReadReference <TablixMember>(this);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Esempio n. 2
0
        public void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.ToggleSender:
                {
                    if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value3))
                    {
                        m_toggleSender = (value3 as TextBox);
                    }
                    break;
                }

                case MemberName.RecursiveMember:
                {
                    if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value2))
                    {
                        m_recursiveMember = (value2 as TablixMember);
                    }
                    break;
                }

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
Esempio 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);
        }
 private static bool ShouldBeCollected(TablixMember tablixMember, ref bool useForPageHFEval)
 {
     if (useForPageHFEval && tablixMember.Visibility != null && tablixMember.Visibility.ToggleItem == null && tablixMember.Visibility.Hidden.IsExpression && tablixMember.Instance.Visibility.CurrentlyHidden)
     {
         useForPageHFEval = false;
     }
     if (useForPageHFEval)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 5
0
 private static bool WalkTablixMember(TablixMember tablixMember, ref bool useForPageHFEval, Interactivity interactivity)
 {
     if (useForPageHFEval && tablixMember.Visibility != null && tablixMember.Visibility.ToggleItem == null && tablixMember.Visibility.Hidden.IsExpression && tablixMember.Instance.Visibility.CurrentlyHidden)
     {
         useForPageHFEval = false;
     }
     if (useForPageHFEval || interactivity != null)
     {
         return(true);
     }
     return(false);
 }
Esempio n. 6
0
 private static void DumpTablixMembers(List <TablixColumn> tablixColumns, Queue <TablixMember> members, StreamWriter stream, int lastLevel, int index)
 {
     if (members.Count == 0)
     {
         stream.Write("</tr>");
     }
     else
     {
         TablixMember tablixMember = members.Dequeue();
         if (tablixMember.HeaderLevel > lastLevel)
         {
             stream.Write("</tr><tr>");
             lastLevel = tablixMember.HeaderLevel;
         }
         if (tablixMember.ID > -1)
         {
             SupportabilityRIFVisualizer.DumpTablixMember(tablixMember, stream);
         }
         if (tablixMember.SubMembers != null)
         {
             if (tablixMember.RowSpan > 1)
             {
                 if (tablixMember.ID > -1)
                 {
                     TablixMember tablixMember2 = new TablixMember();
                     tablixMember2.SubMembers  = new TablixMemberList();
                     tablixMember2.RowSpan     = tablixMember.RowSpan - 1;
                     tablixMember2.ID          = -1;
                     tablixMember2.HeaderLevel = tablixMember.HeaderLevel + 1;
                     members.Enqueue(tablixMember2);
                     foreach (TablixMember subMember in tablixMember.SubMembers)
                     {
                         tablixMember2.SubMembers.Add(subMember);
                     }
                 }
                 else
                 {
                     tablixMember.RowSpan--;
                     members.Enqueue(tablixMember);
                 }
             }
             else
             {
                 foreach (TablixMember subMember2 in tablixMember.SubMembers)
                 {
                     members.Enqueue(subMember2);
                 }
             }
         }
         SupportabilityRIFVisualizer.DumpTablixMembers(tablixColumns, members, stream, lastLevel, index);
     }
 }
Esempio n. 7
0
        public override void ResolveReferences(Dictionary <AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            base.ResolveReferences(memberReferencesCollection, referenceableItems);
            List <MemberReference> list = default(List <MemberReference>);

            if (memberReferencesCollection.TryGetValue(TextBox.m_Declaration.ObjectType, out list))
            {
                foreach (MemberReference item in list)
                {
                    switch (item.MemberName)
                    {
                    case MemberName.ContainingScopes:
                        if (this.m_containingScopes == null)
                        {
                            this.m_containingScopes = new GroupingList();
                        }
                        if (item.RefID != -2)
                        {
                            Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                            Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                            Global.Tracer.Assert(!this.m_containingScopes.Contains((Grouping)referenceableItems[item.RefID]));
                            this.m_containingScopes.Add((Grouping)referenceableItems[item.RefID]);
                        }
                        else
                        {
                            this.m_containingScopes.Add(null);
                        }
                        break;

                    case MemberName.RecursiveMember:
                    {
                        IReferenceable referenceable = default(IReferenceable);
                        if (referenceableItems.TryGetValue(item.RefID, out referenceable))
                        {
                            this.m_recursiveMember = (referenceable as TablixMember);
                        }
                        break;
                    }

                    default:
                        Global.Tracer.Assert(false);
                        break;
                    }
                }
            }
        }
Esempio n. 8
0
        public override void ResolveReferences(Dictionary <Microsoft.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            base.ResolveReferences(memberReferencesCollection, referenceableItems);
            if (!memberReferencesCollection.TryGetValue(m_Declaration.ObjectType, out List <MemberReference> value))
            {
                return;
            }
            foreach (MemberReference item in value)
            {
                switch (item.MemberName)
                {
                case MemberName.ContainingScopes:
                    if (m_containingScopes == null)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    if (item.RefID != -2)
                    {
                        Global.Tracer.Assert(referenceableItems.ContainsKey(item.RefID));
                        Global.Tracer.Assert(referenceableItems[item.RefID] is Grouping);
                        Global.Tracer.Assert(!m_containingScopes.Contains((Grouping)referenceableItems[item.RefID]));
                        m_containingScopes.Add((Grouping)referenceableItems[item.RefID]);
                    }
                    else
                    {
                        m_containingScopes.Add(null);
                    }
                    break;

                case MemberName.RecursiveMember:
                {
                    if (referenceableItems.TryGetValue(item.RefID, out IReferenceable value2))
                    {
                        m_recursiveMember = (value2 as TablixMember);
                    }
                    break;
                }

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
 private void GetItemIdAndName(object item, out string id, out string name)
 {
     if (item is PageItem)
     {
         PageItem pageItem = (PageItem)item;
         id   = pageItem.Source.ID;
         name = pageItem.Source.Name;
     }
     else if (item is TablixMember)
     {
         TablixMember tablixMember = (TablixMember)item;
         id   = tablixMember.ID;
         name = tablixMember.Group.Name;
     }
     else
     {
         id   = "";
         name = "ItemTypeNotFound";
     }
 }
        public static string BuildTablixMemberPath(string tablixName, TablixMember tablixMember, Hashtable memberAtLevelIndexes)
        {
            bool          isColumn      = tablixMember.IsColumn;
            StringBuilder stringBuilder = new StringBuilder();

            do
            {
                int    value = -1;
                object obj   = memberAtLevelIndexes[tablixMember.DefinitionPath];
                if (obj != null)
                {
                    value = (int)obj;
                }
                stringBuilder.Insert(0, ")");
                if (tablixMember.Group != null)
                {
                    stringBuilder.Insert(0, tablixMember.Group.Name);
                }
                else
                {
                    stringBuilder.Insert(0, "Static");
                }
                stringBuilder.Insert(0, "(");
                stringBuilder.Insert(0, value);
                stringBuilder.Insert(0, ".");
                tablixMember = tablixMember.Parent;
            }while (tablixMember != null);
            if (isColumn)
            {
                stringBuilder.Insert(0, ".CH");
            }
            else
            {
                stringBuilder.Insert(0, ".RH");
            }
            stringBuilder.Insert(0, tablixName);
            return(stringBuilder.ToString());
        }
Esempio n. 11
0
        public void ResolveReferences(Dictionary <AspNetCore.ReportingServices.ReportIntermediateFormat.Persistence.ObjectType, List <MemberReference> > memberReferencesCollection, Dictionary <int, IReferenceable> referenceableItems)
        {
            List <MemberReference> list = default(List <MemberReference>);

            if (memberReferencesCollection.TryGetValue(Visibility.m_Declaration.ObjectType, out list))
            {
                foreach (MemberReference item in list)
                {
                    switch (item.MemberName)
                    {
                    case MemberName.ToggleSender:
                    {
                        IReferenceable referenceable2 = default(IReferenceable);
                        if (referenceableItems.TryGetValue(item.RefID, out referenceable2))
                        {
                            this.m_toggleSender = (referenceable2 as TextBox);
                        }
                        break;
                    }

                    case MemberName.RecursiveMember:
                    {
                        IReferenceable referenceable = default(IReferenceable);
                        if (referenceableItems.TryGetValue(item.RefID, out referenceable))
                        {
                            this.m_recursiveMember = (referenceable as TablixMember);
                        }
                        break;
                    }

                    default:
                        Global.Tracer.Assert(false);
                        break;
                    }
                }
            }
        }
        public bool HasStaticPeerWithHeader(TablixMember member, out int spanDifference)
        {
            spanDifference = 0;
            if (member.HeaderLevel == -1)
            {
                return(false);
            }
            int num = member.HeaderLevel + (member.IsColumn ? member.RowSpan : member.ColSpan);

            Global.Tracer.Assert(num <= this.m_headerLevelHasStaticArray.Length, "(count <= m_headerLevelHasStaticArray.Length)");
            for (int i = member.HeaderLevel; i < num; i++)
            {
                if (this.m_headerLevelHasStaticArray[i])
                {
                    if (member.Grouping != null)
                    {
                        this.m_dynamicWithStaticPeerEncountered = true;
                        spanDifference = i - member.HeaderLevel;
                    }
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 13
0
 private static void DumpTablixMembers(TablixRowList tablixRows, TablixMember member, StreamWriter stream, int lastLevel, ref int index)
 {
     if (index > lastLevel)
     {
         stream.Write("<tr style='border:solid darkred 1px;height:" + tablixRows[index].Height + ";'>");
         lastLevel = index;
     }
     if (member.ID > -1)
     {
         SupportabilityRIFVisualizer.DumpTablixMember(member, stream);
     }
     if (member.SubMembers != null)
     {
         if (member.ColSpan > 1)
         {
             if (member.ID > -1)
             {
                 TablixMember tablixMember = new TablixMember();
                 tablixMember.SubMembers  = new TablixMemberList();
                 tablixMember.ColSpan     = member.ColSpan - 1;
                 tablixMember.ID          = -1;
                 tablixMember.HeaderLevel = member.HeaderLevel + 1;
                 foreach (TablixMember subMember in member.SubMembers)
                 {
                     tablixMember.SubMembers.Add(subMember);
                 }
                 member = tablixMember;
             }
             else
             {
                 member.ColSpan--;
             }
             SupportabilityRIFVisualizer.DumpTablixMembers(tablixRows, member, stream, lastLevel, ref index);
         }
         else
         {
             foreach (TablixMember subMember2 in member.SubMembers)
             {
                 SupportabilityRIFVisualizer.DumpTablixMembers(tablixRows, subMember2, stream, lastLevel, ref index);
             }
         }
     }
     else
     {
         foreach (TablixCell tablixCell in tablixRows[index].TablixCells)
         {
             if (tablixCell.ColSpan > 0)
             {
                 stream.Write("<td colspan='");
                 stream.Write(tablixCell.ColSpan);
                 stream.Write("'>");
                 if (tablixCell.CellContents != null)
                 {
                     stream.Write("<div style='overflow:auto;border:solid blue 1px;width:");
                     stream.Write(tablixCell.CellContents.Width);
                     stream.Write(";height:");
                     stream.Write(tablixCell.CellContents.Height);
                     stream.WriteLine(";'>");
                     stream.Write("CellContents Type: ");
                     stream.WriteLine(tablixCell.CellContents.ObjectType.ToString());
                     stream.Write("<BR>Name: <font color=\"darkgreen\"><b>");
                     stream.WriteLine(tablixCell.CellContents.Name);
                     stream.Write(" </b></font><BR>Width: ");
                     stream.WriteLine(tablixCell.CellContents.Width);
                     stream.Write(" <BR>Height: ");
                     stream.WriteLine(tablixCell.CellContents.Height);
                     if (tablixCell.CellContents.ObjectType == ObjectType.Textbox)
                     {
                         stream.WriteLine("<b>");
                         stream.WriteLine("</b><BR>");
                     }
                     else if (tablixCell.CellContents.ObjectType == ObjectType.Tablix)
                     {
                         SupportabilityRIFVisualizer.DumpTablix((AspNetCore.ReportingServices.ReportIntermediateFormat.Tablix)tablixCell.CellContents, stream);
                     }
                     stream.Write("</div>");
                 }
                 stream.Write("</td>");
             }
         }
         index++;
         stream.Write("</tr>");
     }
 }
Esempio n. 14
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);
            }
        }
        protected override List <AspNetCore.ReportingServices.ReportIntermediateFormat.ReportItem> GetGroupScopedContents(AspNetCore.ReportingServices.ReportIntermediateFormat.ReportHierarchyNode member)
        {
            TablixMember tablixMember = (TablixMember)member;

            return(tablixMember.GroupScopedContentsForProcessing);
        }
Esempio n. 16
0
        internal static int AddMembersToCurrentPage(Microsoft.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, State state, bool createDetail, bool noRows, PageContext context, bool useForPageHFEval, Interactivity interactivity)
        {
            TablixMemberCollection tablixMemberCollection = null;

            if (memberParent == null)
            {
                if (state == State.RowMembers)
                {
                    tablixMemberCollection = tablix.RowHierarchy.MemberCollection;
                }
                else
                {
                    if (state == State.ColMembers)
                    {
                        AddCornerToCurrentPage(tablix.Corner, context, useForPageHFEval, interactivity);
                    }
                    tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection;
                }
            }
            else
            {
                tablixMemberCollection = memberParent.Children;
            }
            if (tablixMemberCollection == null)
            {
                if (state == State.RowMembers)
                {
                    AddMembersToCurrentPage(tablix, null, memberParent.MemberCellIndex, State.DetailRows, createDetail, noRows, context, useForPageHFEval, interactivity);
                }
                else if (createDetail)
                {
                    AddDetailCellToCurrentPage(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, interactivity);
                }
                if (!useForPageHFEval)
                {
                    return(0);
                }
                return(1);
            }
            bool                        flag                        = true;
            bool                        flag2                       = true;
            TablixMember                tablixMember                = null;
            TablixMemberInstance        tablixMemberInstance        = null;
            TablixDynamicMemberInstance tablixDynamicMemberInstance = null;
            int  num   = 0;
            bool flag3 = useForPageHFEval;

            for (int i = 0; i < tablixMemberCollection.Count; i++)
            {
                flag3        = useForPageHFEval;
                tablixMember = tablixMemberCollection[i];
                if (noRows && tablixMember.HideIfNoRows)
                {
                    if (interactivity == null)
                    {
                        continue;
                    }
                    flag3 = false;
                }
                flag = true;
                tablixMemberInstance = tablixMember.Instance;
                if (tablixMember.IsStatic)
                {
                    flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity);
                }
                else
                {
                    tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance;
                    tablixDynamicMemberInstance.ResetContext();
                    flag = tablixDynamicMemberInstance.MoveNext();
                    if (flag)
                    {
                        flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity);
                    }
                }
                while (flag)
                {
                    if (flag2)
                    {
                        int num2 = AddMembersToCurrentPage(tablix, tablixMember, rowMemberIndexCell, state, createDetail, noRows, context, flag3, interactivity);
                        if (state != State.DetailRows)
                        {
                            interactivity?.RegisterGroupLabel(tablixMember.Group, context);
                            if (tablixMember.TablixHeader != null)
                            {
                                if (num2 > 0)
                                {
                                    RegisterItem.RegisterHiddenItem(tablixMember.TablixHeader.CellContents.ReportItem, context, flag3, interactivity);
                                    num++;
                                }
                                else if (interactivity != null)
                                {
                                    RegisterItem.RegisterHiddenItem(tablixMember.TablixHeader.CellContents.ReportItem, context, useForPageHFEval: false, interactivity);
                                }
                            }
                        }
                    }
                    if (tablixMember.IsStatic)
                    {
                        flag = false;
                        continue;
                    }
                    flag = tablixDynamicMemberInstance.MoveNext();
                    if (flag)
                    {
                        flag3 = useForPageHFEval;
                        flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity);
                    }
                }
                tablixMemberInstance = null;
            }
            return(num);
        }
Esempio n. 17
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();
 }
 internal TablixMemberInstance(Tablix owner, TablixMember memberDef)
     : base(memberDef.ReportScope)
 {
     m_owner     = owner;
     m_memberDef = memberDef;
 }
 public TablixMemberInstance(Tablix owner, TablixMember memberDef)
     : base(memberDef.ReportScope)
 {
     this.m_owner     = owner;
     this.m_memberDef = memberDef;
 }
 public RuntimeTablixCell(RuntimeTablixGroupLeafObjReference owner, TablixMember outerGroupingMember, TablixMember innerGroupingMember, bool innermost)
     : base(owner, outerGroupingMember, innerGroupingMember, innermost)
 {
 }
Esempio n. 21
0
 private static void DumpTablixMember(TablixMember member, StreamWriter stream)
 {
     if (member.TablixHeader != null)
     {
         stream.Write("<td ");
         stream.Write("rowspan='");
         stream.Write(member.RowSpan);
         stream.Write("' colSpan='");
         stream.Write(member.ColSpan);
         stream.Write("'>");
         stream.Write("<div style='overflow:auto;border:solid darkgreen 1px;");
         if (member.TablixHeader.CellContents != null)
         {
             stream.Write("height:");
             stream.Write(member.TablixHeader.CellContents.Height);
             stream.Write(";");
             stream.Write("width:");
             stream.Write(member.TablixHeader.CellContents.Width);
             stream.Write(";");
         }
         stream.WriteLine("'>");
         stream.WriteLine("MemberCellIndex = " + member.MemberCellIndex);
         if (member.Grouping != null)
         {
             stream.WriteLine("Dynamic<BR>");
             stream.Write("Grouping ");
             stream.Write("Name: <b><font color=\"darkblue\">");
             stream.WriteLine(member.Grouping.Name);
             stream.WriteLine("</font></b><BR>");
             if (member.Grouping.Variables != null)
             {
                 foreach (Variable variable in member.Grouping.Variables)
                 {
                     stream.WriteLine("<font color=\"darkred\"><b>" + variable.Name + "</b></font> " + variable.Value.OriginalText + "<BR>");
                 }
             }
             if (member.InScopeTextBoxes != null)
             {
                 stream.WriteLine("<font color=\"darkgreen\"><b>TextBoxesInScope:</b></font> <BR>");
                 foreach (AspNetCore.ReportingServices.ReportIntermediateFormat.TextBox inScopeTextBox in member.InScopeTextBoxes)
                 {
                     stream.WriteLine("<font color=\"darkgreen\"><b>" + inScopeTextBox.Name + "</b></font> <BR>");
                 }
             }
         }
         else
         {
             stream.WriteLine("Static<BR>");
         }
         stream.WriteLine("RowSpan: " + member.RowSpan + "<BR>");
         stream.WriteLine("ColSpan: " + member.ColSpan + "<BR>");
         if (member.HasConditionalOrToggleableVisibility)
         {
             stream.WriteLine("HasConditionalOrToggleableVisibility<BR>");
         }
         if (member.IsAutoSubtotal)
         {
             stream.WriteLine("IsAutoSubtotal<BR>");
         }
         if (member.IsInnerMostMemberWithHeader)
         {
             stream.WriteLine("IsInnerMostMemberWithHeader<BR>");
         }
         stream.Write("HeaderSize: ");
         stream.WriteLine(member.TablixHeader.Size);
         stream.WriteLine("<BR>");
         if (member.TablixHeader.CellContents != null)
         {
             stream.Write("CellContents Type: ");
             stream.WriteLine(member.TablixHeader.CellContents.ObjectType.ToString());
             stream.WriteLine("<BR>");
             stream.Write(" \tName: <b><font color=\"darkgreen\">");
             stream.WriteLine(member.TablixHeader.CellContents.Name);
             stream.WriteLine("</font></b><BR>");
             stream.Write(" \tWidth: ");
             stream.WriteLine(member.TablixHeader.CellContents.Width);
             stream.WriteLine("<BR>");
             stream.Write(" \tHeight: ");
             stream.WriteLine(member.TablixHeader.CellContents.Height);
             stream.WriteLine("<BR>");
             if (member.TablixHeader.CellContents.ObjectType == ObjectType.Textbox)
             {
                 AspNetCore.ReportingServices.ReportIntermediateFormat.TextBox textBox = (AspNetCore.ReportingServices.ReportIntermediateFormat.TextBox)member.TablixHeader.CellContents;
                 stream.Write("<b>");
                 stream.Write("</b>");
                 if (textBox.UserSort != null)
                 {
                     stream.WriteLine("sort expr scope: " + textBox.UserSort.SortExpressionScopeString);
                     stream.WriteLine("<BR>");
                     stream.WriteLine("sort target: " + textBox.UserSort.SortTargetString);
                     stream.WriteLine("<BR>");
                 }
                 stream.WriteLine("<BR>");
             }
             else if (member.TablixHeader.CellContents.ObjectType == ObjectType.Tablix)
             {
                 SupportabilityRIFVisualizer.DumpTablix((AspNetCore.ReportingServices.ReportIntermediateFormat.Tablix)member.TablixHeader.CellContents, stream);
             }
         }
         stream.Write("</div>");
         stream.Write("</td>");
     }
 }
Esempio n. 22
0
        public override void Deserialize(IntermediateFormatReader reader)
        {
            base.Deserialize(reader);
            reader.RegisterDeclaration(m_Declaration);
            while (reader.NextMember())
            {
                switch (reader.CurrentMember.MemberName)
                {
                case MemberName.Paragraphs:
                    m_paragraphs = reader.ReadGenericListOfRIFObjects <Paragraph>();
                    break;

                case MemberName.Value:
                {
                    TextRun        orCreateSingleTextRun = GetOrCreateSingleTextRun(reader);
                    ExpressionInfo expressionInfo        = (ExpressionInfo)reader.ReadRIFObject();
                    m_hasValue = true;
                    m_hasExpressionBasedValue   = expressionInfo.IsExpression;
                    orCreateSingleTextRun.Value = expressionInfo;
                    if (m_styleClass != null)
                    {
                        orCreateSingleTextRun.Paragraph.StyleClass = new ParagraphFilteredStyle(m_styleClass);
                        orCreateSingleTextRun.StyleClass           = new TextRunFilteredStyle(m_styleClass);
                        m_styleClass = new TextBoxFilteredStyle(m_styleClass);
                    }
                    break;
                }

                case MemberName.CanScrollVertically:
                    m_canScrollVertically = reader.ReadBoolean();
                    break;

                case MemberName.CanGrow:
                    m_canGrow = reader.ReadBoolean();
                    break;

                case MemberName.CanShrink:
                    m_canShrink = reader.ReadBoolean();
                    break;

                case MemberName.HideDuplicates:
                    m_hideDuplicates = reader.ReadString();
                    break;

                case MemberName.Action:
                    m_action = (Action)reader.ReadRIFObject();
                    break;

                case MemberName.IsToggle:
                    m_isToggle = reader.ReadBoolean();
                    break;

                case MemberName.InitialToggleState:
                    m_initialToggleState = (ExpressionInfo)reader.ReadRIFObject();
                    break;

                case MemberName.ValueReferenced:
                    m_valueReferenced = reader.ReadBoolean();
                    break;

                case MemberName.TextRunValueReferenced:
                    m_textRunValueReferenced = reader.ReadBoolean();
                    break;

                case MemberName.RecursiveSender:
                    m_recursiveSender = reader.ReadBoolean();
                    break;

                case MemberName.DataElementStyleAttribute:
                    m_dataElementStyleAttribute = reader.ReadBoolean();
                    break;

                case MemberName.ContainingScopes:
                    if (reader.ReadListOfReferencesNoResolution(this) == 0)
                    {
                        m_containingScopes = new GroupingList();
                    }
                    break;

                case MemberName.UserSort:
                    m_userSort = (EndUserSort)reader.ReadRIFObject();
                    break;

                case MemberName.IsTablixCellScope:
                    m_isTablixCellScope = reader.ReadBoolean();
                    break;

                case MemberName.IsSubReportTopLevelScope:
                    m_isSubReportTopLevelScope = reader.ReadBoolean();
                    break;

                case MemberName.DataType:
                    GetOrCreateSingleTextRun(reader).DataType = (DataType)reader.ReadEnum();
                    break;

                case MemberName.KeepTogether:
                    m_keepTogether = reader.ReadBoolean();
                    break;

                case MemberName.SequenceID:
                    m_sequenceID = reader.ReadInt32();
                    break;

                case MemberName.RecursiveMember:
                    m_recursiveMember = reader.ReadReference <TablixMember>(this);
                    break;

                case MemberName.HasExpressionBasedValue:
                    m_hasExpressionBasedValue = reader.ReadBoolean();
                    break;

                case MemberName.HasValue:
                    m_hasValue = reader.ReadBoolean();
                    break;

                case MemberName.IsSimple:
                    m_isSimple = reader.ReadBoolean();
                    break;

                case MemberName.HasNonRecursiveSender:
                    m_hasNonRecursiveSender = reader.ReadBoolean();
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        private static int CollectTablixMembersContents(AspNetCore.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, TablixState state, bool noRows, PageContext context, bool useForPageHFEval, Dictionary <string, List <object> > textBoxes)
        {
            TablixMemberCollection tablixMemberCollection = null;

            if (memberParent == null)
            {
                switch (state)
                {
                case TablixState.RowMembers:
                    tablixMemberCollection = tablix.RowHierarchy.MemberCollection;
                    break;

                case TablixState.ColMembers:
                    HeaderFooterEval.CollectTablixCornerContents(tablix.Corner, context, useForPageHFEval, textBoxes);
                    goto default;

                default:
                    tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection;
                    break;
                }
            }
            else
            {
                tablixMemberCollection = memberParent.Children;
            }
            if (tablixMemberCollection == null)
            {
                if (state == TablixState.RowMembers)
                {
                    HeaderFooterEval.CollectTablixMembersContents(tablix, null, memberParent.MemberCellIndex, TablixState.DetailRows, noRows, context, useForPageHFEval, textBoxes);
                }
                else
                {
                    HeaderFooterEval.CollectDetailCellContents(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, textBoxes);
                }
                if (!useForPageHFEval)
                {
                    return(0);
                }
                return(1);
            }
            bool                        flag                        = true;
            bool                        flag2                       = true;
            TablixMember                tablixMember                = null;
            TablixMemberInstance        tablixMemberInstance        = null;
            TablixDynamicMemberInstance tablixDynamicMemberInstance = null;
            int  num = 0;
            bool useForPageHFEval2 = useForPageHFEval;

            for (int i = 0; i < tablixMemberCollection.Count; i++)
            {
                useForPageHFEval2 = useForPageHFEval;
                tablixMember      = ((ReportElementCollectionBase <TablixMember>)tablixMemberCollection)[i];
                if (!noRows || !tablixMember.HideIfNoRows)
                {
                    flag = true;
                    tablixMemberInstance = tablixMember.Instance;
                    if (tablixMember.IsStatic)
                    {
                        flag2 = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2);
                    }
                    else
                    {
                        tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance;
                        tablixDynamicMemberInstance.ResetContext();
                        flag = tablixDynamicMemberInstance.MoveNext();
                        if (flag)
                        {
                            flag2 = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2);
                        }
                    }
                    while (flag)
                    {
                        if (flag2)
                        {
                            int num2 = HeaderFooterEval.CollectTablixMembersContents(tablix, tablixMember, rowMemberIndexCell, state, noRows, context, useForPageHFEval2, textBoxes);
                            if (state != TablixState.DetailRows && tablixMember.TablixHeader != null && num2 > 0)
                            {
                                HeaderFooterEval.CollectTextBoxes(tablixMember.TablixHeader.CellContents.ReportItem, context, useForPageHFEval2, textBoxes);
                                num++;
                            }
                        }
                        if (tablixMember.IsStatic)
                        {
                            flag = false;
                        }
                        else
                        {
                            flag = tablixDynamicMemberInstance.MoveNext();
                            if (flag)
                            {
                                useForPageHFEval2 = useForPageHFEval;
                                flag2             = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2);
                            }
                        }
                    }
                    tablixMemberInstance = null;
                }
            }
            return(num);
        }
        private static int CollectTablixMembersContents(Microsoft.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, TablixState state, bool noRows, PageContext context, bool useForPageHFEval, Dictionary <string, List <object> > textBoxes)
        {
            TablixMemberCollection tablixMemberCollection = null;

            if (memberParent == null)
            {
                if (state == TablixState.RowMembers)
                {
                    tablixMemberCollection = tablix.RowHierarchy.MemberCollection;
                }
                else
                {
                    if (state == TablixState.ColMembers)
                    {
                        CollectTablixCornerContents(tablix.Corner, context, useForPageHFEval, textBoxes);
                    }
                    tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection;
                }
            }
            else
            {
                tablixMemberCollection = memberParent.Children;
            }
            if (tablixMemberCollection == null)
            {
                if (state == TablixState.RowMembers)
                {
                    CollectTablixMembersContents(tablix, null, memberParent.MemberCellIndex, TablixState.DetailRows, noRows, context, useForPageHFEval, textBoxes);
                }
                else
                {
                    CollectDetailCellContents(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, textBoxes);
                }
                if (!useForPageHFEval)
                {
                    return(0);
                }
                return(1);
            }
            bool                        flag                        = true;
            bool                        flag2                       = true;
            TablixMember                tablixMember                = null;
            TablixMemberInstance        tablixMemberInstance        = null;
            TablixDynamicMemberInstance tablixDynamicMemberInstance = null;
            int  num   = 0;
            bool flag3 = useForPageHFEval;

            for (int i = 0; i < tablixMemberCollection.Count; i++)
            {
                flag3        = useForPageHFEval;
                tablixMember = tablixMemberCollection[i];
                if (noRows && tablixMember.HideIfNoRows)
                {
                    continue;
                }
                flag = true;
                tablixMemberInstance = tablixMember.Instance;
                if (tablixMember.IsStatic)
                {
                    flag2 = ShouldBeCollected(tablixMember, ref flag3);
                }
                else
                {
                    tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance;
                    tablixDynamicMemberInstance.ResetContext();
                    flag = tablixDynamicMemberInstance.MoveNext();
                    if (flag)
                    {
                        flag2 = ShouldBeCollected(tablixMember, ref flag3);
                    }
                }
                while (flag)
                {
                    if (flag2)
                    {
                        int num2 = CollectTablixMembersContents(tablix, tablixMember, rowMemberIndexCell, state, noRows, context, flag3, textBoxes);
                        if (state != TablixState.DetailRows && tablixMember.TablixHeader != null && num2 > 0)
                        {
                            CollectTextBoxes(tablixMember.TablixHeader.CellContents.ReportItem, context, flag3, textBoxes);
                            num++;
                        }
                    }
                    if (tablixMember.IsStatic)
                    {
                        flag = false;
                        continue;
                    }
                    flag = tablixDynamicMemberInstance.MoveNext();
                    if (flag)
                    {
                        flag3 = useForPageHFEval;
                        flag2 = ShouldBeCollected(tablixMember, ref flag3);
                    }
                }
                tablixMemberInstance = null;
            }
            return(num);
        }
Esempio n. 25
0
        public IPersistable CreateRIFObject(ObjectType objectType, ref IntermediateFormatReader context)
        {
            IPersistable persistable = null;

            if (objectType == ObjectType.Null)
            {
                return(null);
            }
            IDOwner    parentIDOwner    = this.m_parentIDOwner;
            ReportItem parentReportItem = this.m_parentReportItem;

            switch (objectType)
            {
            case ObjectType.PageSection:
                persistable             = new PageSection(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Line:
                persistable             = new Line(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Rectangle:
                persistable             = new Rectangle(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Image:
                persistable             = new Image(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TextBox:
                persistable             = new TextBox(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SubReport:
                persistable             = new SubReport(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Grouping:
                persistable = new Grouping(ConstructionPhase.Deserializing);
                break;

            case ObjectType.Sorting:
                persistable = new Sorting(ConstructionPhase.Deserializing);
                break;

            case ObjectType.ReportItemCollection:
                persistable = new ReportItemCollection();
                break;

            case ObjectType.ReportItemIndexer:
                persistable = (IPersistable)(object)default(ReportItemIndexer);
                break;

            case ObjectType.Style:
                persistable = new Style(ConstructionPhase.Deserializing);
                break;

            case ObjectType.AttributeInfo:
                persistable = new AttributeInfo();
                break;

            case ObjectType.Visibility:
                persistable = new Visibility();
                break;

            case ObjectType.ExpressionInfo:
                persistable = new ExpressionInfo();
                break;

            case ObjectType.ExpressionInfoTypeValuePair:
                persistable = new ExpressionInfoTypeValuePair();
                break;

            case ObjectType.DataAggregateInfo:
                persistable = new DataAggregateInfo();
                break;

            case ObjectType.RunningValueInfo:
                persistable = new RunningValueInfo();
                break;

            case ObjectType.Filter:
                persistable = new Filter();
                break;

            case ObjectType.DataSource:
                persistable = new DataSource();
                break;

            case ObjectType.DataSet:
                persistable = new DataSet();
                break;

            case ObjectType.ReportQuery:
                persistable = new ReportQuery();
                break;

            case ObjectType.Field:
                persistable = new Field();
                break;

            case ObjectType.ParameterValue:
                persistable = new ParameterValue();
                break;

            case ObjectType.ReportSnapshot:
                persistable = new ReportSnapshot();
                break;

            case ObjectType.DocumentMapNode:
                persistable = new DocumentMapNode();
                break;

            case ObjectType.DocumentMapBeginContainer:
                persistable = DocumentMapBeginContainer.Instance;
                break;

            case ObjectType.DocumentMapEndContainer:
                persistable = DocumentMapEndContainer.Instance;
                break;

            case ObjectType.ReportInstance:
                persistable = new ReportInstance();
                break;

            case ObjectType.ParameterInfo:
                persistable = new ParameterInfo();
                break;

            case ObjectType.ValidValue:
                persistable = new ValidValue();
                break;

            case ObjectType.ParameterDataSource:
                persistable = new ParameterDataSource();
                break;

            case ObjectType.ParameterDef:
                persistable = new ParameterDef();
                break;

            case ObjectType.ProcessingMessage:
                persistable = new ProcessingMessage();
                break;

            case ObjectType.CodeClass:
                persistable = (IPersistable)(object)default(CodeClass);
                break;

            case ObjectType.Action:
                persistable = new Action();
                break;

            case ObjectType.RenderingPagesRanges:
                persistable = (IPersistable)(object)default(RenderingPagesRanges);
                break;

            case ObjectType.IntermediateFormatVersion:
                persistable = new IntermediateFormatVersion();
                break;

            case ObjectType.ImageInfo:
                persistable = new ImageInfo();
                break;

            case ObjectType.ActionItem:
                persistable = new ActionItem();
                break;

            case ObjectType.DataValue:
                persistable = new DataValue();
                break;

            case ObjectType.CustomReportItem:
                persistable             = new CustomReportItem(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SortFilterEventInfoMap:
                persistable = new SortFilterEventInfoMap();
                break;

            case ObjectType.SortFilterEventInfo:
                persistable = new SortFilterEventInfo();
                break;

            case ObjectType.EndUserSort:
                persistable = new EndUserSort();
                break;

            case ObjectType.ScopeLookupTable:
                persistable = new ScopeLookupTable();
                break;

            case ObjectType.Tablix:
                persistable             = new Tablix(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TablixHeader:
                persistable = new TablixHeader();
                break;

            case ObjectType.TablixMember:
                persistable = new TablixMember();
                break;

            case ObjectType.TablixColumn:
                persistable = new TablixColumn();
                break;

            case ObjectType.TablixRow:
                persistable = new TablixRow();
                break;

            case ObjectType.TablixCornerCell:
                persistable = new TablixCornerCell();
                break;

            case ObjectType.TablixCell:
                persistable = new TablixCell();
                break;

            case ObjectType.Chart:
                persistable             = new Chart(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.ChartMember:
                persistable = new ChartMember();
                break;

            case ObjectType.ChartSeries:
                persistable = new ChartSeries();
                break;

            case ObjectType.ChartDataPoint:
                persistable = new ChartDataPoint();
                break;

            case ObjectType.ChartDataPointValues:
                persistable = new ChartDataPointValues();
                break;

            case ObjectType.ChartArea:
                persistable = new ChartArea();
                break;

            case ObjectType.ChartLegend:
                persistable = new ChartLegend();
                break;

            case ObjectType.ChartLegendTitle:
                persistable = new ChartLegendTitle();
                break;

            case ObjectType.ChartAxis:
                persistable = new ChartAxis();
                break;

            case ObjectType.ThreeDProperties:
                persistable = new ChartThreeDProperties();
                break;

            case ObjectType.ChartDataLabel:
                persistable = new ChartDataLabel();
                break;

            case ObjectType.ChartMarker:
                persistable = new ChartMarker();
                break;

            case ObjectType.ChartTitle:
                persistable = new ChartTitle();
                break;

            case ObjectType.ChartAxisScaleBreak:
                persistable = new ChartAxisScaleBreak();
                break;

            case ObjectType.ChartDerivedSeries:
                persistable = new ChartDerivedSeries();
                break;

            case ObjectType.ChartBorderSkin:
                persistable = new ChartBorderSkin();
                break;

            case ObjectType.ChartNoDataMessage:
                persistable = new ChartNoDataMessage();
                break;

            case ObjectType.ChartItemInLegend:
                persistable = new ChartItemInLegend();
                break;

            case ObjectType.ChartEmptyPoints:
                persistable = new ChartEmptyPoints();
                break;

            case ObjectType.ChartNoMoveDirections:
                persistable = new ChartNoMoveDirections();
                break;

            case ObjectType.ChartFormulaParameter:
                persistable = new ChartFormulaParameter();
                break;

            case ObjectType.ChartLegendColumn:
                persistable = new ChartLegendColumn();
                break;

            case ObjectType.ChartLegendColumnHeader:
                persistable = new ChartLegendColumnHeader();
                break;

            case ObjectType.ChartLegendCustomItem:
                persistable = new ChartLegendCustomItem();
                break;

            case ObjectType.ChartLegendCustomItemCell:
                persistable = new ChartLegendCustomItemCell();
                break;

            case ObjectType.ChartAlignType:
                persistable = new ChartAlignType();
                break;

            case ObjectType.ChartElementPosition:
                persistable = new ChartElementPosition();
                break;

            case ObjectType.ChartSmartLabel:
                persistable = new ChartSmartLabel();
                break;

            case ObjectType.ChartStripLine:
                persistable = new ChartStripLine();
                break;

            case ObjectType.ChartAxisTitle:
                persistable = new ChartAxisTitle();
                break;

            case ObjectType.ChartCustomPaletteColor:
                persistable = new ChartCustomPaletteColor();
                break;

            case ObjectType.GridLines:
                persistable = new ChartGridLines();
                break;

            case ObjectType.ChartTickMarks:
                persistable = new ChartTickMarks();
                break;

            case ObjectType.DataMember:
                persistable = new DataMember();
                break;

            case ObjectType.CustomDataRow:
                persistable = new CustomDataRow();
                break;

            case ObjectType.DataCell:
                persistable = new DataCell();
                break;

            case ObjectType.Variable:
                persistable = new Variable();
                break;

            case ObjectType.Page:
                persistable = new Page();
                break;

            case ObjectType.Paragraph:
                persistable = new Paragraph();
                break;

            case ObjectType.TextRun:
                persistable = new TextRun();
                break;

            case ObjectType.Report:
                persistable             = new Report(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugePanel:
                persistable             = new GaugePanel(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugeMember:
                persistable = new GaugeMember();
                break;

            case ObjectType.GaugeRow:
                persistable = new GaugeRow();
                break;

            case ObjectType.GaugeCell:
                persistable = new GaugeCell();
                break;

            case ObjectType.BackFrame:
                persistable = new BackFrame();
                break;

            case ObjectType.CapImage:
                persistable = new CapImage();
                break;

            case ObjectType.FrameBackground:
                persistable = new FrameBackground();
                break;

            case ObjectType.FrameImage:
                persistable = new FrameImage();
                break;

            case ObjectType.CustomLabel:
                persistable = new CustomLabel();
                break;

            case ObjectType.GaugeImage:
                persistable = new GaugeImage();
                break;

            case ObjectType.GaugeInputValue:
                persistable = new GaugeInputValue();
                break;

            case ObjectType.GaugeLabel:
                persistable = new GaugeLabel();
                break;

            case ObjectType.GaugePanelItem:
                persistable = new GaugePanelItem();
                break;

            case ObjectType.GaugeTickMarks:
                persistable = new GaugeTickMarks();
                break;

            case ObjectType.LinearGauge:
                persistable = new LinearGauge();
                break;

            case ObjectType.LinearPointer:
                persistable = new LinearPointer();
                break;

            case ObjectType.LinearScale:
                persistable = new LinearScale();
                break;

            case ObjectType.NumericIndicator:
                persistable = new NumericIndicator();
                break;

            case ObjectType.PinLabel:
                persistable = new PinLabel();
                break;

            case ObjectType.PointerCap:
                persistable = new PointerCap();
                break;

            case ObjectType.PointerImage:
                persistable = new PointerImage();
                break;

            case ObjectType.RadialGauge:
                persistable = new RadialGauge();
                break;

            case ObjectType.RadialPointer:
                persistable = new RadialPointer();
                break;

            case ObjectType.RadialScale:
                persistable = new RadialScale();
                break;

            case ObjectType.ScaleLabels:
                persistable = new ScaleLabels();
                break;

            case ObjectType.ScalePin:
                persistable = new ScalePin();
                break;

            case ObjectType.ScaleRange:
                persistable = new ScaleRange();
                break;

            case ObjectType.IndicatorImage:
                persistable = new IndicatorImage();
                break;

            case ObjectType.StateIndicator:
                persistable = new StateIndicator();
                break;

            case ObjectType.Thermometer:
                persistable = new Thermometer();
                break;

            case ObjectType.TickMarkStyle:
                persistable = new TickMarkStyle();
                break;

            case ObjectType.TopImage:
                persistable = new TopImage();
                break;

            case ObjectType.LookupInfo:
                persistable = new LookupInfo();
                break;

            case ObjectType.LookupDestinationInfo:
                persistable = new LookupDestinationInfo();
                break;

            case ObjectType.ReportSection:
                persistable = new ReportSection();
                break;

            case ObjectType.MapFieldDefinition:
                persistable = new MapFieldDefinition();
                break;

            case ObjectType.MapFieldName:
                persistable = new MapFieldName();
                break;

            case ObjectType.MapLineLayer:
                persistable = new MapLineLayer();
                break;

            case ObjectType.MapShapefile:
                persistable = new MapShapefile();
                break;

            case ObjectType.MapPolygonLayer:
                persistable = new MapPolygonLayer();
                break;

            case ObjectType.MapSpatialDataRegion:
                persistable = new MapSpatialDataRegion();
                break;

            case ObjectType.MapSpatialDataSet:
                persistable = new MapSpatialDataSet();
                break;

            case ObjectType.MapPointLayer:
                persistable = new MapPointLayer();
                break;

            case ObjectType.MapTile:
                persistable = new MapTile();
                break;

            case ObjectType.MapTileLayer:
                persistable = new MapTileLayer();
                break;

            case ObjectType.MapField:
                persistable = new MapField();
                break;

            case ObjectType.MapLine:
                persistable = new MapLine();
                break;

            case ObjectType.MapPolygon:
                persistable = new MapPolygon();
                break;

            case ObjectType.MapPoint:
                persistable = new MapPoint();
                break;

            case ObjectType.MapLineTemplate:
                persistable = new MapLineTemplate();
                break;

            case ObjectType.MapPolygonTemplate:
                persistable = new MapPolygonTemplate();
                break;

            case ObjectType.MapMarkerTemplate:
                persistable = new MapMarkerTemplate();
                break;

            case ObjectType.Map:
                persistable             = new Map(this.m_parentReportItem);
                this.m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.MapBorderSkin:
                persistable = new MapBorderSkin();
                break;

            case ObjectType.MapDataRegion:
                persistable = new MapDataRegion(this.m_parentReportItem);
                break;

            case ObjectType.MapMember:
                persistable = new MapMember();
                break;

            case ObjectType.MapRow:
                persistable = new MapRow();
                break;

            case ObjectType.MapCell:
                persistable = new MapCell();
                break;

            case ObjectType.MapLocation:
                persistable = new MapLocation();
                break;

            case ObjectType.MapSize:
                persistable = new MapSize();
                break;

            case ObjectType.MapGridLines:
                persistable = new MapGridLines();
                break;

            case ObjectType.MapBindingFieldPair:
                persistable = new MapBindingFieldPair();
                break;

            case ObjectType.MapCustomView:
                persistable = new MapCustomView();
                break;

            case ObjectType.MapDataBoundView:
                persistable = new MapDataBoundView();
                break;

            case ObjectType.MapElementView:
                persistable = new MapElementView();
                break;

            case ObjectType.MapViewport:
                persistable = new MapViewport();
                break;

            case ObjectType.MapLimits:
                persistable = new MapLimits();
                break;

            case ObjectType.MapColorScale:
                persistable = new MapColorScale();
                break;

            case ObjectType.MapColorScaleTitle:
                persistable = new MapColorScaleTitle();
                break;

            case ObjectType.MapDistanceScale:
                persistable = new MapDistanceScale();
                break;

            case ObjectType.MapTitle:
                persistable = new MapTitle();
                break;

            case ObjectType.MapLegend:
                persistable = new MapLegend();
                break;

            case ObjectType.MapLegendTitle:
                persistable = new MapLegendTitle();
                break;

            case ObjectType.MapBucket:
                persistable = new MapBucket();
                break;

            case ObjectType.MapColorPaletteRule:
                persistable = new MapColorPaletteRule();
                break;

            case ObjectType.MapColorRangeRule:
                persistable = new MapColorRangeRule();
                break;

            case ObjectType.MapCustomColorRule:
                persistable = new MapCustomColorRule();
                break;

            case ObjectType.MapCustomColor:
                persistable = new MapCustomColor();
                break;

            case ObjectType.MapLineRules:
                persistable = new MapLineRules();
                break;

            case ObjectType.MapPolygonRules:
                persistable = new MapPolygonRules();
                break;

            case ObjectType.MapSizeRule:
                persistable = new MapSizeRule();
                break;

            case ObjectType.MapMarkerImage:
                persistable = new MapMarkerImage();
                break;

            case ObjectType.MapMarker:
                persistable = new MapMarker();
                break;

            case ObjectType.MapMarkerRule:
                persistable = new MapMarkerRule();
                break;

            case ObjectType.MapPointRules:
                persistable = new MapPointRules();
                break;

            case ObjectType.PageBreak:
                persistable = new PageBreak();
                break;

            case ObjectType.DataScopeInfo:
                persistable = new DataScopeInfo();
                break;

            case ObjectType.LinearJoinInfo:
                persistable = new LinearJoinInfo();
                break;

            case ObjectType.IntersectJoinInfo:
                persistable = new IntersectJoinInfo();
                break;

            case ObjectType.BucketedDataAggregateInfos:
                persistable = new BucketedDataAggregateInfos();
                break;

            case ObjectType.DataAggregateInfoBucket:
                persistable = new DataAggregateInfoBucket();
                break;

            case ObjectType.NumericIndicatorRange:
                persistable = new NumericIndicatorRange();
                break;

            case ObjectType.IndicatorState:
                persistable = new IndicatorState();
                break;

            case ObjectType.SharedDataSetQuery:
                persistable = new SharedDataSetQuery();
                break;

            case ObjectType.DataSetCore:
                persistable = new DataSetCore();
                break;

            case ObjectType.DataSetParameterValue:
                persistable = new DataSetParameterValue();
                break;

            case ObjectType.RIFVariantContainer:
                persistable = new RIFVariantContainer();
                break;

            case ObjectType.IdcRelationship:
                persistable = new IdcRelationship();
                break;

            case ObjectType.DefaultRelationship:
                persistable = new DefaultRelationship();
                break;

            case ObjectType.JoinCondition:
                persistable = new Relationship.JoinCondition();
                break;

            case ObjectType.BandLayoutOptions:
                persistable = new BandLayoutOptions();
                break;

            case ObjectType.LabelData:
                persistable = new LabelData();
                break;

            case ObjectType.Slider:
                persistable = new Slider();
                break;

            case ObjectType.Coverflow:
                persistable = new Coverflow();
                break;

            case ObjectType.PlayAxis:
                persistable = new PlayAxis();
                break;

            case ObjectType.BandNavigationCell:
                persistable = new BandNavigationCell();
                break;

            case ObjectType.Tabstrip:
                persistable = new Tabstrip();
                break;

            case ObjectType.NavigationItem:
                persistable = new NavigationItem();
                break;

            case ObjectType.ScopedFieldInfo:
                persistable = new ScopedFieldInfo();
                break;

            default:
                Global.Tracer.Assert(false, "Unsupported object type: " + objectType.ToString());
                break;
            }
            IDOwner iDOwner = persistable as IDOwner;

            if (iDOwner != null)
            {
                iDOwner.ParentInstancePath = this.m_parentIDOwner;
                this.m_parentIDOwner       = iDOwner;
            }
            persistable.Deserialize(context);
            this.m_parentIDOwner    = parentIDOwner;
            this.m_parentReportItem = parentReportItem;
            return(persistable);
        }
Esempio n. 26
0
        public TablixMembersType CreateMs(TablixMembersType parent, bool isStart, bool isRow)
        {
            if (isStart)
            {
                _level = 0;
            }
            var limit = isRow ? this.Columns.Count : this.Rows.Count;
            var tablixMember = new TablixMember();
            if ((!isRow && _level == limit - 1) || (isRow && _level==0))
            {
                tablixMember.Visibility = new Visibility() {Hidden = "true"}.Create();
                var group = new Group { GroupExpressions = new GroupExpressionsType() {GroupExpression=new string[]{""} } };
                tablixMember.Group = group.Create(isRow?"RowGroup":"ColumnGroup");
            }

            var heaer = new TablixHeader();
            var contents = new CellContents() { Textbox = CreateTextbox("",true) }.Create();
            heaer.CellContents = new CellContentsType[] { contents };
            string size = isRow ? this.Columns[_level].Width : this.Rows[_level].Height;
            heaer.Size = new string[] { size };
            tablixMember.TablixHeader = heaer.Create();

            _level++;
            if (_level < limit)
            {
                tablixMember.TablixMembers = CreateMs(new TablixMembersType(), false, isRow);
            }
            parent.TablixMember = new TablixMemberType[] { tablixMember.Create() };

            return parent;
        }