~~Title: Data API~~
~~NOTRANS~~
~~NOPDF~~
For managing the data of a screen, the **CustomScreen** provides a simple API which can be accessed via ''%%getDataApi('DATA_PROVIDER_NAME')%%'' from anywhere in it's extended classes.
This API provides following functions:
* ''%%dynamic getValue(String columnName)%%''\\ Provides the value of a specific column
* ''%%List getValues(List columnNames)%%''\\ Provides a list of values for the specified columns\\
* ''%%setValue(String columnName, dynamic value)%%''\\ Sets the value for a specific column
* ''%%setValues(List columnNames, List values)%%''\\ Sets the values for a list of specified columns
* ''%%insertRecord()%%''\\ Inserts a new record
* ''%%deleteRecord(int index)%%''\\ Deletes the record at the specified index
* ''%%selectRecord(int index)%%''\\ Selects the record at the specified index
The client persists those changes by itself.
=== Examples ===
==Reading a value==
DataApi dataApi = getDataApi('JVxMobileDemo/Con-CG/contacts#4');
FlatButton(
child: Text("Call"), onPressed: () {
phone = dataApi.getValue("PHONE");
launch("tel://$phone");
})
==Setting a value==
DataApi dataApi = getDataApi('JVxMobileDemo/Con-CG/contacts#4');
FlatButton(
child: Text("Set phone number"), onPressed: () {
phone = dataApi.setValue("PHONE", '+43660123456');
}
)
== Inserting a record ==
DataApi dataApi = getDataApi('JVxMobileDemo/Con-CG/contacts#4');
FlatButton(
child: Text("Insert"), onPressed: () {
phone = dataApi.insertRecord();
}
)
More examples can be found [[https://github.com/sibvisions/flutterclient.example/blob/master/lib/screens/signature_custom_screen.dart|here]] and [[https://github.com/sibvisions/flutterclient.example/blob/master/lib/screens/contact_custom_screen.dart|here]].