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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
gar130463
Новичок
Сообщения: 16
Зарегистрирован: 24 Ноябрь 2008, 23:12

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

Сообщение gar130463 »

Доброго времени суток, подскажите пожалуйста как при инициализации броуза первоначально строку - курсор переместить на последнюю запись (вместо первой по умолчанию).
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3144
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 11 раз
Поблагодарили: 32 раза
Контактная информация:

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

Сообщение Дед Пахом »

программно нажать Ctrl-End
С уважением, ДП
gar130463
Новичок
Сообщения: 16
Зарегистрирован: 24 Ноябрь 2008, 23:12

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

Сообщение 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 способ не пашет с составным праймери ключем, с простым(одинарным) пашет

ВОТ ТАКИЕ ПИРОГИ
ЮЗАЙТЕ, Я НЕ ЖАДЕН
:)))
Igor
Бывалый
Сообщения: 75
Зарегистрирован: 08 Июль 2005, 11:03
Откуда: Королев

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

Сообщение Igor »

А попробуй post(EVENT:ScrollBottom,?LIST)
nik190994
Активист
Сообщения: 196
Зарегистрирован: 28 Сентябрь 2009, 16:19

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

Сообщение 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()
kreator
✯ Ветеран ✯
Сообщения: 5037
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 23 раза

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

Сообщение kreator »

Вариант Igor'я - прост и красив. Кстати, не всегда по умолчанию курсор устанавливается на первую строку. У меня много броувсов, где по умолчанию курсор в последней строке. Может есть какая-то система в этом. Никто не знает?
We are hard at work… for you. :)
gar130463
Новичок
Сообщения: 16
Зарегистрирован: 24 Ноябрь 2008, 23:12

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

Сообщение gar130463 »

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