powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / text DDDW
10 сообщений из 10, страница 1 из 1
text DDDW
    #33835666
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть одна поблема, может кто подскажет решение.

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

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

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

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

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

2 Dmitry
а можешь поделится этой функцией ?
...
Рейтинг: 0 / 0
text DDDW
    #33835993
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
text DDDW
    #33836307
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dmitry
Спасибо
...
Рейтинг: 0 / 0
text DDDW
    #33836450
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry. zuzudw_1.Describe( "evaluate('lookupdisplay(field_test_1)',1)")

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

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


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