Перейти к содержанию

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

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

 

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

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

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


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

Можно попробовать такое

Спойлер

image.png.c9814725a2b7cd8b29ce34a45997d561.png

 

Здесь:

1 - Ваше условие, по которому делается вывод о необходимости скрытия строки

2 - функция скрытия строки (высота=0)

3- функция показа строки (высота >0, необходимо точно указать)

 

Важный момент: если внести только функцию скрытия (если "ДА") без явного указания показа (если "НЕТ"), то строка сворачивается в нулевую высоту и обратно не разворачивается при изменении условия

 

Информацию нашел тут

Спойлер

image.png.fbecdf4fb10b13d76450c857c3a72b2c.png

 

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


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

Теоретически такая возможность есть.

Только как эти пользоваться? 

Это  же у вас не отчет. В каждой ячейке забиты формулы 

В ячейке G4 =iff((B4=="")&&(C4=="")&&(D4=="")&&(E4=="")&&(F4=="");setHeight($G$1);setHeight(8))

Помойка.dwg

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


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, MCAD сказал:

Теоретически такая возможность есть.

Только как эти пользоваться? 

Это  же у вас не отчет. В каждой ячейке забиты формулы 

В ячейке G4 =iff((B4=="")&&(C4=="")&&(D4=="")&&(E4=="")&&(F4=="");setHeight($G$1);setHeight(8))

Это таблица делается на основании другой таблицы. Она скажем так выделает небольшие мелочи для сметы.Сделал один раз и забыл  

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

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


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, MCAD сказал:

Это  же у вас не отчет. В каждой ячейке забиты формулы 

 

Как раз это может быть полезным фактором.

Данная функция (SetHeight) особенно интересна тем, что ее можно "плюсовать" к любой другой функции.

Занятная реализация, когда значение добавляется к формату (и наоборот) в одном выражении-формуле

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


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

как скрыть значение 5 ? 

1.png

2.png

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


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, aerohost сказал:

Это таблица делается на основании другой таблицы.


Как вариант.

Предварительно создать два дополнительных столбца:
1. Общий порядок.
2. Условие фильтрации.
 

Спойлер

image.png.1053987dee16b5f87b79ed9689ea7927.png

 

Затем отсортировать и уже с результатом работать.

 

Спойлер

image.thumb.png.c829f814fc1896608b31e1985ca7cc2f.png

 

P.S. На полном автомате всё-равно не получится.
В условия фильтрации теоретически можно затянуть всё, что угодно.

 

Изменено пользователем A.Kudrjashov

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


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

Сортировка решила проблему 

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

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


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, aerohost сказал:

как скрыть значение 5 ?

Извиняюсь за неточную наводку.

Правильнее использовать функцию ctlSetRowHeight (которая ничего не возвращает) вместо SetHeight (которая возвращает высоту строки).

Об этом и не только в справке (указана выше)

 

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


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, EdwardSt сказал:

Правильнее использовать функцию ctlSetRowHeight

На скрине затёрт номер версии, так что я по старинке написал.

ctlSetRowHeight  доступна только в последней версии

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


Ссылка на сообщение
Поделиться на другие сайты
В ‎23‎.‎07‎.‎2020 в 16:22, EdwardSt сказал:

Правильнее использовать функцию ctlSetRowHeight (которая ничего не возвращает) вместо SetHeight (которая возвращает высоту строки).

На самом деле это достаточно востребованный функционал.

И бывает, что совсем не обязательно скрывать строки. Бывает, что спрашивают:

  • Скрыть;
  • Зачеркнуть;
  • Выделить цветом.

Помойка.dwg

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


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, MCAD сказал:

На самом деле это достаточно востребованный функционал.

Вот это меня особенно и восхитило.

Данные и формат присутствуют в одной формуле в виде аргументов выражения.

Неожиданно :bravo:

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


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, EdwardSt сказал:

Данные и формат присутствуют в одной формуле в виде аргументов выражения.

У вас, в отличии от автора поста @aerohost , в редакторе таблиц доступна кнопка редактирования таблицы через "Пользовательскую форму" . Значит вы прямо в форме можете ввести список значений по  которым можно управлять  значением setHeight, например используя comboBox  со списком или "Редактор коллекций".

И если у вас доступен функционал "вертикальных приложений",  то эти же формы вы можете использовать на любых объектах "вертикалок"

 

Пример для Фильтра в таблице.zip

 

Спойлер

Часто, при оформлении документации, возникает необходимость быстрого получения отчётов и спецификаций по разным критериям. Иногда, простейшая операция по изменению отчёта в таблице, вызывает у конечного пользователя затруднения и, как следствие, он вынужден заполнять спецификацию и вести учёт объектов на чертеже в ручном режиме. Рассмотрим на простом примере, в котором в поставщика исходных данных будет «Универсальный маркер» с разными полями.

00:00 Открываем на редактирование «Универсальный маркер» и проверяем какие в нем есть атрибутивные данные

00:19 Открываем форму на редактирование:

00:21 Атрибут sColor использует элемент управления «Поле со списком из базы». Для проверки нажмём на кнопу с тремя точками радом с названием и, в редакторе коллекций посмотрим содержание списка «Цвет»

00:44 Выбираем таблицу и, двойным щелчком, открываем Табличный редактор

00:52 Выбрав ячейку в колонке “F” строки отчёта, зажимаем правую клавишу мыши и ведём курсор вверх

00:53 В открывшемся «Построителе выражений» видим переменные sValue и TestColor, которые используются в этой ячейке. 01:07 Для удобства пользователя эти переменные определены на «Пользовательской форме» таблицы

01:12 Переменной TestColor назначен элемент управления «Поле со списком из базы», который. В свою очередь может использовать тот же список в редакторе коллекций «Цвет»

01:23 Переменная sValue использует простое «Поле со списком» в тором мы можем ввести и сохранить любые необходимые значения. В нашем случае «Равно» и «НЕ равно»

1:32 Еще раз открываем «Построитель выражений». Тут идет простая проверка: Если значение переменно sValue в котроле определено как «Равно» sValue=="Равно", то для всех строк, у которых значение атрибута «Универсального маркера» Object.sColor совпадает со значением элемета управления формы для переменно TestColor устанавливаем высоту строки setHeight «8» мм. Для всех остальных высота строки будет «0» мм. iff(Object.sColor==TestColor;setHeight(8);setHeight(0)). Если условие sValue=="Равно" не выполняется, то переходим к аналогичному вычислению строки, только вместо «==» у нас будет «!=» Object.sColor!=TestColor и , соответственно все строки будут высотой «8» мм.

01:51 Проверяем условие «Группировки и объединения»

01:55 В качестве условия сортировки задаём тот же список значений «Цвет» из «Редактора коллекций»

02:17 Колонка «С» строки отчёта у нас вычисляет количество объектов , попавших, по условиям в данную строку iff(sValue=="Равно";iff(Object.sColor==TestColor;Count();0);count()), но само становится значимым только при выполнении данного условия

Проверяем работу отчёта

 

Можно, конечно обойтись и без отчёта и выбирать нужные строки для скрытия или отображения. 

 

Фильтр и обратный фильтр.dwg

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, MCAD сказал:

в редакторе таблиц доступна кнопка редактирования таблицы через "Пользовательскую форму" 

Похоже, эта функция недоступна в Plus.

Во всяком случае, кнопку не нашел, а при вызове справки наткнулся на такое окошко

Спойлер

image.png.2c91e2213349daee6d76cd86fac72eb2.png

т.е. функция доступна в СПДС и выше.

Но все равно, спасибо.

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


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

Да, формы доступны только в вертикалках

Но, у Вас же в посте она есть

 

1277943767_image.png.c9814725a2b7cd8b29ce34a45997d5611.png.d843f3ae6816c53d765e404b414d38cf.png   

Что бы сделать кнопку  "Активной"  форму нужно создать (нажмите "Изменить форму" и откроется диалог создания форм.

image.png.a6ee49794599561ff5545ffc8da253db.png

 

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


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, MCAD сказал:

у Вас же в посте она есть

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

Сейчас сижу за домашним  (воскресенье, как никак!)

Спойлер

image.png.d80c3806d2eac8a09aac3542098fe388.png

Тем более, интересно будет повозиться с этим функционалом!

 

PS. Хотя странно, что работа с таблицами различается в  приложениях.

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

А редактор таблиц скорее относится к универсальным средствам.

Может разработчикам сделать эту функцию универсальной?

image.png

image.png

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, EdwardSt сказал:

Может разработчикам сделать эту функцию универсальной?

Это не к разработчикам вопрос. :-) 

3 минуты назад, EdwardSt сказал:

А редактор таблиц скорее относится к универсальным средствам.

Самый, что ни на есть универсальный. Полностью согласен.

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


Ссылка на сообщение
Поделиться на другие сайты
В ‎26‎.‎07‎.‎2020 в 13:37, EdwardSt сказал:

А редактор таблиц скорее относится к универсальным средствам.

Нашёл  пример, в котором есть "скрытые строки" и "Пользовательская форма" используется в интерактивном режиме. В Виде "учебного пособия" работы с с отчётом.

Спойлер

