如何在netsuite中使用portlet脚本类型(SuiteScript 2.0)显示饼图?以及如何在portlet脚


function() {
function render(params) 
{
params.portlet.title = 'My Portlet';
var content = '<body>'+
'<form>' +
' <fieldset>'+
' <legend>Selecting elements  </legend> ' +
'<p>  <label>Select Range</label>  <select id = "myList"><option value = "1">Daily</option> <option value = "2">Weekly</option>'+
' <option value = "3">Monthly</option>  <option value = "4">Yearly</option>' +
' </select>' +
' </p>' +
' </fieldset>' +
'</form>' +
' </body>';
params.portlet.html = content;
}

你们能帮我写饼图的代码吗。并为我提供一些从portlet调用其他脚本的语法。

我尝试在netsuite中使用html添加一个选择字段(下拉(,它运行良好。但我想在我的UI中使用饼图。

NetSuite运行JavaScript/HTML/CSS与其他一切一样。我会制作一个HTML文件,其中包含您所需要的一切(JavaScript、CSS和任何绘图库(,并用localhost打开它来查看。当你有自己喜欢的方式时,选择适合你的选项将其移植到NetSuite:

  1. 将文本复制到var content = "your_html_here"(维护起来可能很麻烦,但可以正常工作(。

  2. 将HTML文件加载到文件柜中,并将其加载到portlet脚本中,以进行文本替换,从而插入所需的任何数据(这是一个额外的步骤,但维护起来要容易得多,您可以下拉HTML文件来进行所需的任何本地测试(:

var content = file.load({id: /Suitescripts/path_to_your_html_file.html"}).getContents()
content = content.replace("Placeholder_Text", "With This")

既然你在问如何构建饼图,我建议你使用类似d3js的东西,这样你就可以在这个饼图的例子基础上构建饼图。

如果你陷入困境,或者需要帮助,请在下面回复。没有愚蠢的问题,保证!

编辑

您询问了将搜索结果添加到HTML文件的问题。虽然听起来你已经回答了你的问题,但我会在这里记录这个过程,以防万一,永远不知道是谁从谷歌来的!

var mySearch = search.load({id: "my_search_id", ...})
mySearch.run.each(function(result) {
searchHTML += "<tr>"
searchHTML += `<td>${result.getText({name: "fieldname", ... })}</td>`
searchHTML += `<td>${result.getValue({name: "fieldname", ... })}</td>`
searchHTML += "</tr>"
// To move onto the next result
return true;
})

希望能有所帮助!

最新更新