crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSqlQueryModel, QTableView, фильтрация
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Rigat Дата 4.6.2010, 15:31
 
Цитата(MoPDoBoPoT @ 3.6.2010, 11:18) *
А если так:
model->query().record().fieldName(index);

?

Вот это то, что нужно. Спасибо!
MoPDoBoPoT Дата 3.6.2010, 11:18
  А если так:
model->query().record().fieldName(index);

?
Rigat Дата 3.6.2010, 5:44
 
Цитата
так и не понял о чём речь, то ли о представлении (QTableView), то ли о таблице-виджете (QTableWidget)

Речь не о QTableView и не о QTableWidget, а о реализации фильтрации.

Нашел нужную функцию
model->headerData(0, Qt::Horizontal, 0).toString()
так он выдает имя первого столбца, который называется "SName", но есть проблема если я задам новое имя столбца в модели
таким образом
model->setHeaderData(0, Qt::Horizontal, tr("Name"))
то он выдаст мне "Name", соответственно sql запрос типа "Select Name, FName..." не найдет столбец Name в таблице.
Litkevich Yuriy Дата 1.6.2010, 16:15
  так и не понял о чём речь, то ли о представлении (QTableView), то ли о таблице-виджете (QTableWidget)

Rigat Дата 1.6.2010, 15:39
  Подскажите ка вынуть из QTableView имя колонки в таблице?

Подробнее выглядит так:

model = new QSqlQueryModel(this);
query = "Select SName, FName, ClnName, Model.Model, Num from Client, KTM, Model where Client.ClnNo=KTM.ClnNo and KTM.Model=Model.ModelNo";
model->setQuery(query);
ui->tableView->setModel(model);


Для каждой колонки есть свой фильтр в ячейках QTableWidget, который пользователь вводит самостоятельно. Я хочу реализовать его примерно так (код не отлажен, могут быть ошибки):

void MainWindow::fnd(int col, int row)
{
    QString s;
    if (ui->tableWidget->item(col, row)->text() != "")
    {
        for (int i=0; i<ui->tableWidget->columnCount(); ++i)
        {
            if (ui->tableWidget->item(0,i)->text() != "")
            {
                s = s+" and"+ИМЯ_КОЛОНКИ+" Like '%"+ui->tableWidget->item(0,i)->text()+"%";
            }
        }
        model->setQuery(query+s);
    }
    else
    {
        model->setQuery(query);
    }
}

Вот мне надо узнать ИМЯ_КОЛОНКИ.
Или может кто знает другой способ как реализовать такую фильтрацию.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 5:06