示例#1
0
 def addCalendarLevelsSPC(self,ComponentSpc_):
     """
     Сразу задается структура календаря из 3-х уровней: Год, Месяц, Число.
     """
     year_spc=util.DeepCopy(spravlevel.ic_class_spc)
     year_spc['name']='Year'
     year_spc['len']=4
     year_spc['notice']={'cod':'Год','name':'Наименование'}
     month_spc=util.DeepCopy(spravlevel.ic_class_spc)
     month_spc['name']='Month'
     month_spc['len']=2
     month_spc['notice']={'cod':'Код','name':'Месяц'}
     day_spc=util.DeepCopy(spravlevel.ic_class_spc)        
     day_spc['name']='Day'
     day_spc['len']=2
     day_spc['notice']={'cod':'Код','name':'Число',
         'n1':'День недели','n2':'Нераб.','n3':'Празд.',
         'f1':'Коэф.1','f2':'Коэф.2','f3':'Коэф.3',}
     
     ComponentSpc_['child']=[year_spc,month_spc,day_spc]
     return ComponentSpc_
示例#2
0
    def _getNSIFieldsSpc(self, NSIRes_, NSIType_, FieldNames_):
        """
        Взять спецификацию поля справочника.
        @param NSIRes_: Имя ресурсного файла справочника.
        @param NSIType_: Тип справочника.
        @param FieldNames_: Список имен полей справочника.
        """
        if NSIRes_ is None:
            nsi_res_name = 'nsi_sprav'
            nsi_res_ext = 'mtd'
        else:
            nsi_res = ic_file.SplitExt(ic_file.BaseName(NSIRes_))
            nsi_res_name = nsi_res[0]
            nsi_res_ext = nsi_res[1][1:]  # И стереть первую точку

        # Получить ресурсное описание справочника
        nsi_sprav_manager_res = resource.icGetRes(nsi_res_name,
                                                  nsi_res_ext,
                                                  nameRes=nsi_res_name)
        if nsi_sprav_manager_res['name'] == NSIType_:
            # Справочник определен просто в ресурсе
            nsi_sprav_res = [nsi_sprav_manager_res]
        else:
            # Справочник определен в менеджере справочников
            nsi_sprav_res = [
                sprav for sprav in nsi_sprav_manager_res['child']
                if sprav['name'] == NSIType_
            ]
        if not nsi_sprav_res:
            ic.io_prnt.outWarning(u'Не найден справочник <%s> в ресурсе [%s]' %
                                  (NSIType_, NSIRes_))
            return None
        nsi_sprav_res = nsi_sprav_res[0]
        # Получить ресурсное описание полей
        nsi_tab_psp = nsi_sprav_res['table']
        if nsi_tab_psp:
            nsi_tab_name = nsi_tab_psp[0][1]
        else:
            nsi_tab_name = 'nsi_data'
        nsi_tab_spc = resource.icGetRes(nsi_tab_name,
                                        'tab',
                                        nameRes=nsi_tab_name)
        nsi_fields_spc = [
            util.DeepCopy(field_spc) for field_spc in [
                fld for fld in nsi_tab_spc['child']
                if fld['name'] in FieldNames_
            ]
        ]
        return nsi_fields_spc
示例#3
0
    def _createFieldSpc(self, ConvertFieldSpc_):
        """
        Создать спецификацию поля результирующей таблицы из поля конвертации.
        """
        field_spc = util.icSpcDefStruct(
            util.DeepCopy(ic_field_wrp.ic_class_spc), None)
        field_spc['name'] = ConvertFieldSpc_['name']
        field_spc['description'] = ConvertFieldSpc_['description']
        field_spc['field'] = ConvertFieldSpc_['field']
        field_spc['type_val'] = ConvertFieldSpc_['type_val']
        field_spc['len'] = ConvertFieldSpc_['len']
        field_spc['attr'] = ConvertFieldSpc_['attr']
        field_spc['default'] = ConvertFieldSpc_['default']

        return field_spc
示例#4
0
    def _createTabSpc(self, TableName_=None):
        """
        Создать спецификацию результирующей таблицы.
        @param TableName_: Имя результирующей таблицы.
        """
        tab_spc = util.icSpcDefStruct(util.DeepCopy(ic_tab_wrp.ic_class_spc),
                                      None)
        #Установить свойства таблицы
        if TableName_ is None:
            TableName_ = self.getTableName()
        tab_spc['name'] = TableName_
        tab_spc['description'] = self.resource['description']
        tab_spc['table'] = TableName_.lower()
        tab_spc['source'] = self.getDBName()

        return tab_spc
示例#5
0
    def addEnumLevelsSPC(self, ComponentSpc_):
        """
        Сразу задается структура из 1 уровня.
        """
        level_spc = util.DeepCopy(spravlevel.ic_class_spc)
        level_spc['name'] = 'Enum'
        level_spc['len'] = 10
        level_spc['description'] = 'Перечисление:'
        level_spc['notice'] = {
            'cod': 'Имя перечисления',
            'name': 'Описание',
            's1': 'Тип значения'
        }

        ComponentSpc_['child'] = [level_spc]
        return ComponentSpc_
示例#6
0
    def addConstantsLevelsSPC(self, ComponentSpc_):
        """
        Сразу задается структура из 1 уровня.
        """
        level_spc = util.DeepCopy(spravlevel.ic_class_spc)
        level_spc['name'] = 'Constants'
        level_spc['len'] = 10
        level_spc['description'] = 'Константы:'
        level_spc['notice'] = {
            'cod': 'Имя константы',
            'name': 'Описание',
            's1': 'Тип значения'
        }

        ComponentSpc_['child'] = [level_spc]
        return ComponentSpc_
示例#7
0
    def _getREFFieldsSpc(self, RefObjRes_, RefObjName_, FieldNames_):
        """
        Взять спецификацию поля связи с бизнес объектом/документом.
        @param RefObjRes_: Имя ресурсного файла связи с бизнес объектом/документом.
        @param RefObjName_: Имя бизнес объекта/документа.
        @param FieldNames_: Список имен полей.
        """
        if RefObjRes_ is None:
            log.warning(
                u'Не определено имя ресурсного файла связи с бизнес объектом/документом.'
            )
            return None

        obj_res = os.path.splitext(os.path.basename(RefObjRes_))
        obj_res_name = obj_res[0]
        obj_res_ext = obj_res[1][1:]  # И стереть первую точку

        # Получить ресурсное описание
        obj_res = resource.icGetRes(obj_res_name,
                                    obj_res_ext,
                                    nameRes=obj_res_name)

        if not obj_res:
            log.warning(u'Не найден ресурс <%s>' % RefObjName_)
            return None

        # Получить ресурсное описание полей
        obj_tab_name = str(obj_res['name']).lower() + '_tab'
        obj_tab_spc = resource.icGetRes(obj_tab_name,
                                        'tab',
                                        nameRes=obj_tab_name)

        obj_fields_spc = [
            util.DeepCopy(field_spc) for field_spc in [
                fld for fld in obj_tab_spc['child']
                if fld['name'] in FieldNames_
            ]
        ]
        return obj_fields_spc
示例#8
0
 def init_data(self):
     """
     Инициализация объекта.
     """
     # Устаонвить значение по умолчанию
     self.value = util.DeepCopy(self.getDefaults())