UserDataSource¶
Un UserDataSource è una sorgente dati "virtuale" in memoria, non legata a nessuna tabella del database SAP. Va creata manualmente e serve a dare un posto dove salvare/leggere il valore di un controllo (EditText, ComboBox, CheckBox...) aggiunto manualmente a una form, quando quel controllo non è già collegato in automatico a un campo del DB.
Perché serve¶
Molti controlli standard sono legati (bound) automaticamente a campi del DB tramite i DataSources standard (es. oForm.DataSources.DBDataSources, legati a tabelle come ORDR, RDR1...). Ma se si aggiunge un controllo custom (es. un checkbox su una form standard, o un campo su una form XML propria), quel controllo non ha automaticamente un posto dove "vivere" il suo valore — va quindi associato a uno UserDataSource.
Esempio pratico¶
// Creo uno UserDataSource di tipo stringa, lunghezza 20
oForm.DataSources.UserDataSources.Add("MyUDS", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20);
// Creo un EditText e lo collego allo UserDataSource
SAPbouiCOM.EditText oEditText = (SAPbouiCOM.EditText)oForm.Items.Item("MyItem").Specific;
oEditText.DataBind.SetBound(true, "", "MyUDS");
// Leggere/scrivere il valore
oForm.DataSources.UserDataSources.Item("MyUDS").ValueEx = "Ciao";
string valore = oForm.DataSources.UserDataSources.Item("MyUDS").ValueEx;