zoukankan      html  css  js  c++  java
  • appendFormDataToURL完成导出,netsuite导出csv

    footer_actions 是netsuite中 所有系统列表form页面都存在的对象,就是页脚那些可以用来排序,过滤等等的对象,我们可以对这些对象进行操作,包括定制,系统完成您操作后的动态刷新当前页面的功能。

    <input type=hidden name='sortcol' value='Transaction_TRANDATE_raw'>
    
    <input type=hidden name='sortdir' value='ASC'>
    <input type=hidden name='csv' value='HTML'>
    <input type=hidden name='OfficeXML' value='F'>
    

    这个四个对象是包括在form:foot_actions中的,是四个隐藏的对象,在界面上无法查看到,是系统内置的用来动态管理其自身功能的变量。

    比如在导出时候:

    document.forms['footer_actions'].elements.csv.value='Export';

    //document.forms['footer_actions'].elements.OfficeXML.value='F';

    document.location.replace(appendFormDataToURL('/app/accounting/transactions/transactionlist.csv?searchtype=Transaction'));

    csv被变成Export时,在用appendFormDataToURL才会发生导出动作哦!~

    function appendFormDataToURL(url,omit) {
     var footer = document.getElementById('div__footer');
     var elem, frm = parent.document.forms['footer_actions'];
     if (isValEmpty(url)) url = ''
     for (var i = 0; i < frm.elements.length; i++) {
      elem = frm.elements[i];
      if (elem.name.length == 0 || elem.name == omit || elem.name.indexOf('inpt_') == 0) continue;
      if (elem.type=='select-one')
       url = addParamToURL(url, elem.name, escape(parent.getSelectValue(elem)));
      else if (isMultiSelect(elem))
       url = addParamToURL(url, elem.name, escape(getMultiSelectValues(elem)));
      else if (elem.type=='radio')
       url = addParamToURL(url, elem.name, escape(getRadioValue(elem)));
      else if (elem.type=='checkbox')
       url = addParamToURL(url, elem.name, (elem.checked ? 'T' : 'F'));
      else if (elem.type=='text')
       url = addParamToURL(url, elem.name, escape(elem.value));
      else if (elem.type=='hidden' && elem.name != 'frame') 
       url = addParamToURL(url, elem.name, encode(elem.value));
     }
     return url;  }
    
    这个隐含的API中调用到了系统公开的一个API:addParamToURL和一个escape方法:
    
    addParamToURL(param, value, dynamic)
    Adds a URL parameter to this column. Should only be called after calling setURL(xxx)
    Parameters
    ? param {string} - The parameter name added to the URL
    ? value {string} - The parameter value added to the URL
    ? dynamic {boolean} - If true, then the parameter value is actually an alias that is
    calculated per row
    ------------------------
    

    escape 方法


    String 对象编码以便它们能在所有计算机上可读,
    escape(charString)
    必选项 charstring 参数是要编码的任意 String 对象或文字。

    说明


    escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。
    字符值大于 255 的以 %uxxxx 格式存储。
    注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURIencodeURIComponent 方法。

    要求


    版本 1

    请参阅


    encodeURI 方法 | encodeURIComponent 方法 |String 对象 | unescape 方法

  • 相关阅读:
    【转】Windows Phone的应用程序认证要求
    ObservableCollection删除问题
    国庆总结?
    .net dll破解实战
    理理头绪
    创建Metro风格的WPF界面
    Alpha项目测试
    原型设计
    团队项目总结
    最常用的35中心里效应
  • 原文地址:https://www.cnblogs.com/backuper/p/1350344.html
Copyright © 2011-2022 走看看