프로젝트

일반

사용자정보

개정판 bfba2652

IDbfba265277bc32383cc1601536fe29addb7e0d6c
상위 4e426f34
하위 e7cd3f58

gaqhf 이(가) 6년 이상 전에 추가함

dev issue #627: dev line data list form

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
1624 1624
            conn.close()
1625 1625

  
1626 1626
    '''
1627
        @brief      get line documentName list
1628
        @author     kyouho
1629
        @date       2018.08.13
1630
    '''
1631
    def getLineDocumentNameList(self):
1632
        result = []
1633

  
1634
        try:
1635
            # Creates or opens a file called mydb with a SQLite3 DB
1636
            dbPath = os.path.join(self.getCurrentProject().getDbFilePath(), 'ITI_PID.db')
1637
            conn = sqlite3.connect(dbPath)
1638
            # Get a cursor object
1639
            cursor = conn.cursor()
1640

  
1641
            sql = 'select DISTINCT(documentName) from LINE_DATA_LIST'
1642

  
1643
            cursor.execute(sql)
1644
            rows = cursor.fetchall()
1645
            for row in rows:
1646
                result.append(row[0])
1647
        # Catch the exception
1648
        except Exception as ex:
1649
            # Roll back any change if something goes wrong
1650
            conn.rollback()
1651
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
1652
        finally:
1653
            # Close the db connection
1654
            conn.close()
1655

  
1656
        return result
1657

  
1658

  
1659
    '''
1660
        @brief      get line data list
1661
        @author     kyouho
1662
        @date       2018.08.13
1663
    '''
1664
    def getLineDataList(self, docName = None):
1665
        result = []
1666

  
1667
        try:
1668
            # Creates or opens a file called mydb with a SQLite3 DB
1669
            dbPath = os.path.join(self.getCurrentProject().getDbFilePath(), 'ITI_PID.db')
1670
            conn = sqlite3.connect(dbPath)
1671
            # Get a cursor object
1672
            cursor = conn.cursor()
1673

  
1674
            sql = 'select UID, lineNo, nominalDiameter, fluidCode, tagSeqNo, insulationPurpose, streamNo, phase, pressure, temperature, documentName from LINE_DATA_LIST'
1675
            if docName is not None:
1676
                sql += " where documentName = '{}'".format(docName)
1677

  
1678
            cursor.execute(sql)
1679
            #columnName = list(map(lambda x: x[0].upper(), cursor.description))
1680
            rows = cursor.fetchall()
1681
            for row in rows:
1682
                data = []
1683
                for index in range(len(cursor.description)):
1684
                    data.append(row[index])
1685
                result.append(data)
1686
        # Catch the exception
1687
        except Exception as ex:
1688
            # Roll back any change if something goes wrong
1689
            conn.rollback()
1690
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
1691
        finally:
1692
            # Close the db connection
1693
            conn.close()
1694

  
1695
        return result
1696

  
1697
    '''
1698
        @brief      set line data list
1699
        @author     kyouho
1700
        @date       2018.08.13
1701
    '''
1702
    def setLineDataList(self, dataLists):
1703
        try:
1704
            # Creates or opens a file called mydb with a SQLite3 DB
1705
            dbPath = os.path.join(self.getCurrentProject().getDbFilePath(), 'ITI_PID.db')
1706
            conn = sqlite3.connect(dbPath)
1707
            # Get a cursor object
1708
            cursor = conn.cursor()
1709
            
1710
            for data in dataLists:
1711
                sql = "insert or replace into LINE_DATA_LIST(UID, lineNo, nominalDiameter, fluidCode, tagSeqNo, insulationPurpose, streamNo, phase, pressure, temperature, documentName) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
1712
                param = (data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9], data[10])
1713
                cursor.execute(sql, param)
1714

  
1715
            conn.commit()
1716

  
1717
        # Catch the exception
1718
        except Exception as ex:
1719
            # Roll back any change if something goes wrong
1720
            conn.rollback()
1721
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
1722
        finally:
1723
            # Close the db connection
1724
            conn.close()
1725

  
1726
    '''
1727
        @brief      delete line data list
1728
        @author     kyouho
1729
        @date       2018.08.13
1730
    '''
