Вернуться   Андрей Панько. Заметки про Dynamics NAV > Dynamics NAV (Navision)
Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Dynamics NAV (Navision) Заметки про Dynamics NAV (ранее Navision) и аддон LS Retail

Ответ
 
Опции темы Поиск в этой теме
  #1  
Старый 05.09.2006, 17:21
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
C/Side Reference Guide: C/AL Functions

Исследуя закрома своего компьютера обнаружил перевод он-лайн справки по C/SIDE моего авторства. Решил сделать труд доступным достояния общественности, в связи с чем в сводобное время его редактирую. Вот первая часть.

AUTOMATION
Тип данных Automation используется для взаимодействия с Automation server. Для того чтобы использовать Automation server в C/SIDE, нужно вначале определить переменную с типом Automation. Затем нажмите AssistButton в поле Subtype. В открывшейся форме Automation Object List нажмите AssistButton в поле Automation Server, чтобы получить список доступных серверов Automation. Выберите сервер и нажмите ОК. Когда форма выбора закроется, табличная часть окна Automation Object List будет заполнена интерфейсами выбранного Automation сервера. Выберите нужный интерфейс и нажмите ОК.
Таким образом, были получены GUID automation сервера, его номер версии и GUID интерфейса, которые были преобразованны в форму удобную для человека <Имя сервера>.<Название интерфейса>. Например:
'MicrosoftExcel 8.0 ObjectLibrary'.Application
После того как сервер automation был определен в качестве переменной, необходимо использовать функцию CREATE, для создания экземпляр сервера. После создания, сервер можно использовать через переменную. Доступные свойства и методы можно узнать с помощью Symbol Menu.
Используя сервер, следует помнить, что типы данных C/AL не соответствуют типам данных COM. Подробную информацию можно получить в главе Информация, раздел «Соответствие между типами данных COM и C/AL».
C/SIDE может получать события от Automation сервера.

CREATE (Automation)
Эта функция используется для создания объекта Automation
[Ok :=] CREATE(Automation [,NewServer])
Ok
Тип данных: boolean
Функция CREATE возвращает TRUE если объект Automation был создан, в противном случае возвращаемое значение – FALSE. Выполнение кода будет остановлено с ошибкой выполнения (run-timeerror), если функция не вернет никого значения.

Automation
Тип данных: automation, предварительно определенная переменная типа Automation.

NewServer
Тип данных: boolean
Если значение NewServer = FALSE (по умолчанию), функция CREATE вначале попытается использовать уже запущенный экземпляр automation сервера, а только после этого будет создавать новый экземпляр Automation сервера. Если значение NewServer = TRUE, функция CREATE всегда будет создавать новый экземпляр Automation сервера.

Примечание
CREATE создает automation сервер связанный с переменной типа Automation. Обратите внимание, что OCX (custom control) создаются неявно, а переменные Automation должны создаваться явно.
Все переменные из массива OCX, будут созданы, после обращения к первому элементу. Для массива с переменными automation server, надо вызвать функцию CREATE для каждого элемента индивидуально. Параметр NewServer может использовать независимо для каждого элемента.
Объект automation можно уничтожить явно, используя функцию CLEAR. Объект будет уничтожен неявно, когда переменная покинет область видимости.
Переменная Automation может быть создана только один раз. Если вызвать функцию CREAT повторно, не вызвав сперва функцию CLEAR, выполнение кода будет прервано с ошибкой выполнения. Ошибка выполнения будет получена, если попытаетесь использовать функцию CREATE для переменной типа OCX.

ISCLEAR (Automation)
Эта функция используется для проверки, был ли создан объект automation или нет.
Ok := ISCLEAR(Automation)
Ok
Тип данных: boolean
Возвращает значение Ok=TRUE если:
z переменная automation не была создана. См. CREATE.
z переменная automation была очищена. См. CLEAR.
z значение переменной automationбыло установлено в NULL сервером automation.
Automation
Тип данных: automation

Пример
Ниже приведен пример использования функции ISCLEAR function:
Код:
VAR d: Automation "'Microsoft XML, version 2.0'.DOMDocument"; n: Automation "'Microsoft XML, version 2.0'.IXMLDOMNodeList"; b: boolean; CODE b := ISCLEAR(d); // значение b будет TRUE CREATE(d); b := ISCLEAR(d); // значение b будет FALSE CLEAR(d); b := ISCLEAR(d); // значение b будет TRUE

