addTableOne method

dynamic addTableOne(
  1. dynamic data,
  2. dynamic context
)

Implementation

addTableOne(data, context) {
  myLogAll('addTabble');
  clearMFocusNode(context);
  if (data[gBody] != null && data[gBody][gZzylog] != null) {
    addZzylog(getMap(data[gBody][gZzylog]), context);
    return;
  }

  var isNew = false;
  var name = data[gActionid];
  if (isNull(_tableList[name]) ||
      (_tableList[name]![gAttr][gLogmerge] ?? 'Y') != 'Y') {
    isNew = true;
  }

  if (isNew) {
    bool isAdvanceSearch = false;
    _tableList[name] = getMap(data[gBody][name]);

    List dataList = getTableDataUnserial(name, context);

    List colList = _tableList[name]![gColumns];
    if (isSS()) {
      if (dataList.isNotEmpty) {
        for (int i = 0; i < dataList.length; i++) {
          dataList[i] = getMap(dataList[i]);
        }
      }
      if (colList.isNotEmpty) {
        for (int i = 0; i < colList.length; i++) {
          colList[i] = getMap(colList[i]);
        }
      }
      _tableList[name]![gAttr] = getMap(_tableList[name]![gAttr]);
    }
    for (int i = 0; i < colList.length; i++) {
      if (colList[i][gAdvanceSearch] ?? false) {
        isAdvanceSearch = true;
      }
    }
    if (isAdvanceSearch) {
      _tableList[name]![gAttr][gAdvanceSearch] = true;
    }
    _tableList[name]![gAscending] = _tableList[name]![gAscending] ?? true;
    _tableList[name]![gSortColumnIndex] =
        _tableList[name]![gSortColumnIndex] ?? 0;
    if (_tableList[name]![gAttr]![gOrderby] != null) {
      //auto sort by order by
      var orderbyList = (_tableList[name]![gAttr]![gOrderby] + '').split(',');
      for (var i = orderbyList.length - 1; i >= 0; i--) {
        var orderbyOne = orderbyList[i].split(' ');
        var ascending = true;
        if (orderbyOne.length > 1) {
          if (orderbyOne[1] != gAsc) {
            ascending = false;
          }
        }
        var columnIndex = 0;
        for (var i = 0; i < colList.length; i++) {
          if (colList[i][gId] == orderbyOne[0]) {
            break;
          }
          if (isHiddenColumn(colList, i)) {
            continue;
          }
          columnIndex++;
        }
        tableSort(name, columnIndex, ascending, context);
      }
    }
  }
  var dataLabel = data[gLabel];
  _tableList[name]![gTableID] = name;
  if (!isNull(data[gWhere])) {
    _tableList[name]![gWhere] =
        _tableList[name]![gWhere] ?? getWhereClean(data[gWhere]);
  }
  /*Map param = {
    gType: gForm,
    gFormdetail: {
      gFormName: name,
      gsBackgroundColor: 4280391411,
      gSubmit: gSubmit,
      gImgTitle: {
        gTitle: datalabel,
        gFontSize: _defaultFontSize + 10.0,
        gHeight: 1.2,
        gLetterSpacing: 1.0
      },
      gHeight: 450.5,
      gTop: 130.0,
      gItems: {}
    },
    gActions: [
      {gType: gIcon, gValue: 58336, gAction: gMessenger}
    ],
    gBottomImgs: [],
    gTitle: {},
    gBtns: []
  };

  for (int i = 0; i < _tableList[name]![gColumns].length; i++) {
    Map ti = getMap(_tableList[name]![gColumns][i]);
    param[gFormdetail][gItems][ti[gDbid]] = ti;
  }

  setFormListOne(name, param[gFormdetail]);*/
  getForm(name, dataLabel, context);
  if (data[gLabel] == gDroplist) {
    //add to droplist
    List tableData = _tableList[name]![gData];
    if (tableData.isNotEmpty) {
      for (int i = 0; i < tableData.length; i++) {
        dpListInsert(name, tableData[i], context);
      }
    }
  }
  insertATable(
      gSSTableName, _globalParam[gGlobalCompanyid], name, _tableList[name]);
  afterTableAdded(name, context);
}