Изменения

Перейти к: навигация, поиск

Дополнительные возможности

2793 байта добавлено, 16:02, 8 сентября 2022
Скрипты
OnSMABarcodeScan - событие вызывается при сканирвании штрихкода АПК в списке актов. %code% - код АПК (sendmoneyact.code)
 
OnPaintSMAColumns - вызывается при прорисовке таблицы в форме списка АПД/АПК. В функцию передается DataSet, содержащий поля таблиц SendMoneyAct и Clients, а так же пользовательские поля клиентов, называющиеся ufX, где X - номер поля (в статусах). Функция должна возвращать строку следующей структуры:
Поле1_таблицы, Цвет_фона, Поле2_таблицы, Цвет_фона и т.п. Возврат нечетного числа параметров эквивалентен возврату пустой строки (цвет не меняется).
== Настройка вида маркера ==
OnTicketSetCusr - Пользовательский скрипт перед назначением ответственного в тикетах. %code% - код тикета; %Cusr% - код назначаемого пользователя (может быть равно NULL)
 
OnCreateAddressForActDelivery - Пользовательский скрипт вызывающийся в момент формирования корреспонденции на доставку АПД/АПК. Позволяет существенно доработать формируемую корреспонденцию. %code% - код акта sendmoneyact.code, %Client% - код клиента; %delivery% - флаг определяющий корр. на доставку акта (1, значение по умолчанию) или забор акта. fieldlist - объект с полями адреса (повторяет структуру таблицы address), dataset - объект дополнительными полями функции. Объект fieldlist является классом TMyFieldList и позволяет менять значения полей. Также измененный адрес можно сохранить прямо в событии, или он будет сохранен автоматически после выполнения скрипта. Для сохранения адреса используйте метод _save.
 
Пример, для клиента с кодом 3360, в корреспонденцию на доставку АПК, добавляем список корреспонденций попавших в него во вложения.
<source lang="sql">
<?>
if((client=3360)*(ActType=2),
rem('Ticket 70827, 2022-09-07 Anatoly and Sergey');
set($addresscode, fieldlist._save);
query('insert boxes (address, pos, name)
select '+$addresscode+' AS address, @q := @q + 1 AS pos,
CASE WHEN a.client_id <> '' THEN a.client_id WHEN a.strbarcode<>'' THEN a.strbarcode ELSE CONCAT(a.zakaz,"-", a.number) END AS `name`
FROM addressfld af
JOIN address a ON a.code=af.`address` ,(SELECT @q := 0 ) p
WHERE
af.`AddrTransferCode` = %code% AND af.`ReceivedInTransfer` > 0');
,0);
</source>
364
правки

Навигация