Последний раз редактировалось apanko, 05.09.2006 в 17:26.
Ответить с цитированием
  #2  
Старый 05.09.2006, 17:23
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
VARIABLEACTIVE (Automation)

Данная функция используется для определения является ли переменная, такая как поле или элемент управления активным или нет.
IsActive := VARIABLEACTIVE(Variable)

IsActive
Тип данных: boolean
Результат.
Если IsActive равен... Это значит, что переменная...
TRUE - Активна
FALSE - Неактивна
Variable
Тип данных: любой
Исследуемая переменная
Ответить с цитированием
  #3  
Старый 05.09.2006, 17:42
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
BINARY
Этот простой тип данных используется для хранения небольших бинарных данных в записях таблиц. Максимальный размер бинарного поля 250 байт.
Ответить с цитированием
  #4  
Старый 05.09.2006, 18:25
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
BLOB
Большой бинарный объект BLOB (Binary Large Object) это составной тип данных. Переменные этого типа данных отличаются от обычных числовых и строковых переменных тем, что размер у переменных BLOB не задан.

Примечание
Используйте BLOB для хранения текстовых, графических (bitmaps) данных или данных собственного формата. Обратите внимание, что в среде C/SIDE нет методов для непосредственного вывода текстовых данных из BLOB на дисплей.
Чтение и запись BLOB возможно с помощью входящих и исходящих потоков. Чтобы создать потоки используйте функции CREATEINSTREAM и CREATEOUTSTREAM.
Дополнительная информация: InStream и OutStream

CREATEINSTREAM (BLOB)
Эта функция используется для создания объекта InStream для BLOB (Binary Large Object). В дальнейшем при заполнении переменной BLOB будет использоваться созданный входящий поток.

Blob.CreateInStream(Stream)
Blob
Тип данных: BLOB
Stream
Тип данных: InStream

Дополнительная информация: CodeExampleforStreams

CREATEOUTSTREAM (BLOB)
Эта функция используется для создания объекта OutStream для BLOB (Binary Large Object). В дальнейшем при получении данных из переменной BLOB будет использоваться созданный исходящий поток.
Blob.CreateOutStream(Stream)
Blob
Тип данных: BLOB

Stream
Тип данных: OutStream
Дополнительная информация: CodeExampleforStreams

EXPORT (BLOB)
Функция используется для экспорта BLOB (Binary Large Object) в файл.
[ExportName :=] := Blob.EXPORT([Name [, CommonDialog]])
ExportName
Тип данных: text. Путь и имя файла, в который был произведен экспорт.
Если ExportName содержит путь и имя файла, значит BLOB был экспортирован.
Если ExportName пустой, экспорт не удался.

Blob
Тип данных: BLOB. BLOB который будет экспортирован.

Name
Тип данных: text или code
Путь и имя файла, в который будет экспортирован BLOB. Когда указываете путь, имейте в виду, что возможны следующие сокращения:
z пропустить указание диска, если файл находится на текущем диске.
z пропустить указание пути, если файл находится в текущем каталоге.
z ввести только субдиректорию, если находитесь в каталоге.

CommonDialog
Тип данных: boolean
Если для выбора файла, в который будет экспортирован BLOB, требуется открывать диалоговое окно, укажите значение TRUE. На основании значения в свойстве SubType, система предложить выбрать файлы определенного типа, таких как *.bmp, *.txt, или все файлы (*.*).
Если параметр CommonDialog = TRUE, то будет открыт диалог для выбора файла. Если CommonDialog = FALSE (по умолчанию), то диалог выбора файла не будет выведен.

HASVALUE (BLOB)
Функция проверяет, содержится ли в BLOB (Binary Large Object) какое-либо значение.
HasValue := Blob.HASVALUE
HasValue
Тип данных: boolean
Если HasValue = TRUE, значит BLOB содержит значение. Если HasValue =FALSE, значит BLOB пуст.

Blob
Тип данных: BLOB. BLOB который будет проверяться

IMPORT (BLOB)
Функция используется для импорта файлов в BLOB (Binary Large Object).
[ImportName :=] := Blob.IMPORT([Name [, CommonDialog]])
ImportName
Тип данных: text. Путь и имя файла, в который был произведен экспорт.
Если ImportNameсодержит путь и имя файла, значит BLOB был импортирован.
Если ImportNameпустой, импорт не удался.

