На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Денис Вицко (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Денис Вицко
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 142 След.
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
[QUOTE]Сергей Викторович написал:
    if ((OpType AND 1) <> 0) then soper := 'СОЗДАНИЕ ОБЪЕКТА';
    if ((OpType AND 2) <> 0) then soper := 'УДАЛЕНИЕ ОБЪЕКТА';
    if ((OpType AND [B]4[/B]) <> 0) then soper := 'ОБНОВЛЕНИЕ ОБЪЕКТА';
    if ((OpType AND 8) <> 0) then soper := 'ВОССТАНОВЛЕНИЕ ОБЪЕКТА';[/QUOTE]

Прошу прощения, тут была ошибочка
Коды операций:
[QUOTE]// ТИПЫ ОПЕРАЦИЙ НАД ОБ'ЕКТОМ
enum OBJECT_OPERATION
{
  OO_APPEND    = 1,        // СОЗДАНИЕ ОБ' ЕКТА
  OO_DELETE    = 2,        // УДАЛЕНИЕ ОБ'ЕКТА
  OO_UPDATE    = 4,        // ОБНОВЛЕНИЕ ОБ'ЕКТА
  OO_UNDO      = 8,        // ВОССТАНОВЛЕНИЕ ОБ'ЕКТА
};[/QUOTE]

[QUOTE]Сергей Викторович написал:
Как посмотреть Журнал транзакций?
Как вывести Журнал транзакций на экран?[/QUOTE]
1. Программно - с помощью MAPAPI (функции для Delphi описаны в logapi.inc)
2. С помощью штатных средств ГИС Панорама:
 а) в редакторе карты есть диалог отмены транзакции;
 б) в перечне прикладных задачи (F12) есть задача "Просмотр журнала транзакций" (в разделе "Контроль и исправление данных")
3. Компонент диалога отмены внесенных изменений в GIS ToolKit: TUndoDialog

