在Design Studio中保存片段书签时,容器参数应该给出什么?

2020-09-21 07:16发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我们在Design Studio中保存Fragment Bookmark时,我们需要提供一个容器参数。 我的问题是我们如何确定此参数。

我已将面板作为仪表板的容器,因此在保存书签时会保存它。 但是,当我加载相同的书签时,它不会加载。 我认为问题出在容器参数上。

请帮助我了解此参数的使用。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当我们在Design Studio中保存Fragment Bookmark时,我们需要提供一个容器参数。 我的问题是我们如何确定此参数。

我已将面板作为仪表板的容器,因此在保存书签时会保存它。 但是,当我加载相同的书签时,它不会加载。 我认为问题出在容器参数上。

请帮助我了解此参数的使用。

付费偷看设置
发送
5条回答
SC_Yao
1楼-- · 2020-09-21 07:46

Sawan,

对于片段书签,通常建议使用面板组件作为容器,但是您可以使用任何有效的容器类型。 我怀疑您的问题与您如何加载"片段书签"而不是容器的选择有关。 为了给您提供进一步的指导,如果您发布以下内容,将会很有帮助:

1)应用程序布局的屏幕快照,突出显示面板;

2)用于保存和加载片段书签的脚本代码。

此致

穆斯塔法。

Climb_Ma
2楼-- · 2020-09-21 07:53

嗨,穆斯塔法,

感谢您的回复。

以下是我用于保存,加载和删除书签的脚本。

保存:

var书签名称= INPUTFIELD_2.getValue();

如果(bookmarkname =="")

{

APPLICATION.alert("请输入书签名称");

}

其他

{

如果(Bookmark.bookmarkWithTitleExists(bookmarkname))

{

APPLICATION.alert("书签名称已存在");

}

其他

{

Bookmark.FragmentBookmark.saveBookmark(PANEL_1,bookmarkname);

var书签= Bookmark.FragmentBookmark.getAllBookmarkInfos();

bookmarks.forEach(函数(元素,索引)

{

LISTBOX_2.addItem(element.id,element.title);

});

INPUTFIELD_2.setValue("");

}

}

正在加载:

var id = LISTBOX_2.getSelectedValue();

Bookmark.FragmentBookmark.loadBookmark(id);

var书签= Bookmark.FragmentBookmark.getAllBookmarkInfos();

bookmarks.forEach(函数(元素,索引)

{

LISTBOX_2.addItem(element.id,element.title);

});

删除:

Bookmark.FragmentBookmark.deleteBookmark(LISTBOX_2.getSelectedValue());

INPUTFIELD_2.setValue("");

LISTBOX_2.removeAllItems();

LISTBOX_2.addItem(" 1","选择书签",0);

var array = Bookmark.FragmentBookmark.getAllBookmarkInfos();

array.forEach(function(element,index)

{LISTBOX_2.addItem(element.id,element.title);

});

土豆飞人
3楼-- · 2020-09-21 07:49

嗨,穆斯塔法,

感谢您的回复。

以下是我用于保存,加载和删除书签的脚本。

保存:

var书签名称= INPUTFIELD_2.getValue();

如果(bookmarkname =="")

{

APPLICATION.alert("请输入书签名称");

}

其他

{

如果(Bookmark.bookmarkWithTitleExists(bookmarkname))

{

APPLICATION.alert("书签名称已存在");

}

其他

{

Bookmark.FragmentBookmark.saveBookmark(PANEL_1,bookmarkname);

var书签= Bookmark.FragmentBookmark.getAllBookmarkInfos();

bookmarks.forEach(函数(元素,索引)

{

LISTBOX_2.addItem(element.id,element.title);

});

INPUTFIELD_2.setValue("");

}

}

正在加载:

var id = LISTBOX_2.getSelectedValue();

Bookmark.FragmentBookmark.loadBookmark(id);

var书签= Bookmark.FragmentBookmark.getAllBookmarkInfos();

bookmarks.forEach(函数(元素,索引)

{

LISTBOX_2.addItem(element.id,element.title);

});

删除:

Bookmark.FragmentBookmark.deleteBookmark(LISTBOX_2.getSelectedValue());

INPUTFIELD_2.setValue("");

LISTBOX_2.removeAllItems();

LISTBOX_2.addItem(" 1","选择书签",0);

var array = Bookmark.FragmentBookmark.getAllBookmarkInfos();

array.forEach(function(element,index)

{LISTBOX_2.addItem(element.id,element.title);

});

野沐沐
4楼-- · 2020-09-21 07:34

嗨Sawan,

使用便携式片段书签时,作为最佳实践,容器组件应仅包括您希望为其状态添加书签的视觉内容。 它不应包含负责书签处理(例如保存,加载和删除)的"管理"组件。

以您的示例为例,用作片段书签容器的PANEL_1组件仅包含管理组件(按钮,列表框,输入字段等),而没有诸如图表之类的"真实"内容。 您需要相应地重组应用程序,以使PANEL_1仅包含可视内容,并将管理组件移到PANEL_1之外。

我上面描述的方法实际上是Christian在他的答案中张贴的示例中实现的方法,尽管我不希望在书签容器中包括过滤器组件。

此致

穆斯塔法。

Nir深蓝
5楼-- · 2020-09-21 07:47

嗨Sawan,

我建议将面板存储在交叉表/图表或过滤面板所在的位置。

在我的示例中,我有一个交叉表,位于" PANEL_1"(白色背景)中,
在" PANEL_2"(灰色背景)中具有一个维度过滤器

在单击"保存"时,无论存储1还是2都没有区别,因为两者都与同一个数据源相关。

但是:更改容器时,我已经保存的书签遇到了问题,我将其用作书签源。 因此,我始终将容器存储在过滤器面板所在的位置,因为在我看来,这是容器,将对其进行较小的更改。

保存的速记:
//保存灰色容器
Bookmark.FragmentBookmark.saveBookmark(PANEL_2);


获得所有繁荣目标的Skript:
var all = Bookmark.FragmentBookmark.getAllBookmarkInfos(); all.forEach(function(element,index){LISTBOX_1.addItem(element.id,element.id);});


用于从列表中加载所选书签的脚本:
var id = LISTBOX_1.getSelectedValue(); Bookmark.FragmentBookmark.loadBookmark(id);



致谢,
克里斯

一周热门 更多>