控制网复测平面基准归算程序(包含控制网复测平面基准计算,平面控制网稳定性计算,水准测段高差稳定计算三个程序功能)
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. from Front.back.Program_Run.data_show import *
  2. import sqlite3
  3. from PySide6.QtGui import QStandardItemModel
  4. from PySide6.QtCore import QItemSelectionModel
  5. # 计算结束后的显示
  6. def main_function(ui, db_path, utf_en):
  7. # 只显示头两个tab
  8. ui.tabWidget.setTabVisible(0, True)
  9. ui.tabWidget.setTabVisible(1, True)
  10. ui.tabWidget.setTabVisible(2, False)
  11. # 重新设置文字名称
  12. ui.tabWidget.setTabText(0, '稳定性分析成果表')
  13. ui.tabWidget.setTabText(1, '自由网成果归算模型')
  14. # 链接数据库并显示
  15. # 连接到数据库
  16. # 将结果输出到数据库
  17. db1 = sqlite3.connect(db_path)
  18. # 获取游标
  19. cursor1 = db1.cursor()
  20. # 查询表内符合的所有数据
  21. sqlstr1 = 'select PointName,First_X,First_Y,Last_X,Last_Y,Last_Wight,Result_X,Result_Y,New_Wight,New_FirstX,New_FirstY,New_FirstP,NFDis_Ass,New_LastX,New_LastY,New_LastP,NLDis_Ass from WD_Result_Point WHERE TableName = ?'
  22. cursor1.execute(sqlstr1, (utf_en,))
  23. # 获取结果集
  24. result = cursor1.fetchall()
  25. # 对结果集进行处理,把汉字转换过来,添加表头部分
  26. nlist, plist = Arrange_Data(result)
  27. # 把数据放进去
  28. model1 = Data_in_Cell(plist)
  29. # 设置表头
  30. model1.setHorizontalHeaderLabels(
  31. ['点名', '首期X', '首期Y', '上期X', '上期Y', '权', '本期X', '本期Y', '权', '本期-首期X', '本期-首期Y',
  32. '本期-首期P', '位移判定', '本期-上期X', '本期-上期Y', '本期-上期P', '位移判定'])
  33. model1.setVerticalHeaderLabels(nlist)
  34. # QTableView并将数据模型与之关联
  35. ui.resultTableView.setModel(model1)
  36. ui.resultTableView.show()
  37. # 隐藏 QLabel(默认提示语言)
  38. ui.default_remind.hide()
  39. # 富文本的html
  40. sqlstr2 = 'select Last_ResultName,New_ResultName,Formula_X1,Formula_X2,Formula_X3,Formula_Y1,Formula_Y2,Formula_Y3 from WD_Result_Param WHERE TableName = ?'
  41. cursor1.execute(sqlstr2, (utf_en,))
  42. # 获取结果集
  43. result1 = cursor1.fetchall()
  44. str1 = result1[0][0].decode('utf-8')
  45. str2 = result1[0][1].decode('utf-8')
  46. n1 = result1[0][2]
  47. n2 = result1[0][3]
  48. n3 = result1[0][4]
  49. n4 = result1[0][5]
  50. n5 = result1[0][6]
  51. n6 = result1[0][7]
  52. str0 = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
  53. <html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
  54. p, li { white-space: pre-wrap; }
  55. hr { height: 1px; border-width: 0; }
  56. li.unchecked::marker { content: "\2610"; }
  57. li.checked::marker { content: "\2612"; }
  58. </style></head><body style=" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;">
  59. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; color:#000000;">""" + str2 + """--""" + str1 + """</span><span style=" font-size:14pt;">已知系统转换公式:</span></p>
  60. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:700;">X</span><span style=" font-size:14pt;">=(</span><span style=" font-size:14pt; color:#aa0000;">""" + str(
  61. n1) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">x</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00aa00;">""" + str(
  62. n2) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">y</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00007f;">""" + str(
  63. n3) + """</span><span style=" font-size:14pt;">)</span></p>
  64. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:700;">Y</span><span style=" font-size:14pt;">=(</span><span style=" font-size:14pt; color:#aa0000;">""" + str(
  65. n4) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">x</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00aa00;">""" + str(
  66. n5) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">y</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00007f;">""" + str(
  67. n6) + """</span><span style=" font-size:14pt;">)</span></p>
  68. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt;">式中:</span><span style=" font-size:14pt; font-weight:700; color:#000000;">x、y</span><span style=" font-size:14pt;">为</span><span style=" font-size:14pt; color:#000000;">""" + str2 + """</span><span style=" font-size:14pt;">坐标;</span></p>
  69. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt;"> </span><span style=" font-size:14pt; font-weight:700;">X、Y</span><span style=" font-size:14pt;">为""" + str1 + """已知系统的""" + str2 + """归算坐标。</span></p></body></html>"""
  70. ui.printTableView.setHtml(str0)
  71. # 关闭数据库连接
  72. cursor1.close()
  73. db1.close()
  74. def search_show_function(ui, db_path, utf_en):
  75. # 只显示头两个tab
  76. ui.View.setTabVisible(0, True)
  77. ui.View.setTabVisible(1, True)
  78. ui.View.setTabVisible(2, True)
  79. ui.View.setTabVisible(3, False)
  80. # 重新设置文字名称
  81. ui.View.setTabText(1, '稳定性分析成果表')
  82. ui.View.setTabText(2, '自由网成果归算模型')
  83. ui.View.setTabText(0, '输入数据')
  84. # 链接数据库并显示
  85. # 连接到数据库
  86. # 将结果输出到数据库
  87. db1 = sqlite3.connect(db_path)
  88. # 获取游标
  89. cursor1 = db1.cursor()
  90. # 查询表内符合的所有输入数据
  91. sqlstr00 = 'select PointName,First_X,First_Y,Last_X,Last_Y,Wight,New_X,New_Y from WD_Input_Point WHERE TableName = ?'
  92. cursor1.execute(sqlstr00, (utf_en,))
  93. # 获取结果集
  94. result0 = cursor1.fetchall()
  95. # 参数部分
  96. sqlstr10 = 'select First_ResultName,Last_ResultName,New_ResultName,Avg_SL,Ms_Dir,SL_Count,Dir_Count,Scale_Value from WD_Input_Param WHERE TableName = ?'
  97. cursor1.execute(sqlstr10, (utf_en,))
  98. # 获取结果集
  99. result1 = cursor1.fetchall()
  100. # 把结果集放进去,把汉字转换过来,添加表头部分
  101. model0, nlist0 = WD_In_Data(result0, result1[0])
  102. # 设置表头(先用统称吧,后期修改)
  103. model0.setHorizontalHeaderLabels(
  104. ['点名', '首期X', '首期Y', '上期X', '上期Y', '权', '本期X', '本期Y', '首期成果名', '上期成果名', '本期成果名',
  105. '平均边长', '方向值中误差', '总边数', '总方向数', '缩放值'])
  106. model0.setVerticalHeaderLabels(nlist0)
  107. # QTableView并将数据模型与之关联
  108. ui.resultTableView1.setModel(model0)
  109. ui.resultTableView1.show()
  110. # 查询表内符合的所有数据
  111. sqlstr1 = 'select PointName,First_X,First_Y,Last_X,Last_Y,Last_Wight,Result_X,Result_Y,New_Wight,New_FirstX,New_FirstY,New_FirstP,NFDis_Ass,New_LastX,New_LastY,New_LastP,NLDis_Ass from WD_Result_Point WHERE TableName = ?'
  112. cursor1.execute(sqlstr1, (utf_en,))
  113. # 获取结果集
  114. result = cursor1.fetchall()
  115. # 对结果集进行处理,把汉字转换过来,添加表头部分
  116. nlist, plist = Arrange_Data(result)
  117. # 把数据放进去
  118. model1 = Data_in_Cell(plist)
  119. # 设置表头
  120. model1.setHorizontalHeaderLabels(
  121. ['点名', '首期X', '首期Y', '上期X', '上期Y', '权', '本期X', '本期Y', '权', '本期-首期X', '本期-首期Y',
  122. '本期-首期P', '位移判定', '本期-上期X', '本期-上期Y', '本期-上期P', '位移判定'])
  123. model1.setVerticalHeaderLabels(nlist)
  124. # QTableView并将数据模型与之关联
  125. ui.reconTableView1.setModel(model1)
  126. ui.reconTableView1.show()
  127. # 隐藏 QLabel(默认提示语言)
  128. ui.default_remind1.hide()
  129. # 富文本的html
  130. sqlstr2 = 'select Last_ResultName,New_ResultName,Formula_X1,Formula_X2,Formula_X3,Formula_Y1,Formula_Y2,Formula_Y3 from WD_Result_Param WHERE TableName = ?'
  131. cursor1.execute(sqlstr2, (utf_en,))
  132. # 获取结果集
  133. result2 = cursor1.fetchall()
  134. str1 = result2[0][0].decode('utf-8')
  135. str2 = result2[0][1].decode('utf-8')
  136. n1 = result2[0][2]
  137. n2 = result2[0][3]
  138. n3 = result2[0][4]
  139. n4 = result2[0][5]
  140. n5 = result2[0][6]
  141. n6 = result2[0][7]
  142. str0 = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
  143. <html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
  144. p, li { white-space: pre-wrap; }
  145. hr { height: 1px; border-width: 0; }
  146. li.unchecked::marker { content: "\2610"; }
  147. li.checked::marker { content: "\2612"; }
  148. </style></head><body style=" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;">
  149. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; color:#000000;">""" + str2 + """--""" + str1 + """</span><span style=" font-size:14pt;">已知系统转换公式:</span></p>
  150. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:700;">X</span><span style=" font-size:14pt;">=(</span><span style=" font-size:14pt; color:#aa0000;">""" + str(
  151. n1) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">x</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00aa00;">""" + str(
  152. n2) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">y</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00007f;">""" + str(
  153. n3) + """</span><span style=" font-size:14pt;">)</span></p>
  154. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:700;">Y</span><span style=" font-size:14pt;">=(</span><span style=" font-size:14pt; color:#aa0000;">""" + str(
  155. n4) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">x</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00aa00;">""" + str(
  156. n5) + """</span><span style=" font-size:14pt;">)</span><span style=" font-size:14pt; font-weight:700;">y</span><span style=" font-size:14pt;">+(</span><span style=" font-size:14pt; color:#00007f;">""" + str(
  157. n6) + """</span><span style=" font-size:14pt;">)</span></p>
  158. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt;">式中:</span><span style=" font-size:14pt; font-weight:700; color:#000000;">x、y</span><span style=" font-size:14pt;">为</span><span style=" font-size:14pt; color:#000000;">""" + str2 + """</span><span style=" font-size:14pt;">坐标;</span></p>
  159. <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt;"> </span><span style=" font-size:14pt; font-weight:700;">X、Y</span><span style=" font-size:14pt;">为""" + str1 + """已知系统的""" + str2 + """归算坐标。</span></p></body></html>"""
  160. ui.printTableView1.setHtml(str0)
  161. # 关闭数据库连接
  162. cursor1.close()
  163. db1.close()
  164. #返回一个选择模型
  165. selectionModel = QItemSelectionModel(model0) # Item选择模型
  166. ui.resultTableView1.setSelectionModel(selectionModel)
  167. return selectionModel