Ограничение Queue:Browse по количеству строк в списке

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Ограничение Queue:Browse по количеству строк в списке

Сообщение mpn2 »

Добрый день! Хочу использовать структуру Очереди в Browse для отчета.
Отчет пишу ручками (для дальнейшей передачи данных по назначению )
!-----------------------------------------------------------------------------------------
LOOP i# = 1 TO RECORDS(Queue:Browse)
GET(Queue:Browse,i#)
!-----------------------------------------------------------------------------------------
Но в этой очереди количество записей ограничено количеством строк в списке Browse.
Как обмануть это ограничение ? Хотелось бы поиметь полную очередь. Зарание спасибо !!!
Ал
✯ Ветеран ✯
Сообщения: 1040
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение Ал »

...подумать?
определитесь, что и где нужно, ну и потом
...пишу ручками...
:wink::
1.
Но в этой очереди количество записей ограничено количеством строк в списке Browse
- видимо для вывода на только на экран?
2.
...Хотелось бы поиметь полную очередь
- видимо для вывода только в отчёт?
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Ограничение Queue:Browse по количеству строк в списке

Сообщение Admin »

Логично что для того что бы в очереди появились все записи - очередь нужно заполнить полностью!?
Соответственно выводы. Убрать перед отчетом фильтры и ограничения бровза. Перечитать очередь и вывести в отчет.
Но IMHO это костыль ненужный.
Помнится была процедура типа Process. Аналог бровза (с фильтрами ключами и т.д.) без вывода очереди на экран.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ал
✯ Ветеран ✯
Сообщения: 1040
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение Ал »

Ещё до кучи - некоторые пользователи (бухгалтерия, плановый,...) любят вместо отчета видеть все (бровз) в табл.процессорах - типа Excel..., а там "...мы сами все...", так что если потребуется - всё есть на форуме :)
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

Ограничение Queue:Browse по количеству строк в списке

Сообщение Артур »

mpn2 писал(а): Но в этой очереди количество записей ограничено количеством строк в списке Browse
Вы видимо используете генератор приложений. Для того чтобы очередь содержала все записи нужно в шаблоне в опции Loading method указывать File.
Любить и обещать ничего не стоит
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Ограничение Queue:Browse по количеству строк в списке

Сообщение mpn2 »

Я конечно понимаю что многим хочется поиздеваться. попробую объяснить поподробнее.
У меня есть список договоров 6 типов и есть 10 объектов, итого 60 основных вариантов.
+ фильтр по датам и еще хрен знает по чем, фильтр очень сложный и загоняется в переменную - GLO:Filt. Результатом фильтра служит строка: BRW1::View:Browse{Prop:Filter} = GLO:Filt

Дальше ряд процедур с учетом ограничения по фильтру выбирает некоторое число записей. Количество записей для выборки ограничено переменной BRW1::ItemsToFill (это и есть количество строк в списке на экране).
В результате заполняется очередь Queue:Browse, которая потом зачитывается и показывается на экран. Если в списке на экране 17 строк, то в очередь набирается 17 записей. А на самом деле договоров отвечающим условию фильтра например 35.

Я хотел-бы создать отчет из уже готовой очереди Queue:Browse, т.к. это как раз те отфильтрованные данные которые мне нужны.
Вопрос в том: где идет проверка переменной BRW1::ItemsToFill и как сделать так чтобы эта проверка не выполнялась?
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Ограничение Queue:Browse по количеству строк в списке

Сообщение mpn2 »

Артуру...
Я использую шаблоны Синявского, Clarion 6.3
kreator
✯ Ветеран ✯
Сообщения: 5169
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение kreator »

Возможно, это ограничение Ваших шаблонов. А почему нельзя передать репорту GLO:Filt? У репорта в легаси нет ограничения.
Ещё вариант. Перейти на ABC, тут нет ограничения на отображение очереди (обычно программеры против, наваяли кучу кода, всё переписывать, но возможностей на порядок больше).
Ещё вариант. Обратиться к Синявскому. :idied:
We are hard at work… for you. :)
Ал
✯ Ветеран ✯
Сообщения: 1040
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение Ал »

mpn2 писал(а):Я конечно понимаю что многим хочется поиздеваться. попробую объяснить поподробнее.
:(
Как спросили - так и отвечают, телепатов тут нет, я думаю... Надо было сразу писать подробнее. Да и вообще - проблема по работе?, дали направления для осмысливания, думайте/ищите на форуме - за это зряплата идет :)
PS Посмотрите исходный код и поищите там BRW1::ItemsToFill ...
PSS "Издевательство" - не наш метод, просто побуждаем посмотреть/подумать/посмотреть... Без обид?
up - попробуйте глобальный фильтр применить в отчете...
kreator
✯ Ветеран ✯
Сообщения: 5169
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение kreator »

Ал писал(а):PS Посмотрите исходный код и поищите там BRW1::ItemsToFill ...
Да что толку смотреть-то? Вот оно ограничение:

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

BRW1::ItemsToFill = ?List{Prop:Items}
Дальше что? Кто-нибудь может заставить легаси шаблоны грузить в очередь данные а-ля "Loading Method - File" (ABC)? Придётся перелопатить кучу кода и сделать новые шаблоны. Верю, что костыли можно приладить, но только до очередного изменения данных.
We are hard at work… for you. :)
Ал
✯ Ветеран ✯
Сообщения: 1040
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия
Поблагодарили: 1 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение Ал »

Написали бы про легаси сразу - я б не вломился в топик...
А так в ABC должно сработать как-то так:

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

 !   GLO:BrowseFilter = 'TestIdOK(HPR:ProjectId)'
   IF GLO:BrowseFilter
      ThisReport.SetFilter(GLO:BrowseFilter)
      ThisReport.ApplyFilter()
!      GLO:BrowseFilter = ''  !Clear the var
  END
Т.е. - хотите видеть в бровз - построили - увидели постранично, надо в репорт все - построили!! заново - увидели...
Или менять подход как выше намекали - хотя бы с "костылем" - если нужен юзеру бровз для предварительного просмотра - выдали, а если отчет - выдали или в копию очереди бровза но уже полный список или в csv или ... http://forum.clarionlife.net/phpbb/view ... rect+excel
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Ограничение Queue:Browse по количеству строк в списке

Сообщение Yufil »

В ABC есть методы Brw1.next() и Brw1.previous() для прохода по Browse с заполнением всех нужных полей, независимо от того, что есть на экране.
Может быть, поискать аналоги и в легаси?
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Ограничение Queue:Browse по количеству строк в списке

Сообщение mpn2 »

Ребята Всем большое спасибо за участие. Почитал ваши предложения и еще пообщался с людьми которые пишут по старинке (на шаблонах Синявского). Моя ошибка была в том, что я пытался получить данные из очереди, а надо было из структуры VIEW.
!--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SET(BRW1::View:Browse)
LOOP
NEXT(BRW1::View:Browse)
IF ERRORCODE() THEN BREAK.
!--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Все прекрасно работает и даже на фильтр повторно указывать не надо он уже висит в памяти.
Последний раз редактировалось mpn2 25 Февраль 2015, 14:33, всего редактировалось 1 раз.
kreator
✯ Ветеран ✯
Сообщения: 5169
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Ограничение Queue:Browse по количеству строк в списке

Сообщение kreator »

Ну, явный костыль, второй раз делаешь цикл по вьюхе. А репорт потом третий раз то же самое делает? Хорошо, что записей всего 35. Было бы 3500, пользователи сказали бы большущее спасибо :D .
We are hard at work… for you. :)
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Ограничение Queue:Browse по количеству строк в списке

Сообщение mpn2 »

kreator зря вы так.
На самом деле у меня есть файл 16 000 записей (расход строительных матемриалов по объекту), а так как структура View висит в памяти то цикл отрабатывает мгновенно (при нажатии кнопки). А репорт я вообще не делаю (по моему мнению он в Клашке убогий), я передаю данные сразу в Excel. Тормоза больше там.....процедура передачи данных в Ехcel формирует таблицу из 1000 записей примерно 12 секунд. Но пользователям очень нравиться смотреть как Ехcel формирует табличку т.к. раньше они формировали отчет вручную 2 дня.
Да .... большое Спасибо Артуру ..... это он натолкнул меня на мысль читать записи из View.
Ответить