powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема кодовой страницы в репортах
18 сообщений из 18, страница 1 из 1
Проблема кодовой страницы в репортах
    #33734273
rashidnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто может подсказать, у меня программа во многих местах использует репорты от фокса, но была она написана на 6.0 после приобретения версии 9.0 я запустил программу и отчеты стали выдаваься сикось-накось, можно решить проблему тыкая на каждое слово, каждое поле и исправляя кодовую страницу, но это занимает очень много времени, есть-ли способ сделать это побыстрее ?
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33734519
Vladimir410
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поменяйте шрифт и все будет ОК
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33734524
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекомендую расшифровать, что есть "сикось-накось", иначе никто может не ответить. Кстати, в какой кодировке сами файлы FRX?
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33735186
sergej_57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данная проблема увы решается только ручками- начиная с 9 надо, чтобы в каждом используемом шрифте была отметка - 204(кирилица). В дизайнере
при закладке Style в окне Font описание используемого шрифта должно оканчиваться 204. По идее можно написать прогу и править сразу в исходных
файлах отчета. Но надо знать структуру этих файлов.
Если найдешь или напишешь - кинь на мыло!
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33738451
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у Вас 9-ка, то натравите эту процедурку на ваши отчеты и Вам щастье)


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
LOCAL cDirFile

cDirFile	=	GETDIR()

DIMENSION DirArr[ 1 , 1 ]
nTotDir=ADIR(DirArr,m.cDirFile+"*.frx")&&,"A")
ASORT(DirArr)

FOR i =  1  TO m.nTotDir
   USE (cDirFile+DirArr[m.i, 1 ]) IN  0  ALIAS prnset 
	SELECT prnset &&(cDirFile+DirArr[m.i, 1 ])
	cStr=''
	ncount=MEMLINES(prnset.expr)
	FOR m.j= 1  TO nCount
		sss=MLINE(expr,m.j)
		IF 'ORIENTATION'$ UPPER(sss) OR 'PAPERSIZE'$ UPPER(sss) OR 'COLOR'$ UPPER(sss)
		 cStr=cStr+sss+CHR( 13 )
		ENDIF 
	    sss=''
	ENDFOR  
	cStr=cStr+'TTOPTION=1'
       replace NEXT  1  prnset.expr WITH cStr
       replace NEXT  1  prnset.double WITH .T.
       replace NEXT  1  prnset.Resoid WITH  1  

  SELECT prnset
  USE 
 WAIT WINDOW NOWAIT DirArr[m.i, 1 ] TIMEOUT  0 . 1 
ENDFOR 

CLOSE DATABASES ALL 
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33739128
rashidnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За процедуру большое спасибо щас попробую
Кодировка FRX файлов 1251 , насчет расшифровки слов, жаль, если Andrey TS никогда не приходилось его слышать, это синоним вкривь и вкось, только немного грубоватое. Конечно можно создать пустой файл репорта и попытаться закинуть в него все содержимое из версии 6.0, но мне хотелось-бы обойтись без лишних хлопот, тем более, что этих файлов куча.
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33741392
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi космонахт!

> replace NEXT 1 prnset.Resoid WITH 1

лучше 204 т.к. 1 это не Cyrillic а System default - и нет никакой гарантии
что у клиента "по умолчанию" именно кириллица выставлена... Кроме того для
"чистоты" следует заменять это поля для всех тех объектов, для которых
установка FontCharSet имеет смысл - не только для "головной" записи
(описывающей отчёт в целом, а не отдельные его элементы).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33742236
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Igor Korolyov
Спасибо за комментарий.
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33744133
rashidnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все не было времени этим заняться, только сейчас удалось и после запуска программы и проверки результата обнаружил, что в кодовую строку Label и Field цифра 204 так и не добавилась,жаль, видимо что-то следует сюда добавить для этих целей.
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33744166
sergej_57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ты попробуй в рукопашную проставить в отчете кодовую страницу -204 -
- проблема уходит или нет?
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33744485
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо добавить в процедуру скан по всем остальным записям и сделать
Код: plaintext
 replace NEXT  1  prnset.Resoid WITH  204  
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33744493
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
космонахтНадо добавить в процедуру скан по всем остальным записям и сделать
replace NEXT 1 prnset.Resoid WITH 204



А может лучше
Код: plaintext
replace all prnset.Resoid WITH  204 
и без всяких циклов?
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33746870
rashidnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного изменил код и получил желаемое

LOCAL cDirFile

cDirFile=GETDIR()
DIMENSION DirArr[1,1]
nTotDir=ADIR(DirArr,m.cDirFile+"*.frx")&&,"A")
ASORT(DirArr)

FOR i = 1 TO m.nTotDir
USE (cDirFile+DirArr[m.i,1]) IN 0 ALIAS prnset
SELECT prnset &&(cDirFile+DirArr[m.i,1])
replace all prnset.Resoid WITH 204
USE
WAIT WINDOW NOWAIT DirArr[m.i,1] TIMEOUT 0.1
ENDFOR

CLOSE DATABASES ALL

космонахту все-же еще раз огромное спасибо
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33747235
rashidnuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, оказывается непременно следует зайти в каждую из форм и сдвинуть и поставить на место любой объект и выйти с сохранением, видимо в этот момент происходит перестройка FRX под текущую версию, иначе результат нулевой. Лишь после этого код действует.
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33747305
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного изменил код и получил желаемое

LOCAL cDirFile

cDirFile=GETDIR()
DIMENSION DirArr[1,1]
nTotDir=ADIR(DirArr,m.cDirFile+"*.frx")&&,"A")
ASORT(DirArr)

FOR i = 1 TO m.nTotDir
USE (cDirFile+DirArr[m.i,1]) IN 0 ALIAS prnset
SELECT prnset &&(cDirFile+DirArr[m.i,1])
replace all prnset.Resoid WITH 204
USE
WAIT WINDOW NOWAIT DirArr[m.i,1] TIMEOUT 0.1
ENDFOR

CLOSE DATABASES ALL


Я тоже немного изменил код

Я немного изменил код и получил желаемое

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
LOCAL cDirFile

cDirFile=GETDIR()
DIMENSION DirArr[ 1 , 1 ]
nTotDir=ADIR(DirArr,m.cDirFile+"*.frx")&&,"A")
ASORT(DirArr)

SELECT  0 

FOR i =  1  TO m.nTotDir
  USE (cDirFile+DirArr[m.i, 1 ]) ALIAS prnset 
  replace all prnset.Resoid WITH  204 
  WAIT WINDOW NOWAIT DirArr[m.i, 1 ] TIMEOUT  0 . 1 
ENDFOR 
USE
CLOSE DATABASES ALL 

Мне так кажется, что мой вариант получше выглядит. :)
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33749134
Фотография космонахт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметр TTOPTION=1 важный. Без этого параметра могут быть проблемы при печати на разных принтерах.
То же самое и при отсутствии строки
Код: plaintext
1.
              replace NEXT  1  prnset.double WITH .T.

ничто не слишком
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33749535
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
космонахтПараметр TTOPTION=1 важный. Без этого параметра могут быть проблемы при печати на разных принтерах.
То же самое и при отсутствии строки
Код: plaintext
1.
              replace NEXT  1  prnset.double WITH .T.

ничто не слишком
Для VFP 9.0 это параметр не играет большую роль - вы же для объектов прописываете 204 код - Cyrlic.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Проблема кодовой страницы в репортах
    #33755670
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Aleksey!

Из описания структуры frx файлов (\Tools\Filespec\90frx.frx)

DOUBLE:
Indicates whether the object is centered, in OBJTYPE=17 (image) records.

==============================
Visual FoxPro 9-only Information Below
==============================

Indicates that a FontCharset has been explicitly assigned for the font
information in this record (for the Header record, Text and Expression
objects). Visual FoxPro 9 assigns the value .T. to all font-using records
that it creates.

If this value is .T., information in RESOID provides numeric FontCharset,
with 0 representing Western, 1 representing locale default. If it is .F.,
no FontCharset has been assigned explicitly, so 0 and 1 both represent
locale default (backward compatible behavior).

This information is not included in records of OBJTYPE 23 (extra font
resource records created for backward compatibility, now unused).

RESOID:
==============================
Visual FoxPro 9-only Information Below
==============================

Fontcharset value for header record (default font for the report) and
OBJTYPE 5 and 8 (Text and Expression).

This information is not included in records of OBJTYPE 23 (extra font
resource records created for backward compatibility, now unused).

NB: This value is used only if value of the Double logical field for the
same record is .T., indicating a fontcharset has been explicitly chosen.


Так что Double надо обязательно выставлять в .T. - иначе ResoID просто не
будет учитываться.

Насчёт TTOPTION тоже не следует забывать - драйвера для принтеров разные
бывают, настройки тоже разные - бывает что принтер пытается печатать
встроенными английсими шрифтами русский текст :(

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема кодовой страницы в репортах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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