Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 00:03   #1
Deonisich
Новичок
Джуниор
 
Регистрация: 06.02.2013
Сообщений: 2
Восклицание Привязка полей БД к ComboBoxам и последующий вывод в Tedit

Здравствуйте товарищи программисты! Очень сильно нужна ваша помощь, один справиться не в силах, пытаюсь всячески, но ничего не выходит. Вот смысл задания: В SQL Server есть база, где 2 таблицы: Price (где есть столбцы с определенной маркой материала, сам материал, и черновой вес изделия. И к стати марка материала может быть одного названия, но разного материала: например 110С / дуб / черновой вес 20кг. И 110С / берёза / 15кг. И т.д.) Во второй таблице находится база с разными параметрами для этих изделий: поля марки и названия материала тоже есть и они должны совпадать с первой таблицей, но нет чернового веса. Так же есть поле с именем предмета и поле с коэффициентом, которое нужно перемножить на черновой вес изделия из первой таблицы. Пример: 115ГЛ / Cосна / 28кг. / Диван / 28*коэфф.
Задача в следующем – сделать два ComboBoxа, где в начале выбираем Марку материала. Вторым ComboBoxом выбираем уже не из всего списка названий материала из столбца таблицы, а только те которые соответствуют этому номеру марки. Далее в Edit1 автоматом прописываются черновой вес и в Edit2 имя предмета из второй таблицы. А в Edit3 перемножение поля Черновой вес из таблицы №1 и коэффициента из таблицы №2.
И что бы все эти данные заносились в DBGrid и сохранялись в отдельную таблицу (допустим название архивы).
Ребят кому не сложно откликнитесь сюда или мне на почту Deonisich777@yandex.ru , уже вторую неделю с работы прихожу и практически до утра разбираюсь с этими процедурами, но что то не стыкуется… Заранее благодарю…
Deonisich вне форума Ответить с цитированием
Старый 07.02.2013, 00:28   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

многабукафнеасилил (с).

Цитата:
уже вторую неделю с работы прихожу и практически до утра разбираюсь с этими процедурами, но что то не стыкуется
что именно не получается то?
1. использовать нужно не DBComboBox, а DBLookupComboBox и настраивать на них поля ListSource, ListField, KeyField
2.
Цитата:
сделать два ComboBoxа, где в начале выбираем Марку материала. Вторым ComboBoxом выбираем уже не из всего списка названий материала из столбца таблицы, а только те которые соответствуют этому номеру марки.
для первого ComboBox будет Query с запросом
Код:
'SELECT DISTINCT marka FROM tablitsa1'
, соответственно для второго будет Query2 с текстом
Код:
'SELECT material FROM tablitsa1 WHERE marka = '+ComboBox1.KeyValue';
(ну или возиться с Master-Detail)
3. Правельнее будет завести несколько справочников типа (ID, NAME) для Марки, Материала и, возможно, Изделия, а в сами таблицы подставлять их ID.
4. Для
Цитата:
Далее в Edit1 автоматом прописываются черновой вес и в Edit2 имя предмета из второй таблицы. А в Edit3 перемножение поля Черновой вес из таблицы №1 и коэффициента из таблицы №2.
И что бы все эти данные заносились в DBGrid и сохранялись в отдельную таблицу (допустим название архивы).
было бы неплохо узнать "уникальную" связь между двумя таблицами для их связки между собой.
Потом можно говорить дальше

UPD. и еще "черновой вес изделия", если уж он нужен для расчётов, правильно будет разделить на 2 поля: число и ед. измерения. меньше головной були будет при расчетах. да и удобнее
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 07.02.2013 в 00:39.
Yurk@ вне форума Ответить с цитированием
Старый 07.02.2013, 01:14   #3
Deonisich
Новичок
Джуниор
 
Регистрация: 06.02.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение

1. использовать нужно не DBComboBox, а DBLookupComboBox и настраивать на них поля ListSource, ListField, KeyField
DBLookup не подходит, так как он только листает по списку, а он
огромный, по этому нужно что бы и клавой можно было вводить!
Цитата:
Сообщение от Yurk@ Посмотреть сообщение
для первого ComboBox будет Query с запросом
Код:
'SELECT DISTINCT marka FROM tablitsa1'
, соответственно для второго будет Query2 с текстом
Код:
'SELECT material FROM tablitsa1 WHERE marka = '+ComboBox1.KeyValue';
(ну или возиться с Master-Detail)
а что если через процудуру это всё сделать, которую я создал в базе SQL Server?
Цитата:
Сообщение от Yurk@ Посмотреть сообщение
4. Для было бы неплохо узнать "уникальную" связь между двумя таблицами для их связки между собой.
Потом можно говорить дальше
Уникальная связь я так понимаю должна быть по двум полям - это Марка изделия и Материал изделия
Цитата:
Сообщение от Yurk@ Посмотреть сообщение
и еще "черновой вес изделия", если уж он нужен для расчётов, правильно будет разделить на 2 поля: число и ед. измерения. меньше головной були будет при расчетах. да и удобнее
Там вес не нужно разделять, он всё время будет в килограммах, поэтому что в столбце есть, такое число и будет перемножаться...
Deonisich вне форума Ответить с цитированием
Старый 07.02.2013, 01:19   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
DBLookup не подходит, так как он только листает по списку, а он огромный
кто сказал что набирать нельзя?
Цитата:
а что если через процудуру это всё сделать, которую я создал в базе SQL Server?
ну делай ч\з процедуру
Цитата:
Уникальная связь я так понимаю должна быть по двум полям - это Марка изделия и Материал изделия
тебе виднее какой она должна быть
Цитата:
Там вес не нужно разделять, он всё время будет в килограммах, поэтому что в столбце есть, такое число и будет перемножаться...
твое право )
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод полей из двух таблиц 6666 БД в Delphi 2 12.05.2011 15:33
вывод полей из двух таблиц 6666 Мультимедиа в Delphi 1 11.05.2011 20:01
Заполнение динамического массива данными из файла и последующий вывод на экран vitalyisaev2 Общие вопросы C/C++ 5 08.09.2010 12:51
Массивы, ввод.вывод через TEdit/TMemo MaksimSeriy Общие вопросы Delphi 5 02.04.2009 01:04
Форматированный вывод информации в поле ввода (TEdit или подобные) vet_coder Компоненты Delphi 3 13.12.2007 10:55