1731
    def deleteLineDataList(self, removeUID):
1732
        try:
1733
            # Creates or opens a file called mydb with a SQLite3 DB
1734
            dbPath = os.path.join(self.getCurrentProject().getDbFilePath(), 'ITI_PID.db')
1735
            conn = sqlite3.connect(dbPath)
1736
            # Get a cursor object
1737
            cursor = conn.cursor()
1738
            
1739
            for uid in removeUID:
1740
                sql = "delete from LINE_DATA_LIST where uid = '{}'".format(uid)
1741
                cursor.execute(sql)
1742

  
1743
            conn.commit()
1744

  
1745
        # Catch the exception
1746
        except Exception as ex:
1747
            # Roll back any change if something goes wrong
1748
            conn.rollback()
1749
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
1750
        finally:
1751
            # Close the db connection
1752
            conn.close()
1753

  
1754
    '''
1627 1755
        @brief      get equipment data list
1628 1756
        @author     humkyung
1629 1757
        @date       2018.05.03
DTI_PID/DTI_PID/ItemDataExportDialog.py
1
# coding: utf-8
2
import os
3
import sys
4
from PyQt5.QtCore import *
5
from PyQt5.QtGui import *
6
from PyQt5.QtWidgets import *
7
import sqlite3
8
from AppDocData import AppDocData
9
from AppDocData import Config
10
import ItemDataExport_UI
11

  
12
class QItemDataExportDialog(QDialog):
13
    def __init__(self, parent):
14
        QDialog.__init__(self, parent)
15

  
16
        self.sceneLineData = {}
17
        self.lineColumnList = []
18
        self.equipColumnList = []
19
        self.instColumnList = []
20

  
21
        self.removeUID = [[], [], []]
22

  
23
        self.parent = parent
24
        self.ui = ItemDataExport_UI.Ui_ItemDataExportDialog()
25
        self.ui.setupUi(self)
26

  
27
        # save scene data
28
        self.saveLineDataAtScene()
29
        # setting combobox
30
        self.initComboBox()
31
        # setting table
32
        self.initTableWidget()
33
        
34
        # evnet connect
35
        self.ui.comboBoxDoc.currentTextChanged.connect(self.docNameChanged)
36

  
37

  
38

  
39
    '''
40
        @brief      init combobox
41
        @author     kyouho
42
        @date       2018.08.13
43
    '''
44
    def initComboBox(self):
45
        self.ui.comboBoxDoc.addItem('ALL')
46
        self.ui.comboBoxDoc
47
        docData = AppDocData.instance()
48
        
49
        documentNameData = docData.getLineDocumentNameList()
50
        for name in documentNameData:
51
            self.ui.comboBoxDoc.addItem(name)
52

  
53

  
54
        if not self.parent.graphicsView.hasImage():
55
            return
56
        result = self.ui.comboBoxDoc.findText(docData.imgName)
57
        if result == -1:
58
            self.ui.comboBoxDoc.addItem(docData.imgName)
59
        
60
        
61
    '''
62
        @brief      init table widget
63
        @author     kyouho
64
        @date       2018.08.13
65
    '''
66
    def initTableWidget(self):
67
        lineTable = self.ui.tableWidgetLineDataList
68
        equipTable = self.ui.tableWidgetEquipmentDataList
69
        instTable = self.ui.tableWidgetInstrumentDataList
70

  
71
        # Table Header Label 설정
72
        self.lineColumnList = ['UID', 'LINENO', 'NOMINALDIAMETER', 'FLUIDCODE', 'TAGSEQNO', 'INSULATIONPURPOSE', 'STREAMNO', 'PHASE', 'PRESSURE', 'TEMPERATURE', 'DOCUMENTNAME']
73
        self.equipColumnList = ['UID', 'NAME', 'PRESSURE', 'TEMPERATURE', 'DOCUMENTNAME']
74
        self.instColumnList = ['UID', 'NAME', 'VARIABLECODE', 'TYPEMODIFIER', 'TAGSEQNO', 'TAGSUFFIX', 'DOCUMENTNAME']
75

  
76
        lineTable.setHorizontalHeaderLabels(['UID', 'Line No', 'Nominal\r\nDiameter', 'Fluid Code', 'Tag Seq No', 'Insulation\r\nPurpose', 'Stream No', 'Phase', 'Pressure', 'Temperature', 'Document Name'])
77
        equipTable.setHorizontalHeaderLabels(['UID', 'Name', 'Pressure', 'Temperature', 'Document Name'])
78
        instTable.setHorizontalHeaderLabels(['UID', 'Name', 'Variable Code', 'Type Modifier', 'Tag Seq No', 'Tag Suffix', 'Document Name'])
79
        # Table Header 크기 설정
80
        lineTable.horizontalHeaderItem(1).setSizeHint(QSize(40, 40))
81
        equipTable.horizontalHeaderItem(1).setSizeHint(QSize(40, 40))
82
        instTable.horizontalHeaderItem(1).setSizeHint(QSize(40, 40))
83

  
84
        # linedata 설정
85
        self.settingLineData()
86

  
87

  
88
    '''
89
        @brief      setting line data
90
        @author     kyouho
91
        @date       2018.08.13
92
    '''
93
    def settingLineData(self):
94
        lineTable = self.ui.tableWidgetLineDataList
95
        docData = AppDocData.instance()
96
        # 기존 저장된 데이터 불러옴
97
        index = self.ui.comboBoxDoc.currentIndex()
98
        text = self.ui.comboBoxDoc.itemText(index)
99
        if self.ui.comboBoxDoc.currentIndex() == 0:
100
            text = None
101
        dataList = docData.getLineDataList(text)
102
        lineTable.setRowCount(len(dataList))
103
        row = 0
104
        for data in dataList:
105
            for dataIndex in range(len(data)):
106
                lineTable.setItem(row, dataIndex, QTableWidgetItem(data[dataIndex] if data[dataIndex] is not None else ''))
107
            row += 1
108

  
109
        # 현재 문서명이 같으면 중복 체크
110
        if docData.imgName is not None and (docData.imgName == text or self.ui.comboBoxDoc.currentIndex() == 0):
111
            lineTable = self.ui.tableWidgetLineDataList
112
            rowCount = lineTable.rowCount()
113
            lineNo = []
114
            for row in range(rowCount):
115
                lineNo.append(lineTable.item(row, 1).text())
116

  
117
            for line in self.sceneLineData.keys():
118
                # 중복 (어떻게 할지)
119
                if lineNo.count(line) >= 1:
120
                    continue
121
                # 신규
122
                else:
123
                    rowCount += 1
124
                    lineTable.setRowCount(rowCount)
125
                    lineData = self.sceneLineData[line]
126

  
127
                    index = self.lineColumnList.index('DOCUMENTNAME')
128
                    widgetItem = QTableWidgetItem(docData.imgName)
129
                    widgetItem.setBackground(QColor(int(134), int(229), int(127)))
130
                    lineTable.setItem(rowCount - 1, index, widgetItem)
131

  
132
                    for data in lineData:
133
                        columnName = data[0].upper().replace(' ', '')
134
                        if self.lineColumnList.count(columnName):
135
                            index = self.lineColumnList.index(columnName)
136
                            widgetItem = QTableWidgetItem(data[1] if data[1] is not None else '')
137
                            if widgetItem.text() != '':
138
                                widgetItem.setBackground(QColor(int(134), int(229), int(127)))
139
                            lineTable.setItem(rowCount - 1, index, widgetItem)
140

  
141

  
142
    '''
143
        @brief      doc name change event
144
        @author     kyouho
145
        @date       2018.08.13
146
    '''
147
    def docNameChanged(self, text):
148
        self.settingLineData()
149

  
150
    '''
151
        @brief      save Line Data at scene
152
        @author     kyouho
153
        @date       2018.08.13
154
    '''
155
    def saveLineDataAtScene(self):
156
        if not self.parent.graphicsView.hasImage():
157
            return
158

  
159
        from QEngineeringLineNoTextItem import QEngineeringLineNoTextItem
160
        items = [item for item in self.parent.graphicsView.scene.items() if type(item) is QEngineeringLineNoTextItem]
161
        for item in items:
162
            text = item.text()
163
            attrs = item.getLineNoAttributes(True)
164
            
165
            self.sceneLineData[text] = attrs
166

  
167
    '''