Прикладная задача "Просмотр журнала транзакций" в открытых исходных текстах доступна [URL=https://gisinfo.ru/download/?id=310]в составе SDK[/URL].


[QUOTE]Сергей Викторович написал:
Где физически располагается Журнал отмены транзакций?[/QUOTE]

[QUOTE]Сергей Викторович написал:
файлы \Log\name.log и \Log\name.tac – протокол работы и журнал транзакций[/QUOTE]

[QUOTE]Сергей Викторович написал:
Зачем так много накопировали одну и туже фразу?[/QUOTE]

Параметр mode (GENERIC_WRITE / GENERIC_READ) управляет режимом доступа к данным и используется в функция открытия данных.
Сколько функций открытия данных - столько раз и написаны пояснения по этому параметру.
Если Вы открываете карту со значением параметра mode равном GENERIC_READ, то карта открывается только на чтение и журнал транзакций при этом не ведется.
Собственно, как и указано в комментарии, который Вы привели выше.

Для карты, открытой на запись, можно принудительно выключить ведение журнала транзакций (см. mapLogAccess).

Журнал ведется автоматически. Каждая операция создания, изменения или удаления объекта карты автоматически попадет в журнал.

Если Вы не открывали свою транзакцию, то на каждую такую операцию стартует отдельная транзакция и автоматически подтверждается.

Если Вы открыли свою транзакцию, то операции создания, изменения или удаления объектов будут регистрироваться внутри Вашей транзакции, пока Вы ее не закроете.
Отрытую транзакцию надо закрыть:
[QUOTE] // Закрыть запись транзакции
// hMap   - идентификатор открытой карты
// hSite  - идентификатор открытой пользовательской карты
// number - поле для записи номера выполненной транзакции в журнале транзакций
// Возвращает число выполненных операций в транзакции для карты
// Если число транзакций не может быть определено возвращает -1
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapLogCommitActionEx(HMAP hMap, HSITE hSite, long int * number);
_MAPIMP long int _MAPAPI mapLogCommitAction(HMAP hMap, HSITE hSite);
_MAPIMP long int _MAPAPI mapLogCommitActionObject(HOBJ info);[/QUOTE]

Цитата из документа ПАРБ.00046-06 98 08. Разработка новых модулей
[QUOTE]На каждую группу операций может формироваться своя транзакция, что позволит в
дальнейшем отменить всю операцию при необходимости.
ПАРБ.00046-06 98 08
Изм. Лист № докум. Подп. Дата
142
logapi.mapLogCreateAction(hmap, hmap, logapi.TAC_MED_MOVE)
...
logapi.mapLogCommitAction(hmap, hmap)
[/QUOTE]

Вы также можете сохранять свои записи об операциях внутрь транзакции, но для этого надо корректно заполнить структуру TACTIONRECORD.
Я выше Вам указывал, на то, что Вы не заполнили эту структуру:
[CODE]// Чтобы сохранить корректную запись, надо заполнить ActionRecord !!!
 mapLogPutRecord(MapView1.MapHandle, hSiteb, @ActionRecord);[/CODE]
В результате Вы получаете вырожденную транзакцию.
Без особой необходимости я бы не рекомендовал подменять автоматическую регистрацию операций на свой вызов mapLogPutRecord.
А в Вашем случае такой необходимости нет.
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
Добрый день!

Во-первых, Вы зря проигнорировали это сообщение:

[QUOTE]Денис Вицко написал:
mapLogReadAction
Считывает структуру описания транзакции ACTIONHEAD

mapLogGetActionRecordEx
Считывает структуру описания операции ACTIONRECORD
В ней ссылка на объект.
[/QUOTE]

У Вас продолжается эта путаница и в коде в сообщении, и в присланном Вами примере:

[QUOTE]
// Считать заголовок описания транзакции из журнала
CountAction := mapLogReadAction(mvMap.MapHandle, hSiteb, 1,[B]@ActionRecord[/B]); [I][B]// А ДОЛЖНА БЫТЬ СТРУКТУРА ACTIONHEAD[/B][/I]
[/QUOTE]


Кроме того, в присланном Вами примере масса других ошибок.
В частности:
- Вы открываете свою транзакцию, которая потом нигде не сохраняется (нет подтверждения транзакции).
[CODE] // ОТКРЫТИЕ ТРАНЗАКЦИИ ЕСТЬ, А ГДЕ ЕЕ ПОДТВЕРЖДЕНИЕ?????
 res := mapLogCreateAction(MapView1.MapHandle, MapView1.MapSites[0].SiteHandle, 4062);[/CODE]

- Вы добавляете самостоятельно записи внутрь транзакции, но подаете туда незаполненную структуру
[CODE] // Чтобы сохранить корректную запись, надо заполнить ActionRecord !!!
 mapLogPutRecord(MapView1.MapHandle, hSiteb, @ActionRecord);
[/CODE]
В результате у Вас в журнале транзакций грязь!

Вот пример кода, который читает крайнюю транзакцию пользователя и выводит ее операции:

[CODE]
procedure TForm1.btnGetActionRecordClick(Sender: TObject);
var
 res : integer;
 ii  : integer;
 actHead   : TACTIONHEAD;
 actRecord : TACTIONRECORD;
 actLast   : integer;
 soper : string;
 smask : string;
 sdate : string;
 stime : string;
 year, month, day : WORD;
 hh, mm, ss : WORD;
 TZ: TTimeZoneInformation;
 tempHSITE : HSITE;
begin
 tempHSITE := 0;

 actLast := mapLogReadActionForUndo(MapView1.MapHandle, tempHSITE, 1);
 ShowMessage ('Последняя транзакция в документе, которую можно отменить = '+IntToStr(actLast));

 res := mapLogReadAction(MapView1.MapHandle, tempHSITE, actLast, @actHead);

 with actHead do
 begin
   year  := Trunc(trDate / 10000);
   month := Trunc((trDate - (year * 10000)) / 100);
   day   := Trunc(trDate - (year * 10000) - (month * 100));
   sdate := IntToStr(day) + '.' + IntToStr(month) + '.' + IntToStr(year);

   // TZ - локальные настройки часового пояса
   GetTimeZoneInformation(TZ);
   trTime := trTime - TZ.Bias*60;
   hh := Trunc(trTime / 3600);
   mm := Trunc((trTime - (hh*3600))/ 60);
   ss := Trunc(trTime - (hh * 3600) - (mm * 60));
   stime := IntToStr(hh) + ':' + IntToStr(mm) + ':' + IntToStr(ss);

   ShowMessage ('Считать заголовок описания транзакции из журнала (результат чтения = '+IntToStr(res)+ ') :' + #10#13 +
                '  Идентификатор задачи,выполнившей транзакцию : ' + IntToStr(Task)   + #10#13 +
                '  Число операций : ' + IntToStr(Count)  + #10#13 +
                '  Тип транзакции (код задачи): ' + IntToStr(trType) + #10#13 +
                '  Дата выполнения транзакции : ' + sdate + #10#13 +
                '  Время выполнения транзакции : ' + stime);
 end;

 for ii := 1 to actHead.Count do
 begin
   res := mapLogGetActionRecordEx(MapView1.MapHandle, tempHSITE, actLast, ii, actRecord);

   with actRecord do
   begin
   smask := '';
     if ((Mask AND AM_HEAD)     <> 0) then smask := smask + 'ИЗМЕНЕНЫ СПРАВОЧНЫЕ ДАННЫЕ; ';
     if ((Mask AND AM_METRIC)   <> 0) then smask := smask + 'ИЗМЕНЕНА МЕТРИКА ОБЪЕКТА; ';
     if ((Mask AND AM_SEMANTIC) <> 0) then smask := smask + 'ИЗМЕНЕНА СЕМАНТИКА; ';
     if ((Mask AND AM_DRAW)     <> 0) then smask := smask + 'ИЗМЕНЕНО ГРАФИЧЕСКОЕ ОПИСАНИЕ; ';
     if ((Mask AND AM_HEADREF)  <> 0) then smask := smask + 'ИЗМЕНЕНА ЦЕПОЧКА ССЫЛОК';

     soper := '';
     if ((OpType AND 1) <> 0) then soper := 'СОЗДАНИЕ ОБЪЕКТА';
     if ((OpType AND 2) <> 0) then soper := 'УДАЛЕНИЕ ОБЪЕКТА';
     if ((OpType AND 4) <> 0) then soper := 'ОБНОВЛЕНИЕ ОБЪЕКТА';
     if ((OpType AND 8) <> 0) then soper := 'ВОССТАНОВЛЕНИЕ ОБЪЕКТА';

     ShowMessage ('Запрос сведений об операции № ' + IntToStr(ii) + ' тразакции ' + IntToStr(actLast) + ' (результат = ' + IntToStr(res) + ') :' + #10#13 +
                  '  Уникальный номер объекта в листе : ' + IntToStr(Key) + #10#13 +
                  '  Последовательный номер в момент обработки : ' + IntToStr(Number) + #10#13 +
                  '  Тип операции : ' + soper + #10#13 +
                  '  Маска обработанных элементов объекта : ' + smask + #10#13 +
                  '  Номер листа : ' + IntToStr(List));
   end;
 end;
end;
[/CODE]
Изменено: Денис Вицко - 30.10.2023 21:19:53 (исправлен код операции)
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
[QUOTE]Сергей Викторович написал:
При отмене транзакции показывает Уникальный номер объекта значением меньше на один или совсем другой номер объекта.
На скриншоте 04.PNG это событие по отмене транзакции, показано, что возвращает номер объекта 223, но на скриншоте 01.PNG номер этого же объекта до отмены транзакции 224В других случаях при отмене транзакции, вообще возвращается произвольный номер объекта на карте. У нас всегда один лист карта и всегда карта sit. Она располагается всегда на ГИС Сервере,
классификатор всегда для всех карт в общей папке на сервере, там же где ГИС Сервер.[/QUOTE]

Добрый день!

При редактировании или создании одного объекта изменения могут коснуться и других объектов карты, поскольку меняется последовательность объектов, порядок их отображения и пр. Это служебные изменения, но они также попадают в журнал транзакций.
Поэтому внутри одной транзакции даже при одной операции редактирования могут быть несколько записей.
Чтобы определить объект, который Вы редактировали, следует анализировать тип операции и маску изменений элементов объекта:
[CODE]

// ТИПЫ ОПЕРАЦИЙ НАД ОБ'ЕКТОМ
enum OBJECT_OPERATION
{
  OO_APPEND    = 1,        // СОЗДАНИЕ ОБ' ЕКТА
  OO_DELETE    = 2,        // УДАЛЕНИЕ ОБ'ЕКТА
  OO_UPDATE    = 4,        // ОБНОВЛЕНИЕ ОБ'ЕКТА
  OO_UNDO      = 8,        // ВОССТАНОВЛЕНИЕ ОБ'ЕКТА
};

// МАСКА ОБРАБОТАННЫХ ЭЛЕМЕНТОВ ОБ'ЕКТА
enum ACTION_MASK
{
  AM_HEAD      = 1,        // ИЗМЕНЕНЫ СПРАВОЧНЫЕ ДАННЫЕ
  AM_METRIC    = 2,        // ИЗМЕНЕНА МЕТРИКА ОБ'ЕКТА
  AM_SEMANTIC  = 4,        // ИЗМЕНЕНА СЕМАНТИКА
  AM_DRAW      = 8,        // ИЗМЕНЕНО ГРАФИЧЕСКОЕ ОПИСАНИЕ
  AM_HEADREF   = 16,       // СПРАВОЧНЫЕ ДАННЫЕ ИЗМЕНЕНЫ ТОЛЬКО В ЧАСТИ ЦЕПОЧКИ ССЫЛОК
};

typedef struct ACTIONRECORD // ОПИСАНИЕ ОТДЕЛЬНОЙ ОПЕРАЦИИ
{                           // (Для AT_OPEN - это строка 16 байт)
 unsigned int Key;         // Уникальный номер объекта в листе
 unsigned int Number;      // Последовательный номер в момент обработки
 int      Back;            // Номер записи в файле отката (служебный)
 unsigned char Type;       // Тип операции
 unsigned char Mask;       // Маска обработанных элементов объекта
 short         List;       // Номер листа
}
 ACTIONRECORD;[/CODE]

Служебные изменения будут, как правило, иметь маску AM_HEADREF.
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
[QUOTE]Сергей Викторович написал:
KeyMap := mapLogGetActionRecordEx(mvMap.MapHandle, hSiteb,NumAction,1,ActionRecord); // Понял так, что это номер объекта на листе карты, по которому можно найти его на карте и определить его ExCode
ShowMessage ('KeyMap = '+IntToStr(KeyMap));  // Результат 1, ожидался 225[/QUOTE]

[QUOTE]
// Запросить сведения об операции
// number - последовательный номер транзакции (от 1)
// recnumber - номер операции (от 1 до ReadAction(...))
// hMap  - идентификатор открытой карты
// hSite - идентификатор открытой пользовательской карты
// Структура ACTIONRECORD описана в maptype.h
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapLogGetActionRecordEx(HMAP hMap, HSITE hSite, long int number, long int recnumber,
                                                ACTIONRECORD * record);[/QUOTE]

В описании функции не сказано, что она возвращает ExCode.

[QUOTE]
typedef struct ACTIONRECORD // ОПИСАНИЕ ОТДЕЛЬНОЙ ОПЕРАЦИИ
{                                            // (Для AT_OPEN - это строка 16 байт)
[B] unsigned int Key; // Уникальный номер объекта в листе[/B]
 unsigned int Number;            // Последовательный номер в момент обработки
 int      Back;                          // Номер записи в файле отката (служебный)
 unsigned char Type;               // Тип операции
 unsigned char Mask;              // Маска обработанных элементов объекта
 short         List;                     // Номер листа
}
 ACTIONRECORD;
[/QUOTE]
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
mapLogReadAction
Считывает структуру описания транзакции ACTIONHEAD

 mapLogGetActionRecordEx
Считывает структуру описания операции ACTIONRECORD
В ней ссылка на объект.

[QUOTE]Сергей Викторович написал:
Не понятно, как понять какой ExCode объекта?[/QUOTE]

[QUOTE]Денис Вицко написал:
2. Прочитать заголовок транзакции, узнать количество операций в ней
3. Перебрать операции
4. По ключу объекта в операции найти его и прочитать.
5. Спросить у объекта всё, что интересует, в т.ч. ExCode[/QUOTE]
Как понять какой ExCode объекта при отмене транзакции, mapLogUndoAction
 
1. Узнать номер транзакции
2. Прочитать заголовок транзакции, узнать количество операций в ней
3. Перебрать операции
4. По ключу объекта в операции найти его и прочитать
5. Спросить у объекта всё, что интересует, в т.ч. ExCode

[CODE]// Прочитать последнюю транзакцию в документе, которую можно отменить
// Если после транзакции выполнялась сортировка карты
// или журнал пуст - возвращает ноль
// hMap  - идентификатор открытой карты
// hSite  - поле для записи идентификатора карты, на которой выполнена
//          отмена транзакции
// flag - условия выбора последней транзакции:
// LOG_ANYACTION(0) - нет условий, LOG_MYACTION(1) - обрабатывать последнюю
// свою транзакцию (пропускать транзакции других пользователей)
// При ошибке возвращает ноль, иначе - номер транзакции

_MAPIMP long int _MAPAPI mapLogReadActionForUndo(HMAP hMap, HSITE * hSite, long int flag);

// Считать заголовок описания транзакции из журнала
// number - последовательный номер транзакции
// (от 1 до Count(...)).
// При ошибке возвращает ноль,
// иначе - число операций в транзакции
_MAPIMP long int _MAPAPI mapLogReadAction(HMAP hMap, HSITE hSite, long int number, ACTIONHEAD * head)
{
  TMap * map = mapGetMap(hMap,hSite);
  if (map == 0)
    return 0;

  return map->ReadAction((int)number,head);
}

// Запросить сведения об операции
// number - последовательный номер транзакции (от 1)
// recnumber - номер операции (от 1 до ReadAction(...))
// hMap  - идентификатор открытой карты
// hSite - идентификатор открытой пользовательской карты
// Структура ACTIONRECORD описана в maptype.h
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapLogGetActionRecordEx(HMAP hMap, HSITE hSite, long int number, long int recnumber,
                                                ACTIONRECORD * record);

typedef struct ACTIONRECORD // ОПИСАНИЕ ОТДЕЛЬНОЙ ОПЕРАЦИИ
{                           // (Для AT_OPEN - это строка 16 байт)
 unsigned int Key;         // Уникальный номер объекта в листе
 unsigned int Number;      // Последовательный номер в момент обработки
 int      Back;            // Номер записи в файле отката (служебный)
 unsigned char Type;       // Тип операции
 unsigned char Mask;       // Маска обработанных элементов объекта
 short         List;       // Номер листа
}
 ACTIONRECORD;

// ТИПЫ ОПЕРАЦИЙ НАД ОБ'ЕКТОМ
enum OBJECT_OPERATION
{
  OO_APPEND    = 1,        // СОЗДАНИЕ ОБ' ЕКТА
  OO_DELETE    = 2,        // УДАЛЕНИЕ ОБ'ЕКТА
  OO_UPDATE    = 4,        // ОБНОВЛЕНИЕ ОБ'ЕКТА
  OO_UNDO      = 8,        // ВОССТАНОВЛЕНИЕ ОБ'ЕКТА
};

// МАСКА ОБРАБОТАННЫХ ЭЛЕМЕНТОВ ОБ'ЕКТА
enum ACTION_MASK
{
  AM_HEAD      = 1,        // ИЗМЕНЕНЫ СПРАВОЧНЫЕ ДАННЫЕ
  AM_METRIC    = 2,        // ИЗМЕНЕНА МЕТРИКА ОБ'ЕКТА
  AM_SEMANTIC  = 4,        // ИЗМЕНЕНА СЕМАНТИКА
  AM_DRAW      = 8,        // ИЗМЕНЕНО ГРАФИЧЕСКОЕ ОПИСАНИЕ
  AM_HEADREF   = 16,       // СПРАВОЧНЫЕ ДАННЫЕ ИЗМЕНЕНЫ ТОЛЬКО В ЧАСТИ ЦЕПОЧКИ ССЫЛОК
};

// Если объект имеет признак "удален", то функция возвращает 1
// При успешном выполнении возвращает значение 2
// При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapReadObjectByKeyEx(HMAP hMap, HSITE hSite, HOBJ info,
                                             long int list, long int key);


