utils_ezworks_tx-file.js

/**
 * @typedef TxFileOption
 * @property {string} [sqlId]         요청 SQL.
 * @property {string} [action=basic]  요청 action.
 * @property {string} fileNm          파일명
 * @property {string} [rowDelimiter]
 * @property {string} [colDelimiter]
 * @property {Object} [param={}]
 */

/**
 * 조회된 내용을 인코딩 euc-kr 파일로 생성
 *
 * @function txFile
 * @param {nexacro.Form} form    넥사크로 form.
 * @param {TxFileOption} option  옵션
 * @memberof $f
 */
export function txFile(form, option) {
    if (!option) return;
    if (!option.sqlId) {
        form.pop.alert("sqlId가 없습니다.");
        return;
    }

    var action = option.action || "basic";
    var sqlId = option.sqlId;
    var fileNm = option.fileNm;
    var rowDelimiter = option.rowDelimiter;
    var colDelimiter = option.colDelimiter;
    var param = option.param || {};

    var brow = form["_ez_virtualWeb"];
    if (!brow) {
        brow = new WebBrowser();
        form.addChild("_ez_virtualWeb", brow);
        brow.show();
    }
    var url = $util.serverUrl + "/virtualText/" + action + "/" + sqlId + "?";

    if (fileNm !== undefined) param["_nm"] = fileNm;
    if (rowDelimiter !== undefined) param["_rd"] = rowDelimiter;
    if (colDelimiter !== undefined) param["_cd"] = colDelimiter;

    var sParam = Object.keys(param)
        .map(function (v, i, a) {
            return v + "=" + param[v];
        })
        .join("&");

    var encodedUrl = encodeURI(url + sParam);

    brow.set_url(encodedUrl);
}