Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять DynamicBackColor / 17 сообщений из 17, страница 1 из 1
11.03.2015, 10:05
    #38900786
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
Добрый день, коллеги!

Создал грид, в качестве источника данных Алиас.
Хочу ошибочные строки выделить. В принципе понимаю в чем ошибка(гугл помог), но решения не нашел.
Ошибкой является сочетание типа источника данных Алиас и 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
11.03.2015, 10:32
    #38900841
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
11.03.2015, 10:51
    #38900871
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
11.03.2015, 11:25
    #38900936
Зингер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
vadipok,
Ошибка какая-нибудь появляется? Текст ошибки в студию.
...
Рейтинг: 0 / 0
11.03.2015, 11:30
    #38900949
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
Зингерvadipok,
Ошибка какая-нибудь появляется? Текст ошибки в студию.

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

Expression is invalid. Use a valid expression for DYNAMICBACKCOLOR property.
...
Рейтинг: 0 / 0
11.03.2015, 11:35
    #38900962
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
11.03.2015, 11:41
    #38900976
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
Dima T,

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

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

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

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



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

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

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

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



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

Здесь лишняя скобка. Ошибку не будет выдавать, но и выполняться не будет.
...
Рейтинг: 0 / 0
12.03.2015, 10:49
    #38902159
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
12.03.2015, 11:38
    #38902206
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
12.03.2015, 11:52
    #38902215
vadipok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
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
12.03.2015, 11:57
    #38902226
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Опять DynamicBackColor
vadipokА я уже успел по своему сделать, тупо, в лоб:

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

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

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


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