프로젝트

일반

사용자정보

개정판 a2cbb1b1

IDa2cbb1b1263f450373ca021a4376fc80f292eef1
상위 b76684bd
하위 611e39d5

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

issue #1464: hmb data on list test

Change-Id: I0c1171e88077c13967e6eb96186a8fd63f1e0554

차이점 보기:

DTI_PID/DTI_PID/ItemDataExportDialog.py
350 350
        self.valveColumnListAll.append('Drawing Name')
351 351
        self.instColumnListAll = ['UID', 'ITEM_NO']
352 352
        self.instColumnListAll.extend([prop.Attribute for prop in app_doc_data.get_instrument_attributes()])
353
        self.instColumnListAll = self.add_hmb_header(self.instColumnListAll)
353 354
        self.instColumnListAll.append('Drawing Name')
354 355
        self.noteColumnListAll = ['UID', 'ITEM_NO']
355 356
        self.noteColumnListAll.extend([prop.Attribute for prop in app_doc_data.get_note_attributes()])
......
424 425
        @brief      sort columns
425 426
        @author     humkyung 
426 427
    '''
427

  
428 428
    def sortListOrder(self):
429 429
        try:
430 430
            docData = AppDocData.instance()
......
479 479
                                                          sys.exc_info()[-1].tb_lineno)
480 480
            App.mainWnd().addMessage.emit(MessageType.Error, message)
481 481

  
482
    def add_hmb_header(self, header_list):
483
        ''' add hmb data header '''
484
        app_doc_data = AppDocData.instance()
485
        hmb_datas = app_doc_data.get_hmb_data(None)
486
        names = ['PHASE']
487
        if hmb_datas:
488
            for data in hmb_datas[0].data:
489
                if data.name not in names:
490
                    names.append(data.name)
491
        header_list.extend(names)
492

  
493
        return header_list
494

  
495
    def add_hmb_data(self, hmb_datas, dataList):
496
        ''' add hmb data dependon stream no '''
497
        dataList_backup = dataList.copy()
498
        try:
499
            names = []
500
            if hmb_datas:
501
                for data in hmb_datas[0].data:
502
                    if data.name not in names:
503
                        names.append(data.name)
504
            else:
505
                return dataList
506

  
507
            for data in dataList:
508
                matches = [key for key in data.keys() if key == 'Stream No']
509
                if matches and data[matches[0]] != '' and data[matches[0]] != 'None':
510
                    stream_no = data[matches[0]]
511

  
512
                    matches = [hmb_data for hmb_data in hmb_datas if hmb_data.stream_no == stream_no]
513
                    if matches:
514
                        hmb_data = matches[0]
515
                        phase = hmb_data.phase
516

  
517
                        if phase and phase == 'Two':
518
                            phase = 'LIQUID'
519
                        elif not phase:
520
                            continue
521

  
522
                        data['PHASE'] = phase
523

  
524
                        datas = hmb_data.data
525

  
526
                        for name in names:
527
                            matches = [data for data in datas if data.name == name and data.phase == phase]
528
                            if matches:
529
                                value = matches[0].value
530
                                data[name] = value
531
                            else:
532
                                matches = [data for data in datas if data.name == name]
533
                                if matches:
534
                                    value = matches[0].value
535
                                    data[name] = value
536

  
537
            return dataList
538

  
539
        except Exception as ex:
540
            from App import App
541
            from AppDocData import MessageType
542

  
543
            message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
544
                                                          sys.exc_info()[-1].tb_lineno)
545
            App.mainWnd().addMessage.emit(MessageType.Error, message)
546

  
547
        return dataList_backup
548

  
549

  
482 550
    '''
483 551
        @brief      setting line data
484 552
        @author     kyouho
485 553
        @date       2018.08.13
486 554
    '''
487

  
488 555
    def set_line_data(self):
489 556
        lineTable = self.ui.tableWidgetLineDataList
490 557
        docData = AppDocData.instance()
......
574 641
        @date       2018.08.14
575 642
    '''
576 643

  
577
    def set_instrument_data(self):
644
    def set_instrument_data(self, hmb_datas=None):
578 645
        inst_table = self.ui.tableWidgetInstrumentDataList
579 646
        app_doc_data = AppDocData.instance()
580 647

  
581 648
        # 기존 저장된 데이터 불러옴
582 649
        drawings = self.checked_drawings
583 650
        dataList = app_doc_data.get_instrument_data_list(drawings if drawings else None)
651
        dataList = self.add_hmb_data(hmb_datas, dataList)
584 652
        inst_table.setRowCount(len(dataList))
585 653
        row = 0
586 654
        for data in dataList:
......
673 741

  
674 742
        QApplication.setOverrideCursor(Qt.WaitCursor)
675 743
        try:
744
            hmb_datas = AppDocData.instance().get_hmb_data(None)
745

  
676 746
            self.set_line_data()
677 747
            self.set_equipment_data()
678 748
            self.set_valve_data()
679
            self.set_instrument_data()
749
            self.set_instrument_data(hmb_datas)
680 750
            self.set_note_data()
681 751
            self.fill_special_items()
682 752
        except Exception as ex:

내보내기 Unified diff