|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
|
Как концептуально сделать заполнение шаблона на основе таблицы?24.11.2021, 19:26. Показов 1080. Ответов 7
Метки нет (Все метки)
Имеется БД примерно следующего вида (см. картинку). Если коротко, в ней хранится информация о различных компонентах, из которых по определенному алгоритму собирают изделие. Перечень компонентов меняется в зависимости от параметров изделия (например, собираем установку мощности N, для нее нужны такие-то автоматы, такие-то провода, столько-то еще чего-нибудь).
Сам перечень элементов (Elements list) - выходной продукт работы программы по подборке комплектующих. Он уже частично заполнен и, как я решил, удобно ложится в СУБД. На выходе нужно пустые поля в нем (Elements list) заменить на конкретные комплектующие и выгнать на печать (да хоть в .txt пока, не важно). Сам результат в базу записывать не надо, по словам заказчика. Как лучше все это делать? Создавать временную таблицу и в ней компоновать уже все, чтобы потом распечатать? Или построчно читать шаблон и перегонять в файл, попутно обрабатывая незаполненные поля (может быть сложно из-за возникающих зависимостей при заполнении шаблона)? Ссылки на ресурсы приветствуются.
0
|
|
| 24.11.2021, 19:26 | |
|
Ответы с готовыми решениями:
7
Как концептуально правильно сделать переход и поддержку разных версий БД ? Заполнение таблицы на основе другой таблицы Заполнение данными таблицы шаблона Rtf, открытого в richEditControl |
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 25.11.2021, 08:45 | |
|
А postgresql при чем здесь? Добавлять недостающие позиции и вообще делать что хочешь с полученным из базы набором данных будешь программно
0
|
|
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
||
| 25.11.2021, 12:00 [ТС] | ||
|
Сейчас создаю временную таблицу, копирую в нее шаблон, затем из программы вызываю хранимые процедуры для заполнения ячеек, после чего вывожу временную таблицу на печать. Понятно, что работать оно будет. Просто, возможно, я в Москву через Владивосток еду.
0
|
||
|
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
|
|
| 25.11.2021, 12:06 | |
|
Временная таблица в базе для таких целей это точно в Москву через Владивосток )
1
|
|
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
|
| 25.11.2021, 12:08 [ТС] | |
|
Аватар, как тогда поступить? Запоминать, какие ячейки менял в шаблоне, чтобы после печати откатывать обратно?
Добавлено через 57 секунд Шаблон там на 40 строчек, конечно, но копировать его не есть гут, да.
0
|
|
|
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
|
|
| 25.11.2021, 22:25 | |
|
Начните с запроса. Вы одним запросом можете составить нужный Вам список комплектующих по заданным параметрам??
В этом случае не нужны временные таблицы. Тогда результат этого запроса возвращайте в клиентскую программу и там уже что хотите - хоть на экран, хоть в файл.
1
|
|
|
58 / 42 / 21
Регистрация: 01.01.2018
Сообщений: 273
|
||||||||||||||||||||||||||
| 26.11.2021, 08:42 [ТС] | ||||||||||||||||||||||||||
|
grgdvo, насчет запроса (точнее, его сложности) не уверен. Не знаю, как склеить результирующую таблицу.
Пока написаны примерно такие хранимые процедуры (сроки горят, а сдавать надо). Инверторы (подъема, тележки, моста): Кликните здесь для просмотра всего текста
Автомат защиты двигателя: Кликните здесь для просмотра всего текста
Автоматический выключатель (с поворотной рукояткой): Кликните здесь для просмотра всего текста
Контактор: Кликните здесь для просмотра всего текста
Выключатель защиты: Кликните здесь для просмотра всего текста
И еще несколько в том же духе. Для конкретных элементов в шаблоне, где тип IS NULL, надо (обычно по префиксу мощности) из таблицы элементов данного типа найти подходящий (он пока что всегда один, на мою удачу). Сегодня добавится таблица, где придется временные параметры для тормозных резисторов учитывать. Не представляю, как это в один запрос слить. Добавлено через 7 минут Можно из процедур попробовать вырвать запросы в виде VIEW и что-то комбинировать, наверное... Все найденные примеры с выборкой и заменой значений делаются UPDATE-ом. Не похоже на то, что нужно.
0
|
||||||||||||||||||||||||||
|
1265 / 979 / 384
Регистрация: 02.09.2012
Сообщений: 3,026
|
|||||||||||
| 28.11.2021, 09:33 | |||||||||||
Сообщение было отмечено Ksardas_178 как решение
Решение
Есть конструкция WITH и UNION (просто с UNION будет план меньше, по производительности особых выигрышей не будет)
Будет выглядеть громоздко. Но вы точно избавитесь от временной таблицы, Избавитесь от UPDATE-ов, которые в PG далеко не быстрые И работать будет точно быстрее. Да, запрос большой будет, но это только чтение, которые Вы и так совершаете в разных функциях.
1
|
|||||||||||
| 28.11.2021, 09:33 | |
|
Помогаю со студенческими работами здесь
8
Заполнение таблицы на основе адресов ее ячеек Как сделать выборку из таблицы на основе данных текущего юзера? Триггер на заполнение столбца таблицы на основе другой Как сделать заполнение таблицы из txt в datagridview Автоматическое заполнение таблицы на основе значения разности 2-х ячеек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|