def icDateRangeSTDDlg(parent=None,DefaultDateRange_=None): """ Стандартный диалог выбора диапазона дат. """ result=None #Подготовить пространство имен evsp=util.InitEvalSpace({'default': DefaultDateRange_}) #Создать форму is_new_parent=False if parent is None: #Если необходимо то создать родительское окно parent=wx.Frame(None,-1,'') is_new_parent=True try: result=icResourceParser.ResultForm('date_range_dlg',parent=parent,evalSpace=evsp,bBuff=False) except: ic_log.icLogErr(u'Ошибка стандартного диалога выбора диапазона дат.') #Если необходимо то удалить родительское окно if is_new_parent: parent.Destroy() parent=None return result
def __init__(self, parent): self.evalSpace = util.InitEvalSpace() self.__obj = prs.icBuildObject(parent, resource, evalSpace=self.evalSpace, bIndicator=False) self.object = self.evalSpace['_root_obj']
def __init__(self, parent, table='analitic', ext='tab'): self.evalSpace = util.InitEvalSpace() self.evalSpace['WrapperObj'] = self # Устанавливаем имя таблицы self._setRSSourcePsp(table, ext) self.__obj = prs.icBuildObject(parent, resource, evalSpace=self.evalSpace, bIndicator=False) self.object = self.evalSpace['_root_obj']
def __init__(self, parent, Node_): """ Конструктор. """ icprjnodeviewer.icPrjNodeViewerInterface.__init__(self, parent, Node_) eval_space = util.InitEvalSpace() icResTree.icResTree.__init__(self, parent, evalSpace=eval_space) self._full_res_file_name = Node_.getFullResFileName() # Прочитать ресурс res = self._getNodeRes(Node_) self.parseTree(res[res.keys()[0]]) self.Expand(self.root)
def getValue(self): """ Текущее значение. """ if self._driver: src_name = self.getSrcName() getvalue = self.getGetValueFunc() if getvalue: #Выполнение функции получения данных evs = util.InitEvalSpace({ 'self': self, 'driver': self._driver, 'src_name': src_name }) return util.ic_eval(getvalue, evalSpace=evs)[1] elif src_name: return self._driver.getDataByName(src_name) else: return self.getDefault() return None
def __init__(self, parent, typeInfo=None): """ """ self._info = typeInfo self.evalSpace = util.InitEvalSpace() self.evalSpace['WrapperObj'] = self self.__obj = prs.icBuildObject(parent, resource, evalSpace=self.evalSpace, bIndicator=False) self.object = self.evalSpace['_root_obj'] self.typeList = None if typeInfo: choice = self.evalSpace['_dict_obj']['typeChoice'] choice.Clear() typeList = typeInfo.keys() typeList.sort() self.typeList = typeList for item in typeList: choice.Append(str(item))
def Edit(self, ParentCode_=(None, ), ParentForm_=None): """ Запуск окна редактирования справочника/перечисления. @param ParentCode: Код более верхнего уровня. @param ParentForm_: Родительская форма. @return: Возвращает результат выполнения опереции True/False. """ try: if ParentCode_ is None: ParentCode_ = (None, ) # Для обработки необходимо преобразовать в список parent_code = list(ParentCode_) # Запрашиваемый уровень x_level = parent_code.index(None) parent_code_str = ''.join(parent_code[:x_level]) # Если запрашиваемый уровень больше общего количества уровней, то выйти # Нет такого уровня в справочнике if self.getLevelCount() <= x_level: io_prnt.outWarning(u'Не корректный номер уровня <%d>' % x_level) return False # определить длину кода уровня level_len = self.getLevels()[x_level].getCodLen() if level_len is None: ic_dlg.icMsgBox(u'ОШИБКА', u'Не определена длина кода уровня!') return False parent_len = len(parent_code_str) # Имя таблицы данных tab_name = self.getTableName() # Имя формы редактрования справочника/перечисления form = self.getLevels()[x_level].getEditFormName() # Если форма не определена в уровне, то # значит взять форму из описания справочник if form is None: form = self.getEditFormName() if not form: # Форма не определена return icspraveditdlg.edit_sprav_dlg(parent=ParentForm_, nsi_sprav=self) # if form is None: # ic_dlg.icMsgBox(u'ОШИБКА', u'Не определена форма редактирования уровня!') # return False sql = '''SELECT id FROM %s WHERE SUBSTR(%s.cod,1,%d) LIKE(\'%s\') AND LENGTH(SUBSTR(%s.cod,%d,LENGTH(%s.cod)-%d))=%d''' % ( tab_name, tab_name, parent_len, parent_code_str, tab_name, parent_len + 1, tab_name, parent_len, level_len) # Инициализация пространства имен формы редактирования справочника evsp = util.InitEvalSpace({'OBJ': self}) ok = icResourceParser.ResultForm( form, filter={tab_name: sql}, evalSpace=evsp, parent=ParentForm_, bBuff=self.getAutoCacheFrm(), key=self.GetUUID() + '_' + self.ListCode2StrCode(parent_code)) return ok except: io_prnt.outErr(u'СПРАВОЧНИК [%s] Ошибка редактирования' % self.name) return False
def Hlp(self, ParentCode=(None, ), field=None, form=None, parentForm=None, DateTime_=None, default_selected_code=None, view_fields=None, search_fields=None): """ Запуск визуального интерфейса просмотра, поиска и выбора значений поля или группы полей из отмеченной строки указанного справочника. @type ParentCode: C{...} @param ParentCode: Код более верхнего уровня. @param field: Задает поле или группу полей, которые надо вернуть. Полу задается строкой. Поля задаются словарем. @param form: имя формы визуального интерфейса работы со справочником. @param parentForm: Родительская форма. @type DateTime_: C{string} @param DateTime_: Время актуальности кода. @param default_selected_code: Выбранный код по умолчанию. Если None, то ничего не выбирается. @param view_fields: Список имен полей для просмотра. Если не определено то отображаются <Код> и <Наименование>. @param search_fields: Список имен полей для поиска. Если не определено то поиск только по <Код> и <Наименование>. @return: Код ошибки, Результат выбора """ result = IC_HLP_OK res_val = None try: if ParentCode is None: ParentCode = (None, ) # Для обработки необходимо преобразовать в список parent_code = list(ParentCode) # Запрашиваемый уровень x_level = parent_code.index(None) # Если запрашиваемый уровень больше общего количества уровней, то выйти # Нет такого уровня в справочнике if self.getLevelCount() <= x_level: io_prnt.outWarning(u'Не корректный номер уровня %d' % x_level) return IC_HLP_FAILED_LEVEL, res_val # определить длину кода уровня level_len = self.getLevels()[x_level].getCodLen() if level_len is None: ic_dlg.icMsgBox(u'ОШИБКА', u'Не определена длина кода уровня!') return IC_HLP_FAILED_LEVEL, res_val result = IC_HLP_FAILED # Определить форму выбора кода if form is None: form = self.getLevels()[x_level].getHelpFormName() # Если форма не определена в уровне, то # значит взять форму из описания справочник if form is None: form = self.getChoiceFormName() if not form: # Форма выбора не определена # обработка штатной функцией code = icspravchoicetreedlg.choice_sprav_dlg( parent=parentForm, nsi_sprav=self, fields=view_fields, default_selected_code=default_selected_code, search_fields=search_fields) if code: return IC_HLP_OK, code, self.getFields(field, code) return IC_HLP_FAILED_IGNORE, code, None # if form is None: # ic_dlg.icMsgBox(u'ОШИБКА', u'Не определена форма выбора кода!') # return False # Вывести окно и возвратить выбранный код self._hlp_param = { 'sprav_code': parent_code, 'sprav_field': field, } evsp = util.InitEvalSpace({'OBJ': self}) io_prnt.outLog(' .... begin:!!!!!') res_val = icResourceParser.ResultForm( form, evalSpace=evsp, parent=parentForm, bBuff=self.getAutoCacheFrm(), key=self.GetUUID() + '_' + self.ListCode2StrCode(parent_code)) if res_val is None: # Нажали ESC result = IC_HLP_FAILED_IGNORE elif type(res_val) in (list, tuple): return res_val else: result = IC_HLP_OK except: io_prnt.outErr(u'СПРАВОЧНИК [%s] Ошибка в методе Hlp' % self._name) result = IC_HLP_FAILED_TYPE_SPRAV return result, res_val, self.getFields(field, res_val)