Данный класс предоставляет методы для трансляции и обработки различных величин в файлах этикеток (lbx) и отчетов (frx).
Категория | Описание |
---|---|
Default Catalog |
Visual FoxPro Catalog\Foundation Classes\Output\Output Helper Classes |
Class |
frxCursor |
Base Class |
Custom |
Class Library |
_FrxCursor.vcx |
Parent Class |
Custom |
Замечания
Этот класс раскрывает алгоритмы, используемые ReportOutput.APP, ReportBuilder.APP, и ReportPreview.APP для интерпретации различных значений печати и значений в таблицах Report (frx) и Label (lbx).
Главным образом он полезен разработчикам, расширяющим функциональность Visual FoxPro при работе с отчетами. Для получения более подробной информации обратитесь к статье Расширение функциональности отчета в Visual FoxPro.
FrxCursor поможет вам обрабатывать многие детали файлов формата Report и Labe, которые в чем-то неясны и, во многих случаях, очень сложны. В статье Понимание и расширение структуры отчетов описываются важные подробности о формате этого файла.
Важное замечание |
---|
Многие методы этого класса используют единицу измерения известную как FRU. FRU представляет собой единицу измерения, используемую FoxPro в отчетах и определенную в 1/10000 дюйма. Эта единица измерения является внутренней единицей, используемой дизайнером отчета Visual FoxPro для хранения позиций и мерных величин в раскладках. Методы класса FrxCursor помогут вам конвертировать FRU в единицы измерения, которые вам легче использовать в других средах. |
Соглашение по наименованиям - замечание переводчика |
---|
В отчетах, создаваемых в VFP, используется несколько видов областей, ограниченных в Дизайнере отчетов разделительными элементами, выполненными в виде смещаемых по вертикали планок. Каждая планка располагается внизу своей области данных и носит название соответствующее этой области. Как видно из приведенного слева рисунка, это области: |
Свойства, события, методы | Описание | ||||
---|---|---|---|---|---|
binStringToInt метод |
Возвращает численный эквивалент бинарных данных, зашифрованных как строка байтов. Синтаксис: Возвращает: целочисленное (integer) Аргументы: cBytes представляет строку байтов, для которой метод вернет численный эквивалент. Например:
Пример того, как вызывается этот метод может быть найдет в статье Флажки защиты отчета (Report Protection Flags). | ||||
binToInt метод |
Конвертирует строку, состоящую из единиц и нулей в целочисленное (integer) значение. Синтаксис: Возвращает: целочисленное (integer) Аргументы: cString представляет строку, состоящую из 1 и 0, для которой метод вернет целочисленный эквивалент. Например:
| ||||
charsetToLocale метод |
Конвертирует данное значение символьного набора шрифта (fontcharset) в candidate locale Id для использования в функции STRCONV(). Параметры: nCharSet Синтаксис: Возвращает: целочисленное (integer) Аргументы: nCharSet представляет значение символьного набора шрифта (fontcharset), которое должно быть конвертировано. | ||||
createBandCursor метод |
Создает курсор с псевдоименем (алиасом) из курсора FRX, содержащий полезную информацию об областях (bands) в раскладке отчета. Синтаксис: Возвращает: логическую величину Аргументы: cFrxalias содержит псевдоимя (алиас) открытой таблицы отчета (frx), из которой будут выданы данные для курсора "bands". Если аргумент опущен, метод подразумевает в качестве псевдоимени (алиаса) значение "FRX". | ||||
createCalcResetOnCursor метод |
Создает курсор (псевдоимя (алиас) "reset_on"), содержащий записи информации для каждой опции в комбобоксе "Сброс расчета" Дизайнера отчета (Report Designer's Calculation Reset). Посмотрите статью Calculate Tab, Report Control Properties Dialog Box (Report Builder) для подробной информации о возможных значениях. Синтаксис: Возвращает: logical Аргументы: none. | ||||
createDefaultPrintEnvCursor метод |
Создает курсор с единственной записью, точно такой же структуры, как и FRX, с данными о принтерном окружении, загруженными в поля EXPR, TAG, и TAG2. Синтаксис:
Возвращает: логическую величину Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы раскладки отчета (frx), из которой будет извлечена структура. cDestAlias содержит псевдоимя (алиас) для курсора с единственной записью, который будет создан как результат вызова этого метода. Псевдоименами (алиасами), используемыми по умолчанию, являются "FRX" и "defPrnEnv."
| ||||
createGroupCursor метод |
Создает курсор с псевдоименем (алиасом) "groups" на базе курсора FRX, содержащий полезную информацию о группировке данных в отчете. Синтаксис: Возвращает:логическую величину Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы отчета (frx), из которой поставляется структура. | ||||
createObjectCursor метод |
Создает курсор с псевдоименем (алиасом) "objects" на базе курсора FRX, содержащий полезную информацию о раскладке объектов в отчете. Вызывает, при необходимости, метод createBandCursor. Синтаксис: Возвращает:логическую величину Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы отчета (frx), из которой поставляется структура. По умолчанию используется cDestAlias определяет псевдоимя (алиас) курсора, который будет создан. По-умолчанию - iOption может иметь следующие возможные значения: iOption = 0 Значение по-умолчанию, если аргумент не задан. Метод включает все объекты в frx, игнорируя сгруппированные. iOption = 1 Включает в курсор только выбранные /CURPOS=.T. записи. iOption = 2 Включает все объекты, показывая сгруппированые, как одиночную запись группы. iOption = 3 Содержит разбивку сгруппированных записей. Отметьте, что некоторые записи, включенные в группу, могут быть маркированы как удаленные - deleted(). Вы можете использовать команду SET DELETED ON для пропуска этих записей. lRuntime определяет, что курсор объекта должен использовать run-time значения отчета для каждой начальной и конечной областей, в которых он размещается. Значение, по-умолчанию равно .F., которое определяет, which specifies that the band location values are correct as determined by the Report Designer layout engine. "Run-time"-ский движок отчета использует различные алгоритмы для определения состояния - в какой области элемент раскладки начинается и заканчивается. | ||||
createVariableCursor метод |
Создает курсор с псевдоименем (алиасом) "vars" из курсора FRX, содержащий полезную информацию о переменных, определенных в отчете. Синтаксис: Возвращает: логическую величину Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы отчета (frx), из которой поставляется структура. | ||||
fruToPixels метод |
Возвращает размер в пикселях для данного числа FRU. Синтаксис: Возвращает: число (число пикселей) Аргументы: iValue представляет число единиц FRU, которое должно быть конвертировано в пиксели. | ||||
getBandFor метод |
Возвращает объект, представляющий начало и конец области отчета (band) для данного объекта в записи. Так как объект может объединять несколько областей раскладки отчета, этот метод предоставляет, как начало, так и конец области (bands), в которой закреплен объект. Он использует позицию вертикального смещения объекта раскладки, для определения корректной области отчета (bands). Синтаксис: Возвращает: объект области (bands) (объект представляет данные в относящейся к ним области FRX) Аргументы: cUniqueID представляет собой значение UniqueID для объекта в FRX, для которого мы желаем получить информацию об относящейся к нему области отчета lStart определяет - что из двух мы желаем получить - начало или конец области (band). | ||||
getFruTextHeight метод |
Возвращает высоту текстовой строки, измеренную в FRU, отображаемую с использованием указанных аттрибутов шрифта. Синтаксис: Возвращает: целочисленное (integer) значение, выраженное в единицах FRU. Аргументы: cText представляет собой строку, которую мы желаем измерить. cTypeFace - имя шрифта. iSize размер шрифта в точках (point). cStyle представляет собой стили, которые мы желаем применить к данной строке, используя те же самые значения, которые мы могли бы послать функции GETFONT( ). Для получения подробной информации смотри статью справки AFONT( ) Функция. | ||||
getFruTextWidth метод |
Возвращает ширину текстовой строки, измеренную в FRU, отображаемую с использованием указанных аттрибутов шрифта. Синтаксис: Возвращает: целочисленное (integer) значение в единицах FRU. Аргументы: cText представляет собой строку, которую мы желаем измерить. cTypeFace имя шрифта. iSize размер шрифта в точках (point). cStyleпредставляет собой стили, которые мы желаем применить к данной строке, используя те же самые значения, которые мы могли бы послать функции GETFONT( ). Для получения подробной информации смотри статью справки AFONT( ) Функция | ||||
getFrxTimeStamp метод |
Возвращает временной шамп для данных даты/времени, сформированный в соответствии со стандартами, используемыми в системных таблицах Visual FoxPro (frx и lbx файлы, для отчетов и меток). Синтаксис: Аргументы: vDateTime представляет собой необязательный аргумента либо типа Date, либо типа DateTime. Если вы опустите этот аргумент, метод будет использовать текущее значение, определяемое значением, возвращаемым функциейDATETIME( ). | ||||
getMetadataDomDoc метод |
Возвращает объекта документа MSXml.DomDocument, содержащий XML report memberdata для текущей записи в FRX. Если поле STYLE для текущей записи ничего не содержит, то этот метод возвратит пустой шаблон документа соответствующей схемы XML. Синтаксис: Возвращает: объект MSXml.DomDocument, или NULL, если псевдоимя (алиас) не подтверждено функцией USED(). Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы раскладки отчета (frx), из которой поставляется структура. | ||||
getObjectsInBand метод |
Возвращает коллекцию значений UNIQUEID для каждого объекта, находящегося внутри указанной области (band). Синтаксис: Возвращает: Объект типа Collection, хранящий либо набор значений UNIQUEID для выбранных объектов раскладки, либо набор значений, поставляемый функцией RECNO() для них же. Аргументы: cFrxAlias содержит псевдоимя (алиас) открытой таблицы раскладки отчета (frx), из которой поставляется структура. lRecno указывает, какой тип значений вы желаете иметь в объекте класса Collection. Если вы посылаете в качестве второго параметра значение | ||||
getReportAttribute метод |
Возвращает затребованный аттрибут заголовка отчета. Синтаксис: Возвращает: a Аттрибут отчета, основанный на аргументе, указанном в вызове метода. Аргументы: cAttributeType указывает тип значения аттрибута отчета, который вы желаете получить. Поддерживаются следующие значения cAttributeType (регистро-нечувствительные - "case-insensitive"): "UNITS" Возвращает целочисленное (integer) значение, показывающее единицы так, как они хранятся в поле Frx.RULER.
"MULTICOLUMN" Возвращает логическую величину. "COLUMNCOUNT" Возвращает целочисленное (integer) значение. "PROTECTION" Возвращает бинарную символьную строку, которая может быть разобрана, для оценки различных типов защита отчета, ассоциированной с отчетом на глобальном уровне. Для получения подробной информации смотри Установка защиты для отчетов | ||||
getSelectedObjectCount метод |
Возвращает число текущих выбранных объектов (объекты, для которых значение поля CURPOS установлено в Синтаксис: Возвращает: целочисленное (integer). Аргументы: none. | ||||
getTargetTypeText метод |
Возвращает описание типа объекта FRX, данный тип и значение кода, хранящихся в полях OBJTYPE и OBJCODE курсора FRX. Синтаксис: Возвращает: String. Аргументы: iType содержит значение OBJTYPE объекта. Если вы опустите этот аргумент, или укажите значение, которое не значится среди принятых величин для OBJTYPE, то метод вернет строку iCode содержит вспомогательное значение OBJCODE, используемое для записей FRX с более чем одним типом записей использующих тот же самый OBJTYPE (записи первичной раскладки областей). | ||||
getTimeStampString метод |
Конвертирует временной штамп Visual FoxPro в читаемую строку. Синтаксис: Возвращает: строковое выражение. Аргументы: iDateTimeStamp представляет собой целочисленное (integer) значение в формате, используемом Visual FoxPro для хранения временных штампов в системных файлах (frx и lbx файлах, для отчетов и меток). Например:
Совет Вы можете использовать этот метод для контроля значение штампов даты/времени в библиотеках классов Visual FoxPro (vcx файлах). | ||||
getUnitValueFromFru метод |
Возвращает значение данной единицы для данного значения, измеряемого в FRU, в зависимости от самой единицы. Синтаксис: Возвращает: число. Аргументы: nFruValue представляет собой число единиц FRU, которое может иметь десятичные части. iUnits представляет собой целочисленное (integer) значение, указывающее тип единицы, для которой вы желаете получить конвертированное значение. Это значение определяется целочисленным значением, используемым в таблицах отчетов и этикеток - (frx) или (lbx) - для указания единиц измерительных полосок дизайнера. Смотри статью Понимание и расширение структуры отчета для получения подробной информации. | ||||
hasBand метод |
Возвращает Синтаксис: Возвращает: логическую величину. Аргументы: iObjCode представляет собой целочисленное (integer) значение, определяющее тип вспомогательной области (band), чье наличие в раскладке вы желаете проверить. Совет Используйте этот метод для проверки наличия областей (bands), которые вовсе не обязательно могут присутствовать в каждом из отчетов. Например, с помощью этого метода вы можете проверить присутствие области (band) "Group band" или области (band) "Summary band". | ||||
hasDetailHeader метод |
Возвращает Синтаксис: Возвращает: логическую величину. Аргументы: cDetailBandID представляет собой строку, соответствующую значению поля Frx.UNIQUEID для исследуемой вами области (band) детализации (Detail band). Совет Обе области (bands): и Detail Header и Detail Footer являются необязательными. Но если в результате вызова метода вы получили .T. для области (band) детализации (Detail band), вы можете быть уверены, что как Detail Header, так и Detail Footer имеются в наличии, поскольку эти две области (bands) всегда парные. | ||||
hasProtectionFlag метод |
Возвращает Синтаксис: Возвращает: логическую величину. Аргументы: cBytes представляет собой строку, оцениваемую этим методом, как серию байт. iFlag представляет собой значение бита, представляющего тип защиты отчета, для которого вы проверяете отчет или объект раскладки. | ||||
insertBand метод |
Вставляет область (band) указанного типа в текущую выбранную рабочую область. Этот метод подразумевает, что действительный курсор FRX уже выбран и что его указатель записи установлен в корректное, для операции вставки, место. Синтаксис: Возвращает: логическую величину. Аргументы: iObjCode определяет тип области (band), которую вы желаете вставить в таблицу FRX. | ||||
insertDataEnvRecord метод |
Вставляет запись для объекта data environment в курсор FRX. Этот метод подразумевает, что указатель записи установлен в соответствующую позицию. Синтаксис: Возвращает: логическую величину. Аргументы: cID представляет собой уникальное значение ID для колонки UniqueID новой записи. cName - значение для колонки Name новой записи. cExpr - список пар - "имя-значение", которые будут включены в колонку Expr новой записи. cCode - текст программного кода метода, который будет включен в колонку Tag новой записи. | ||||
insertDetailBand метод |
Вставляет Detail band в текущей выбранной рабочей области. Этот метод подразумевает, что действительный курсор FRX уже выбран и указатель записи установлен на соответствующую для вставки Detail band запись. Синтаксис: Возвращает: логическую величину. Аргументы: не имеет. | ||||
insertDetailHeaderFooter метод |
Вставляет области (bands) Detail Header и Detail Footer в курсор FRX в текущей выбранной рабочей области. Этот метод подразумевает, что действительный курсор FRX уже выбран и указатель записи установлен на запись Detail band, которая к этому моменту еще не имеет областей Detail Header и Detail Footer. Синтаксис: Возвращает: логическую величину. Аргументы: не имеет. | ||||
insertSummaryBand метод |
Вставляет область Summary band в курсор FRX в текущей выбранной рабочей области. Этот метод подразумевает, что действительный курсор FRX уже выбран и что курсор FRX еще не имеет записи для Summary band. Синтаксис: Возвращает: логическую величину. Аргументы: lNewPage определяет, должен ли Summary band начинать новую страницу. Если Summary band начинает новую страницу, lPageHeader определяет должна ли страница Summary page иметь Page Header band, а lPageFooter определяет должна ли страница Summary page иметь Page Footer band. | ||||
insertTitleBand метод |
Вставляет область Title band в курсор FRX в текущей выбранной рабочей области. Этот метод подразумевает, что действительный курсор FRX уже выбран и что FRX еще не имеет записи для Title band. Синтаксис: Возвращает: логическую величину. Аргументы: lNewPage определяет должна ли страница Summary начинать новую страницу. | ||||
intToBin метод |
Конвертирует целочисленное (integer) выражение в бинарную строку, содержащую нули и единицы. Синтаксис: Возвращает: строковое выражение. Аргументы: iInteger (integer) содержит целочисленное (integer) выражение, для которого метод вернет строку, состояющую из 1 и 0. Например:
| ||||
intToBinString метод |
Возвращает бинарную величину, зашифрованную как строку байт для указанного вами целочисленного значения. Синтаксис: Возвращает: строку (cBytes). Аргументы: iInteger (integer) содержит целочисленное (integer) выражение, для которого метод вернет строку из 1 и 0. Например:
Пример вызова этого метода может быть найден в статьеФлажки защиты отчета (Report Protection Flags). | ||||
pixelsToFru метод |
Возвращает значение в единицах FRU для данного числа пикселей. Синтаксис: Возвращает: число (число единиц FRU) Аргументы: iValue представляет собой целочисленное (integer) значение, обозначающее число пикселей, которое будет конвертировано в число единиц FRU. | ||||
popPrintEnv метод |
Восстанавливает принтерное окружение (настройки) из ранее сохраненного курсора. Этот метод предполагает, что ранее сохраненный курсор выбран в текущей рабочей области. Синтаксис: Возвращает: логическую величину. Аргументы: не имеет. | ||||
pushPrintEnvToCursor метод |
Сохраняет текущее принтерное окружение (настройки) в курсор, который создается этим методом. Синтаксис: Возвращает: логическую величину. Аргументы: cSavedInAlias содержит псевдоимя (алиас) курсора, который вы желаете создать и в котором вы желаете сохранить принтерное окружение (настройки). | ||||
screenDPI свойство |
DPI для Дизайнера отчета. В VFP9 это значение жестко прописано равным 96, независимо от DPI реального монитора. По-умолчанию: 96 | ||||
setColumnCount метод |
Добавляет или удаляет колонки (и записи заголовков/подножий колонок) в курсоре FRX. Это метод предполагает, что курсор FRX выбран в текущей рабочей области. Синтаксис: Возвращает: logical. Аргументы: iColumns устанавливает количество колонок в раскладке отчета. | ||||
stripQuotes метод |
Возвращает строку с удаленными разделителями. Синтаксис: Возвращает: строку. Аргументы: cString представляет собой выражение, из которого вы желаете удалить разделители.
| ||||
synchObjectPositions метод |
Сбрасывает неудаленные объекты в FRX относительно начала области, где они располагались, после того, как области (bands) были изменены в размерах или перемещены в раскладке. Этот метод предполагает,что области (bands) и объекты курсора были уже созданы, что текущая выбранная таблица представляет собой курсор структуры FRX и что метод не требует восстановления указателя записи в прежней позиции после обработки записей в курсоре. Синтаксис: Возвращает: логическую величину. Аргументы: не имеет. |
Пример
Этот пример изменяет ширину поля в записи таблицы отчета, для размещения другого выражения в этом поле.
Он использует метод FrxCursor.getFruTextWidth() для определения корректной ширины для нового содержания поля. После этого он использует метод FrxCursor.getFrxTimeStamp() для перезаписи временного штампа для этой записи.
Скопировать код | |
---|---|
#DEFINE OBJTYPE_FIELD 8 LOCAL iWidth, oFrxCursor oFrxCursor = NEWOBJECT("FrxCursor", "_FrxCursor") USE My.FRX LOCATE FOR objtype = OBJTYPE_FIELD AND ; UPPER(ALLTRIM(Expr)) == "DATE()" IF FOUND() iWidth = FrxCursor.getFruTextWidth(TRANSFORM(DATETIME()), ; fontface,fontsize) REPLACE Expr WITH "DATETIME()", ; Width WITH iWidth, ; Timestamp WITH FrxCursor.getFrxTimeStamp() ENDIF |
Смотри также
Прочие ресурсы
Руководства по использованию фундаментальных классов Visual FoxProФундаментальные классы Visual FoxPro A-Z
Расширения отчетов в среде разработки