Как сделать так, чтобы одна и та же кнопка открывала свою картинку в записи?

Автор iesbk, 22 ноября 2016, 18:14

0 Пользователи и 1 гость просматривают эту тему.

iesbk

Всем привет!
Очень нужна помощь. Понимаю, что решение простое, но не могу его найти!  :'(
На работе скопилась грозная куча чертежей, решили внести её в БД.
Открываться будет форма как в приложенной картинке. Вроде всё ок, только вот незадача - не могу сделать так, чтобы в каждой записи кнопки ссылались на разные картинки. То есть к кнопке можно привязать только один чертеж, а нужно чтобы в разных записях с одной и той же кнопки открывался свой чертеж.

Подскажите, что нужно сделать??? Буду благодарен за описание или даже просто ссылку на статью. :-)

rami

По приведённой картинке многого не понятно: что значит "открывался свой чертеж" ? каким способом и где? какие настройки у формы и у отдельных элементов?

Выложите небольшой (2—3 строки данных с лёгкими картинками) образец базы с формами.

iesbk

Приложил.
Кнопки 3D-модель, Jpeg, PDF открывают в обоих записях одни и те же картинки(которые привяжешь к кнопке через URL - в моём случае это 3D_1, Jpeg_1, PDF_1). Как сделать так, чтобы эти же кнопки в этой же форме на на первой записи открывали 3D_1, Jpeg_1, PDF_1, а на второй записи открывали картинки 3D_2, Jpeg_2, PDF_2???
Заранее спасибо. :-)

rami

Вот вариант, только нужно в макросе в строке oURL="file:///Путь/до/папки/BD3_1/Images/" написать правильный адрес:

iesbk

О! Спасибо! Всё работает.
А как Вы это сделали? Это стандартный макрос или своими силами?
Что означают document и Basic  в строке: Standard.Module1.Main (document, Basic)
Я так понимаю это то, что передаётся в метод Sub Main() вместо ev???

И цифры в скобках методов в этих строках:
ev.Source.ControlModels(10).TargetURL=oURL+ev.Source.ControlModels(5).Text
ev.Source.ControlModels(11).TargetURL=oURL+ev.Source.ControlModels(7).Text
ev.Source.ControlModels(12).TargetURL=oURL+ev.Source.ControlModels(9).Text

???

Это какие-то стандартные значения в методе ControlModels? Или они как-то привязаны к текущей базе - может номера полей и т.д.???

В любом случае - СПАСИБО!!!

iesbk

А есть какая-нибудь литература по написанию макросов для Base на Python 2?

iesbk

И ещё вопрос: у меня будут родительские элементы, которые будут включать в себя разное число дочерних.
Я думаю сделать их вывод в виде таблицы. Как сделать так, чтобы по щелку на выбранном дочернем элементе открывалась его запись и ещё в новом окне? xD DDD
Чтобы закончил с ним работать - закрыл, а родительскую запись снова искать не нужно.
Совсем нагло да? )))

rami

Цитата: iesbk от 23 ноября 2016, 15:38Что означают document и Basic  в строке: Standard.Module1.Main (document, Basic)
Покажите симок этого места, это наверно "внутренняя кухня" базы. Кстати, в какой программе вы работаете?

Цитата: iesbk от 23 ноября 2016, 15:38И цифры в скобках методов в этих строках:
Это номера элементов управления (полей и кнопок, но там есть и другие) по порядку их создания.

При смене записи макрос "перекидывает" новые значения полей кнопкам в TargetURL, а кнопки в случае нажатия открывают соответствующий документ.

Цитата: iesbk от 23 ноября 2016, 17:39
А есть какая-нибудь литература по написанию макросов для Base на Python 2?
Не знаю, что-то должно быть. Python во многом (но не во всём, есть не малые различия) похож на Basic.

iesbk

Снимок экрана прикладываю. Это было в той базе, которую Вы скинули. Работаю в LibreOffice Base.
А где посмотреть эти номера? :-)
Можете порекомендовать что-нибудь литературное для изучения разработки макросов на Бэйсик? )))

iesbk

Я отчасти знаю Basic, но просто без понятия как связать его с самой программой..

rami

Цитата: iesbk от 23 ноября 2016, 15:38Что означают document и Basic  в строке: Standard.Module1.Main (document, Basic)
Это не передача параметров, а просто указание где (в какой библиотеке) искать макрос и на каком языке программирования он написан.

rami

Цитата: iesbk от 23 ноября 2016, 16:13А где посмотреть эти номера?
Выбрать нужную переменную и "включить инспектор" на панели или клавишей F7, после этого запустить макрос, но не напрямую (будет без переданных параметров), а из формы через событие — нужно просто сменить запись. В точке останова появится стрелка, а в Инспекторе нужно раскрыть "дерево" выбранной переменной.