powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Глюк - повторяются строчки в отчете по одной таблице
14 сообщений из 14, страница 1 из 1
Глюк - повторяются строчки в отчете по одной таблице
    #33098182
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выводится report format ... по алиасу, который создан через SPT-запрос к серверу по ODBC. Запрос возвращает 136 (ну или 82, 30 ...) записей с 11-ю колонками. Все они выводятся в отчете без каких-либо группировок, только сумма в конце отчета в summary band. В отчете задействованы заголовок (одна строка), detail (11 полей), page footer (с вызовом PageNo), summary - с суммой по 1 полю. Ориентация страницы - landscape. На страницу влазит 42 записи.
Проблема такая. Пока все записи помещаются на 1 страницу - все путем. Как только более 1 страницы - записи начинают при выводе повторяться. Если выводить на экран (report format ... noconsole to printer prompt preview) - на второй и далее страницах все время повторяется первая строчка первой страницы. Если выводить на принтер (...noconsole to printer) - повторяются по несколько записей случайными блоками.
Алиас нигде больше в программе не задействован.
Пробовал убирать title, summary, page footer - эффект тот же.
Косить на длинные возвращаемые сервером данные в колонках ?
Так ни одной колонки больше 254 символов нет.
Может, кто сталкивался ?
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33098327
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема неоднократно обсуждалась. Причина в потере текущей рабочей области. Надо:

1) Убрать фокус с Grid перед выполнением отчета
2) Явно перейти в нужную рабочую область перед выполнением отчета

SELECT MyCursor
REPORT FORM ...
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33099991
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, причина не в этом. Грида там нет вообще, явный селект там есть :(
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100012
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И похожих отчетов (с еще большим числом полей, с числом записей 5000) в программе - куча. И все они что на принтер, что на экран с листанием туда-сюда - как песня. Почему-то в одном этом - проблема :(
Где ж копать ?
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100067
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати. Если поставить susp перед report format ..., а потом эту же команду набрать в Command Window, то отчет нормально выводится.
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100460
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, и поставь перед командой REPORT команду DOEVENTS

Код: plaintext
1.
DOEVENTS
REPORT FORM ...
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100581
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Накопал, что тут может быть виновата форма, с которой запускается отчет. На ней стоит обработчик события deactivate, в нем идут команды сброса "горячих клавиш" типа on key label F4.
При запуске отчета последовательность событий такая:
SetFocus на другую форму
select mcurs
report format ... - деактивируется форма
срабатывает событие deactivate
? фокус опять переводится на форму ?
запускается собственно отчет
Вопрос. Действительно ли возникновение события deactivate для формы переводит фокус обратно на форму ?
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100583
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да. doevents ничего не дает
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100624
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizhSetFocus на другую форму
select mcurs
report format ... - деактивируется форма

На какой объект попадает фокус по "SetFocus на другую форму"?

Отчет сделан в Private DataSession или Default DataSession?

Установлено ли свойство в отчете DataEnvironment.InitialSelectedAlias?

Событие Deactivate ничего никуда не возвращает. Это просто событие, которое наступает, когда форма перестает быть активной.
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33100845
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВоладимирМ
1) Убрать фокус с Grid перед выполнением отчета

Простой SetFocus не помогает.
Я для этих целей использую маленькую форму-пустышку (класс Print, например, размер 21 на 106, Caption = "" и TitleBar = .F.) и в методе печати отчета в базовом классе всех форм есть такой код:
LOCAL loPrint
m.loPrint = CREATEOBJECT("Print")
m.loPrint.Show()
...
REPORT... FORM...

После выхода из метода, форма-пустышка закрывается (LOCAL...)
С уважением, Алексей.
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33106557
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> На какой объект попадает фокус по "SetFocus на другую форму"?
На поле ввода в другой форме, где нет грида, ControlSource для поля - переменная памяти.

> Отчет сделан в Private DataSession или Default DataSession?
Default. Я не знаю, как перенести код открытия SPT-курсора в Private Data Session. Где про это почитать ? Попробовал в лоб - вешать на событие OpenTables в DataEnv - отчет перестает видеть алиас.

> Установлено ли свойство в отчете DataEnvironment.InitialSelectedAlias?
Нет, так как в DataEnv нет никаких курсоров-таблиц.

Совет Aleksey-K не помог.

Единственное, чего я добился (что переводом фокуса в безопасное место :-), что созданием лишнего временного объекта), так это того, что на принтер печатается правильно (опять же - больше 4 страниц не пробовал). А вывод на экран все такой же корявый.

Действительно, это как-то связано с гридом, который открыт в другой форме (неактивной, никак не связанной с отчетом). Пробовал открывать отчет без запуска всей программы - когда открыт только один алиас - все работает корректно.
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33110536
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ау ! Знатоки ! :(
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33111411
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе уже объяснили - теряется текущая рабочая область. Для проверки этого факта вставь в свой отчет объект печати в котором укажи функцию

ALIAS()

Именно так, без параметров. Эта функция должна вернуть алиас главной рабочей таблицы по которой и выполняется твой отчет. Если там оказалось не то, что тебе надо, то и ищи, где в коде происходит переключение на другую рабочую область.

Как именно получен курсор: через SPT, Remote View или CREATE CURSOR не имеет никакого значения.

Если отчет выполняется в Default DataSession, то можно в свойствах DataEnvironment самого отчета явно указать алиас курсора. Это свойство

DataEnvironement.InitialSelectedAlias
...
Рейтинг: 0 / 0
Глюк - повторяются строчки в отчете по одной таблице
    #33114634
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошел в отладчике более тщательно. Все дело в том, что после report format ... исполнение программы идет дальше. Вспомнил про совет ВладимираМ про doevents, но поставил его сразу ПОСЛЕ report format - помогло !!!
Всем спасибо !
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Глюк - повторяются строчки в отчете по одной таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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