Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27

Привязка BindingSource с разными фильтрами для соответствующих ComboBox

30.07.2024, 13:15. Показов 925. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня. Сталкнулся с такой проблемой. Есть таблица ТехКарта(рецептура продукта), она содержит три поля КодП (код продукта), КодС (код сырья) и КолС (количество сырья). На форме я создаю ComdoBox (с CBox01 по CBox141) в них мне надо отобразить наименование сырья из табл.СпрСырья (справочник сырья) соответствующий КодС в таб. ТехКарта, эти таблицы связаны по коду сырья (отфильтрофать по коду сырья указанного в каждой строке табл. ТехКарта). Если CBox01 - CBox141 задавать источник записей СпрСырьяBindingSource то все комбобоксы принимают одинаковое значение, Приходится комбобоксы привязывать к разным BindingSource (СпрСырьяBindingSource0, СпрСырьяBindingSource1, СпрСырьяBindingSource2 и т.д.). Тогда вопрос как их привязывать в цикле к комбобоксам? А далее еще подобный случай, только следующие комбобоксы надо прииязать к третьей таблице СклСырья (склад сырья) которая связана с предыдущими таблицами по коду сырья, но в этих комбобоксах мне нужно вывести цену данного сырья которое имеется в наличии (установить фильтр где остаток сырья >0 и ограничивать его по коду сырья).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.07.2024, 13:15
Ответы с готовыми решениями:

Фильтрация разными фильтрами
Добрый день. Имеется таблица Юзер в ней 3 поля: Имя, Пол, Дата рождения. Необходимо написать запрос, получающий Юзера по любым данным,...

Реализовать фильтр для BindingSource через comboBox
Здравствуйте! Хочу реализовать фильтр для BindingSource через comboBox; Возможные значения comboBox берутся из справочника...

Фильтрация по уникальности строк, в привязки BindingSource для ComboBox
Давненько сталкивался, оставлял вопрос на мсдн но вот никак не могу найти решение. Могу ошибатся, но вроде было связано с...

29
2228 / 1549 / 393
Регистрация: 26.06.2017
Сообщений: 4,497
Записей в блоге: 1
30.07.2024, 13:54
"Ничего не понятно, но очень интересно" ©
ИПЛ, можете привести схему БД (той группы таблиц), по которой вопрос? И ещё вопрос (наверное главный на данном этапе): а зачем столько ComdoBox-ов? Может проще всё свести в одну DataGridView?
Вообще такое делается проще, либо делается аналог БД на основе DataSet, либо создаются группа классов и их коллекций для представления данных из таблиц и методы для увязывания всего этого в соответствии со схемой БД.
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 14:45  [ТС]
Здравствуйте. Я пытался это сделать через DGV. С помощью ComboBox1 я выбираю продукт и выставляю фильтр на источник записей DGV, все нормально, в первом столбце (комбобоксе) у меня выходит наименование сырья, а не код, во втором столбце выходит количество сырья необходимое для данного продукта, а в третьем столбце мне нужно вывести цены на данное сырье. Вот здесь загвозка. При выборе цены он либо выдает ошибку, либо ничего не выдает, либо повторяет одни и теже значения в каждой строке. Надо чтобы комбобокс выдавал набор цен на сырье соответствующее каждой строке DGV. Эта форма нужна для колькуляции продукта, подсчета его себестоимости, ну и в дальнейшем для составления новой рецептуры.
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
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
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 15:08
Цитата Сообщение от ИПЛ Посмотреть сообщение
Надо чтобы комбобокс выдавал ограниченный набор цен на сырье соответствующее каждой строке DGV.
А я вам про что?
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Если нужны много ComboBox то для каждой пары создаётся отношение в данных 1:М и тогда при выборе в первом значения, во втором загружаются данные для этого значения и так далее по старшинству.
Добавлено через 1 минуту
ИПЛ, У каждого ComboBox свой источник данных, который завязан на предыдущий.
0
2228 / 1549 / 393
Регистрация: 26.06.2017
Сообщений: 4,497
Записей в блоге: 1
30.07.2024, 15:11
Да блин! ИПЛ, покажите таблицы!
То, что вы описываете, очень похоже на самый обычный многофакторный фильтр.
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 15:19  [ТС]
Табл ТехКарта (КодП(код продукта), КодС(код сырья), КолС( кол-во сырья), табл. СпрСырья (КодС, ИмяС, ИмяП(полное наименование сырья)) и табл. склад сырья СклСырья (КодЗ(код закупки сырья), Дата(дата прихода сырья на склад), КодПост(код поставщика сырья), КодС (код сырья), КолСырья(кол-во поступившего сырья на склад), РасхС(кол-во израсходованного сырья), ОстСырья(остаток сырья на складе), Цена(цена закупленного сырья). Все эти таблицы связаны между собой 1:М по КодС
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 15:29
ИПЛ, Запрос для источника данных ComboBox
SQL Скопировано
1
2
3
SELECT ....
FROM ...
WHERE КодС = @id -- это параметр с кодом вашего сырья
Добавлено через 2 минуты
ИПЛ, ID получается из SelectedItem первого ComboBox и далее передаётся во все запросы. Запросы выполняются, источники данных показывают именно то что надо для выбранного в первом ComboBox.
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 15:31  [ТС]
Что значит (у каждого ComboBox свой источник данных, который завязан на предыдущий.). Источник данных один Справочник сырья СпрСырьяBindingSource, если делать разные СпрСырьяBindingSource0.СпрСырьяBindingSo urce1,СпрСырьяBindingSource2 и т.д., то как их присоединять к коьбобоксу в цикле?
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 15:37
Цитата Сообщение от ИПЛ Посмотреть сообщение
Что значит
То и значит - источники у них разные, так как запросы разные и данные в них разные.
0
2228 / 1549 / 393
Регистрация: 26.06.2017
Сообщений: 4,497
Записей в блоге: 1
30.07.2024, 15:47
Цитата Сообщение от ИПЛ Посмотреть сообщение
Источник данных один Справочник сырья
Ну да один - таблица СпрСырья и ComboBox1 один. Выбрали в нём сырьё - отфильтровался склад. Далее выбрали что-то со склада и нажали что-то (пусть будет кнопка) "в ТехКарту", при этом указали количество. И всё позиция добавлена в техкарту.
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 15:57
ИПЛ, Вот вам пример в картинках. Тут WPF, но не суть
1. Выбрали данные в первом списке
Привязка BindingSource с разными фильтрами для соответствующих ComboBox

2. Во втором
Привязка BindingSource с разными фильтрами для соответствующих ComboBox

3. В третьем
Привязка BindingSource с разными фильтрами для соответствующих ComboBox

4. Заполнили данные в TextBox и нажали Записать - всё...
Привязка BindingSource с разными фильтрами для соответствующих ComboBox
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 16:13  [ТС]
Цитата Сообщение от Uswer Посмотреть сообщение
Ну да один - таблица СпрСырья и ComboBox1 один. Выбрали в нём сырьё - отфильтровался склад. Далее выбрали что-то со склада и нажали что-то (пусть будет кнопка) "в ТехКарту", при этом указали количество. И всё позиция добавлена в техкарту.
Вы предлагаете для каждого коьбобокса создавать запрос. А не проще каким то образом для каждого комбобокса создавать фильтр СпрСырьяBindingSource.Filter = "КодС=" коду в каждщй строке ТехКартаяBindingSource.Filter = "КодП=" & CBox1.SelectedValue, где CBox1.SelectedValue выдает код продукта

Добавлено через 14 минут
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
ИПЛ, Вот вам пример в картинках. Тут WPF, но не суть
1. Выбрали данные в первом списке
Вложение 1479980
2. Во втором
Вложение 1479981
3. В третьем
Вложение 1479984
4. Заполнили данные в TextBox и нажали Записать - всё...
Вложение 1479985
Ну так все красиво. Это наверное пригодится при разработке новой рецептуры. А у меня в данный момент уже существуют рецептуры. Выбирая их через CBox1 у меня должен выходить список сырья принадлежащий данному(выбранному) продукту, но так как в ТехКарте указан только код сырья, а мне надо для удобства показать наименование сырья я использую табл СпрСырья и загоняю его в коьбобокс, а вот дальше мне надо отфильтровать данные в табл. Склад сырья по коду сырья в ТехКарте и остатку сырья>0. И задать этот набор другому комбобоксу с возможностью выбора цены на сырье
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 16:17
Цитата Сообщение от ИПЛ Посмотреть сообщение
Вы предлагаете для каждого коьбобокса создавать запрос.
Именно.
В моём примере так и сделано. У каждого элемента свой источник
C# Скопировано
1
2
3
4
5
6
public ObservableCollection<ONZDraw> ONZDraws { get; }
    = new ObservableCollection<ONZDraw>();
public ObservableCollection<ONZDrawSystem> ONZDrawSystems { get; }
    = new ObservableCollection<ONZDrawSystem>();
public ObservableCollection<ONZDrawSystemWork> ONZDrawSystemWorks { get; }
    = new ObservableCollection<ONZDrawSystemWork>();
Первый заполняется при загрузке окна, остальные при срабатывании события SelectionChanged предыдущего.

Добавлено через 2 минуты
Цитата Сообщение от ИПЛ Посмотреть сообщение
Выбирая их через CBox1 у меня должен выходить список сырья принадлежащий данному(выбранному) продукту, но так как в ТехКарте указан только код сырья, а мне надо для удобства показать наименование сырья я использую табл СпрСырья и загоняю его в коьбобокс, а вот дальше мне надо отфильтровать данные в табл. Склад сырья по коду сырья в ТехКарте и остатку сырья>0. И задать этот набор другому комбобоксу с возможностью выбора цены на сырье
Ничего не понятно... Покажите картинку...
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 16:17  [ТС]
Я раньше это все делал в Акцессе без проблем. С рекордсетами все просто и понятно. Я в цикле мог заполнять поля и коьбобоксы без проблем, а вот VB.net что-то затупил. не знаю с какой стороны подойти
0
 Аватар для Andrey-MSK
3160 / 2057 / 375
Регистрация: 14.08.2018
Сообщений: 6,756
Записей в блоге: 4
30.07.2024, 16:19
Цитата Сообщение от ИПЛ Посмотреть сообщение
Я раньше это все делал в Акцессе без проблем.
Покажите картинку...

Добавлено через 37 секунд
Цитата Сообщение от ИПЛ Посмотреть сообщение
а вот VB.net что-то затупил
VB NET <> VBA. Это абсолютно всё другое...
0
2228 / 1549 / 393
Регистрация: 26.06.2017
Сообщений: 4,497
Записей в блоге: 1
30.07.2024, 16:22
Цитата Сообщение от ИПЛ Посмотреть сообщение
а мне надо для удобства показать
А нам для удобства нужно показать хоть кусок кода, чтобы понять масштабы бедствия.
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 16:41  [ТС]
Привязка BindingSource с разными фильтрами для соответствующих ComboBox

Там где "Iron Pro 3/1" это выбран продукт, ниже в ДатаГрид вышел список сырья для данного продукта его количество, а вот в поле Цена высвечиваются цены для каждого сырья, но выводятся цены первого соответствия коду сырья. Этого сырья с такой ценой может уже и не быть на складе, а при открывании комбобокса выдается весь список цен не зависимо от сырья
0
0 / 0 / 0
Регистрация: 08.09.2015
Сообщений: 27
30.07.2024, 16:43  [ТС]
Привязка BindingSource с разными фильтрами для соответствующих ComboBox
Миниатюры
Привязка BindingSource с разными фильтрами для соответствующих ComboBox  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2024, 16:43
Помогаю со студенческими работами здесь

Как можно реализовать выбор bindingSource для DataGridView из элемента ComboBox?
привет всем!! Подскажите как можно реализовать выбор bindingSource для DataGrideView из элемента combobox.. По умолчание DataGridView...

Привязка BindingSource к ListBox
Подсобите пожалуйста! На msdn нашел: using System; using System.Collections.Generic; using System.ComponentModel; using...

Привязка ComboBox к DataContext для отображения простых справочников
Может, я конечно и ламер, но вот застряла совсем. Есть БД в SQL Server`e, для нее создан класс DataContext (LINQ to SQL) в приложении...

ComboBox + BindingSource
Есть справочная таблица hospital_branches (Branch_id, Branch_title) и оперативная где поле Branch_id фигугрирует. Я хотел чтобы ComboBox...

Привязка свойство ComboBox.Text к ComboBox.ToolTip
Подскажите пожалуйся, как выполнить привязку свойства ComboBox.Text к ComboBox.ToolTip Важно: пожалуйста не предлагайте использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды 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. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер