Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Журнал изменений своими руками

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы специалистов по адаптации системы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Sever



Зарегистрирован: 09.11.2009
Сообщения: 6
Откуда: Екатеринбург, ФГУП "Уралгеоинформ"

СообщениеДобавлено: Чт 19 Ноя 2009 12:55    Заголовок сообщения: Журнал изменений своими руками Ответить с цитатой

Здравствуйте.

В "инмете" есть журнал изменений. Однако, для того, чтобы посмотреть информацию по конкретному объекту, требуется ИД этого объекта, требуется перейти на страницу журнала изменений, ввести этот ИД - и только после этого видны результаты.

Задача: для некоторых объектов хочется упростить процедуру отслеживания изменений - например, создать метод, располагаемый на форме редактирования объекта, который будет открывать окно со всеми изменениями, производимыми с данным объектом.

К сожалению, насколько я смог разобраться, форма update_log_form.asp не предоставляет возможности реализовать данный механизм. В первую очередь потому, что не поддерживается возможность автопоиска при загрузке ( для примера, в object_list_form.asp существует возможность передать в форму параметр auto-search=true, благодаря чему поиск инициируется автоматически )
Возникла мысль реализовать что-то подобное на основе уже имеющегося класса InMetaClient.UpdateLogformClass. Однако, функционал данного класса максимально урезан и при его помощи решить вопрос не представляется возможным.

Существует потенциальная возможность генерировать странички по одной на каждое изменение экземпляра класса ( update_log_update_xml_form.asp ). Однако для этой формы требуются загадочные параметры minorID и majorID, ни назначение, ни способ генерации которых не является очевидным.

В свете вышеизложенного возникли нижеследующие вопросы: можно ли как-то решить поставленную задачу в рамках имеющихся механизмов "инметы"? Или для этого требуется ваше непосредственное вмешательство в ядро системы? Если можно, то где и что копать?
Есть ли в сборке "инметы" возможность работать с журналом изменений, есть ли документация на эту тему?

Заранее спасибо

ЗЫ. Версия "инметы" - 1.9.87
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Чт 19 Ноя 2009 16:32    Заголовок сообщения: Ответить с цитатой

Если в url-е страницы update_log_form.asp задавать параметр id:
Код:
http://localhost/unittests/inmeta/update_log_form.asp?id=000680000C44

тогда этот идентификатор сразу вставится в поисковое поле.

Чтобы срабатывало сразу, добавьте после 25-ой строки новую строчку:
Код:
document.all.UpdateLogForm_SearchBtn.click


Полный текст update_log_form.asp будет выглядеть так:
Код:
<!-- #include virtual="/inmeta/asp_prolog.inc" -->
<%
dim ObjectID

ObjectID = GetQueryStringParam("id", "")
%>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
   <meta http-equiv="Content-Language" content="ru">
   <title>Журнал изменений</title>
   <link rel="stylesheet" type="text/css" href="styles.css">
<!-- #include file="inmeta_object.inc" -->

<script language="vbscript" for="window" event="onload">
   dim aForm
   
   inmeta.Init window
   set aForm = document.body.updatelogform
   aForm.InitForm
<%if ObjectID <> "" then%>
   aForm.ObjectID = "<%=ObjectID%>"
   aForm.ClassName = ""
   aForm.BeginDate = Null
   aForm.EndDate = Null
   document.all.UpdateLogForm_SearchBtn.click
<%end if%>
</script>
</head>

<body style="behavior:url(#inmeta#updatelogform)">
</body>
</html>

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Sever



Зарегистрирован: 09.11.2009
Сообщения: 6
Откуда: Екатеринбург, ФГУП "Уралгеоинформ"

СообщениеДобавлено: Чт 19 Ноя 2009 17:06    Заголовок сообщения: Ответить с цитатой

Спасибо. Действительно, работает.
Ну и для полноты, так сказать, информации, еще пара вопросов

1. можно ли включать/отключать блоки "вид результата" и "критерий поиска" - т.е. выводить информацию только по запрошенному объекту и не давать пользователю возможности поиска информации по другим объектам?
Подозреваю, это должно быть что-то вроде
Код:
document.all(BlockID).Visible = false



2. Возможно ли использовать сборку "инметы" для получения списка изменений объекта внутри собственной aspx-странички ?

Другими словами, могу ли я в рамках нашего проекта ( т.е. - веб сайта, обеспечивающего пользователям интерфейс доступа к инмете ) создать собственную aspx - страничку, на которой буду выводить список изменений того или иного объекта, не обращаясь к страничке update_log_form.asp ?

Спасибо

ЗЫ. для решения первой задачи попробовал использовать механизм Layout'ов, используемый в форме поиска объектов. Однако, на конструкцию
Код:
aForm.FormLayout = 2

мне сообщили, что "объект не поддерживает это свойство или метод: aForm.FormLayout"
Что, впрочем, понятно - у объекта CInMetaClient.CUpdateLogFormClass свойство FormLayout отсутствует

ЗЗЫ. Панель поиска удалось заблокировать при помощи строчки
Код:
document.all( "UpdateLogForm_SearchPanel" ).disabled = true

На безрыбье, как говорится, сойдет, но хотелось бы, все-таки, ее спрятать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы специалистов по адаптации системы Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB