Beispiel #1
0
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
Beispiel #2
0
 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']
Beispiel #3
0
    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']
Beispiel #4
0
    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)
Beispiel #5
0
 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
Beispiel #6
0
    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))
Beispiel #7
0
    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
Beispiel #8
0
    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)