Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата

Наши программы => УкрСклад => Тема розпочата: sDes від Жовтень 05, 2011, 15:33:01

Назва: Ділимось корисними скріптами
Відправлено: sDes від Жовтень 05, 2011, 15:33:01


Пропоную тут викладати свої корисні скріпти для роботи з УкрСкладом та допомагати іншим в їх написанні.

(http://i.piccy.info/i7/415132c035cd64dc1d62acf704184fa7/1-5-444/38582668/sqlmeneger_240.jpg)

Наприклад, як за допомогою SQL-коду дописати до назви кожного товару конкретної групи слово чи словосполучення?
Назва: Re: Ділимось корисними скріптами
Відправлено: TheOK від Жовтень 05, 2011, 21:07:55
Сразу скажу, что
манипуляции с SQL запросами могут быть очень опасны для ваших данных. Они безвозвратно могут удалить необходимую вам информацию или изменить ее (например удалить весь товар).
Я надеюсь это тема поднялась не для обучения написанию SQL запросов (для этого есть книги и интернет), а в связи с наличием конкретных нужд... Не хотелось бы тратить время на то, что никто не будет использовать.
Вот вам запрос, помещайте его в отчет (отчет не выводит никаких данных, смотрите, не запустите его несколько раз, а то придется потом писать еще один запрос))), чтобы можно было по человечески выбрать группу товара, товар которой будет переименовываться (вложенных групп не коснется).
Запрос на добавление текста (впереди названия товара), помещенного в поле Произвольный текст в отчете для выбранной группы.
UPDATE
  tovar_name
SET
  tovar_name.name = '#текст_1#' || Tovar_name.name
WHERE
  Tovar_name.tip=#товар_группа_№#

P.S.Не советую оставлять данный отчетик для общего пользования...
Назва: Re: Ділимось корисними скріптами
Відправлено: admin від Жовтень 06, 2011, 09:06:55
И еще добавлю перед выполнением любых операций (ну кроме выборки SELECT) в SQL менеджере делайте резерв базы данных.
Назва: Re: Ділимось корисними скріптами
Відправлено: sDes від Жовтень 06, 2011, 16:56:34
Дякую!
А як прочитати поле "Мітка" в товарі? Де взяти всі назви полів до яких я можу звертатись в запитах?
Назва: Re: Ділимось корисними скріптами
Відправлено: TheOK від Жовтень 06, 2011, 21:26:08
Для этого вам лучше будет освоить некоторые программы, которые позволяют работать "напрямую" с файлами базы данных.
Информацию какая программа и как подключаться вы можете найти в уже освещенных вопросах.
http://www.softbalance.com.ua/forum/index.php?topic=869.msg7064#msg7064 (http://www.softbalance.com.ua/forum/index.php?topic=869.msg7064#msg7064)
http://www.softbalance.com.ua/forum/index.php?topic=1285.msg7250#msg7250 (http://www.softbalance.com.ua/forum/index.php?topic=1285.msg7250#msg7250)
Только хочу отметить, что я никаких дополнительных копирований файлов не осуществлял, возможно потому, что у меня ранее уже был установлен Firebird сервер.
P.S. Хочу еще раз отметить, что необходимо быть очень осторожным при работе "напрямую" с файлом базы данных. Более того, данный программный продукт (я об УкрСклад), не предназначен для модификаций со стороны пользователя ИМХО
Назва: Re: Ділимось корисними скріптами
Відправлено: TheOK від Жовтень 08, 2011, 01:07:50
Решил выложить список полей приблизительно 71 (из 75) таблицы (некоторые удалил).
Файл можно открыть Excel.
Отношения между таблицами не проставлял, т.к. многих отношений еще сам не понял, некоторые отношения неявные, сам хотел бы получить список отношений между ключевыми/неключевыми полями, но, к сожалению, генерировать его не умею.
Но из тех, которые пригодятся:

Могу ошибаться, пишу по памяти.
Если хотите связать свой запрос с метками, то вам нужен приблизительно такой запрос:
select
*
FROM
params,schet_ left join schet on pid=num
where
params.name like  ( '%'||'\_0\_' || cast(schet.doc_mark_type as varchar(10)) ||'%') escape '\'
order by schet.num


Если вам нужно проделать такое же с производством/расходной накладной, то необходимо вместо выделенного жирным шрифтом числа 0 использовать число 20 для производства и 1 для расходной накладной.
- могу ошибаться т.к. запрос не тестил.