我如何在 netsuite 中使用 portlet 脚本类型(SuiteScript 2.0)显示饼图?以及如何在我们的 portlet 脚本中包含 HTML 文件。?

How can i show a pie chart using portlet script type(SuiteScript 2.0) in netsuite?and also How to include a HTML file in our portlet script.?

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 添加一个 select 字段(下拉),它工作正常。但我想要饼图在我的 UI.

NetSuite 像其他一切一样运行 JavaScript/HTML/CSS。我会制作一个 HTML 文件,其中包含您需要的所有内容(JavaScript、CSS 和任何绘图库),然后使用本地主机打开它进行检查。当您以自己喜欢的方式拥有它时,选择适合您的选项将其移植到 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 where you might be able to build off this example 的饼图。

如果您遇到困难或需要帮助,请在下方回复。没有愚蠢的问题,保证!

编辑

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

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;
})

希望对您有所帮助!