def _getBasisRow(self): """ Базисная строка, относительно которой происходит работа с индексами строк. """ if self._basis_row is None: self._basis_row = icrange.icVRow(self) return self._basis_row
def createRow(self): """ Создать строку. """ row = icrange.icVRow(self) attrs = row.create() return row
def _createRowIdx(self, Idx_, i_): """ Создать строку с индексом. """ row = icrange.icVRow(self) for i, child in enumerate(self._attributes['children']): if child['name'] == 'Row': if i >= i_: attrs = row.create_idx(i) self._reIndexRow(row, Idx_, i) break return row
def getRow(self, Idx_=-1): """ Взять строку по индексу. """ row = None idxs, _i, row_data = self._findRowIdxAttr(Idx_) if row_data is not None: row = icrange.icVRow(self) row.set_attributes(row_data) else: for i in idxs: if Idx_ <= i: return self._createRowIdx(Idx_, _i) return self.createRow() return row
def cloneRow(self, bClearCell=True, iRow=-1): """ Клонировать строку таблицы. @param bClearCell: Очистить значения в ячейках. @param iRow: Индекс(Начинаяется с 0) клонируемой ячейки. -1 - Последняя. @return: Возвращает объект клонированной строки. Если строк в таблице нет, то возвращает None. """ if self._attributes['children']: row_attr = copy.deepcopy(self._attributes['children'][iRow]) if bClearCell: row_attr['children'] = [ dict(cell.items() + [('value', None)]) for cell in row_attr['children'] ] row = icrange.icVRow(self) row.set_attributes(row_attr) return row return None