Jump to content

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


Recommended Posts

Возможно Железобетон в процессе выполнения команды обновляет меньшее кол-во элементов, чем СПДС..?

Ещё в теории разница может быть в процессах ВНЕ чертежа, типа общей занятости памяти компьютера в момент проверки..?

Да вот несколько раз повторял процесс регенерации при одинаковых условиях и там и там, результат неизменный.. Странности)

Link to comment
Share on other sites

  • 3 months later...

Здравствуйте! Есть у кого-нибудь идеи, как можно вытащить часть текста из какого-либо свойства атрибута? Например есть маркер помещений. В нем есть атрибуты номер помещения "401С" и номер квартиры "Квартира тип C". Из любого атрибута мне нужно вытащить текст "С". Я только нашла функцию xnum(), которая вытаскивает цифры и из "401С" выдает "401".

Link to comment
Share on other sites

Здравствуйте! Есть у кого-нибудь идеи, как можно вытащить часть текста из какого-либо свойства атрибута? Например есть маркер помещений. В нем есть атрибуты номер помещения "401С" и номер квартиры "Квартира тип C". Из любого атрибута мне нужно вытащить текст "С". Я только нашла функцию xnum(), которая вытаскивает цифры и из "401С" выдает "401".

Как я понимаю, такой возможности нет.

  • Like 1
Link to comment
Share on other sites

Здравствуйте! Есть у кого-нибудь идеи, как можно вытащить часть текста из какого-либо свойства атрибута? Например есть маркер помещений. В нем есть атрибуты номер помещения "401С" и номер квартиры "Квартира тип C". Из любого атрибута мне нужно вытащить текст "С". Я только нашла функцию xnum(), которая вытаскивает цифры и из "401С" выдает "401".

Добрый день!

В окне "Быстрый выбор" укажите для Номер помещения условие Содержит С. Таким образом, таблица будет брать только значения помещений в которых в номере есть буква С.

post-56623-0-72540200-1516021025.png

  • Like 1
Link to comment
Share on other sites

Добрый день!

В окне "Быстрый выбор" укажите для Номер помещения условие Содержит С. Таким образом, таблица будет брать только значения помещений в которых в номере есть буква С.

Я так понимаю Yulencha хочет не этого.

Link to comment
Share on other sites

Я так понимаю Yulencha хочет не этого.

Вроде да, но нет конкретики.

Таким образом можно вытянуть все помещения с "С". Потом Вставить столбец и прописать формулу, например ="Сюда нужный текст или атрибут"+ "С".

Получим значения с "С".

Ждем от Yulencha конкретики.

  • Like 1
Link to comment
Share on other sites

Вроде да, но нет конкретики.

Таким образом можно вытянуть все помещения с "С".

"С" это просто пример. Есть атрибут "номер помещения", который имеет значение "401ХХХ", где "ХХХ" может быть "С", а может быть "А".

Вот этот "ХХХ" нужно вычленить, я так понял.

  • Like 1
Link to comment
Share on other sites

Здравствуйте! Есть у кого-нибудь идеи, как можно вытащить часть текста из какого-либо свойства атрибута? Например есть маркер помещений. В нем есть атрибуты номер помещения "401С" и номер квартиры "Квартира тип C". Из любого атрибута мне нужно вытащить текст "С". Я только нашла функцию xnum(), которая вытаскивает цифры и из "401С" выдает "401".

все же хотелось бы конкретики, для чего вытаскивать из атрибута текст "С"? какое этому практическое применение.

Согласитесь предметно общаться значительно легче, чем отвлеченно...

а пока навскидку... экспорт отчета в таблицу excel, обработка и последующий импорт...

vb скриптом задача вообще решается просто.

но если будет известно для чего, то возможно и в платформе найдется подходящий инструментарий.

Link to comment
Share on other sites

Здравствуйте! Есть у кого-нибудь идеи, как можно вытащить часть текста из какого-либо свойства атрибута? Например есть маркер помещений. В нем есть атрибуты номер помещения "401С" и номер квартиры "Квартира тип C". Из любого атрибута мне нужно вытащить текст "С". Я только нашла функцию xnum(), которая вытаскивает цифры и из "401С" выдает "401".

А на стороне "Маркера помещения" нельзя сразу вытащить текст "С"?

Link to comment
Share on other sites

Я так понял надо вытащить текстовые части из названий помещений :)

Вытащить нельзя. Я и спрашиваю, можно ли "Отдельный атрибут завести в маркере"?

Можно как список, можно в таблице, как в примере поста #232

Link to comment
Share on other sites

Вытащить нельзя. Я и спрашиваю, можно ли "Отдельный атрибут завести в маркере"?

Yulencha нашла спасение в простой переборке вариантов ЕСЛИ(".......А......";"А";ЕСЛИ(".......В......";"В";ЕСЛИ(".......С......";"С";ЕСЛИ(".......D......";"D";и т.д.)))), т.к. вариантов в данном случае было ограниченное количество. И видимо успокоилась и больше сюда не заглядывала, так что отвечу за неё:

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

Просто решение нужно было быстро, а влезать с новыми (или тем более менянными) переменными в уже действующий во всём проекте маркер ну очень не хотелось (т.к. мало ли что... Только недавно где-то тут с Доктором обсуждалось, что обновление существующих маркеров - штука непредсказуемая). Да и внести в маркера такие правки у нас могут далеко не все и не всегда...

Поэтому и появился вопрос "а нельзя ли это сделать формулами?".

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Вопрос: Как добавить в ячейку отчёта перенос строки

 

Для переноса строки внутри одной ячейки нужно добавить в построителе выражений «ctrl +Enter»

img-2018-02-21-16-28-13.png

Так как это обычный текстовый символ + «ctrl+Enter» + то его нужно оформить как конкатенацию текстовых строк.

В итоге получаем две строки в одной ячейке:

img-2018-02-21-16-20-26.png

  • Like 2
Link to comment
Share on other sites

Вопрос: Как добавить в ячейку отчёта перенос строки

 

Для переноса строки внутри одной ячейки нужно добавить в построителе выражений «ctrl +Enter»

..........

до кучи, что бы переносило и запятые впопад расставляло))

