UserDatasource nimmt value nicht an
Manuel Marhold
Hi..Ich habe folgenden Code:
string sCardCode = e.Form.SystemDataSources["OCRD"].GetValue("CardCode", 0).Trim();
string sCardName = e.Form.SystemDataSources["OCRD"].GetValue("CardName", 0).Trim();
string sMenge = "5";
Form oForm = null;
oForm = Form.CreateNewForm("SCForm", "SCForm");
oForm.Value = "SoftChip Form";
oForm.BorderStyle = Form.FormBorderStyle.Fixed;
UserDatasource oUDsGPCode = UserDatasource.CreateNew("GPCode");
oUDsGPCode.DataSourceType = UserDatasource.DataType.ShortText;
oUDsGPCode.Length = 15;
oUDsGPCode.Value = sCardCode;
oForm.AddUserDatasource(oUDsGPCode);
UserDatasource oUDsGPName = UserDatasource.CreateNew("GPName");
oUDsGPName.DataSourceType = UserDatasource.DataType.ShortText;
oUDsGPName.Length = 100;
oUDsGPName.Value = sCardName;
oForm.AddUserDatasource(oUDsGPName);
UserDatasource oUDsMenge = UserDatasource.CreateNew("Menge");
oUDsMenge.DataSourceType = UserDatasource.DataType.Quantity;
oUDsMenge.Value = sMenge;
oForm.AddUserDatasource(oUDsMenge);
oForm.Load();
Das laden des Formulars geht, allerdings schreibt er nur die value von "oUDsMenge" in das Formular. Ich habe auch schon probiert den Wert von "oUDsGPCode" manuell zu setzten.
EDIT:
es funktioniert mit:
man kann Datasources vom typ Text erst nach dem Laden des Formulars setzen!!!!
wird das noch geändert?
EDIT:
muss mann überhaupt noch datesources hinterlegen? wenn ich die Werte als "value" des TextEdit übergebe, zeigt der mir das auch an.
Marco Schweighauser
Hallo Manuel,du kannst auch das Value Property des Textfeldes ohne Datasource verwenden. Jedoch kommt es dann bei vielen Textfeldern zu grösseren Performance Problemen.
Ob der Wert einer DS kann erst nach dem Laden des Forms gesetzt werden, hängt von den Möglichkeiten des XML BatchLoad Funktionalität von SAP B1 ab welche vom Framework verwendet wird.
Am besten setzt du diesen nach dem frm.Load.
Gruss
Marco
Manuel Marhold
Hi Marco,das mache ich jetzt, allerdings wird das Formular dann leer angezeigt und dann erst gefüllt.
hier hilft das Formular mit visible=false zu laden und nach dem Daten laden visible auf true zu setzen.
0
Please sign in to leave a comment.
Comments
0 comments