toFile method

dynamic toFile(
  1. dynamic data,
  2. dynamic context,
  3. dynamic label
)

Implementation

toFile(data, context, label) {
  myLogAll('toFile');
  dynamic tableName = data[gTableID];
  List header = [];
  List body = [];

  dynamic tableInfo = _tableList[tableName];

  //tableInfo.[gData].length;
  //List tableData = tableInfo[gData];
  List columns = tableInfo[gColumns];
  dynamic subject = tableInfo[gAttr][gLabel] ?? '';

  for (int i = 0; i < columns.length; i++) {
    if (isHiddenColumn(columns, i)) {
      continue;
    }

    header.add(getSCurrentLan(columns[i][gLabel], gEn));
  }

  List newData = getTableData(tableName, context);

  for (int i = 0; i < newData.length; i++) {
    Map dataRow = newData[i];
    //get updated value
    dynamic ti = getTableRowShowValueFilterMapOrList(
        tableName, dataRow, columns, context, '', false);
    if (ti != null) {
      body.add(ti);
    }
  }

  //header
  //body
  //request
  var filename = _globalParam[gToken] ?? "atmpfile";
  if (filename.indexOf("-") > 0) {
    filename = filename.substring(0, filename.indexOf("-"));
  }
  sendRequestOne(
      label,
      {
        gHeader: header,
        gBody: body,
        gFilename: label + filename,
        gSubject: subject
      },
      context);
}