К сожалению, у ReportPro нет возможности штатно изменить язык самого дизайнера. И здесь, как указал leo_bond, подойдёт только подмена файла Rp2Eng32.dll на Rp2Rus32.dll. Т.е., в каталоге нашего ReportPro удаляем Rp2Eng32.dll и копируем туда Rp2Rus32.dll под именем Rp2Eng32.dll. После этого – дизайнер станет на русском языке.
Допустим, дизайнер я оставил на английском, но мне интересно сделать просмотр, печать и экспорт отчётов в моей программе на русском языке. Как это сделать? Ответ есть в помощи (для разработчиков) в самом ReportPro:
Setting the Active Language DLL
The SetRpLangDLL() function allows you to specify which language DLL ReportPro uses.
Именно так я и сделал. Пользователям разложил свой вариант перевода (Rp2Rus32.dll), и окошко просмотра с печатью стало на русском языке. Но, окно экспорта отчёта в другие форматы осталось по-прежнему на английском. Что делать? А тут нам поможет недокументированная (?) функция SetRpExportLangDLL(). И, таким образом, для собственного удобства я написал свою функцию:
FUNCTION RpSetNatDLL( cNatDLL AS STRING ) AS VOID PASCAL // Pencil
// Description: Функцияподключениеязыковогомодуля
// Parameters : cNatDLL - имя .dll-файла (например: "Rp2Rus32.dll")
// Returns : VOID
// Русские сообщения при печати
SetRpRunLangDLL( cNatDLL ) // "Rp2Rus32.dll"
// Русские сообщения при экспорте
SetRpExportLangDLL( )
RETURN
Теперь, если её вызвать, то на русском будет не только просмотр и печать, но и процедура экспорта данных. Хорошо!
Я решил не останавливаться на достигнутом, и сделать ещё кое-что приятное моим пользователям. Например, в дизайнере, в окне просмотра данных перед печатью, есть ToolTips-ы (всплывающие подсказки) на кнопках, а в моей программе – нет. В дизайнере есть иконка на окне, а в моей программе – нет (а при использовании старых версий ReportPro – была). Непорядок! Исправляем:
METHOD PostInit( ) CLASS rpPrintPreviewDialog // Pencil
// Description:
// Parameters :
// Returns :
// Исправляем отображение иконки
// Исправлеям отображение подсказок к кнопкам в окне перед печатью
LOCAL oIcon AS RpPreViewIcon
oIcon := RPPREVIEWICON{}
IF oIcon <> NULL_OBJECT
SELF:Icon := oIcon
ENDIF
SELF:oCCCloseBtn:TooltipText := LoadResString( "Closes the Print Preview Window", IDL_PP_CLOSE_DESC, rpLangDLL )
SELF:oCCPrintBtn:TooltipText := LoadResString( "Prints the Report", IDL_PP_PRINT_DESC, rpLangDLL )
SELF:oCCExportBtn:TooltipText := LoadResString( "Exports the Report", IDL_PP_EXPORT_DESC, rpLangDLL )
SELF:oCCFirstPageBtn:TooltipText := LoadResString( "Move to the First Page in the Report", IDL_PP_PAGE_FIRST_DESC, rpLangDLL )
SELF:oCCPrevPageBtn:TooltipText := LoadResString( "Move to the Previous Page", IDL_PP_PAGE_PREV_DESC, rpLangDLL )
SELF:oCCNextPageBtn:TooltipText := LoadResString( "Move to the Next Page", IDL_PP_PAGE_NEXT_DESC, rpLangDLL )
SELF:oCCLastPageBtn:TooltipText := LoadResString( "Move to the Last Page", IDL_PP_PAGE_LAST_DESC, rpLangDLL )
SELF:oCCGotoBtn:TooltipText := LoadResString( "Move to a Specified Page", IDL_PP_PAGE_GOTO_DESC, rpLangDLL )
SELF:oCCZoomInBtn:TooltipText := LoadResString( "Zoom in", IDL_PP_ZOOM_IN_DESC, rpLangDLL )
SELF:oCCZoomOutBtn:TooltipText := LoadResString( "Zoom out", IDL_PP_ZOOM_OUT_DESC, rpLangDLL )
RETURN NIL
А если кто-то сомневается в правомочности русификации указанным способом, то вот Вам маленькая выдержка из помощи разработчикам («ReportPro Developper`s Giude»):
ReportPro 32-Bit Internationalization
All libraries of the 32-Bit version of RP2 utilize the RP2ENG32 language library. RP2ENG32.AEF contains the code used to produce the 32-bit ENGLISH language library.
Use the following steps to create your own language DLL:
· Import RP2ENG32.AEF into your CA-VO 2 repository.
· Change the name of the RP2ENG32 application and DLL so you will not overwrite the existing DLL.
· The character strings are located in three string table entries in the application:
ENGLISH - contains strings used by the runtime libraries.
ENGLISHEXE - contains strings used by the stand alone and linkable designers.
ENGLISHMENU - contains menu strings used by the stand alone and linkable designers.
· Translate the character strings as required but do not change the string DEFINES.
· Compile the new language DLL and generate the DLL file.
Может, кто-то подскажет, как исправить экспорт данных в .html и .pdf-форматы, задать шрифт? А то, по умолчанию там заданы некорректные шрифты, которые не поддерживают кириллицу.
Да, чуть не забыл. Вот Вам недокументированные настройки экспорта отчётов в файле «rpwin.ini» (настройкам экспорта там соответствует раздел «Internal»):
[Internal]
ELast=5
HTolerance=0
VTolerance=0
ELast - какой пункт меню был выбран при экспорте в файл.
HTolerance и VTolerance - допуски на отклонение колонок по горизонтали и вертикали
(при экспорте в MS-Excel и т.п.).
Удачи!
Комментарии
Thank you so much for
Thank you so much for providing individuals with remarkably special chance to check tips from this website. It is often very terrific and also jam-packed with a good time for me personally and my office colleagues to search your blog the equivalent of thrice weekly to read through the latest stuff you have got.
Китайцы, как всегда, умиляют :))
Ты - симпатяга. Было приятно
Ты - симпатяга. Было приятно общаться с тобой виртуально.
Good evening
Только недавно стал Вашим читателем и сразу подписчиком. Спасибо за пост.
Привет
Довольно интересная статья. У себя в ЖЖ блоге я немного хочу процитировать Ваш пост. Разумеется, ссылка на Ваш сайт будет присутствовать. Надеюсь Вы не против?
Что не запрещено, то - разрешено :)