Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

У каждой фирмы свой прайс   Найти похожие ветки 

 
able ©   (2004-11-24 05:46) [0]

Как это лучше реализовать? Чтобы когда фирма выделена (например, в DBGrid) появился прайс (например, в другом DBGrid), выделил другую фирму, другой прайс..


 
YurikGL ©   (2004-11-24 07:14) [1]

Напимер так

procedure TFormMan.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if DSMan.State=dsBrowse then begin
 ИзменяемыйDataset.Close;
 ИзменяемыйDataset.CommandText:="Select ..."

 ИзменяемыйDataset.Open;

end;


 
YurikGL ©   (2004-11-24 07:15) [2]

DataSource1 связан со списком фирм а ИзменяемыйDataset - набор данных с прайсом.


 
sniknik ©   (2004-11-24 07:28) [3]

для примера
D:\Program Files\Borland\Delphi7\Demos\Db\Filter


 
msguns ©   (2004-11-24 10:32) [4]

Использовать 2 таблицы: Основная-перечень фирм + Дочерняя-прайсы
Причем в прайсах есть поле идентификатора-связки с Основной. Дальше - просто:
 1. Использовать два запроса, связанных отношением Master-Detail
 2. По событию AfterScroll датасета с осн.таблицей делать переоткрытие дочерней, где в запросе предварительно менять значение параметра MasterID, присваивая ему ID текущей записи осн.таблицы.


 
able ©   (2004-11-24 16:02) [5]

thanks


 
able ©   (2004-11-24 20:03) [6]

Всё это будет в одной таблице. А в каждом прайсе докучи позиций, фирм ~2000. Нормально, потянет? :)


 
msguns ©   (2004-11-25 10:18) [7]

Т.е. прайсы и фирмы в одной таблице ?


 
asp ©   (2004-11-25 11:44) [8]

Примерно так:
FIRM (ID INTEGER, NAME VARCHAR(64))
GOODS (ID INTEGER NAME VARCHAR(64))
GOODS_PRICE (FIRM INTEGER, GOODS INTEGER, PRICE DOUBLE)


 
able ©   (2004-11-25 13:37) [9]

msguns ©   (25.11.04 10:18) [7]
Нет. В предложенных вариантах прайсы всех фирм в одной таблице. Это нормально?


 
msguns ©   (2004-11-25 14:14) [10]

>able ©   (25.11.04 13:37) [9]
>В предложенных вариантах прайсы всех фирм в одной таблице. Это нормально?

Да. Вообще примерная схема приведена у asp © (25.11.04 11:44) [8]
Хотя я делаю иначе. Исходя из того, что первичен все же товар, а не прайс.

GOODS
 ID
 NAME
 MEAGURE
 PACKAGE
 NDS
 TERMKEEP
 ...

FIRM
 ID
 NAME
 PHONE
 ...

PRICES
 ID
 NAME

PRICES_ST
 ID
 PID -> PRICES
 GID -> GOODS
 FID -> FIRM
 PRICE

Такая схема имеет след.достоинства:
- сколько угодно прайсов по одной фирме.
- наличие любого кол-ва колонок прайса (PID)
- отсутсвие любого товара в любом прайсе (колонке прайса)


 
able ©   (2004-11-25 15:40) [11]

А что за таблица "GOODS"?


 
YurikGL ©   (2004-11-25 16:22) [12]


> able ©   (25.11.04 15:40) [11]

товары, если я что-то понимаю в английском :-)



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.069 c
1-1102797398
Hmm
2004-12-11 23:36
2004.12.26
Проблемма: вместо 0,99999999999 пишет 1 - округляет. =((


1-1102600798
гость
2004-12-09 16:59
2004.12.26
Как вытащить иконку из окна если есть его хендл?


1-1102856803
Павел
2004-12-12 16:06
2004.12.26
Задержка


9-1093546246
Melamed
2004-08-26 22:50
2004.12.26
Вопрос по Speech API


9-1093282124
Creep
2004-08-23 21:28
2004.12.26
Как ввести в игру свой шрифт? Стандартными средствами Delphi7.