168
        @brief      save Datas
169
        @author     kyouho
170
        @date       2018.08.13
171
    '''
172
    def accept(self):
173
        docData = AppDocData.instance()
174
        self.saveLineDataList()
175
        docData.deleteLineDataList(self.removeUID[0])
176

  
177
        QDialog.accept(self)
178

  
179

  
180
    '''
181
        @brief      save Line Data
182
        @author     kyouho
183
        @date       2018.08.13
184
    '''
185
    def saveLineDataList(self):
186
        import uuid
187

  
188
        lineTable = self.ui.tableWidgetLineDataList
189
        docData = AppDocData.instance()
190

  
191
        dataLists = []
192
        for rowIndex in range(lineTable.rowCount()):
193
            dataList = []
194
            for columnIndex in range(lineTable.columnCount()):
195
                widgetItem = lineTable.item(rowIndex, columnIndex)
196

  
197
                if widgetItem is not None:
198
                    dataList.append(widgetItem.text())
199
                else:
200
                    if columnIndex == 0:
201
                        dataList.append(str(uuid.uuid4()))
202
                    else:
203
                        dataList.append('')
204

  
205
            dataLists.append(dataList)
206
            
207
        docData.setLineDataList(dataLists)
208

  
209
    '''
210
        @brief      key press event
211
        @author     kyouho
212
        @date       2018.08.13
