Инструменти за потребители

Инструменти за сайта


spravki_new:datasource:create

Създаване на източник на данни

Служебни параметри на скриптове

Ако източника на данни е IBESCRIPT* той може да получи някои специални входни параметри, с които да си осигури достъп до информация идваща от другаде.

Забележка: някои от входните параметри се поддържат и от execute block

Типичен пример за това е скрипт (2), който се извиква от друг скрипт (1) - скрипт (2) може да има достъп до данните или дори входните параметри на скрипт (1). Друг типичен пример е скрипт, който се извиква от документ - скрипта може да получи данните от документа (и дори да върне променени такива).

Списък със служебните параметри и тяхното значение:

__dbFilters и __dbFilterValues

Първия параметър съдържа път до XML файл, в който се намира списъка с входните филтри на извикващия скрипт (стига да има такъв). Втория съдържа стойностите. Двата параметъра се използва в комбинация.

Пример има в как да секцията, виж Изтегляне на информация от филтрите на справка чрез последващ скрипт.

__dbResult

Съдържа път до XML файл, в който се намират данните на извикващата справка (стига да има такава). Пример има в как да секцията, виж Изтегляне на информация от данните на справка чрез последващ скрипт.

MASTER_DATASOURCE_FILE

Файл в който се връща резултата. В тази променлива се подава път до файла, като тя се генерира автоматично.

__DATABASE

Подава текущата връзка към базата server:database

__USERNAME

Текущ системен потребител - с който влизаме в Селматик ЕРП

__PASSWORD

Паролата на текущия системен потребител - с който влизаме в Селматик ЕРП

__CURRENT_ROLE_ID

ID на ролята на потребителя, който стартира текущият скрипт

__CURRENT_ROLE_NAME

Име на ролята на потребителя, който стартира текущият скрипт

__CURRENT_USER_ID

ID на потребителя, който стартира текущият скрипт

__CURRENT_USER_NAME

Име на потребителя, който стартира текущият скрипт

__DATASOURCE_ID

Подаване на номера на източника

Забележка: Този параметър се поддържа и от Execute Block. Виж секцията Пример има в как да секцията, виж Изтегляне на преводи на полета от източника

__VIEW_ID

подаване на номера на изгледа

__CLIPBOARD_AS_TEXT

Генерираме файл във временната директория, като в него поставяме каквото има в клипборда, като текст.

TMP_FILE

Генерира име на файл във временната директория

Параметри - особености

При зареждане на параметрите на скриптовете:

  1. __RQ - Ако се съдържа ще постави автоматично параметъра за задължителен
  2. __CHK - Прави параметъра от тип „Да/Не“
  3. __PSW - Правим параметъра да е тип Парола (Ако е текстов тип ще покаже поле тип парола)

Специални имена на полета управляващи поведението и външния вид

Ако в резултатния източник на данни има полета с имената описани по-долу, то те управляват поведението на програмата. Например наличието на поле с име ACT$FONT_COLOR сменя цвета на шрифта на реда. Дали полето се вижда в грида или не няма значение, важното е в резултантния източник на данни да има такова поле. Обичайна практика е тези специални колони да се крият от потребителя (в секция „Специални полета“ да се постави „Скрито“), с което те въобще не са видими като колони в грида.

Списък на специалните имена на полета:

ACT$DOC_ID

ID на елемента, който ще се извиква, примерно номер на търговски документ. Използва се съвместно с ACT$DOC_CLASS_NAME.

ACT$DOC_CLASS_NAME

Присъствието на поле с това име кара системата при двоен клик на реда да отвори прозорец от вида указан в стойността на това поле.
По друг начин казано, това дава възможност да се отвори примерно търговски документ с номер взет от ред от справката.
Какво да се отвори (примерно търговски документ) се указва в ACT$DOC_CLASS_NAME, а кой по-точно (номера му) се указва в ACT$DOC_ID.

Актуален списък с възможните имена на класове може да се види чрез създаване на елемент в главното меню с цел „Регистрирани в програмата класове“.

Списъка може да се види и ето тук.

Има възможност справките да обработват освен ACT$DOC_ID и ACT$DOC_CLASS_NAME и още 5 нови комплекта от параметри.
Тези 5 комплекта дават възможност за до 5 отделни действия, в зависимост от колоната/колоните, върху които e дабълкликнато:

  • ACT$DOC_ID1, ACT$DOC_ID2… ACT$DOCID5 - в тези пет полета се държи кое ИД да се отвори
  • ACT$DOC_CLASS_NAME1 … ACT$DOC_CLASS_NAME5 - указва се кой клас да се отвори
  • ACT$DOC_COLS1… ACT$DOC_COLS5 - в тези полета се държи името на колоната или колоните, за които е действието. Имената на колоните се разделят със точка и запетая ( ; ).

При дабъл клик върху ред от справка първо се проверява дали колоната, в която се клика не е изредена в 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 се отваря по стандартния начин.

ACT$BACKGROUND_COLOR

Цвят на фона, в RGB, шестнайсетично, примерно #FF0000 (чисто червено),

ACT$BACKGROUND_COLOR_XOR

Алтернативен цвят на фона (редува се през ред с цвета на фона), в RGB, шестнайсетично, примерно #FF0000 (чисто червено),

ACT$BACKGROUND_COLOR_COLUMNS

Цвят на фона, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.

ACT$FONT_COLOR

Цвят на шрифта, в RGB, шестнайсетично, примерно #FF0000(чисто червено),

ACT$FONT_COLOR_XOR

Алтернативен цвят на шрифта (редува се през ред с цвета на шрифта), в RGB, шестнайсетично, примерно #FF0000 (чисто червено),

ACT$FONT_COLOR_COLUMNS

Цвят на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.

ACT$FONT_STYLE

Стил на шрифта - Bold, Italic, Underline, StrikeOut Подава се като стринг, примерно BI - bold и underline, S - Strikeout (зачеркнато), BIUS - всички едновременно

ACT$FONT_STYLE_COLUMNS

Стил на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.

ACT$FONT_SIZE

Размер на шрифта, в пиксели

ACT$FONT_SIZE_COLUMNS

Размер на шрифта, но с възможност да се каже за конкретна колона, вместо за целия ред. Виж Относно цвят/размер/шрифт/стил на отделните колони по-долу.

Кодове на цветовете

Удобен начин да се избере код на цвят: чрез http://www.colorpicker.com/

Относно цвят/размер/шрифт/стил на отделните колони

При задаване например на стил чрез 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

spravki_new/datasource/create.txt · Последна промяна: 2018/08/13 06:55 от admin