#include "gk_page_quality_datareport.h"
#include "ui_gk_page_quality_datareport.h"
#include <QTableWidgetItem>
#include <QHeaderView>
CDataReport::CDataReport(QWidget *parent) :
QWidget(parent),
ui(new Ui::CDataReport)
{
ui->setupUi(this);
SetSql();
// for(int i = 0; i<150; i++)
// {
// AddDataToSql(i,2,4444,1111,2222,3333,555,111,65535); //模拟产生数据
// }
SetParameter();
connect(ui->btn1,SIGNAL(clicked()),this,SLOT(slotBtnUp()));
connect(ui->btn2,SIGNAL(clicked()),this,SLOT(slotBtnDown()));
connect(ui->btn3,SIGNAL(clicked()),this,SLOT(slotBtnTop()));
connect(ui->btn4,SIGNAL(clicked()),this,SLOT(slotBtnBottom()));
}
CDataReport::~CDataReport()
{
delete ui;
}
void CDataReport::SetParameter()
{
QPalette pe;
pe.setColor(QPalette::ButtonText,Qt::white);
ui->btn1->setPalette(pe);
ui->btn1->setAutoDefault(true);
ui->btn1->setDefault(false);
ui->btn2->setPalette(pe);
ui->btn2->setAutoDefault(true);
ui->btn2->setDefault(false);
ui->btn3->setPalette(pe);
ui->btn3->setAutoDefault(true);
ui->btn3->setDefault(false);
ui->btn4->setPalette(pe);
ui->btn4->setAutoDefault(true);
ui->btn4->setDefault(false);
QSqlQuery query;
query.exec("select *from phonebook");
// static QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);
// model->setQuery(QString("select * from phonebook;"));
// QSqlTableModel *model = new QSqlTableModel(this);
CSqlTableModel *model = new CSqlTableModel(this);
model->setTable("phonebook"); //设置"student"的数据库表格
model->setEditStrategy(QSqlTableModel::OnManualSubmit);//设置保存策略为手动提交
model->setSort(0, Qt::DescendingOrder); //第0行按降序排列
model->select(); //选取整个表的所有行
// model->sort(0, Qt::DescendingOrder); //设置排序方式,按第3列降序显示
model->setHeaderData(0,Qt::Horizontal,QObject::tr("1"));
model->setHeaderData(1,Qt::Horizontal,QObject::tr("2"));
model->setHeaderData(2,Qt::Horizontal,QObject::tr("3"));
model->setHeaderData(3,Qt::Horizontal,QObject::tr("4"));
model->setHeaderData(4,Qt::Horizontal,QObject::tr("5"));
model->setHeaderData(5,Qt::Horizontal,QObject::tr("6"));
model->setHeaderData(6,Qt::Horizontal,QObject::tr("7"));
model->setHeaderData(7,Qt::Horizontal,QObject::tr("8"));
model->setHeaderData(8,Qt::Horizontal,QObject::tr("9"));
ui->tableView->setModel(model);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选择整行的方式
ui->tableView->verticalHeader()->hide(); //默认显示行头,这里设置为隐藏
ui->tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条
ui->tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);//使列完全填充并平分
ui->tableView->horizontalHeader()->setFont(QFont("微软雅黑",10)); //设置标题的字体
ui->tableView->horizontalHeader()->setStyleSheet("QHeaderView::section {background-color:rgb(119,149,159);"
"color: white;}");
// ui->tableView->resizeColumnsToContents(); //自动调整列宽
// ui->tableView->resizeRowsToContents(); //自动调整行高
// ui->tableView->setColumnWidth(0,70); //设置第一列的宽度为100
}
//多语言,语言的改变事件
void CDataReport::changeEvent(QEvent *e)
{
}
//创建数据库
void CDataReport::SetSql()
{
//指明数据库驱动类型
QSqlDatabase *db = new QSqlDatabase;
*db= QSqlDatabase::addDatabase ( "QSQLITE" ) ;
//设置数据库文件名,在上一步已创建
db->setDatabaseName ("contact.db") ;
if (! db->open ())
{
qDebug()<<"open error!"<<endl;
return; //打开失败
}
QSqlQuery query;
// query.exec ( "CREATE TABLE phonebook ( ProductNo int , ProductPeriod VARCHAR (10) , TimInjectP VARCHAR (10) \
// , PosInjectPEnd VARCHAR (10) , PosKpPressEnd VARCHAR (10) , PosMeltPEnd VARCHAR (10) \
// , PosInjectPStart VARCHAR (10) , PosOpnModEnd VARCHAR (10), iRev VARCHAR (10))" ) ;
query.exec ( "CREATE TABLE phonebook ( ProductNo int , ProductPeriod int , TimInjectP int \
, PosInjectPEnd int , PosKpPressEnd int , PosMeltPEnd int \
, PosInjectPStart int , PosOpnModEnd int, iRev int)" ) ;
// query.exec ( "INSERT INTO phonebook VALUES ( 001110001, 12123,121, 121211111111113,121, 12123,121, 12123,121 )") ;
}
// 往数据库里添加数据
bool CDataReport::AddDataToSql(XU16 iProductNo, XU16 iProductPeriod, XU16 iTimInjectP, XU16 iPosInjectPEnd, XU16 iPosKpPressEnd, XU16 iPosMeltPEnd, XU16 iPosInjectPStart, XU16 iPosOpnModEnd, XU16 iRev)
{
QSqlQuery query;
//int ProductNo = iProductNo;
QString ProductNo = QString::number(iProductNo,10);
QString ProductPeriod = QString::number(iProductPeriod);
QString TimInjectP = QString::number(iTimInjectP);
QString PosInjectPEnd = QString::number(iPosInjectPEnd);
QString PosKpPressEnd = QString::number(iPosKpPressEnd);
QString PosMeltPEnd = QString::number(iPosMeltPEnd);
QString PosInjectPStart = QString::number(iPosInjectPStart);
QString PosOpnModEnd = QString::number(iPosOpnModEnd);
QString Rev = QString::number(iRev);
// bool b = query.exec ( "INSERT INTO phonebook VALUES( ' "+ProductNo+" ', '"+ProductPeriod+"', '"+TimInjectP+"' ,'"+PosInjectPEnd+"', '"+PosKpPressEnd+"', '"+PosMeltPEnd+"','"+PosInjectPStart+"', '"+PosOpnModEnd+"', '"+Rev+"' )") ;
bool b = query.exec ( "INSERT INTO phonebook VALUES( "+ProductNo+" , "+ProductPeriod+", "+TimInjectP+" ,"+PosInjectPEnd+", "+PosKpPressEnd+", "+PosMeltPEnd+","+PosInjectPStart+", "+PosOpnModEnd+", "+Rev+" )") ;
return b;
}
void CDataReport::slotBtnUp()
{
int maxValue = ui->tableView->verticalScrollBar()->maximum(); // 当前SCROLLER最大显示值25
int nCurScroller = ui->tableView->verticalScrollBar()->value(); //获得当前scroller值
if(nCurScroller>0)
ui->tableView->verticalScrollBar()->setSliderPosition(nCurScroller-15);
else
ui->tableView->verticalScrollBar()->setSliderPosition(0);
ui->lineEdit->setText(QString::number(maxValue-nCurScroller+15));
}
void CDataReport::slotBtnDown()
{
int maxValue = ui->tableView->verticalScrollBar()->maximum(); // 当前SCROLLER最大显示值25
int nCurScroller = ui->tableView->verticalScrollBar()->value(); //获得当前scroller值
if(nCurScroller<maxValue)
ui->tableView->verticalScrollBar()->setSliderPosition(15+nCurScroller);
else
ui->tableView->verticalScrollBar()->setSliderPosition(maxValue);
ui->lineEdit->setText(QString::number(maxValue-nCurScroller));
}
void CDataReport::slotBtnTop()
{
ui->tableView->verticalScrollBar()->setSliderPosition(0);
}
void CDataReport::slotBtnBottom()
{
int maxValue = ui->tableView->verticalScrollBar()->maximum(); // 当前SCROLLER最大显示值25
ui->tableView->verticalScrollBar()->setSliderPosition(maxValue);
}