ASSIGN
Материал из GB wiki
Версия от 12:50, 4 июня 2021; Alexey (обсуждение | вклад)
Изменяет одно поле текущей записи датасета.
Синтаксис
ASSIGN (Датасет и поле, Значение)
Аргументы
- Датасет и поле
- строка, которая состоит из имени одного из датасетов электронной или печатной формы и имени поля этого датасета, разделенных точкой.
Можно указать через ";" сразу несколько полей данного датасета: датасет.поле1;поле2;поле3;...
Особыe режимы:
- Если перед именем датасета указан символ "*", то поле изменяется во всех записях датасета. В этом случае второй аргумент - всегда выражение, потому записывается в кавычках.
- Если вместо имени поля указан символ "*", то изменятся все данные датасета. В этом случае значением должны быть данные другого датасета, либо 1/0 (тогда датасет будет закрыт).
- Имя поля может иметь вид Heap.XXX, в этом случае модифицируется одна строка поля Heap
- Префикс EMBEDDED:Имя_контейнера: означает, что датасет нужно искать в форме, внедренной в указанный контейнер
- Префикс EMBEDDING: означает, что датасет нужно искать в форме, в которую внедрена текущая форма
- Префикс LAUNCHFORM: означает, что датасет нужно искать в форме, с которой запущена текущая форма
- Значение
- значение произвольного типа данных для записи в поле. Если изменяется сразу несколько полей датасета, то их значения перечисляются через ",".
В режиме изменения всех записей датасета – строка с формулой.
Тип результата
- Нет
Примеры
Assign("Goodies.Price", 1) – изменит текущую запись
Assign("Dataset.Document;Articul;Certificate;BarCode", :Id, :Art, :Cert, :BC) – изменит сразу несколько полей
Assign("*Goodies.Price", "Price*2") – изменит все записи (удвоит цену)
Assign("*dsGds.Qty;New", "1,0") – - инициализация двух полей во всех записях датасета (в данном случае значения полей - это выражение, поэтому записываются в кавычках)
Assign("DataSet.Heap.xxx", 1) – изменит хиповое поле
Assign("launchform:HeapSet.@FullName", HeapSet.FullName) – изменит поле родительской формы