wzp 3 месяцев назад
Родитель
Сommit
b72ddfc694
1 измененных файлов: 65 добавлений и 6 удалений
  1. 65
    6
      Back/GC/GCshow.py

+ 65
- 6
Back/GC/GCshow.py Просмотреть файл

@@ -1,3 +1,4 @@
1
+import itertools
1 2
 import sqlite3
2 3
 
3 4
 from PySide6.QtGui import QStandardItemModel, QStandardItem
@@ -91,24 +92,37 @@ def search_show_function(ui, db_path, utf_en):
91 92
 
92 93
     # 查询 GC_Input_Point 表中的数据
93 94
     input_query = """
94
-    SELECT New_ID, Last_ResultName, Last_SPName, Last_EPName,Last_HDiff,Last_RLen, New_ResultName,  New_SPName, New_EPName,New_HDiff, New_RLen
95
+    SELECT New_ID, Last_ResultName, Last_SPName, Last_EPName, Last_HDiff, Last_RLen, New_ResultName, New_SPName, New_EPName, New_HDiff, New_RLen
95 96
     FROM GC_Input_Point
96 97
     WHERE TableName = ?
97 98
     """
98 99
     cursor1.execute(input_query, (utf_en,))
99 100
     input_result = cursor1.fetchall()
100 101
 
102
+    # 查询 GC_Input_Param 表中的数据
103
+    param_query = """
104
+    SELECT ObservationLevel, Ms_Station, Last_StationCount, Last_SumHDiff, Last_SumRLen, New_StationCount, New_SumHDiff, New_SumRLen
105
+    FROM GC_Input_Param
106
+    WHERE TableName = ?
107
+    """
108
+    cursor1.execute(param_query, (utf_en,))
109
+    param_result = cursor1.fetchall()
110
+
101 111
     # 创建 QStandardItemModel 实例
102 112
     input_model = QStandardItemModel()
103
-    input_model.setColumnCount(len(input_result[0]))
113
+    input_model.setColumnCount(len(input_result[0]) + 8)  # 增加八列(2 + 6)
104 114
 
105 115
     # 设置表头
106
-    input_headers = ['序号', '上期成果名', '上期测段起点', '上期测段终点', '上期高差', '上期路线长', '本期成果名',
107
-                     '本期测段起点', '本期测段终点',
108
-                     '本期高差', '本期路线长']
116
+    input_headers = [
117
+        '序号', '上期成果名', '上期测段起点', '上期测段终点', '上期高差', '上期路线长', '本期成果名',
118
+        '本期测段起点', '本期测段终点',
119
+        '本期高差', '本期路线长', '观测等级', '测站全中误差',
120
+        '上次总测段数', '上期高差合计', '上期路线长合计', '本期总测段数', '本期高差合计', '本期路线长合计'
121
+    ]
109 122
     input_model.setHorizontalHeaderLabels(input_headers)
110 123
 
111
-    for row_data in input_result:
124
+    # 使用 itertools.zip_longest 处理长度不一致的情况
125
+    for row_data, param_data in itertools.zip_longest(input_result, param_result, fillvalue=(None, None, None, None, None, None, None, None)):
112 126
         items = []
113 127
         for i, item in enumerate(row_data):
114 128
             if item is None:
@@ -117,6 +131,50 @@ def search_show_function(ui, db_path, utf_en):
117 131
                 if i in [4, 5, 10, 11]:  # 索引4,5,10,11(高差和路线长)
118 132
                     item = f"{item:.6f}"  # 格式化为6位小数
119 133
             items.append(QStandardItem(str(item)))
134
+
135
+        # 添加新的列数据
136
+        if param_data is not None:
137
+            observation_level, ms_station, last_station_count, last_sum_hdiff, last_sum_rlen, new_station_count, new_sum_hdiff, new_sum_rlen = param_data
138
+        else:
139
+            observation_level, ms_station, last_station_count, last_sum_hdiff, last_sum_rlen, new_station_count, new_sum_hdiff, new_sum_rlen = "", "", "", "", "", "", "", ""
140
+
141
+        # 确保 observation_level 和 ms_station 是字符串
142
+        if observation_level is None:
143
+            observation_level = ""
144
+        if ms_station is None:
145
+            ms_station = ""
146
+
147
+        # 确保其他字段是字符串或格式化后的字符串
148
+        if last_station_count is None:
149
+            last_station_count = ""
150
+        if last_sum_hdiff is None:
151
+            last_sum_hdiff = ""
152
+        else:
153
+            last_sum_hdiff = f"{last_sum_hdiff:.6f}"
154
+        if last_sum_rlen is None:
155
+            last_sum_rlen = ""
156
+        else:
157
+            last_sum_rlen = f"{last_sum_rlen:.6f}"
158
+        if new_station_count is None:
159
+            new_station_count = ""
160
+        if new_sum_hdiff is None:
161
+            new_sum_hdiff = ""
162
+        else:
163
+            new_sum_hdiff = f"{new_sum_hdiff:.6f}"
164
+        if new_sum_rlen is None:
165
+            new_sum_rlen = ""
166
+        else:
167
+            new_sum_rlen = f"{new_sum_rlen:.6f}"
168
+
169
+        items.append(QStandardItem(str(observation_level)))
170
+        items.append(QStandardItem(f"{ms_station:.2f}" if isinstance(ms_station, (int, float)) else ""))
171
+        items.append(QStandardItem(str(last_station_count)))
172
+        items.append(QStandardItem(str(last_sum_hdiff)))
173
+        items.append(QStandardItem(str(last_sum_rlen)))
174
+        items.append(QStandardItem(str(new_station_count)))
175
+        items.append(QStandardItem(str(new_sum_hdiff)))
176
+        items.append(QStandardItem(str(new_sum_rlen)))
177
+
120 178
         input_model.appendRow(items)
121 179
 
122 180
     # 设置并展示输入数据表格
@@ -179,3 +237,4 @@ def search_show_function(ui, db_path, utf_en):
179 237
 
180 238
     # 隐藏 QLabel
181 239
     ui.default_remind1.hide()
240
+

Загрузка…
Отмена
Сохранить