Просмотр полной версии : Проблема с отчетом
Не могу разобраться, как сделать отчет, у которого перед формированием отчета была возможность выбрать колонки для отчета.Взял пример Демо-отчеты.Сделал все как в примере.Т.е. создал отчет с названием пример, создал форму, где выбирается колонки, но при выборе колонок все выводится не как в примере.Что еще надо сделать, чтобы было как примере?Пример Демо-Отчеты с добавленным отчетом с назавнием "Пример"
SCADAMaster
06.11.2012, 19:45
У вас неправильно написан код в обработке нажатия кнопки.
Также у компонентов нужно установить стиль стыковки "Слева".
Пример в приложении
Спасибо!!!у компонентов установил стиль стыковки "Слева", и все прошло.И еще хотел задать вопрос.Поместил на форму (где выбирается также колонки для вывода)2 элемента "Выбор даты".Как их можно связать с "начало" и "конец" отчета. Т.е. для выбора даты начала и конца отчета.Пробывал в редактор событий делать так: перетаскивал Начало в редакторе т.е.
Данные.Parameters["Начало"].ParameterValue = DateTime1, не помогало.
SCADAMaster
10.11.2012, 20:22
Создайте переменную "Начало", установите связь между этой переменной и параметром источника "Начало" - выделите параметр "Начало", перейдите на закладку "Свойства", удалите связь, включите режим "Функция" и введите имя переменной.
Переменной "Начало" и присваивайте значений из элемента "Выбор даты".
Сделал так: установил связь с переменной, затем эту связь удалил, функцию выставил в true. В пункте значение прописал Данные.Parameters["Начало"].ParameterValue = DateTime1.Не помогло.
SCADAMaster
11.11.2012, 09:01
Мы вам написали как нужно сделать.
Создайте переменную в отчете, ее свяжите с параметром "Начало", и значение времени присваивайте этой переменной.
Пример в приложении.
Доброго времени суток.
Подскажите возможно ли средствами master report сделать следующее:
Формируем отчет о переодическом процессе (это получилось) в виде:
Рецепт / количество кубов
М100 / 3
M350 / 5
M350 / 1
M200 / 2
M100 / 1
А потом автоматически ее обработать до вида:
М100 / 4
M350 / 6
M200 / 2
Какой инструмент применить?
SCADAMaster
06.12.2012, 18:03
Для этого есть специальные бэнды "Заголовок группы" и "Итог группы".
Пример в приложении.
Спасибо,все получилось.Вы мне очень помогли.
Заметил одну особенность при формировании графика(диаграммы) в отчете при просмотре отчета через саму скада формат времени 24 часа.
Если конвертировать отчет в формат xls, то при открытии в excel на графиках уже формат времени AM ,PM.
Можно ли сохранить формат времени 24 часа для графиков в excel?
SCADAMaster
16.12.2012, 13:08
Попробуйте задать принудительный формат заголовков Оси Х (Диаграмма - Область - Ось Х - Заголовки - Формат), например dd.MM.yyyy HH:mm:ss
пробовал,та же ситуация.
В конвертации в pdf все хорошо.
SCADAMaster
16.12.2012, 19:11
Посмотрите в настройках Windows - Язык и региональные стандарты - вставлен ли у вас там в разделе "Региональные параметры" "Русский" и его настройки.
Подскажите почему отчет по переменным Начало и Конец работает только за 1 сутки. При выборе периода больше отчет зависает
SCADAMaster
17.04.2013, 15:22
Вообще должен работать и за больший интверал. Если конечно у вас очень много данных, то его построение может занять время.
Пришлите ваш проект, выполните Проект - Экспортировать.
Проект создан на базе учебного.
Подскажите как связывается флажек с отчетом. Откуда берутся переменные cbQ, cbT и т.д. Как создать свои флажки?
Не могу закачать одним файлом только тремя. Спасибо
SCADAMaster
18.04.2013, 17:59
Подскажите почему отчет по переменным Начало и Конец работает только за 1 сутки. При выборе периода больше отчет зависает
У нас ваш отчет построился, но его объем составляет почти 50 страниц. Вы уверены что вам нужен суточный отчет с шагом в 20 секунд?
Подскажите как связывается флажек с отчетом. Откуда берутся переменные cbQ, cbT и т.д. Как создать свои флажки?
cbQ и cbT это не переменные - это название checkbox (флажка проще говоря).
Чтобы добавить свой флажок, перейдите на закладку "Форма" - в левой части будут компоненты которые можно добавить на форму.
У нас ваш отчет построился, но его объем составляет почти 50 страниц. Вы уверены что вам нужен суточный отчет с шагом в 20 секунд?
Строится то он и у меня за сутки. А вы попробуйте изменить день например с 21 числа по 25 число одного месяца. Шаг любой хоть 3600 сек (раз в час) и форма уже не открывается все висит. в чем проблема объем выборки не большой, а все равно висит?
cbQ и cbT это не переменные - это название checkbox (флажка проще говоря).
Чтобы добавить свой флажок, перейдите на закладку "Форма" - в левой части будут компоненты которые можно добавить на форму.
Как добавить интуитивно понятно. А как связать с данными и чтобы они фильтровались по флажку не понятно объясните пожалуйста?
SCADAMaster
19.04.2013, 19:13
Строится то он и у меня за сутки. А вы попробуйте изменить день например с 21 числа по 25 число одного месяца. Шаг любой хоть 3600 сек (раз в час) и форма уже не открывается все висит. в чем проблема объем выборки не большой, а все равно висит?
Мы попробовали построить отчет за 15 дней, отчет построился примерно за 1 минуту. Количество страниц - 15.
Но как мы обнаружили без формы отчет строится гораздо быстрее - примерно вдвое.
Может быть вам задавать какие ячейки выводить не в форме отчета, а в окне мнемосхемы? В приложении ваш же проект, где необходимость вывода той или иной строки определяется при помощи команд в дереве объектов (их можно связать например с контролом "Поля выбора").
Как добавить интуитивно понятно. А как связать с данными и чтобы они фильтровались по флажку не понятно объясните пожалуйста?
Там не совсем данные фильтруются - там скрывается отключенное поле на бэнде.
У события кнопки есть такой код:
Заголовок_данныхИсточникДанных1_Время.Enabled = cbTime.Checked;
Заголовок_данныхИсточникДанных1_Расход1__Расход_1_ .Enabled = cbQ.Checked;
Заголовок_данныхИсточникДанных1_Температура1__Темп ература_1_.Enabled = cbT.Checked;
Заголовок_данныхИсточникДанных1_Давление1__Давлени е_1_.Enabled = cbP.Checked;
Заголовок_данныхИсточникДанных1_Расход2__Расход_2_ .Enabled = cbQ.Checked;
Заголовок_данныхИсточникДанных1_Температура2__Темп ература_2_.Enabled = cbT.Checked;
Заголовок_данныхИсточникДанных1_Давление2__Давлени е_2_.Enabled = cbP.Checked;
ДанныеИсточникДанных1_Время.Enabled = cbTime.Checked;
ДанныеИсточникДанных1_Расход1__Расход_1_.Enabled = cbQ.Checked;
ДанныеИсточникДанных1_Температура1__Температура_1_ .Enabled = cbT.Checked;
ДанныеИсточникДанных1_Давление1__Давление_1_.Enabl ed = cbP.Checked;
ДанныеИсточникДанных1_Расход2__Расход_2_.Enabled = cbQ.Checked;
ДанныеИсточникДанных1_Температура2__Температура_2_ .Enabled = cbT.Checked;
ДанныеИсточникДанных1_Давление2__Давление_2_.Enabl ed = cbP.Checked;
double width = 0;
foreach (StiComponent comp in ДанныеИсточникДанных1.Components)
{
if (comp.Enabled)width += comp.Width;
}
double factor = width / ДанныеИсточникДанных1.Width;
foreach (StiComponent comp in ДанныеИсточникДанных1.Components)
{
if (comp.Enabled)comp.Width /= factor;
}
foreach (StiComponent comp in Заголовок_данныхИсточникДанных1.Components)
{
if (comp.Enabled)comp.Width /= factor;
}
Вначале определяется статус флажка, и если он снят отключается видимость соответствующего ему компонента.
После это при помощи циклов определяется количество включенных компонентов, и вычисляется необходимая ширина оставшихся - чтобы они заполнили весь бэнд.
В приложенном проекте этот код, с небольшими изменениями, перенесен в событие "Начало построения" отчета.
Но как мы обнаружили без формы отчет строится гораздо быстрее - примерно вдвое.
Может быть вам задавать какие ячейки выводить не в форме отчета, а в окне мнемосхемы? В приложении ваш же проект, где необходимость вывода той или иной строки определяется при помощи команд в дереве объектов (их можно связать например с контролом "Поля выбора").
В приложенном проекте этот код, с небольшими изменениями, перенесен в событие "Начало построения" отчета.
1 Спасибо идею понял, подскажите а где в вашей версии проекта находится код(где искать событие Начало построения отчета), как его открыть на редактирование?
2 А можно как-то ограничить объем выборки, если вдруг оператор забъет большой период, что бы не было зависания.
SCADAMaster
21.04.2013, 16:29
1 Спасибо идею понял, подскажите а где в вашей версии проекта находится код(где искать событие Начало построения отчета), как его открыть на редактирование?
Щелкаете в свободном месте отчета, переходите на закладку "События". Скриншот в приложении.
2 А можно как-то ограничить объем выборки, если вдруг оператор забъет большой период, что бы не было зависания.
Можно например ограничивать при помощи модуля "Расчет". Если между Концом и началом время больше допустимого, то выдаем на выход расчета наименьшее допустимое.
Формула примерно такая (ограничение - 90 дней)
ЕСЛИ (Конец - Начало>3*30*24*3600,Конец - 3*30*24*3600, Начало )
Еще можно использоват ФБ "Скрипт C#" - с его помощью можно также определить что диапазон превысил допустимый и выдать на выход нужную дату.
Подскажите как изменить,убрать следущие ошибки?
Формула примерно такая (ограничение - 90 дней)
ЕСЛИ (Конец - Начало>3*30*24*3600,Конец - 3*30*24*3600, Начало )
Еще можно использоват ФБ "Скрипт C#" - с его помощью можно также определить что диапазон превысил допустимый и выдать на выход нужную дату.
А дальше что, мы получили новую переменную(тип время) и она никуда не подцепляется ?
SCADAMaster
17.05.2013, 12:10
Подскажите как изменить,убрать следущие ошибки?
Выдается ошибка что значение не может быть вычислено. Возможно вы не определили константу у какой то переменной.
Приложите ваш проект
А дальше что, мы получили новую переменную(тип время) и она никуда не подцепляется ?
Именно эта переменная и будет переменной конца. Именно ее и нужно связывать с соответствующей переменной в источнике данных.
Эта переменная будет ограничивать временной диапазон.
Выдается ошибка что значение не может быть вычислено. Возможно вы не определили константу у какой то переменной.
Приложите ваш проект
Спасибо разобрался небыл задан источник данных.
Новая проблема перестал работать интервал (привязка есть), а все равно измерение раз в мс. Посмотрите пожалуйста.
SCADAMaster
17.05.2013, 19:08
У вас в настройках источника данных стоит способ формирования "По изменению" - в этом случае строка формируется при каждом изменении переменной, а параметр "Интервал" игнорируется
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot