Пользовательскиe sql-скрипты: различия между версиями
Kislakov (обсуждение | вклад) (Новая страница: «== Общие сведения == Пользовательские скрипты - это файлы *.sql, которые содержат текст с наб…») |
Popov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Общие сведения == | == Общие сведения == | ||
− | Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает | + | Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. При наличии одноименных файлов в ARTICUL\Addons и подпапке текущего типа БД приоритет будет у последней. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает хотя бы один такой файл. Синтаксис и оформление таких скриптов производится также, как в окне "Выполнение SQL команд" (меню "Сервис/Выполнить SQL запрос", Ctrl+Alt+S). После выполнения скрипта данные на закладке "Инвойс" главного окна Артикула будут полностью обновлены для немедленого отображения возможных внесенных в инвойс изменений. |
== Оформление == | == Оформление == | ||
− | + | Для MSSQL и SQLite поддерживаются специальные комментарии, однако для MSAccess никакие комментарии не поддерживаются: | |
− | * Caption - определяет наименование запускающего данный скрипт пункта меню: | + | * '''Caption''' - определяет наименование запускающего данный скрипт пункта меню: |
− | -- Caption: "Наименование"=>"Примечание3"(для выделенных товаров) | + | <source lang=sql> |
− | * Hint - определяет подсказку запускающего данный скрипт пункта меню: | + | -- Caption: "Наименование"=>"Примечание3" (для выделенных товаров) |
+ | </source> | ||
+ | * '''Hint''' - определяет подсказку запускающего данный скрипт пункта меню: | ||
+ | <source lang=sql> | ||
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" | -- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" | ||
+ | </source> | ||
Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения. | Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения. | ||
− | |||
== Синтаксис == | == Синтаксис == | ||
− | + | В тексте запросов допускается использовать (неограниченное кол-во раз) следующие входные параметры: | |
+ | |||
+ | * ''':sInvNum''' - номер текущего инвойса. | ||
+ | * ''':nPOListID''' - идентификатор текущей/выделенной записи товара в инвойсе, если скрипт содержит данный параметр и на закладке "Инвойс" выделено несколько товаров, то скрипт будет выполнен один раз для каждого выделенного товара. | ||
+ | * ''':nPOListWhere''' - текущий набор условий фильтров для товаров инвойса. | ||
− | + | Перед непосредственным выполнением скрипта каждый такой параметр будет заменен на соотв-щую sql-константу (строковую или числовую), либо целое sql-выражение, как в случае с :nPOListWhere. | |
− | |||
− | |||
Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO". | Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO". | ||
Строка 29: | Строка 34: | ||
* MSSQL: | * MSSQL: | ||
− | -- Caption: "Наименование"=>"Примечание3"(для выделенных товаров) | + | <source lang=sql> |
− | -- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" | + | -- Caption: "Наименование"=>"Примечание3" (для выделенных товаров) |
− | update POList set Memo3=Name where ID=:nPOListID; | + | -- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" |
+ | update POList set Memo3=Name where ID=:nPOListID; | ||
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID; | update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID; | ||
+ | </source> | ||
* SQLite: | * SQLite: | ||
− | -- Caption: "Наименование"=>"Примечание3"(для выделенных товаров) | + | <source lang=sql> |
− | -- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" | + | -- Caption: "Наименование"=>"Примечание3" (для выделенных товаров) |
− | update POList set Memo3=Name where ID=:nPOListID; | + | -- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3" |
− | update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID;< | + | update POList set Memo3=Name where ID=:nPOListID; |
+ | update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID; | ||
+ | </source> | ||
* MSAccess: | * MSAccess: | ||
− | update POList set Memo3=Name where ID=:nPOListID; | + | <source lang=sql> |
− | GO | + | update POList set Memo3=Name where ID=:nPOListID; |
+ | GO | ||
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID; | update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID; | ||
+ | </source> | ||
[[Категория:Артикул]] | [[Категория:Артикул]] |
Текущая версия на 20:09, 4 сентября 2015
Содержание
Общие сведения
Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. При наличии одноименных файлов в ARTICUL\Addons и подпапке текущего типа БД приоритет будет у последней. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает хотя бы один такой файл. Синтаксис и оформление таких скриптов производится также, как в окне "Выполнение SQL команд" (меню "Сервис/Выполнить SQL запрос", Ctrl+Alt+S). После выполнения скрипта данные на закладке "Инвойс" главного окна Артикула будут полностью обновлены для немедленого отображения возможных внесенных в инвойс изменений.
Оформление
Для MSSQL и SQLite поддерживаются специальные комментарии, однако для MSAccess никакие комментарии не поддерживаются:
- Caption - определяет наименование запускающего данный скрипт пункта меню:
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
- Hint - определяет подсказку запускающего данный скрипт пункта меню:
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения.
Синтаксис
В тексте запросов допускается использовать (неограниченное кол-во раз) следующие входные параметры:
- :sInvNum - номер текущего инвойса.
- :nPOListID - идентификатор текущей/выделенной записи товара в инвойсе, если скрипт содержит данный параметр и на закладке "Инвойс" выделено несколько товаров, то скрипт будет выполнен один раз для каждого выделенного товара.
- :nPOListWhere - текущий набор условий фильтров для товаров инвойса.
Перед непосредственным выполнением скрипта каждый такой параметр будет заменен на соотв-щую sql-константу (строковую или числовую), либо целое sql-выражение, как в случае с :nPOListWhere.
Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO".
Примеры
- MSSQL:
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
update POList set Memo3=Name where ID=:nPOListID;
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;
- SQLite:
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
update POList set Memo3=Name where ID=:nPOListID;
update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID;
- MSAccess:
update POList set Memo3=Name where ID=:nPOListID;
GO
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;