213
    '''
214
    def keyPressEvent(self, e):
215
        if e.key() == Qt.Key_Delete:
216
            _tabWidget = self.ui.tabWidget
217
            currentTabIndex = _tabWidget.currentIndex()
218
            tableName = ''
219
            if currentTabIndex == 0:
220
                tableName = 'tableWidgetLineDataList'
221
            elif currentTabIndex == 1:
222
                tableName = 'tableWidgetEquipmentDataList'
223
            else:
224
                tableName = 'tableWidgetInstrumentDataList'
225
            table = self.findChild(QTableWidget, tableName)
226

  
227
            if table:
228

  
229
                selectedIndexes = table.selectedIndexes()
230
                selectedRows = [item.row() for item in selectedIndexes]
231
                model = table.model()
232

  
233
                rowsIndex = []
234
                for row in selectedRows:
235
                    rowsIndex.append(row)
236
        
237
                #중복 제거
238
                rowsIndex = list(set(rowsIndex))
239
                rowsIndex.reverse()
240
                
241
                for row in rowsIndex:
242
                    uidCell = table.item(row, 0)
243
                    if uidCell is not None:
244
                        uid = table.item(row, 0).text()
245
                        self.removeUID[currentTabIndex].append(uid)
246
                    model.removeRow(row)
DTI_PID/DTI_PID/ItemDataExport_UI.py
1
# -*- coding: utf-8 -*-
2

  
3
# Form implementation generated from reading ui file './UI/ItemDataExport.ui'
4
#
5
# Created by: PyQt5 UI code generator 5.9.2
6
#
7
# WARNING! All changes made in this file will be lost!
8

  
9
from PyQt5 import QtCore, QtGui, QtWidgets
10

  
11
class Ui_ItemDataExportDialog(object):
12
    def setupUi(self, ItemDataExportDialog):
13
        ItemDataExportDialog.setObjectName("ItemDataExportDialog")
14
        ItemDataExportDialog.resize(1142, 709)
15
        font = QtGui.QFont()
16
        font.setFamily("맑은 고딕")
17
        ItemDataExportDialog.setFont(font)
18
        self.gridLayout = QtWidgets.QGridLayout(ItemDataExportDialog)
19
        self.gridLayout.setObjectName("gridLayout")
20
        self.tabWidget = QtWidgets.QTabWidget(ItemDataExportDialog)
21
        self.tabWidget.setObjectName("tabWidget")
22
        self.tabLineList = QtWidgets.QWidget()
23
        self.tabLineList.setObjectName("tabLineList")
24
        self.gridLayout_3 = QtWidgets.QGridLayout(self.tabLineList)
25
        self.gridLayout_3.setObjectName("gridLayout_3")
26
        self.tableWidgetLineDataList = QtWidgets.QTableWidget(self.tabLineList)
27
        self.tableWidgetLineDataList.setColumnCount(11)
28
        self.tableWidgetLineDataList.setObjectName("tableWidgetLineDataList")
29
        self.tableWidgetLineDataList.setRowCount(0)
30
        self.tableWidgetLineDataList.verticalHeader().setVisible(False)
31
        self.gridLayout_3.addWidget(self.tableWidgetLineDataList, 0, 0, 1, 1)
32
        self.tabWidget.addTab(self.tabLineList, "")
33
        self.tabEquipmentList = QtWidgets.QWidget()
34
        self.tabEquipmentList.setObjectName("tabEquipmentList")
35
        self.gridLayout_5 = QtWidgets.QGridLayout(self.tabEquipmentList)
36
        self.gridLayout_5.setObjectName("gridLayout_5")
37
        self.tableWidgetEquipmentDataList = QtWidgets.QTableWidget(self.tabEquipmentList)
38
        self.tableWidgetEquipmentDataList.setColumnCount(5)
39
        self.tableWidgetEquipmentDataList.setObjectName("tableWidgetEquipmentDataList")
40
        self.tableWidgetEquipmentDataList.setRowCount(0)
41
        self.tableWidgetEquipmentDataList.verticalHeader().setVisible(False)
42
        self.gridLayout_5.addWidget(self.tableWidgetEquipmentDataList, 0, 0, 1, 1)
43
        self.tabWidget.addTab(self.tabEquipmentList, "")
44
        self.tabInstrumentList = QtWidgets.QWidget()
45
        self.tabInstrumentList.setObjectName("tabInstrumentList")
46
        self.gridLayout_7 = QtWidgets.QGridLayout(self.tabInstrumentList)
47
        self.gridLayout_7.setObjectName("gridLayout_7")
48
        self.tableWidgetInstrumentDataList = QtWidgets.QTableWidget(self.tabInstrumentList)
49
        self.tableWidgetInstrumentDataList.setColumnCount(7)
50
        self.tableWidgetInstrumentDataList.setObjectName("tableWidgetInstrumentDataList")
51
        self.tableWidgetInstrumentDataList.setRowCount(0)
52
        self.tableWidgetInstrumentDataList.verticalHeader().setVisible(False)
53
        self.gridLayout_7.addWidget(self.tableWidgetInstrumentDataList, 0, 0, 1, 1)
54
        self.tabWidget.addTab(self.tabInstrumentList, "")
55
        self.gridLayout.addWidget(self.tabWidget, 0, 1, 1, 1)
56
        self.horizontalLayout = QtWidgets.QHBoxLayout()
57
        self.horizontalLayout.setObjectName("horizontalLayout")
58
        self.comboBoxDoc = QtWidgets.QComboBox(ItemDataExportDialog)
59
        self.comboBoxDoc.setObjectName("comboBoxDoc")
60
        self.horizontalLayout.addWidget(self.comboBoxDoc)
61
        self.pushButtonExport = QtWidgets.QPushButton(ItemDataExportDialog)
62
        self.pushButtonExport.setMaximumSize(QtCore.QSize(64, 24))
63
        self.pushButtonExport.setObjectName("pushButtonExport")
64
        self.horizontalLayout.addWidget(self.pushButtonExport)
65
        self.buttonBox = QtWidgets.QDialogButtonBox(ItemDataExportDialog)
66
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
67
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
68
        self.buttonBox.setObjectName("buttonBox")
69
        self.horizontalLayout.addWidget(self.buttonBox)
70
        self.gridLayout.addLayout(self.horizontalLayout, 1, 1, 1, 1)
71

  
72
        self.retranslateUi(ItemDataExportDialog)
73
        self.tabWidget.setCurrentIndex(0)
74
        self.buttonBox.accepted.connect(ItemDataExportDialog.accept)
75
        self.buttonBox.rejected.connect(ItemDataExportDialog.reject)
76
        QtCore.QMetaObject.connectSlotsByName(ItemDataExportDialog)
77

  
78
    def retranslateUi(self, ItemDataExportDialog):
79
        _translate = QtCore.QCoreApplication.translate
80
        ItemDataExportDialog.setWindowTitle(_translate("ItemDataExportDialog", "리스트 출력"))
81
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLineList), _translate("ItemDataExportDialog", "라인 리스트"))
82
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabEquipmentList), _translate("ItemDataExportDialog", "장치 리스트"))
83
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabInstrumentList), _translate("ItemDataExportDialog", "계장 리스트"))
84
        self.pushButtonExport.setText(_translate("ItemDataExportDialog", "Export"))
85

  
86

  
87
if __name__ == "__main__":
88
    import sys
89
    app = QtWidgets.QApplication(sys.argv)
90
    ItemDataExportDialog = QtWidgets.QDialog()
91
    ui = Ui_ItemDataExportDialog()
92
    ui.setupUi(ItemDataExportDialog)
93
    ItemDataExportDialog.show()
94
    sys.exit(app.exec_())
95

  
DTI_PID/DTI_PID/MainWindow.py
500 500
        @date   2018.05.03
501 501
    '''
