QUIK 7.25.1.3. Условное форматирование таблиц., Желательно, для ячеек выставить по умолчанию "Нет цвета"
Пользователь
Сообщений: Регистрация: 28.07.2017
01.03.2019 12:14:35
QUIK 7.25.1.3. Условное форматирование таблиц.
Приветствую!
При открытии окна условного форматирования для ячеек по умолчанию выставлены параметры "белый фон, чёрный текст". В таблице скрипта часто(почти всегда) возникает необходимость выделить цветом или размером шрифта какую-либо ячейку(ки). Причём цветовые установки скрипта не имеют приоритет над форматированием.. я уж не говорю про возможность задать размер шрифта ячеек в скрипте.. В 25-й версии приходится ежедневно в каждой таблице вначале выставлять "Нет цвета", а потом цвет и размер текста...Иначе - белый фон, чёрный текст!.... Утомительно..
При форматировании штатных таблиц Квика нет разницы что там установлено по умолчанию, а при работе со скриптами, как выяснилось, есть.. Прошерстил настройки, ничего не нашёл..
В предыдущей версии ( не помню уж какая там.. из последних..) таких заморочек не было..
Нельзя ли как-то вернуть утраченное?
Заранее благодарен.
Пользователь
Сообщений: Регистрация: 29.12.2018
02.03.2019 12:37:28
Здравствуйте. Пришлите, пожалуйста, скрипт (или часть скрипта) который форматирует по цвету таблицу. Попробуем у себя проверить.
QUIK clients support
Пользователь
Сообщений: Регистрация: 28.07.2017
02.03.2019 15:08:58
День добрый!
Код
function Green(Line, Col) SetColor(t_id, Line, Col, RGB(0,120,0), RGB(255,255,255), RGB(0,120,0), RGB(255,255,255)); end; -- Зеленый
function Red(Line, Col) SetColor(t_id, Line, Col, RGB(160,0,0), RGB(255,255,255), RGB(160,0,0), RGB(255,255,255)); end; -- Красный
t_id = AllocTable(); -- Получает доступный id для создания таблицы
AddColumn(t_id, 0, "0", true, QTABLE_STRING_TYPE, 12);
AddColumn(t_id, 1, "1", true, QTABLE_STRING_TYPE , 12);
AddColumn(t_id, 2, "2", true, QTABLE_STRING_TYPE, 12);
t = CreateWindow(t_id); -- Создает таблицу
for i = 1, 4, 1 do InsertRow(t_id, i); -- end
if i <3 then
for n = 0, 2, 1 do SetCell(t_id, i, n, " 621"); Green(i,n) end
else
for n = 0, 2, 1 do SetCell(t_id, i, n, " up"); Red(i, n); end
end
end
Таблица. Данные статичны. -
Выставлено "задано", формат по умолчанию -
"не содержит", формат не трогаем -
Изменён только размер шрифта -
Выставлено "Нет цвета" -
Второй вариант форматирования -
Код
function Green(Line, Col) SetColor(t_id, Line, Col, RGB(0,120,0), RGB(255,255,255), RGB(0,120,0), RGB(255,255,255)); end; -- Зеленый
function Red(Line, Col) SetColor(t_id, Line, Col, RGB(160,0,0), RGB(255,255,255), RGB(160,0,0), RGB(255,255,255)); end; -- Красный
t_id = AllocTable();
AddColumn(t_id, 0, "0", true, QTABLE_STRING_TYPE, 12);
AddColumn(t_id, 1, "1", true, QTABLE_STRING_TYPE , 12);
AddColumn(t_id, 2, "2", true, QTABLE_STRING_TYPE, 12);
t = CreateWindow(t_id);
for i = 1, 4, 1 do InsertRow(t_id, i); end
RUN = true
function main()
while RUN do sleep(1000);
SetCell(t_id, 1, 1, " 621"); Green(1,1)
end
end
function OnStop(stop_flag)
DestroyTable(t_id)
RUN = false
return 1000
end
В динамике аналогично -
Надеюсь, наглядно...
С Уважением...
Пользователь
Сообщений: Регистрация: 29.12.2018
04.03.2019 07:09:43
Здравствуйте, ak56. Белый фон и чёрный текст при условном форматировании обуславливается тем, что когда Вы задаете условие, то не меняете цвет формата. То есть, Вы задаете, что по какому-то условию размер шрифта в ячейке изменится, но так же изменятся ее цветовые составляющие (цвет фона и цвет текста), так как они заданы по умолчанию. Задав цвет в настройке формата Вы сразу добьетесь необходимого результата. Однако, можем зарегистрировать пожелание, чтобы по умолчанию цветовые настройки ячейки были "Нет цвета". Регистрируем?
Здравствуйте! Видимо я, как всегда, недостаточно ясно изложил свои пожелания.. Понятно, что условное форматирование имеет приоритет над форматом ячейки, заданном в скрипте.. и если по умолчанию установлено белое\чёрное, то при его применении, скажем, изменении только размера текста, мы будем наблюдать изменение и цвета - по умолчанию.. В случае статичной картинки, когда при запуске скрипта один раз выставляется цвет\размер, и далее не меняется, то не особенно критично.. Другое дело, когда картинка динамична.. Пример в скрипте..
Логика установки в усл.форм. ч\б понятна - тема чёрно-белая, НО! Пользователь, не работающий со скриптами, заходит в усл.форм. специально для того, установить какие-то свои цвета..как раз в этих ячейках. А "продвинутому скриптоману" приходится делать целых ДВА, или четыре лишних движения! Ежедневно! ... тем более, что у него УЖЕ всё раскрашено скриптом!
Конечно регистрируем! Я ж для этого и писал..
С Уважением!..
Код
function Green(Line, Col) SetColor(t_id, Line, Col, RGB(0,120,0), RGB(255,255,255), RGB(0,120,0), RGB(255,255,255)); end; -- Зеленый
function Green_1(Line, Col) SetColor(t_id, Line, Col, RGB(0,245,0), RGB(0,0,0), RGB(0,245,0), RGB(0,0,0)); end; -- Светло_Зеленый
function Red(Line, Col) SetColor(t_id, Line, Col, RGB(160,0,0), RGB(255,255,255), RGB(160,0,0), RGB(255,255,255)); end; -- Красный
t_id = AllocTable();
AddColumn(t_id, 0, "0", true, QTABLE_STRING_TYPE, 12);
AddColumn(t_id, 1, "1", true, QTABLE_STRING_TYPE , 12);
AddColumn(t_id, 2, "2", true, QTABLE_STRING_TYPE, 12);
t = CreateWindow(t_id);
for i = 1, 4, 1 do InsertRow(t_id, i); end
k = 0
RUN = true
function main()
while RUN do sleep(1000);
SetCell(t_id, 1, 1, " 621");
if k < 2 then
Green(1,1)
k = k + 1
else
Green_1(1,1)
k = 0
end
end
end
function OnStop(stop_flag)
DestroyTable(t_id)
RUN = false
return 1000
end
Пользователь
Сообщений: Регистрация: 29.12.2018
04.03.2019 13:05:41
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
QUIK clients support
Пользователь
Сообщений: Регистрация: 28.07.2017
04.03.2019 13:49:11
Благодарю.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
13.08.2019 15:41:00
Если условное форматирование применено ко всей строке, то настройка "Нет цвета" не работает.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 29.12.2018
13.08.2019 16:09:47
Здравствуйте, Старатель. Попробовали воспроизвести на приведенном в этой ветке скрипте. Если задано условное форматирование ко всей строке, то настройка "Нет цвета" работает нормально (ниже в пример приводим скриншоты до и после применения форматирования). Уточните, пожалуйста, какие настройки форматирования выбраны у Вас?
Я думал "Нет цвета" означает не перекрашивать в белый (или любой другой) цвет. Это не так? Что же тогда?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 29.12.2018
14.08.2019 14:41:24
Здравствуйте, Старатель. Да, действительно, проблему увидели. Ваше письмо получено, проблема изучается. Постараемся в ближайшее время дать ответ.
QUIK clients support
QUIK clients support
Сообщений: Регистрация: 22.12.2014
27.08.2019 18:11:31
Цитата
Старатель написал: Я думал "Нет цвета" означает не перекрашивать в белый (или любой другой) цвет. Это не так? Что же тогда?
Добрый день,
В одной из ближайших версий мы изменим приоритет выбора настроек условного форматирования ячеек. У индивидуальных настроек ячейки приоритет будет выше, чем у настроек ячеек с признаком "Применить ко всей строке". Из двух ячеек с признаком "Применить ко всей строке" настройки форматирования будут браться с ячейки, которая находится в таблице правее.
написал: Обнаруженная Вами ошибка была исправлена в выпущенной версии Рабочего места QUIK 8.1.
Так а что исправили-то можете объяснить?
Форматирование отличается только галкой "применить ко всей строке". Хотим отформатировать только шрифт, фон оставить, как есть.
В первом случае цвет фона остаётся, т.е. зелёный, как был задан из скрипта. Во втором случае цвет фона из красного перекрашивается в белый.
Добрый день,
Мы обнаружили причину проблемы и постараемся исправить ее в ближайших версиях. Приносим извинения за доставленные неудобства.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
08.10.2019 18:35:55
В настройках шрифтов («Программа» / «Шрифты») указан шрифт Tahoma. При выборе условного форматирования эти настройки игнорируются, стоит по-умолчанию другой шрифт (Arial). Приходится дополнительно ещё указывать нужный шрифт и размер.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK clients support
Сообщений: Регистрация: 23.01.2015
09.10.2019 12:24:31
Старатель, добрый день. Можем предложить зарегистрировать пожелание- что бы шрифт в условном форматировании подставлялись такие же, какие настроены в Программа/Шрифты. Регистрируем?
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
09.10.2019 13:04:04
Регистрируем
Надо делать так, как надо. А как не надо - делать не надо.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
написал: Обнаруженная Вами ошибка была исправлена в выпущенной версии Рабочего места QUIK 8.1.
Так а что исправили-то можете объяснить?
Форматирование отличается только галкой "применить ко всей строке". Хотим отформатировать только шрифт, фон оставить, как есть.
В первом случае цвет фона остаётся, т.е. зелёный, как был задан из скрипта. Во втором случае цвет фона из красного перекрашивается в белый.
Добрый день,
Мы обнаружили причину проблемы и постараемся исправить ее в ближайших версиях. Приносим извинения за доставленные неудобства.
Добрый день,
Ошибка, описанная в данном инциденте, была исправлена в версии 8.2.0 терминала QUIK. Рекомендуем вам обновить версию программы.
Приносим извинения за причиненные неудобства.
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
06.12.2019 00:22:00
Код
function main()
local id = AllocTable()
AddColumn(id, 1, 'QTABLE_STRING_TYPE', true, QTABLE_STRING_TYPE, 30)
AddColumn(id, 2, 'QTABLE_INT_TYPE', true, QTABLE_INT_TYPE, 25)
CreateWindow(id)
local row = InsertRow(id, -1)
SetCell(id, row, 1, 'задано')
SetCell(id, row, 2, '0', 0)
row = InsertRow(id, -1)
SetCell(id, row, 1, '')
row = InsertRow(id, -1)
SetCell(id, row, 2, '')
end
Как сделать, чтобы условие «задано» корректно работало для числовых ячеек?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
06.12.2019 11:18:05
Цитата
Старатель написал: Как сделать, чтобы условие «задано» корректно работало для числовых ячеек?
К сожалению такой возможности не предусмотрено
Пользователь
Сообщений: Регистрация: 30.01.2015
Роботорговец
19.05.2020 14:02:42
Было бы неплохо, если бы наконец устранили древнюю проблему, когда цвета таблицы, установленные из скрипта в SetColor, сбрасываются при применении фильтра.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: Регистрация: 23.01.2015
20.05.2020 05:38:32
Старатель, Проблема изучается. Постараемся в ближайшее время дать ответ.
QUIK clients support
Сообщений: Регистрация: 27.01.2015
21.05.2020 06:29:13
Добрый день,
Действительно, цветовые параметры сбрасываются после применения фильтров. Мы исправим недоработку в очередном обновлении ПО. Приносим извинения за причиненные неудобства.