powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Странная работа отчета
18 сообщений из 18, страница 1 из 1
Странная работа отчета
    #39789536
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги!

У меня ОДНО-пользовательское приложение на VFP 9.
В нем, в частности, я формирую отчет с помощью процедуры.
Используется имя r для разных вещей - и таблиц и запросов и отчетов - расширения файлов разные.


PROCEDURE r
DELETE FILE r.dbf
DO r.qpr && Создается таблица r.dbf
SELECT r
*BROWSE
REPORT FORM r TO PRINTER NOCONSOLE
SELECT r
USE
RETURN

Проблема вот в чем - с BROWSE все работает, без BROWSE появляется сообщение, что ВАРИЭЙБЛ ... ИЗ НОТ ФАУНД и печатается одна строчка из отчета.

Я знаю, что подобный вопрос рассматривался в

https://www.sql.ru/forum/584931/ne-vyhodit-na-pechat-otchet?hl=brow ?????

К сожалению, я никак не пойму, в чем же состоит решение проблемы?
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789538
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том топике предложили вызвать SYS(1104), попробуй так
Код: c#
1.
2.
3.
SELECT r
SYS(1104)
REPORT FORM r TO PRINTER NOCONSOLE 
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789545
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Попробовал.
Та же картина
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789548
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UAPбез BROWSE появляется сообщение, что ВАРИЭЙБЛ ... ИЗ НОТ ФАУНД и печатается одна строчка из отчета.
На какую переменную ругается не выяснил?
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789550
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На одно из полей таблицы, которая является главной и единственной на входе отчета
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789559
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле с алиасом написано?
Код: sql
1.
r.MyField



добавь проверку
Код: sql
1.
2.
3.
SELECT r
wait iif(type('r.MyField') = 'U', 'Нет', 'Есть') window nowait noclear
REPORT FORM r TO PRINTER NOCONSOLE 
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789560
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Без алиаса.
Я везде поубирал
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789561
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил - то же самое
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789566
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UAPDima T,
Без алиаса.
Я везде поубирал
Подозреваю что алиас меняется вызовом какой-то функции внутри отчета. Правда это не объясняет почему с BROWSE работает.
По ошибке зайди в отладчик и посмотри какой текущий алиас в этот момент ALIAS().

Или попробуй одноименную переменную создать
Код: sql
1.
2.
3.
m.MyField = 'BUG'
SELECT r
REPORT FORM r TO PRINTER NOCONSOLE 
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789570
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYS(1104) - это не о том. Здесь требуется не очистить, а наоборот, наполнить кеш

Файл DBF был создан на диске. Но FoxPro о его содержимом ничего "не знает", поскольку эти данные не были загружены в кеш FoxPro. Ему не с чем работать. Для него имя-то существует, но пока "пустое". Без наполнения данными

По умолчанию, в автоматическом режиме, наполнение кеша произойдет через 5 секунд. Второй параметр в SET REFRESH

Команда BROWSE принудительно считывает данные в кеш немедленно. Не ожидая этих 5 секунд.

Собственно, Вам и надо найти какой-то способ "пнуть" FoxPro на предмет немедленного чтения данных из таблицы в буфер FoxPro. Первое, что напрашивается, это просто переоткрыть таблицу

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DO r.qpr && Создается таблица r.dbf 

* Переоткрываем только что созданную таблицу
select r
use
use r.dbf

* Вызываем отчет
REPORT FORM r TO PRINTER NOCONSOLE 



Еще как вариант, можно попробовать GO TOP. Тоже, теоретически, должен немедленно "дернуть" буфер таблицы
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789576
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Пишет, что теперь не определено следующее поле таблицы
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789598
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все перепроверил - та же картина.

Проверил, что текущий алиас после запроса r

Переписал заново отчет и программу

PROCEDURE r
DELETE FILE r.dbf
DO r.qpr
SELECT r
REPORT FORM r TO PRINTER NOCONSOLE
SELECT r
USE
RETURN

Теперь вообще белый лист
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789658
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UAPТеперь вообще белый лист
А записи в таблице есть?

То что ВладимирМ написал 21839565 пробовал?

У меня идеи кончились. Я ни разу с подобным не сталкивался.
...
Рейтинг: 0 / 0
Странная работа отчета
    #39789825
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Да, я пробовал.
Записи есть, ибо я их вижу с помощью BROWS
...
Рейтинг: 0 / 0
Странная работа отчета
    #39794027
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, конечно дикость, но вот, что решает проблему - три строки в нужном месте:

PROCEDURE r

DELETE FILE r.dbf
DO r.qpr
SELECT r

* Вот эти три строки
DEFINE WINDOW w_brow FROM 1,1 TO 2,2
BROWSE WINDOW w_brow TIMEOUT 1
RELEASE WINDOW w_brow

REPORT FORM r.frx TO PRINTER NOCONSOLE

SELECT r
USE

RETURN

На очень стареньком и медленном компьютере пользователь не успевает увидеть маленький "блым" и отчет получается правильным
...
Рейтинг: 0 / 0
Странная работа отчета
    #39794086
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Почему создаешь временную таблицу? Используй курсор. Если надо модифицировать - добавь readwrite.
2. Сделай имя курсора более чем 1 символ, скажем _r1 - система понимает Select R как переключение в R-область.
...
Рейтинг: 0 / 0
Странная работа отчета
    #39794110
UAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

Я, в реальной программе, использую длинные названия.
Это я тут использую короткие имена, чтобы легче было понять программу.
С курсором я попробую
...
Рейтинг: 0 / 0
Странная работа отчета
    #39794122
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UAPЭто, конечно дикость, но вот, что решает проблему - три строки в нужном месте:


На очень стареньком и медленном компьютере пользователь не успевает увидеть маленький "блым" и отчет получается правильным

Похоже на известный косяк FoxPro.
В момент вызова отчета фокус находится в объекте Grid.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Странная работа отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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