|
@@ -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
|
+
|