Table или Multicolumn listbox

Простейшие вопросы в области инженерной разработки
Ответить
Boris_K
developer
developer
Сообщения: 281
Зарегистрирован: 28 янв 2015, 14:25
Версия LabVIEW: 2012 Pro

Table или Multicolumn listbox

Сообщение Boris_K »

1) Чем принципиально отличаются Table и Multicolumn listbox? И что лучше использовать для отображения таблицы разнородных данных?

2) Можно ли в listbox программно менять содержимое строк, добавлять/удалять строки? Не нашёл соответствующие свойства и методы.

3) Можно ли поменять стиль линий между ячейками и в заголовках?
Race conditions - опасный и скользкий баг!
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Kosist »

Boris_K писал(а):1) Чем принципиально отличаются Table и Multicolumn listbox? И что лучше использовать для отображения таблицы разнородных данных?

2) Можно ли в listbox программно менять содержимое строк, добавлять/удалять строки? Не нашёл соответствующие свойства и методы.

3) Можно ли поменять стиль линий между ячейками и в заголовках?
1) Принципиально отличаются типом данных - если закинуть их на блок диаграмму, то Table - двумерный массив строк, а Multicolumn listbox - числовой тип данных. Потом, в Multicolumn listbox можно присваивать иконки (Symbols) в различные ячейки.
2) Можно, конечно. Для этого есть свойство Property Node -> Item Names. Это двуменрный массив строк, поэтому работайте с ним как с обычным массивом.
3) А вот этого не знаю :think:
Мы делили апельсин - много наших полегло...
Boris_K
developer
developer
Сообщения: 281
Зарегистрирован: 28 янв 2015, 14:25
Версия LabVIEW: 2012 Pro

Re: Table или Multicolumn listbox

Сообщение Boris_K »

Как сделать, чтобы в зависимости от значения логической переменной, таблица становилась нередактируемой? Есть свойство Enabled state, но оно не подходит, потому что если ставить Disabled, таблицу невозможно прокручивать, а мне нужно, чтобы её можно было смотреть, крутить, но нельзя было менять значения в ячейках...
Race conditions - опасный и скользкий баг!
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Kosist »

Boris_K писал(а):Как сделать, чтобы в зависимости от значения логической переменной, таблица становилась нередактируемой? Есть свойство Enabled state, но оно не подходит, потому что если ставить Disabled, таблицу невозможно прокручивать, а мне нужно, чтобы её можно было смотреть, крутить, но нельзя было менять значения в ячейках...
Я в таких случаях просто делал таблицу индикатором. А если нужно ввести какое-то значение, все делал через ПКМ -> кастомное меню, а дальше, скажем, поле для ввода значений.
Если же Вы так не хотите, то можно сделать следующее. Пускай таблица будет контролом, и Вы отслежываете, можно ли ее редактировать, или нет. Если нельзя, но пользователь ввел значение, то в Event Structure, на событии (Table) Value change, "откатывайтесь" до предыдущего значения (напр., используя Old value в самой Event Structure).
Мы делили апельсин - много наших полегло...
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение dadreamer »

Boris_K писал(а):3) Можно ли поменять стиль линий между ячейками и в заголовках?
В стандартном контроле нельзя. Если вам так это необходимо, то можете воспользоваться ActiveX-контролами, например ActiveX Office Web Components (см. эту тему). Получите что-то подобное:
Вложения
2015-05-26_16-23-06.jpg
Shurik_85
beginner
beginner
Сообщения: 49
Зарегистрирован: 13 апр 2014, 18:53
Версия LabVIEW: 14
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Shurik_85 »