Blob
Тип данных: BLOB. BLOB который будет импортирован.

Name
Тип данных: text или code
Путь и имя файла, из которого будет импортирован BLOB. Когда указываете путь, имейте в виду, что возможны следующие сокращения:
z пропустить указание диска, если файл находится на текущем диске.
z пропустить указание пути, если файл находится в текущем каталоге.
z ввести только субдиректорию, если находитесь в каталоге.

CommonDialog
Тип данных: boolean
Если для выбора файла, в который будет экспортирован BLOB, требуется открывать диалоговое окно, укажите значение TRUE. На основании значения в свойстве SubType, система предложить выбрать файлы определенного типа, таких как *.bmp, *.txt, или все файлы (*.*).
Если параметр CommonDialog = TRUE, то будет открыт диалог для выбора файла. Если CommonDialog = FALSE (по умолчанию), то диалог выбора файла не будет выведен.
Ответить с цитированием
  #5  
Старый 05.09.2006, 18:33
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
BOOLEAN
Этот простой тип данных используется для отображения одного из двух значений: TRUE или FALSE.
Примечание
Для удобства, значения типа boolean иногда отображаются как Да или Нет. Например свойство формы InsertAllowed имеет два возможных значения Да или Нет.




CHAR
Простой тип данных предназначен для хранения одиночного символа в виде его числового кода, может принимать значения от 0 до 255. Данный тип данных может легко преобразовываться в числовой и наоборот. Это значит, что над переменными типа char как и над числовыми переменными можно использовать математические операции.

Пример
Можно присвоить строковую константу длинной 1 переменной типа char:
C := 'A';
Также переменной типа char можно присвоить один символ из переменных типа text, code, или binary:
C := S[2]; // со строкомыми переменными можно работать также как и с массивами.
Ответить с цитированием
  #6  
Старый 08.09.2006, 20:02
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
CODEUNIT
Данный составной тип данных предназначен для хранения C/AL кода. Codeunit содержит пользовательские функции.

Codeunit.RUN
Данная функция загружает и выполняет C/AL код определенный пользователем. См. также RUN (codeunit).
[Ok] := Codeunit.RUN(Number [, Record])
Ok
Тип: boolean
Если во время выполнения codeunit произошла ошибка, а переменная для возвращаемого значения не использовалась, система прервет выполнение C/AL кода в котором был произведен вызов codeunit.
Если переменная для возвращаемого значения используется, то система продолжит выполнение C/AL кода, несмотря на то, что при выполнении вызванного codeunit произошла ошибка. Это значит, что в код следует включить обработку всех возможных ошибок. Возможные возвращаемые значения представлены ниже.
Если Ok = TRUE это значить, что при выполнении codeunit не было никаких ошибок.
Если Ok = FALSE значит, при выполнении codeunit произошла ошибка.

Если переменная для возвращаемого значения используется, система автоматически очистит переменные, используемые в codeunit, до и после выполнения данного codeunit.
Если возвращаемое значение используется в конструкции IF, находящейся внутри транзакции записи, ошибка выполнения прервет выполнение транзакции на последнем вызове функции COMMIT перед вызовом Codeunit.RUN.


Number
Тип данных: integer. Число, идентифицирующее codeunitв базе. Для выбора идентификатора из списка можно воспользоваться Symbol menu. Если указанный codeunit не существует, будет получена либо ошибка выполнения, либо ошибка компиляция.


Record
Тип данных: record
Необязательный параметр, используется для указания записи из таблицы.
Если запустить codeunit с указанием в качестве параметра запись из таблицы иной чем связана данным codeunit то выполнение будет прервано с ошибкой выполнения.
Пример
Codeunit.RUN(4711, SomeRecord);

RUN (Codeunit)
Используйте данную функцию, чтобы загрузить и выполнить нужный codeunit. Чтобы передать в codeunit переменную типа Record, требуется привязать таблицу к codeunit через его свойства. Это позволит передать переменную в функцию. Результат выполнения транзакции, содержащейся в codeunit, возвращается как значение типа boolean.
[Ok] := Codeunit.RUN(VAR Record)
Ok
Тип данных: boolean
Если во время выполнения codeunit произошла ошибка, а переменная для возвращаемого значения не использовалась, система прервет выполнение C/AL кода, в котором был произведен вызов codeunit.
Если Ok = TRUE это значить, что при выполнении codeunit не было никаких ошибок.
Если Ok = FALSE значит, при выполнении codeunit произошла ошибка.

