Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / text DDDW / 10 сообщений из 10, страница 1 из 1
06.07.2006, 14:21
    #33835666
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
Есть одна поблема, может кто подскажет решение.

есть ДВ которое имеет 1 поле field_test number
это поле мы можем выбрать 2 раза в header
второй экземпляр будет иметь имя с добавкой _1
для каждого экземляра делаем свой ДДДВ
все какбы работает нормально,
но вот не знаю как узнать техт в экземпляре с _1

функция
dw_1.Describe( "evaluate('lookupdisplay(field_test_1)',1)")
возвращает ошибку

не знаю если правельно высказался,
может картинка поможет:
...
Рейтинг: 0 / 0
06.07.2006, 14:58
    #33835805
rcryo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
У ДВ в твоем примере есть только одно поле с именем field_test, и это видно на твоем скриншоте, поэтому обращаться в функции describe ты можешь только к этому имени. И есть два элемента управления с именами field_test и field_test_1 которые привязаны к этому полю. Обращаться к ним ты можешь только функцией GetText(), когда фокус ввода находится на этом элементе.
...
Рейтинг: 0 / 0
06.07.2006, 15:20
    #33835911
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
zuzudw_1.Describe( "evaluate('lookupdisplay(field_test_1)',1)")

сталкивались с этой проблемой. причем раньше это работало. теперь можно указывать только имя колонки но никак не контрола.

обошли написанием своей ф-ции
...
Рейтинг: 0 / 0
06.07.2006, 15:26
    #33835932
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
2 rcryo:
функция GetText() не возвращает текст из ДДДВ,
оно возвращает значение.

2 Dmitry
а можешь поделится этой функцией ?
...
Рейтинг: 0 / 0
06.07.2006, 15:37
    #33835993
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
public function string of_getdisplayvalue (readonly long al_row, readonly string as_column);


string s,f,t
long		i,pos
any 		la_value
datawindowchild ldwc

//this script is so big because in PB10 DW becomes crazy about message boxes!
// check parameters
if isnull(al_row) or al_row <=  0  then return ''
if isnull(as_column) or as_column = "" then return ''

//get item value
t=idw_requestor.Describe ( as_column + ".ColType" )
CHOOSE CASE Left ( t ,  5  )
		CASE "char(",'char'				//  CHARACTER DATATYPE
			la_value = idw_requestor.GetItemString ( al_row, as_column)
		CASE "date"					//  DATE DATATYPE
			la_value = idw_requestor.GetItemDate ( al_row, as_column) 
		CASE "datet"				//  DATETIME DATATYPE
			la_value = idw_requestor.GetItemDateTime ( al_row, as_column) 
		CASE "decim"				//  DECIMAL DATATYPE
			la_value = idw_requestor.GetItemDecimal ( al_row, as_column) 
		CASE "numbe", "long", "ulong", "real"				//  NUMBER DATATYPE	
			la_value = idw_requestor.GetItemNumber ( al_row, as_column) 
		CASE "time", "times"		//  TIME DATATYPE
			la_value = idw_requestor.GetItemTime ( al_row, as_column) 
		CASE ELSE 					//  should not happend
			return ''
END CHOOSE

//format the received value
choose case idw_requestor.describe(as_column+'.type')
	case 'compute'
		f=idw_requestor.describe(as_column+'.format')
		if f='!' or f='?' or f='' or lower(f)='[general]' then return string(la_value)
		return string(la_value,f )
	case 'column'
		choose case idw_requestor.describe(as_column+'.edit.style')
			case 'edit'//,'checkbox','radiobuttons'
				f=idw_requestor.describe(as_column+'.format')
				if f='!' or f='?' or f='' or lower(f)='[general]' then return string(la_value)
				return string(la_value,f )
			case 'editmask'
				f=idw_requestor.describe(''+as_column+'.editmask.mask')
				if f='!' or f='?' or f='' or lower(f)='[general]' then return string(la_value)
				return string(la_value,f )
			case 'ddlb', 'radiobuttons'
				// get values
				i= 1 
				f=idw_requestor.GetValue( as_column, i )
				if f<>'' then
					s=string(la_value)
					if isnull(s) then s=''
					do 
						pos=pos(f,'~t')
						if mid(f,pos+ 1 )=s then return left(f,pos -  1 )
						i++
						f=idw_requestor.GetValue( as_column, i )
					loop while f<>''
				end if
				return string(la_value)
			case 'dddw'
				if idw_requestor.getchild(as_column, ldwc) <>  1  then return string(la_value)
				// get datacolumn name
				f = idw_requestor.describe(as_column + ".dddw.DataColumn")
				if f = "!" or f = "?" or f = "" then return string(la_value)
				// get display column name
				s = idw_requestor.describe(as_column + ".dddw.DisplayColumn")
				if s = "!" or s = "?" or s = "" then return string(la_value)			
				if isnull(la_value) then
					i = ldwc.find("isnull(" +f+ ")",  1 , ldwc.rowcount() )
				else
					CHOOSE CASE Left ( t ,  5  )
							CASE "char(",'char'				//  CHARACTER DATATYPE
								t='="'+string(la_value)+'"'
							CASE "date"					//  DATE DATATYPE
								t='=date("'+string(la_value)+'")'
							CASE "datet"				//  DATETIME DATATYPE
								t='=datetime("'+string(la_value)+'")'
							CASE "decim"				//  DECIMAL DATATYPE
								n_string_operations n_str
								t='='+n_str.of_decimaltostring(la_value)+''
							CASE "numbe", "long", "ulong", "real"				//  NUMBER DATATYPE	
								t='='+string(la_value)+''
							CASE "time", "times"		//  TIME DATATYPE
								t='=time("'+string(la_value)+'")'
							CASE ELSE 					//  should not happend
								return string(la_value)
					END CHOOSE
					i = ldwc.find(f + t ,  1 , ldwc.rowcount() )
				end if
				if i >  0  then
					CHOOSE CASE Lower ( Left ( ldwc.Describe ( s + ".ColType" ) ,  5  ) )
						CASE "char(", "char" // string
							la_value = ldwc.getitemstring(i, s)
						CASE "date"					//  DATE DATATYPE
							la_value = ldwc.GetItemDate ( i, s) 
						CASE "datet"				//  DATETIME DATATYPE
							la_value = ldwc.GetItemDateTime ( i, s)
						CASE "decim"				//  DECIMAL DATATYPE
							la_value = ldwc.GetItemDecimal ( i, s)
						CASE "numbe", "long", "ulong", "real"				//  NUMBER DATATYPE	
							la_value = ldwc.GetItemNumber ( i, s)	
						CASE "time", "times"		//  TIME DATATYPE
							la_value = ldwc.GetItemTime ( i, s)						
					end choose
				end if
				return string(la_value)
		end choose
end choose


return ''


end function
...
Рейтинг: 0 / 0
06.07.2006, 16:42
    #33836307
zuzu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
2 Dmitry
Спасибо
...
Рейтинг: 0 / 0
06.07.2006, 17:21
    #33836450
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
Dmitry. zuzudw_1.Describe( "evaluate('lookupdisplay(field_test_1)',1)")

сталкивались с этой проблемой. причем раньше это работало. теперь можно указывать только имя колонки но никак не контрола.

обошли написанием своей ф-ции
Это никогда не работало при нескольких псевдонимах одной и той же колонки в detail band
...
Рейтинг: 0 / 0
10.07.2006, 17:18
    #33843170
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
Согласен Филипп
Глюки вылезут (псевдоним это не отдельная колонка)
Сохранять то как?
...
Рейтинг: 0 / 0
10.07.2006, 20:19
    #33843579
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
spas2001Сохранять то как?
Сохранять что?
...
Рейтинг: 0 / 0
11.07.2006, 01:17
    #33843753
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
text DDDW
spas2001Сохранять то как?
Переименовать контролы: тот, у кого тип DDDW, должен совпадать по имени со столбцом в буфере DW, чтобы LookupDisplay не выдавала ошибку.
Либо как привели уже - руками GetChild + Find
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / text DDDW / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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