Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 00:55:42
 
Начало Помощь Поиск Войти Регистрация
Новости: Форум обновлен

+  Форум АО "ВЗЛЕТ"
|-+  Автоматизация и диспетчеризация
| |-+  Взлет СП4
| | |-+  Реализация данных для шапки в сп-4
0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: 1 [2] Печать
Автор Тема: Реализация данных для шапки в сп-4  (Прочитано 21551 раз)
Энерго_алексей
Наш человек
***

Харизма: 9
Офлайн Офлайн

Сообщений: 897


« Ответ #15 : 04.03.2018, 12:34:05 »

все получилось спасибо,а как перетаскивать текст в верху шапки???

Наш встроенный редактор отчетных форм не сильно отличается от любого другого. Все двигается мышкой, также есть панель "Окно свойств", там можно менять больше свойств у элементов.

Дмитрий а подскажите как сделать вычисляемые поля в сп-4 например что бы из шапки брал число, умножал на количество например часов и итог вы выводил.

Вы можете добавлять свои вычисляемые поля, на таблице Equip (если у Вас отчетная форма на прибор) или MeasureScheme (если на точку учета) пункт меню "Добавить вычисляемое поле", затем на созданном вычисляемом поле "Редактировать выражение", указываете формулу и перетаскиваете ваше поле на отчетную форму. Прямо в редакторе можно посмотреть как это будет выглядеть ("Просмотр").

П.С.: по-моему, в у каждой записи в таблице Equip есть поле ArchivePeriod - время интегрирования записи (час, день, месяц) в часах. Это Вам поможет подсчитать значение, зависящее от отчетного периода. Т.е. если у Вас есть договорная нагрузка Гкал/час, то Вы ее умножаете на ArchivePeriod и получаете ее за час/сутки/конкретный месяц.

Дмитрий что то у меня совсем не получается вычислять поля можно как то поподробнее нужно научиться всего 1 раз и все пойдет,собственно прикрепил скрин.
Дмитрий что то у меня совсем не получается вычислять поля, вот скрин как мне сделать выражения что бы эти поля вычислялись?


* Безымянный.jpg (383.41 Кб, 1920x1080 - просмотрено 1866 раз.)
Записан
KIA
Global Moderator
*****

Харизма: 10
Офлайн Офлайн

Сообщений: 276


« Ответ #16 : 05.03.2018, 10:02:26 »

Для того, чтобы значение нормативных потерь можно было использовать для дальнейших расчетов,
необходимо, чтобы тип данных был "Вещественное число".

1. Описание пользовательского параметра.
Тип данных - вещественно число.
Код (например) - NormPot
2. Ввод значения для прибора.
Вводите только число.
3. Отчетная форма.
В свойстве "Текст" ячейки пишите следующее: "Нормативные потери: [CustomProperty.Equip_NormPot!F3] Гкал/ч",
где "Нормативные потери: " и " Гкал/ч" - это просто какой-то текст,
[CustomProperty.Equip_NormPot!F3] - связь со значением (!F3 - означает выводить 3 знака после запятой)

И учтите, что при выводе отчета можно выбирать различные единицы измерения тепла.
При этом значение нормативных потерь к выбранной единице приводиться не будет.


 


* 1 - Описание параметра.png (7.76 Кб, 526x201 - просмотрено 1718 раз.)

* 2 - Ввод значения.png (21.23 Кб, 872x641 - просмотрено 1746 раз.)

* 3 - Отчетная форма.png (48.94 Кб, 927x347 - просмотрено 1738 раз.)
Записан
VladVas
Разбирается
*

Харизма: 0
Офлайн Офлайн

Сообщений: 2


« Ответ #17 : 06.03.2018, 12:37:21 »

Уважаемый KIA!

