![]() |
![]() |
![]() |
|
v7: FormEx | ☑ | ||
---|---|---|---|---|
0
DES
23.09.12
✎
16:25
|
ТЗ.ВыбратьСтроку(Стр);
Можно такое раскрасить ? |
|||
1
Rie
23.09.12
✎
16:55
|
(0) Одну (выбранную) строку в ТЗ?
Раскраска задаётся формулой. И есть замечательная функция - ?(,,). |
|||
2
DES
23.09.12
✎
17:05
|
FormEx.ВключитьРаскраскуТаблиц(1);
добавил колонку ТЗ.НоваяКолонка("FormEx_ПланРаскраски","Строка",10,,"",1); занес ТЗ.FormEx_ПланРаскраски = "BRUSH[255]"; не красится чейто... |
|||
3
Rie
23.09.12
✎
17:24
|
(2) А что у тебя должно краситься-то при таком раскладе?
Если хочешь покрасить текущую строку, а остальные - не трогать, то задай в формуле колонки раскраски что-то вроде ?(ЭтоТаСтрокаКоторуюКрасить(),"BRUSH[0x0000FF]COUNT[2]","") И колонку эту сделай первой (или какой там тебе надо), а не в конец добавляй. |
|||
4
DES
23.09.12
✎
17:30
|
она первая
тупо не красится, без условий |
|||
5
ЧашкаЧая
23.09.12
✎
17:31
|
ТЗ.ВыбратьСтроку() - не раскрасить, самую ТЗ - можно.
|
|||
6
DES
23.09.12
✎
17:32
|
Это ТЗ, которая вызывается
ТЗ.ВыбратьСтроку(Креатор); а не на форме, может поэтому? |
|||
7
ЧашкаЧая
23.09.12
✎
17:36
|
(6) Вы хотите раскрасить окошко которое появляется по ТЗ.ВыбратьСтроку()?
|
|||
8
Rie
23.09.12
✎
17:40
|
(6) Что значит "не на форме"?
Условие в (3) можно сделать зависящим от ТЗ.ТекущаяСтрока(). |
|||
9
ДенисЧ
23.09.12
✎
17:53
|
Я не автор сабжа, но склероз мой мне напоминает, что нельзя этого сделать.
|
|||
10
DES
23.09.12
✎
17:55
|
(7) да
|
|||
11
Rie
23.09.12
✎
18:12
|
(9) Возможно, однако.
Вот пример: Процедура УстановитьРаскраску(нСтр) Если ТЗ.ПолучитьЗначение(нСтр,"Кол2")>5 Тогда ТЗ.Раскраска = "BRUSH[0x0000FF]COUNT[3]"; Иначе ТЗ.Раскраска = "BRUSH[0x00FF00]COUNT[3]"; КонецЕсли; КонецПроцедуры // УстановитьРаскраску //______________________________________________________________________________ Процедура ПоКлику() Если ТЗ.ТекущаяКолонка()="Кол2" Тогда Ч = ТЗ.Кол2; Если ВвестиЧисло(Ч,"???",10,0)=1 Тогда ТЗ.Кол2 = Ч; УстановитьРаскраску(ТЗ.ТекущаяСтрока()); КонецЕсли; КонецЕсли; КонецПроцедуры // ПоКлику //______________________________________________________________________________ Работает. |
|||
12
DES
23.09.12
✎
18:15
|
(11)ТЗ.ВыбратьСтроку()? сработает?
|
|||
13
Rie
23.09.12
✎
18:17
|
(12) После ТЗ.ВыбратьСтроку() - поставь УстановитьРаскраску().
|
|||
14
Rie
23.09.12
✎
18:17
|
+(13) Твоё ТЗ.ВыбратьСтроку() - это de facto ПоКлику() из (11), только чуть иначе.
|
|||
15
Rie
23.09.12
✎
18:19
|
А чтобы проще было - брось на форму текстовое поле и в нём раскрашивай строки.
Строку идентифицируй, например, по НомерСтроки. |
|||
16
Rie
23.09.12
✎
18:28
|
+(15) Что-то вроде
Функция ФормулаДляТекстовогоПоля() ТекСтр = ТЗ.НомерСтроки; Для нСтр = 1 По ТЗ.КоличествоСтрок() Цикл Если нСтр=ТекСтр Тогда ТЗ.УстановитьЗначение(нСтр,"Раскраска","BRUSH[0x0000FF]COUNT[16]"); Иначе ТЗ.УстановитьЗначение(нСтр,"Раскраска",""); КонецЕсли; КонецЦикла; Возврат ""; КонецФункции |
|||
17
DES
23.09.12
✎
18:45
|
>>>>После ТЗ.ВыбратьСтроку() - поставь УстановитьРаскраску().
не понимаю. как так ПОСЛЕ ??? мне нужно Во время |
|||
18
DES
23.09.12
✎
18:46
|
Как красить я знаю, оно вообще не красит
|
|||
19
Rie
23.09.12
✎
18:49
|
(17) Текстовое поле на форме - не помогает? (Если строка выбирается программно - я не уверен, что событие отработает; весьма и весьма возможно, что прав ДенисЧ).
(18) Вообще не красит? Даже когда искусственно раскраску задаёшь, в статической ситуации? |
|||
20
DES
23.09.12
✎
18:50
|
(19) ТЗ.FormEx_ПланРаскраски = "BRUSH[255]";
|
|||
21
Rie
23.09.12
✎
18:56
|
(20) После этого после перерисовки таблицы значений она перекрасится.
Но - COUNT[сколькото] не зря пишется. Но - колонка раскраски должна быть перед раскрашиваемыми. Это так? |
|||
22
DES
23.09.12
✎
18:59
|
да, и так и сяк
|
|||
23
Rie
23.09.12
✎
19:06
|
(22) Покажи код. А то что-то тут не срастается. ТЗ.ВыбратьСтроку(Стр) - пользователь выбирает строку. Ты её раскрашиваешь
ТЗ.ПолучитьСтрокуПоНомеру(Стр); РаскраситьТекущуюСтроку(); И? |
|||
24
DES
23.09.12
✎
19:12
|
это что за код ?
Мне нужно раскрасить при ТЗ.ВыбратьСтроку(). т.е. получить раскрашенную ТЗ всю, а не текущей строки. |
|||
25
DES
23.09.12
✎
19:12
|
Код в (2)
|
|||
26
Rie
23.09.12
✎
19:35
|
(25) Код в (2) и не должен работать. Судя про всему, он в ПослеОткрытия. Но тогда куда (в какую несуществующую строку) пишется раскраска?
|
|||
27
big
24.09.12
✎
05:44
|
(2) Судя по имени колонки "FormEx_ПланРаскраски", можно предположить, что применен метод ПланРаскраски(). Поэтому всё, что советовали типа "BRUSH[0x0000FF]COUNT[2]" работать не будет. Т.к. макросы COUNT и INDENT не обрабатываются.
Поэтому, если план раскраски все-таки включен, то колонку надо создавать вот с такими параметрами: тз.НоваяКолонка("Цвет","Строка",,,"FormEx_ПланРаскраски"); Т.е. "FormEx_ПланРаскраски" должен быть заголовком колонки, а не именем. Надо будет ещё малость поработать над функцией заполнения этой колонки, но это собссно уже мелочи |
|||
28
big
24.09.12
✎
05:47
|
(27) + для простоты эксперимента запиши в эту колонку (она должна быть первая и невидимая) вот такую строку
"()(BRUSH[6773995])(BRUSH[6773995])(BRUSH[6773995])". Должно окраситься 3 колонки в таблице |
|||
29
ADirks
24.09.12
✎
09:14
|
Не выйдет у тебя так ничего, не парься.
А сделай нормальную форму (обработку) с ТЗ на ней. И раскрашивай там сколько влезет. Заодно и размер нормальный будет, и вообще вид, а не то убожество, которое ВыбратьСтроку(). |
|||
30
orefkov
24.09.12
✎
09:40
|
(29)
Опередил :) Имхо, лучше свою форму с ТЗ накидать. |
|||
31
DES
24.09.12
✎
12:58
|
Эх, а счастье было так близко...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |