Beispiel #1
0
        protected void BuildHeaderColumns(XlsGroup band, XlsRow gridRow)
        {
            XlsTextNode header;

            foreach (var col in Table.Columns.OfType <CrossDataKeyColumn>())
            {
                header = new XlsTextNode(col.Caption);
                band.AddGroup(header);
                var info = _adjuster.Find(col);
                if (info != null)
                {
                    header.ColSpan = info.ColSpan;
                }
            }
            var group = Table.Columns.OfType <CrossDataGroupColumn>().FirstOrDefault();

            if (group != null)
            {
                header = new XlsTextNode(group.Caption);
                band.AddGroup(header);
                if (group.Values != null && group.Values.Count > 0)
                {
                    foreach (var val in group.Values)
                    {
                        var h = new XlsTextNode(val.Value != null ? val.Value.ToString() : "");
                        header.AddGroup(h);
                        AddGroupBandColumns(h, val);
                    }
                }
                else
                {
                    AddGroupBandColumns(header, null);
                }
            }
        }
Beispiel #2
0
        private void AddGroupBandColumns(XlsTextNode header, CrossDataGroupColumnValue child)
        {
            if (child != null && child.ChildValues != null && child.ChildValues.Count > 0)
            {
                foreach (var val in child.ChildValues)
                {
                    var hb = new XlsTextNode(val.Value != null ? val.Value.ToString() : "-");
                    header.AddGroup(hb);
                    AddGroupBandColumns(hb, val);
                }
            }
            else
            {
                foreach (var func in Table.Columns.OfType <CrossDataFuncColumn>())
                {
                    header.AddNode(func.Caption);
//                    var info = _adjuster.Find(func);
                }
            }
        }