亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tableviewfilter.cpp

?? 跨平臺,多數據庫查看編輯和查詢工具,平臺支持windows,linux,數據庫支持oracle,odbc,mysql,slite等
?? CPP
字號:
#include <QtSql>
#include <QtDebug>
#include "tableviewfilter.h"
#include "tableview.h"

SpreadSheetDelegate::SpreadSheetDelegate(QObject *parent)
    : QItemDelegate(parent) 
{

}

/*
功能:將QSqlTableModel里的數據全部讀入mapValue中,按列存放
*/
void SpreadSheetDelegate::readValue()
{
	QMap <QString,int> map;
	TableView *tv=qobject_cast<TableView *>(parentWidget);
	
	mapValue.clear();
	for(int i=0;i<globalModel->record().count();i++)
	{
		if(tv && tv->isPasswordColumn(globalModel->record().field(i).name()))
		{
			QStringList list;
			mapValue.insert(i,list);

		}
		else{
			
		map.clear();
		for(int j=0;j<globalModel->rowCount();j++)
		{
			QString str=globalModel->data(globalModel->index(j,i)).toString();
			//qDebug()<<i<<j<<str;
			if(str.length())
			{
				
				map.insert(str,0);
			}
		}
		mapValue.insert(i,map.keys());
	  }
	}
}

QWidget *SpreadSheetDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem&,
    const QModelIndex &index) const
{
    QComboBox *editor = new QComboBox(parent);
    if(globalModel && editor)
    {
    	   editor->addItem("(全部)","");
    	   editor->addItem("(空值)","is null");
    	   editor->addItem("(非空值)","is not null");
    	   QStringList list=mapValue.value(index.column());
    	   foreach(QString str,list)
    	   {
    	   	editor->addItem(str,str);
    	   }

    }
    connect(editor, SIGNAL(currentIndexChanged ( const QString &)), this, SLOT(commitAndCloseEditor( const QString &)));
    return editor;
}

void SpreadSheetDelegate::commitAndCloseEditor( const QString &)
{
	
    QLineEdit *editor = qobject_cast<QLineEdit *>(sender());
    emit commitData(editor);
    emit closeEditor(editor);
  
}

void SpreadSheetDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
{
    QComboBox *edit = qobject_cast<QComboBox *>(editor);
    if (edit) 
    {
        int i=edit->findText(index.model()->data(index, Qt::EditRole).toString());
        edit->setCurrentIndex(i);
    }
    
}

void SpreadSheetDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
    const QModelIndex &index) const
{
    QComboBox *edit = qobject_cast<QComboBox *>(editor);
    if (edit) 
    {
        model->setData(index, edit->currentText());
    }
}


TableViewFilter::TableViewFilter(QWidget *parent ,QSqlTableModel *modelparm):QDialog(parent)
{
	globalModel=0;
	delegate=0;
	tableWidget=new QTableWidget(this);
	connect(tableWidget,SIGNAL(itemChanged ( QTableWidgetItem *)),this,SLOT(tableChanged ( QTableWidgetItem *)));
	connect(tableWidget,SIGNAL(currentItemChanged ( QTableWidgetItem * , QTableWidgetItem * )),this,SLOT(itemChanged ( QTableWidgetItem * , QTableWidgetItem * )));
	
	QVBoxLayout *layout=new QVBoxLayout(this);
	layout->addWidget(tableWidget);
	
	setLayout(layout);	
	layout->setContentsMargins(0,0,0,0);
	tableWidget->insertRow(0);
	
	if(modelparm)
	{
		globalModel=modelparm;	
		for(int i=0;i<globalModel->record().count();i++)
	  {
		  tableWidget->insertColumn(i);
		  QString strItem=globalModel->headerData(i,Qt::Horizontal).toString();
		  mapField.insert(i,strItem);
		  mapFieldName.insert(i,globalModel->record().field(i).name());
		  tableWidget->setHorizontalHeaderItem(i, new QTableWidgetItem(strItem));
		  //tableWidget->setItem(0,i,new QTableWidgetItem());
		}			  
	  delegate=new SpreadSheetDelegate(tableWidget);
	  delegate->globalModel=globalModel;
	  delegate->parentWidget=parent;
    tableWidget->setItemDelegate(delegate);	
    delegate->readValue();
  }  



  setWindowFlags(Qt::Tool);

	setMinimumWidth(600);
	setMinimumHeight(100);
	
	setWindowTitle("設置過濾條件");

}
TableViewFilter::~TableViewFilter()
{

}

