#include "manger.h"
#include "ui_manger.h"
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QDebug>
#include <QString>
#include <QMessageBox>
#include <QItemSelectionModel>
#include <QDateTime>
//打印头文件
#include <QPrinter>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#include <QFileDialog>
#include <QFileInfo>
#include <QPageSetupDialog>
#include <QDialog>
#include <QPrinter>
QString senddata;
QString linediname;
manger::manger(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::manger)
{
ui->setupUi(this);
QSqlDatabase db;
if (QSqlDatabase::contains("qt_sql_default_connection"))
{
db = QSqlDatabase::database("qt_sql_default_connection");
}
else
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("../hospmanger.db");
}
if(!db.open())
qDebug()<<"数据库打开失败!";
else
qDebug()<<"数据库打开成功!";
QSqlQueryModel *queryModel = new QSqlQueryModel(this); //新建模型
queryModel->setQuery("select dname from doctor");//SQL语句4
ui->comboBoxdoctor->setModel(queryModel);
//linediname=QString ("%1").arg(ui->lineEditnum->text());
QSqlQueryModel *queryModel1 = new QSqlQueryModel(this); //新建模型
queryModel1->setQuery("select dname from doctor");//SQL语句4
ui->comboBoxdoc->setModel(queryModel1);
QSqlQueryModel *queryModel2 = new QSqlQueryModel(this); //新建模型
queryModel2->setQuery("select dname from doctor");//SQL语句4
ui->comboBoxdoc_3->setModel(queryModel2);
ui->lineEditdid->setEnabled(false);
ui->lineEdit_dp->setEnabled(false);
ui->lineEdit_dm->setEnabled(false);
ui->lineEdit_yp->setEnabled(false);
ui->lineEdit_ym->setEnabled(false);
ui->lineEditpid->setEnabled(false);
ui->lineEdit_peo->setEnabled(false);
ui->lineEdit_mon->setEnabled(false);
ui->lineEdit_ypeo->setEnabled(false);
ui->lineEdit_ymon->setEnabled(false);
ui->pushButtonpro->setEnabled(false);
ui->pushButton_3->setEnabled(false);
//疗程管理
ui->lineEdit_peopid->setEnabled(false);
ui->lineEdit_peopname->setEnabled(false);
ui->lineEdit_peopay->setEnabled(false);
ui->lineEdit_peocount->setEnabled(false);
ui->lineEdit_peopromon->setEnabled(false);
ui->lineEdit_peopromoney->setEnabled(false);
ui->lineEdit_pcount->setEnabled(false);
ui->spinBox->setEnabled(false);
ui->textEditprogram->setEnabled(false);
ui->lineEdit_time->setEnabled(false);
ui->lineEdit_docs->setEnabled(false);
ui->pushButton_peopro->setEnabled(false);
ui->pushButtonpeopromoney->setEnabled(false);
connect(ui->pushButton_dpv,SIGNAL(clicked()),this,SLOT(doPrintPreview()));
connect(ui->pushButton_dp,SIGNAL(clicked()),this,SLOT(doPrint()));
}
manger::~manger()
{
delete ui;
}
void manger::on_pushButtonpro_clicked()
{
senddata=QString ("%1").arg(ui->lineEditpid->text());
p.show();
}
void manger::on_pushButton_3_clicked()
{
senddata=QString ("%1").arg(ui->lineEditpid->text());
p1.show();
}
//病人管理
void manger::on_pushButton_4_clicked()
{
QString pid=QString ("INSERT INTO patient (pid,paytime) VALUES (null,date('now'));");
QSqlQuery query;
query.exec(pid);
QSqlQuery query1;
QString sql1 ="select pid from patient order by pid desc limit 1 ";
query1.exec(sql1);
while(query1.next()){
QString pid1 = query1.value("pid").toString();
//QMessageBox::information(this,"结果",pid1);
ui->lineEditpid->setText(pid1);}
ui->pushButtonpro->setEnabled(false);
ui->pushButton_3->setEnabled(false);
ui->pushButtonpsure->setText("确认挂号");
}
void manger::on_pushButtonpsure_clicked()
{
//QString pid=ui->lineEditnum->text();
QString pname=ui->lineEditname->text();
QString tel=ui->lineEdittel->text();
QString age=ui->lineEditage->text();
QString pidcard=ui->lineEditidcard->text();
QString add=ui->lineEditadd->text();
QString sex=ui->comboBoxsex->currentText();
QString marry=ui->comboBoxmarry->currentText();
QString doc=ui->comboBoxdoctor->currentText();
QString other=ui->textEdit->toPlainText();
QString sql1 ="select pid from patient order by pid desc limit 1 ";
QSqlQuery query1;
query1.exec(sql1);
while(query1.next())
{QString pid1 = query1.value("pid").toString();
QString pinfo = QString ("UPDATE patient SET pname ='%1',sex = '%2',age ='%3',idcard ='%4',tel ='%5',address ='%6',marry ='%7',doc = '%8',other ='%10' WHERE pid = '%12';")
.arg(pname).arg(sex).arg(age).arg(pidcard).arg(tel).arg(add).arg(marry).arg(doc).arg(other).arg(pid1);
QSqlQuery query;
if(query.exec(pinfo))
{
QMessageBox::information(this,"结果","添加成功");
//ui->lineEditnum->clear();
ui->lineEditname->clear();
ui->lineEdittel->clear();
ui->lineEditage->clear();
ui->lineEditidcard->clear();
ui->lineEditadd->clear();
ui->textEdit->clear();
}
else
{
QMessageBox::information(this,"结果","添加失败,请重新输入");
}
ui->pushButtonpro->setEnabled(true);
ui->pushButton_3->setEnabled(true);
ui->pushButtonpsure->setText("确认添加");
}}
void manger::on_pushButtonpcancel_clicked()
{
//ui->lineEditnum->clear();
ui->lineEditname->clear();
ui->lineEdittel->clear();
ui->lineEditage->clear();
ui->lineEditidcard->clear();
ui->lineEditadd->clear();
ui->textEdit->clear();
}
void manger::on_tabWidget_2_tabBarClicked(int index)
{
model =new QSqlTableModel(this);
model->setTable("patient");
model->setHeaderData(0,Qt::Horizontal,"病人编号");
model->setHeaderData(1,Qt::Horizontal,"姓名");
model->setHeaderData(10,Qt::Horizontal,"性别");
model->setHeaderData(11,Qt::Horizontal,"年龄");
model->setHeaderData(12,Qt::Horizontal,"身份证号");
model->setHeaderData(13,Qt::Horizontal,"电话");
model->setHeaderData(14,Qt::Horizontal,"地址");
model->setHeaderData(15,Qt::Horizontal,"婚姻状况");
model->setHeaderData(7,Qt::Horizontal,"治疗医生");
model->setHeaderData(9,Qt::Horizontal,"治疗项目");
model->setHeaderData(4,Qt::Horizontal,"项目费用");
model->setHeaderData(2,Qt::Horizontal,"总缴费");
model->setHeaderData(5,Qt::Horizontal,"治疗次数");
model->setHeaderData(6,Qt::Horizontal,"缴费状况");
model->setHeaderData(8,Qt::Horizontal,"缴费时间");
model->setHeaderData(16,Qt::Horizontal,"备注");
model->setHeaderData(3,Qt::Horizontal,"剩余费用");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
if( model->select())
ui->tableViewp1->setModel(model);
else
QMessageBox::information(this, "结果", "连接数据库失败!");
}
void manger::on_comboBoxdoctor_currentIndexChanged(const QString &arg1)
{
QSqlQuery query;
QString sql = QString("select dname from doctor where dname='%2'").arg(arg1);
query.exec(sql);
}
void manger::on_pushButtonpsel_clicked()
{
QString pid= ui->lineEdit->text();
QString str = QString("pid=%1").arg(pid);
model->setFilter(str);
model->select();
if(model->select())
ui->tableViewp1->setModel(model);
else
QMessageBox::information(this, "结果", "连接数据库失败!");
}
void manger::on_pushButtonpsure2_clicked()
{
QMessageBox::information(this, "结果", "修改成功!");
model->submitAll();
}
void manger::on_pushButtonpcancle2_clicked()
{
model->revertAll();
model->submitAll();
}
void manger::on_tabWidget_2_tabBarDoubleClicked(int index)
{
model =new QSqlTableModel(this);
model->setTable("patient");
model->setHeaderData(0,Qt::Horizontal,"病人编号");
model->setHeaderData(1,Qt::Horizontal,"姓名");
model->setHeaderData(10,Qt::Horizontal,"性别");
model->setHeaderData(11,Qt::