Пара вопросов

Обсуждение Stimulsoft Reports.NET
Ответить
res562
Сообщения: 28
Зарегистрирован: 26 июл 2010, 13:59

Пара вопросов

Сообщение res562 »

Если в одной колонке я использую выражение, как результат этого выражения использовать в выражении другой колонки?

Есть колонка Id, есть колонка время, необходимо для определенного id вывести время по возрастанию. Создал groupheaderband с условием по id, создал датабэнд с сортировкой по времени. В итоге по id группируется, но по времени не сортируется. Как правильно настроить группировку и сортировку?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Пара вопросов

Сообщение Aleksey »

Здравствуйте,
res562 писал(а):Если в одной колонке я использую выражение, как результат этого выражения использовать в выражении другой колонки?
Вы можете использовать либо все выражение из этой колонки как часть выражения второй, либо использовать переменную, которой присваивать результат первого выражения и использовать ее во втором выражении.
res562 писал(а):Есть колонка Id, есть колонка время, необходимо для определенного id вывести время по возрастанию. Создал groupheaderband с условием по id, создал датабэнд с сортировкой по времени. В итоге по id группируется, но по времени не сортируется. Как правильно настроить группировку и сортировку?
Посмотрите, пожалуйста пример отчета с реализацией группировки и сортировки в приложенном файле.

Спасибо.
Вложения
Sample Report.mrt
(16.81 КБ) 368 скачиваний
res562
Сообщения: 28
Зарегистрирован: 26 июл 2010, 13:59

Пара вопросов

Сообщение res562 »

Спасибо за быстрый ответ.
Есть еще вопрос :)
Как посчитать сумму по строкам, но не считать сумму для дублирующихся строк. в колонке в "Обработке дубликатов" выставлено удалять текст. В итоге вычисляю сумму, но она вычисляется по всем строкам.
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Пара вопросов

Сообщение Jan »

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

К сожалению, встроенной функции для данной задачи нет. Можно решить ее следующим образом:

1. Добавьте следующие строки в код отчета:

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

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using Stimulsoft.Controls;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.Dialogs;
using Stimulsoft.Report.Components;
using System.Collections;//<<<<<<<<<<<<<<<<<<<<

public class Report : Stimulsoft.Report.StiReport
{
        Hashtable  hash = new Hashtable();
        decimal value = 0;
        
        public Report()
        {
            this.InitializeComponent();
        }
2. Добавьте следующий код в событие Rendering датабэнда:

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

if (hash[MyDataSource.Field] == null)
{
  hash[MyDataSource.Field] = MyDataSource.Field;
  value += MyDataSource.Field;
}
3. В текстбоксе, где нужно вывести итог:
4. У текстбокса, который выводит итог, установите свойство ProcessAtEnd в true.

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