|
|
|
|
Re: Loading master detail data on tabboxes [message #1545452 is a reply to message #1545444] |
Sun, 04 January 2015 04:59   |
Eclipse User |
|
|
|
Dear Peter,
No realy sure what you mean.
What I have done is in the "load service" add different calls for all the tabs
(Don't know if it is a good way, but it seems to be working)
I have know something like :
....
cSQLVertalingen = "call sp_tdtdrankv_selectdetail(:drankNr) ";
oVertalingen = SQL.select(cSQLVertalingen, formData);
formData.getVertalingenTable().clearRows();
for (Object[] oVertaling : oVertalingen) {
formData.getVertalingenTable().addRow(oVertaling);
}
cSQLAccvoorraadfiches = "call sp_tdtaccfch_selectdetailmetdranknr(:drankNr, :taalnr)";
oAccvoorraadfiches = SQL.select(cSQLAccvoorraadfiches, formData, new NVPair("taalnr", nTaalnr));
formData.getAccijnsvoorraadfichesTable().clearRows();
for (Object[] oAccvoorraadfiche : oAccvoorraadfiches) {
formData.getAccijnsvoorraadfichesTable().addRow(oAccvoorraadfiche);
}
cSQLAromas = "call sp_tdtdrankar_selectdetail(:taalnr, :drankNr, :aromanr)";
oAromas = SQL.select(cSQLAromas, formData, new NVPair("taalnr", nTaalnr), new NVPair("aromanr", 0));
formData.getAromasTable().clearRows();
for (Object[] oAroma : oAromas) {
formData.getAromasTable().addRow(oAroma);
}
cSQLKeurmerken = "call sp_tdtdrankkm_selectdetail(:taalnr, :drankNr, :keurmerknr)";
oKeurmerken = SQL.select(cSQLKeurmerken, formData, new NVPair("taalnr", nTaalnr), new NVPair("keurmerknr", 0));
formData.getKeurmerkenTable().clearRows();
for (Object[] oKeurmerk : oKeurmerken) {
formData.getKeurmerkenTable().addRow(oKeurmerk);
}
cSQLSmaken = "call sp_tdtdranksm_selectdetail(:taalnr, :drankNr, :smaaknr)";
oSmaken = SQL.select(cSQLSmaken, formData, new NVPair("taalnr", nTaalnr), new NVPair("smaaknr", 0));
formData.getSmakenTable().clearRows();
for (Object[] oSmaak : oSmaken) {
formData.getSmakenTable().addRow(oSmaak);
}
cSQLGistingswijzen = "call sp_tdtdrnkgst_selectdetail(:taalnr, :drankNr, :gistwnr)";
oGistingswijzen = SQL.select(cSQLGistingswijzen, formData, new NVPair("taalnr", nTaalnr), new NVPair("gistwnr", 0));
formData.getGistingswijzenTable().clearRows();
for (Object[] oGistingswijze : oGistingswijzen) {
formData.getGistingswijzenTable().addRow(oGistingswijze);
}
....
As far as I think it is working; I have one call to the server to fill in the formData object, but I have different calls to the database server.
Kind regards
Tore
|
|
|
|
Re: Loading master detail data on tabboxes [message #1571356 is a reply to message #1546042] |
Sun, 18 January 2015 10:32  |
Eclipse User |
|
|
|
With regards to lazy loading.
This seems to work, but maybe somebody with more experience in the scout framework can validate if it is good practice :
public class DrankInfoTabBox extends AbstractTabBox {
@Override
protected void execTabSelected(IGroupBox selectedBox) throws ProcessingException {
.....
else if (selectedBox.equals(getAromasBox()))
{
DrankenFormData drankenFormData = new DrankenFormData();
exportFormData(drankenFormData);
IDrankenService service = SERVICES.getService(IDrankenService.class);
drankenFormData = service.loadDrankenAromas(drankenFormData);
importFormData(drankenFormData);
getAromasTableField().reloadTableData();
}
....
}
The data of this tab is only loaded when the tabpage is selected.
The code might need some tweeking to prevent
- reloading each time the tab is clicked.
- copying back and forth of all the formdata. Maybe it is faster if only the table data would be copied.
- ..
Tore
|
|
|
Powered by
FUDForum. Page generated in 0.04671 seconds