=sum(Object.POZIC +iff(index==Count()|| Object.POZIC=="";"";",
"))

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

как реализовать заполнение таблицы (Табл.2) из данных таблицы (Диаметр)

Например так:

img-2018-07-15-12-31-55.png

Test.dwg

введя значения строк и столбцов...

Не совсем понятно, как?

  • Like 1
Link to comment
Share on other sites

Имелось ввиду, что в табл.2 я руками ввожу значение длинны и мощности , а соответствующий диаметр автоматом подставляется из таблицы диаметр.

Link to comment
Share on other sites

Куда вводите? В пустую строку?

Это же не Excel,

Сделайте объект с таблицей и задавайте параметры (мощность и длина) в нем. Отчет будет собирать данные:

  • Like 1
Link to comment
Share on other sites

Варианты (2, 3, 4), которые будут работать в соответствии с темой раздела "nanoCAD как Платформа"

http://www.youtube.com/watch?v=SBOtqPQKxxc&list=PL1MQqrS2qjWNfYGu1IyeLR3l5YGd4N20p

Вариант 1 - таблица размещена в объекте БД

Вариант 2 - Таблица выполнена в "Построителе выражений"

Вариант 3 - Таблица занесена в "Пользовательскую форму"

Вариант 4 - Данные берутся из "Привязанного объекта" - родительской таблицы.

 

 

Vitek885.zip

Table with a form for selecting parameters N10.dwg

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

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

 

Аналог консолидации таблиц

image001.png

 

Редактор таблиц СПДС GraphiCS || nanocad не предусматривает одновременной работы с разными таблицами в одном окне. Однако, помня, что файл DWG сам по себе является одной большой базой данных этот момент можно легко обойти. Для простоты будем рассматривать алгоритм работы с точки зрения работы в Excel.

 

 

1.Создаем обычную таблицу

 

image002.png

 

1.1 Задаём «Имя таблицы»

image003.png

 

1.2 Создаём «пользовательскую форму» и размещаем на ней элемент управления «Список»

image004.png

 

1.3 В Свойствах элемента управления присваиваем ему переменную «Month»

image005.png

(В выпадывающем списке такой переменной, естественно нет. Поэтому мы просто пишем её руками)

 

1.4 Заполняем элемент управления «Список» данным

image006.png

 

1.5 Объединяем ячейки первой строки и пишем формулу:

=Title +" за "+
Month+"
("+F8+"
квартал)"

1.6 Заполняем таблицу данными

image007.png

 

1.7 В ячейку “F3” вводим формулу суммирования по диапазону

image008.png

Растягиваем формулу на всю колонку “F”

 

1.8 Добавляем «Нижний колонтитул»

image009.png=summ(B3:off(-2;0)) [/i]где в качестве первого аргумента массива имя колонки B, C, D, E

 

2. Подготовка таблицы для последующего использования в отчёте

 

2.1 Даём условные названия для тех ячеек таблицы, которые будут участвовать в «Консолидированном» отчёте.

 

image010.png

image010.png

 

2.2 После того как мы задали комментарии нужным ячейкам, они становятся доступными в «свойствах» таблицы

image011.png

 

и «Видимы» для всех объектов СПДС

 

image012.png

 

image013.png

 

2.3 Для более полного представления данных отчёта в течении года определим к какому кварталу относится месяц. В Нижнем колонтитуле отчёта делаем еще одну строку и в одной из ячеек пишем формулу: =iff(Month=="Январь"||Month=="Февраль"||Month=="Март";"I";iff(Month=="Апрель"||Month=="Май"||Month=="Июнь";"II";iff(Month=="Июль"||Month=="Август"||Month=="Сентябрь";"III";"IV")))

Так как для данной таблицы эта информация не актуальна мы, для простоты добавим на форму checkbox и зададим переменную checkQuarter. В ячейке «Нижнего колонтитула», в строке содержащей «Квартал» пишем формулу: ="Высота строки="+iff(checkQuarter==1;setheight(8);setheight(0))

2.4 Теперь при активном checkBocx «Показать квартал» строка будет показываться

image014.png

 

3. Создание Отчета по разным таблицам

3.1 Создаём новую таблицу

 

3.2 Добавляем «Раздел Отчёта»

image015.png

 

В качестве исходных данных отчета

 

image016.png

 

выбираем

image017.png

 

и в качестве фильтра указываем

image018.png

 

3.3 Так как теперь у нашей исходной таблицы появились дополнительные свойства, то они стали доступны в контекстном меню ячеек

image019.png

 

3.4 И в построителе выражений

image020.png

 

Заполняем ячейки «Шаблона отчёта» свойствами доступными в дочерней таблице

image021.png

 

3.5 Добавляем «Итог отчёта»

image022.png

 

3.6 Делаем массив таблиц на 12 месяцев и редактируем, через форму "месяц"

 

3.7 Далее работаем с информацией полученной в отчёте и можем сделать все как нам нужно

 

3.8 Результат в приложенном файле:

 

Аналог консолидации таблиц в Excel.pdf

Консолидация данных в таблице.dwg

 

Консолидация данных в разных файлах с помощью spdataextraction может быть реализована на примере представленным на сайте Мастерская СПДС мастером и кудесником doctorraz

  • Like 2
Link to comment
Share on other sites

А к простому Нанокаду формы в таблицах прикрутить можно? или это только в СПДС?

 

Нет :-( Нельзя. Но сами переменные созданные на форме остаются доступными в свойствах таблиц

 

img-2018-09-06-17-53-02.png

 

И где хранится база таблиц ?

 

Простите за тавтологию, но База таблиц хранится в Базе

База может быть как локальной, так и сетевой

 

img-2018-09-06-18-03-14.png

 

 

После сохранения таблица доступна для вставки.

 

img-2018-09-06-17-59-29.png

Link to comment
Share on other sites

....Но сами переменные созданные на форме остаются доступными в свойствах таблиц

только копипасте, при вставке из базы в платформе переменной не будет.

-------------

но сама форма при этом никуда не девается, просто интерфейс редактора таблиц механикса в платформе кто-то сильно кастрировал.

если этот же чертеж открыть в СПДС, форма будет доступна.

Edited by doctorraz
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...