Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление строки, в грид 
:(
    Опции темы
Лена
Дата 9.11.2007, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



В гриде есть колонка, сформированная на связях таблиц и представляющая собой выпадающий список (fkLookup). Пользователь выбирает из выпадающего списка в этой колонке нужное значение.
Дополнительно на другой форме есть ComboBox, который содержит значения из выпадающего списка. Оба списка идентичны. 
Например, я хочу добавить в грид строку программно, но значение в колонку, где выпадающий список занести не выбором пользователя в этой колонке, а значением из ComboBox. Так не заполняет:
Код

DataModule2->ClientDataSet1->Append();
DataModule2->ClientDataSet1->FieldByName("post")->AsString = Edit4->Text; //нормально

//для колонки с выпадающим списком строка ниже не работает:
DataModule2->ClientDataSet1->FieldByName("name")->AsString = ComboBox1->Text;

DataModule2->ClientDataSet1->ApplyUpdates(-1);


Как быть в этом случае?

Это сообщение отредактировал(а) Лена - 9.11.2007, 19:15
PM MAIL   Вверх
Rodman
Дата 9.11.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Цитата(Лена @  9.11.2007,  18:39 Найти цитируемый пост)
//для колонки с выпадающим списком строка ниже не работает:

не работает как? не присваивается или не выбирается?

Добавлено через 9 минут и 16 секунд
Цитата(Лена @  9.11.2007,  18:39 Найти цитируемый пост)
DataModule2->ClientDataSet1->ApplyUpdates(-1);

Код

ClientDataSet1.Post;
попробуй
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Лена
Дата 9.11.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Цитата(Rodman @  9.11.2007,  18:46 Найти цитируемый пост)
не работает как? не присваивается или не выбирается? 


Выбираю в ComboBox значение. Жму на кнопку вижу что создана новая строка в гриде, но в колонке где выпадающий список пусто. Внести в нее значение получается если нажать на строке в гриде и выбрать значение, а мне надо программно занести.
Другие колонки где нет выпадающего списка заполняются нормально. 



Это сообщение отредактировал(а) Лена - 9.11.2007, 18:57
PM MAIL   Вверх
Rodman
Дата 9.11.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



а покажи настройки своего ClientDataSet1... мне интересны поля name и post....

ЗЫ: name и post - зарезервированные слова... может в этом и кроется причина!!!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Лена
Дата 9.11.2007, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Цитата(Rodman @  9.11.2007,  19:43 Найти цитируемый пост)
name и post - зарезервированные слова... может в этом и кроется причина


Нет там другие имена, это для форума я их сократила. Реальное имя поля с выпадающим списком orgname.

Наверное надо так мне вопрос сформулировать:
Есть поле в гриде в виде выпадающего списка (fkLookup) сформированное на связи таблиц. Пользователь щелчком мыши может выбирать значения в этом поле через его выпадающий список.
Допустим, в этом поле присутствую несколько записей:
Запись№1
Запись№2
Запись№3
И т.д.
Пусть в поле выбрана Запись№1. Как программно, не щелкая на списке мышью, выбрать например Запись№3 ?

P.S.
Если это можно сделать, то я просто буду видеть какое значение выбрано в ComboBox и тогда программно выберу его в колонке грида, ведь выпадающий список колонки одинаков со списком в ComboBox.
Правильно думаю?  smile 
PM MAIL   Вверх
Rodman
Дата 9.11.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Цитата(Лена @  9.11.2007,  19:50 Найти цитируемый пост)
не щелкая на списке мышью, выбрать например Запись№3 ?

ClientDataset->Last
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Лена
Дата 9.11.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 879
Регистрация: 16.8.2006

Репутация: 11
Всего: 11



Вообщем выяснилась такая странная вещь, которую не знаю как победить.
Грид имеет два поля fkLookup с выпадающими списками и несколько обыкновенных полей.
Если не заполнять обыкновенные поля, то код работает:
Код

DataModule2->ClientDataSetVis->Append();
  DataModule2->ClientDataSetVis->FieldByName("orgname")->AsString = ComboBox2->Text;
  DataModule2->ClientDataSetVis->FieldByName("groupname")->AsString = ComboBox1->Text;


Вижу что в полях подстановки появились записи из комбобоксов. Но если написать так:
Код

DataModule2->ClientDataSetVis->Append();
  DataModule2->ClientDataSetVis->FieldByName("orgname")->AsString = ComboBox2->Text;
  DataModule2->ClientDataSetVis->FieldByName("groupname")->AsString = ComboBox1->Text;
//заполняю еще одно простое поле
DataModule2->ClientDataSetVis->FieldByName("firstname")->AsString = Edit2->Text;


То теперь вижу после выполнения кода, что firstname заполнился в гриде, а поля orgname и groupname становтся пустыми. Почему это происходит?

Стоит закомментировать строку:
DataModule2->ClientDataSetVis->FieldByName("firstname")->AsString = Edit2->Text; и все становиться нормально.  smile 
Как же заполнить все строки?

PM MAIL   Вверх
Rodman
Дата 10.11.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Цитата(Лена @  9.11.2007,  21:47 Найти цитируемый пост)
Как же заполнить все строки?

если можешь выложи - я гляну.

или:
1. добавляй одно поле а потом добавляй остальные обновлением последней записи
2. другие компоненты используй..

пока все что могу сказать по увиденому!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.