// Запросить классификационный код объекта
// info - идентификатор объекта карты в памяти
// При ошибке возвращает 0 (ноль допустим для нового объекта)

_MAPIMP long int _MAPAPI mapObjectExcode(HOBJ info);[/CODE]
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
Компонентов, которые перехватывают события мыши и клавиатуры несколько.
Они, как правило, имеют методы .StartAction() и .StopAction(), которые следует использовать для начала и окончания работы соответствующего компонента, при этом перехват событий другими компонентами рекомендуется выключать.
Судя по тексту, у Вас используется axMapEditMetric.
Проверьте корректность передачи управления между компонентами.
Qt Visual Studio Tools - проблема установки
 
С [URL=https://www.qt.io/offline-installers]официальной страницы Qt[/URL] скачивание может быть ограничено для РФ.
При необходимости воспользуйтесь обходными путями (VPN).
Также обратите внимание, что оффлайн-инсталлятор для Windows там представлен в виде *.exe-файла, из-за чего его скачивание может быть не доступно в Вашей организации из-за политики безопасности, а также скачивание может блокировать фаервол или антивирус на Вашем ПК.
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
Добрый день!

Для начала просьба обновить GIS ToolKit Active.
Актуальная на текущий момент версия 14.0.16.0 доступна [URL=https://gisinfo.ru/download/?id=299]на нашем сайте в разделе "Скачать"[/URL].
Вам достаточно просто проинсталлировать новую версию поверх старой, разместив новые библиотеки там же, где были старые, и заново перерегистрировать *.ocx (главное, чтобы снова не получилось нескольких комплектов библиотек).

GIS ToolKit Active 14.0.16.0 мы сейчас повторно проверили - диалог axSemanticDialog работает без нареканий.

Что касается обработки событий колеса мыши, их отлавливает форма, а не компонент.
Реализация масштабирования в точке нахождения курсора по колесику мыши показана в примере c:\Program Files\Panorama\GisToolActive14\Example\MS2015\C#\GtkAxTest:
[CODE] // масштабирование
       private void onMouseWheel(object sender, MouseEventArgs e)
       {
           if (!mvMap.Active) return;
           int mode = 0;
           //если курсор над MapView
           if ((e.X >= mvMap.Left) && (e.X <= mvMap.Left + mvMap.Width) &&
               (e.Y >= mvMap.Top) && (e.Y <= mvMap.Top + mvMap.Height))
           mode = 1;
           else
           if ((e.X >= axMapWindow.Left) && (e.X <= axMapWindow.Left + axMapWindow.Width) &&
               (e.Y >= axMapWindow.Top) && (e.Y <= axMapWindow.Top + axMapWindow.Height))
          mode = 2;

           if (mode != 0)
           {
               int scale = e.Delta * SystemInformation.MouseWheelScrollLines / 120;
               // вычислим нужный центр карты
               MapPoint.PlaceInp = axGisToolKit.TxPPLACE.PP_PICTURE;
               MapPoint.SetPoint(mvMap.MapLeft + e.X, mvMap.MapTop + e.Y);
               // вычислим новый масштаб
               int iScale = mvMap.ViewScale;
               if (scale < 0)
                   iScale = iScale * 2;
               else
               if (scale > 0)
                   iScale = iScale / 2;
               axGisToolKit.axMapPoint IPnt = MapPoint.C_CONTAINER;
               if (mode == 1)
                   mvMap.ScaleInPoint(iScale, IPnt);
               else
               if (mode == 2)
                   axMapWindow.ScaleInPoint(iScale, IPnt);

           }
       }[/CODE]
[ Закрыто] Просмотр данных «1С: Предприятие» и других НТТР-сервисов
 
[QUOTE]>>>> 10:28:00 7cd0 Register user for connect channel (0) error - localhost
>>>> 10:28:03    7cd0 Обработчик ошибок - Файл не найден - HOST#132.147.160.6#2047#Karta_AdressnSpravochnik_092023.sitx    
>>>> 10:28:04    7cd0 Файл не найден - HOST#132.147.160.6#2047#Karta_AdressnSpravochnik_092023.sitx  [/QUOTE]

и еще
перед именем карты пропущено ключевое слово ALIAS#

Пример алиаса для Вашей карты:
[CODE]HOST#srv-panorama-omsk#2047#Karta_AdressnSpravochnik_092023.sitx[/CODE]

лучше пользоваться [URL=https://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapgisserver_buildaliasname.html]axMapGisServer.BuildAliasName[/URL]
Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 142 След.



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

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности