Estoy tratando de montar un diseño por xml que afecta el form=‘139’
Pero a la hora de realizarlo me carga solo un par de opciones.
uso este codigo, es como si solo en el seguimiento del codigo me tomara una parte del xml.
Gracias por la atencion prestada.
Private Sub SBO_Application_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles SBO_Application.ItemEvent
BubbleEvent = True
Dim oOrderForm As SAPbouiCOM.Form
If (pVal.FormType = 139 And pVal.EventType <> SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD And pVal.Before_Action = True) Then
oOrderForm = SBO_Application.Forms.GetFormByTypeAndCount(pVal.FormType, pVal.FormTypeCount)
If (pVal.EventType = SAPbouiCOM.BoEventTypes.et_FORM_LOAD And pVal.Before_Action = True) Then
' {
' UpdateFormByXML("NewCheckbox.xml", pVal.FormUID);
'FunctionSDK.LoadFromXML(SBO_Application, "139.XML")
UpdateFormByXML("139.xml", pVal.FormUID)
' }
End If
' }
'}
'& pVal.EventType <> SAPbouiCOM.BoEventTypes.et_FORM_UNLOAD
'MsgBox("Ojo")
End If
End Sub
Private Sub UpdateFormByXML(sFileName As String, sFormUID As String)
Try
Dim sxPath As String = Nothing
Dim sPath As String = Nothing
sxPath = "Application//forms//action//form//@uid"
sPath = System.Environment.CurrentDirectory + "\"
Dim xDoc As Xml.XmlDocument
xDoc = New Xml.XmlDocument
Dim xNode As Xml.XmlNode
Dim sXML As String = Nothing
xDoc.Load(sPath + sFileName)
xNode = xDoc.SelectSingleNode(sxPath)
xNode.InnerText = sFormUID
sXML = xDoc.InnerXml.ToString()
SBO_Application.LoadBatchActions(sXML)
Catch ex As System.Exception
SBO_Application.SetStatusBarMessage(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Short, True)
End Try
End Sub
@Fredy_SAP te voy a dar un TIP. Cuando necesites modificar o cambiar algún form nativo es mas fácil hacerlo con Bussiness Studio y VS. Esto para que lo tengas como una opción mas rápida y sin estarte complicando con código.
@andresramirez de esta manera me arroja un error en interopServices
{“Form - Reserved or illegal form unique ID [66000-32]”}
Voy a validar esta opción. Y te comento @juliancab
@juliancab , por diseño com o tu dices es facil. Pero a la hora de trabajar con tabcontrol, para las pestañas, y agregar contendio , quedo como flojo, porque no me deja navegar visualmente por las pestañas. Si tienes algo de documentación sobre esto, te agradeceria, o un ejemplo basico.
@Fredy_SAP, cambia el UniqueID del XML. No puedes sobre escribir el formulario estándar, lo que debes hacer es al abrir el menú no llamar el formulario nativo sino el tuyo, que se importa desde el XML.
@andresramirez Te comento, que me cargo ya el diseño del XML, era cuestion de un cambio en la configuracion porque el xml cargaba folder, del tab. Cargo Perfecto.
Solo que no se si es que me falta algo en el xml, o deba poner otro debate. Pero cuando en la caja escogo de la lista , no me lo pone en la caja de texto. Que podria ser.
Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent
oCFLEvento = pVal
Dim sCFL_ID As String
sCFL_ID = oCFLEvento.ChooseFromListUID
oOrderForm = SBO_Application.Forms.Item(FormUID)
Dim oCFL As SAPbouiCOM.ChooseFromList
oCFL = oOrderForm.ChooseFromLists.Item(sCFL_ID)
Try
Dim oDataTable As SAPbouiCOM.DataTable
oDataTable = oCFLEvento.SelectedObjects
Dim val As String
Dim val1 As String
If Not oDataTable Is Nothing And pVal.BeforeAction = False Then
oOrderForm.Items.Item("054").Click(SAPbouiCOM.BoCellClickType.ct_Regular)
oDataTable = oCFLEvento.SelectedObjects
val = oDataTable.GetValue("CardCode", 0).ToString
'val1 = oDataTable.GetValue("CardName", 0).ToString
'oOrderForm.DataSources.DBDataSources.Item("ORDR").SetValue("U_BKSC_Dest", 0, val)
'oOrderForm.DataSources.DataTables.Item("OCRD").SetValue("U_BKSC_Dest", 0, val)
oOrderForm.Items.Item("04").Specific.value = val
oOrderForm.Items.Item("054").Click(SAPbouiCOM.BoCellClickType.ct_Regular)
End If
Catch ex As Exception
SBO_Application.SetStatusBarMessage(ex.Message)
End Try
Try
Catch ex As Exception
SBO_Application.SetStatusBarMessage(ex.Message)
End Try
'If (pVal.ItemUID = "04") Then
' ' oForm.DataSources.DBDataSources.Item("ORDR").SetValue("U_BKSC_Dest", 0, "CLI-041")
' oForm.DataSources.DBDataSources.Item("OCRD").SetValue("04", 0, "CLI-041")
' 'DataSources.DBDataSources.Item()
' 'oForm.DataSources.UserDataSources.Item("04").SetValue("CLI-041")
' oForm.Items.Item("04").Specific.value = oDataTable.GetValue(0, 0)
' 'oOrderForm.DataSources.UserDataSources.Item("OCRD").ValueEx = "CLI-041"
'End If
End If