Example
Step-by-step JDito RecordContainer implementation
-
Create table
MYTEST:MYTESTID: char(36)MYNUMBERFIELD: intMYTEXTFIELD: varchar(50)
-
Update the Alias Definition.
-
Create Context
MyTestand EntityMyTest_entity:UIDMYNUMBERFIELD(number)MYTEXTFIELD
-
Add a FilterView, PreviewView, and EditView.
-
Add the Context to the Global Menu.
-
Create a
JDitoRecordContainernamedjDito:-
jDitoRecordAlias:Data_alias -
recordFieldMappings:- UID.value
- MYNUMBERFIELD.value
- MYTEXTFIELD.value
-
isFilterable: true -
contentProcess:
-
import { result, vars } from "@aditosoftware/jdito-types";
import { FilterSqlTranslator } from "FilterSqlTranslator_lib";
import { newSelect, SqlBuilder } from "SqlBuilder_lib";
let query = newSelect("MYTESTID, MYNUMBERFIELD, MYTEXTFIELD")
.from("MYTEST")
.whereIfSet("MYTEST.MYTESTID", vars.get("$local.idvalues"), SqlBuilder.IN());
if (vars.get("$local.filters"))
{
let filterCondition = new FilterSqlTranslator(vars.get("$local.filters"), "MYTEST");
query.andIfSet(filterCondition.getSqlCondition());
}
let data = query.table();
result.object(data);
- Example
onInsertimplementation:
let rowdata = vars.get("$local.rowdata");
let columns = ["MYTESTID", "MYNUMBERFIELD", "MYTEXTFIELD"];
let values = [rowdata["UID.value"], rowdata["MYNUMBERFIELD.value"], rowdata["MYTEXTFIELD.value"]];
new SqlBuilder().insertData("MYTEST", columns, null, values);
- Example
onUpdateimplementation:
let changedFields = vars.get("$local.changed");
let rowData = vars.get("$local.rowdata");
let fieldValues = {};
changedFields.forEach(fieldName =>
{
// removes the ".value"/".displayValue" postfix
let dbFieldName = fieldName.split(".")[0];
fieldValues[dbFieldName] = rowData[fieldName];
});
newWhere("MYTEST.MYTESTID", vars.get("$local.uid"))
.updateFields(fieldValues);
- Example
onDeleteimplementation:
newWhere("MYTEST.MYTESTID", vars.get("$local.uid"))
.deleteData();