void TableViewFilter::tableChanged ( QTableWidgetItem *curitem)
{
	QTableWidgetItem *item=curitem;
	QString filter;
	
	  for(int c=0;c<tableWidget->columnCount();c++)
	  {
  		item=tableWidget->item(0,c);
		  if(item)
		  {
  		  QString s=item->text().trimmed();
  		  if(s=="(全部)")
  		  	s="";
		    if(!s.isNull() && s.length()>0)
		    {
		    	if(s=="(空值)")
		    		filter.append(mapFieldName.value(c) + tr(" is null ")  );
		    	else if(s=="(非空值)")
		    		filter.append(mapFieldName.value(c) + tr(" is not null ")  );
		    	else
		    		filter.append(mapFieldName.value(c) + tr("='%1'").arg(s)  );
  		  }
  		  if(filter.right(5)!=" AND ")
    			filter.append(" AND ");
	    }
	  }
 
	  if(filter.left(5)==" AND ")
  		filter=filter.mid(5);
  	if(filter.right(5)==" AND ")
		  filter=filter.mid(0,filter.length()-5);
	
	  if(filter.length()==0)
  		filter="1=1";
  	qDebug()<<filter;
	  if(globalModel )
	  {
  		globalModel->setFilter(filter);
	  	globalModel->select();
  		TableView *tv=qobject_cast<TableView *>(this->parent());
  		if(tv)
  		{
  			tv->resizeColumnsToContents ();
  			tv->resizeRowsToContents ();
  		}

	  }
  
}

void  TableViewFilter::itemChanged ( QTableWidgetItem * cur, QTableWidgetItem * pre)
{
	tableWidget->editItem( cur);
}

void TableViewFilter::setType(int nType)
{
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产婷婷一区二区| 日韩精品一区二区三区蜜臀| 国产综合色视频| 韩国av一区二区三区四区| 日本不卡一二三| 美女视频黄 久久| 蜜臀av性久久久久蜜臀av麻豆| 亚洲大片免费看| 亚洲不卡一区二区三区| 亚洲va国产天堂va久久en| 日韩精品成人一区二区在线| 日韩不卡一二三区| 国产一区二区在线电影| 国产+成+人+亚洲欧洲自线| 成人av在线影院| 在线精品视频一区二区三四| 欧美日韩高清一区| 在线播放/欧美激情| 精品国偷自产国产一区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲视频在线一区观看| 亚洲va在线va天堂| 国产精品自拍一区| 91高清视频在线| 精品欧美久久久| 最新中文字幕一区二区三区| 午夜久久电影网| 国产精品888| 欧美亚洲国产bt| 久久精品综合网| 亚洲午夜精品一区二区三区他趣| 久久精品国产99久久6| 国产91色综合久久免费分享| 欧美亚洲尤物久久| 久久综合久久鬼色| 亚洲综合在线视频| 国产精品一区二区无线| 欧美视频中文字幕| 中文在线一区二区| 欧美aaaaaa午夜精品| 不卡一区中文字幕| 精品欧美一区二区久久 | 日本va欧美va精品| 波多野结衣在线一区| 欧美人伦禁忌dvd放荡欲情| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品免费看片| 蜜桃一区二区三区在线| 欧美中文字幕亚洲一区二区va在线| 日韩女优av电影| 亚洲午夜精品在线| 成人精品一区二区三区四区| 欧美喷潮久久久xxxxx| 亚洲欧美综合在线精品| 国产麻豆成人精品| 欧美一区二区三区免费视频| 亚洲欧美国产高清| 波多野结衣中文字幕一区| 日韩亚洲欧美在线观看| 亚洲国产精品久久人人爱蜜臀| 成人福利视频在线看| 久久综合精品国产一区二区三区| 亚洲国产精品综合小说图片区| 91丨porny丨户外露出| 久久久av毛片精品| 久久精品国产成人一区二区三区| 6080午夜不卡| 日日欢夜夜爽一区| 在线观看免费视频综合| 亚洲精品国产一区二区精华液| caoporn国产一区二区| 日本一区二区三区久久久久久久久不| 亚洲综合偷拍欧美一区色| 一道本成人在线| 亚洲男人电影天堂| 色婷婷国产精品| 亚洲日本在线看| 色94色欧美sute亚洲13| 一区二区三区四区高清精品免费观看 | 亚洲精品欧美综合四区| 色诱亚洲精品久久久久久| 亚洲精品国产精华液| aaa欧美日韩| 一个色妞综合视频在线观看| 欧美性感一区二区三区| 亚洲福利视频一区| 91精品国产综合久久精品app| 日本欧美一区二区三区乱码| 精品免费日韩av| 国产成人鲁色资源国产91色综| 欧美国产综合色视频| 91免费国产视频网站| 亚洲.国产.中文慕字在线| 日韩亚洲欧美综合| 国产精品18久久久久久久久久久久| 国产欧美日本一区二区三区| 99精品视频在线免费观看| 亚洲福中文字幕伊人影院| 日韩欧美成人一区| 不卡视频一二三| 日韩中文字幕1| 久久精品欧美一区二区三区麻豆| www.久久久久久久久| 午夜影视日本亚洲欧洲精品| 精品国产一区二区三区久久久蜜月| 国产在线播精品第三| 成人欧美一区二区三区白人| 欧美一区二区三区在线| 成人av电影在线播放| 午夜精品一区二区三区电影天堂 | 亚洲与欧洲av电影| 欧美精品一区二区高清在线观看 | 免费高清在线视频一区·| 精品日韩一区二区三区| 色婷婷精品久久二区二区蜜臂av | 中文字幕一区二区三区蜜月 | 国产日韩欧美精品在线| 在线看一区二区| 欧美aaaaa成人免费观看视频| 日本一区二区三区高清不卡| 欧美丝袜丝交足nylons| 成人妖精视频yjsp地址| 久久草av在线| 午夜视频在线观看一区| 亚洲欧洲另类国产综合| 精品精品欲导航| 欧美精品第一页| 在线观看欧美黄色| 北条麻妃国产九九精品视频| 经典一区二区三区| 偷窥国产亚洲免费视频| 亚洲欧美视频一区| 中文字幕精品一区| 日韩精品专区在线影院观看| 欧美吞精做爰啪啪高潮| 91在线观看美女| 国产成人精品影视| 国产99精品在线观看| 免费一级欧美片在线观看| 亚洲午夜影视影院在线观看| 亚洲精品videosex极品| 亚洲欧美综合另类在线卡通| 国产午夜精品一区二区三区视频 | 国产丝袜美腿一区二区三区| 日韩欧美国产午夜精品| 欧美一区二区三区视频在线 | 欧美在线看片a免费观看| 成熟亚洲日本毛茸茸凸凹| 国内精品久久久久影院色| 蜜桃久久精品一区二区| 奇米精品一区二区三区在线观看| 婷婷久久综合九色综合绿巨人| 亚洲最色的网站| 亚洲成人av免费| 丝袜亚洲另类丝袜在线| 天堂成人国产精品一区| 天天综合色天天| 天天免费综合色| 蜜乳av一区二区三区| 乱一区二区av| 国产成人av电影免费在线观看| 粉嫩在线一区二区三区视频| 国产mv日韩mv欧美| www.久久久久久久久| 日本精品视频一区二区| 欧美精品电影在线播放| 精品久久人人做人人爽| 久久久久久久av麻豆果冻| 国产精品拍天天在线| 亚洲精品伦理在线| 日韩高清一区在线| 国产毛片精品国产一区二区三区| 国产精品一区二区久久不卡| 成人黄色综合网站| 欧美日韩卡一卡二| 日韩欧美亚洲一区二区| 中文av字幕一区| 亚洲激情中文1区| 美脚の诱脚舐め脚责91| 国产成人精品一区二| 欧美在线观看视频一区二区三区| 91精品国产综合久久香蕉的特点| 精品国产一区二区国模嫣然| 综合激情成人伊人| 亚洲电影一级黄| 国产一区二区伦理| 一本久久精品一区二区| 欧美一区二区三区播放老司机| 欧美经典一区二区| 亚洲最新在线观看| 国产精品911| 欧美美女bb生活片| 国产精品麻豆久久久| 欧美a级一区二区| 色呦呦一区二区三区| 精品精品欲导航| 亚洲va天堂va国产va久| 成人一区二区三区在线观看| 欧美一区二区视频免费观看| 亚洲日本青草视频在线怡红院|