День добрый.
Может кто-нибудь подсказать, есть ли возможность "в одно действие" с помощью "Property Node", или как-то ещё, установить (вернуть) значения цвета фона и цвета текста для всех ячеек индикатора (контрола) Multicolumn listbox, чтобы не перебирать по одной ячейке?
Не смог самостоятельно найти соответствующего свойства.
Пока делаю по одной ячейке см. вложение (Lab View 2014).
Вложения
Clear Listbox.vi
(20.84 КБ) 151 скачивание
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение dadreamer »

 
Вложения
Bulk Cells.vi
lv2014
(6.55 КБ) 180 скачиваний
Shurik_85
beginner
beginner
Сообщения: 49
Зарегистрирован: 13 апр 2014, 18:53
Версия LabVIEW: 14
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Shurik_85 »

Спасибо, dadreamer. :thank:
О таком варианте я даже не задумался почему-то. :dntknw:
Суть та же, всё равно назначение цвета каждой ячейке, но шагов-то меньше, как ни крути. Использую у себя.
Этот вариант несомненно оптимальнее моего, но вопрос пока не снимаю: "есть ли такое свойство (что-то вроде "set default parameters") для Multicolumn listbox?
Shurik_85
beginner
beginner
Сообщения: 49
Зарегистрирован: 13 апр 2014, 18:53
Версия LabVIEW: 14
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Shurik_85 »

dadreamer
, я понимаю, что вопрос глупый, но всё равно не могу понять :dntknw:
Как вызвать свойства "CellBGColors" и "CellFontColors" вместо "CellBG" и "CellFontColor" соответственно. Как назначить массив цветов для массива ячеек, вместо одного цвета для одной ячейки?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение dadreamer »

Shurik_85, это приватное свойство. Для того, чтобы его увидеть, надо прописать в LabVIEW.ini строчку

Код: Выделить всё

SuperSecretPrivateSpecialStuff=True
Свойство называется Bulk Cells.
Shurik_85
beginner
beginner
Сообщения: 49
Зарегистрирован: 13 апр 2014, 18:53
Версия LabVIEW: 14
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Shurik_85 »

Shurik_85 писал(а):
dadreamer
, я понимаю, что вопрос глупый, но всё равно не могу понять :dntknw:
Как вызвать свойства "CellBGColors" и "CellFontColors" вместо "CellBG" и "CellFontColor" соответственно. Как назначить массив цветов для массива ячеек, вместо одного цвета для одной ячейки?
Bulk Cells.vi
Можно ещё больше упростить программу (см. вложение), но мой предыдущий вопрос остаётся в силе: "Как добраться до свойств "CellBGColors" и "CellFontColors" вместо "CellBG" и "CellFontColor" соответственно?".
Вложения
Clear Listbox_2.vi
(lv 2014)
(18.46 КБ) 140 скачиваний
Shurik_85
beginner
beginner
Сообщения: 49
Зарегистрирован: 13 апр 2014, 18:53
Версия LabVIEW: 14
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение Shurik_85 »

Re: Table или Multicolumn listbox
dadreamer 46 минут назад

Shurik_85, это приватное свойство. Для того, чтобы его увидеть, надо прописать в LabVIEW.ini строчку
КОД: ВЫДЕЛИТЬ ВСЁ
SuperSecretPrivateSpecialStuff=True

Свойство называется Bulk Cells.
Спасибо, понял. Не заметил сразу ответ. Так глубоко я точно не копал :think:
Буду пока пользоваться "дозволенными функциями" как в "Clear Listbox_2.vi".
Невольно задумываешься, а "засекречены" (спрятаны) свойства потому что, до конца не отлажены (возможны баги при работе) или по каким другим причинам?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Table или Multicolumn listbox

Сообщение dadreamer »

Shurik_85 писал(а):Невольно задумываешься, а "засекречены" (спрятаны) свойства потому что, до конца не отлажены (возможны баги при работе) или по каким другим причинам?
В основном по этой первой причине. Часто у R&D нет возможности тщательно протестировать все те новые фичи, что они добавляют. Поэтому такие блоки коричневые (private). Юзать на свой страх и риск. Некоторые вполне стабильные. Некоторые (обычно это не property / invoke) не очень - бывает, что и :labview: падает. Скажем так, в продакшен запускать с такими узлами не стоит, а в учебно-образовательных целях юзать можно.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»