502 502
    def showLineDataList(self):
503
        from QLineDataListDialog import QLineDataListDialog
503
        from ItemDataExportDialog import QItemDataExportDialog
504 504

  
505
        self.dlgLineDataList = QLineDataListDialog(self)
505
        self.dlgLineDataList = QItemDataExportDialog(self)
506 506
        self.dlgLineDataList.exec_()
507 507

  
508 508
    '''
DTI_PID/DTI_PID/Scripts/LINE_DATA_LIST.sql
1
CREATE TABLE IF NOT EXISTS LINE_DATA_LIST (
2
	UID TEXT,
3
	lineNo TEXT,
4
	nominalDiameter TEXT,
5
	fluidCode TEXT,
6
	tagSeqNo TEXT,
7
	insulationPurpose TEXT,
8
	streamNo TEXT,
9
	phase TEXT,
10
	pressure TEXT,
11
	temperature TEXT,
12
	documentName TEXT,
13
	CONSTRAINT LINE_DATA_LIST_PK PRIMARY KEY (UID)
14
);
15
CREATE UNIQUE INDEX IF NOT EXISTS LINE_DATA_LIST_TAG_NO_IDX ON LINE_DATA_LIST (UID);
DTI_PID/DTI_PID/Shapes/QEngineeringLineNoTextItem.py
86 86
        @history    humkyung 2018.05.09 evaluate string for Tag Seq No
87 87
                    kyouho 2018.07.06 add using TextItemFactory.isLineNo method
88 88
    '''
89
    def getLineNoAttributes(self):
89
    def getLineNoAttributes(self, getLineNo = False):
90 90
        res = []
91 91

  
92 92
        try:
......
118 118
                    res.append((configs[i], result[i]))
119 119

  
120 120
            res.extend(self._attrs)
121
            if getLineNo:
122
                res.append(('Line No', self.uid))
121 123
        except Exception as ex:
122 124
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
123 125
        
DTI_PID/DTI_PID/UI/ItemDataExport.ui
1
<?xml version="1.0" encoding="UTF-8"?>
2
<ui version="4.0">
3
 <class>ItemDataExportDialog</class>
4
 <widget class="QDialog" name="ItemDataExportDialog">
5
  <property name="geometry">
6
   <rect>
7
    <x>0</x>
8
    <y>0</y>
9
    <width>1142</width>
10
    <height>709</height>
11
   </rect>
12
  </property>
13
  <property name="font">
14
   <font>
15
    <family>맑은 고딕</family>
16
   </font>
17
  </property>
18
  <property name="windowTitle">
19
   <string>리스트 출력</string>
20
  </property>
21
  <layout class="QGridLayout" name="gridLayout">
22
   <item row="0" column="1">
23
    <widget class="QTabWidget" name="tabWidget">
24
     <property name="currentIndex">
25
      <number>0</number>
26
     </property>
27
     <widget class="QWidget" name="tabLineList">
28
      <attribute name="title">
29
       <string>라인 리스트</string>
30
      </attribute>
