crossplatform.ru

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


  Ответ в Горячий поиск
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 10 сообщений [ в обратном порядке ]
Stoptyssin Дата 14.3.2012, 20:57
  Сдела так, вроде работает

void PatPoisk::on_lEdPat_textChanged(QString )
{
if(ui->lEdPat->text().size() > 0) {
QString filter_query = ("Pat_F like '" + ui->lEdPat->text()+"%'");
model->setFilter(filter_query);

ui->tVPat->resizeColumnsToContents();
ui->tVPat->resizeRowsToContents();
}
if(ui->lEdPat->text().size() == 0)
{
model->setTable("Patient");
model->select();

model->setHeaderData(1, Qt::Horizontal, tr("Фамилия"));
model->setHeaderData(2, Qt::Horizontal, tr("Имя"));
model->setHeaderData(3, Qt::Horizontal, tr("Отчество"));

ui->tVPat->setModel(model);
ui->tVPat->setColumnHidden(0, true);
ui->tVPat->show();

}

}

правда коряво)))
Stoptyssin Дата 6.3.2012, 13:54
  Спасибо большое, буду пробовать. Сам уже подумал что через запрос легче будет )))
vankleef Дата 5.3.2012, 13:49
  Было такое у меня в каком-то проекте.
Вот такой конект в конструкторе:
connect(widget.criterylineEdit,SIGNAL(textEdited(const QString&)),this,SLOT(search(const QString&)));

И вот реализация слота поиска:
void resultForm::search(const QString& text){
    int index=widget.comboBox->currentIndex();
    switch(index){
        case 0:
            model->setQuery("SELECT fio,sernum,klass,discip,data,quA,quB FROM result WHERE fio LIKE '%"+text+"%'");
            widget.tableView->setModel(model);
            break;
        case 1:
            model->setQuery("SELECT fio,sernum,klass,discip,data,quA,quB FROM result WHERE klass LIKE '%"+text+"%'");
            widget.tableView->setModel(model);
            break;
        case 2:
            model->setQuery("SELECT fio,sernum,klass,discip,data,quA,quB FROM result WHERE sernum LIKE '%"+text+"%'");
            widget.tableView->setModel(model);
            break;
    }
    widget.tableView->resizeColumnsToContents();
    widget.tableView->resizeRowsToContents();
}


На int index=widget.comboBox->currentIndex(); не обращай внимания, это комбобокс, в котором указывается критерий, по которому надо искать (фамилия, серия/номер паспорта и тд)
Stoptyssin Дата 3.3.2012, 15:29
 
Цитата(MoPDoBoPoT @ 3.3.2012, 18:10) *
Мде...
"Pat_F = " + ui->lEdPat->text()


Попробовал. Не работает, не находит в БД.

Цитата(Stoptyssin @ 3.3.2012, 19:24) *
Цитата(MoPDoBoPoT @ 3.3.2012, 18:10) *
Мде...
"Pat_F = " + ui->lEdPat->text()


Попробовал. Не работает, не находит в БД.


я дебил! Все заработало, сори! Теперь проблема в другом: при повторном введении не происходит поиска. Т.е. если стереть в lEdPat, то не показывает полный список и если ввести другой Pat_Id - не происходит поиска по базе. Только если закрыть форму и открыть снова, тогда все норм.
MoPDoBoPoT Дата 3.3.2012, 14:10
  Мде...
"Pat_F = " + ui->lEdPat->text()
Stoptyssin Дата 3.3.2012, 8:22
 
Цитата(RazrFalcon @ 3.3.2012, 4:08) *
э...
почему не
QString filter_query = ui->lEdPat->text();
?
Что-то вы нагородили со скобками и кавычками


А в каком поле ему смотреть? Вы этого не указали - Pat_F - поэтому нужны кавычки, без них ошибка будет
RazrFalcon Дата 3.3.2012, 0:08
  э...
почему не
QString filter_query = ui->lEdPat->text();
?
Что-то вы нагородили со скобками и кавычками
Stoptyssin Дата 2.3.2012, 23:02
  Здравствуйте все! Задача такая: надо найти в БД строку по фамилии котрая вводится в QLineEdit. Информация отображается в QTableView. Вот код:

void PatPoisk::on_lEdPat_textChanged(QString )
{

QString filter_query = ("Pat_F = ui->lEdPat->text()");
model->setFilter(filter_query);
}

Если вместо ui->lEdPat->text() вводить фамилию, то все работает как часы.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 11:39