Как обновить поля в таблице?

Автор Тема: Как обновить поля в таблице?  (Прочитано 41175 раз)

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

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Как обновить поля в таблице?
« Ответ #45 : 16-08-2016, 15:35:25 »
Boxa.Shu, Александр Ривилис, ну ладно-ладно :), пусть будет дело вкуса. Лично мне проще вот так:
Код - C# [Выбрать]
  1. "Спецификация к арматурному каркасу " + "%<\\AcObjProp Object(%<\\_ObjId " + markaField + ">%).TextString>%";
еще бы разобраться как записывать формулы из полей с помощью метода 
tb.Cells[2, 2].Contents[0].Formula = ""; и вообще было бы сказочно.
Я вот взялся, да угомонился, пока что решил, что по усилиям будет несоизмеримо - создавать поля-формулы.
Я не понял, что ты имеешь в виду.
Думаю Boxa.Shu имеет в виду нечто типа(только в таблице):

Но в любом случае проще всего это проделать вручную (если это возможно), а затем поизучать при помощи ARXDBG/MGDDBG результаты и повторить их в коде.
А я вот так не умею (подозреваю, что скрины в некоторых темах от Вас делались именно из этого метода). Может, можно где-то почитать про такого рода изучение результатов?

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Как обновить поля в таблице?
« Ответ #46 : 16-08-2016, 15:42:57 »
Лично мне проще вот так:
Так то проще, но так создавая в ячейках каждый раз новое поле - захламлем базу чертежа, а при вставке через объект нет,
одно и тоже поле можно сунуть в десяток ячеек.

Но в любом случае проще всего это проделать вручную (если это возможно), а затем поизучать при помощи ARXDBG/MGDDBG результаты и повторить их в коде.
Попробую, хотя и не совсем понимаю как это руками сделать. Буду думать.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как обновить поля в таблице?
« Ответ #47 : 16-08-2016, 15:45:44 »
А я вот так не умею (подозреваю, что скрины в некоторых темах от Вас делались именно из этого метода). Может, можно где-то почитать про такого рода изучение результатов?
А ты уже установил ARXDBG и MGDDBG? Если нет, то качай их и разархивируй в "С:\Program Files\Autodesk\ApplicationPlugins"
Ну а потом смотри в контекстном меню AutoCAD меню ARXDBG и MGDDBG.
http://adn-cis.org/assets/gallery/AutoCAD/ArxDbg.bundle.zip
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Как обновить поля в таблице?
« Ответ #48 : 16-08-2016, 15:48:15 »
Так то проще, но так создавая в ячейках каждый раз новое поле - захламлем базу чертежа, а при вставке через объект нет,
одно и тоже поле можно сунуть в десяток ячеек.
Заставил задуматься.  :-\
Попробую, хотя и не совсем понимаю как это руками сделать. Буду думать.
Я думал ты программно хочешь сделать нечто типа: создать в ячейке поле-формулу на сумму значений, например, атрибутов блока.. Нет?
А ты уже установил ARXDBG и MGDDBG? Если нет, то качай их и разархивируй в "С:\Program Files\Autodesk\ApplicationPlugins"
Ну а потом смотри в контекстном меню AutoCAD меню ARXDBG и MGDDBG.
http://adn-cis.org/assets/gallery/AutoCAD/ArxDbg.bundle.zip
http://adn-cis.org/assets/gallery/AutoCAD/MgdDbg.zip
Спасибо. Сейчас поставлю. Буду экспериментировать.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Как обновить поля в таблице?
« Ответ #49 : 16-08-2016, 15:49:49 »
Я думал ты программно хочешь сделать
Хочу программно, но следуя совета, сначала попробую руками

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: Как обновить поля в таблице?
« Ответ #50 : 16-08-2016, 15:51:20 »
Хочу программно, но следуя совета, сначала попробую руками
Видимо, я чего-то не понимаю, просто руками это делается элементарно. Наверное, все-таки, ты имеешь в виду сделать и разобрать при помощи ARXDBG и MGDDBG..

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Как обновить поля в таблице?
« Ответ #51 : 16-08-2016, 16:02:31 »
Off-Topic: показать
Видимо, я чего-то не понимаю, просто руками это делается элементарно.

Я вот вставить контент руками не могу, не дает. Настраивать внешний вид и порядок, удалять - это пожалуйста, а вот вставить...
Ну да это мои проблемы и это оффтопик.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как обновить поля в таблице?
« Ответ #52 : 16-08-2016, 16:50:34 »
Boxa.Shu,
Ты добавляешь не формулу, а поле. Но это поле может содержать формулу. Например, сумма трёх ячеек из другой таблицы помещаем в данную:
Код - C# [Выбрать]
  1. %<\AcExpr (Table(%<\_ObjId 2129221416>%).A2+Table(%<\_ObjId 2129221416>%).A3+Table(%<\_ObjId 2129221416>%).A4)>%
Хотя можно было скомбинировать поля и из разных таблиц, и другие значения (например, длина отрезка).
Вот сумма длин трёх отрезков:
Код - C# [Выбрать]
  1. %<\AcExpr (%<\_FldPtr 2129583800>%+%<\_FldPtr 2129584052>%+%<\_FldPtr 2129582804>%)>%
%<\_FldPtr XXXXXXXX>% - это ссылка на другое поле, XXXXXXXX - это его ObjectId.
Или так напрямую:
Код - C# [Выбрать]
  1. %<\AcExpr (%<\AcObjProp Object(%<\_ObjId 2129222240>%).Length>%+%<\AcObjProp Object(%<\_ObjId 2129222248>%).Length>%+%<\AcObjProp Object(%<\_ObjId 2129222256>%).Length>%) \f "%lu2>%"
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Как обновить поля в таблице?
« Ответ #53 : 17-08-2016, 08:35:39 »
Спасибо. разобрался. =о)