Ejemplo n.º 1
0
        /// <summary>
        ///     Returns the hierarchy "neighboring" of the current cell, different from it by the
        ///     value of the members passed as the parameter.
        /// </summary>
        /// <remarks>
        ///     <para>
        ///         For example, we have a Cube cell specified by the coordinates "Year-2003" and
        ///         "Product-Beverages".
        ///     </para>
        ///     <para>
        ///         This method along with the "Product-Seafood" parameter will return the cell
        ///         with the address of the coordinates "Year-2003" and "Product-Seafood". The method
        ///         along with the "Customer-Ben Carlos" parameter will return the cell with the
        ///         address of the coordinates "Year-2003", "Product-Beverages" and "Customer-Ben
        ///         Carlos". Overloads: public ICubeAddress Sibling( IList Members );
        ///     </para>
        /// </remarks>
        public ICubeAddress Sibling(IList <Member> Members)
        {
            var Result = fAddress.Clone();

            for (var i = 0; i < Members.Count; i++)
            {
                Result.AddMember(Members[i]);
            }
            if (Result.Measure != null)
            {
                Result.MeasureMode = Result.Measure.ShowModes[0];
            }
            return(Result);
        }
Ejemplo n.º 2
0
        internal IEnumerable <Member> GetMembersList(ICubeAddress a, Members MembersList)
        {
            if (a.Measure == null ||
                !CalculatedByServer(a.Measure) ||
                MembersList[0].MemberType == MemberType.mtMeasure ||
                MembersList[0].MemberType == MemberType.mtMeasureMode)
            {
                return(MembersList.ToArray());
            }

            if (a.GetMemberByHierarchy(MembersList[0].Level.Hierarchy) != null)
            {
                return(MembersList.ToArray());
            }

            var aa = a.Clone();

            aa.AddMember(MembersList[0]);
            var M = GetMetaline(aa.FLevelsAndMembers.Keys);
            var L = M.GetLine(aa.FHierID, aa.Measure, aa.Measure.ShowModes[0]);

            return(L.GetMembersList(aa, MembersList));
        }
Ejemplo n.º 3
0
        internal bool HasCellValue(ICubeAddress address)
        {
            object V;

            if (address.Measure != null)
            {
                return(GetCellValue(address, out V));
            }
            var a = address.Clone();

            if (FGrid.FCellSet.FVisibleMeasures.Count == 0)
            {
                return(true);
            }
            foreach (var m in FGrid.FCellSet.FVisibleMeasures)
            {
                a.Measure = m;
                if (GetCellValue(a, out V))
                {
                    return(true);
                }
            }
            return(false);
        }
 internal AllowDisplayMemberArgs(ICubeAddress address, Member member, bool isTotal)
 {
     Address = address.Clone();
     Member  = member;
     IsTotal = isTotal;
 }