powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сортировка в dw
5 сообщений из 5, страница 1 из 1
Сортировка в dw
    #34525090
учусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы сделать сортировку:
при щелчке(двойном щелчке) в dw на названии колонки происходит сортировка данных в dw.
События clicked и doubleclicked - происходят для всего dw.
Как называется необходимое мне событие?
...
Рейтинг: 0 / 0
Сортировка в dw
    #34525163
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
clicked вам и необходимо
в нем есть параметр dwo (DatawindowObject)
в этом параметре ссылка на кликнутый обьект DW.
для списка свойств см. в хелпе Datawindow object properties
...
Рейтинг: 0 / 0
Сортировка в dw
    #34525199
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
string s_object, s_col_name
string ls_object
integer li_len

// Text name = Column name + "_t" (column: id_number; text: id_number_t)

IF Left(This.GetBandAtPointer(),  7 ) = "header~t" THEN
	ls_object = This.GetObjectAtPointer()
	li_len = len(ls_object)
	ls_object = Left(ls_object, li_len -  2 )
	IF Right(ls_object,  1 ) = "h" THEN
		//No border
		This.Modify(ls_object + ".border = '0'")
		RETURN
	END IF
END IF

IF Left(This.GetBandAtPointer(),  7 ) = "header~t" THEN
	s_object = This.GetObjectAtPointer()
	s_object = Left(s_object, Pos(s_object, "~t") -  1 )
	s_col_name = Left(s_object, Len(s_object) -  2 )
	//3d lowered border
	This.Modify(s_object + ".border = '5'")
	IF This.tag = s_col_name + "A" THEN
		This.SetSort(s_col_name + " D ")
		This.tag = s_col_name + "D"
	ELSE
		This.SetSort(s_col_name + " A ")
		This.tag = s_col_name + "A"
	END IF
	This.Sort()
	//3d raised border
	This.Modify(s_object + ".border = '6'")
END IF
...
Рейтинг: 0 / 0
Сортировка в dw
    #34525204
учусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
Сортировка в dw
    #34525464
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариатн, если много DW правленных руками с заголовками без имен или не соответствующими полям, то можно искать колонку по координате X

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// Проверяем на попадение в HEADER
if This.Describe(s_name + ".Band") <> "header" Then return

i_x=integer(this.describe(dwo.name+".x"))

// проверяем является ли объект заголовком колонки
i5=long(this.Object.DataWindow.Column.Count)
for i4= 1  to i5
	if integer(this.describe("#"+string(i4)+".x"))=i_x then
		is_ColumnClicked=this.describe("#"+string(i4)+".name") 
		exit
	end if 
next 
... сортируем ...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сортировка в dw
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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