Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Фильтрация DropDown Datawindow / 5 сообщений из 5, страница 1 из 1
23.03.2007, 11:20
    #34410879
JenyaD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация DropDown Datawindow
Есть Dw имеющее 2 столбца, содержащие dddw.
Нужно в зависимости от выбранного элемента в первом dddw фильтровать
элементы во 2-м dddw. Однако наложение фильтра приводит к тому что в других
строках начинает отображаться вместо display column - data column. Обычно dddw
сверяет значение data column и текущее значение и отображает display column, однако
при наложении фильтра не получается найти соответствие и отображаются цифры.
Что может помочь в данном случае ?? Может есть какое свойство dddw, чтоб искало и в буфере
фильтра ?
...
Рейтинг: 0 / 0
23.03.2007, 11:26
    #34410918
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация DropDown Datawindow
...
Рейтинг: 0 / 0
25.03.2007, 13:19
    #34413942
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация DropDown Datawindow
Простите,что я вмешиваюсь,уж очень давно промышленно не программирую.
Но по старой памяти,пару слов,можно?О-кей,тогда начнём.
Ваш фильтр корёжит бафер дроп-даун data window-выбрасывает из него строки.Тогда в большом dw получаются в этом поле,ну которое с дроп-даун,значения,у которых нет расшифровки-фильтр выбросил,вот и прёт инфа живьём-без display value.
Впрочем,в своём посте вы это сами и написали.
Что б я посоветовал попробывать-устройте где-то рядом share dw,но не в строчном порядке,а в свободном-там другие строки просто окажутся за кадром и эта раздевалка,которую устраивает фильтр будет не видна,вертикальный скролл-бар не выставляйте-нефига прокручивать.Конечно,ушлый юзер знает Page Down,Page Up-его проблемма.Кроме того,на rowfocuschanged этого шера,можно прописать отмену фильтра:
ddddw.setfilter('1=1' )
ddddw.filter() а потом выставить фильтр актуальный для активной строки,тогда,и этот хохмолог ничего не заметит.
Но главный смысл в том,что игры с бафером в строчном dw юзеру просто не показывать.
...
Рейтинг: 0 / 0
27.03.2007, 20:50
    #34419744
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация DropDown Datawindow
Смотрите почту.
...
Рейтинг: 0 / 0
03.04.2007, 11:58
    #34433553
JenyaD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация DropDown Datawindow
Вообщем получилось примерно так :
В Instance Variables
Код: plaintext
1.
2.
DataWindowChild dwc_1
int ii_dddw_detail_height =  0 

В событии pbm_dwndropdown

Код: 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.
nt li_parent_id,li_curr_id,li_currentrow
long ll_type,ll_typeparent

if  IsNULL(dwc_1) then  return
if  not IsValid(dwc_1) then  return

li_currentrow=this.GetRow()
if li_currentrow<= 0  then return  1 

if this.GetColumnName ( )="obj_parent" then

   this.Update()
   commit;
	
   dwc_1.SetTransObject(sqlca)
   dwc_1.Retrieve()
	 
	ll_type=this.GetItemNumber(li_currentrow,'type_id')
	SetNULL(ll_typeparent)
	
	//Получаем родительский тип
   select type_parent
   into :ll_typeparent
   from xxx.xxx
   where type_id=:ll_type;

  if sqlca.sqlcode<> 0  then 
       messagebox("Помилка код <"+string(sqlca.sqlcode)+ "> ","Помилка : текст повідомлення сервера "+ sqlca.SQLErrText,StopSign!)
  end if
	 
 if not IsNULL(ll_typeparent) then
	string ls_old_filter
	
	if IsValid (dwc_1)  then
	   if ii_dddw_detail_height =  0   then 
               //Получаем высоту списка
               ii_dddw_detail_height = Integer(dwc_1.Describe( "Datawindow.Detail.Height")) 
         end if 
 
        dwc_1.SetRedraw(FALSE) 
        // Сбрасываем высоту всех строк на высоту по умолчанию
        dwc_1.SetDetailHeight( 1 ,dwc_1.RowCount(), ii_dddw_detail_height ) 
 
       
         dwc_1.SetFilter("type_id <> " + string( ll_typeparent )+" and  type_id <> 0"  )
    
	
	dwc_1.Filter()
	// Устанавливаем высоту строк для "ненужных" элементов  0 
	dwc_1.SetDetailHeight(  1 , dwc_1.RowCount(),  0  ) 
	// Возвращаем старый фильтр
	dwc_1.SetFilter("") 
	dwc_1.Filter() 
	//Отключаем перерисовку
	dwc_1.SetRedraw(TRUE)
	dwc_1.SelectRow( 0 , FALSE)
     end if
 end if
end if 

...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Фильтрация DropDown Datawindow / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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