From 987254bf420571a7b89391d8227569a1b5774019 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期五, 21 二月 2025 23:25:48 +0800
Subject: [PATCH] 250221

---
 historydata.cpp |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/historydata.cpp b/historydata.cpp
index 1ee12b0..8dd2e2b 100644
--- a/historydata.cpp
+++ b/historydata.cpp
@@ -19,6 +19,26 @@
 {
     ui->setupUi(this);
 
+    // 娉ㄥ唽鍏冪被鍨�
+    qRegisterMetaType<QVector<QVector<QString>>>("QVector<QVector<QString>>");
+    qRegisterMetaType<QVector<QVector<QString>>>("QVector<QVector<QString>> &");
+
+    // ui鐩稿叧
+    ui->dateEdit->setDate(QDate::currentDate());
+    m_model = new QStandardItemModel(1,9,this);
+
+    m_customModel = new CustomSortProxyModel; // 鍙嚜瀹氫箟鎺掑簭鐨勬ā鍨�
+    m_customModel->setSourceModel(m_model); // 璁剧疆婧愭ā鍨�
+
+    //ui->tableView->setModel(m_model);
+    ui->tableView->setModel(m_customModel);
+    // 琛ㄦ牸鍒楁帓搴�
+    ui->tableView->setSortingEnabled(true);
+
+    QStringList labels;
+    labels<<"鑲$エ鍚嶅瓧"<<"鑲$エ浠e彿"<<"甯傚��(浜�)"<<"娑ㄨ穼骞�"<<"鏀剁洏浠�"<<"鎴愪氦棰�(浜�)"<<"鎴愪氦閲�"<<"鎹㈡墜鐜�"<<"PE_TTM";
+    m_model->setHorizontalHeaderLabels(labels);
+
     initMySQL(); // 鍒濆鍖朚ySQL
 
     // 澶勭悊鏁版嵁鐖彇鐨勬搷浣�
@@ -202,3 +222,79 @@
     }
 
 }
+
+void HistoryData::on_pushButton_search_clicked()
+{
+    // 鎻愮ず鏌ヨ绛夊緟
+    ui->statusbar->showMessage("鏌ヨ涓�...璇疯�愬績绛夊緟缁撴灉...");
+
+    QString searchTime = ui->dateEdit->text();
+    qDebug()<<"鏌ヨ鐨勬椂闂�:"<<searchTime;
+    QString sql = QString("select name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm from stock_day_info where time_trade = '%1'").arg(searchTime);
+    qDebug()<<"sql:"<<sql;
+
+    m_modelDatas.clear(); // 娓呯┖鏁扮粍涓殑鏁版嵁
+
+    qint64 tt = QDateTime::currentMSecsSinceEpoch();
+    QSqlQuery que(db);
+    if(que.exec(sql)){
+        qDebug()<<"select ok";
+        m_model->setRowCount(0); // 閲嶇疆妯″瀷琛屾暟
+        int rows = 0;
+        while (que.next()) {
+            QString name = que.value(0).toString();
+            QString code = que.value(1).toString();
+            QString market_capital = QString::number(que.value(2).toDouble()/100000000);
+            QString percent = que.value(3).toString();
+            QString close = que.value(4).toString();
+            QString amount = QString::number(que.value(5).toDouble()/100000000);
+            QString volume = que.value(6).toString();
+            QString turnover_rate = que.value(7).toString();
+            QString pe_ttm = que.value(8).toString();
+
+            m_modelDatas.append({name,code,market_capital,percent,close,amount,volume,turnover_rate,pe_ttm});
+
+            QList<QStandardItem*> items;
+            items.append(new QStandardItem(name));
+            items.append(new QStandardItem(code));
+            items.append(new QStandardItem(market_capital));
+            //items.append(new QStandardItem(percent));
+            QStandardItem *percentItem =  new QStandardItem(percent);
+            if(percent.toDouble() > 0){
+                percentItem->setData(QColor("red"),Qt::DecorationRole); // 娣诲姞涓�涓楗扮殑棰滆壊涓虹孩鑹�
+                percentItem->setData(QColor("red"),Qt::TextColorRole);  // 灏嗗瓧浣撻鑹茶缃负绾㈣壊
+                items.at(0)->setData(QColor("red"),Qt::TextColorRole);  // 灏嗚偂绁ㄥ悕瀛楄缃负绾㈣壊
+             }
+            else if(percent.toDouble() < 0){
+                percentItem->setData(QColor("green"),Qt::BackgroundColorRole);
+                items.at(0)->setData(QColor("green"),Qt::TextColorRole);
+            }
+            items.append(percentItem);
+
+            items.append(new QStandardItem(close));
+            items.append(new QStandardItem(amount));
+            items.append(new QStandardItem(volume));
+            items.append(new QStandardItem(turnover_rate));
+            items.append(new QStandardItem(pe_ttm));
+            m_model->appendRow(items);
+            rows++;
+        }
+        qDebug()<<"鏌ヨ鍒拌鏁�:"<<rows;
+
+    }else{
+        qDebug()<<"select fail"<<que.lastError().text();
+    }
+    // 鏈�鍚庢彁绀哄畬鎴�
+    qint64 need = QDateTime::currentMSecsSinceEpoch()-tt;
+    ui->statusbar->showMessage(QString("鑰楁椂:%1 姣,鏌ヨ瀹屾垚.").arg(QString::number(need)),10*1000);
+    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+    //emit sendHistoryModel(m_modelDatas); // 缁欎俊鎭睍绀哄彂妯″瀷
+
+    ui->textBrowser->append(QString("鏌ヨ鏃ユ湡:%1 鑰楁椂: %2 姣 鏌ュ埌鏉℃暟:%3").arg(searchTime).arg(QString::number(need)).arg(QString::number(m_model->rowCount())));
+}
+
+void HistoryData::on_pushButton_2_clicked()
+{
+    //emit sendHistoryModel(m_modelDatas); // 缁欎俊鎭睍绀哄彂妯″瀷
+    emit sendHistoryModel(m_model);
+}

--
Gitblit v1.8.0