Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QSqlRelationalTableModel
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
NetWorm
Вопрос простой! Вобщем делаю так
    _model = new QSqlRelationalTableModel;
   _model->setTable(_t_dogovori);
   _model->setRelation(1,QSqlRelation(_nomenklatura,"id","name"));
   _model->setRelation(3,QSqlRelation(_objects,"id","name"));
   _model->setFilter("parent = " + QString::number(_ID));
   _model->select();
   _model->setHeaderData(1,Qt::Horizontal,QObject::tr("Наименование"));
   _model->setHeaderData(3,Qt::Horizontal,QObject::tr("Объект"));


Но потом мне необходимо получить значение в колонке 1.
Я делаю так.
_model->itemData(_model->index(index.row(),1)).value(0).toInt();


Но получается что эта строчка возвращает не id, а возвращает name.
Как мне с таким бороться??
maint
Цитата(NetWorm @ 25.11.2012, 19:09) *
Вопрос простой! Вобщем делаю так
    _model = new QSqlRelationalTableModel;
   _model->setTable(_t_dogovori);
   _model->setRelation(1,QSqlRelation(_nomenklatura,"id","name"));
   _model->setRelation(3,QSqlRelation(_objects,"id","name"));
   _model->setFilter("parent = " + QString::number(_ID));
   _model->select();
   _model->setHeaderData(1,Qt::Horizontal,QObject::tr("Наименование"));
   _model->setHeaderData(3,Qt::Horizontal,QObject::tr("Объект"));


Но потом мне необходимо получить значение в колонке 1.
Я делаю так.
_model->itemData(_model->index(index.row(),1)).value(0).toInt();


Но получается что эта строчка возвращает не id, а возвращает name.
Как мне с таким бороться??

правильно делает, что возвращает name. Вы сами назначили _model->setRelation(1,QSqlRelation(_nomenklatura,"id","name")); что должно быть в модели
NetWorm
Цитата(maint @ 25.11.2012, 16:53) *
Цитата(NetWorm @ 25.11.2012, 19:09) *
Вопрос простой! Вобщем делаю так
    _model = new QSqlRelationalTableModel;
   _model->setTable(_t_dogovori);
   _model->setRelation(1,QSqlRelation(_nomenklatura,"id","name"));
   _model->setRelation(3,QSqlRelation(_objects,"id","name"));
   _model->setFilter("parent = " + QString::number(_ID));
   _model->select();
   _model->setHeaderData(1,Qt::Horizontal,QObject::tr("Наименование"));
   _model->setHeaderData(3,Qt::Horizontal,QObject::tr("Объект"));


Но потом мне необходимо получить значение в колонке 1.
Я делаю так.
_model->itemData(_model->index(index.row(),1)).value(0).toInt();


Но получается что эта строчка возвращает не id, а возвращает name.
Как мне с таким бороться??

правильно делает, что возвращает name. Вы сами назначили _model->setRelation(1,QSqlRelation(_nomenklatura,"id","name")); что должно быть в модели


И как же мне вернуть именно id??????????????
Trisch
На сколько я понял id находится в колонке с индексом "0", а вы делаете запрос в колонке с индексом "1".
NetWorm
Цитата(Trisch @ 26.11.2012, 2:04) *
На сколько я понял id находится в колонке с индексом "0", а вы делаете запрос в колонке с индексом "1".


Нет в 0 хранится id текущей таблицы. А мне надо выполнить обратное действие... т.е. из 4 колонки получить id таблицы s_nomenklatura
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.