Если возвращаемое значение используется в конструкции IF, находящейся внутри транзакции записи, ошибка выполнения прервет выполнение транзакции на последнем вызове функции COMMIT перед вызовом Codeunit.RUN.

Codeunit
Тип данных: codeunit. Определяет codeunit который требуется выполнить.

VARRecord
Тип данных: record
Этот параметр является опциональным. Если с codeunit, через его свойства не связана таблица, то запись передавать нельзя. В ином случае, через параметр нужно обязательно передать запись.
Пример
Ниже приведен пример как использовать функцию RUN (codeunit).
VAR
c : CodeUnit1,
c.XXX(expression
1, ...); // фунция определенная пользователем
c.RUN(Rec)

Последний раз редактировалось apanko, 09.09.2006 в 10:59.
Ответить с цитированием
  #7  
Старый 13.09.2006, 13:32
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Controls

MatrixBox

Содержание
Общее описание
Навигация в MatrixBox
Создание MatrixBox
Информация для программирования


Общее описание
Matrixbox - это составной элемент управления, который служит для отображения информации из нескольких таблиц одновременно. Две основные таблицы служат для отражения данных по вертикали и по горизонтали. В матричной части элемента управления matrixbox, каждая ячейка может использоваться для отображения информации, которая вычисляется на основании полей двух вышеуказанных таблиц или третьей таблицы (с использованием значений из первых двух таблиц для выбора записей, например в качестве фильтра). Каждая ячейка в Matrixboxнаходится на пересечении записей вертикальной и горизонтальной таблиц.
В левой части от вертикального разделителя отображаются записи из вертикальной таблицы, таблицы указанной в свойстве sourcetable формы, аналогично элементу управления tablebox. Справа от вертикального разделителя сама матрица. Над ней записи из горизонтальной таблицы (обычно используются в качестве заголовков). Горизонтальная таблица указывается в свойстве matrixsourcetable элемента управления Matrixbox.


Навигация в MatrixBox
Навигация в matrixboxчуть более сложная, чем обычно, из-за нескольких таблиц и непостоянного размера. Ниже описано, как перемещаться по данному элементу управления, используя мышь или клавиатуру.
Использование мыши
Вертикальный скроллинг осуществляется с помощью полосы прокрутки расположенной справа, для горизонтального скроллинга используется нижняя полоса прокрутки.
Размер любой колонки можно изменить, для этого нужно поместить курсор между колонками в зоне заголовка матрицы. Когда курсор изменит форму, можно изменять ширину столбцов. Ширина изменяется для всех столбцов одновременно. Аналогично, перетягиванием, можно изменять положение вертикального разделителя между частями матрицы.
Таким же способом можно подогнать высоту заголовка и строк, ширину столбцов в зоне горизонтальной таблицы.
Использование клавиатуры
Для перемещению по matrixbox, из одной части элемента управления в другой, используется комбинация клавиш Ctrl+<стрелка>. Для перемещения из зоны горизонтальной таблицы в зону вертикальной нажмите Ctrl+Стрелка влево; для перехода к заголовку, нажмите Ctrl+Стрелка вверх; для возврата назад, нажмите Ctrl+Стрелка вниз; для перемещения из зоны вертикальной таблицы в зону горизонтальной нажмите Ctrl+Стрелка вправо. Напрямую переход между зонами невозможен (вы будете перемещаться внутри зоны).
Когда курсор спозиционирован на заголовке горизонтально зоны PageUp и PageDown работают как горизонтальный скроллинг. Ctrl+PageUp или Ctrl+PageDown также работают как горизонтальный скроллинг.


Создание MatrixBox
Первые попытки создания matrixbox, скорее всего, завершатся провалом. Ниже приведены пошаговые инструкции, описывающие весь процесс создания данного элемента управления. Для примера будет создан matrixbox базирующийся на двух таблицах Integer(целое), а в матрице будут выведены произведения двух чисел (записей из таблиц находящиеся на пересечении).
1. Создайте новую форму, и укажите таблицу Integer (целое) как значение свойства source table.
2. Добавьте на форму элемент управления matrix box. Присвойте ему имя (свойство Name), установите свойствам HorzGlue и VertGlue значение Both.
3. Вставте элемент управления text box в зону вертикальной таблицы. В свойстве SourceExpr укажите поле Number (Число) записи из таблицы Integer (Целое).
4. В свойстве MatrixSourceTable элемента управления matrix box укажите значение Integer.
5. Добавьте text box в матрицу. Свойство SourceExpr должно быть пустым, а в свойстве InMatrix надо установить значение Yes.
6. Добавьте text box в шапку матрицы. Свойство SourceExpr должно быть пустым, а в свойстве InMatrixHeading надо установить значение Yes.
7. Добавьте выражение в text box находящийся в шапке матрицы (последний добавленный элемент управления). Выражение должно ссылаться на поле из таблицы указанной в свойстве MatrixSourceTable. Если название matrix box - Matrix, и горизонтальная таблица - Integer, выражение может быть таки:
CurrForm.Matrix.MatrixRec.Number
8. Добавьте выражение в text box в зоне горизонтальной таблицы. Оно может иметь следующий вид:
Number * CurrForm.Matrix.MatrixRec.Number
Ответить с цитированием
  #8  
Старый 13.09.2006, 13:32
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Информация для программирования
Чтобы получить доступ к горизонтальной таблицы (matrixsourcetable), элементу управления matrix box нужно присвоить имя (свойство Name).
Когда у элемента управления matrix box есть имя, доступ к записям осуществляется следующим образом:

CurrForm.<имя элемента управления matrixbox>.MatrixRec.<поле>

Триггеры
Элемент управления matrixboxимеет следующие триггеры:
OnFindRecord, OnNextRecord, OnAfterGetRecord, OnAfterGetCurrRecord, OnBeforePutRecord, OnNewRecord, OnInsertRecord, OnModifyRecordиOnDeleteRecord.
Свойства
Элемент управления matrixbox имеет следующие свойства:
ID, Name, XPos, YPos, Width, Height, HorzGlue, VertGlue, Visible, Enabled, Editable, Focusable, ParentControl, InFrame, InPage, BackColor, Border, BorderColor, BorderStyle, BorderWidth, RowHeight, MatrixColumnWidth, HeadingHeight, ToolTip, InlineEditing, Description и MatrixSourceTable.
Свойства элемент управления textbox, которые используются только, когда textbox является частью matrixbox:
InMatrixи InMatrixHeading.
Ответить с цитированием
  #9  
Старый 13.09.2006, 13:33
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
ACTIVATE (Form)
Эта функция используется, чтобы активизировать форму или элемент управления. Эта функция используется для командных кнопок и кнопок меню, выключателей, кнопок выбора, text boxes, зон изображений, индикаторов выполнения, субформ, и форм.
[Ok := ] Form.ACTIVATE
Ok
Тип данных: boolean

Примечание
Формы или элементы управления могут становиться активными, когда конечный пользователь щелкнет по ним мышью или выберет любым другим способом, например с помощью клавиатуры. Эта функция предоставляет другой способ активировать форму или элемент управления, которые уже отображены на экране.
Когда данная функция вызывается в форме, система активизирует форму и передает управление активному элементу управления в форме. Если форма заблокирована другой формой, запущенной модально, система также активизирует вторую форму. Форма может быть активизирована только когда она запущена и видима.
Когда данная функция вызывается для элемента управления, система активизирует этот элемент управления. Если элемент управления уже активизирован, система установит на нем фокус. Если элемент управления не активен, система установит фокус на него, когда будет активизирована форма. Форма должна быть загружена перед тем как будут активизированы ее элементы.

DECIMALPLACESMAX (Control)
После использования функция возвращает текущее значение максимального количества знаков после запятой разрешенных в элементе управления (поле или text box), и устанавливает новое значение. Функция изменяет максимальное количеством знаков после запятой, это часть свойства DecimalPlaces.
[CurrMaxDecimals] := DECIMALPLACESMAX ([NewMaxDecimals])
CurrMaxDecimals
Тип данных: integer. Текущее значение максимального количества знаков после запятой.
NewMaxDecimals
Тип данных: integer. Новое максимальное количество знаков после запятой.

Примечание
Смотри описание свойства DecimalPlaces.

DECIMALPLACESMIN (Control)
После использования функция возвращает текущее значение минимального количества знаков после запятой разрешенных в элементе управления (поле или text box), и устанавливае новое значение. Функция изменяет минимальное количеством знаков после запятой, это часть свойства DecimalPlaces.
[CurrMinDecimals] := DECIMALPLACESMIN ([NewMinDecimals])
CurrMinDecimals
Тип данных: integer. Текущее значение минимального количества знаков после запятой.
NewMinDecimals
Тип данных: integer. Новое минимальное количество знаков после запятой.

Примечание
Смотри описание свойства DecimalPlaces.
Ответить с цитированием
  #10  
Старый 13.09.2006, 13:37
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
EDITABLE (Form & Control)
Функция возвращает текущее значение свойства Editable, и изменяет значение свойства.
Функция используется для форм и элементов управления.
[IsEditable] := Form.EDITABLE([SetEditable])
IsEditable
Тип данных: boolean. Текущее значение свойства Editable.
SetEditable
Тип данных: boolean. Новое значение свойства Editable.
Примечание
Смотри описание свойства Editable.

ENABLED (Control)
Функция возвращает текущее значение свойства Enabled, и изменяет значение свойства.
[IsEnabled] := ENABLED([SetEnabled])
IsEnabled
Тип данных: boolean. Текущее значение свойства Enabled.
SetEnabled
Тип данных: boolean. Новое значение свойства Enabled.
Примечание
Смотри описание свойства Enabled.

HEIGHT (Form & Control)
Функция возвращает текущее значение свойства Height форм и элементов управления, и изменяет значение свойства.
[CurrHeight] := Form.HEIGHT([NewHeight])
CurrHeight
Типданных: integer. Текущее значение свойства Height.
NewHeight

Тип данных: integer. Новое значение свойства Height.


Примечание
Смотри описание свойства Height.

INLINEEDITING (Table Box & Matrix Box)
Функция возвращает текущее значение свойства InlineEditing элемента управления tableboxили matrixbox, и изменяет значение свойства.
[IsInLineEditing] := INLINEEDITING([SetInLineEditing])
IsInLineEditing
Типданных: boolean. Текущеезначениесвойства InlineEditing.
SetInLineEditing
Типданных: boolean. Новое значение свойства InlineEditing.
Примечание
Смотри описание свойства InlineEditing.

UPDATEEDITABLE (Form & Control)
Данная функция используется для динамического изменения свойства Editable поля, формы или элемента управления.
UPDATEEDITABLE(Editable)
Editable
Тип данных: boolean
Возможные значения:
TRUE
– значит, что элемент управления возможно редактировать.
FALSE
– значит, что элемент управления редактировать нельзя.


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

Пример
Вы можете использовать эту функцию чтобы динамически изменять свойство Editable у элемента управления, основываясь, например, на значении текущего значения, какого-либо поля, типа:
IF "On Hold" THEN
CurrForm.Address.UPDATEEDITABLE(FALSE);

UPDATESELECTED (Control)
Используйте данную функцию, чтобы пометить элемент управления в качестве выбранного (выбранные элементы обычно подсвечиваются инвертированным цветом, но это зависит от выбранной пользователем схемы цветов Windows)
UPDATESELECTED(Selected)
Selected
Тип данных: boolean
Возможные значения:
TRUE
– значит, что элемент управления будет выбран.
FALSE
– с элемента управления будет снята пометка о выборе.


Примечание
Эта функция может использоваться только в триггере OnFormat.
Ответить с цитированием
  #11  
Старый 13.09.2006, 13:39
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
UPDATEFONTBOLD (Control)
Используйте данную функцию, чтобы динамически изменять значение свойства FontBold.
UPDATEFONTBOLD(FontBold)
FontBold


Тип данных: boolean
Возможные значения:
TRUE
– значит, что элемент управления должен отображаться жирным текстом.
FALSE
– значит, что элемент управления не должен отображаться жирным текстом.


