powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Аргументы в DW
10 сообщений из 10, страница 1 из 1
Аргументы в DW
    #37164107
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно получить список аргументов в DW?
Что-нибудь более культурное, чем
Код: plaintext
dw_1.Object.DataWindow.Table.Select.Attribute
а затем поиск всех
Код: plaintext
  ARG(NAME = "
...
Рейтинг: 0 / 0
Аргументы в DW
    #37164287
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Describe("DataWindow.table.arguments")
...
Рейтинг: 0 / 0
Аргументы в DW
    #37165297
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
umalov,
Странно, что в DataWindowSyntax этого нет.
Но здесь тоже нужно парсить.
...
Рейтинг: 0 / 0
Аргументы в DW
    #37165569
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в Help "Table.property DataWindow object property"
Property for Table Value
Arguments (Read only) A string containing retrieval argument names and types for the DataWindow.
...
Рейтинг: 0 / 0
Аргументы в DW
    #37170300
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот интересно - возожно ли узнать не только список аргуметов датавиндова, но и их значения (т.е. по которым был сделан последний Retrieve)?
...
Рейтинг: 0 / 0
Аргументы в DW
    #37171200
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrsegoА вот интересно - возожно ли узнать не только список аргуметов датавиндова, но и их значения (т.е. по которым был сделан последний Retrieve)?
Для не массивов как-то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
		if ls_name <> "" then
			iuo.DW.GetChild (iuo.DW.GetColumnName (), ldwc)
			ldwc.InsertRow( 0 )
			ldwc.Modify("create compute(band=Detail color='0' alignment='2' border='2' name=tmp_glkfxjgkjsffg " + &
			  " x='0' y='0' height='0' width='10' expression='" + ls_name + "' visible='0')")
			ls_value = ldwc.Describe("evaluate('tmp_glkfxjgkjsffg',1)")
			ldwc.Modify("DESTROY tmp_glkfxjgkjsffg")
		end if
...
Рейтинг: 0 / 0
Аргументы в DW
    #37171485
umalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот пример для частного случая.
...
Рейтинг: 0 / 0
Аргументы в DW
    #37172911
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк и umalov, большое спасибо, это именно то, что надо!
...
Рейтинг: 0 / 0
Аргументы в DW
    #37174725
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ursego,
Код: 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.
// Get current ARGUMENTS, VALUES and TYPES --------------------------------------------------------------------
string		is_arg_name[], is_arg_type[], is_arg_value[]

string	ls_arg_full_text, ls_TAB = char( 9 ), ls_new_line = char( 10 ), ls_arguments = 'ARGUMENTS:'
long	ll_pos_tab, ll_pos_new_line, li_i

ls_arg_full_text = idw_in_program.Describe("DataWindow.table.arguments")  
IF ls_arg_full_text = '?' OR ls_arg_full_text = '!' THEN ls_arg_full_text = ''

DO WHILE ls_arg_full_text <> ''
	li_i++
	ll_pos_tab = Pos(ls_arg_full_text, ls_TAB)
	
	is_arg_name[li_i] = Left(ls_arg_full_text, ll_pos_tab -  1 )
	is_arg_value[li_i] = idw_in_program.Describe("Evaluate('" + is_arg_name[li_i] + "', 0)")
	
	ll_pos_new_line = Pos(ls_arg_full_text, ls_new_line, ll_pos_tab +  1 )
	IF ll_pos_new_line =  0  THEN ll_pos_new_line = Len(ls_arg_full_text) +  1 
	is_arg_type[li_i]  = Mid(ls_arg_full_text, ll_pos_tab +  1 , ll_pos_new_line - ll_pos_tab -  1 )
	
	ls_arg_full_text = Mid(ls_arg_full_text, ll_pos_new_line +  1 )
	
	ls_arguments = 	ls_arguments + ls_new_line + char( 13 ) + &
							is_arg_name[li_i] + Fill(' ', 25 - len(is_arg_name[li_i])) + char(9) + &
							is_arg_type[li_i] + Fill(' ', 15 - len(is_arg_type[li_i])) + + char(9) + &
							is_arg_value[li_i] 
							
LOOP
IF ls_arguments = 'ARGUMENTS:' THEN ls_arguments = 'ARGUMENTS:' + ls_new_line + char(13) + 'NOT ARGUMENTS'
tab_1.page_3.st_arguments.Text = ls_arguments
//-------------------------------------------------------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Аргументы в DW
    #37174756
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, это окошко "шпион", которое когда-то выкладывал Филипп.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Аргументы в DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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