![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отображение данных [D7, XP]
Man_Bear © (2009-02-12 01:15:00)Такой вопрос. Я в ListBox помещаю наименование товара из БД. Мне надо вывести в DBGrid всю информацию по выбранным товарам. Т.е., по большому счету, я хочу сделать вывод остатков по тем товарам которые находятся в LisBox-е.
markers (2009-02-13 09:57:00) [1]Запрос:
select *
from tov
where Name_t =:Name LIMIT 1
Потом в обработчике ButtonClick сделай
datamodule4.ADOQuery1.Parameters.ParamByName('name').Value:= listbox1.Items[ListBox.Items.ItemIndex];
Так лучше и не будет лишней нагрузки.
Anatoly Podgoretsky (2009-02-13 09:15:00) [2]> Man_Bear (13.02.2009 2:54:25) [25]
Нажми на кнопку со стрелочкой, будешь видеть больше.
MsGuns (2009-02-13 09:10:00) [3];)
Если в боксе 100 значений, то запрос выполнится 100 раз, при этом результаты 99 будут успешно "забыты"
Man_Bear (2009-02-13 02:54:00) [4]Я сделал такую вещ. В запрос ADOQuery написал
select *
from tov
where Name_t like:Name
Потом в обработчике ButtonClick создал цикл
for i:=0 to listbox1.Items.Count-1 do begin
datamodule4.ADOQuery1.Parameters.ParamByName('name').Value:=
listbox1.Items[i];
end;
Он прогоняет все значения которые находятся в ListBox и останавливается на последнем, т.е. я вижу все данные только последней строки LisBox
Сергей М. (2009-02-12 15:24:00) [5]
> да примерно так
Ясно. Солянка сборная, одним словом).. А расхлебывать ее будет бедный юзер)
Ну да ладно.
В чем собссно затруднение ?
markers (2009-02-12 15:15:00) [6]> MsGuns © (12.02.09 14:46) [22]
На сабже :)
Вы разделяйте пожалуйста сообщения топикстартера и мои, я повторюсь что к топикстартеру к его проблеме не имею никакого отношения. А следовательно из какого такого сабжа Вы сделали заключение что > Но, вероятно, опыта работы с БД у него не слишком много > - вот и все "выводы" от увиденного :), я не хочу сказать что я к примеру 10 лет тока этим занимаюсь.. Но опыт постройки структуры БД и её использования имеется. Единственное в чём нехватает опыта это работа с БД встроенными инструментами Delphi, но я юзаю сторонний Unit для работы с SQLite, но с ним у меня уже достаточно опыта работы.
Сорри за оффтоп.
MsGuns (2009-02-12 14:46:00) [7]>markers © (12.02.09 13:44) [19]
>Любопытства ради, на чём основано такое заключение?
На сабже :)
Man_Bear (2009-02-12 14:36:00) [8]
> А почему остаток нельзя показывать в основной сетке товара
> как колонку ?
Можно, у меня и так есть колонка с остатками, только мне надо обязательно сначало выбрать товар и только потом показывать остатки по выброннаму товару
Man_Bear (2009-02-12 14:35:00) [9]
> Часы" - Склад №1 - 1 штук
> "Трусы" - Склад №1 - 3 штук
> "Часы" - Склад №5 - 2 штук
> "КолбасЫ" - Склад №3 - 5 штук
> "Трусы" - Склад №3 - 0 штук
> "КолбасЫ" - Склад №4 - 4 штук
да примерно так
markers (2009-02-12 13:44:00) [10]> MsGuns © (12.02.09 12:40) [18]
Любопытства ради, на чём основано такое заключение?
MsGuns (2009-02-12 12:40:00) [11]>markers © (12.02.09 10:54) [17]
Тогда поясню [15]. ИМХО, интерфейс спроектирован на уровне (во всяком случае насколько я смог увидеть на столь мелком рисунке), видно, что человек - профессионал или где-то рядом. Но, вероятно, опыта работы с БД у него не слишком много - вот и все "выводы" от увиденного :)
markers (2009-02-12 10:54:00) [12]> MsGuns © (12.02.09 09:25) [15]
> Из приведенного скриншота у меня сложилось такое же мнение, то я постеснялся его выразить :))
ЗЫ на всякий случай: Скриншот приведёт из моего работающего приложения и к автору топика не имеет отношение не я ни моя прога. Прога полностью написана года 2 как, с того времени произвожу модернизации и баг-фиксы. Извиняюсь если я неправильно понял ваши слова.
Anatoly Podgoretsky (2009-02-12 10:01:00) [13]> Man_Bear (12.02.2009 2:12:04) [4]
Этот вопрос не имеет отношения к Дельфи.
MsGuns (2009-02-12 09:25:00) [14]>Sergey13 © (12.02.09 09:22) [14]
>Птому что автор, ИМХО, пошел по ошибочному пути проектирования своего приложения с >рисования гуев, вместо того что бы продумать структуру БД и бизнес логику. Не даром в вопросе >только боксы да гриды. Да и таблица видимо всего одна.
Из приведенного скриншота у меня сложилось такое же мнение, то я постеснялся его выразить :))
Sergey13 (2009-02-12 09:22:00) [15]> [13] MsGuns © (12.02.09 09:07)
Птому что автор, ИМХО, пошел по ошибочному пути проектирования своего приложения с рисования гуев, вместо того что бы продумать структуру БД и бизнес логику. Не даром в вопросе только боксы да гриды. Да и таблица видимо всего одна.
MsGuns (2009-02-12 09:07:00) [16]А почему остаток нельзя показывать в основной сетке товара как колонку ?
Сергей М. (2009-02-12 08:52:00) [17]
> Мне надо вывести в DBGrid всю информацию по выбранным товарам
Т.е. юзер, к примеру, выделил 3 элемента в листбоксе - "Часы", "Трусы", "КолбасЫ" - и в гриде при этом тут же должно появиться нечто вроде
"Часы" - Склад №1 - 1 штук
"Трусы" - Склад №1 - 3 штук
"Часы" - Склад №5 - 2 штук
"КолбасЫ" - Склад №3 - 5 штук
"Трусы" - Склад №3 - 0 штук
"КолбасЫ" - Склад №4 - 4 штук
Так ?
markers (2009-02-12 06:45:00) [18]Вот картинка для примера: http://imageshost.ru/links/6a81e139e30d22ac30f71525684ec154
markers (2009-02-12 06:27:00) [19]Зы, если товаров и категорий достаточно много, советую тебе отделить категории от товаров, т.к. это неправильно... т.е. надо примерно следующее:
таблица категорий
id (код), название категории, owner_id (Код родителя - другая категория товара)
таблица товаров
id (код), owner_id (Код родителя - категория товара), Наименование.....
И всё это засунуть не в ListBox а в TreeView. Это позволит тебе не ограничеватся всего одной вложенностью (категория - товар), а делать вложенность категорий в категорию и там товар хоть до бесконечности.
ЗЫ: Не работал из Delphi с Access и не знаю его возможностей и режима работы с ним, так что если что извиняюсь.
markers (2009-02-12 06:20:00) [20]Не подскажу поддерживает ли Access SQL запросы, но если да то так:
SELECT * FROM название_таблицы WHERE `наименование`= 'ListBox1.Items[ListBox1.ItemIndex]' LIMIT 1;