Картинка - http://glasscad.ru/stimulsoft/001.jpg
Собственно говоря такой способо позволит уменьшить кол-во выводимых данных. У Вас есть в таблице слияние полей и т.д. но необходимо иметь информацию о том с какой позиции была начата группировка и в какой позиции окончена. На рисунке это поле ID со значением 1-3.
БЫЛО бы замечательно видеть такой ф-ал в Вашем генераторе.
Если я непонятно изложил материал ICQ 86157175 - Сергей.
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
-
- Сообщения: 4
- Зарегистрирован: 24 апр 2009, 07:26
- Откуда: 123
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
По идее такое можно сделать с помощью групповых бэндов с бэндом данных нулевой высоты, разместив все мемки на групповом бэнде и запомнив ID первой и последней записей группы.sergsuhanov писал(а):Картинка - http://glasscad.ru/stimulsoft/001.jpg
Собственно говоря такой способо позволит уменьшить кол-во выводимых данных. У Вас есть в таблице слияние полей и т.д. но необходимо иметь информацию о том с какой позиции была начата группировка и в какой позиции окончена. На рисунке это поле ID со значением 1-3.
-
- Сообщения: 4
- Зарегистрирован: 24 апр 2009, 07:26
- Откуда: 123
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
Можно конечно сделать, но это вряд ли будет использоваться как разовое решение - это очень частый подход в оформлении документов.
Это очень сильно экономит бумагу!!! На чем собственно отчеты и печатаются.
Предлагаю обсудить подробнее данную тему.
Если есть желание конечно
Это очень сильно экономит бумагу!!! На чем собственно отчеты и печатаются.
Предлагаю обсудить подробнее данную тему.
Если есть желание конечно
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
Здравствуйте Сергей,
Посмотрите пожалуйста в Demo приложении (2009.1) пример отчета Groups with Reports->Groups with Ranges.
Спасибо.
Посмотрите пожалуйста в Demo приложении (2009.1) пример отчета Groups with Reports->Groups with Ranges.
Спасибо.
-
- Сообщения: 4
- Зарегистрирован: 24 апр 2009, 07:26
- Откуда: 123
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
В предложенном отчете используется группировка по определенному значению например: "{Customers.CompanyName.Substring(0, 1)}"
Хотя на самом деле Вы группируете данные как показано ниже:
"
string str = Customers.CompanyName.Substring(0, 1);
if (str.IndexOfAny(new char[]{'A', 'B', 'C', 'D'}) != -1)e.Value = "A-D";
else if (str.IndexOfAny(new char[]{'E', 'F', 'G', 'H'}) != -1)e.Value = "E-H";
else if (str.IndexOfAny(new char[]{'I', 'J', 'K', 'L'}) != -1)e.Value = "I-L";
else if (str.IndexOfAny(new char[]{'M', 'N', 'O', 'P'}) != -1)e.Value = "M-P";
else if (str.IndexOfAny(new char[]{'Q', 'R', 'S', 'T'}) != -1)e.Value = "Q-T";
else if (str.IndexOfAny(new char[]{'U', 'V', 'W', 'X'}) != -1)e.Value = "U-X";
else e.Value = "Y-Z";
" - Это Ваш код в events значении GroupHeader'а
Одним словом, Вы сами сказали как хотите сгруппировать данные, что собственно не является проблемой и может решаться несколькими разными способами.
Я же говорю о других, совершенно других группировках. Я давно пользуюсь Вашим генератором, эту задачу можно решать через локальные переменные или предварительную подготовку данных. НО!!!
Я предлагаю сделать это ф-ю системы если конечно этого нет, так как это очень удобная и полезная штука
Еще раз о задаче: Консолидация строк в отчете в одну строку, с возможностью получения первого и последнего значения какого-либо поля из консолидированных данных.
Практическая мотивация: зачем печатать несколько одинаковых строк если можно сказать что с позиции 134 по 179 данные имеют такое то значение.
Хотя на самом деле Вы группируете данные как показано ниже:
"
string str = Customers.CompanyName.Substring(0, 1);
if (str.IndexOfAny(new char[]{'A', 'B', 'C', 'D'}) != -1)e.Value = "A-D";
else if (str.IndexOfAny(new char[]{'E', 'F', 'G', 'H'}) != -1)e.Value = "E-H";
else if (str.IndexOfAny(new char[]{'I', 'J', 'K', 'L'}) != -1)e.Value = "I-L";
else if (str.IndexOfAny(new char[]{'M', 'N', 'O', 'P'}) != -1)e.Value = "M-P";
else if (str.IndexOfAny(new char[]{'Q', 'R', 'S', 'T'}) != -1)e.Value = "Q-T";
else if (str.IndexOfAny(new char[]{'U', 'V', 'W', 'X'}) != -1)e.Value = "U-X";
else e.Value = "Y-Z";
" - Это Ваш код в events значении GroupHeader'а
Одним словом, Вы сами сказали как хотите сгруппировать данные, что собственно не является проблемой и может решаться несколькими разными способами.
Я же говорю о других, совершенно других группировках. Я давно пользуюсь Вашим генератором, эту задачу можно решать через локальные переменные или предварительную подготовку данных. НО!!!
Я предлагаю сделать это ф-ю системы если конечно этого нет, так как это очень удобная и полезная штука
Еще раз о задаче: Консолидация строк в отчете в одну строку, с возможностью получения первого и последнего значения какого-либо поля из консолидированных данных.
Практическая мотивация: зачем печатать несколько одинаковых строк если можно сказать что с позиции 134 по 179 данные имеют такое то значение.
-
- Сообщения: 4
- Зарегистрирован: 24 апр 2009, 07:26
- Откуда: 123
Как можно сгруппировать данные автоматически с указанием начала и окончания позиции (См. РИСУНОК)
Для решения этой задачи можно использовать StiVirtualAdapterService
В мастере есть возможность указания колонок группировки, вывода первой и поседней записи и кол-ва данных в группировке.
Единственное, чего нет в этом классе, это указания каким образом проводить группировку - либо в пределах всех данных, либо построчно.
Это должно решаться через создание своего класса (наследника от базового)
В мастере есть возможность указания колонок группировки, вывода первой и поседней записи и кол-ва данных в группировке.
Единственное, чего нет в этом классе, это указания каким образом проводить группировку - либо в пределах всех данных, либо построчно.
Это должно решаться через создание своего класса (наследника от базового)