На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF
  
> Delphi: Заолнение ComboBoxa возможн. знач.
    Есть куча ComboBox для ввода новых записей в таблицу...
    в них в каждом надо отображать возможные поля для ввода, эти возможные поля должны браться из базы (соотв. столбцу).
    Занесли новое поле в таблицу--->отображение в в ожможных знач. ComboBoxa.

    Вот такая задача. Я ее реализ считываением пробежкой по всей базе, занесением в Тстринг и убиранием дубликатов.
    НО, этот процесс занимает достаточно много времени, да и к тому же по каждому расхлапыванию коба не будеш же заново бегать по всей таблице и искать что добавилось....
    Кто что может предложить... у кого какие наработки.

    Мой исходник этой операции:

    var Sl:TStringList;
    begin

     Sl:=TStringList.Create;

     MasVT.DisableControls;  
     BMVT:=MasVT.GetBookmark;  //Ñïèñîê Ïðåäïðèÿòèé â CBVT  ...
     MasVT.First;
      while not MasVT.Eof do
       begin
        CBVT1.Items.Add(MasVT.FieldByName('PR').AsString);
        CBVT2.Items.Add(MasVT.FieldByName('PS').AsString);
        CBVT3.Items.Add(MasVT.FieldByName('DN').AsString);
        CBVT4.Items.Add(MasVT.FieldByName('TIP').AsString);
        CBVT5.Items.Add(MasVT.FieldByName('ZN').AsString);
        .....
        MasVT.next;
      end;
     MasVT.GotoBookmark(BMVT); //Ïåðåõîäèì ïî çàêë.
     MasVT.FreeBookmark(BMVT);
     MasVT.EnableControls;

     With Sl Do
     try
      Sorted:=True;
      Duplicates:=dupIgnore;
      Sl.Assign(CBVT1.Items);     CBVT1.Items.Assign(Sl);   //Î÷èùåàì â VT
      Sl.Assign(CBVT2.Items);     CBVT2.Items.Assign(Sl);
      Sl.Assign(CBVT3.Items);     CBVT3.Items.Assign(Sl);
      Sl.Assign(CBVT4.Items);     CBVT4.Items.Assign(Sl);
      Sl.Assign(CBVT5.Items);     CBVT5.Items.Assign(Sl);
      .....
     finally
      Free;
     end;
    Сообщение отредактировано: vot -
      Я конечно может быть чего не понял, но не проще ли использовать компонент DBComboBox из вкладки DataControls. Там указываешь DataSource (источник-таблица) и DataField (поле из которого выбираются значения). Причем все это работает еще на стадии разработки  :).
        Цитата OlegF, 28.01.03, 14:05:02
        Я конечно может быть чего не понял, но не проще ли использовать компонент DBComboBox из вкладки DataControls. Там указываешь DataSource (источник-таблица) и DataField (поле из которого выбираются значения). Причем все это работает еще на стадии разработки  :).

        Как по мне, дык ответ исчерпывающий.......зачем колесо изобретать???
          Да неее....  этот DBCombo привязан к базе, а у меня просто ComboBox и к тому же список то в этих DBCombo все равно надо программно заполнять (автоматом же нет),а для этого все равно надо каждый раз по таблицам бегать....
          или я что недопонимаю?
            Есть возможность завязать таблицу со справочником в дата модуле, и подцепить к справочнику комбобокс, (ели просчитал кол-во бо :))
              DBLookupComboBox и DBLookupListBox и их аналоги из RxLib как раз для того и предназначены, чтобы данные из одного датасета можно можно было вставлять в другой (с постановкой или без)... В простейшем случае ни одной строчки текста не требуется...

              Изобретаем велосипед ? ;-)
                вообще-то DBComboBox для того и сделан, чтобы его не заполнять ручками.
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0685 ]   [ 16 queries used ]   [ Generated: 24.04.24, 04:04 GMT ]