0% encontró este documento útil (0 votos)
12 vistas17 páginas

TB1300 10 UI API Creating Forms

Cargado por

mavp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas17 páginas

TB1300 10 UI API Creating Forms

Cargado por

mavp
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

TB 1300 -

API de interfaz de usuario del SDK de SAP


Business One: creación de formularios
julio, 2019

PUBLIC
Creación de formularios: objetivos del tema

Después de completar este tema, podrá


 Explicar cómo crear nuevos formularios y elementos.
 Guardar y cargar formularios usando XML

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2


Creación de formularios: formularios de usuario

El formulario de usuario es un formulario que se agrega a Business One


mediante la API de UI.

Hay varias formas de crear un formulario de usuario.


 Codifícalo paso a paso
 Utilice el complemento Screen Painter
 Utilice SAP Business One Studio

Debe asignar un tipo, que debe tener como prefijo el espacio de nombres de su
empresa , por ejemplo, SAP_AsstMD representa el tipo de formulario de Datos
maestros de activos fijos en SAP Fixed Asset Add-On.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3


Creación de formularios: ejemplo: crear un formulario

Dim oForm como SAPbouiCOM.Form


Paquete de creación tenue como SAPbouiCOM.FormCreationParams

' Crea el objeto FormCreationParams


paquete de creación = SBO_Application.CreateObject(
SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)

' Especifica los parámetros en el objeto.


CreationPackage.UniqueID = " MP_MyFormID" ' Auto UniqueID asignado
CreationPackage.FormType = " MP_MyFormType"
CreationPackage.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed

' Agregamos el formulario a la aplicación SBO


oForm = SBO_Application.Forms.AddEx (paquete de creación)

' Establece el título del formulario y la visibilidad


' ¡Tenga en cuenta! Incluso si el formulario no es visible, puede que esté "allí " en la colección de Formularios...
' ...y la API de UI generará una excepción si intenta agregar un formulario con el mismo ID único.

oForm.Title = " Hola mundo "


oForm.Visible = Verdadero

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 4


Creación de formularios: elementos
Tipos de elementos

Editar texto
Texto estático

Carpeta

Caja combo
Matriz
Caja

Botón vinculado
Combinación de
botones
Botón
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 5
Crear formularios: elementos
Propiedades del elemento

Las propiedades comunes a todos los artículos están disponibles directamente en el


objeto Artículo.
■ Ejemplos:
■ Propiedades Superior, Izquierda, Ancho, Alto
■ Método de actualización

Otros miembros dependen del tipo de elemento (ComboBox, Matrix, etc.).


Estos están disponibles a través de la propiedad "Específica" del artículo.
■ Ejemplos:
■ Propiedad de cadena (elemento EditText)
■ Propiedad seleccionada (elemento ComboBox)
■ Propiedad ValidValues (elemento ComboBox)
■ Propiedad de columnas (elemento de matriz)
■ Propiedad de diseño (elemento de matriz)

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 6


Creación de formularios: elementos
Crear elementos en el formulario: muestra

Atenuar oItem como SAPbouiCOM.Item


Atenuar el botón como SAPbouiCOM.Button

'Agregar botón, los botones con UID 1 y 2 deben estar en Aceptar y Cancelar
oItem = oForm.Items.Add("1", it_BUTTON)
oButton = oItem.Específico
oButton.Caption = "&Aceptar"
'Establecer tamaño y ubicación:
oArtículo.Top = 200
oArtículo.Izquierda = 20
oArtículo.Ancho = 70
oItem.Altura = 19

oItem = oForm.Items.Add("2", it_BUTTON)


oButton = oItem.Específico
oButton.Caption = "&Cancelar"
'Establecer tamaño y ubicación:
oArtículo.Top = 200
oArtículo.Izquierda = 95
oArtículo.Ancho = 70
oItem.Altura = 19
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 7
Creación de formularios:
acceso a elementos de elementos: muestra

Atenuar oItem como SAPbouiCOM.Item


Atenuar oEditar como SAPbouiCOM.EditText

oArtículo = oForm.Items.Item( “ 54 ” )

'ahora puedes acceder a las propiedades genéricas del artículo


oArtículo.Ancho = 120

' …para acceder a la propiedad String y otras propiedades específicas de


' el tipo de elemento EditText utiliza el objeto “ sub ” específico EditText

' VB implícitamente convierte el valor específico del elemento


' al tipo de objeto del lado izquierdo .
' En C#, C++ es necesario realizar la conversión explícitamente .
oEditar = oItem.Específico
oEdit.String = " Hola mundo "

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 8


Creación de formularios:
propiedad PanelLevel de elementos

La propiedad Form.PaneLevel se usa con Item.FromPane y Item.ToPane para crear múltiples paneles o "
capas " en un formulario, en el que diferentes elementos son visibles en diferentes paneles.

Normalmente se utiliza con elementos de carpeta para mostrar diferentes elementos en diferentes " pestañas
".

Para cada elemento, establezca las propiedades FromPane y ToPane .


 Si ambas propiedades se establecen en 0, el elemento será visible en todos los paneles
 Ejemplo: si el elemento oEdit1.FromPane = 1 y oEdit1.ToPane = 3, el elemento será visible cuando
oForm.Panelevel = 1, 2 o 3 .

En el elemento Carpeta, establezca la propiedad Panel en el Nivel de panel asociado que será visible cuando
se seleccione la carpeta.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 9


Creación de formularios:
propiedad TabOrder de elementos

El orden de tabulación es la capacidad de controlar el orden en que se mueve el foco de un