У меня такая же проблема как и у Энерго_алексей. Как выводить пользовательский параметр в отчет понятно - это получается, а как его использовать в вычислениях с помощью вычисляемого поля (calculatedField) в примечание отчета (ReportFooter)? Это четко видно и на рисунке (начерчены стрелочки - порядок вычислений) прикрепленном  Энерго_алексей (см. пост выше), у него такая же задача. Если можно, выложить бы сдесь пример такого отчета. Возникает вопрос где создавать вычисляемое поле (calculatedField)? В группе Equip? Тогда поля группы CustomProperty не доступны в редакторе формул для подстановки в формулу.  Может нужно создавать в группе Data? Тогда все поля доступны, но формула не вычисляется, так как созданные поля чудесным образом пропадают при формировании отчетов с контекстного меню прибора (не путать с просмотром в дизайнере, там не пропадает, хотя после закрытия окна дизайнера тоже пропадает).
Записан
KIA
Global Moderator
*****

Харизма: 10
Офлайн Офлайн

Сообщений: 276


« Ответ #18 : 06.03.2018, 18:56:41 »

Да, действительно. Есть проблема.
В вычисляемом поле нельзя использовать поля из разных таблиц.
Есть обходной путь - использовать скрипты.
1. Необходимо определить переменную normPotValue.
2. Подписаться на событие отчета DataSourceDemanded:  Отчет -> Режим -> Скрипты -> Запрос источника данных -> (Новый)
3. В этом событии заполнить значение переменной normPotValue.
3. Создать в таблице Equip вычисляемое поле normPot .
4. Для этого поля подписаться на событие GetValue: Вычисляемое поле -> Режим -> Скрипты -> Получить значение  -> (Новый)
5. В этом событии заполнит значение вычисляемого поля.
6. Значение вычисляемого параметра можно использовать для дальнейших расчетов.

Код:
using System.Data;

private double? normPotValue = null;

// Заполняем значение переменной
private void MyReport_DataSourceDemanded(object sender, System.EventArgs e)
{
DataSet dataSet = (DataSet)this.Report.DataSource;
DataTable table = dataSet.Tables["CustomProperty"];
DataColumn column = table.Columns["Equip_NormPot"];
if (table.Rows.Count == 1 && column != null && column.DataType == typeof(double) && !table.Rows[0].IsNull(column))
{
normPotValue = (double)table.Rows[0][column];
}
}

// Заполняем значение вычисляемого поля
private void normPot_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
e.Value = normPotValue;
}
Записан
Энерго_алексей
Наш человек
***

Харизма: 9
Офлайн Офлайн

Сообщений: 897


« Ответ #19 : 06.03.2018, 20:51:06 »

Да, действительно. Есть проблема.
В вычисляемом поле нельзя использовать поля из разных таблиц.
Есть обходной путь - использовать скрипты.
1. Необходимо определить переменную normPotValue.
2. Подписаться на событие отчета DataSourceDemanded:  Отчет -> Режим -> Скрипты -> Запрос источника данных -> (Новый)
3. В этом событии заполнить значение переменной normPotValue.
3. Создать в таблице Equip вычисляемое поле normPot .
4. Для этого поля подписаться на событие GetValue: Вычисляемое поле -> Режим -> Скрипты -> Получить значение  -> (Новый)
5. В этом событии заполнит значение вычисляемого поля.
6. Значение вычисляемого параметра можно использовать для дальнейших расчетов.

Код:
using System.Data;

private double? normPotValue = null;

// Заполняем значение переменной
private void MyReport_DataSourceDemanded(object sender, System.EventArgs e)
{
DataSet dataSet = (DataSet)this.Report.DataSource;
DataTable table = dataSet.Tables["CustomProperty"];
DataColumn column = table.Columns["Equip_NormPot"];
if (table.Rows.Count == 1 && column != null && column.DataType == typeof(double) && !table.Rows[0].IsNull(column))
{
normPotValue = (double)table.Rows[0][column];
}
}

// Заполняем значение вычисляемого поля
private void normPot_GetValue(object sender, DevExpress.XtraReports.UI.GetValueEventArgs e)
{
e.Value = normPotValue;
}
А можно чуть по подробнее и скринами что то совсем не понимаю как это сделать, да и этот скрипт тока для нормативных потерь?
1. Необходимо определить переменную normPotValue. где именно это находиться?
2. Подписаться на событие отчета DataSourceDemanded:  Отчет -> Режим -> Скрипты -> Запрос источника данных -> (Новый) где именно это находиться?
3. В этом событии заполнить значение переменной normPotValue. где именно это находиться?
3. Создать в таблице Equip вычисляемое поле normPot . это понятно где.
4. Для этого поля подписаться на событие GetValue: Вычисляемое поле -> Режим -> Скрипты -> Получить значение  -> (Новый) где именно это находиться?
5. В этом событии заполнит значение вычисляемого поля. где именно это находиться?
6. Значение вычисляемого параметра можно использовать для дальнейших расчетов. где именно это находиться?
Записан
VladVas
Разбирается
*

Харизма: 0
Офлайн Офлайн

Сообщений: 2


« Ответ #20 : 12.03.2018, 07:07:58 »

Добрый день Энерго_алексей!

А можно чуть по подробнее и скринами что то совсем не понимаю как это сделать, да и этот скрипт тока для нормативных потерь?
1. Необходимо определить переменную normPotValue. где именно это находиться?
2. Подписаться на событие отчета DataSourceDemanded:  Отчет -> Режим -> Скрипты -> Запрос источника данных -> (Новый) где именно это находиться?
3. В этом событии заполнить значение переменной normPotValue. где именно это находиться?
3. Создать в таблице Equip вычисляемое поле normPot . это понятно где.
4. Для этого поля подписаться на событие GetValue: Вычисляемое поле -> Режим -> Скрипты -> Получить значение  -> (Новый) где именно это находиться?
5. В этом событии заполнит значение вычисляемого поля. где именно это находиться?
6. Значение вычисляемого параметра можно использовать для дальнейших расчетов. где именно это находиться?

1. Переменная определяется в Администрирование -> Пользовательские параметры (далее описывать не буду, выше в постах есть подробное описание вставки в отчёт пользовательской переменной в шапку отчета)
2. Это находится в редакторе отчёта справа, Окно свойств.
3. Смотрите в посте выше - "Код"
4. Это находится в редакторе отчёта справа, Окно свойств.
5. Смотрите в посте выше - "Код"
6. Это от Вас и ваших задач зависит.

Уважаемый KIA !

А что мешает использовать в отчётах поля таблицы "Параметры"? Правда проблема тоже есть. Пока находишься в редакторе отчёта (режим "Просмотр") - всё работает и значения параметров запрашиваются, но стоит только запустить задачу формирования отчёта не из редактора отчёта - параметры не запрашиваются, даже панель "Параметры" не возможно вызвать.
Записан
Энерго_алексей
Наш человек
***

Харизма: 9
Офлайн Офлайн

Сообщений: 897


« Ответ #21 : 13.03.2018, 20:49:51 »

Добрый день Энерго_алексей!

А можно чуть по подробнее и скринами что то совсем не понимаю как это сделать, да и этот скрипт тока для нормативных потерь?
1. Необходимо определить переменную normPotValue. где именно это находиться?
2. Подписаться на событие отчета DataSourceDemanded:  Отчет -> Режим -> Скрипты -> Запрос источника данных -> (Новый) где именно это находиться?
3. В этом событии заполнить значение переменной normPotValue. где именно это находиться?
3. Создать в таблице Equip вычисляемое поле normPot . это понятно где.
4. Для этого поля подписаться на событие GetValue: Вычисляемое поле -> Режим -> Скрипты -> Получить значение  -> (Новый) где именно это находиться?
5. В этом событии заполнит значение вычисляемого поля. где именно это находиться?
6. Значение вычисляемого параметра можно использовать для дальнейших расчетов. где именно это находиться?

