Перейти к содержанию
swell{d}

Простейшая автоматизация с помощью отчётов таблиц

Рекомендуемые сообщения

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

Тут многое от количества вариантов будет зависить. Если вариантов много таблица очень большая становится, и проверка, что ничего не забыто нужна.

Да, Артем, это я у тебя из кабельного журнала позаимствовал идею, сделал просто, чтобы человек посмотрел, подходит/нет, а проверку не стал использовать, вариантов вроде не много было...

Изменено пользователем SergeySS

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А я надеялся MCAD какое-нибудь колдунство покажет )))

Мана кончилась :)

 

Думаю, что в вашем случае можно дать только рекомендации:

  1. Использовать качестве "Итого:" Нижний колонтитул
  2. Вместо задания интервала конкретным ячейкам использовать off(x;y)
  3. Использовать в имени ячеек $

В простой таблице (не в отчете) тоже можно использовать группировку и объединение. Но это одноразовая функция. В вашем случае она не подойдет :-(

Ну про структуру таблицы я в курсе, не хотел для примера слоишком красиво делать. То же с off, спасибо, уже пользуюсь :)

Зачем доллар - тоже не очень ясно. Он ведь фиксирует ряд/колонку при растягивании/копировании ячейки с формулой? Ну не суть.

Насчёт одноразовости - да и чёрт с ней :) В колонтитуле делаем строки, копируем в данные и группируем там. Что-то меняется - снова копируем и группируем. Основной упор на простоту и минимальные требования к внимательности. Потому что при протыкивании ручками можно что-то забыть. А если нужно нажать 3 кнопки - трудно что-то пропустить.

По поводу варианта, предложенного SergeySS. К сожалению ,он не отличается простотой. Я-то могу работать как угодно и с чем угодно, но пользователю надо интуитивно, желательно в 2 предложения уложить способ работы, иначе всё пропало :unsure:

Попытался сделать, как я это вижу, но суммирования строк-то не происходит, как при отчёте. Он просто оставляет значение первой из сгруппированных строк. Есть ли аналог фунцкии Excel'я СУММЕСЛИ? Если есть, то после группировки можно формулу впихнуть для подсчёта по условия и всё. Если нет - то проще ручками натыкать будет. И сделать снизу банальное сравнение по длинам в данных и в "отчёте". Excel'я нет, не предлагайте там сделать :) Зато теперь есть волшебный нанокад с волшебными таблицами!

Не нравится решение из поста #116 Проще и понятнее сделать определённые правила, для работы с линиями или поллиниями.

Например создать слои с нужным названием по любому признаку.

Отличное решение, как раз под мои нужды. А линии и цвета я взял для примера. У меня будет ведомость стрелочных переводов - кастомов со своими свойствами или блоков с атрибутами, если на кастомы времени не будет. Мне просто было понятно, как сложить некие свойства (длину, например), но непонятно, как перечислить что-то. Но волшебники помогли, спасибо большое! По описанию функции Sum, кстати, очень непросто дойти до такого решения. Намекают только Variant и то, что уже есть Summ, значит функция делает что-то другое :)

Друзья! Большое спасибо за оперативность, отзывчивость и мастерство! Простите, что так нелаконично. Вроде бы слов нет от радости, а вон сколько написал :)

Группировка без отчета (колонтитул-данные).dwg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот таблица с проверкой (и уже без группировки). Хотя можно сгруппировать, сгруппированные строки скопировать в буфер, откатить изменения Ctrl+Z и вставить строки в нижний колонтитул, а формулы суммы уже ручками накидывать. Проверка поможет избежать некоторых ошибок.

Группировка без отчета (колонтитул-данные + проверка).dwg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверка поможет избежать некоторых ошибок.

Может так более удобно и наглядно?

http://www.youtube.com/watch?v=uEuU4BZiGuQ&feature=youtu.be

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может так более удобно и наглядно?

Конечно, так более наглядно :) Как реализован показ строки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Файл примера во вложении - он сделан очень упрощенно от реальной задачи."таблицы_1" - это файл примера.

Задача заключается в следующем:

