Страница 1 из 1

Help!!!

Добавлено: 01 июн 2006, 14:53
Sheinina
Интерфейс состоит из двух частей: browse и screen, в screen'е задаются условия для фильтрации и две кнопочки "Установить фильтр" и "Снять фильтр". Нужно, чтобы после нажатия на каждую из них курсор оказывался в одной из строк browse. Пишу:

Код: Выделить всё

Interface Make_Table;
show at (,,,21);
view
var
 usl:string;
as select * from table
bounds UU = usl == table.pole1
order by pole1, pole2;

browse br;
show at (,,,15);
fields
...
end;
screen sc;
show at (,16,,);
fields
...
button
   cmSetF;
   cmRemF;
end;
HandleEvent:
...
cmSetF: {
   PushBounds(tbUU);
   if getfirst table = tsOK then {};
   selectpanel(tnTable);
   rescanpanel(tntable);
}
cmRemF: {
   if BoundsActive(tbUU) then {
      PopBounds(tbUU);
      selectpanel(tnTable);
      rescanpanel(tntable);
   }
}
...
end;
end.

      
И что - и ничего. Фокус ввода остается на нажатой кнопке... А мне надо - в текущую строку Browse! Где собака порылась?

Добавлено: 05 июн 2006, 11:46
siteadmin
для browse нужно задать корневую таблицу, связав таким образом визуальный элемент и логическую таблицу.

Код: Выделить всё

Browse brwMain
Show At ... ;
Table myTable;
Fields
 ....

End;
ну и естественно дополнительные проверки делать при установке фильтра - если не GetFirst то ничего не делать вообще (можно мессагу выдать).
И потом правилом хорошего тона все-таки является запоминание текущей позиции (PushPos) для ее дальнейшего восстановления (PopPos)

Добавлено: 05 июн 2006, 14:18
Sheinina
А вот не помогло...
Кстати, все проверочки при установке фильтра сделаны, запоминание и восстанвление текущей позиции - тоже. Не держите за лоха последнего :-D Просто не хотелось загромождать код.

Добавлено: 07 июн 2006, 14:44
Maverick
а баундсы хоть накладываются корректно ?
и происходит ли отображение данных согласно этим баундсам?

Добавлено: 07 июн 2006, 14:58
Sheinina
Корректно! Отображение происходит правильно.
Да Бог бы с ним, ручками курсор подвинут...

Добавлено: 07 июн 2006, 15:36
Maverick
так. тогда я видимо некорректно понял задачу.
насколько я теперь понял - нужно принудительно уйти с визуального элемента, где расположена кнопка и перейти в визуальный элемент "таблица" где отображены записи?
если да - тогда попробуйте связку SetFormat ()|SelectFormat() и SelectField() - переключиться на формат и в нем встать на поле.

Добавлено: 07 июн 2006, 15:59
Sheinina
СПАСИБО!!!!!