프로젝트

일반

사용자정보

개정판 9c0bab30

ID9c0bab301ed7fb39e6372684ec881fdb503a1ace
상위 87666643
하위 67366347

함의성이(가) 약 4년 전에 추가함

issue #1465: line list save test

Change-Id: Ibc4536606cef242a5def4f8ed064f73b9eb6f2e7

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
85 85
        self._activeDrawing = None
86 86
        self._hmbTable = None
87 87
        self._hmbColors = {}
88
        self._streamLineListModel = None
88
        self._streamLineListModelDatas = None
89 89
        self._titleBlockProperties = None
90 90
        self.needReOpening = None
91 91

  
......
170 170
        self._activeDrawing = None
171 171
        self._hmbTable = None
172 172
        self._hmbColors = {}
173
        self._streamLineListModel = None
173
        self._streamLineListModelDatas = None
174 174
        self._titleBlockProperties = None
175 175

  
176 176
        self._configs = None
......
3964 3964

  
3965 3965
    def saveToDatabase(self, items, rect: QRectF, show_progress=None):
3966 3966
        """ save given items to database """
3967
        import uuid
3968

  
3967 3969
        # delete all datas of current drawing
3968 3970
        drawing_name = self.activeDrawing.name
3969 3971
        drawing_uid = self.activeDrawing.UID
......
4022 4024
                sql = "delete from Components where Drawings_UID='{}'".format(drawing_uid)
4023 4025
                cursor.execute(sql)
4024 4026

  
4027
                # delete Stream Line List
4028
                sql = "delete from Stream_Line_List where Drawing_UID='{}'".format(drawing_uid)
4029
                cursor.execute(sql)
4030

  
4025 4031
                progress = 0
4026 4032
                length = len(queries['first']) + len(queries['second'])
4027 4033
                for sql in queries['first']:
......
4050 4056
                        show_progress.emit(int((progress / length)*100))
4051 4057
                    progress += 1
4052 4058

  
4059
                # save Stream No Line List
4060
                for model_data in self._streamLineListModelDatas:
4061
                    sql = f"insert into Stream_Line_List (UID, Drawing_UID, PnIDNumber, Tag_Seq_No, PipingMaterialsClass, InsulationPurpose, FluidCode, " \
4062
                          f"UnitNumber, NominalDiameter, [From], [To], Stream_No) values(?,?,?,?,?,?,?,?,?,?,?,?)"
4063
                    params = (str(uuid.uuid4()), drawing_uid, model_data['PnIDNumber'], model_data['Tag Seq No'], model_data['PipingMaterialsClass'], model_data['InsulationPurpose'], \
4064
                              model_data['FluidCode'], model_data['UnitNumber'], model_data['NominalDiameter'], model_data['FROM'], model_data['TO'], model_data['Stream No'])
4065
                    cursor.execute(sql, params)
4066

  
4053 4067
                if show_progress:
4054 4068
                    show_progress.emit(99)
4055 4069

  
DTI_PID/DTI_PID/LineListDialog.py
56 56
        self.initListOrder()
57 57

  
58 58
        datas = self.make_line_list_data()
59
        self._model = self.fill_data(datas)
59
        self._model_datas = self.fill_data(datas)
60 60

  
61 61
        self.ui.buttonBox.button(QDialogButtonBox.Save).clicked.connect(self.export_line_list)
62 62
        self.ui.buttonBox.button(QDialogButtonBox.Close).clicked.connect(self.reject)
......
122 122
        if dlg.exec_():
123 123
            datas = self.make_line_list_data()
124 124
            self.initListOrder()
125
            self._model = self.fill_data(datas)
125
            self._model_datas = self.fill_data(datas)
126 126

  
127 127
    def listCellClicked(self, index):
128 128
        from HighlightCommand import HighlightCommand
......
317 317
            app_doc_data = AppDocData.instance()
318 318
            hmb_datas = app_doc_data.get_hmb_data(None)
319 319

  
320
            if (self.parent() and app_doc_data._streamLineListModel is None) or not self.parent():
320
            if (self.parent() and app_doc_data._streamLineListModelDatas is None) or not self.parent():
321 321
                row_datas = self.make_valid_data(datas)
322 322

  
323 323
                model_datas = []
......
382 382
                            if matches:
383 383
                                value = matches[0].value
384 384
                                items.append(QStandardItem(value)) if type(value) is str else items.append(value)
385
                                model_data[name] = value if type(value) is str value.text()
385
                                model_data[name] = value if type(value) is str else value.text()
386 386
                            else:
387 387
                                matches = [data for data in datas if data.name == name]
388 388
                                if matches:
389 389
                                    value = matches[0].value
390 390
                                    items.append(QStandardItem(value)) if type(value) is str else items.append(value)
391
                                    model_data[name] = value if type(value) is str value.text()
391
                                    model_data[name] = value if type(value) is str else value.text()
392 392
                                else:
393 393
                                    items.append(QStandardItem('')) if type(value) is str else items.append(value)
394
                                    model_data[name] = value if type(value) is str value.text()
394
                                    model_data[name] = value if type(value) is str else value.text()
395 395

  
396 396
                    model.appendRow(items)
397 397
                    model_datas.append(model_data)
398 398
            else:
399
                pass
400
                #model = app_doc_data._streamLineListModel
399
                model_datas = app_doc_data._streamLineListModelDatas
401 400

  
402 401
            model.setHorizontalHeaderLabels([header[1] for header in headers])
403 402

  
DTI_PID/DTI_PID/LineNoTracer.py
724 724
    cmd.execute(worker.scene)
725 725

  
726 726
    dialog = LineListDialog(None, scene=worker.scene)
727
    AppDocData.instance()._streamLineListModel = dialog._model
727
    AppDocData.instance()._streamLineListModelDatas = dialog._model_datas
728
    print('a')
728 729

  
729 730
def make_end_break(worker, end_breaks, lineNos):
730 731
    ''' make end break '''
DTI_PID/DTI_PID/Scripts/MSSQL/ID2.sql
3271 3271
	PRIMARY KEY([UID]),
3272 3272
	FOREIGN KEY([Stream_No_UID]) REFERENCES [Stream_No]([UID]) ON DELETE CASCADE,
3273 3273
	FOREIGN KEY([HMB_LIST_UID]) REFERENCES [HMB_LIST]([UID]) ON DELETE CASCADE
3274
);
3275

  
3276
CREATE TABLE Stream_Line_List (
3277
	[UID]	VARCHAR ( 37 ) NOT NULL,
3278
	[Drawing_UID]	VARCHAR ( 37 ),
3279
	[PnIDNumber]	VARCHAR ( 100 ),
3280
	[Tag_Seq_No]	VARCHAR ( 100 ),
3281
	[PipingMaterialsClass]	VARCHAR ( 100 ),
3282
	[InsulationPurpose]	VARCHAR ( 100 ),
3283
	[FluidCode]	VARCHAR ( 100 ),
3284
	[UnitNumber]	VARCHAR ( 100 ),
3285
	[NominalDiameter]	VARCHAR ( 100 ),
3286
	[From]	VARCHAR ( 100 ),
3287
	[To]	VARCHAR ( 100 ),
3288
	[Stream_No]	VARCHAR ( 100 ),
3289
	FOREIGN KEY([Drawing_UID]) REFERENCES [Drawings]([UID]) ON DELETE CASCADE,
3290
	PRIMARY KEY([UID])
3274 3291
);
DTI_PID/DTI_PID/Scripts/SQLite_Project.tables.sql
114 114
	PRIMARY KEY(`UID`),
115 115
	FOREIGN KEY(`Stream_No_UID`) REFERENCES `Stream_No`(`UID`) ON DELETE CASCADE,
116 116
	FOREIGN KEY(`HMB_LIST_UID`) REFERENCES `HMB_LIST`(`UID`) ON DELETE CASCADE
117
);
118

  
119
CREATE TABLE IF NOT EXISTS `Stream_Line_List` (
120
	`UID`	VARCHAR ( 37 ) NOT NULL,
121
	`Drawing_UID`	VARCHAR ( 37 ),
122
	`PnIDNumber`	VARCHAR ( 100 ),
123
	`Tag_Seq_No`	VARCHAR ( 100 ),
124
	`PipingMaterialsClass`	VARCHAR ( 100 ),
125
	`InsulationPurpose`	VARCHAR ( 100 ),
126
	`FluidCode`	VARCHAR ( 100 ),
127
	`UnitNumber`	VARCHAR ( 100 ),
128
	`NominalDiameter`	VARCHAR ( 100 ),
129
	`From`	VARCHAR ( 100 ),
130
	`To`	VARCHAR ( 100 ),
131
	`Stream_No`	VARCHAR ( 100 ),
132
	FOREIGN KEY(`Drawing_UID`) REFERENCES `Drawings`(`UID`) ON DELETE CASCADE,
133
	PRIMARY KEY(`UID`)
117 134
);

내보내기 Unified diff

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