необходимо собирать с большого числа таблиц количество определенных элементов.

Проблема в том что в разных таблицах (а их может быть до 100шт.) , разных номенклатурных элементов - разное количество,соответсвенно расположены они в разных ячейках. Хотя сама форма таблицы - типовая. См.файл"от_заказчика_таблицы" - правда там таблицы пока в линиях.

 

Мое частичное решение - см.таблицы_1.

Вариант "присоединить объект" из "построителя выражений" я отбросил, т.к. не знаю как 50 таблиц автоматом присоединить.

Остались "автоотчеты".Но автоотчету нужно передавать какое то свойство привязанное к ячейке.единственный выход который я нашел - добавил в моем примере для каждой ячейки поле "комментарий" соответствующее названию номенклатуры в таблице. Таким образом я могу забирать значение конкретной ячейки в таблице, где бы она не находилась в таблице.

Но:

комментарии нужно вводить вручную, это не удобно и можно запутаться .

Вопросы:

1.Может есть более умный способ как решить мою задачу.

2.Если нет ,то как в поле "комментарий" ячейки передавать текст ячейки, в том же ряду таблицы с номером отличным от номера ячейки например на 3.Т.е. в поле "комментарий" ячейки А10 передать строку из ячейки A7.

3.Будет ли это работать если таблиц шт.50-70?

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/посмотреть? в справке по API?

таблицы_1.dwg

от_заказчика_таблицы.dwg

Изменено пользователем Ivanco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Файл примера во вложении - он сделан очень упрощенно от реальной задачи."таблицы_1" - это файл примера.

Задача заключается в следующем:

необходимо собирать с большого числа таблиц количество определенных элементов.

Проблема в том что в разных таблицах (а их может быть до 100шт.) , разных номенклатурных элементов - разное количество,соответсвенно расположены они в разных ячейках. Хотя сама форма таблицы - типовая. См.файл"от_заказчика_таблицы" - правда там таблицы пока в линиях.

 

Мое частичное решение - см.таблицы_1.

Вариант "присоединить объект" из "построителя выражений" я отбросил, т.к. не знаю как 50 таблиц автоматом присоединить.

Остались "автоотчеты".Но автоотчету нужно передавать какое то свойство привязанное к ячейке.единственный выход который я нашел - добавил в моем примере для каждой ячейки поле "комментарий" соответствующее названию номенклатуры в таблице. Таким образом я могу забирать значение конкретной ячейки в таблице, где бы она не находилась в таблице.

Но:

комментарии нужно вводить вручную, это не удобно и можно запутаться .

Вопросы:

1.Может есть более умный способ как решить мою задачу.

2.Если нет ,то как в поле "комментарий" ячейки передавать текст ячейки, в том же ряду таблицы с номером отличным от номера ячейки например на 3.Т.е. в поле "комментарий" ячейки А10 передать строку из ячейки A7.

3.Будет ли это работать если таблиц шт.50-70?

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/посмотреть? в справке по API?

sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы. (может быть мой комментарий не в тему, но запросы к 100 таблицам это достаточно долго через графическую программу)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы

нужен "дружественный пользователю способ"- чтобы с этим мог проектировщик работать...К графике пока не привязано - но кой чего из этих значений привязать планируется.

Изменено пользователем Ivanco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если много таблиц, штук 50-70, ручная работа это убийственно.

Надо автоматизировать.

Но для автоматизации должна быть хоть какая-то система. Разное количество строк не проблема, главное, что бы данные были в своих столбцах.

Средствами только СПДС эту задачу решить может и возможно, но быстродействие будет оставлять желать лучшего.

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

Причем на 50-70 объектах это будет выполняться одним нажатием кнопки, а времени занимать много меньше чем вы потратили на чтение этого поста )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/

Там точно =Object.Query а не =This.Query ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы

нужен "дружественный пользователю способ"- чтобы с этим мог проектировщик работать...К графике пока не привязано - но кой чего из этих значений привязать планируется.

и все таки - таблицы в каком виде представлены изначально? На чертеже или в текстовом/табличном файле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и все таки - таблицы в каком виде представлены изначально? На чертеже или в текстовом/табличном файле?

