SergeySS Posted February 13, 2015 Report Share Posted February 13, 2015 (edited) Могу предложить другой вариант, тоже не автоматический, ручками придется поработать - формулы копировать. Тут многое от количества вариантов будет зависить. Если вариантов много таблица очень большая становится, и проверка, что ничего не забыто нужна. Да, Артем, это я у тебя из кабельного журнала позаимствовал идею, сделал просто, чтобы человек посмотрел, подходит/нет, а проверку не стал использовать, вариантов вроде не много было... Edited February 13, 2015 by SergeySS Quote Link to comment Share on other sites More sharing options...
Kreator Posted February 13, 2015 Report Share Posted February 13, 2015 А я надеялся MCAD какое-нибудь колдунство покажет ))) Мана кончилась Думаю, что в вашем случае можно дать только рекомендации: Использовать качестве "Итого:" Нижний колонтитул Вместо задания интервала конкретным ячейкам использовать off(x;y) Использовать в имени ячеек $ В простой таблице (не в отчете) тоже можно использовать группировку и объединение. Но это одноразовая функция. В вашем случае она не подойдет :-( Ну про структуру таблицы я в курсе, не хотел для примера слоишком красиво делать. То же с off, спасибо, уже пользуюсь Зачем доллар - тоже не очень ясно. Он ведь фиксирует ряд/колонку при растягивании/копировании ячейки с формулой? Ну не суть. Насчёт одноразовости - да и чёрт с ней В колонтитуле делаем строки, копируем в данные и группируем там. Что-то меняется - снова копируем и группируем. Основной упор на простоту и минимальные требования к внимательности. Потому что при протыкивании ручками можно что-то забыть. А если нужно нажать 3 кнопки - трудно что-то пропустить. По поводу варианта, предложенного SergeySS. К сожалению ,он не отличается простотой. Я-то могу работать как угодно и с чем угодно, но пользователю надо интуитивно, желательно в 2 предложения уложить способ работы, иначе всё пропало Попытался сделать, как я это вижу, но суммирования строк-то не происходит, как при отчёте. Он просто оставляет значение первой из сгруппированных строк. Есть ли аналог фунцкии Excel'я СУММЕСЛИ? Если есть, то после группировки можно формулу впихнуть для подсчёта по условия и всё. Если нет - то проще ручками натыкать будет. И сделать снизу банальное сравнение по длинам в данных и в "отчёте". Excel'я нет, не предлагайте там сделать Зато теперь есть волшебный нанокад с волшебными таблицами! Не нравится решение из поста #116 Проще и понятнее сделать определённые правила, для работы с линиями или поллиниями.Например создать слои с нужным названием по любому признаку. Отличное решение, как раз под мои нужды. А линии и цвета я взял для примера. У меня будет ведомость стрелочных переводов - кастомов со своими свойствами или блоков с атрибутами, если на кастомы времени не будет. Мне просто было понятно, как сложить некие свойства (длину, например), но непонятно, как перечислить что-то. Но волшебники помогли, спасибо большое! По описанию функции Sum, кстати, очень непросто дойти до такого решения. Намекают только Variant и то, что уже есть Summ, значит функция делает что-то другое Друзья! Большое спасибо за оперативность, отзывчивость и мастерство! Простите, что так нелаконично. Вроде бы слов нет от радости, а вон сколько написал Группировка без отчета (колонтитул-данные).dwg Quote Link to comment Share on other sites More sharing options...
Kreator Posted February 13, 2015 Report Share Posted February 13, 2015 Вот таблица с проверкой (и уже без группировки). Хотя можно сгруппировать, сгруппированные строки скопировать в буфер, откатить изменения Ctrl+Z и вставить строки в нижний колонтитул, а формулы суммы уже ручками накидывать. Проверка поможет избежать некоторых ошибок. Группировка без отчета (колонтитул-данные + проверка).dwg 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted February 17, 2015 Report Share Posted February 17, 2015 Проверка поможет избежать некоторых ошибок. Может так более удобно и наглядно? http://www.youtube.com/watch?v=uEuU4BZiGuQ&feature=youtu.be 1 Quote Link to comment Share on other sites More sharing options...
Kreator Posted February 19, 2015 Report Share Posted February 19, 2015 Может так более удобно и наглядно? Конечно, так более наглядно Как реализован показ строки? Quote Link to comment Share on other sites More sharing options...
MCAD Posted February 19, 2015 Report Share Posted February 19, 2015 Упс, а файл то не прицепился :-{ Группировка без отчета (колонтитул-данные + проверка + высота строки).dwg 2 Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 20, 2015 Report Share Posted March 20, 2015 (edited) Файл примера во вложении - он сделан очень упрощенно от реальной задачи."таблицы_1" - это файл примера. Задача заключается в следующем: необходимо собирать с большого числа таблиц количество определенных элементов. Проблема в том что в разных таблицах (а их может быть до 100шт.) , разных номенклатурных элементов - разное количество,соответсвенно расположены они в разных ячейках. Хотя сама форма таблицы - типовая. См.файл"от_заказчика_таблицы" - правда там таблицы пока в линиях. Мое частичное решение - см.таблицы_1. Вариант "присоединить объект" из "построителя выражений" я отбросил, т.к. не знаю как 50 таблиц автоматом присоединить. Остались "автоотчеты".Но автоотчету нужно передавать какое то свойство привязанное к ячейке.единственный выход который я нашел - добавил в моем примере для каждой ячейки поле "комментарий" соответствующее названию номенклатуры в таблице. Таким образом я могу забирать значение конкретной ячейки в таблице, где бы она не находилась в таблице. Но: комментарии нужно вводить вручную, это не удобно и можно запутаться . Вопросы: 1.Может есть более умный способ как решить мою задачу. 2.Если нет ,то как в поле "комментарий" ячейки передавать текст ячейки, в том же ряду таблицы с номером отличным от номера ячейки например на 3.Т.е. в поле "комментарий" ячейки А10 передать строку из ячейки A7. 3.Будет ли это работать если таблиц шт.50-70? 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/посмотреть? в справке по API? таблицы_1.dwg от_заказчика_таблицы.dwg Edited March 20, 2015 by Ivanco Quote Link to comment Share on other sites More sharing options...
Deyankov Posted March 20, 2015 Report Share Posted March 20, 2015 Файл примера во вложении - он сделан очень упрощенно от реальной задачи."таблицы_1" - это файл примера. Задача заключается в следующем: необходимо собирать с большого числа таблиц количество определенных элементов. Проблема в том что в разных таблицах (а их может быть до 100шт.) , разных номенклатурных элементов - разное количество,соответсвенно расположены они в разных ячейках. Хотя сама форма таблицы - типовая. См.файл"от_заказчика_таблицы" - правда там таблицы пока в линиях. Мое частичное решение - см.таблицы_1. Вариант "присоединить объект" из "построителя выражений" я отбросил, т.к. не знаю как 50 таблиц автоматом присоединить. Остались "автоотчеты".Но автоотчету нужно передавать какое то свойство привязанное к ячейке.единственный выход который я нашел - добавил в моем примере для каждой ячейки поле "комментарий" соответствующее названию номенклатуры в таблице. Таким образом я могу забирать значение конкретной ячейки в таблице, где бы она не находилась в таблице. Но: комментарии нужно вводить вручную, это не удобно и можно запутаться . Вопросы: 1.Может есть более умный способ как решить мою задачу. 2.Если нет ,то как в поле "комментарий" ячейки передавать текст ячейки, в том же ряду таблицы с номером отличным от номера ячейки например на 3.Т.е. в поле "комментарий" ячейки А10 передать строку из ячейки A7. 3.Будет ли это работать если таблиц шт.50-70? 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/посмотреть? в справке по API? sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы. (может быть мой комментарий не в тему, но запросы к 100 таблицам это достаточно долго через графическую программу) Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 20, 2015 Report Share Posted March 20, 2015 (edited) sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы нужен "дружественный пользователю способ"- чтобы с этим мог проектировщик работать...К графике пока не привязано - но кой чего из этих значений привязать планируется. Edited March 20, 2015 by Ivanco Quote Link to comment Share on other sites More sharing options...
doctorraz Posted March 20, 2015 Report Share Posted March 20, 2015 Если много таблиц, штук 50-70, ручная работа это убийственно. Надо автоматизировать. Но для автоматизации должна быть хоть какая-то система. Разное количество строк не проблема, главное, что бы данные были в своих столбцах. Средствами только СПДС эту задачу решить может и возможно, но быстродействие будет оставлять желать лучшего. Возможно есть смысл посмотреть в сторону автоматизации например на VBA , его средствами достаточно просто собрать все таблицы из чертежа, вытащить значения ячеек, выполнить необходимые операции с ними и результат закинуть в другую таблицу или даже в другое приложение. Причем на 50-70 объектах это будет выполняться одним нажатием кнопки, а времени занимать много меньше чем вы потратили на чтение этого поста ) 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 20, 2015 Report Share Posted March 20, 2015 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/ Там точно =Object.Query а не =This.Query ? Quote Link to comment Share on other sites More sharing options...
Deyankov Posted March 20, 2015 Report Share Posted March 20, 2015 sql воспользоваться? Если у вас таблицы не привязаны к графике. Если привязаны то сначала вывести отдельно их, а потом через sql запросы нужен "дружественный пользователю способ"- чтобы с этим мог проектировщик работать...К графике пока не привязано - но кой чего из этих значений привязать планируется. и все таки - таблицы в каком виде представлены изначально? На чертеже или в текстовом/табличном файле? Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 20, 2015 Report Share Posted March 20, 2015 и все таки - таблицы в каком виде представлены изначально? На чертеже или в текстовом/табличном файле? таблицы представлены таблицами сделанными средствами СПДС и находятся в .dwg файле(они будут как в файле"от_заказчика_таблицы" только будут сделаны таблицами) . И я не очень понял причем тут SQL.. Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 20, 2015 Report Share Posted March 20, 2015 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/ Там точно =Object.Query а не =This.Query ? в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно) Quote Link to comment Share on other sites More sharing options...
doctorraz Posted March 20, 2015 Report Share Posted March 20, 2015 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/ Там точно =Object.Query а не =This.Query ? в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно) 4. В справке по таблицам много чего не написано ((. например что такое =Object.Query - в свойствах таблицы.Где бы еще почитать/ Там точно =Object.Query а не =This.Query ? в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно) =Object.Query это собственно не сам запрос, а свойство таблицы, ссылка на запрос, которая в деле автоматизации в данном случае нам не поможет. а вот откуда эти данные получены (скорее всего подтянуты из Excel) там их обработать можно еще проще. Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 20, 2015 Report Share Posted March 20, 2015 в отчете отчет если в него передавать свойства таблицы передается =Object.Query. В справке ни по тому ни по тому инфы нет все равно) Ты хоть скриншоты приложи.Наведи курсор - будет "Помощь" И, если таблица связана с внешним файлом, то появится имя запроса. 1 Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 20, 2015 Report Share Posted March 20, 2015 в отчете отчет если в него передавать свойства таблицы передается .. В справке ни по тому ни по тому инфы нет все равно) Ты хоть скриншоты приложи.И, если таблица связана с внешним файлом, то появится имя запроса. про =Object.Query.понятно - спасибо. подсказки в "построители выражений" - забыл посмотреть. в данном случае это вероятно делу не поможет. Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 20, 2015 Report Share Posted March 20, 2015 (скорее всего подтянуты из Excel) там их обработать можно еще проще. Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам. 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted March 20, 2015 Report Share Posted March 20, 2015 Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам. это мое предположение про excel, ТС , что-то молчит откуда получает данные. Похоже хранит интеллектуальную собственность. 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted March 21, 2015 Report Share Posted March 21, 2015 это мое предположение про excel, ТС , что-то молчит откуда получает данные. Отредактирован уже пост #140 (я уже зачеркнул пожелание про скриншот) а вот откуда эти данные получены (скорее всего подтянуты из Excel) там их обработать можно еще проще. Я не знаю откуда взят скриншот, но на нём явно указано, что это Excel'евский файл и данные с первого листа - ячейки диапазона A1:J64. Ivanco - мне очень импонирует ваша настойчивость и пытливость в изучении задачи и достижения цели. Но, сугубо ИМХО, вы не правильно выбрали тему поста. Тут задача не в "Простейшей" автоматизации отчётов, а в разработке "технологической" цепочки проектирования. Вариантов, на самом деле, может быть огромное количество. СПДС & nanoCAD многое могут. В документе, на само то деле не так много информации как кажется на первый взгляд. Нужно понять что есть на входе и что нужно получить на выходе. И совсем не понятно, что дальше с этим будет. Как один из вариантов: Создаём шаблон быстрого выбора (по тем объектам и параметрам которые должны попасть в конкретный лист таблицы) Указываем, что искать будем не по всем текстам (которых там действительно много 4652 шт.), а в "прямоугольнике И руками формируем 48 отчётов. Правда, хочется верить, что все эти данные уже есть на чертеже в виде стандартных && Маркеров && выносок и других элементов построения и оформления. Если да, то ответ может быть совсем другим. Это не рецепт, а скорее, первичный анамнез. И то, по фотографии. :-| 1 Quote Link to comment Share on other sites More sharing options...
Ivanco Posted March 21, 2015 Report Share Posted March 21, 2015 (edited) Отвечаю на все вопросы) Возможно есть смысл посмотреть в сторону автоматизации например на VBA Про VBA спасибо за совет - к сожалению все кто заинтересован решении данной задачи, не знаю программирование на достаточном уровне. (скорее всего подтянуты из Excel) там их обработать можно еще проще. Ну, если есть возможность получить xls файл, так может разложить нужные данные по разным листам прямо в Excel'e, отформатировать прямо в нём и организовать связь по нужным листам и нужным диапазонам Exel конечно отличный вариант для работы с таблицами, но данные таблицы формируются на основе других .dwg чертежей.Пока это происходит не прямым, а косвенным образом(пользователь сам вбивает данные), возможно в будущем реализуем автоматический сбор данных с объектов чертежа. MCAD - согласен с Вами тему выбрал видимо не ту , проблема масштабней чем "простейшая автоматизация". "Нужно понять что есть на входе и что нужно получить на выходе." - надо еще поспрашивать у проектировщиков как весь тех.процесс проходит, я по всей видимости действительно пытаюсь решить часть задачи, вместо комплексного решения и рассмотрения проблемы. Edited March 21, 2015 by Ivanco Quote Link to comment Share on other sites More sharing options...
Deyankov Posted March 23, 2015 Report Share Posted March 23, 2015 "Нужно понять что есть на входе и что нужно получить на выходе." - надо еще поспрашивать у проектировщиков как весь тех.процесс проходит, я по всей видимости действительно пытаюсь решить часть задачи, вместо комплексного решения и рассмотрения проблемы. О каком разделе идет речь? Файлы в альбоме выдаются как: для каждого альбома каждый лист разложен по файлам или весь альбом в одном файле? Как вариант - см картинку в сообщении 143. У вас есть набор данных и он где то агрегируется - в экселе, в sql, access или еще где. Для этого набора формируются запросы - например ведомость расхода стали, ведомость металлопроката, ведомость элементов и прочее. Вы подгружаете базу как на картинке в сообщ 143. и пользователь может выбрать нужный ему запрос. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted March 23, 2015 Report Share Posted March 23, 2015 (edited) О каком разделе идет речь? Файлы в альбоме выдаются как: для каждого альбома каждый лист разложен по файлам или весь альбом в одном файле? Как вариант - см картинку в сообщении 143. У вас есть набор данных и он где то агрегируется - в экселе, в sql, access или еще где. Для этого набора формируются запросы - например ведомость расхода стали, ведомость металлопроката, ведомость элементов и прочее. Вы подгружаете базу как на картинке в сообщ 143. и пользователь может выбрать нужный ему запрос. Что вы пристали к ТС... он ясно дал понять Exel конечно отличный вариант для работы с таблицами, но данные таблицы формируются на основе других .dwg чертежей.Пока это происходит не прямым, а косвенным образом(пользователь сам вбивает данные), возможно в будущем реализуем автоматический сбор данных с объектов чертежа. т.е. данные вбиваются руками непосредственно в AUTОCAD и ни в каком Excel люди работать не собираются. Им надо ввести данные в Кад программу а потом , что бы это все дело как-то обработалось. Только так и никак иначе. Без вариантов. ________________ PS Кстати весьма распространенная проблема, пользователи привыкли работать определенным образом и при попытке автоматизации своей работы, вместо оптимизации привычных бизнес процессов (как правило весьма корявых и порой нелогичных) пытаются приделать автоматизацию к существующим. Обычно в результате получается костыль на костыле. На справедливое замечание оптимизировать приемы работы два стандартных ответа: "Мы так привыкли", или "Не мы для программы, а она для нас, пусть разработчики настраивают под нас функционал" Edited March 23, 2015 by raz 2 Quote Link to comment Share on other sites More sharing options...
Deyankov Posted March 23, 2015 Report Share Posted March 23, 2015 что бы это все дело как-то обработалось. О том и речь...я и предложил один из вариантов пост обработки. Quote Link to comment Share on other sites More sharing options...
Kreator Posted March 25, 2015 Report Share Posted March 25, 2015 (edited) Здравы буде, бояре! Решил спросить здесь, тема подходит. Корни вопроса тянутся с ответа уважаемого MCAD тут. Интересует получение в таблице2 результата вычислений с использованием значения ячейки таблицы1. Т.е. в таблице1 я пишу "2", в таблице2 хочу написать "=таблица1."Значение такой-то ячейки" + 1". До сего момента делаю это через построитель выражений с присоединением объекта с последующей записью вида ObjectX.A3+1. В пожеланиях изложил, что меня в таком подходе не устраивает. Сейчас сделал по совету MCAD и понял, что это не то, что мне нужно. Касаемо текста - почему-то не все ссылки обновляются. Если таблицу с такими ссылками скопировать, то обновляться вообще ничего не будет, хотя текст синий, подчёркнут, по правой кнопке обновляется вручную. Но главный вопрос - формула. Во-первых, значения, полученные из таблицы через Взять с чертежа не обновляются автоматом. Во-вторых, каким образом можно написать формулу? Я пробовал по правой кнопке в меню открыть Изменить формулу, но комбинации не принесли мне никакойго результата. Есть мнение, что свойство по комментарию берётся в текстовом виде, и как с числовым значением с ним работать дальше нельзя. Задача - в одном файле расположить все основные надписи проекта/раздела/тома и связать их формулами, чтобы нумерация всегда автоматом пересчитывалась при изменении одного значения. Одной таблицей совсем не хочу делать, довольно громоздко, особенно без редактора таблиц "по месту", как в Автокаде. Есть ещё какие-нибудь мысли по этому поводу? Прикладываю тот вариант, который сейчас в ходу, он работает, как мне надо, на ссылаться в новых таблицах не удобно. Второй файл - мои попытки привести хотя бы ссылки на текст к виду Взять с чертежа. Суть - при изменении текста сверху должен меняться и пересчитываться результат во всех таблицах. Список штампов (Присоединить объект).dwg Список штампов (Взять с чертежа).dwg Edited March 25, 2015 by Kreator Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.