控制网复测平面基准归算程序(包含控制网复测平面基准计算,平面控制网稳定性计算,水准测段高差稳定计算三个程序功能)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import sqlite3
  2. from PySide6.QtGui import QStandardItemModel, QStandardItem
  3. def main_function(ui, db_path, utf_en):
  4. # 确保 utf_en 是字节字符串
  5. if not isinstance(utf_en, bytes):
  6. utf_en = utf_en.encode('utf-8')
  7. # 设置 QTabWidget 的可见性和标签文本
  8. tabs_to_show = [(0, '水准测段高差计算成果表')]
  9. for index in range(ui.tabWidget.count()):
  10. visible = index in [t[0] for t in tabs_to_show]
  11. ui.tabWidget.setTabVisible(index, visible)
  12. for index, text in tabs_to_show:
  13. ui.tabWidget.setTabText(index, text)
  14. # 连接到数据库并执行查询
  15. db1 = sqlite3.connect(db_path)
  16. db1.text_factory = lambda x: str(x, 'utf-8')
  17. cursor1 = db1.cursor()
  18. # 查询 GC_Output_Point 表中的 TableName 字段
  19. query_table_names = "SELECT DISTINCT TableName FROM GC_Output_Point"
  20. cursor1.execute(query_table_names)
  21. query = """
  22. SELECT New_ID, New_ResultName, New_SPName, New_EPName, New_HDiff, New_RLen, Correct_Factor, Period_Diff, Dis_Ass
  23. FROM GC_Output_Point
  24. WHERE TableName = ?
  25. """
  26. cursor1.execute(query, (utf_en,))
  27. result = cursor1.fetchall()
  28. cursor1.close()
  29. db1.close()
  30. # 创建 QStandardItemModel 实例
  31. model = QStandardItemModel()
  32. model.setColumnCount(len(result[0]))
  33. # 设置表头
  34. headers = ['序号', '结果期数', '起点', '终点', '高差', '路线长', '修正数', '期间差异', '变形判定']
  35. model.setHorizontalHeaderLabels(headers)
  36. for row_data in result:
  37. items = []
  38. for i, item in enumerate(row_data):
  39. if i == 4 or i == 5: # 索引4(高差)
  40. item = f"{item:.6f}" # 格式化为6位小数
  41. elif i == 6: # 索引 6(修正数)
  42. item = f"{item:.2f}"
  43. elif i == 7: # 假设 Period_Diff 在索引 7
  44. if item is not None and isinstance(item, (int, float)):
  45. item = f"{item:.2f}" # 格式化为2位小数
  46. else:
  47. item = "" # 如果是 None 或非数字类型,显示空字符串
  48. elif i == 8: # 假设 Dis_Ass 在索引 8
  49. if item is not None and isinstance(item, str):
  50. item = item # 显示字符串内容
  51. else:
  52. item = "" # 如果是 None,显示空字符串
  53. items.append(QStandardItem(str(item)))
  54. model.appendRow(items)
  55. # 设置并展示表格
  56. ui.resultTableView.setModel(model)
  57. ui.resultTableView.show()
  58. # 隐藏 QLabel
  59. ui.default_remind.hide()