На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты
АРХИВ ФОРУМА...
здесь вы можете ознакомиться с материалами форума до 08.06.2008

GIS Toolkit Free. Проблемы с печатью

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти  
Форум » Настольные приложения » GIS ToolKit
Страницы: 1
RSS
GIS Toolkit Free. Проблемы с печатью
Здравствуйте! Нами разработана некая программа с использованием инструментария GIS Toolkit Free (v.10.7.3). При исполнении ее на локальном компьютере проблем нет. Однако при запуске в терминальном режиме программа зависает при попытке открыть диалоговое окно печати карты - конкретнее при вызове функций prnMapPrintTitle и prnMapPrintEx.
Просьба помочь.
1. Какое окно выходит при зависании ?
2. Какие значения задаются в поля структуры MAPPRINTPARMEX ?

Возможно это подскажет причину.
1. Никакое окно не выводится. Программа просто подвисает после вызова вышеуказанных функций.
2. Значения полей структуры при первом вызове функций и в локальном, и в удаленном исполнении программы одинаковы и выглядят так :

PrnParmEx.Length : 512
PrnParmEx.Handle : 0
PrnParmEx.Scale : 0
PrnParmEx.ScaleSave : 0
PrnParmEx.RectMetr : 0 0 0 0
PrnParmEx.ShiftLTmm : 0
PrnParmEx.ShiftUPmm : 0
PrnParmEx.FieldLTmm : 0
PrnParmEx.FieldUPmm : 0
PrnParmEx.FieldRTmm : 0
PrnParmEx.FieldDNmm : 0
PrnParmEx.Intensity : 50
PrnParmEx.Copies : 1
PrnParmEx.Regime : 0
PrnParmEx.Preview : 1
PrnParmEx.TypePrint : 3
PrnParmEx.TypeOutput : 0
PrnParmEx.Orientation : 0
PrnParmEx.FilePrn : 0
PrnParmEx.Border : 0
PrnParmEx.FitToPage : 0
PrnParmEx.Black : 0
PrnParmEx.Calibration : 0
PrnParmEx.Mirror : 0
PrnParmEx.Cutline : 0
PrnParmEx.OverlapLTmm : 0
PrnParmEx.OverlapUPmm : 0
PrnParmEx.OverlapRTmm : 0
PrnParmEx.OverlapDNmm : 0
PrnParmEx.PageWidth : 0
PrnParmEx.PageHeight : 0
PrnParmEx.Angle : 0
PrnParmEx.PlaneFrame : 0 0 0 0
PrnParmEx.SiteDecor : 0
PrnParmEx.FrameKey : 0
PrnParmEx.PaperWidth : 0
PrnParmEx.PaperHeight : 0
PrnParmEx.ColorModel : 0
PrnParmEx.PostScript : 0
PrnParmEx.Restore : 0
PrnParmEx.TurnFrame : 0
PrnParmEx.Decoration : 0
PrnParmEx.Reserve :
PrnParmEx.FileName :
PrnParmEx.FrameList :
Код

//-----------------------------------------------------------------
// Печать карты
//  hmap      - идентификатор карты
//  printer   - идентификатор устройства печати
//  printparm - параметры диалога печати (поле Length должно
//              содержать размер структуры)
//  parm      - параметры задачи (поле Handle должно содержать
//              идентификатор главного окна)
//  title     - заголовок диалога
// При ошибке возвращает 0
//-----------------------------------------------------------------
long int _EXPORTAPI prnMapPrintEx(HMAP hmap, HPRINTER printer,
MAPPRINTPARMEX* printparm,
TASKPARM* parm, char* title)
{
  if (hmap == 0 || printparm == 0 || parm == 0) return 0;

  // Проверка размера структуры
  if (printparm->Length != (long)sizeof(MAPPRINTPARMEX)) return 0;

  // Наличие идентификатора главного окна обязательно
  HWND handle = parm->Handle;
  if (handle == 0) return 0;

  ...
}
parm->Handle не может быть нулевым.

P.S. Поля структуры должны быть сначала обнулены ( типа memset(&PrintParm, 0, sizeof(PrintParm)) ), затем проинициализированы только требуемые. В сообщении достаточно указывать только ненулевые поля.
Установка идентификатора главного окна PrnParmEx.Handle := GetParentForm(aMapView).Handle ничего не изменила. Поля структуры, разумеется, в начале обнуляются.
Для проверки запустил пример из папки \GistoolkitFree10, в котором тоже используется диалог вывода на печать. Результат тот же.
Возможно существует какая-то проблема с инициализацией принтера (HPRINTER).
printer не равен 0 ?

Возможно принтер не правильно настроен для терминального режима:
http://www.xterm.ru/faqs/%D0%BF%D0%B5...%BC%D0%B5/

P.S. Попробуйте проверить печать на ГИС Панорама Мини (версия 11.1): http://gistoolkit.ru/download/mapview11.zip
(запустить в тех же условиях).
Выяснились новые подробности.
1.Вызов диалога печати приводит к зависанию программы не только при удаленном, но и при локальном исполнении на сервере. Сервер работает под управлением Windows Server 2008 Standard. На рабочих станциях, где стоят XP SP3, локально все работает.
2. printer не равен 0, т.к. есть проверка на 0.
3. ГИС Панорама Мини 11.1 функционирует корректно (и локально, и удаленно): окно печати появляется, печать производится.
Изменено: sarn52 - 01.09.2010 09:32:03
Копнул немного глубже:

31/03/10 была исправлена ошибка обращения к несуществующему адресу
(ошибка характерна только для GIS ToolKit версии до 10.7.3 включительно).

Прошу проверить на GIS ToolKit (версия 10.8.3) http://gistoolkit.ru/download/gistool10.zip
Да, все верно. С этой версией GIS Toolkit все корректно работает. Как я могу получить GIS Toolkit Free версии 10.8.3 ?
Напишите на panorama@gisinfo.ru запрос для получения обновления GIS Toolkit Free версии 10.8.3 (укажите номер ключа).
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)


© КБ Панорама, 1991-2012