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

Browse в 7.0 (инициализация)

Добавлено: 09 Март 2010, 21:50
gar130463
Доброго времени суток, подскажите пожалуйста как при инициализации броуза первоначально строку - курсор переместить на последнюю запись (вместо первой по умолчанию).

Re: Browse в 7.0 (инициализация)

Добавлено: 09 Март 2010, 23:42
Дед Пахом
программно нажать Ctrl-End

Re: Browse в 7.0 (инициализация)

Добавлено: 10 Март 2010, 20:42
gar130463
Дед Пахом писал(а):программно нажать Ctrl-End
У меня много параллельных броузов и такой подход не совсем катит, я решил пробл по другому

1) способ
========

Свойства броуза - эмбеды - Открыть окно - вставляем нижеслед код в самый конец

set (INP:by_RegYear_RegNo); выбор ключа
previous(inpdoc); встать на конец (засосать в буфер последнююзапись)
!
brw1.ResetFromFile; ! этот метод вроде не обязательно вызывать (читай про методы в русском хелпе с FTP)
brw1.ResetFromBuffer; ! этот надо обязательно
brw1.ResetFromView; ! с этим еще не разобрался

но в целом все пашет на 5++++

2) способ
========

StartAtCurrent BYTE

Свойство StartAtCurrent указывает объекту способ исходного позиционирования - на первый элемент данных в порядке сортировки или на элемент данных, определенного содержимым буфера VIEW. Нулевое значение (0 или False) позиционирует на первый элемент данных; единичное значение (1 или True) позиционирует на элемент данных, определенный содержимым буфера VIEW.

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

Пример:

BRW1.StartAtCurrent = True
ST:StateCode = 'K' !установить значение компонента ключа
BrowseSt.Init(?StList,StateQ.ViewPosition,StView,StateQ,Relate:State,SELF)


=======================
ЗЫ - 2 способ не пашет с составным праймери ключем, с простым(одинарным) пашет

ВОТ ТАКИЕ ПИРОГИ
ЮЗАЙТЕ, Я НЕ ЖАДЕН
:)))

Re: Browse в 7.0 (инициализация)

Добавлено: 10 Март 2010, 20:47
Igor
А попробуй post(EVENT:ScrollBottom,?LIST)

Re: Browse в 7.0 (инициализация)

Добавлено: 11 Март 2010, 6:16
nik190994
Я пользуюсь такой последовательностью для обновления списка и установки курсора в начало...
BRW1.Reset() !View в начало
BRW1.ResetQueue(RESET:Done) !Заполнить очередь
BRW1.UpdateWindow() !Отобразить
Select(?List)

Или для установки на нужную запись.
dog:cod1 = cod1 !Задать ключевое поле
BRW1.TakeAcceptedLocator() !вызов метода TakeAccepted локатора
BRW1.Reset(1) !если требуется поиск, переустановить VIEW
BRW1.ResetQueue(Reset:Done) !перенабрать очередь просмотра
BRW1.UpdateWindow()

Re: Browse в 7.0 (инициализация)

Добавлено: 12 Март 2010, 15:01
kreator
Вариант Igor'я - прост и красив. Кстати, не всегда по умолчанию курсор устанавливается на первую строку. У меня много броувсов, где по умолчанию курсор в последней строке. Может есть какая-то система в этом. Никто не знает?

Re: Browse в 7.0 (инициализация)

Добавлено: 12 Март 2010, 18:47
gar130463
Igor писал(а):А попробуй post(EVENT:ScrollBottom,?LIST)
Хм, думал про это, но есть вопрос, откуда посылать это событие, у меня несколько броузов и каждый в своей среде. Выходит надо посылать изнутри броуза самому же этому броузу (ведь в твоем событии нет адресации конкретному процессу(потоку, среде)). Ну например из того же места в броузе (Open Window) куда я свой код вставляю (см мое верхнее сообщение) . Несколько кудряво ведь, не находишь? Вставка вышеупомянутого кода мне как то понятнее. Хотя твой вариант видимо вполне реален и рабоч, надо пробовать. Вообще пишите плиз все, пишите, ценный у нас тут обмен происходит и совершенно бесплатно, ну где еще в наше время можно надыбать инфу. Всем спасибо!