powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с работой в окне Brow
2 сообщений из 2, страница 1 из 1
Помогите с работой в окне Brow
    #34570532
petrovich78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал прогу небольшую, где по условию фильтра одной базы в окне через brow выводятся данные из второй базы. Подскажите как можно сделать так чтобы при нажатии на клавишу (F12 или любую другую) копировались данные из окна brow поля tin в поле idn именно тот код где будет стоять курсор выбора в окне????

sele 2
scatter fields idn, fio, name, otch MEMVAR

defi wind f1 from 1,0 to 9,79
acti wind f1
@ 0,0 clea

@ 0,0 say [ База данных ]
@ row()+2,0 say [ Код] get m.idn
@ row()+1,0 say [ Фамилия] get m.fio
@ row()+1,0 say [ Имя] get m.name
@ row()+1,0 say [Отчество] get m.otch
@ row()+1,13 SAY '<Esc> - отказ'

sele 1
set filt to at(allt(left(lga_0507.fio,(at(" ",lga_0507.fio)))),exp_2)>0
count to fr_cnt
if fr_cnt>0
defi wind w from 11,0 to 21,79 colo w+/r
brow noclear wind w fiel tin:h=[Код]:r,exp_2:h=[Наименование]:r,d_rog:h=[Дата рождения]:r,exp_4:h=[Адрес]:r titl [ ] colo w+/r,/bg
set filt to
rele wind w
endif

sele 2

READ

IF LASTKEY() != 27
GATHER MEMVAR
ENDIF
...
Рейтинг: 0 / 0
Помогите с работой в окне Brow
    #34571030
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если хочешь, чтобы по нажатию клавиши что-то делалось в BROWSE - используй команду ON KEY LABEL, т.е. что-то вроде:
Код: plaintext
1.
2.
3.
4.
ON KEY LABEL F12 do MyProc
BROWSE ...
 && и затем, для отмены предыдущего действия ON KEY LABEL, всегда не забывай ставить:
ON KEY LABEL F12    
Где MyProc - процедура, выполняющая нужнве действия, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
PROCEDURE MyProc
SELECT  1 
SCATTER tin
SELECT  2 
GATHER idn
RETURN
Естественно, что во второй таблице должна при этом устанавливаться соответствующая запись, что проще всего сделать путем связывания таблиц через SET RELATION TO... по индексам, включающим одинаковые поля. Кстати, применение SELECT с указанием номера области (вида SELECT 1) вообще нежелательно, потому что может в дальнейшем приводить к путанице, лучше использовать вместо этого имена самих таблиц, всегда открывая их в свободной области, например так:
SELECT 0
USE tabl1
чтобы потом обращаться к ней:
SELECT tabl1
И еще - если в момент выполнения в BROWSE дополнительной процедуры в принципе возможно нажатие какой-то клавиши, т.е., если сама процедура продолжительна или ожидает действия пользователя, лучше делать в самом начале ее отмену всех действий ON KEY LABEL, а в конце возврат, например командами PUSH KEY в начале и POP KEY в конце перед RETURN, чтобы не вылетала ошибка при случайном повторном нажатии.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с работой в окне Brow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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