![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как построить интерфейс быстрого ввода n взаимосвязанных таблиц? [D6, D7, IB6.x]
tnp.andrew © (2004-04-30 07:15:00)Здравствуйте!
У меня возник вопрос по поводу интерфейса программы, помогите пожалуйста кто сталкивался с этой проблемой и какими методами её решил.
Например, имеем взаимосвязанные таблицы:
create table countries
(
num_co varchar(3) not null,
name_co varchar(30),
....
primary key(num_co)
);
create table regions
(
num_co varchar(3),
num_re varchar(3) not null,
name_re varchar(30),
....
primary key(num_re),
foreign key(num_co) reference countries(num_co)
);
create table oblasts
....
create table zones
....
create table cities
....
create table streets
(
num_co varchar(3),
num_re varchar(3),
...
num_st numeric(6,0),
name_st varchar(50),
....
primary key(num_st),
foreign key(num_co) reference countries(num_co),
foreign key(num_co,num_re) reference regions(num_co,num_re),
...
foreign key(num_co,num_re,num_ob,num_zo,num_ci) references cities(num_co,num_re,num_ob,num_zo,num_ci)
);
Как построить интерфейс ввода большого количества взаимосвязанных таблиц, если уже на третьем уровне, поле подстановки Lookup компонентов не работает с двумя и более полями. Например используем для ввода областей (oblasts), TDBGrid, в котором первое поле Lookup на страны, второе поле Lookup на регионы. При этом во втором Lookup невозможно задать ключ из двух полей, чтобы отобразились только регионы для уже выбранной страны.
Ответы в виде готовых решений или ссылок на них можете отправить на эл.адрес: tnp.andrew@mail.ru
С уважением, Андрей.
Соловьев (2004-04-30 11:43:00) [1]
> tnp.andrew © (30.04.04 11:36) [11]
см. почту
tnp.andrew (2004-04-30 11:36:00) [2]Соловьеву,
Оцени и укажи вид оплаты САМ. Возможен обмен (опытом,...).
С уважением, Андрей.
roottim (2004-04-30 10:39:00) [3]почитай про master-detail в TDataSet
Sergey13 (2004-04-30 10:13:00) [4]2tnp.andrew © (30.04.04 10:01) [5]
При такой постановке вопроса прочитай еще раз Ильш © (30.04.04 07:39) [1]
Соловьев (2004-04-30 10:12:00) [5]
> tnp.andrew © (30.04.04 10:10) [7]
я это прекрасно понял. цена?
tnp.andrew (2004-04-30 10:10:00) [6]Соловьеву,
Второе поле Lookup на регионы отобразит все регионы для всех стран. А нужны только конкретные регионы для выбранной страны.
Соловьев (2004-04-30 10:05:00) [7]
> Например используем для ввода областей (oblasts), TDBGrid,
> в котором первое поле Lookup на страны, второе поле Lookup
> на регионы
у меня есть пример - недавно делал. сколько у.е.?
tnp.andrew (2004-04-30 10:01:00) [8]Sergey13
Нужен пример программы. Мыло tnp.andrew@mail.ru
С уважением, Андрей.
Sergey13 (2004-04-30 09:57:00) [9]2tnp.andrew © (30.04.04 09:42) [3]
А че ты зациклился на Lookup? Это не самый лучший способ работы с инфой, особенно на таких объемах справочников. SQL тут лучше рулит. Тем более для ИБ. Повторюсь - читай про нормализацию.
tnp.andrew (2004-04-30 09:42:00) [10]На ответ Ильш отвечаю, это форум вопросов не по квартирным ключам. :((( Форум и создан для обмена опытом, даже если и за деньги (тугрики) :))).
На ответ Sergey13 отвечаю, одной предыдущей сущности не хватит для быстрого ввода текущей, т.к. в Lookup поле отображаются все строки предыдущей сущности, но при уже заданной первой, список второй должен сократиться.
Например:
При вводе города Магнитогорск, выбираем Россия, список в Lookup поля для регионов должен уменьшиться до регионов входящих в Россию.
Если задавать только предыдущую сущьность, то будет выведен огромный список содержащий все предыдущие сущности без разбора.
Sergey13 (2004-04-30 08:23:00) [11]2tnp.andrew © (30.04.04 07:15)
А зачем для каждой последующей таблицы указывать всю цепочку кодов? Хватит и только предыдущей сущности. Если улица принадлежит Москве, то вряд ли она может принадлежать Украине. Читай про нормализацию.
Ильш (2004-04-30 07:39:00) [12]
> можете отправить на эл.адрес: tnp.andrew@mail.ru
может тебе еще и ключи дать от квартиры где деньги лежат? :))))