Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
1-1102600798
гость
2004-12-09 16:59
2004.12.26
Как вытащить иконку из окна если есть его хендл?


3-1101195271
lightix
2004-11-23 10:34
2004.12.26
Получить индекс строки в наборе данных


1-1102796522
Mega Mike
2004-12-11 23:22
2004.12.26
Рабоат функции или процедуры в фоновом режиме...


3-1101391279
a3a3ello
2004-11-25 17:01
2004.12.26
Проблема с execute statement в FB 1.5.1


1-1102973043
Lelik
2004-12-14 00:24
2004.12.26
Процессы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский