Topic: Ассоциативный выбор в ComboBox из Edit

Согласен, тему назвал криво.
Что имеем:
Форма добавления материала, на ней имеем ComboBox1, в котором можем выбрать значения:
Артикул 1
Артикул 2
Артикул 3

Так же имеется Edit1, который осуществляет быстрый поиск по ComboBox1.
(То есть при вводе в Edit1 слова "Артикул1" в ComboBox1 автоматически выбирается Артикул1)

Однако, данные в Edit1 вводятся не вручную, а автоматически загружаются из кода HTML
( http://myvisualdatabase.com/forum/viewtopic.php?id=2896 )
и имеют несколько другой вид.
То есть значение, подразумевающее под собой "Артикул 1" подружается из кода как, допустим, "Рыба".

Что необходимо:

Прописать где-либо в скрипте следующую "формулу":
Если значение в Edit1 = 'Рыба'
Тогда в ComboBox1 выбирается значение = 'Артикул 1'

Надеюсь, максимально подробно описал желаемое, надеюсь на помощь.
P.S. Понимаю, что проще изменить сами значения в ComboBox, но это, к сожалению, не выход.

Re: Ассоциативный выбор в ComboBox из Edit

Приведите пожалуйста ваш код, который осуществляет поиск в ComboBox

Dmitry.

Re: Ассоциативный выбор в ComboBox из Edit

Код не мой, взял его из Вашего примера:

procedure frmAddNewObject_Edit3_OnChange (Sender: string);
begin

    frmAddNewObject.ComboBox2.dbFilter := 'type LIKE "%'+ frmAddNewObject.Edit3.Text +'%"';
    UpdateDatabase('type');

    if frmAddNewObject.ComboBox2.Items.Count = 2 then
    begin
        frmAddNewObject.ComboBox2.DroppedDown:=False;
        frmAddNewObject.ComboBox2.ItemIndex := 1;
    end else frmAddNewObject.ComboBox2.DroppedDown:=True;


end;

Re: Ассоциативный выбор в ComboBox из Edit

Сделал для вас пример, ассоциации задаются в скрипте, но по хорошему лучше сделать возможность создавать ассоциации в базе.


скрипт:

procedure Form1_edGroupSearch_OnChange (Sender: string);
begin
    Form1.cbGroups.dbFilter := 'groupname LIKE "%'+ Form1.edGroupSearch.Text +'%"';
    UpdateDatabase('groups');

    if Form1.cbGroups.Items.Count = 2 then
    begin
        Form1.cbGroups.DroppedDown:=False;
        Form1.cbGroups.ItemIndex := 1;
    end else Form1.cbGroups.DroppedDown:=True;

    if Form1.cbGroups.Items.Count = 1 then
    begin
        if (LowerCase(Form1.edGroupSearch.Text) = 'дом') or
           (LowerCase(Form1.edGroupSearch.Text) = 'хата') then
        begin
            Form1.cbGroups.dbFilter := '';
            UpdateDatabase('groups');
            Form1.cbGroups.DroppedDown:=False;
            Form1.cbGroups.dbItemID := 1;
        end;

        if (LowerCase(Form1.edGroupSearch.Text) = 'работа') then
        begin
            Form1.cbGroups.dbFilter := '';
            UpdateDatabase('groups');
            Form1.cbGroups.DroppedDown:=False;
            Form1.cbGroups.dbItemID := 2;
        end;


        if (LowerCase(Form1.edGroupSearch.Text) = 'друг') or
           (LowerCase(Form1.edGroupSearch.Text) = 'кореш') or
           (LowerCase(Form1.edGroupSearch.Text) = 'друган') then
        begin
            Form1.cbGroups.dbFilter := '';
            UpdateDatabase('groups');
            Form1.cbGroups.DroppedDown:=False;
            Form1.cbGroups.dbItemID := 3;
        end;


    end;

end;



Проект:

Post's attachments

Attachment icon Search in ComboBox - Phone Book - ассоциации.zip 57.51 kb, 374 downloads since 2016-12-08 

Dmitry.

Re: Ассоциативный выбор в ComboBox из Edit

Спасибо! Скажите, а почему по-хорошему лучше в базе?
Кстати, навело на новый вопрос, создам новую тему, пожалууй.