Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] ComboBox, TEdit, RadioGroup


Автор: Anakin 31.10.2006, 16:53
 Всем привет.
У меня такая проблема.
Я делаю программу для маленького магазина.
1)Они через программу вводят наличие товара, его цену, количество , и другую инфу.
2)Далее по окончанию ввода товара им необходимо продавать товар. То есть я разместил форму для продажи.
Пример таблиц, которые хранят данные

Продуктовая Таблица
=============================================================================I
Name(Имя товара)I______Count(Количество в Ед.)__I_______Price(Цена за 1 ед.)_I
Коржик__________I________________35_____________I____________1,50____________I
Хлеб____________I________________100____________I____________2,60____________I
=============================================================================I

Таблица Канцелярия.
=============================================================================I
Name__________I__________Count________I__________Price_______________________I
Батарейка_____I___________20__________I____________3_________________________I
Ручка_________I___________15__________I____________2_________________________I
=============================================================================I

Я создаю форму на которой я должен разместить ComboBox, TEdit, RadioGroup, Button.
ComboBox – В нем выбираю вид товара.
TEdit1,- В нем я ввожу количество проданного товара.
RadioGroup- Для выбора таблиц.
Button.Caption:=(Продать)

Так вот у меня два вопроса.
1) Как мне все эти элементы соединить.
2) А вот саамы главный вопрос. Допустим я выбираю в ComboBox`e (Ручка)
А в Tedit и вписываю что я продал 2 ручки и нажимаю на Бутон продать.
А в это время в таблице Канцелярия в столбце (Count) минусует 2 ручки.
И потом когда я смотрю скока у меня осталось товара там не должно писать что ручек по-прежнему 20 а должно отминусоватьса 2 ручки так как я их продал.


Ребята подскажите как эти два вопроса реализовать нуна очень срочна. Плиззз
Или дайте хотябы пример какоинить программы.

Заранее Благодарен.
ОГРОМНЫЙ ФЭНКС.

Автор: Rodman 31.10.2006, 20:50
Ну тебе во первых необходимо создать две формы
1. Для добавления товара, она будет использовать теже компоненты и использовать запрос типа
Код

INSERT INTO TableName (NameProduct, CountProduct, PriceProduct) VALUES(:PrmNP, :PrmCP, :PrmPP);


в коде пишешь
Код

if(RadioGroup.itemIndex=0)then //продуктовая
begin
  Query1.SQL.Clear;
  Query1.SQL.Text:='SELECT NameProduct, CountProduct, PriceProduct FROM Продуктовая WHERE(NameProduc='+ComboBox.Text+')';
  Query1.Open;
  Query.SQL.Clear;
  Query.SQL.Text:='UPDATE Продуктовая SET NameProduct='+ComboBox.Text+', CountProduct=' inttostr(strtoint(Edit.Text)+Query1.Fields.fields[2].asinteger)++', PriceProduct='+Edit2.Text+';';
  Query.ExecSQL;
end
else
begin
   Query1.SQL.Clear;
  Query1.SQL.Text:='SELECT NameProduct, CountProduct, PriceProduct FROM Канцелярия WHERE(NameProduc='+ComboBox.Text+')';
  Query1.Open;
  Query.SQL.Clear;
  Query.SQL.Text:='UPDATE Канцелярия SET NameProduct='+ComboBox.Text+', CountProduct=' inttostr(strtoint(Edit.Text)+Query1.Fields.fields[2].asinteger)++', PriceProduct='+Edit2.Text+';';
  Query.ExecSQL;
end;


2. а вот в твоей форме продаж
Код

if(RadioGroup.itemIndex=0)then //продуктовая
begin
  Query1.SQL.Clear;
  Query1.SQL.Text:='SELECT NameProduct, CountProduct, PriceProduct FROM Продуктовая WHERE(NameProduc='+ComboBox.Text+')';
  Query1.Open;
  Query.SQL.Clear;
  Query.SQL.Text:='UPDATE Продуктовая SET NameProduct='+ComboBox.Text+', CountProduct=' inttostr(strtoint(Edit.Text)-Query1.Fields.fields[2].asinteger)++', PriceProduct='+Edit2.Text+';';
  Query.ExecSQL;
end
else
begin
   Query1.SQL.Clear;
  Query1.SQL.Text:='SELECT NameProduct, CountProduct, PriceProduct FROM Канцелярия WHERE(NameProduc='+ComboBox.Text+')';
  Query1.Open;
  Query.SQL.Clear;
  Query.SQL.Text:='UPDATE Канцелярия SET NameProduct='+ComboBox.Text+', CountProduct=' inttostr(strtoint(Edit.Text)-Query1.Fields.fields[2].asinteger)++', PriceProduct='+Edit2.Text+';';
  Query.ExecSQL;
end;



поля используй с моими именами, а то проблумы будут

Автор: Guedda 31.10.2006, 21:05
Rodman, такой метод хороший, только для таких целей используются специализированные компоненты:
TDBEdit
TDBComboBox
TDBRadioGroup

Их линкуешь с TTable через DataSource, и всё в порядке...

Автор: Anakin 1.11.2006, 08:51
Привет..
Сорь ребята но я забыл сказать я использую MS Acess / ADO
Так что я думаю что через 
TDBEdit
TDBComboBox
TDBRadioGroup 
Не получитса )

Автор: Dremlin 1.11.2006, 09:54
Цитата(Anakin @  1.11.2006,  07:51 Найти цитируемый пост)
Так что я думаю что через 
TDBEdit
TDBComboBox
TDBRadioGroup 
Не получитса )

а ты попробуй, будешь приятно удивлен  smile 

Автор: Rodman 1.11.2006, 11:08
Guedda, во первых были написаны не TDB... компоненты, а во вторых и с обычными работает...

и вот тебе результат
Цитата(Anakin @  1.11.2006,  08:51 Найти цитируемый пост)
TDBEdit
TDBComboBox
TDBRadioGroup 
Не получитса )





Anakin, что не получается. по конкретнее...

Автор: Anakin 1.11.2006, 12:59
Наскока я знаю эти
TDBEdit
TDBComboBox
TDBRadioGroup

компоненты не работают с АДО а точнее с TADOTable и TdataSource
Так как я использую в своей проге именно АДО компоненты.
Но я могу ошибатса так как я ещё не спец в програмировании.

Да кстати я не использую ADOQuery все работает через TADOTable и TdataSource.
Так что если кто может помочь именно по этим компонентам подскажите плизз..
Зарание Спасиба.  smile 

Автор: Rodman 1.11.2006, 13:05
Anakin, эти компоненты можно использовать с АДО... просто уметь надо....

но 
Цитата(Anakin @  1.11.2006,  12:59 Найти цитируемый пост)
Да кстати я не использую ADOQuery все работает через TADOTable и TdataSource.

как ты хочешь с помощью TEdit, TRadioGroup... использовать TTable.... даже не представляю...

тебе что запретили ADOQuery???

Автор: Anakin 2.11.2006, 14:26
Я ошибся не TTable а TADOTable
 А вот насчет Кверти мне не запрещали проста у меня мало инфы по ним так что не думаю что смогу.
2 Rodman
Ты хочешь сказать что я смогу связать
TDBEdit
TDBComboBox
TDBRadioGroup

с АДО ?
Помоему они работают только с BDE. Но может я ошибаюсь.
Но если всежу я ошибаюсь подскажи плизз как мне связать их с АДО..
Зарание Благодарен..

Автор: Guedda 2.11.2006, 18:36
Цитата(Anakin @  1.11.2006,  12:59 Найти цитируемый пост)
компоненты не работают с АДО а точнее с TADOTable и TdataSource

Вот как-раз таки они и соединяются с БД через DataSource ;)

Автор: Anakin 3.11.2006, 14:53
Да Спасибо вам.. ЧТо подсказали что Эти компоненты всётаки мона соединеть с АДО..
Попробовал все проста но вот коечто не получаетса вылаживаю маленький пример..
Я соединил всё кроме RadioGroup.. Не могу сделать так что бы радиоруп переключал таблицы.

Карчое посмотрите пример и если есть возможность подскажите. Как это сделать.
Переименуйте *.rar_ в *.rar

Автор: Anakin 7.11.2006, 09:32
UP


 ! 
alexeis1
Модератор: В данном разделе запрещено поднимать темы, т. е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка. Читайте пожалуйста правила раздела.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)