AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2012, 10:42   #1  
Blog bot is offline
Blog bot
Участник
 
25,644 / 848 (80) +++++++
Регистрация: 28.10.2006
Попробую ответить…



Общий принцип построения ссылки расписан в статье help (Справка Руководство по C/SIDE): Creating and Running Hyperlinks. На MSDN это статья http://msdn.microsoft.com/en-us/library/dd338670.aspx

Проблема в том, что в общую схему:

DynamicsNAV://server/service/company/runpage?page=22&bookmark=0ABA0700235752C7D1

надо подставлять сгенеренный автоматически bookmark.



Для получения bookmark надо воспользоваться механизмом, описанным в help: Walkthrough: Creating a Link from a Report to a Page. На MSDN это статья http://msdn.microsoft.com/en-us/library/dd301304.aspx



Я задался целью проверить это и вот что получилось…



Создал простейший отчет со списком товаров и с добавленными операциями по переменной ItemRecRef:



OBJECT Report 50000 Item - Hyperlinks

{

OBJECT-PROPERTIES

{

Date=16.02.12;

Time=[ 9:40:39];

Modified=Yes;

Version List=;

}

PROPERTIES

{

EnableHyperlinks=Yes;

}

DATAITEMS

{

{ PROPERTIES

{

DataItemTable=Table27;

DataItemTableView=SORTING(No.);

OnPreDataItem=BEGIN

ItemRecRef.OPEN(27);

END;



OnAfterGetRecord=BEGIN

ItemRecRef.SETPOSITION(Item.GETPOSITION);

END;



ReqFilterFields=No.;

GroupTotalFields=No.;

}

SECTIONS

{

{ PROPERTIES

{

SectionType=Header;

PrintOnEveryPage=Yes;

SectionWidth=18150;

SectionHeight=1692;

}

CONTROLS

{

<...>

}

}

{ PROPERTIES

{

SectionType=Header;

PrintOnEveryPage=Yes;

SectionWidth=18150;

SectionHeight=846;

}

CONTROLS

{

{ 1000000012;Label ;0 ;0 ;1500 ;846 ;ParentControl=1000000011;

VertAlign=Bottom;

FontBold=Yes;

MultiLine=Yes;

DataSetFieldName=Item__No__Caption }

{ 1000000015;Label ;1650 ;0 ;4500 ;846 ;ParentControl=1000000014;

VertAlign=Bottom;

FontBold=Yes;

MultiLine=Yes;

DataSetFieldName=Item_DescriptionCaption }

}

}

{ PROPERTIES

{

SectionType=Body;

SectionWidth=18150;

SectionHeight=423;

}

CONTROLS

{

{ 1000000011;TextBox;0 ;0 ;1500 ;423 ;HorzAlign=Left;

SourceExpr="No.";

DataSetFieldName=Item__No__ }

{ 1000000014;TextBox;1650 ;0 ;4500 ;423 ;HorzAlign=Left;

SourceExpr=Description;

DataSetFieldName=Item_Description }

{ 1000000000;TextBox;6450 ;0 ;150 ;423 ;Visible=No;

SourceExpr=FORMAT(ItemRecRef.RECORDID,0,10);

DataSetFieldName=FORMAT_ItemRecRef_RECORDID_0_10_ }

}

}

}

}

}

<...>

CODE

{

VAR

ItemRecRef@1000000002 : RecordRef;



BEGIN

END.

}

RDLDATA

<...>



Далее через Инструменты Create Layout Suggestion открыл Visual Studio и там выставил в Navigation Jump to URL полную ссылку:

="dynamicsnav://localhost/DynamicsNAV/CRONUS Россия ЗАО/runpage?page=30&mode=edit&bookmark="+Fields!FORMAT_ItemRecRef_RECORDID_0_10_.Value







Все сохранил и запускаю нужный отчет через Run:

dynamicsnav://localhost/DynamicsNAV/CRONUS Россия ЗАО/runreport?report=50000

Теперь если кликнуть в запущенном RTC отчете по названию товара, то открывается карточка конкретного товара:







Как же получить ссылки?

Сохраняю отчет в Excel и оттуда уже копировать можно ссылки:







Вот, например, ссылка на товар 1151:

dynamicsnav://localhost/DynamicsNAV/CRONUS%20%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%20%D0%97%D0%90%D0%9E/runpage?page=30&mode=edit&bookmark=224;GwAAAACJBDExNTE=

При ее запуске через Run откроется ссылка на карточку соответствующего товара.



Можно так же сделать на рабочем столе для открытия конкретной карточки товара соответствующий ярлык:







Файл объекта Item &ndash; Hyperlinks.fob прилагаю.



P.S.

15 полезных русских блог постов по NAV 2009, советы по клиенту с новым ролевым интерфейсом и т.д.



Подробнее... http://blogs.technet.com/b/alexef/ar...hyperlink.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 20.02.2012, 21:24   #2  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
и тут спрошу.

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

Item.GET('1151');
RecRef.OPEN(DATABASE::Item);
RecRef.SETPOSITION(Item.GETPOSITION);
MESSAGE(FORMAT(RecRef.RECORDID,0,10));

выдает стандартный
item.1151
вместо волшебного
bookmark=224;GwAAAACJBDExNTE=

боюсь непросто будет попытаться в фоновом режиме запустить отчет, выгрузить в Excel,
скопировать ссылку в буфер и вставить в нужное место...
должен быть какой-то путь покороче...
Старый 20.02.2012, 21:44   #3  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
йоу!
какие они разные...
одна и та же строчка кода:
MESSAGE(FORMAT(RecRef.RECORDID,0,10));

Классика:
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Item: 1151
---------------------------
ОК
---------------------------


RTC:
Microsoft Dynamics NAV
---------------------------
224;GwAAAACJBDExNTE=
---------------------------
ОК
---------------------------
Старый 21.02.2012, 09:09   #4  
finn is offline
finn
Участник
 
136 / 24 (1) +++
Регистрация: 26.12.2001
Адрес: Москва
Да, FORMAT(RecordRef.RECORDID,0,10) возращает, при запуске в RTC, именно RTC ссылку. В классике будет другой возврат.
Доп. инфа:
http://blogs.msdn.com/b/freddyk/arch...yperlinks.aspx
Старый 21.02.2012, 10:49   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
не подскажите, есть простой способ определить, какой клиент запущен?
Старый 21.02.2012, 11:47   #6  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Цитата:
Сообщение от Sancho Посмотреть сообщение
не подскажите, есть простой способ определить, какой клиент запущен?
ISSERVICETIER ?
Старый 22.02.2012, 02:33   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
коротко и по делу!
+1, Андрей!
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:35.