Подскажите, пожалуйста, как реализовать отчет

Обсуждение Stimulsoft Reports.NET
Ответить
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Подскажите, пожалуйста, как реализовать отчет

Сообщение Alkatraz »

Здравствуйте!

Подскажите, пожалуйста, как можно реализовать в отчете следующую ситуацию:
Есть список, в котором каждая запись это человек. В записи есть указание кода категории и наименования категории к которой относится человек и кол-во трудовых часов. Категории могут быть вложенные, но не более одного уровня вложенности, соответственно в списке есть дополнительно поля с кодом основной категории и наименования основной категории. Если категория не вложенная, то коды категорий совпадают.

Требуется подсчитать кол-во человек в основных категориях и трудозатраты в этой категории, если категория имеет вложенные категории, то в основной категории необходимо показать суммы и кол-во человек во всех подчиненных категориях, включая основную и под ней вывести перечень с суммами по каждой подчиненной категории.

Пример:

1 | Специалист | 23чел. | 700ч.
2 | Гл. специалист | 3чел. | 300ч.
3 | Техник | 24чел. | 940ч.
а | гл. техник | 1чел. | 30ч.
б | ст. техник | 5чел. | 130ч.
в | мл. техник | 14чел. | 740ч.
4 | Бухгалтер | 3чел. | 45ч.
...
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Подскажите, пожалуйста, как реализовать отчет

Сообщение Jan »

Здравствуйте,

Если я верно понял, то можно использовать master-detail отчет. Для Detail бэнда устанавливаете нулевую высоту - чтобы он не был виден. После этого на master-бэнде можно вывести подсчеты по detail-бэнду. В виде:

Код: Выделить всё

{Sum(detailband, expression)}
Спасибо.
Alkatraz
Сообщения: 22
Зарегистрирован: 27 апр 2010, 16:46

Подскажите, пожалуйста, как реализовать отчет

Сообщение Alkatraz »

Да, спасибо - Master-Detail то что надо. Я просто неправильно построил структуру отчета - сделал через один запрос и группировки. Переписал отчет, сделал два запроса на основную категорию и подчиненные и связал через Master-Detail.

Подскажите еще - как сделать, чтобы {LineABC} выводила буквы на русском?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Подскажите, пожалуйста, как реализовать отчет

Сообщение Jan »

Здравствуйте,
Подскажите еще - как сделать, чтобы {LineABC} выводила буквы на русском?
Встроенной функции в генераторе отчетов нет. Можно использовать разместить следующий код прямо в коде отчета (после объявления начала класса):

Код: Выделить всё

private static char[] ABCRu = {
											'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'К', 'Л', 'М', 'Н', 
											'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Э', 
                                            'Ю', 'Я'
										};

/// 
            /// Converts the number to А Б В representation for numbering of the list in russian.
            /// 
            /// A number for converting into the А Б В representation.
            /// String representation of the value in А Б В format.
            public static string ToABCRu(int value)
            {
                if (value  26)
                {
                    count++;
                    value -= 26;
                }
                return new string(ABCRu[value - 1], count + 1);
            }
Вызывать так:

Код: Выделить всё

{ToABCRu(Line)}
Также добавили функцию в генератор отчетов. Вызвать так:

Код: Выделить всё

{Func.Convert.ToABCRu(Line)}
Изменения будут доступны в билде от 5 июля.

Спасибо.
Ответить