Нужно:
• Разбить строку по символу «×»;
• Отсортировать по возрастанию, в каждом поддиапазоне;
• Автоматически проставить позиции;
• Определить количество одинаковых значений;
• Сформировать текстовую строку;
• Вывести на чертёж;
00:04 Открываем таблицу в «Редакторе таблиц». В таблице имеется форма  для интерактивного взаимодействия при создании отчёта с обратной связью с чертежом 
00:15 Вставляем раздел отчёта. В качестве источника данных выбираем  «Позиционные выноски», расположенные на слое «Example». В столбце «А» отчёту будет вычисляться номер «Позиции». Для этого пишем выражение =row-I$15, где ячейка «I$15=row». В столбце «В» задаём значение первой строки «позиционной выноски» =Object.String1
00:58 Так как нам нужно будет разделить содержимое =Object.String1 по символу «×», которого не т на клавиатуре, заходим в «спец. Символы» вставляем это символ в ячейки и вырезаем его,  тем самым копируя его в «буфер обмена»
01:05 В ячейке «С» строки отчёта пишем функцию  subSplit , в  качестве первого аргумента  ссылаемся на ячейку off(0;-1), в качестве разделителя строки пишем "×",   и 1 - первая группа символов. =subSplit(off(0;-1) ;"×";1). Примечание: в качестве первого аргумента можно использовать «Object.String1» или  непосредственный адрес «В16».  Но лучше использовать «относительный»  адрес ячейки.
01:39 Для  ячеек отчёта «D» и «E» пишем =subSplit(off(0;-2) ;"×";2) и =subSplit(off(0;-3) ;"×";3) соответственно.
02:07 В ячейке «F» перемножаем полученные в столбцах «C», «D» и «E» значения, вычисляя «объём»
02:26 В ячейке «G» определяем, что должно должна содержать вторая строка «Позиционной выноски». Мы хотим вывести туда  позицию  (столбец «А» отчёта), толщину (столбец «Е» отчёта)  и суммарное количество данных записей на чертеже (count()).  Сложим все вместе: ="Поз."+off(0;-6)+"(S="+off(0;-2)+"мм, "+count()+"шт.)".  В «кавычках» просто текстовые константы, которые будут добавляться в нужное место строки
02:54 Теперь нам нужно просто передать вычисленное в столбце «G» значение во вторую строку «позиционной выноски» =sum(ctlsetValue(off(0;-1);Object.String2)). Функция ctlsetValue в качестве первого аргумента принимает значение «ЧТО передавать» (off(0;-1)), а  второй аргумент «КУДА передавать» (Object.String2)
03:34 После закрытия диалога «Редактора таблиц» мы видим, что у четырёх «позиционных выносок», расположенных на слое «Example», появились значения во второй строке, соответствующие вычисленным в отчёте.
03:37 При переносе «Позиционных выносок» на разные слои вторая строка выносок,  попавших на слой «Example» автоматически пересчитывается.
04:48 Теперь мы должны найти одинаковые «позиционные выноски». Заходим в диалог «Группировка и объединение» и создаём правила для «Объединения» , «Группировки» и «Сортировки». Задаём объединение по "С" и "D" и группировку по "Е". Теперь функция count()  в колонке «G» считает нам количество сгруппированных строк. Например: Поз.2 (S=2мм, 3шт.)
04:59 Теперь расчётные данные предаются в объект. Но, при изменении условия выборки, ничего не меняется в уже установленных объектах. Так как при изменении слоя они автоматически пропадают из выборки и, соответственно, из отчёта.
05:11 Мы можем отредактировать «позиционную выноску» через диалог или через свойства платформы, но для полного счастья нам хотелось бы добиться полной автоматизации.
05:15 Заходим в диалог  «Редактирование таблицы» и создаём новый отчёт. Нажимаем «Выбрать исходные объекты» и, Указав «Позиционную выноску», добавляем условие, что выбор по все слоям кроме «Example».
05:57 В любой столбец нового отчёта, кроме «А», вставляем =sum(ctlsetValue(off(0;-1);Object.String2)). Теперь, при переносе «Позиционной выноски» со слоя  «Example» на любой другой слой, значение второй строки выноски будет «обнуляться»
06:20 Группируем отчёт по столбцу «А»
06:40 Проверяем работу
07:20 Воспользуемся созданным отчётом, как прототипом для работы с абсолютно другим объектом.
07:27 Для этого нам нужно поменять источник данных для отчёта на «Параметрический объект»
07:41 Изменить источник строк столбца «В» на «=Object.sPartName» и целевой параметр в столбце «Н» на =sum(ctlsetValue(off(0;-1);Object.sPoz)). 
08:22 Так как слово «Поз.» уже присутствует в параметрическом объекте, мы легко можем модифицировать строку в ячейке «G» - просто удалив “Поз. “+
09:07 Редактируем "источник данных" и "строк" второго отчёта в таблице.

Проверяем работу!!!
Тело: https://cloud.mail.ru/public/BEjS/syD...

 

Разбор строки subSplit и ctlSetValue.dwg

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


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

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

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

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

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

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

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

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

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

Загрузка...

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