Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 условный вывод Value TEXT in Grid  [new]
StQFox
Member

Откуда: Хабаровск
Сообщений: 75
Народ, подскажите, плz-z-z...
В гриде в строку нужно выводить значение в зависимости от значения источника колонки.
Источник данных - локальная вьюха.
Например, если встречается .NULL., выводим ПУСТО; в противном случае само значение.

Заранее благодарю.
11 ноя 08, 16:35    [6424309]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
Анатолий Широков
Member

Откуда: Санкт-Петербург
Сообщений: 1319
StQFox,

если требуется глобально изменить отображение null полей , то смотри SET NULLDISPLAY TO [cNullText].

Если только для конкретного TextBox, то установи значения свойства NullDisplay TextBox.
11 ноя 08, 16:45    [6424384]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
StQFox
Member

Откуда: Хабаровск
Сообщений: 75
Анатолий Широков,
>Если только для конкретного TextBox, то установи значения свойства NullDisplay TextBox.
Не работает. Все равно отражает нуловые значения.
12 ноя 08, 06:06    [6426529]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
homik
Member

Откуда:
Сообщений: 146
myFrm=Createobject("My_Form")
myFrm.Show(1)

Define Class My_Form As Form
	Procedure Init
		Create Cursor tmp(fld_char c(10) Null)
		INSERT INTO tmp(fld_char) values(.Null.)
	
		This.AddObject("MyTxt","Textbox")
		This.MyTxt.Controlsource='tmp.fld_char'
		*This.MyTxt.NullDisplay="aaaaaaaaaaaaaaa"
		This.MyTxt.Visible=.T.
	Endproc
Enddefine

Сначала запустите как есть, а потом уберите комментарий.
Почувствуйте разницу.
12 ноя 08, 06:28    [6426539]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
StQFox
Member

Откуда: Хабаровск
Сообщений: 75
homik,
хех...
спасибо конечно за пример кода. Но у меня обработка нуловых значений не работает в гриде.
Причем, глобальная настройка SET NULLDISPLAY решает проблему.
Но не срабатывает NullDisplay Text-а в гриде.
Вьюху создавал мастером.
12 ноя 08, 14:17    [6429048]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
homik
Member

Откуда:
Сообщений: 146
myFrm=Createobject("My_Form")
myFrm.Show(1)
USE IN tmp

Define Class My_Form As Form
	Procedure Init
		Create Cursor tmp(fld_char c(10) Null,fld_2 C(10))
		INSERT INTO tmp(fld_char,fld_2) values(.Null.,"first")
		INSERT INTO tmp(fld_char,fld_2) values("It's not NULL","second")
		INSERT INTO tmp(fld_char,fld_2) values(.Null.,"third")
		GO top
		
		This.AddObject("MyGrd","Grid")
		This.MyGrd.ColumnCount=0
		This.MyGrd.RowHeight=30
		This.MyGrd.AddObject('my_Col1','my_Column')
		This.MyGrd.AddObject('my_Col2','my_Column')
		This.MyGrd.Visible=.T.

		This.MyGrd.RecordSource="tmp"
		This.MyGrd.RecordSourceType=1
	Endproc
Enddefine

Define Class my_Column As Column
	Sparse=.F.
	Visible = .T.
	Procedure Init
		This.RemoveObject('Text1')
		This.AddObject('MyTxt','My_Text')
	Endproc
Enddefine

Define Class My_Text As Textbox
	Procedure Init
		this.NullDisplay="It's NULL"
	Endproc
ENDDEFINE

Совет :

Все контролы содавать на основе своих классов.
И в В Вашем случае, создайте класс Грид, в котором переопределы класс Column и его Text.

Или пользуйте Set NullDisplay To
12 ноя 08, 14:35    [6429205]     Ответить | Цитировать Сообщить модератору
 Re: условный вывод Value TEXT in Grid  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
StQFox
Анатолий Широков,
>Если только для конкретного TextBox, то установи значения свойства NullDisplay TextBox.
Не работает. Все равно отражает нуловые значения.


Кроме этого еще надо установить значение Sparce = .F. для столбца, в котором этот TextBox находится, чтобы "распространить" настройку на все строки, а не только на текущую.

Почему настройки ячейки видны только в активной ячейке
12 ноя 08, 15:56    [6429950]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить