Как снять объединение ячеек спецификации?

Автор Тема: Как снять объединение ячеек спецификации?  (Прочитано 7218 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Добрый день, коллеги!

Подскажите, если кто знает, каким методом нужно воспользоваться для того, чтобы снять объединение ячеек в спецификации?

Я умею объединять ячейки, а вот как снять объединение - это вопрос. По аналогии с пользовательским интерфейсом это тоже должен быть метод MergeCells, но опять вопрос как?

Объединение ячеек выполняется так:

Код - vb.net [Выбрать]
  1.                 Using transaction As New Transaction(Doc, "Merge cells")
  2.                     transaction.Start()
  3.                     rvtTableDataHeader.MergeCells(New TableMergedCell(1, 0, 2, 1))
  4.                     transaction.Commit()
  5.                 End Using

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Евгений, напрашивается метод UnmergeCells, но такого не наблюдается. С помощью метода MergeCells разъединить ячейки не выйдет. По крайней мере ни документация, ни собственные эксперименты не выявили ничего подобного. Задам вопрос в техподдержку.
Но тем не менее у меня есть идейка как снять объединение. Путем создания новых строк/столбцов, копирования туда информации из объединенной ячейки и последующим ее удалением. По позже могу попробовать реализовать.

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Но тем не менее у меня есть идейка как снять объединение. Путем создания новых строк/столбцов, копирования туда информации из объединенной ячейки и последующим ее удалением. По позже могу попробовать реализовать.

Буду очень признателен за любой проблеск в решении.



Однако наблюдения ради сообщу, что при снятии объединения ячеек я могу видеть значения тех ячеек, которые были скрыты объединением. Если бы можно было считывать значения с тех ячеек, которые внутри объединенной, то в принципе мне этого было бы достаточно.

Постараюсь объяснить:
1. Если вы создадите две строки и два столбца (то есть 4 ячейки всего), а затем заполните все 4 ячейки данными, то при их объединении в одну ячейку будет значение ячейки (0,0)
2. Если снова разбить через пользовательский интерфейс ячейку, то мы снова получим 4 ячейки с их исходными значениями. Вот мне эти значения как раз и нужны.
3. Это ещё не всё - мне нужно будет переобъединить ячейки уже с другими ячейками. Каждый раз отлавливать ячейки и пересоздавать строки со значениями будет не простой задачей. Особенно если файлы со спецификациями сторонние. Но опять же это тоже будет каким-то решением.

Оффлайн Илья Дрягин

  • ADN OPEN
  • Сообщений: 25
  • Карма: 2
  • Стройтэкпроект
Насколько я помню, мы решали подобную задачу (с разделением объединенных ячеек) с помощью SetMergedCell путем перебора всех объединенных ячеек и задания для них диапазона, равного 1 ячейке. По поводу значений сказать не могу, но если в UI значения сохраняются, то возможно значения можно получить из ячейки обратившись по ее строке и столбцу

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
возможно значения можно получить из ячейки обратившись по ее строке и столбцу

Вы правы - возможно :)

мы решали подобную задачу (с разделением объединенных ячеек) с помощью SetMergedCell путем перебора всех объединенных ячеек и задания для них диапазона, равного 1 ячейке

Если есть такое решение - дайте посмотреть на него :)



Однако, меня всё-таки интересует не то как это можно обойти, а как это сделать средствами API, если таковы существуют.
Если нет метода раз'объединения ячеек, то я решу это иным способом.

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Drakus, подскажите, Вы случаем не так разбивали ячейки?

Код - vb.net [Выбрать]
  1. SetMergedCell(0,0, New TableMergedCell(0,0,1,1))

Оффлайн Илья Дрягин

  • ADN OPEN
  • Сообщений: 25
  • Карма: 2
  • Стройтэкпроект
К сожалению кода самого не сохранилось, делали ради пробы.
по логике объединенные ячейки разбиваются так (для каждой из объединенных):
Код - C# [Выбрать]
  1. SetMergedCell(0,0, new TableMergedCell(0,0,0,0));
  2. SetMergedCell(0,1, new TableMergedCell(0,1,0,1));
  3.  

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Попробую и отпишусь!

Что-то не получается )))
« Последнее редактирование: 17-10-2016, 14:43:47 от Пашин Евгений »

Отмечено как Решение Пашин Евгений 31-10-2016, 08:48:56

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Что-то не получается )))
А у меня кажется получилось. Надеюсь, что еще актуально:). Написал по этому поводу статью

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Надеюсь, что еще актуально:)

Ещё как :) Спасибо!!!



Yes, работает!!!