Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2018, 16:34   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию DBGridEh_DropDownBox. несоответствие диапазону значений.

Доброе время суток, форумчане

Есть 2 DataSet, в DataSet1 хранится ФИО людей и т.д, в DataSet2 отделы (к обоим DataSet прикреплены DBGridEh1 и DBGridEh2 соответственно).
В БД, (DataSet2) завел новое поле поле в котором должно хранится ФИО начальника отдела. В DBGridEh2 также добавил колонку для ФИО, в свойстве "DropDownBox" в "ListSource" выбрал "DataSource1", и название поля с фамилией.

интересуют 2 вопроса:

1 в процессе работы программы, выпадающий список в DBGridEh2 есть, но при выделении/наведении мышкой какого-нибудь второго элемента списка выпадает ошибка:

Цитата:
exception class EArgumentOutOfRangeException with message 'Argument out of range'
. Хотя типы обоих полей, в DataSet1 и в DataSet2 совпадают…

2 Можно ли каким-нибудь образом, впихнут в этот список первые буквы с полей «Имя» и «Отчества» хранимые в DataSet1?

Заранее спасибо за ответ

Последний раз редактировалось KBO; 13.05.2018 в 16:37.
KBO вне форума Ответить с цитированием
Старый 13.05.2018, 17:51   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
2 Можно ли каким-нибудь образом, впихнут в этот список первые буквы с полей «Имя» и «Отчества» хранимые в DataSet1?
(
1. вычислимое поле для соотв. DataSet
2. для отбора нужных и получения нового вида имеющихся данных
2.1. использовать SQL запрос, а не таблицу БД
2.2. представление (View) тот же SQL (2.1), но сохраняющийся вместе с БД.

Цитата:
'Argument out of range'
это аргумент ВНЕ диапазона.(а не другого типа).
Цитата:
"DropDownBox" в "ListSource" выбрал "DataSource1", и название поля с фамилией.
А прочие поля связанные с БД ? (их там несколько)
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.05.2018 в 17:58.
evg_m вне форума Ответить с цитированием
Старый 14.05.2018, 02:04   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от KBO Посмотреть сообщение
В БД, (DataSet2) завел новое поле поле в котором должно хранится ФИО начальника отдела.
Поясните пожалуйста что именно вы сделали. При буквальном чтении этой фразы возникает ощущение, что вы всё сделали неправильно.
northener вне форума Ответить с цитированием
Старый 14.05.2018, 15:20   #4
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
2 Можно ли каким-нибудь образом, впихнут в этот список первые буквы с полей «Имя» и «Отчества» хранимые в DataSet1?
Я вообще думал, что это может обеспечить и DBGridEh, коль у него есть такое свойство как "DropDownBox". О вычисляемом поле в DataSet и запросе типа:
Код:
select (FAMILY_NAME ||' '|| Left(NAME,1)||'.'||Left(PATRONYMIC_NAME,1)||'. ('||TELEPHONE||')') as FIO from USERS_DATA
Я знаю...

А вот подскажите пожалуйста...
Вот есть же DataSet1 отображающий ФИО сотрудников и специальности и должностя (типа: "инженер", "бухгалтер", "директор"...), а также ссылки на их отделы.
Мне нужно будет ссделать запрос с выборкой людей по отделам (т.е. сначало идут люди с "отдела 1", потом с "отдела 2" и т.д.), но так, чтоб каждый отдел начинался с "директора" отдела.
Это что, мне придется дополнительное поле в табл. создавать с номерами соответствующие специальностям/должностям?
Допустим директору присвоим число "0", инженеру - "1", бухгалтеру - "2", с проводить сортировку сначало по названию отдела, а потом по этому столбцу с данными номерами
KBO вне форума Ответить с цитированием
Старый 14.05.2018, 15:21   #5
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
А прочие поля связанные с БД ? (их там несколько)
Да, конечно, связаны с БД
KBO вне форума Ответить с цитированием
Старый 14.05.2018, 15:27   #6
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Поясните пожалуйста что именно вы сделали. При буквальном чтении этой фразы возникает ощущение, что вы всё сделали неправильно.
Просто в таблице (DataSet2) в которой у меня храняться названия отделов и все что с ними связано, я создал новое поле типа "string", в котрое думал помещать ФИО, которое я буду быбирать из списка "ListSource" DataSet1.
KBO вне форума Ответить с цитированием
Старый 15.05.2018, 09:28   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
я создал новое поле типа "string", в котрое думал помещать ФИО,
http://www.programmersforum.ru/showp...42&postcount=9
P.S. конечно же эти рекомендации имеют и исключения.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение данных по определенному диапазону строк и при совпадении значений копирование данных в другой лист Volk358 Microsoft Office Excel 6 02.10.2012 09:54
Несоответствие типов Кристинка89 Общие вопросы Delphi 2 24.05.2011 17:25
несоответствие типов Rin БД в Delphi 7 11.01.2011 14:27
Несоответствие типов. Иван=) Помощь студентам 7 04.11.2010 13:27
Несоответствие типов nusik Общие вопросы Delphi 14 31.05.2009 17:24