powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять DynamicBackColor
17 сообщений из 17, страница 1 из 1
Опять DynamicBackColor
    #38900786
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!

Создал грид, в качестве источника данных Алиас.
Хочу ошибочные строки выделить. В принципе понимаю в чем ошибка(гугл помог), но решения не нашел.
Ошибкой является сочетание типа источника данных Алиас и DynamicBackColor.
Вот что написано по этому поводу в учебнике:
П Р И М Е Ч А Н И Е
Если в качестве источника данных для Grid используется не псевдоним, т. е.
Grid.RecordSourceType<>1 — Alias, то необходимо ввести еще одно свойство, кото-
рое будет содержать имя псевдонима, из которого следует считывать значение
Recno(). Или же просто явно прописывать имя псевдонима
непосредственно в коде.

Но я не понимаю, что нужно сделать конкретно.

Так не работает
Код: vbnet
1.
2.
3.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(ALLTRIM(ThisForm.grid1.column3)='61953' ,;
	      RGB(255,0,0), RGB(255,255,255))", "Column") 




Так работает
Код: vbnet
1.
2.
3.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), ;
	      RGB(0,255,0))", "Column")




Как их объединить, подскажите плиз. Спасибо!
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900841
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ThisForm.grid1.column3 это объект, ему нельзя делать ALLTRIM()
Если тебе надо содержимое поля, которое в этой колонке, то его и пиши:
Код: sql
1.
2.
3.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(ALLTRIM(MyAlias.MyField)='61953' ,;
	      RGB(255,0,0), RGB(255,255,255))", "Column") 
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900871
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ошибка повторяется.

Код: vbnet
1.
2.
3.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(ALLTRIM(Jgnprf.cel)='61953' ,;
	      RGB(255,0,0), RGB(255,255,255))", "Column") 



По пробовал Cursor1, тоже не помогло.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900936
Зингер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadipok,
Ошибка какая-нибудь появляется? Текст ошибки в студию.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900949
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зингерvadipok,
Ошибка какая-нибудь появляется? Текст ошибки в студию.

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

Expression is invalid. Use a valid expression for DYNAMICBACKCOLOR property.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900962
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DynamicBackColor ошибки не выдает в VFP9. Просто не работает.

сделай на форме кнопку, в нее напиши
Код: sql
1.
2.
lcVal = "IIF(ALLTRIM(Jgnprf.cel)='61953', RGB(255,0,0), RGB(255,255,255))"
messagebox(&lcVal)


дави на кнопку и смотри что будет: либо ошибка, либо messagebox() выйдет. Если ошибка - правь до тех пока не исправишь.

Скорее всего у тебя поле Jgnprf.cel не символьное.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900976
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Function argument value, type or count is invalid.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38900979
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ок, понял. Спасибо!
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902024
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

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

Код: plaintext
1.
2.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255),  ХХХХХХ)", "Column")



Спасибо большое!
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902081
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255),  This.BackColor)", "Column"
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902133
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Спасибо, но не подошло.
Он рисует не текущий фон, а сбрасывает на базовый.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902149
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokДобрый день!

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

Код: plaintext
1.
2.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255),  ХХХХХХ)", "Column")



Спасибо большое!

Здесь лишняя скобка. Ошибку не будет выдавать, но и выполняться не будет.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902159
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

Код: plaintext
1.
2.
3.
4.
5.
thisform.grid1.SetAll("DynamicBackColor", ;
	"IIF(Jgnprf.cel>35 ,;  &&&#206;&#248;&#232;&#225;&#234;&#224; cel &#225;&#238;&#235;&#252;&#248;&#229; 35
	     RGB(255,0,0), ; && &#202;&#240;&#224;&#241;&#237;&#251;&#233; &#246;&#226;&#229;&#242;
	     This.BackColor)", ; 
	     "Column") 
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902206
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokDima T,

Спасибо, но не подошло.
Он рисует не текущий фон, а сбрасывает на базовый.
This.BackColor это цвет установленный цветовой схемой, "базовый" по твоему. Что по твоему "текущий" ? Тот который был установлен до этого?
Установка DynamicBackColor затирает предыдущее выражение.

Код: sql
1.
...("DynamicBackColor", "IIF(Jgnprf.cel>35 , RGB(255,0,0), This.BackColor)" ...


Это значит сделать красный фон для строк где cel>35, для остальных оставить по умолчанию.
Можешь анализировать что было
Код: sql
1.
2.
3.
4.
5.
if empty(thisform.grid1.Column1.DynamicBackColor)
   ...("DynamicBackColor", "IIF(Jgnprf.cel>35 , RGB(255,0,0), This.BackColor)" ...
else
   ...("DynamicBackColor", "IIF(Jgnprf.cel>35 , RGB(255,0,0), " + thisform.grid1.Column1.DynamicBackColor + ")" ...
endif


Если тебе надо просто по нескольким условиям раскрашивать, то используй icase()
Код: sql
1.
...("DynamicBackColor", "ICASE(Jgnprf.cel>35 , RGB(255,0,0), Jgnprf.cel>5 , RGB(0,255,0), This.BackColor)" ...
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902215
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Круто, спасибо большое.
А я уже успел по своему сделать, тупо, в лоб:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
PROCEDURE CheckErrors 
	m.checkValue5 = Form1.check5.Value
	m.checkValue1 = Form1.check1.Value 
	m.checkValue2 = Form1.check2.Value
	m.checkValue3 = Form1.check3.Value

	m.colorValue = 	"IIF(1 > 1 " 
	
	IF checkValue5 = 1 THEN 
		m.colorValue = m.colorValue + "OR Jgnprf.cel>35 " 
		m.colorValue = m.colorValue + "OR (Jgnprf.verh>Jgnprf.niz AND Jgnprf.niz!=0) "
		m.colorValue = m.colorValue + "OR ! BETWEEN(ConvertToDate(Jgnprf.data), DATE(1950,01,01), DATE()) "
	ENDIF
	
	IF checkValue1 = 1 AND ! checkValue5 = 1 THEN 
		m.colorValue = m.colorValue + "OR Jgnprf.cel>35 " 
	ENDIF
	
	IF checkValue2 = 1 AND ! checkValue5 = 1 THEN 
		m.colorValue = m.colorValue + "OR (Jgnprf.verh>Jgnprf.niz AND Jgnprf.niz!=0) "
	ENDIF
	
	IF checkValue3 = 1 AND ! checkValue5 = 1 THEN 
		m.colorValue = m.colorValue + "OR ! BETWEEN(ConvertToDate(Jgnprf.data), DATE(1950,01,01), DATE()) "
	ENDIF
	
	m.colorValue = m.colorValue + ", RGB(255,0,0), "
	m.colorValue = m.colorValue + "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(240,240,240)))" 

	Form1.grid1.SetAll("DynamicBackColor", colorValue, "Column") 
		     
	Form1.grid1.Refresh

ENDPROC
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902226
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokА я уже успел по своему сделать, тупо, в лоб:

Все правильно сделал, только один ньюанс: RGB(255,255,255) замени на This.BackColor, т.к. он не всегда белый и там где окажется не белый - твой белый будет не в тему.
...
Рейтинг: 0 / 0
Опять DynamicBackColor
    #38902470
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TvadipokА я уже успел по своему сделать, тупо, в лоб:

Все правильно сделал, только один ньюанс: RGB(255,255,255) замени на This.BackColor, т.к. он не всегда белый и там где окажется не белый - твой белый будет не в тему.

Ок, спасибо большое!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять DynamicBackColor
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]