Мультивыбор в Dblookupcombobox

отредактировано 16:47 Раздел: FastReport 4.0
Добрый день.

Подскажите, пожалуйста, есть возможность в диалоговом окне в компоненте DBLookupComboBox выбрать более одной строки для передачи их (строк) параметром в запрос?
Или такое невозможно в принципе?

Спасибо.

Комментарии

  • FokewolfFokewolf Киев
    отредактировано 16:47
    А почему бы не использовать CheckListBox для множественного выбора ?
  • отредактировано 16:47
    Fokewolf написал: »
    А почему бы не использовать CheckListBox для множественного выбора ?

    Можно и его, если это единственный вариант.

    А каким образом передать эти несколько строк параметром в запрос?
    Чтобы запрос принял примерно такой вид: select * from table where col_1 in (<первая выбранная строка из CheckListBox>, <вторая выбранная строка из CheckListBox>, <третья выбранная строка из CheckListBox>, ...)

    Или такая задача как-то по другому решается?

    Заранее спасибо за ответ.
  • отредактировано 16:47
    snopov написал: »
    А каким образом передать эти несколько строк параметром в запрос?
    Чтобы запрос принял примерно такой вид: select * from table where col_1 in (<первая выбранная строка из CheckListBox>, <вторая выбранная строка из CheckListBox>, <третья выбранная строка из CheckListBox>, ...)
    Сначала нужно в CheckListBox добавить (Items.Add) значения из какого-нибудь датасета, например на событии DialogPage1OnShow.
    А проверка осуществляеться по свойству checked, например
    if CheckListBox.Checked[<Line#> - 1] then
    MasterData1.Visible := True else
    MasterData1.Visible := False;
  • FokewolfFokewolf Киев
    отредактировано 16:47
    snopov написал: »
    Можно и его, если это единственный вариант.

    А каким образом передать эти несколько строк параметром в запрос?
    Чтобы запрос принял примерно такой вид: select * from table where col_1 in (<первая выбранная строка из CheckListBox>, <вторая выбранная строка из CheckListBox>, <третья выбранная строка из CheckListBox>, ...)

    Или такая задача как-то по другому решается?

    Заранее спасибо за ответ.
    Добавляем строки :
    CheckListBox1.Items.AddObject(то что будет отображаться, TObject(ссылка на поле-ключ записи))
    

    Собираем строку для запроса:
    For i:=0 to CHeckListBox1.Items.Count-1 do
      begin
        If CheckListBox1.Checked[i] then
          begin
            str_sql:=str_sql+vartostr(CheckListBox1.Items.Objects[i])+',';
          end;
      end;
      str_sql:=Copy(str_sql,1,Length(str_sql)-1);
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.