Чтение онлайн

на главную - закладки

Жанры

BPwin и Erwin. CASE-средства для разработки информационных систем
Шрифт:

Таблица 5.3. Функции RPTwin

Функция Возвращаемое значение
Abs(number) Абсолютное значение аргумента
Age(date) Полное число лет от даты аргумента до сегодняшнего числа
Avg(numbcr) Среднее значение аргумента по строкам (контекстно)
Cos(number) Косинус аргумента
Count Количество строк (контекстно)
DateQ Дата выполнения отчета
DateTime Дата и время выполнения отчета
DayName(date) Наименование дня даты недели аргумента (по-английски), например "Saturday"
DayNameAbr(date) Сокращенное наименование дня недели даты аргумента (по-английски), например "Sat"
DayOfMonth(date) Число - день месяца даты
аргумента
DayOfWeek(date) Число - день недели даты аргумента, например воскресенье - 1, суббота - 7
DayOfYear(date) Число - день года
DayBetween(datel, date2) Число - количество дней между двумя датами аргументов
GroupAvg(number) Среднее значение аргумента по группе
GroupCount(number) Количество строк в группе
GroupMax(number) Максимальное значение аргумента по группе
GroupMin(number) Минимальное значение аргумента по группе
GroupSum(number) Сумма аргумента по группе
Hour(time) Часы (0-23) даты аргумента
If test Then value 1 [Else value2\ Условный оператор. Test - логический предикат, принимающий значение "Истина" или "Ложь". Если Test = "Истина", выполняется выражение value 1, если "Ложь" - value2
InitCap(text) Текст аргумента, все символы которого в нижнем регистре, за исключением первых символов слов, например InitCap("aRRoW naMe") возвращает "Arrow Name"
Lcase(text) Текст аргумента, все символы которого в нижнем регистре
Leftftext, number) Первые символы слева текста первого аргумента. Количество символов указывается во втором аргументе
LTrim(text) Текст аргумента без символов пробела слева (если таковые имелись)
MakeDate(MM,DD,YY) Дата, сгенерированная по трем числам, например MakeDate(l,2,1999) возвращает 2 января 1999 года
MakeMoney(number) Тип money, конвертированный из аргумента number
MakeTime(HH,MI,SS) Время, сгенерированное по трем числам - часы, минуты, секунды
Max(number) Максимальное значение аргумента по строкам (контекстно)
Mid(text, number 1, number2) Подстрока первого аргумента, начиная с позиции numberi и включая number2 символов
Min(number) Минимальное значение аргумента по строкам (контекстно)
Minite(time) Количество минут времени аргумента (0-59)
Mod(numberl,number2) Остаток от деления первого аргумента на второй, например Mod(7,3) возвращает 1
Month(date) Порядковый номер месяца даты аргумента (1-12)
MonthName(date) Наименование месяца даты аргумента (по-английски), например "April"
MonthNameAbr(date) Сокращенное наименование месяца даты аргумента (по-английски), например "Арг"
PageNum Номер страницы
Quarter(date) Квартал даты аргумента (1 -4)
RecNum Номер строки отчета
Replace(mainText, oldText, newText) Замена символов в строке mainText - старого фрагмента oldText на новый newText
ReportAvg(number) Среднее значение аргумента по отчету
ReportCount(number) Количество строк в отчете
ReportCumAvg(number) Среднее значение аргумента, вычисляемое контекстно. Если ReportCumAvg расположена в секции Detail, функция будет возвращать среднее значение аргумента всех вышестоящих строк отчета
ReportCumMax(number) Максимальное значение аргумента, вычисляемое контекстно. Вычисляется аналогично ReportCumAvg
ReportCumMin(number) Минимальное значение аргумента, вычисляемое контекстно. Вычисляется аналогично ReportCumAvg
ReportCumSum(number) Сумма аргумента, вычисляемая контекстно. Вычисляется аналогично ReportCumAvg
ReportMax(number) Максимальное значение аргумента по отчету
ReportMin(number) Минимальное значение аргумента по отчету
ReportSum(number) Сумма аргумента по отчету
Right(mainText, number) Первые символы справа текста первого аргумента. Количество символов указывается во втором аргументе
Round(numberTo Round, precisionNumber) Округленное значение первого аргумента. Во втором аргументе указывается точность округления, например Round(12345,500) возвращает 12500
RTrim(text) Текст аргумента без символов пробела справа (если таковые имелись)
Second(time) Количество секунд времени аргумента (0-59)
Sign(number) 1, если аргумент положительный, 0, если равен нулю и -1, если аргумент отрицательный
Sin(number) Синус аргумента
Sum(number) Сумма значений аргумента по строкам (контекстно)
Tan(number) Тангенс аргумента
Time Текущее время
ToDate(text, fonnat) Дата,
конвертированная из текстовой строки. Второй аргумент указывает формат даты
ToNumber(text) Число, конвертированное из текстовой строки
ToText(date, foirnat) Текст, конвертированный из даты. Второй аргумент указывает формат даты
Trim(text) Текст аргумента без "лишних" символов пробела. Удаляются пробелы перед строкой и после строки аргумента; если пробелов подряд более двух, оставляется только один
Trunc(number, precision) Округленный первый аргумент с отбрасыванием остатка. Во втором аргументе указывается точность округления
Ucase(text) Текст аргумента, все символы которого в верхнем регистре
Week(date) Порядковый номер недели (в году) даты аргумента (1-54)
Year(date) Год даты аргумента
YearsBetween(datel, date2) Количество лет между датами первого и второго аргумента

5.3.3. Использование формул RPTwin

Рассмотрим построение отчета RPTwin по модели процессов, изображенной на рис. 5.11. Модель описывает процесс изготовления изделия и имеет три уровня декомпозиции. В ней описаны следующие свойства, определяемые пользователем (UDP):

уровень декомпозиции (Integer List, допустимые значения в модели;

потребление электроэнергии, кВт-ч (Real Number);

потребление воды, т (Real Number).

Контекстной работе ("Изготовление изделия") присвоено значение UDP "Уровень декомпозиции", равное 0, работам на диаграмме декомпозиции контекста -1 и работам на диаграммах декомпозиции нижнего уровня -2. Значения свойств "Потребление электроэнергии, кВт-ч" и "Потребление воды, т" присвоены только работам на диаграммах декомпозиции нижнего уровня.

Создание UDP в BPwin и присвоение значений работам подробно описано в 1.4.

Рис. 5.11. Дерево узлов модели процессов

Непосредственно в среде BPwin невозможно оценить количество ресурсов (электроэнергия и вода), необходимых для производства изделия, поскольку невозможно производить арифметические операции с UDP. В отчете Diagram Object Report, фрагмент которого приведен на рис. 5.12, можно получить только список работ с указанием их UDP, но невозможно отфильтровать работы и произвести расчеты суммарных значений необходимых для производства изделия ресурсов.

Рис. 5.12. Отчет по UDP (Diagram Object Report), полученный средствами BPwin

Создать отчет со сложной обработкой данных возможно только средствами- RPTwin. Для создания такого отчета необходимо в диалоге настройки отчета Diagram Object Report (см. рис. 1.48) в качестве формата отчета указать RPTwin, после чего щелкнуть по кнопке Report. В появившемся диалоге сохранения файла следует указать имя файла данных отчета (.LWD). После этого автоматически запускается RPTwin и появляется диалог New Report. В диалоге New Report в качестве типа создаваемого отчета следует указать Columnar. Создается шаблон отчета, включающий в себя все колонки файла набора данных отчета (рис. 5.13).

Рис. 5.13. Шаблон отчета "Ресурсы, необходимые для изготовления изделия "

Фрагмент отчета (режим предварительного просмотра) представлен на рис. 5.14.

Ресурсы, необходимые для изготовления изделия

Рис. 5.14. Отчет "Ресурсы, необходимые для изготовления изделия"

Этот отчет не включает суммирующие данные и несет ту же информацию, что и отчет на рис. 5.12. Для того, чтобы он действительно помог анализировать необходимые ресурсы, его следует модифицировать.

Поскольку UDP, определяющие потребление ресурсов, заданы только для работ нижнего уровня декомпозиции, можно оставить в отчете только эти работы. Для установки фильтра в среде RPTwin нужно выбрать пункт меню Options/Filter. В диалоге Filter (рис. 5.15) следует выбрать опцию Include и щелкнуть по кнопке Formula Editor.

Рис. 5.15. Диалог Filter

В диалоге Formula Editor нужно создать формулу

{Уровень декомпозиции}=2

В результате в отчет войдут только работы с уровнем декомпозиции 2, т.е. только те работы, для которых заданы значения UDP "Потребление электроэнергии, кВт-ч" и "Потребление воды, т".

Теперь можно удалить из отчета поле и заголовок "Уровень декомпозиции".

Сгруппируем работы по уровню энергопотребления. Для этого следует выбрать пункт меню Layout/Sorting and Grouping. Будем считать, что работы, имеющие значение UDP "Потребление электроэнергии, кВт-ч" больше 10, относятся к высокому уровню энергопотребления, от 5 до 10 - к среднему и менее 5 - к низкому. В файле данных отчета нет колонки, непосредственно указывающей на уровень энергопотребления, поэтому следует провести группировку по вычисляемому значению. Для создания вычисляемого значения в диалоге Sorting/Grouping следует щелкнуть по кнопке Sort/Group on Calculated Value и в появившемся диалоге Formula Editor набрать текст формулы:

If {Потребление электроэнергии, кВт-ч} >10 Then "Высокие энергозатраты" Else If {Потребление электроэнергии, кВт-ч}< 5

Then "Низкие энергозатраты" Else "Средние энергозатраты"

В шаблоне отчета создаются две новые секции - Group Header и Group Footer.

В секцию Group Header поместим формулу

If {Потребление электроэнергии, квт-ч.) >10 Then "Высокие энергозатраты" Else If {Потребление электроэнергии, квт-ч.} <5 Then "Низкие энергозатраты" Else "Средние энергозатраты"

В секцию Group Footer поместим формулы с агрегативными функциями:

"Итоговое потребление воды работ с " & (If (Потребление электроэнергии, квт-ч.1 >10 Then "высоким" Else If {Потребление электроэнергии, квт-ч.) <5 Then "низким" Else "средним") &" энергопотреблением - " &GroupSum ({Потребление воды, т.})&", т."

и

"Итоговое потребление электроэнергии работе " & (If (Потребление электроэнергии, квт-ч.1 >10 Then "высоким" Else If (Потребление электроэнергии, квт-ч.) <5 Then "низким" Else "средним") & энергопотреблением - " &GroupSum ({Потребление электроэнергии, квт-ч.})&", квт-ч."

Поделиться:
Популярные книги

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Отдельный танковый

Берг Александр Анатольевич
1. Антиблицкриг
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Отдельный танковый

Метатель. Книга 3

Тарасов Ник
3. Метатель
Фантастика:
попаданцы
альтернативная история
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 3

Боярышня Евдокия

Меллер Юлия Викторовна
3. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Евдокия