Ако източника на данни е IBESCRIPT* той може да получи някои специални входни параметри, с които да си осигури достъп до информация идваща от другаде.
Забележка: някои от входните параметри се поддържат и от execute block
Типичен пример за това е скрипт (2), който се извиква от друг скрипт (1) - скрипт (2) може да има достъп до данните или дори входните параметри на скрипт (1). Друг типичен пример е скрипт, който се извиква от документ - скрипта може да получи данните от документа (и дори да върне променени такива).
Списък със служебните параметри и тяхното значение:
Първия параметър съдържа път до XML файл, в който се намира списъка с входните филтри на извикващия скрипт (стига да има такъв). Втория съдържа стойностите. Двата параметъра се използва в комбинация.
Пример има в как да секцията, виж Изтегляне на информация от филтрите на справка чрез последващ скрипт.
Съдържа път до XML файл, в който се намират данните на извикващата справка (стига да има такава). Пример има в как да секцията, виж Изтегляне на информация от данните на справка чрез последващ скрипт.
Файл в който се връща резултата. В тази променлива се подава път до файла, като тя се генерира автоматично.
Подава текущата връзка към базата server:database
Текущ системен потребител - с който влизаме в Селматик ЕРП
Паролата на текущия системен потребител - с който влизаме в Селматик ЕРП
ID на ролята на потребителя, който стартира текущият скрипт
Име на ролята на потребителя, който стартира текущият скрипт
ID на потребителя, който стартира текущият скрипт
Име на потребителя, който стартира текущият скрипт
Подаване на номера на източника
Забележка: Този параметър се поддържа и от Execute Block. Виж секцията Пример има в как да секцията, виж Изтегляне на преводи на полета от източника
подаване на номера на изгледа
Генерираме файл във временната директория, като в него поставяме каквото има в клипборда, като текст.
Генерира име на файл във временната директория
При зареждане на параметрите на скриптовете:
Ако в резултатния източник на данни има полета с имената описани по-долу, то те управляват поведението на програмата. Например наличието на поле с име ACT$FONT_COLOR сменя цвета на шрифта на реда. Дали полето се вижда в грида или не няма значение, важното е в резултантния източник на данни да има такова поле. Обичайна практика е тези специални колони да се крият от потребителя (в секция „Специални полета“ да се постави „Скрито“), с което те въобще не са видими като колони в грида.
Списък на специалните имена на полета:
ID на елемента, който ще се извиква, примерно номер на търговски документ. Използва се съвместно с ACT$DOC_CLASS_NAME.
Присъствието на поле с това име кара системата при двоен клик на реда да отвори прозорец от вида указан в стойността на това поле.
По друг начин казано, това дава възможност да се отвори примерно търговски документ с номер взет от ред от справката.
Какво да се отвори (примерно търговски документ) се указва в ACT$DOC_CLASS_NAME, а кой по-точно (номера му) се указва в ACT$DOC_ID.
Актуален списък с възможните имена на класове може да се види чрез създаване на елемент в главното меню с цел „Регистрирани в програмата класове“.
Списъка може да се види и ето тук.
Има възможност справките да обработват освен ACT$DOC_ID и ACT$DOC_CLASS_NAME и още 5 нови комплекта от параметри.
Тези 5 комплекта дават възможност за до 5 отделни действия, в зависимост от колоната/колоните, върху които e дабълкликнато:
При дабъл клик върху ред от справка първо се проверява дали колоната, в която се клика не е изредена в ACT$DOC_COLS1 или ACT$DOC_COLS2 или .. и т.н. в ACT$DOC_COLS5.
Ако се намери в някоя от тези колони - в първата, в която се намери, например в ACT$DOC_COLS2 - се отваря клас ACT$DOC_CLASS_NAME2, с ИД - ACT$DOC_ID2.
Ако не се намери нищо и има дефинирани съществуващите параметри ACT$DOC_ID и ACT$DOC_CLASS_NAME се отваря по стандартния начин.
Цвят на фона, в RGB, шестнайсетично, примерно #FF0000 (чисто червено),
Алтернативен цвят на фона (редува се през ред с цвета на фона), в RGB, шестнайсетично, примерно #FF0000 (чисто червено),
Цвят на фона, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.
Цвят на шрифта, в RGB, шестнайсетично, примерно #FF0000(чисто червено),
Алтернативен цвят на шрифта (редува се през ред с цвета на шрифта), в RGB, шестнайсетично, примерно #FF0000 (чисто червено),
Цвят на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.
Стил на шрифта - Bold, Italic, Underline, StrikeOut
Подава се като стринг, примерно BI - bold и underline, S - Strikeout (зачеркнато), BIUS - всички едновременно
Стил на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.
Размер на шрифта, в пиксели
Размер на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.
При задаване например на стил чрез ACT$FONT_STYLE, този стил важи по подразбиране за ВСИЧКИ КОЛОНИ, освен ако няма зададени и ACT$FONT_STYLE_COLUMNS. Тогава стила важи само за изброените в ACT$FONT_STYLE_COLUMNS, освен ако в изброяването не е зададено изключение.
Примери:
ACT$FONT_STYLE | ACT$FONT_STYLE_COLUMNS | Резултат |
---|---|---|
B | Column1;Column2 | В колона 1 и 2 текста ще е BOLD, в останалите - не |
B | Във ВСИЧКИ колони текста ще е BOLD | |
B | Column1=I | В колона 1 текста ще е Italic. Обърнете внимание: bold-а се игнорира |
B | Column1=I;Column2 | В колона 1 текста ще е Italic. В колона 2 ще е bold |
Логиката за останалите Font_Color / Font_Color_Columns, Font_Size/Font_Size_Columns е същата.
Забележка: Изглежда, че ACT$FONT_COLOR_COLUMNS няма никакъв ефект, ако в нея има само изключения (например Column1=#112233) И не съществува колона ACT$FONT_COLOR.
1. За да може справка да редактира редове на документ, в справката трябва да са дефинирани поне 2 вида полета: „търсещи“ и „резултатни“. Търсещите полета определят върху кои редове в документа ще се приложат стойностите на резултатните полета.
Търсещите полета трябва да имат име от вида LOCATE_<име_на_поле>, където <име_на_поле> е името на поле от документа. Не е задължително да има търсещи полета - ако няма такива, то резултатните полета ще поставят стойностите си във всички редове на документа. Позволено е да съществуват няколко търсещи полета, като в този случай стойностите на резултатните полета се прилагат върху редовете, които отговарят на стойностите на всички търсещи полета.
Резултатните полета не трябва да имат някакво специално име, всички полета, които не са търсещи, се приемат за резултатни. За всяко резултатно поле - ако в документа съществува поле със същото име, тогава неговата стойност се прилага върху редовете в документа, отговарящи на търсещите полета.
Например, за да запишем дадено количество в редовете с даден номер на позиция, трябва справката да има търсещо поле с име LOCATE_ITEM_REF, което съдържа като стойност номера на дадената позиция и резултатно поле с име QTY1, което да съдържа като стойност даденото количество.
2. За да може справка да добавя редове в документ, трябва в нея да е дефинирано поле с име NEW_ROW. Всеки ред от справката, който съдържа стойност за това поле, различна от нула, ще бъде използван за добавяне на нов ред в документа, като стойностите за всяко поле на новия ред се взимат от съответните полета в справката (полетата с еднакви имена).
Например, за да добавим нов ред в документ с даден номер на позиция и дадено количество, справката трябва да съдържа:
- поле NEW_ROW със стойност 1
- поле ITEM_REF със стойност номера на дадената позиция
- поле QTY1 със стойност даденото количество
3. За да може дадена справка да редактира или добавя редове в документ, трябва връзката към нея в настройките на типа документ да има следните настройки:
- Показвай модално - да
- Връщай резултат - да
- Използвай резултата в - Заглавна част или Детайлна част (избира се къде трябва да се приложи резултата на справката)
Примери:
Попълване на количество (избрано от потребителя) и цена без ДДС = 10 в текущо избрания ред на документа:
select
cast(:„dbDetail.ID“ as DM_REF) LOCATE_ID,
cast(:ENTER_QTY1 as DM_FLOAT) R_QTY1,
cast(10 as DM_FLOAT) PRICE_WO_VAT_BFR_DISCNT
from RDB$DATABASE