0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
Привязка BindingSource с разными фильтрами для соответствующих ComboBox30.07.2024, 13:15. Показов 925. Ответов 29
Метки нет Все метки)
(
Всем доброго дня. Сталкнулся с такой проблемой. Есть таблица ТехКарта(рецептура продукта), она содержит три поля КодП (код продукта), КодС (код сырья) и КолС (количество сырья). На форме я создаю ComdoBox (с CBox01 по CBox141) в них мне надо отобразить наименование сырья из табл.СпрСырья (справочник сырья) соответствующий КодС в таб. ТехКарта, эти таблицы связаны по коду сырья (отфильтрофать по коду сырья указанного в каждой строке табл. ТехКарта). Если CBox01 - CBox141 задавать источник записей СпрСырьяBindingSource то все комбобоксы принимают одинаковое значение, Приходится комбобоксы привязывать к разным BindingSource (СпрСырьяBindingSource0, СпрСырьяBindingSource1, СпрСырьяBindingSource2 и т.д.). Тогда вопрос как их привязывать в цикле к комбобоксам? А далее еще подобный случай, только следующие комбобоксы надо прииязать к третьей таблице СклСырья (склад сырья) которая связана с предыдущими таблицами по коду сырья, но в этих комбобоксах мне нужно вывести цену данного сырья которое имеется в наличии (установить фильтр где остаток сырья >0 и ограничивать его по коду сырья).
0
|
30.07.2024, 13:15 | |
Ответы с готовыми решениями:
29
Фильтрация разными фильтрами Реализовать фильтр для BindingSource через comboBox Фильтрация по уникальности строк, в привязки BindingSource для ComboBox |
30.07.2024, 13:54 | |
Вообще такое делается проще, либо делается аналог БД на основе DataSet, либо создаются группа классов и их коллекций для представления данных из таблиц и методы для увязывания всего этого в соответствии со схемой БД.
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 14:45 [ТС] | |
Здравствуйте. Я пытался это сделать через DGV. С помощью ComboBox1 я выбираю продукт и выставляю фильтр на источник записей DGV, все нормально, в первом столбце (комбобоксе) у меня выходит наименование сырья, а не код, во втором столбце выходит количество сырья необходимое для данного продукта, а в третьем столбце мне нужно вывести цены на данное сырье. Вот здесь загвозка. При выборе цены он либо выдает ошибку, либо ничего не выдает, либо повторяет одни и теже значения в каждой строке. Надо чтобы комбобокс выдавал набор цен на сырье соответствующее каждой строке DGV. Эта форма нужна для колькуляции продукта, подсчета его себестоимости, ну и в дальнейшем для составления новой рецептуры.
0
|
![]() |
|
30.07.2024, 14:59 | |
ИПЛ, Покажите таблицы БД из которых берутся данные. Если нужны много ComboBox то для каждой пары создаётся отношение в данных 1:М и тогда при выборе в первом значения, во втором загружаются данные для этого значения и так далее по старшинству.
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 15:05 [ТС] | |
Прошу прощения. хочу поправить свое предыдущее сообщение. Мне кажется так будет понятнее.
Я пытался это сделать через DGV. С помощью ComboBox1 я выбираю продукт и выставляю фильтр на источник записей DGV, все нормально, в первом столбце (комбобоксе) у меня выходит наименование сырья, а не код, во втором столбце выходит количество сырья необходимое для данного продукта, а в третьем столбце мне нужно вывести цены на данное сырье. Вот здесь загвозка. При выборе цены он выдает первое значение которое находит в таблице Склад сырья, не зависимо от того есть это сырье на складе или нет, а при открытии списка выдает все цены которые есть в таблице не зависимо от кода сырья. Надо чтобы комбобокс выдавал ограниченный набор цен на сырье соответствующее каждой строке DGV. Эта форма нужна для колькуляции продукта, подсчета его себестоимости, ну и в дальнейшем для составления новой рецептуры.
0
|
![]() |
|
30.07.2024, 15:08 | |
А я вам про что?
Добавлено через 1 минуту ИПЛ, У каждого ComboBox свой источник данных, который завязан на предыдущий.
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 15:19 [ТС] | |
Табл ТехКарта (КодП(код продукта), КодС(код сырья), КолС( кол-во сырья), табл. СпрСырья (КодС, ИмяС, ИмяП(полное наименование сырья)) и табл. склад сырья СклСырья (КодЗ(код закупки сырья), Дата(дата прихода сырья на склад), КодПост(код поставщика сырья), КодС (код сырья), КолСырья(кол-во поступившего сырья на склад), РасхС(кол-во израсходованного сырья), ОстСырья(остаток сырья на складе), Цена(цена закупленного сырья). Все эти таблицы связаны между собой 1:М по КодС
0
|
![]() |
||||||
30.07.2024, 15:29 | ||||||
ИПЛ, Запрос для источника данных ComboBox
ИПЛ, ID получается из SelectedItem первого ComboBox и далее передаётся во все запросы. Запросы выполняются, источники данных показывают именно то что надо для выбранного в первом ComboBox.
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 15:31 [ТС] | |
Что значит (у каждого ComboBox свой источник данных, который завязан на предыдущий.). Источник данных один Справочник сырья СпрСырьяBindingSource, если делать разные СпрСырьяBindingSource0.СпрСырьяBindingSo urce1,СпрСырьяBindingSource2 и т.д., то как их присоединять к коьбобоксу в цикле?
0
|
![]() |
|
30.07.2024, 15:37 | |
То и значит - источники у них разные, так как запросы разные и данные в них разные.
0
|
30.07.2024, 15:47 | |
Ну да один - таблица СпрСырья и ComboBox1 один. Выбрали в нём сырьё - отфильтровался склад. Далее выбрали что-то со склада и нажали что-то (пусть будет кнопка) "в ТехКарту", при этом указали количество. И всё позиция добавлена в техкарту.
0
|
![]() |
|
30.07.2024, 15:57 | |
ИПЛ, Вот вам пример в картинках. Тут WPF, но не суть
1. Выбрали данные в первом списке 2. Во втором 3. В третьем 4. Заполнили данные в TextBox и нажали Записать - всё...
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 16:13 [ТС] | |
Вы предлагаете для каждого коьбобокса создавать запрос. А не проще каким то образом для каждого комбобокса создавать фильтр СпрСырьяBindingSource.Filter = "КодС=" коду в каждщй строке ТехКартаяBindingSource.Filter = "КодП=" & CBox1.SelectedValue, где CBox1.SelectedValue выдает код продукта
Добавлено через 14 минут Ну так все красиво. Это наверное пригодится при разработке новой рецептуры. А у меня в данный момент уже существуют рецептуры. Выбирая их через CBox1 у меня должен выходить список сырья принадлежащий данному(выбранному) продукту, но так как в ТехКарте указан только код сырья, а мне надо для удобства показать наименование сырья я использую табл СпрСырья и загоняю его в коьбобокс, а вот дальше мне надо отфильтровать данные в табл. Склад сырья по коду сырья в ТехКарте и остатку сырья>0. И задать этот набор другому комбобоксу с возможностью выбора цены на сырье
0
|
![]() |
||||||
30.07.2024, 16:17 | ||||||
Именно.
В моём примере так и сделано. У каждого элемента свой источник
Добавлено через 2 минуты Ничего не понятно... Покажите картинку...
0
|
![]() |
|
30.07.2024, 16:19 | |
Покажите картинку...
Добавлено через 37 секунд VB NET <> VBA. Это абсолютно всё другое...
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 16:41 [ТС] | |
Там где "Iron Pro 3/1" это выбран продукт, ниже в ДатаГрид вышел список сырья для данного продукта его количество, а вот в поле Цена высвечиваются цены для каждого сырья, но выводятся цены первого соответствия коду сырья. Этого сырья с такой ценой может уже и не быть на складе, а при открывании комбобокса выдается весь список цен не зависимо от сырья
0
|
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
|
|
30.07.2024, 16:43 [ТС] | |
0
|
30.07.2024, 16:43 | ||||||
Помогаю со студенческими работами здесь
20
Привязка BindingSource к ListBox Привязка ComboBox к DataContext для отображения простых справочников ComboBox + BindingSource
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
|