31
      <layout class="QGridLayout" name="gridLayout_3">
32
       <item row="0" column="0">
33
        <widget class="QTableWidget" name="tableWidgetLineDataList">
34
         <property name="columnCount">
35
          <number>11</number>
36
         </property>
37
         <attribute name="verticalHeaderVisible">
38
          <bool>false</bool>
39
         </attribute>
40
         <column/>
41
         <column/>
42
         <column/>
43
         <column/>
44
         <column/>
45
         <column/>
46
         <column/>
47
         <column/>
48
         <column/>
49
         <column/>
50
         <column/>
51
        </widget>
52
       </item>
53
      </layout>
54
     </widget>
55
     <widget class="QWidget" name="tabEquipmentList">
56
      <attribute name="title">
57
       <string>장치 리스트</string>
58
      </attribute>
59
      <layout class="QGridLayout" name="gridLayout_5">
60
       <item row="0" column="0">
61
        <widget class="QTableWidget" name="tableWidgetEquipmentDataList">
62
         <property name="columnCount">
63
          <number>5</number>
64
         </property>
65
         <attribute name="verticalHeaderVisible">
66
          <bool>false</bool>
67
         </attribute>
68
         <column/>
69
         <column/>
70
         <column/>
71
         <column/>
72
         <column/>
73
        </widget>
74
       </item>
75
      </layout>
76
     </widget>
77
     <widget class="QWidget" name="tabInstrumentList">
78
      <attribute name="title">
79
       <string>계장 리스트</string>
80
      </attribute>
81
      <layout class="QGridLayout" name="gridLayout_7">
82
       <item row="0" column="0">
83
        <widget class="QTableWidget" name="tableWidgetInstrumentDataList">
84
         <property name="columnCount">
85
          <number>7</number>
86
         </property>
87
         <attribute name="verticalHeaderVisible">
88
          <bool>false</bool>
89
         </attribute>
90
         <column/>
91
         <column/>
92
         <column/>
93
         <column/>
94
         <column/>
95
         <column/>
96
         <column/>
97
        </widget>
98
       </item>
99
      </layout>
100
     </widget>
101
    </widget>
102
   </item>
103
   <item row="1" column="1">
104
    <layout class="QHBoxLayout" name="horizontalLayout">
105
     <item>
106
      <widget class="QComboBox" name="comboBoxDoc"/>
107
     </item>
108
     <item>
109
      <widget class="QPushButton" name="pushButtonExport">
110
       <property name="maximumSize">
111
        <size>
112
         <width>64</width>
113
         <height>24</height>
114
        </size>
115
       </property>
116
       <property name="text">
117
        <string>Export</string>
118
       </property>
119
      </widget>
120
     </item>
121
     <item>
122
      <widget class="QDialogButtonBox" name="buttonBox">
123
       <property name="orientation">
124
        <enum>Qt::Horizontal</enum>
125
       </property>
126
       <property name="standardButtons">
127
        <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
128
       </property>
129
      </widget>
130
     </item>
131
    </layout>
132
   </item>
133
  </layout>
134
 </widget>
135
 <resources/>
136
 <connections>
137
  <connection>
138
   <sender>buttonBox</sender>
139
   <signal>accepted()</signal>
140
   <receiver>ItemDataExportDialog</receiver>
141
   <slot>accept()</slot>
142
   <hints>
143
    <hint type="sourcelabel">
144
     <x>248</x>
145
     <y>254</y>
146
    </hint>
147
    <hint type="destinationlabel">
148
     <x>157</x>
149
     <y>274</y>
150
    </hint>
151
   </hints>
152
  </connection>
153
  <connection>
154
   <sender>buttonBox</sender>
155
   <signal>rejected()</signal>
156
   <receiver>ItemDataExportDialog</receiver>
157
   <slot>reject()</slot>
158
   <hints>
159
    <hint type="sourcelabel">
160
     <x>316</x>
161
     <y>260</y>
162
    </hint>
163
    <hint type="destinationlabel">
164
     <x>286</x>
165
     <y>274</y>
166
    </hint>
167
   </hints>
168
  </connection>
169
 </connections>
170
</ui>

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)