Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

TdxComboBox vs TComboBox

Все о том как сделать что-то с помощью скриптов.
kok80
Эксперт
Сообщения: 284
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 12 раз

TdxComboBox vs TComboBox

Сообщение kok80 » Чт мар 21, 2019 7:15 pm

При открытии записи формы запросом получаю данные по клиенту по прошлым адресам выгрузки. Их нужно вывести в ComboBox, чтобы пользователь мог выбрать из списка.
1)Можно создать TdxComboBox, заполнять в OnEnter, но он будет хранить данные в базе. Для избежания этого очищать список в OnBeforePost, оставляя только выбранное значение.
2)Можно создать TComboBox в runtime, заполнить его, в OnBeforePost копировать выбранное значение в TdxEdit и убивать TComboBox

Какой вариант выбрать ?

Аватара пользователя
admin
Разработчик
Сообщения: 4515
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 72 раза

Re: TdxComboBox vs TComboBox

Сообщение admin » Чт мар 21, 2019 9:14 pm

1) Не понял, какой список будет храниться в базе?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1583
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 8 раз

Re: TdxComboBox vs TComboBox

Сообщение Гocть » Чт мар 21, 2019 9:20 pm

Наверное такой?:
    Москва, ул. Иванова, д.1
    Москва, ул. Иванова, д.1
    Москва, ул. Петрова, д.1
    Москва, ул. Петрова, д.2
    Москва, ул. Петрова, д.1
    Москва, ул. Петрова, д.2
    Москва, ул. Сидорова, д.1
    Москва, ул. Сидорова, д.2
    Москва, ул. Сидорова, д.3
Фрилансер. Разработка на заказ. Консультирование.

kok80
Эксперт
Сообщения: 284
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 12 раз

Re: TdxComboBox vs TComboBox

Сообщение kok80 » Чт мар 21, 2019 9:40 pm

основной вопрос: такое использование TdxComboBox не будет ли раздувать базу ?
Если открыть запись для редактирования, скриптом добавить строки, выйти из записи без сохранения - добавленные строки сохранятся. Если добавить скриптом строки, потом удалить скриптом строки - что происходит в базе? Выделенное место остается ? Хотя при закрытии базы добавленные строи не сохраняются.
Храниться будет в любом случае одна текстовая строка в каждой записи, список не будет храниться. Запрос из записей выбирает все уникальные адреса и лишь помогает юзеру выбрать из списка нужный.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1583
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 8 раз

Re: TdxComboBox vs TComboBox

Сообщение Гocть » Чт мар 21, 2019 9:55 pm

kok80 писал(а):TdxComboBox не будет ли раздувать базу ?

Наверное меньше всех базу будет раздувать TdxLookupComboBox, обученный сохранять и извлекать уникальные значения.
Ситуации:
1. Похожие адреса есть в базе: "объект" штатно вываливает в список данные из справочника.
2. Вводимого адреса в базе нет. Тут можно поступить следующим образом:
- во время ввода событием OnUtf8KeyPress (другого ничего нет) сохраняем TdxLookupComboBox.Text в переменную
- по TdxLookupComboBox.OnExit проверяем его Field. Если null то сохраняем значение из переменной как новую запись справочника в бд (можно с предупреждением пользователя что, дескать сейчас будет сохранен новый адрес "Да" или "Нет").
Фрилансер. Разработка на заказ. Консультирование.

kok80
Эксперт
Сообщения: 284
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 12 раз

Re: TdxComboBox vs TComboBox

Сообщение kok80 » Чт мар 21, 2019 10:12 pm

Сейчас уже не просто поменять. На TdxEdit (который легко поменять на TdxComboBox) завязано много документов, менять лучше на каникулах, когда никто не работает в базе, а список нужен прям сейчас. Поэтому: TdxComboBox или TComboBox ?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1583
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 8 раз

Re: TdxComboBox vs TComboBox

Сообщение Гocть » Чт мар 21, 2019 10:32 pm

:? Ну тогда ответ на вопрос:
kok80 писал(а): такое использование TdxComboBox не будет ли раздувать базу ?

Да. Будет, т.к. каждый дублирующийся адрес будет храниться в каждой записи.
Фрилансер. Разработка на заказ. Консультирование.