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_
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
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
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
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_
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_
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
def init_data(self): """ Инициализация объекта. """ # Устаонвить значение по умолчанию self.value = util.DeepCopy(self.getDefaults())