v7: FormEx как изменять цвет по условию на экранной форме #627738


#0 by Maximysis
Нужно закрашивать ячейку реквизит табличной части документа при изменении этого реквизита. Крашу через FormEx "BRUSH[255]" вставленный в текст > Формула. А как быть если условие меняется на форме?
#1 by fedoss
?(НужноРаскрасить = 1, "BRUSH[255]", "")
#2 by PuhUfa
Форма.Обновить не прокатывает?
#3 by ЧеловекДуши
2. Делаешь вот такой код при старте системы. 3. В документе при открытии прописываешь вот такой код: 4. В табличной части документа создаешь текстовую колонку, не спутай с реквизитов: В колоне нужно указать заголовок в виде "FormEx_ПланРаскраски" Это предопределенный заголовок и он должен быть только один. 5. Читаем Алиас от АльФа :) ВНИМАНИЕ: При использовании плана раскраски (см.выше) очень важно использование круглых скобок для обозначения строки или колонки таблицы. См. План раскраски таблиц. Синтаксис: FONT[<Цвет>] - задает цвет шрифта строки; BRUSH[<Цвет>] - задает цвет фона строки; FONT_S[<Цвет>] - задает цвет шрифта строки, если она является текущей (не влияет на текущую ячейку); BRUSH_S[<Цвет>] - задает цвет фона строки, если она является текущей (не влияет на текущую ячейку); FONT_C[<Цвет>] - задает цвет шрифта строки, если она является текущей ячейкой (работает только при использовании плана раскраски); BRUSH_C[<Цвет>] - задает цвет фона строки, если она является текущей ячейкой (работает только при использовании плана раскраски); COUNT[<КоличествоКолонок>] - задает количество колонок, на которые распространяется раскраска (игнорируется при использовании плана раскраски); INDENT[<Отступ>] - задает количество колонок, которое необходимо пропустить перед началом раскраски (игнорируется при использовании плана раскраски); FONTSET[<КодШрифта>] - задает шрифт строки; FONTSET_S[<КодШрифта>] - задает шрифт строки, если она является текущей; Назначение: Компонента позволяет устанавливать произвольную раскраску в таблицах 1С (многострочные части документов, формы списков, таблицы значений на форме, дерево+таблица и т.д.). Разрешить раскраску таблиц можно с помощью метода ВключитьРаскраскуТаблиц / ColourBrowse или с помощью флажка на странице свойств компоненты. Запрет раскраски производится вызовом метода ВыключитьРаскраскуТаблиц / UnColourBrowse или снятием флажка на странице свойств. Для включения раскраски в таблицу необходимо добавить колонку, формула в которой должна содержать служебную строку. В общем случае колонка должна располагаться левее колонок, которые предполагается раскрасить. Служебная строка может быть, как напрямую прописана в формуле колонки (или формироваться функцией, вызываемой из формулы), так и быть содержимым реквизита. Для таблиц значений строка раскраски устанавливается в качестве значения ячейки таблицы. Служебная строка состоит из макрокоманд, которые формируют стиль строки. Макрокоманды регистронезависимы и могут располагаться в любой последовательности. Ни одна из макрокоманд не является обязательной, т.е. любая из них может быть опущена при формировании служебной строки. Параметры: <Цвет> - представление необходимого цвета в формате RGB в виде положительного числа. Может быть как десятеричным, так и шестнадцатеричным (в этом случае необходимо добавить ''0x'' перед числом). <КоличествоКолонок> - положительное число. <Отступ> - положительное или отрицательное число. <КодШрифта> - код пользовательского шрифта, возвращенный методом СоздатьШрифт / CreateFont. Вместо любого из параметров можно написать строку NONE, тогда соответствующая макрокоманда применит текущую системную настройку. Если Отступ задан отрицательным числом, то КоличествоКолонок считает только видимые колонки до текущей колонки со служебной строкой. После текущей строки (или если Отступ >=0) КоличествоКолонок считает как видимые, так и невидимые колонки. Служебная строка с макрокомандами действует только в пределах одной строки. Макрокоманды FONT, FONT_S, BRUSH, BRUSH_S, FONTSET и FONTSET_S сбрасывают значения макрокоманд COUNT и INDENT, заданные предыдущей служебной строкой, к нулевому состоянию. Макрокоманда COUNT сбрасывает значение макрокоманды INDENT, заданное предыдущей служебной строкой, к нулевому состоянию. Флаг ''Отрицательное красным'' игнорируется в раскрашиваемых колонках. 6. Создаем функцию на добавленную колонку: 7. Код для функции "РаскраситьКолонки_" 8. Если ты читаешь этот текст, то ты осилил код из пункта № 7 :)
#4 by ЧеловекДуши
Заголовок колонки и Идентификатор, это разные вещи. И я не перепутал их ;)
#5 by Maximysis
Спасибо за подробный ответ. а зачем пункт 3? и как заставить колонку "FormEx_ПланРаскраски" выполнить свою формулу "BRUSH..." при каком нибудь действии на форме. при открытии формы все ок, красится. а при изменении???
#6 by Maximysis
надо что то типа ......
#7 by ЧеловекДуши
Затем, что иначе в документе не будет разукрашиваться табличная часть ;)
#8 by ЧеловекДуши
ДНК - оно не излечимо :) ...Удачи, через "Обновить"... :)
#9 by ЧеловекДуши
+Смотри Пункт № 7 в ... постарайся осилить коД :)
#10 by Злопчинский
при изменении - меняешь в соот.строк ТЧ планраскраски как надо. При изменении данных - идет перерисовка формы - и план раскраски "исполнится"
#11 by Maximysis
о все разобрался спасибо ...
#12 by Maximysis
так я и не понял зачем 3 пункт и без него отлично работает..
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С