Кнопка открытия формы с продолжением

Автор bbv62, 2 декабря 2015, 16:58

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

bbv62

Пардон. опять ключик прозевал!
Цитата: JohnSUN от 15 декабря 2015, 14:38создаешь формы на основании этих запросов
А я к таблицам привязался! В варианте форм по запросам последние превращаются из средства обзора в "главное действующее лицо". Щас попробую. Но переход к нужной записи в открывшейся форме ТАКИ НУЖЕН!

kompilainenn

прошу понизить тон беседы, а то читать страшно =(
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

bbv62

Цитата: kompilainenn от 15 декабря 2015, 15:19прошу понизить тон беседы, а то читать страшно =(
(на сцене, со свечкой на табуретке): "Кто здесь?!"

bbv62

Интересное поведение кнопки.
При открытии ею соответствующей формы с «начальными ID» - до разрыва в порядке записей, открывается форма с тем же ID, т. е. как задумано.
Если открыть запись с ID после удалённых записей — открывается пустая форма с пустым счётчиком записей.
Удаление записей необходимо для реализации СЕГОДНЯ ПРИНЯТОГО алгоритма работы программы. Оформление заказа производится без присвоения «Номера заказа» на какого-то «ФИО» с количеством записей по количеству вариантов. После того как заказчик определился с выбором, строке (варианту)-победителю присваивается «Номер заказа» актуальный этот момент, побеждённые записи удаляются. (опять макрос нужен).

JohnSUN

Смущает оборот "для реализации СЕГОДНЯ ПРИНЯТОГО алгоритма работы" - сколько он еще просуществует?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bbv62

Чем предложенный макрос лучше этого:
Sub OnBtnOpenFrom(oEvent)
'открывает форму с именем "Замер"
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
Dim oCon
oCon = oEvent.Source.Model.Parent.ActiveConnection
container = oCon.Parent.DatabaseDocument.FormDocuments
args(0).Name = "ActiveConnection"
args(0).Value = oCon
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL("Замер","_blank",0,args())
End Sub
Единственно, что для каждой кнопки надо иметь свой.
Но он просто открывает соответствующую форму и до нужной записи нужно "долистаться".

bbv62

Цитата: JohnSUN от 18 декабря 2015, 07:22сколько он еще просуществует?
Пока не будет найдено (предложено) более удачное решение.

bbv62

Это решение позволяет:
1. Хранить архив (без указания реальных Имя, Отчество, Фамилия)
2. Не иметь "холостых" заказов.
3. Не раздувать архив, оставляя только реальные записи.

JohnSUN

Цитата: bbv62 от 18 декабря 2015, 09:30
3. Не раздувать архив, оставляя только реальные записи.
Это только вопрос терминологии - что считать "реальными записями"... Ты сейчас настаиваешь на сохранении только итогового варианта обсуждений. Это потому, что ты больше с производством связан, а не с клиентами. Менеджер, который работает именно с заказчиками, возможно, настаивал бы на способе хранения, при котором вечно хранились бы ВСЕ рассмотренные и отклоненные варианты... Ну, чтобы когда клиент явится с претензиями можно было бы ему в нос ткнуть - "вам же предлагали доплатить еще 600 и сделать вот так - вы сами отказались (у меня все ходы записаны)..."
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bbv62

Вполне возможно.
Это мне маркитантки подскажут. Смущает объём.
5...7000 в год УСТАНОВЛЕННЫХ дверей. С вариантами будет пусть 18000.
Сколько записей безболезненно тянет Base?
C другой стороны - это количество -  на 8...9 офисов, полагаю что для каждого будет своя база.
До архивации баз и начало Новой Жизни с каждого Нового Года я ещё не дорос.

JohnSUN

Цитата: bbv62 от 18 декабря 2015, 09:24
Чем предложенный макрос лучше этого:...
Ты что - нарочно, да? НИЧЕМ! Убери из "предложенного макроса" две последних строки (те, где фильтр по "КодЗаказа" устанавливается) и получишь тот же самый код. Единственное отличие - имя формы не вписывается в код макроса наглухо, а берется из специального поля кнопки. Это позволяет все кнопки в базе обслуживать одним единственным макросом.
Цитата: bbv62 от 18 декабря 2015, 09:53
Смущает объём.
Base позволяет набросать макет будущей реальной базы с помощью встроенного HSQLDB, "пилотный проект". Предполагается, что окончательная реализация будет перенесена в "настоящую СУБД". Ну, например, в тот MySQL, который предоставляет хост-провайдер вашего сайта - круглосуточно доступная (при наличии интернета, конечно) база данных, за которой присматривают специально обученные люди. И тут уж об объёме можешь не беспокоиться.

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bbv62

Я не нарочно. Вникаю. Просто результат нажатия разный (при разрыве значений ключа).
Привязывать к "правильной СУБД" цели не ставил, да и не задумывался. Может это и необходимо. Тем не менее - сколько же записей (или мБ) информации "тянет" HSQLDB? Ответ где-то был, да не найду сейчас.
Как, всё-таки, осуществить переход к нужной записи? Да и сохранение только что заведённого не работает.
Вставлял строку "oForm.updateRow()" - ругается что не определена переменная (я понял что строка (запись) должна быть определена как переменная), но все мои Dim не сработали.

rami

Цитата: bbv62 от 18 декабря 2015, 08:36Тем не менее - сколько же записей (или мБ) информации "тянет" HSQLDB? Ответ где-то был, да не найду сейчас.
Возможно здесь

JohnSUN

Цитата: bbv62 от 18 декабря 2015, 10:36
Просто результат нажатия разный (при разрыве значений ключа).
Второй раз вижу этот оборот (в прошлый раз было сформулировано "до разрыва в порядке записей") - и всё пытаюсь перевести на привычный язык... "Я понял - это намёк, я всё ловлю на лету... но не понятно, что ты имела в виду..."
Я так понимаю, до идеи "широкая таблица и куча узких запросов" руки еще не дошли? Тут ведь какая петрушка получится - долго искать "нужную запись" не пришлось бы, она всего одна будет: или она есть и тогда она всегда будет под рукой, или её уже нет и искать её бесполезно.
Цитата: bbv62 от 18 декабря 2015, 10:36
Привязывать к "правильной СУБД" цели не ставил, да и не задумывался. Может это и необходимо.
Замерщик, прямо на объекте, через мобильный (или местный) интернет вводит параметры объекта с планшета, ноутбука, хозяйского компьютера... При этом работает с реальными ценами, которые выставил на сегодня головной офис... При этом маркитантки в офисе могут видеть, как рождается новый заказ и оперативно предпринимать некоторые телодвижения, которые в идеале ускорят оформление договора и получение гонорара. Подумай на досуге... Но имей в виду - как минимум двое из четырех программистов, которые за шесть лет делали подходы к этой задаче, тоже об этом думали... И где они теперь?.. Так что думай осторожненько.
Цитата: bbv62 от 18 декабря 2015, 10:36Тем не менее - сколько же записей (или мБ) информации "тянет" HSQLDB? Ответ где-то был, да не найду сейчас.
Если грубо, на пальцах - то приблизительно половина доступной оперативной памяти на конкретной железяке: чем тачка круче, тем больше данных без сбоев-геморроев будет храниться и обрабатываться в одной и той же Двери.odb
Цитата: bbv62 от 18 декабря 2015, 10:36
Как, всё-таки, осуществить переход к нужной записи? Да и сохранение только что заведённого не работает.
Вставлял строку "oForm.updateRow()" - ругается что не определена переменная (я понял что строка (запись) должна быть определена как переменная), но все мои Dim не сработали.
Не может быть! Говоришь, что Великий Метод Научного Тыка перестал работать? Не верю! (с) Станиславский
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bbv62

Цитата: rami от 18 декабря 2015, 09:23Возможно здесь
Красиво! И - успокаивающе.
Не нужен нам вражеский берег... На своём уберёмся.