Примечание
Эта функция может быть вызвана только из тригерра OnFormat элемента управления. Данное свойство будет изменено временно, только во время работы формы, для элементов управления которой вызывалась данная функция.
Пример
Предполагаемое использование данной функции состоит в том, чтобы отображать элементы управления некоторых записей в табличной форме с использование жирного шрифта. Если у повторяющегося элемента управления в tableboxустановить свойству FontBoldзначение Да, то все строки будут использовать жирный шрифт. Используя указанную функцию, можно устанавливать жирный шрифт индивидуально для каждой записи
IF Type = Type::Heading THEN
CurrForm.Name.UPDATEFONTBOLD(TRUE);

UPDATEFORECOLOR (Control)
Используйте данную функцию для динамического изменения свойства ForeColorэлемента управления.
UPDATEFORECOLOR(ForeColor)
ForeColor
Тип данных: integer
Параметр ForeColorиспользуется для установки основного цвета (цвет текста). Числовое значение звета определяется использую RGBзначения цвета.
Примечание
Данная функция может быть вызвана только из триггера OnFormatэлемента управления.
Пример
Предполагаемое использование данной фунции состоит в выделении цветом текста элементов управления выбранных записей. Цвет указанный в ствойстве ForeColorотносится ко всем отображаемым строкам. Использую же указанную функцию, можно выделить цветом определенные записи, на основании значения указанных, например, в других полях, типа:
IF Amount < 0 CurrForm.Amount.UPDATEFORECOLOR(255);
Текст в элементе управления Amount будет отображаться красным (см. RGB для информации по расчету числового значения).

UPDATEINDENT (TextBox)
Данная функция устанавливает значение свойства Indent для textbox.
UPDATEINDENT(Indent)
Indent
Типданных: integer. Отступв 1/100 мм.
Примечание
Свойство Indent может устанавливаться только программно в триггере OnFormat для text box. Это свойство нельзя установить на листе свойств.
Предполагаемое использование данной функции состоит в иерархическом отображении информации в табличной форме с помощью отступов значений в полях textbox, на основании какого-либо структурообразующего признака. См. также функции UPDATEFORECOLORи UPDATEFONTBOLD, которые используются в схожих целях.
Пример
Можно использовать данную функцию для установки отступа в textboxв табличной форме на основании значения каких-либо иных полей, например:
CurrForm.Name.UPDATEINDENT(Level * 220);
Предполагается, что в поле Level содержится число от 0 и выше. Чем больше это значение, тем больший отступ будет добавлен в text box, в котором отображается значение поля Name.


VISIBLE (Form & Control)
Данная функция используется для получения текущего значения свойства Visibleформы или элемента управления, и для его изменения.
[IsVisible] := Form.VISIBLE([SetVisible])
IsVisible
Типданных: Boolean. Текущее значение свойства Visible.
SetVisible
Тип данных: Boolean. Новое значение свойства Visible.
Примечание
См. также описание свойства Visible.


WIDTH (Form & Control)
Данная функция используется для получения текущего значения свойства Width формы или элемента управления, и для его изменения.
[CurrWidth] := Form.WIDTH([NewWidth])
CurrWidth
Тип данных: integer
Текущее значение свойства Width.
NewWidth

Тип данных: integer
Новое значение свойства Width.


Примечание
См. также описание свойства Width.
Ответить с цитированием
  #12  
Старый 13.09.2006, 13:40
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
XPOS (Form & Control)
Данная функция используется для получения текущего значения свойства XPos формы или элемента управления, и для его изменения.
[CurrXPos] := Form.XPOS([NewXPos])
CurrXPos
Тип данных: integer
Текущее значение свойства XPos.
NewXPos

Тип данных: integer
Новое значение свойства XPos.


Примечание
См. также описание свойства XPos.

YPOS (Form & Control)
Данная функция используется для получения текущего значения свойства YPos формы или элемента управления, и для его изменения.
[CurrYPos] := Form.YPOS([NewYPos])
CurrYPos
Тип данных: integer
Текущее значение свойства YPos.
NewYPos

Тип данных: integer
Новое значение свойства YPos.


Примечание
См. также описание свойства YPos.

Последний раз редактировалось apanko, 13.09.2006 в 13:43.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:27.

Контакты: e-mail, телефон: +7(926)1805967 - Архив - Вверх

Microsoft Most Valuable Professional
vBulletin v3.5.4, Copyright ©2000-2018, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co
Права на все материалы, опубликованные на блогофоруме принадлежат Андрею Панько, если в самом материале не указано иное.
Рейтинг@Mail.ru Rambler's Top100