예제 #1
0
        public string[] GetFormulas()
        {
            var stream   = StreamBuilderSIDSRC.CreateStream(this.SIDSRCs);
            var formulas = QueryHelpers.GetFormulasU_SIDSRC(this.Surface, stream);

            return(formulas);
        }
예제 #2
0
        public string[] GetResults()
        {
            var stream    = StreamBuilderSIDSRC.CreateStream(this.SIDSRCs);
            var unitcodes = new List <IVisio.VisUnitCodes> {
                IVisio.VisUnitCodes.visNoCast
            };
            var formulas = QueryHelpers.GetResults_SIDSRC <string>(this.Surface, stream, unitcodes);

            return(formulas);
        }
예제 #3
0
        private short[] _build_sidsrc_stream(ShapeSheetSurface surface, IList <int> shapeids)
        {
            this._calcualte_per_shape_info(surface, shapeids);

            int total = this._get_total_cell_count(shapeids.Count);

            var stream_builder = new StreamBuilderSIDSRC(total);

            for (int i = 0; i < shapeids.Count; i++)
            {
                // For each shape add the cells to query
                var shapeid = shapeids[i];
                foreach (var col in this.Cells)
                {
                    var src = col.SRC;
                    stream_builder.Add((short)shapeid, src.Section, src.Row, src.Cell);
                }

                // And then the sections if any exist
                if (this._subquery_shape_info.Count > 0)
                {
                    var data_for_shape = this._subquery_shape_info[i];
                    foreach (var section in data_for_shape)
                    {
                        foreach (int rowindex in section.RowIndexes)
                        {
                            foreach (var col in section.SubQuery.Columns)
                            {
                                stream_builder.Add(
                                    (short)shapeid,
                                    (short)section.SubQuery.SectionIndex,
                                    (short)rowindex,
                                    col.CellIndex);
                            }
                        }
                    }
                }
            }

            if (!stream_builder.IsFull)
            {
                string msg = string.Format("StreamBuilder is not full");
                throw new InternalAssertionException(msg);
            }

            return(stream_builder.Stream);
        }