таблицы представлены таблицами сделанными средствами СПДС и находятся в .dwg файле(они будут как в файле"от_заказчика_таблицы" только будут сделаны таблицами) . И я не очень понял причем тут SQL..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/

Там точно =Object.Query а не =This.Query ?

в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/

Там точно =Object.Query а не =This.Query ?

в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно)

 

4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/

Там точно =Object.Query а не =This.Query ?

в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно)

=Object.Query это собственно не сам запрос, а свойство таблицы, ссылка на запрос, которая в деле автоматизации в данном случае нам не поможет.

а вот откуда эти данные получены (скорее всего подтянуты из Excel) там их обработать можно еще проще.

post-23818-0-95048100-1426854474.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно)

Ты хоть скриншоты приложи.

Наведи курсор - будет "Помощь"

Безымянный.png

 

И, если таблица связана с внешним файлом,

 

ScreenShot1637.png

 

то появится имя запроса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в отчете отчет если в него передавать свойства таблицы передается .. В справке ни по тому ни по тому инфы нет все равно)

Ты хоть скриншоты приложи.

И, если таблица связана с внешним файлом,

то появится имя запроса.

про =Object.Query.понятно - спасибо. подсказки в "построители выражений" - забыл посмотреть. в данном случае это вероятно делу не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
(скорее всего подтянуты из Excel) там их обработать можно еще проще.

Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам.ScreenShot1639.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам.

это мое предположение про excel, ТС , что-то молчит откуда получает данные. Похоже хранит интеллектуальную собственность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это мое предположение про excel, ТС , что-то молчит откуда получает данные.

 

Отредактирован уже пост #140 (я уже зачеркнул пожелание про скриншот)

 

а вот откуда эти данные получены (скорее всего подтянуты из Excel) там их обработать можно еще проще.

Я не знаю откуда взят скриншот, но на нём явно указано, что это Excel'евский файл и данные с первого листа - ячейки диапазона A1:J64.

 

Ivanco - мне очень импонирует ваша настойчивость и пытливость в изучении задачи и достижения цели. Но, сугубо ИМХО, вы не правильно выбрали тему поста. Тут задача не в "Простейшей" автоматизации отчётов, а в разработке "технологической" цепочки проектирования.

Вариантов, на самом деле, может быть огромное количество. СПДС & nanoCAD многое могут.

 

В документе, на само то деле не так много информации как кажется на первый взгляд. Нужно понять что есть на входе и что нужно получить на выходе.

И совсем не понятно, что дальше с этим будет.

 

Как один из вариантов:

Создаём шаблон быстрого выбора (по тем объектам и параметрам которые должны попасть в конкретный лист таблицы)

 

ScreenShot1640.png

 

Указываем, что искать будем не по всем текстам (которых там действительно много 4652 шт.), а в "прямоугольнике

 

ScreenShot1641.png

И руками формируем 48 отчётов.

Правда, хочется верить, что все эти данные уже есть на чертеже в виде стандартных && Маркеров && выносок и других элементов построения и оформления. Если да, то ответ может быть совсем другим.

Это не рецепт, а скорее, первичный анамнез. И то, по фотографии. :-|

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отвечаю на все вопросы)

Возможно есть смысл посмотреть в сторону автоматизации например на VBA

Про VBA спасибо за совет - к сожалению все кто заинтересован решении данной задачи, не знаю программирование на достаточном уровне.

 

(скорее всего подтянуты из Excel) там их обработать можно еще проще.

Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам

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

MCAD - согласен с Вами тему выбрал видимо не ту , проблема масштабней чем "простейшая автоматизация".

"Нужно понять что есть на входе и что нужно получить на выходе." - надо еще поспрашивать у проектировщиков как весь тех.процесс проходит, я по всей видимости действительно пытаюсь решить часть задачи, вместо комплексного решения и рассмотрения проблемы.

Изменено пользователем Ivanco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Нужно понять что есть на входе и что нужно получить на выходе." - надо еще поспрашивать у проектировщиков как весь тех.процесс проходит, я по всей видимости действительно пытаюсь решить часть задачи, вместо комплексного решения и рассмотрения проблемы.

О каком разделе идет речь? Файлы в альбоме выдаются как: для каждого альбома каждый лист разложен по файлам или весь альбом в одном файле?

 

Как вариант - см картинку в сообщении 143. У вас есть набор данных и он где то агрегируется - в экселе, в sql, access или еще где. Для этого набора формируются запросы - например ведомость расхода стали, ведомость металлопроката, ведомость элементов и прочее.

Вы подгружаете базу как на картинке в сообщ 143. и пользователь может выбрать нужный ему запрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О каком разделе идет речь? Файлы в альбоме выдаются как: для каждого альбома каждый лист разложен по файлам или весь альбом в одном файле?

Как вариант - см картинку в сообщении 143. У вас есть набор данных и он где то агрегируется - в экселе, в sql, access или еще где. Для этого набора формируются запросы - например ведомость расхода стали, ведомость металлопроката, ведомость элементов и прочее.

Вы подгружаете базу как на картинке в сообщ 143. и пользователь может выбрать нужный ему запрос.

Что вы пристали к ТС... он ясно дал понять

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

т.е. данные вбиваются руками непосредственно в AUTОCAD и ни в каком Excel люди работать не собираются.

Им надо ввести данные в Кад программу а потом , что бы это все дело как-то обработалось. Только так и никак иначе. Без вариантов.

________________

PS Кстати весьма распространенная проблема, пользователи привыкли работать определенным образом и при попытке автоматизации своей работы, вместо оптимизации привычных бизнес процессов (как правило весьма корявых и порой нелогичных) пытаются приделать автоматизацию к существующим. Обычно в результате получается костыль на костыле.

На справедливое замечание оптимизировать приемы работы два стандартных ответа: "Мы так привыкли", или "Не мы для программы, а она для нас, пусть разработчики настраивают под нас функционал"

Изменено пользователем raz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что бы это все дело как-то обработалось.

О том и речь...я и предложил один из вариантов пост обработки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравы буде, бояре!

Решил спросить здесь, тема подходит. Корни вопроса тянутся с ответа уважаемого MCAD тут.

Интересует получение в таблице2 результата вычислений с использованием значения ячейки таблицы1. Т.е. в таблице1 я пишу "2", в таблице2 хочу написать "=таблица1."Значение такой-то ячейки" + 1". До сего момента делаю это через построитель выражений с присоединением объекта с последующей записью вида ObjectX.A3+1. В пожеланиях изложил, что меня в таком подходе не устраивает. Сейчас сделал по совету MCAD и понял, что это не то, что мне нужно.

Касаемо текста - почему-то не все ссылки обновляются. Если таблицу с такими ссылками скопировать, то обновляться вообще ничего не будет, хотя текст синий, подчёркнут, по правой кнопке обновляется вручную. Но главный вопрос - формула. Во-первых, значения, полученные из таблицы через Взять с чертежа не обновляются автоматом. Во-вторых, каким образом можно написать формулу? Я пробовал по правой кнопке в меню открыть Изменить формулу, но комбинации не принесли мне никакойго результата. Есть мнение, что свойство по комментарию берётся в текстовом виде, и как с числовым значением с ним работать дальше нельзя.

Задача - в одном файле расположить все основные надписи проекта/раздела/тома и связать их формулами, чтобы нумерация всегда автоматом пересчитывалась при изменении одного значения. Одной таблицей совсем не хочу делать, довольно громоздко, особенно без редактора таблиц "по месту", как в Автокаде. Есть ещё какие-нибудь мысли по этому поводу?

Прикладываю тот вариант, который сейчас в ходу, он работает, как мне надо, на ссылаться в новых таблицах не удобно. Второй файл - мои попытки привести хотя бы ссылки на текст к виду Взять с чертежа. Суть - при изменении текста сверху должен меняться и пересчитываться результат во всех таблицах.

Список штампов (Присоединить объект).dwg

Список штампов (Взять с чертежа).dwg

Изменено пользователем Kreator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...