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

Вниз

Lookup поля в таблицах.   Найти похожие ветки 

 
Татьяна ©   (2008-10-02 06:45) [0]

Помогите пожалцйста! Есть две таблицы:
1. Справочник: № ПОДРАЗДЕЛЕНИЯ, НАИМЕНОВАНИЕ ПОДРАЗДЕЛЕНИЯ.
2. Основная таблица: № п/п,....., № ПОДРАЗДЕЛЕНИЯ.
В основную таблицу добавлено Lookup-поле НАИМЕНОВАНИЕ ПОДРАЗДЕЛЕНИЯ для быстрого выбора.
Каким образом можно организовать добавление записей в справоник во время заполнения основной таблицы??


 
Johnmen ©   (2008-10-02 09:15) [1]


> Каким образом...

Написанием программы :)


 
Татьяна ©   (2008-10-02 09:50) [2]

Это я поняла, а поточнее можно?


 
Василий Жогарев ©   (2008-10-02 10:05) [3]


> Каким образом можно организовать добавление записей в справоник
> во время заполнения основной таблицы??


Это т.е., что ?...


 
Sergey13 ©   (2008-10-02 10:05) [4]

> [2] Татьяна ©   (02.10.08 09:50)

А чего точнее? В твоей программе должна быть прописана реакция на желание пользователя добавить значение в справочник. По большому счету это мало относится к теме топика.


 
Татьяна ©   (2008-10-02 10:27) [5]

Василий Жогарев ©   (02.10.08 10:05) [3]

> Каким образом можно организовать добавление записей в справоник
> во время заполнения основной таблицы??

Это т.е., что ?...

т.е. я использую компонент Table, связанное поле при заполнении отображается в виде выпадающего списка из которого можно выбрать значение. При этом если возникает необходимость добавить значение в справочник, приходится открывать его специально, добавлять туда запись, и возвращаться к заполнению основной таблицы. А я хочу по мере необходимости, не открывая окно справочника, добавлять туда записи. Не могу придумать как это сделать.


 
MsGuns ©   (2008-10-02 10:29) [6]

У комбобокса есть итемс - вот их и надо туда добавить. Ручками


 
Sergey13 ©   (2008-10-02 11:30) [7]

> [5] Татьяна ©   (02.10.08 10:27)
> А я хочу по мере необходимости, не открывая окно справочника,
> добавлять туда записи. Не могу придумать как это сделать.

Т.е. ты хочешь что бы тебе указали конкретную пропертю, установив которую в TRUE ты получишь то, что тебе "хочется"? На все хотелки пропертей не напасешься. Программу надо писать.
Да и вообще твой желаемый метод - это скрытое зло, причем давольно опасное. Через месяц работы в справочнике будет каша из разнонаписанных дубликатов.


 
Правильный$Вася   (2008-10-02 11:44) [8]

справочник - это такая сущность, редактировать которую нужно вдумчиво и не кому попало
поэтому права на него дают не всем
а "задалбывание от перехода туда-сюда" есть небольшой стимул подумать, прежде ем колотить туда мусор впопыхах, не глядя нато, что там уже есть такое, но написанное с маленькой буквы или аббревиатурой


 
Татьяна ©   (2008-10-02 11:53) [9]

> Sergey13 ©   (02.10.08 11:30) [7]

> Да и вообще твой желаемый метод - это скрытое зло, причем
> давольно опасное. Через месяц работы в справочнике будет
> каша из разнонаписанных дубликатов.


А может это уже проблемы пользователя? :) Со справочником то в конце концов им работать.


 
Sergey13 ©   (2008-10-02 11:56) [10]

> [9] Татьяна ©   (02.10.08 11:53)

А исправлять результаты работы пользователя кому? Пушкину?
Дело твое, делай если хочешь, но волшебной проперти, которая бы позволила добавлять в лукап-справочник нет.
Поэтому см
> [1] Johnmen ©   (02.10.08 09:15)


 
Татьяна ©   (2008-10-02 11:57) [11]


> MsGuns ©   (02.10.08 10:29) [6]
> У комбобокса есть итемс - вот их и надо туда добавить. Ручками


Компонент не Combobox а Table. А вот у поля динамически заполняется свойство PickList.


 
ПРавильный$Вася   (2008-10-02 11:57) [12]


> А может это уже проблемы пользователя?

технику безопасности не отменяли
можно ведь сделать бензопилу такую, чтоб дерево пилила, но опилки отбрасывала строго в сторону лесоруба: "нехай уворачивается, это его проблемы, ведь пилит же"


 
stas ©   (2008-10-02 11:58) [13]

Татьяна ©   (02.10.08 06:45)
в Dbgrideh - есть событие Ifnotinlist или что-то типа этого и на это событие заполняешь справочник.
Только знаю все кто это делал отказались потом т.к. действительно из справочника сделали непонятно что.


 
Татьяна ©   (2008-10-02 11:58) [14]


> Sergey13 ©   (02.10.08 11:56) [10]
> > [9] Татьяна ©   (02.10.08 11:53)А исправлять результаты
> работы пользователя кому? Пушкину?Дело твое, делай если
> хочешь, но волшебной проперти, которая бы позволила добавлять
> в лукап-справочник нет. Поэтому см > [1] Johnmen ©   (02.
> 10.08 09:15)


А сортировать таблицу по этому полю можно?


 
Правильный$Вася   (2008-10-02 11:59) [15]


> А вот у поля динамически заполняется свойство PickList

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


 
stas ©   (2008-10-02 12:02) [16]

Татьяна ©   (02.10.08 11:58) [14]
будет сортировка по id, не по алфавиту.
если еще и сортировка-  cxGrid )


 
Татьяна ©   (2008-10-02 12:02) [17]


> ПРавильный$Вася   (02.10.08 11:57) [12]
> > А может это уже проблемы пользователя?технику безопасности
> не отменялиможно ведь сделать бензопилу такую, чтоб дерево
> пилила, но опилки отбрасывала строго в сторону лесоруба:
>  "нехай уворачивается, это его проблемы, ведь пилит же"


Эххх, и не поспоришь ведь)))


 
Sergey13 ©   (2008-10-02 12:12) [18]

> [14] Татьяна ©   (02.10.08 11:58)
> А сортировать таблицу по этому полю можно?

1. Сортируют не таблицы, а наборы данных из них получаемые.
2. Какую таблицу и по какому полю? Основную по лукапному? Нет, напрямую нельзя. Но можно составить запрос, делающий тоже самое.


 
clickmaker ©   (2008-10-02 12:13) [19]

а почему бы не сделать отдельную форму для выбора из справочника? Грид, кнопки добавить-удалить-редактировать, ну и ок и отмена.
Так можно и права разграничить, и удобнее искать.
Вызывать ее из основного грида, нажатием на кнопку в ячейке (TColumn.ButtonStyle)


 
MsGuns ©   (2008-10-02 12:38) [20]

1. Нафих отказаться от гридного редактирования, неминуемо приводящему к тому, что пильщик лишится глаза (суть будет "каша" в справочнике)
2. Каждая запись должна редактироваться в модальной форме с контролами, не связанными с датасетом (компоненты без "зловредной" приставки DB, специально писанных Борландом   для Фаронова и компани - чтоб жизнь медом не казалась). Все "лукапные" комбобоксы должны заполняться из отдельных "фоновых" (в смысле не отображаемых) запросов, которые выполняются либо один раз при запуске либо каждый раз при открытии формы (последнее предпочтительнее, т.к. данные каждый раз будут свежими, правда могут возникнуть некоторые "тормоза")
3. Что касается сложных (в смысле многореквизитных или не одноуровневых) справочников, то для их правки должна быть либо особая программа, устанавливаемая только тем, кто "посвящен", либо отдельная форма, отображающая ВСЕ поля записей справочника, снабженная всякими сервисами типа фильтрации, сортировки, поиска и позволяющая редактировать справочник опять-таки в модальном режиме (не в сетке). Форма справочника позволяет либо выбрать нужную запись для подстановки в форму редактирования, либо внести в справочник изменения. Если справочников в проекте много, чаще всего имеет смысл сделать "базовую" форму (где и реализовать все эти сервисы), а от нее уже штамповать целевые.

Ну и, конечно, все это можно реализовать классами, благо Делфи дает для этого великолепный инструментарий.


 
stas ©   (2008-10-02 13:27) [21]

MsGuns ©   (02.10.08 12:38) [20]

Капец.
Может ей пойти еще застрелится?


 
Sergey13 ©   (2008-10-02 13:49) [22]

> [21] stas ©   (02.10.08 13:27)
> Может ей пойти еще застрелится?

После таких постов в живых остаться должен только один. McL..., тьфу,  MsGuns. 8-)


 
Василий Жогарев ©   (2008-10-02 14:34) [23]


> Татьяна ©   (02.10.08 10:27) [5]
> Василий Жогарев ©   (02.10.08 10:05) [3]
>
> > Каким образом можно организовать добавление записей в
> справоник
> > во время заполнения основной таблицы??
>
> Это т.е., что ?...
>
> т.е. я использую компонент Table, связанное поле при заполнении
> отображается в виде выпадающего списка из которого можно
> выбрать значение. При этом если возникает необходимость
> добавить значение в справочник, приходится открывать его
> специально, добавлять туда запись, и возвращаться к заполнению
> основной таблицы. А я хочу по мере необходимости, не открывая
> окно справочника, добавлять туда записи. Не могу придумать
> как это сделать.


Это извращение и лень человеческая... если данные будут обновляться с такой интенсивностью что будет лень открывать справочник, тогда это не справочник, а таблица с рабочими данными...


 
MsGuns ©   (2008-10-02 15:14) [24]

>stas ©   (02.10.08 13:27) [21]
>Капец.

Нет, не капец. Это нормальный подход при разработке нормального интерфейса для работы с базами данных. Сложный ? Авжеж.. А кто сказал, что программировать также просто, как сморкаться ?


 
ЮЮ ©   (2008-10-03 10:13) [25]

> Помогите пожалцйста! Есть две таблицы:
> 1. Справочник: № ПОДРАЗДЕЛЕНИЯ, НАИМЕНОВАНИЕ ПОДРАЗДЕЛЕНИЯ.
> 2. Основная таблица: № п/п,....., № ПОДРАЗДЕЛЕНИЯ.
> В основную таблицу добавлено Lookup-поле НАИМЕНОВАНИЕ ПОДРАЗДЕЛЕНИЯ
> для быстрого выбора.
> Каким образом можно организовать добавление записей в справоник
> во время заполнения основной таблицы??


Следует посмотреть на таблицу 1. как на основную, а не справочник: подразделения не возникаю так просто, из-за того, что в подчиненной таблице 2. кому-то хочется упомянуть что-то, что показалось ему подразделением. Поэтому см. советы по отдельному и вдумчивому редактированию таблицы 1.

З.Ы. Не бывает таблиц-справочников. Таблицы - это сущности предметной области. ИМХО.



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

Форум: "Базы";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.005 c
2-1241679348
worldmen
2009-05-07 10:55
2009.06.28
Создать большое меню


15-1240480713
12
2009-04-23 13:58
2009.06.28
А что это за копия этого сайта?


15-1240412167
12
2009-04-22 18:56
2009.06.28
Интерфейс пользователя. Встраивать пункт к системным


2-1241842827
masv
2009-05-09 08:20
2009.06.28
печать DBGridEh


15-1240411267
AlexDan
2009-04-22 18:41
2009.06.28
Задорнов об интернетчиках, любопытно..





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский