Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АИУС / Практика / Разработка HMI-приложений.pdf
Скачиваний:
270
Добавлен:
18.05.2015
Размер:
15.71 Mб
Скачать

сумму значений поля Cost:

=Sum(ReportItems("Cost").Value)

ВНИМАНИЕ!!!

При ссылке из колонтитула в выражении может быть указан только один элемент отчета.

Разрывы страниц

Выражение, будучи указанным в качестве выражения группы, назначает номер каждому набору из 25 строк.

Если для этой группы определен разрыв страницы, данное выражение будет выводить его через каждые 25 строк.

=Int((RowNumber(Nothing)-1)/25)

ИЗМЕНЕНИЕ СВОЙСТВ

Форматирование

Выражение, будучи указанным в свойстве Color текстового поля, изменяет цвет текста в зависимости от значения поля Profit:

=Iif(Fields!Profit.Value < 0, "Red", "Black")

При указании следующего выражения в свойстве BackgroundColor элемента отчета в области данных цвет фона каждой строки изменяется от бледно-зеленого до белого:

=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")

Возможно, что при использовании выражения для конкретной области понадобится указать набор данных для статистической функции:

=Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")

Видимость

Выражение для определения видимости строк. Строки отображаются только для значений поля PctQuota больших 90% :

=Iif(Fields!PctQuota.Value>.9, False, True)

Следующее выражение при установленных свойствах таблицы Видимость и Скрытый показывает таблицу, только если в ней больше 12 строк:

=IIF(CountRows()>12,true,false)

11.3.5 Использование функций в выражениях

Функции

Многие выражения в отчете содержат вызовы функций. Они позволяют форматировать данные, применять логические операции и производить доступ к метаданным отчета.

DataRate обеспечивает работу с выражениями, использующими функции из библиотеки Visual Basic этапа исполнения, а также из пространств имен System.Convert и System.Math. Допустимо также использование классов платформы Microsoft .NET

462 DataRate

Framework, включая System.Text.RegularExpressions.

Дополнительные сведения о функциях языка Visual Basic for Applications, поддерживаемых в выражениях, можно найти в документации «Visual Basic Run-Time Library» на веб-узле msdn.microsoft.com.

Для манипуляции значениями данных отчета в выражениях можно использовать общие (встроенные) функции.

В редакторе выражений доступны следующие типы встроенных функций:

Функции работы со строками

Функции даты и времени

Математические функции

Функции проверки типов

Функции выполнения условия

Функции преобразования

Функции агрегирования

11.3.5.1 Функции работы со строками

Следующая таблица описывает функции форматирования текста. Функции форматирования можно использовать в выражениях для любого элемента отчета.

Модуль отчетов 463

Функции преобразования символа в код символа и обратно

Функция

Описание

Пример

 

 

использ

 

 

ования

Asc

Возвращает целочисленное, значение представляющее код

=Asc(Fiel

 

символа.

ds!Descri

 

 

ption.Val

 

 

ue)

AscW

Возвращает целочисленное, значение представляющее код

=AscW(F

 

символа.

ields!Des

 

 

cription.V

 

 

alue)

Chr

Возвращает символ, соответствующий введенному коду.

=Chr(65)

 

 

 

ChrW

Возвращает символ, соответствующий введенному коду.

=ChrW(2

 

 

41)

Функции форматирования

 

Функция

Описание

Пример

 

 

использ

 

 

ования

Format

Возвращает форматированную строку.

