Help!!!

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Help!!!

Сообщение 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! Где собака порылась?
siteadmin
Site Admin
Сообщения: 38
Зарегистрирован: 26 апр 2005, 17:33

Сообщение siteadmin »

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

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

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

End;
ну и естественно дополнительные проверки делать при установке фильтра - если не GetFirst то ничего не делать вообще (можно мессагу выдать).
И потом правилом хорошего тона все-таки является запоминание текущей позиции (PushPos) для ее дальнейшего восстановления (PopPos)
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

А вот не помогло...
Кстати, все проверочки при установке фильтра сделаны, запоминание и восстанвление текущей позиции - тоже. Не держите за лоха последнего :-D Просто не хотелось загромождать код.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

а баундсы хоть накладываются корректно ?
и происходит ли отображение данных согласно этим баундсам?
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

Корректно! Отображение происходит правильно.
Да Бог бы с ним, ручками курсор подвинут...
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

так. тогда я видимо некорректно понял задачу.
насколько я теперь понял - нужно принудительно уйти с визуального элемента, где расположена кнопка и перейти в визуальный элемент "таблица" где отображены записи?
если да - тогда попробуйте связку SetFormat ()|SelectFormat() и SelectField() - переключиться на формат и в нем встать на поле.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Sheinina
Местный житель
Сообщения: 366
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение Sheinina »

СПАСИБО!!!!!
Ответить