elemento a otro al presionar la tecla TAB.
 Sólo los elementos que pueden recibir atención pueden "tener " TabOrder.

Sólo disponible para objetos de elementos específicos como EditText, ComboBox

Limitaciones:
 Objetos de elementos específicos
 El orden de tabulación no se aplica en celdas ni columnas.
Intentar establecer el orden de tabulación en esos tipos generará una excepción
 El índice de orden de tabulación puede ser cualquier valor entero >= 0.
 Dos elementos pueden tener el mismo valor de orden de tabulación, pero el orden entre ellos será
inconsistente.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 10


Creación de formularios: foco de formulario/ActiveItem

Caso de uso:
 Establecer el foco en un elemento particular del formulario
 Es necesario comprobar si un elemento en particular tiene foco
 Consultar el formulario qué elemento tiene foco
Limitaciones :
 Solo los elementos EditText y ComboBox, PaneComboBox pueden tener foco.
 Sólo el formulario activo tiene elementos de enfoque.
 Para Matrix: ItemUID del elemento enfocado será MatrixUID, no UID de celda/columna.

Propiedades y métodos:
 Form.ActiveItem: propiedad de solo lectura
 Form.ActiveItem(string csItemID) : establece el foco en un elemento específico
 EditText, ComboBox y PaneComboBox Active : propiedad de lectura y escritura.
 EditText, ComboBox y PaneComboBox Active (Boolean fInFocus) : establece el foco
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 11
Crear formularios - SAP Business One Studio

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 12


Crear formularios: trabajar con XML

¿Por qué utilizar XML?


Una serie de operaciones se reemplaza por una única operación por lotes. ¡Esto significa menos código
y mejor rendimiento!

Guardar un diseño de formulario en un archivo XML


sXML = oForm.GetAsXML() ' obtiene una cadena XML

oXML.loadXML(sXML) 'cargar XML en el documento DOM obj.

oXML.save (App.Path y "\Form.xml") 'guardar el archivo

Actualizar CUALQUIER formulario (o cargar un formulario de usuario) desde un archivo XML


SBO_Application.LoadBatchActions (oXMLDoc.xml) 'cargar cadena a través de una llamada

Mecanismo de carga de formularios de usuario preferido


oFormCreationParams.XmlData = oXMLDoc.xml
Usar con parámetros de creación; preferido sobre LoadBatchActions debido a una mayor
flexibilidad/control
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 13
Creación de formularios: ejemplo: guardar, cargar o actualizar usando XML

Atenuar oXMLDoc como Nuevo Xml.XmlDocument ' ...cuando se utiliza .NET ' s System.Xml
Dim oForm As SAPbouiCOM.Form
Dim xmlData As Cadena
tenue m_sPathToFormXML como Cadena = " c:\xml\xml_UpdateSample.xml "
' 1) Guardar: obtener recurso XML del formulario de cotización
oForm = SBO_Application.Forms.GetForm( “ 149 ” , 1)
Si oForm es Nada Entonces Salida Sub

xmlData = oForm.GetAsXML()

' 2) Cargar o Actualizar: cargar el archivo xml en el objeto del documento XML
oXMLDoc.Load (m_sPathToFormXML)

' cargar el xml… (preferiblemente para actualizar un formulario…)


SBO_Application.LoadBatchActions (oXMLDoc.InnerXml)

' eventualmente busca errores y advertencias


SBO_Application.GetLastBatchResults()
oXMLDoc = Nada
© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 14
Creación de formularios: ejemplo: carga de formularios utilizando XML

Forma tenue Como SAPbouiCOM.Form


Paquete de creación tenue Como SAPbouiCOM.FormCreationParams
Atenuar oXMLDoc como nuevo Xml.XmlDocument ' ...cuando se utiliza System.Xml de
.NET
' Crea el objeto FormCreationParams
paquete de creación = SBO_ Aplicación.CreateObject( _
SAPbouiCOM.BoC reatableObjectType.cot_FormCreationParams)

' Tenga en cuenta: estos parámetros anulan los datos correspondientes en el XML
CreationPackage.UniqueID = " MP_MyFormID"
CreationPackage.FormType = " MP_MyFormType"
CreationPackage.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed

' Sólo un ejemplo de una cadena XML que describe un formulario... igual que se usa para LoadBatchActions
oXMLDoc.Load( “ C:\XML\Sample.srf ” )
CreationPackage.XmlData = oXMLDoc. InnerXml​

' Agregamos el formulario a la aplicación SBO


oForm = SBO_ Aplicación.Forms.AddEx(paquetedecreación)

' ¡ Establezca el formulario visible ( también se puede configurar en XML )!


oForm.Visible = Verdadero

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 15


Creación de formularios: observaciones generales

■ Agregar elementos a formularios de usuario


■ Los ID únicos “ 1 ” y “ 2 ” heredarán el comportamiento de Business One
para los botones “ Aceptar ” y “ Cancelar ” .
■ Enlace a propiedad

■ El orden de tabulación predeterminado se basa en el orden en que se


agregan los elementos a un formulario, pero se puede cambiar con la
propiedad TabOrder .
■ Las fuentes de datos mejoran el rendimiento.
■ El diseño XML mejora la velocidad de carga del formulario.
■ Formulario.UDFFormUID
■ Propiedad que vincula a cada formulario del sistema con su formulario UDF
correspondiente.

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 16


Crear formularios: ejercicio

Ahora deberías practicar:


 Crear un formulario a partir del código
 Guarde el formulario como XML
 Cargue el formulario en el complemento desde XML

© 2019 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 17

También podría gustarte