initDataRange static method
Implementation
static Future<Map<int, RangeValue>> initDataRange(
String tableName,
List<Map<String, Object?>?>? dtData, {
bool override = false,
}) async {
if (Common.mapRange.containsKey(tableName) && !override) {
return Common.mapRange[tableName] ?? {};
}
Map<int, RangeValue> listVal = {};
try {
if (dtData == null || dtData.isEmpty) {
var ds = await SQLService.execute(
'sp_getValueDataRange',
params: {'@tableName': tableName},
);
if (ds.isEmpty) return listVal;
dtData = ds['sp_getValueDataRange'] ?? ds.values.first;
}
dtData ??= [];
for (var row in dtData) {
int id = Methods.getInt(row, 'ID', defaultValue: -1);
String title = Methods.getString(row, 'title');
double from = Methods.getDouble(row, 'valFrom', defaultValue: 0);
double to = Methods.getDouble(row, 'valTo', defaultValue: 0);
if (id < 0) continue;
listVal[id] = RangeValue(from, to, title: title);
}
Common.mapRange[tableName] = listVal;
} catch (ex) {
if (kDebugMode) {
print('[Exception] initDataRange: $ex');
}
}
if (kDebugMode) {
print('getValueDataPicker: $tableName count: ${listVal.length}');
}
return listVal;
}