=Format(

 

 

Globals!

 

 

Executio

 

 

nTime,

 

 

"Long

 

 

Date")

FormatCurrency

Возвращает выражение, форматированное в денежный

=Format

 

формат определенный в панели управления.

Currency

 

 

(Fields!Y

 

 

earlyInco

 

 

me.Value

 

 

,0)

FormatDateTime

Возвращает строковое выражение, представляющее число в

=Format

 

формате даты/времени.

DateTim

 

 

e(Fields!

 

 

BirthDate

 

 

.Value,D

 

 

ateForma

 

 

t.ShortDa

 

 

te)

FormatNumber

Возвращает выражение форматированное как число.

=Format

 

 

Number(

 

 

Fields!W

 

 

eight.Val

 

 

ue,2)

FormatPercent

Возвращает выражение, форматированное как процент и

=Format

 

оканчивающееся символом %.

Percent(

 

 

Fields!Sa

 

 

les.Value

 

 

/Sum(Fiel

 

 

ds!Sales.

 

 

Value,

 

 

"DataSet

 

 

1"),0)

Функции изменения регистра

 

464 DataRate

Функция

Описание

Пример

 

 

использ

 

 

ования

LCase

Возвращает строку, приведенную к нижнему регистру.

=LCase(

 

 

Fields!De

 

 

scription.

 

 

Value)

UCase

Возвращает строку или символ, приведенный к верхнему

=UCase(

 

регистру.

Fields!De

 

 

scription.

 

 

Value)

Функции работы с пробелами

 

Функция

Описание

Пример

 

 

использ

 

 

ования

LTrim

Возвращает строку, содержащую копию заданной строки без

=LTrim(Fi

 

символов пробелов в начале строки.

elds!Des

 

 

cription.V

 

 

alue)

RTrim

Возвращает строку, содержащую копию заданной строки без

=RTrim(F

 

символов пробелов с правого края строки.

ields!Des

 

 

cription.V

 

 

alue)

Trim

Возвращает строку, содержащую копию заданной строки без

=Trim(Fie

 

символов пробелов с обеих сторон строки.

lds!Descr

 

 

iption.Val

 

 

ue)

Space

Возвращает строку, содержащую заданное количество

=Space(3

 

пробелов.

)

Функции поиска и фильтрации

Модуль отчетов 465

 

 

 

Функция

Описание

Пример

 

 

 

 

 

 

использ

 

 

 

 

 

 

ования

 

 

 

Filter

Возвращает массив, содержащий строки соответствующие

=Filter(P

 

 

 

 

критерию. Параметры:

arameter

 

 

 

 

sourcearray - одномерный массив, элементы которого

s!Multival

 

 

 

 

 

являются строками.

ueParam

 

 

 

 

match - образец поиска. Строка, вхождение которой ищется

eter.Valu

 

 

 

 

 

в каждом элементе исходного массива.

e, "3",

 

 

 

 

include - необязательный аргумент булевого типа. По

True,

 

 

 

 

 

умолчанию имеет значение True, означающее, что

vbBinary

 

 

 

 

 

элементы, удовлетворяющие образцу, входят в

Compare

 

 

 

 

 

результирующий массив. Если задано значение False, то

)

 

 

 

 

 

результирующий массив составляется из элементов, не

 

 

 

 

 

 

удовлетворяющих образцу.

 

 

 

 

 

compare - вид сравнения: vbBinaryCompare - двоичное

 

 

 

 

 

 

побитовое, vbTextCompare - текстовое.

 

 

 

 

GetChar

Возвращает символ в строке по заданному индексу.

=GetCha

 

 

 

 

 

 

r(Fields!

 

 

 

 

 

 

Descripti

 

 

 

 

 

 

on.Value,

 

 

 

 

 

 

5)

 

 

 

InStr

Возвращает индекс начальной позиции первого вхождения

=InStr(Fi

 

 

 

 

строки в другой строке.

elds!Des

 

 

 

 

 

 

cription.V

 

 

 

 

 

 

alue,

 

 

 

 

 

 

"car")

 

 

 

InStrRev

Возвращает позицию первого вхождения одной строки в

=InStrRe

 

 

 

 

другой, начиная с правого края строки.

v(Fields!

 

 

 

 

 

 

Descripti

 

 

 

 

 

 

on.Value,

 

 

 

 

 

 

"car")

 

 

 

Left

Возвращает строку, содержащую определенное количество

=Left(Fiel

 

 

 

 

символов с левого края строки.

ds!Descri

 

 

 

 

 

 

ption.Val

 

 

 

 

 

 

ue,4)

 

 

 

Right

Возвращает строку, содержащую заданное количество

=Right(Fi

 

 

 

 

символов с правой стороны строки.

elds!Des

 

 

 

 

 

 

cription.V

 

 

 

 

 

 

alue,4)

 

 

 

Split

Возвращает массив, содержащий определенное количество

=Split(Fie

 

 

 

 

подстрок.Предполагается, что исходная строка состоит из

lds!ListW

 

 

 

 

элементов (подстрок), разделенных специальными

ithComm

 

 

 

 

символами - разделителями. Функция Split возвращает

as.Value,

 

 

 

 

одномерный массив из элементов строки.

",")

 

 

 

 

Параметры:

 

 

 

 

 

expression - строковое выражение, результат которого

 

 

 

 

 

 

задает строку - источник, состоящую из элементов и

 

 

 

 

 

 

разделителей.

 

 

 

 

 

delimeter - строка, задающая последовательность

 

 

 

 

 

 

символов, используемых в качестве разделителя. Если этот

 

 

 

 

 

 

параметр опущен, то по умолчанию предполагается, что в

 

 

 

 

 

 

роли разделителя выступает пробел.

 

 

 

 

 

limit - необязательный параметр, позволяющий ограничить

 

 

 

 

 

 

число возвращаемых элементов. По умолчанию его

 

 

 

 

 

 

значение равно -1, означающее выделение всех элементов.

 

 

 

 

 

compare - необязательный параметр, имеющий

 

 

DataRate

 

 

 

466

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Другие функции

Функция

Описание

Пример

 

 

 

использо

 

 

 

вания

Join

Восстанавливает строку по ее элементам, хранящимся в

=Join(Par

 

массиве, добавляя разделители в момент их объединения.

ameters!

 

Если второй аргумент функции разделитель опущен, то

Multivalu

 

элементы разделяются пробелами.

eParame

 

 

 

ter.Value,

 

 

 

";")

Replace

Возвращает строку, в которой заданные подстроки были

=Replace

 

заменены другими строками определенное количество раз.

(Fields!D

 

 

 

escription

 

 

 

.Value,"tu

 

 

 

be","head

 

 

 

light")

StrReverse

Возвращает строку, в которой инвертирован порядок

=StrReve

 

символов.

rse(Field

 

 

 

s!Descrip

 

 

 

tion.Valu

 

 

 

e)

StrComp

Возвращает -1, 0 или 1 основываясь на результате сравнения

=StrCom

 

строк.

p(Fields!

 

 

 

Descripti

 

 

 

on.Value,

 

 

 

First(Fiel

 

 

 

ds!Descri

 

 

 

ption.Val

 

 

 

ue))

StrConv

Возвращает строковое значение, преобразованное указанным

=StrConv

 

способом.Функция StrConv имеет следующие аргументы:

(Fields!D

 

строка - Обязательный аргумент. Преобразуемое строковое

escription

 

 

выражение.

.Value,vb

 

тип_преобразования - Обязательный аргумент. Значение

ProperCa

 

 

типа Integer. Сумма значений, определяющих тип

se)

 

 

выполняемого преобразования

 

 

идентификатор - Необязательный аргумент. Значение

 

 

 

идентификатора языка, если он отличается от системного

 

 

 

(системный идентификатор языка используется по

 

 

 

умолчанию)

 

 

Аргумент тип_преобразования может принимать следующие

 

 

значения:

 

 

vbUpperCase Преобразование знаков строки в верхний

 

 

 

регистр.

 

 

vbLowerCase Преобразование знаков строки в нижний

 

 

 

регистр.

 

 

vbProperCase Преобразование первой буквы каждого слова

 

 

 

строки в прописную.

 

 

vbUnicode Преобразование строки в Юникод в соответствии

 

 

 

с системной кодовой страницей по умолчанию.

 

 

vbFromUnicode Преобразование строки из Юникода в знаки

 

 

 

системной кодовой страницы по умолчанию.

 

StrDup

Возвращает строку содержащую символ, повторенный

=StrDup(

 

заданное количество раз.

3,"M")

Модуль отчетов 467