CFL im Grid Modal gestalten
Mark Lindemann
Hallo alle zusammen,
ich habe das Problem, dass mein CFL (ItemCode) im Grid nicht modal bleibt. Ich habe im Forum zwar ein paar Einträge gefunden, aber die Lösung ist mir noch nicht ganz klar geworden! Kann mir jemand kurz ein paar Tipps geben, wie ich dieses Problem lösen kann, ggf. mit ein paar Code-Schnipseln ;-)?
Danke im Voraus
Mark
Rafael Stalder
Hallo Mark
ich bin mir nicht sicher, ob man eine coresuite DLL modal gestalten kann. Da du ein SAP-Objekt verwendest (Artikel) kannst du grundsätzlich auch die Standard-CFL von SAP verwenden, die ist nämlich standardmässig modal.
Untenstehend siehst du ein Beispiel, wie es bei einer CFL mit Geschäftspartnern funktioniert:
// Initialisierung in Form Load Event
// Initialisierung in Form Load Event
SAPbouiCOM.ChooseFromListCollection cflCollection = null;
SAPbouiCOM.ChooseFromList chooseFromList = null;
SAPbouiCOM.ChooseFromListCreationParams cflParams = null;
SAPbouiCOM.Conditions conditions = null;
SAPbouiCOM.Condition condition = null;
cflCollection = SwissAddonFramework.B1Connector.GetB1Connector().Application.Forms.GetForm(e.FormTypeEx, e.FormTypeCount).ChooseFromLists;
cflParams = ((SAPbouiCOM.ChooseFromListCreationParams)(SwissAddonFramework.B1Connector.GetB1Connector().Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)));
// Add choose from list
cflParams.ObjectType = "2";
cflParams.UniqueID = "CFL_BP"
cflParams.MultiSelection = false;
chooseFromList = cflCollection.Add(cflParams);
// Filterung der Auswahlliste (keine Lieferanten)
conditions = chooseFromList.GetConditions();
condition = conditions.Add();
condition.Alias = "CardType";
condition.Operation = BoConditionOperation.co_NOT_EQUAL;
condition.CondVal = "S";
chooseFromList.SetConditions(conditions);
// Anbindung an Textedit
TextEdit.GetFromUID(sapForm, Resources.EDT_EndCustomer).ChooseFromListUID = "CFL_BP"
TextEdit.GetFromUID(sapForm, Resources.EDT_EndCustomer).ChooseFromListAlias = "CardCode";
// Auswählte Werte aus CFL in Textedit schreiben (in ChooseFromList Event)
if (e.EventType == SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST)
{
if (!e.BeforeAction)
{
if (GUI.isDocument(e.FormTypeEx))
{
SAPbouiCOM.IChooseFromListEvent cflEvent = ((SAPbouiCOM.IChooseFromListEvent)(e));
if (cflEvent.SelectedObjects != null && cflEvent.ChooseFromListUID == "CFL_BP")
{
SAPbouiCOM.DataTable dt = cflEvent.SelectedObjects;
Form sapForm = Form.GetFormFromUID(cflEvent.FormUID);
TextEdit.GetFromUID(sapForm, Resources.EDT_EndCustomer).Value = dt.GetValue("CardCode", 0).ToString();
}
}
}
}
Gruss Rafi
Please sign in to leave a comment.
Comments
0 comments