Главная страница
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.047 c
1-1102924069
Relaxxx
2004-12-13 10:47
2004.12.26
Почему не пичатает на матричном принтере???


3-1101809249
wmicha6666
2004-11-30 13:07
2004.12.26
Изменение данных в таблице


14-1102189823
vecna
2004-12-04 22:50
2004.12.26
педали


14-1102092265
able
2004-12-03 19:44
2004.12.26
Внешний вид


1-1102940836
Wolffgang
2004-12-13 15:27
2004.12.26
опознание одинарной кавычки