Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / foxpro 2.0 редактирование report / 25 сообщений из 26, страница 1 из 2
02.02.2005, 10:32
    #32896332
MaximZaikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Добрый день. Проблема следующая. У нас на работе используется б.д. написанная на foxpro 2.0. Есть report он выводит кучу данных и может в зависимости от колличества данных распологаться как на одной странице, так и на нескольких. Проблема возникает, когда репорт вмещается на одной странице, при этом все проходит отлично, за исключением только того что строчка Главный бухгалтер переноситься на начало следующей страницы, а места на первой еще куча, и впринципе при самом жестком раскладе для этой строки там куча мекста. Как решить эту проблему ума не приложу, перепробывал все что мог, но ничего не помогло. Одна надежда на вас.
...
Рейтинг: 0 / 0
02.02.2005, 10:43
    #32896366
FlyNC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Попробуйте перенести подпись Главного бухгалтера в раздел Примечание отчета - тогда она будет печататься на одной странице с данными.
...
Рейтинг: 0 / 0
02.02.2005, 11:00
    #32896408
MaximZaikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Прошу прощения, но я просто не вкурсе куда конкретно его перенести.
Там значит слева есть следующие разделы PgHead, Detail, PgFoot, Sumary
куда его ставить ? Или я не о том думаю ?
...
Рейтинг: 0 / 0
02.02.2005, 11:34
    #32896526
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Логично поместить в summary.
Но у области summary не должно быть галки "печатать summary на отдельной странице".
...
Рейтинг: 0 / 0
02.02.2005, 11:38
    #32896546
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Можно еще создать группу по равенству recno() reccount() - в этом случае можно будет задать для нее условие "печатать новую группу на следующей странице, если до конца текущей осталось меньше скольких-то строчек". Количество этих строчек рассчитать с учетом высоты диапазона summary. Красиво: если подпись бухгалтера не помещается на текущей странице, она переползет на следующую вместе с последней записью отчета.
...
Рейтинг: 0 / 0
02.02.2005, 12:39
    #32896775
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Не поню, у полосы Summary в FPD был признак "Печатать с новой страницы"?
...
Рейтинг: 0 / 0
02.02.2005, 13:06
    #32896859
foxpro 2.0 редактирование report
в FPD в SUMMARY есть свойство "New page"
...
Рейтинг: 0 / 0
02.02.2005, 13:19
    #32896912
Игорь Л.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Я вывожу в раздел Page Footer, с проверкой, все ли записи выведены.
...
Рейтинг: 0 / 0
02.02.2005, 13:21
    #32896918
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
2 Игорь Л.
И миришься с пустым местом между последней строкой и подписью на полстраницы?
...
Рейтинг: 0 / 0
02.02.2005, 13:26
    #32896938
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
MaximZaikin

кстати, если у тебя подпись тоже в pagefooter-е, попробуй уменьшить количество строк в странице. Может, на первую страницу выводится нечто незапланированное отчетом, типа логотипа, добавляемого не через сам отчет, а как-то еще, например, через слияние файла с картинкой и отчета. При этом длина первой страницы короче остальных на высоту этого самого логотипа.
...
Рейтинг: 0 / 0
02.02.2005, 13:31
    #32896953
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
А в выяснении источника проблемы тебе поможет печать отчета в файл. Посмотри потом на этот файл. Обрати внимание на наличие символа chr(12) (конца страницы) перед подписью. Если он там есть, значит, перенос подписи на следующую страницу запланированный и предопределенный в отчете. А если нет - то незапланированный (строк на странице, заданной в отчете, больше, чем может поместиться на конкретной бумажной странице при печати на конкретном принтере при прочих конкретных условиях).
...
Рейтинг: 0 / 0
03.02.2005, 03:32
    #32898241
MaximZaikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Спасибо. Да действительно выставляется chr(12). Вопрос, а где можно в свойствах report глянуть что он выставляется ?
...
Рейтинг: 0 / 0
03.02.2005, 06:18
    #32898265
foxpro 2.0 редактирование report
Как было сказано выше у SUMMARY есть свойство "New Page" в диалоге включения/выключения Title/Summary
...
Рейтинг: 0 / 0
03.02.2005, 07:05
    #32898285
MaximZaikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Нет в сумари такое св-во не установленно, и самое, что интересно, это то что summary я вобще недавно отключил, то есть убрал. И вот еще, почему то происходит так, печатает две выписки на одной странице, а все последующие на на отдельной, то есть одна выписка, одна страница. Так вот в редактировании смотрю там стоит esc(12) А в report его нету все там перерыл нет ничего подобного. Но хоть что ниделай две выписки сначала вместе, а потом каждая на отдельной странице. А надо что бы изначально каждая на своей странице была. Как это сделать ?
...
Рейтинг: 0 / 0
03.02.2005, 07:10
    #32898290
foxpro 2.0 редактирование report
дай посмотреть репорт, приложи файл
...
Рейтинг: 0 / 0
03.02.2005, 07:23
    #32898295
MaximZaikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Блин, к сожалению немогу. Так устроенна система
...
Рейтинг: 0 / 0
03.02.2005, 10:01
    #32898462
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
В отчете FPD можно было напрямую писать принтерные коды прямо в объектах печати. Т.е. если создать объект печати и написать в нем

CHR(27)+CHR(12)

то это и вызовет автоматический переход на новую страницу.

Посмотри собственно содержимое всех объектов печати. Может где-то есть такая штука
...
Рейтинг: 0 / 0
03.02.2005, 12:26
    #32898867
Игорь Л.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Urri2 Игорь Л.
И миришься с пустым местом между последней строкой и подписью на полстраницы?
В принципе, да. Проверки на кол-во записей, проверки на выведенные записи и в итоге: если текста на полстраницы, то выводится SUMMARY, если больше, то выводится PAGE FOOTER. Приходится так делать ибо несовершенен ОН....
...
Рейтинг: 0 / 0
03.02.2005, 13:10
    #32898995
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Вы просто не умеете их готовить ;-)))
...
Рейтинг: 0 / 0
03.02.2005, 14:36
    #32899266
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Есть тупой и радикальный способ все отрегулировать - сначала сформировать report-ом текстовый файл, и затем открыть его на низком уровне. Типа:
fname=fopen('MyFile.txt')
потом удалить все прогоны листа, к примеру так:
n=0
do while !feof(fname)
a=fget(fname)
a=chrtran(a,chr(13)+chr(10),chr(10)+chr(12))
* - это замена прогона на конец строки
* если же, бывает вставляется один символ chr(13) - обычно программно
* тогда a=chrtran(a,chr(13),chr(0)) - что-то в этом роде
=fwrite(fname,a)
n=n+1
enddo
=fclose(fname)
А потом точно так же - навставлять самому эти прогоны - символы chr(13), по своим. каким угодно условиям - по количеству строк и т.п.
Можно подсчитать число строк - здесь в цикле переменная n - потом, разделив на число строк на листе, выяснить, "повиснет" ли в конце главбух - и сделать предпоследний лист с меньшим числом строк.
Это всего лишь один из способов "борьбы с report-ом" - своими "внутренними" ресурсами, по-моему, report не ликвидирует все вышеуказанные проблемы.
...
Рейтинг: 0 / 0
03.02.2005, 15:20
    #32899436
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Извиняюсь!!! там выше что-то не совсем так. Сейчас некогда разобраться.
Вот быстренько накарябал рабочий вариант:
fn=fope('MyFile.txt')
fm=fcre('temp.txt')
do whil !feof(fn)
a=fget(fn)
if !sss$a
=fput(fm,a)
endif
enddo
=fclo(fn)
=fclo(fm)
!copy temp.txt MyFile.txt
здесь вместо sss - надо подставить символ "зеркальца" (т.е. chr(13)) в символьном отображении и в кавычках по краям - в FPD он легко ставится из верхней менюшки редактора - System - ASCII chart.
...
Рейтинг: 0 / 0
04.02.2005, 10:49
    #32900773
Игорь Л.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
UrriВы просто не умеете их готовить ;-)))
Просто я давно уже не работаю в досе. И, конечно, такой трюк (см. предыдущий пост) в винде не сделаешь (особенно если все принтеры, с которыми приходится работать - лазерные, а то и пс)
...
Рейтинг: 0 / 0
04.02.2005, 11:29
    #32900869
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Кто о чем, а я - о своем... варианте :)
В первом случае там в команде fopen - пропущен параметр (по умолчанию - только чтение), т.е. надо: fname=fopen('MyFile.txt',2) - открывается для записи и чтения.
потом - после чтения строки fget-ом позиция чтения-записи в файле меняется, и надо опять вернуться к началу строки командой =fseek(fname,-len(a),1)
Но, короче, все равно - второй приведеныый там выше мной вариант (который - "рабочий") лучше, потому что позволяет в цикле чтения файла удалять лишние пустые строки - можно вставить в цикл после команды чтения fget:
if EMPTY(a)
i=1
do while EMPTY(a)
a=fget(fn)
i=i+1
enddo
endif
* где i - получается число пустых срок подряд, допустим maxpust - максимально
* нужное число пустых строк, тогда
* можно разрешить запись в другой файл, только если
if i<=maxpust
=fwrite(fname,a)
endif
И второй файл будет короче первого.
Кстати команду копирования внизу можно вообще выкинуть, а сразу же посылать получившийся файл (TEMP.TXT) на принтер или в процедуру просмотра-печати.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.03.2010, 12:54
    #36518136
zchvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
Помогите, пожалуйста. Имею навыки программирования без спец. образования. Столкнулся с неожиданной проблемой, когда попытался сконструировать report в foxpro 2.0 (в VFP - без проблем). Располагаю все, что мне нужно, на планшете отчета и в режиме предварительного просмотра убеждаюсь, что все работает, как надо. Но все попытки сохранить отчет пресекаются сообщением: memo file is missing or испорчен. Причем я понимаю, что речь идет о frt-файле, но не понимаю, почему он is missing. Почему он не создается? Кто мне поможет?
...
Рейтинг: 0 / 0
13.03.2010, 13:26
    #36518164
igorbik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro 2.0 редактирование report
zchvv,

Начните новый топик!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / foxpro 2.0 редактирование report / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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