1. Переменная определяется в Администрирование -> Пользовательские параметры (далее описывать не буду, выше в постах есть подробное описание вставки в отчёт пользовательской переменной в шапку отчета)
2. Это находится в редакторе отчёта справа, Окно свойств.
3. Смотрите в посте выше - "Код"
4. Это находится в редакторе отчёта справа, Окно свойств.
5. Смотрите в посте выше - "Код"
6. Это от Вас и ваших задач зависит.

Уважаемый KIA !

А что мешает использовать в отчётах поля таблицы "Параметры"? Правда проблема тоже есть. Пока находишься в редакторе отчёта (режим "Просмотр") - всё работает и значения параметров запрашиваются, но стоит только запустить задачу формирования отчёта не из редактора отчёта - параметры не запрашиваются, даже панель "Параметры" не возможно вызвать.

Уважаемый KIA VladVas
Все делаю как написано не получается у меня почему то вычисления....хелллппппппппппппппппп
Записан
KIA
Global Moderator
*****

Харизма: 10
Офлайн Офлайн

Сообщений: 276


« Ответ #22 : 14.03.2018, 14:40:53 »

Пример отчетной формы

*  отчетной формы с нормативными потерями.vspr (211.41 Кб - загружено 830 раз.)
Записан
Энерго_алексей
Наш человек
***

Харизма: 9
Офлайн Офлайн

Сообщений: 897


« Ответ #23 : 14.03.2018, 22:08:39 »

Пример отчетной формы
Уважаемый KIA Выручили меня спасибо большое, теперь у меня отошёл вопрос с потерями, теперь есть ещё прикрепил скрин  (нормативные потери + итоговые гиги) сложить и вывести в итоговую на скрине я показал 1+2=3, и как разницу между м1-м2 то есть это гвс вывести в итог и перевести в m3 куб, я на взлет сп-3 просто брал м1-м2 итоги и по такой формуле у меня вычислялось, я брал колонку итоговых данных м1-м2*0,97781 это коэффициент 65градусов и у меня автоматом пересчитывалось гвс в м3 куб.


* 3.jpg (382.18 Кб, 1920x1080 - просмотрено 1558 раз.)
Записан
KIA
Global Moderator
*****

Харизма: 10
Офлайн Офлайн

Сообщений: 276


« Ответ #24 : 15.03.2018, 09:36:24 »

Для этого скрипты уже не нужны.
Добавьте 2 вычисляемых поля в таблицу Equip с типами Двойной точности.
Выражение для первого поля:  [Wтс] + normPot
Выражение для второго поля: ([M1] - [M2]) * 0,97781 или [Mтс]*0,97781
Это будут данные по каждой записи.
Далее используйте сводку:
Функция - Сумма
Диапазон подсчета - Весь отчет
Записан
Энерго_алексей
Наш человек
***

Харизма: 9
Офлайн Офлайн

Сообщений: 897


« Ответ #25 : 19.03.2018, 10:31:16 »

Для этого скрипты уже не нужны.
Добавьте 2 вычисляемых поля в таблицу Equip с типами Двойной точности.
Выражение для первого поля:  [Wтс] + normPot
Выражение для второго поля: ([M1] - [M2]) * 0,97781 или [Mтс]*0,97781
Это будут данные по каждой записи.
Далее используйте сводку:
Функция - Сумма
Диапазон подсчета - Весь отчет
Все большое спасибо все получилось.
Записан
Страниц: 1 [2] Печать 
« предыдущая тема следующая тема »
Перейти в:  


Войти

© 1990—2016, АО «Взлет».
Все права защищены.
Контактная информация
Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC
Материалы, размещенные на сайте, охраняются законодательством об авторском праве. Перепечатка материалов допускается только со ссылкой на сайт.