Последняя версия DataExpress 3 beta от 9 мая 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

ПУТЕВОДИТЕЛЬ по общим вопросам

Справочная информация, руководства, видеоматериалы от пользователей DataExpress.

jurist23rus
Эксперт
Сообщения: 2701
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 24 раза

Re: ПУТЕВОДИТЕЛЬ по общим вопросам

Сообщение jurist23rus » Вт ноя 01, 2016 9:38 am

Как запретить редактирование поля?

В поле "Счётчик" для этого есть отдельное свойство, где можно выбрать пункт "Только чтение".
В других полях запрет редактирования происходит по умолчанию, если в свойстве "Выражение" что-либо указано. Если вам не нужно производить никаких операций с данными и вы не планируете что-либо указывать в "Выражении", однако необходимо сделать поле недоступным для редактирования, можно просто добавить в "Выражение" любой текст в качестве комментария для этого установить в начале строки "//".

Пример:

Код: Выделить всё

// Поле закрыто для редактирования
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2701
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 24 раза

Re: ПУТЕВОДИТЕЛЬ по общим вопросам

Сообщение jurist23rus » Вт ноя 01, 2016 9:45 am

Как разрешить редактирование поля с выражением?

Если в свойстве поля "Выражение", имеются какие-либо выражения или даже комментарии, то оно по умолчанию становится недоступным для редактирования. Это оправдано, так как в большинстве случаев нет необходимости в редактировании этого поля. Однако есть случаи, когда редактирование необходимо даже для поля с "Выражением". Для этого в свойстве "Выражение" выбранного поля необходимо установить галочку напротив пункта "Разрешить редактирование".
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2701
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 24 раза

Re: ПУТЕВОДИТЕЛЬ по общим вопросам

Сообщение jurist23rus » Вс ноя 13, 2016 1:05 am

Может ли пользователь создавать собственное окно-сообщение?

Да, такая возможность есть. В DX за вывод информации в отдельное пользовательское окно отвечают несколько функций, а именно MsgBox(), YesNoBox(), YesNoCancelBox(). Как видно из названия функций каждая из них позволяет показывать окна-сообщения с разным набором кнопок. Также функции позволяют задавать пользовательский текст заголовка окна. С правилами использования функций можно ознакомиться в справке по функциям в самой DX.
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2701
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 24 раза

Re: ПУТЕВОДИТЕЛЬ по общим вопросам

Сообщение jurist23rus » Вт ноя 22, 2016 7:20 pm

Теги шаблона

Для вывода в шаблон полей родительской формы или вычисляемых полей родительской формы (исключая таблицы/запросы) применяются следующие выражения:
1. [Поле] - выводит данные конкретного поля текущей формы
2. [Объект|Поле] - выводит данные конкретного поля объекта текущей формы
3. {Form|Имя формы} [имя поля].... {end} - выводятся указанные поля (одно или несколько) всех записей формы, с учётом фильтра, построчно (абзацами)
4. {Grid|Имя формы} [имя поля].... {end} - выводятся указанные поля (одно или несколько) всех записей формы, с учётом фильтра, построчно в таблицу документа (для каждой записи создаётся отдельная строка таблицы). Поля можно размещать как в одну ячейку таблицы так и в разные (без разницы).

Для вывода в шаблон полей таблицы (подчинённой формы)/запроса или вычисляемых полей таблицы/запроса применяются следующие выражения:
1. {Form|Имя запроса/таблицы} [имя поля].... {end} - выводятся указанные поля (одно или несколько) всех записей запроса/таблицы построчно (абзацами), с учётом фильтра.
2. {Grid|Имя запроса/таблицы} [имя поля].... {end} - выводятся указанные поля (одно или несколько) всех записей запроса/таблицы построчно в таблицу документа, с учётом фильтра (для каждой записи создаётся отдельная строка таблицы). Поля можно размещать как в одну ячейку таблицы так и в разные (без разницы).

Префиксы
{grid/form|Запрос} [поле запроса] [!/:поле формы где расположен запрос, если запрос в главной форме] [!поле родительской формы, если запрос расположен в дочерней] [:поле дочерней формы, если запрос расположен в ней] {end}

Без префикса - это всегда обращение в полю запроса или его же вычисляемому полю
с префиксами !/: - это всегда обращение к полям форм в зависимости от расположения запроса, если запрос в родительской форме пойдёт любой префикс, если запрос в дочерней то : - для дочерней, ! - для главной.

Примеры
Пример № 1
1. Есть форма А.
2. Есть подчиненная форма Б.
3. Есть запрос З в подчиненной форме Б.

Код: Выделить всё

{form|запрос З}
[поле] - обращение к полю запроса.
[:поле] - обращение к полю подчиненной формы Б.
[!поле] - обращение к полю формы А.
{end}


Другой вариант.
Пример № 2
1. Есть форма А.
2. Есть запрос З.

Код: Выделить всё

{form|запрос З}
[поле] - обращение к полю запроса.
[:поле] - обращение к полю формы А. // В данном случае
[!поле] - обращение к полю формы А. // нет разницы, какой префикс использовать.
{end}


Пример № 3
Обращение к полю запроса более высокого уровня из запроса более низкого уровня. Ниже пример печати данных с несколькими уровнями подчиненности.

Схема подчиненности: Форма А -> Запрос 1 -> Запрос 2 -> Запрос 3

1. Есть форма А.
2. Есть запрос 1.
3. Есть запрос 2, подчиненный запросу 1.
4. Есть запрос 3, подчиненный запросу 2.

Как при печати запроса 3 напечатать некоторые поля запроса 2?
Есть 2 варианта:
1) создать в запросе 3 вычисляемое поле "ВычПоле" с выражением:

Код: Выделить всё

get('запрос 2', 'поле')

В шаблоне: {form|запрос 3} ... [ВычПоле] ... {end}.
2) создать вычисляемое поле "ВычПоле" в форме с выражением:

Код: Выделить всё

get('запрос 2', 'поле')

В шаблоне: {form|запрос 3} ...
[:ВычПоле] - если вычисляемое поле в текущей форме (где сам запрос).
[!ВычПоле] - если вычисляемое поле в родительской форме.
...
{end}

Если надо вывести некоторые поля запроса 1, то полностью аналогично.
Destiny is a very convenient word for those who never take decisions.