{"id":18101,"date":"2016-07-15T08:00:31","date_gmt":"2016-07-15T06:00:31","guid":{"rendered":"http:\/\/192.168.20.3\/?p=18101"},"modified":"2024-12-13T09:15:52","modified_gmt":"2024-12-13T08:15:52","slug":"controles-de-una-aplicacion-sapui5","status":"publish","type":"post","link":"https:\/\/orekait.com\/es\/controles-de-una-aplicacion-sapui5\/","title":{"rendered":"Controles de una aplicaci\u00f3n SAPUI5<br><span class=\"font-300\"><\/span>"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;4.25.2&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row admin_label=&#8221;Imagen principal&#8221; _builder_version=&#8221;4.25.2&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image alt=&#8221;cloud-public&#8221; title_text=&#8221;Reclamacio\u0301n-de-facturas-vencidas-en-SAP-FI-1&#8243; admin_label=&#8221;Imagen principal&#8221; module_class=&#8221;post-img&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;Cuerpo&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text content_last_edited=&#8221;off|desktop&#8221; admin_label=&#8221;Texto&#8221; _builder_version=&#8221;4.25.2&#8243; header_2_font_size=&#8221;24px&#8221; header_3_font_size=&#8221;20px&#8221; header_4_font_size=&#8221;17px&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; width=&#8221;%22671%22&#8243; height=&#8221;%22251%22&#8243; global_colors_info=&#8221;{}&#8221; content__hover_enabled=&#8221;off|hover&#8221;]<\/p>\n<p>Al desarrollar una nueva\u00a0<strong>aplicaci\u00f3n SAPUI5<\/strong>\u00a0una de las cosas que debemos pensar es c\u00f3mo queremos estructurar dicha aplicaci\u00f3n, y por tanto, qu\u00e9\u00a0<strong>controles SAPUI5<\/strong>\u00a0vamos a necesitar.<\/p>\n<p>Los controles SAPUI5, son los elementos de interfaz de usuario con los que se va a llevar a cabo la interacci\u00f3n, ya sea de una manera pasiva o activa. En este art\u00edculo, vamos a estudiar y dar ejemplos de algunos de esos\u00a0<strong>controles de una aplicaci\u00f3n SAPUI5<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>Actualmente existen infinidad de controles distribuidos en las diferentes\u00a0<a title=\"Librer\u00edas de SAP UI5\" href=\"https:\/\/orekait.com\/blog\/librerias-sapui5-1-2\/\">librer\u00edas SAPUI5<\/a>\u00a0(<em>sap.ui.commons, sap.m\u2026<\/em>). En este art\u00edculo, s\u00f3lo vamos a introducir algunos de ellos, pero es posible encontrar todo tipo de informaci\u00f3n \u00fatil sobre propiedades, eventos y agregaciones relacionada con cada\u00a0<strong>control SAPUI5<\/strong>\u00a0en los siguientes enlaces:<\/p>\n<ul>\n<li><a title=\"Controles SAPUI5 \" href=\"https:\/\/sapui5.hana.ondemand.com\/#content\/Controls\/index.html\" target=\"_blank\" rel=\"noopener\">https:\/\/sapui5.hana.ondemand.com\/#content\/Controls\/index.html<\/a><\/li>\n<li><a title=\"Explorar controles SAPUI5\" href=\"https:\/\/sapui5.hana.ondemand.com\/explored.html\" target=\"_blank\" rel=\"noopener\">https:\/\/sapui5.hana.ondemand.com\/explored.html#<\/a><\/li>\n<\/ul>\n<p>La forma de crear un\u00a0<strong>control SAPUI5<\/strong>\u00a0depender\u00e1 del tipo de vista que se est\u00e9 creando (XML, JS, JSON, HTML\u2026) o de si el control se ha creado en el controlador de la vista, en cuyo caso siempre se crear\u00e1 mediante JS. En este art\u00edculo mostraremos algunos ejemplos usando XML.<\/p>\n<h2><strong>Tipos de controles SAPUI5<\/strong><\/h2>\n<p><strong>SAPUI5<\/strong>\u00a0ofrece controles de todo tipo, desde los m\u00e1s simples como un\u00a0<em>Label<\/em>\u00a0o un\u00a0<em>Button<\/em>\u00a0hasta los m\u00e1s complejos como mapas geogr\u00e1ficos din\u00e1micos o gr\u00e1ficos. La clasificaci\u00f3n de controles es la siguiente:<\/p>\n<ul>\n<li><strong>Controles SAPUI5 simples:<\/strong>\u00a0<em>Label, Image, Button<\/em>\u2026<\/li>\n<li>Controles SAPUI5 para<strong>\u00a0introducir valores:\u00a0<\/strong><em>ComboBox, CheckBox\u2026<\/em><\/li>\n<li><strong>Controles SAPUI5 complejos:\u00a0<\/strong><em>Table, Form, GeoMap\u2026<\/em><\/li>\n<li><strong>Layouts:\u00a0<\/strong><em>Horizontal Layout, Vertical Layout\u2026<\/em><\/li>\n<li><strong>Di\u00e1logos:\u00a0<\/strong><em>Dialog, Select Dialog, Table Select Dialog\u2026<\/em><\/li>\n<li><strong>Controles UX3:\u00a0<\/strong><em>Shell, DataSet, NaviationBar\u2026<\/em><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-18104 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-1.png\" alt=\"\" width=\"812\" height=\"178\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-1.png 812w, https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-1-480x105.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 812px, 100vw\" \/><\/p>\n<h2><strong>Propiedades de controles SAPUI5<\/strong><\/h2>\n<p>Cualquier\u00a0<strong>control SAPUI5<\/strong>\u00a0dispone de una serie de propiedades que definen su apariencia en la interfaz. Es conveniente consultar la documentaci\u00f3n anteriormente citada, para conocer qu\u00e9 propiedades disponen los distintos controles que queramos utilizar.<\/p>\n<p>Para definir\u00a0<strong>propiedades en XML<\/strong>\u00a0se utiliza la notaci\u00f3n\u00a0<em>propiedad=\u201dvalor\u201d<\/em>\u00a0dentro de la etiqueta XML de apertura del control. A continuaci\u00f3n, vemos la declaraci\u00f3n de un\u00a0<em>Label (sap.m.Label)<\/em>\u00a0y un\u00a0<em>Input (sap.m.Input)<\/em>.<\/p>\n<pre>&lt;Label id=\"Label1\"\n\ntext=\"Ejemplo de Label\"\n\ntextAlign = \"Begin\"\n\nrequired=\"true\"\/&gt;\n\n&lt;Input id=\"Input1\"\n\ntype=\"Number\"\n\nplaceholder=\"Tu numero\"\n\n\/&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-18108 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-2.png\" alt=\"\" width=\"558\" height=\"121\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-2.png 558w, https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-2-480x104.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 558px, 100vw\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Eventos en controles SAPUI5<\/strong><\/h2>\n<p>Como se comentaba anteriormente, los\u00a0<strong>controles SAPUI5<\/strong>\u00a0son los elementos con el que el usuario interact\u00faa, por esta raz\u00f3n, estos controles pueden reaccionar a diferentes eventos.<\/p>\n<p>Mediante la definici\u00f3n de\u00a0<strong>eventos SAPUI5<\/strong>\u00a0se establece c\u00f3mo se comportar\u00e1 el control. La forma de definir eventos es similar a la forma de definir propiedades, solo que el valor puede ser una funci\u00f3n an\u00f3nima (en el caso de las vistas Javascript) o mediante una llamada a una funci\u00f3n del controlador.<\/p>\n<p>A continuaci\u00f3n, vemos un ejemplo de definici\u00f3n de evento en un control\u00a0<em>ComboBox (sap.m.ComboBox)\u00a0<\/em>de una vista XML.<\/p>\n<pre>&lt;ComboBox selectionChange=\"onChange\"&gt;\n\n&lt;items&gt;\n\n&lt;core:Item key=\"Fiori\" text=\"Fiori\"\/&gt;\n\n&lt;core:Item key=\"UI5\" text=\"UI5\"\/&gt;\n\n&lt;core:Item key=\"GW\" text=\"Gateway\"\/&gt;\n\n&lt;\/items&gt;\n\n&lt;\/ComboBox&gt;<\/pre>\n<p>En el controlador correspondiente deber\u00e1 estar la\u00a0<strong>implementaci\u00f3n del evento<\/strong>\u00a0en una funci\u00f3n llamada \u201conChange\u201d.<\/p>\n<pre>onChange:function(){\n\nalert(\"On Change\");\n\n}<\/pre>\n<p>Igual que se ha comentado para las propiedades, para saber a qu\u00e9 eventos reacciona cada control se puede consultar la documentaci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-18112 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-3.png\" alt=\"\" width=\"469\" height=\"212\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-3.png 469w, https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-3-300x136.png 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/p>\n<h2><strong>Agregaciones de controles SAPUI5<\/strong><\/h2>\n<p>Gran parte de los\u00a0<strong>controles SAPUI5<\/strong>\u00a0tienen propiedades m\u00e1s complejas que las que se han mostrado en el apartado b). A este tipo de propiedades en lugar de asignar un valor concreto se les asigna una colecci\u00f3n de valores o de otros controles SAPUI5. Este tipo de propiedades, se denominan\u00a0<strong>agregaciones<\/strong>.<\/p>\n<p>En el siguiente ejemplo, podemos ver la agregaci\u00f3n\u00a0<em>columns<\/em>\u00a0en un control SAPUI5 de tipo\u00a0<em>Table<\/em>\u00a0(<em>sap.ui.table.Table<\/em>), que en lugar de ser un valor simple es una\u00a0<strong>colecci\u00f3n de controles<\/strong>\u00a0de tipo\u00a0<em>Column<\/em>\u00a0(<em>sap.ui.table.Column<\/em>).<\/p>\n<pre>&lt;t:Table id=\"Tabla1\" rows=\"{path: 'tm&gt;\/temario'}\"&gt;\n\n&lt;t:columns&gt;\n\n&lt;t:Column&gt;\n\n&lt;Label id=\"col1\" text=\"Col1\" \/&gt;\n\n&lt;t:template&gt;\n\n&lt;Text text=\"{tm&gt;id}\"\/&gt;\n\n&lt;\/t:template&gt;\n\n&lt;\/t:Column&gt;\n\n&lt;t:Column&gt;\n\n&lt;Label id=\"col2\" text=\"Col2\" \/&gt;\n\n&lt;t:template&gt;\n\n&lt;Text text=\"{tm&gt;nombre}\"\/&gt;\n\n&lt;\/t:template&gt;\n\n&lt;\/t:Column&gt;\n\n&lt;\/t:columns&gt;\n\n&lt;\/t:Table&gt;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-18116 alignnone size-medium\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/07\/sapui5-controles-complejos-4-300x29.png\" alt=\"\" width=\"300\" height=\"29\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>En la tabla anterior aparece el primer caso de\u00a0<strong>DataBinding<\/strong>, en el que se enlaza la agregaci\u00f3n\u00a0<em>rows<\/em>\u00a0con un modelo. Este concepto, es clave en el desarrollo de cualquier\u00a0<strong>aplicaci\u00f3n SAPUI5<\/strong>\u00a0ser\u00e1 tratado en pr\u00f3ximos art\u00edculos.<\/p>\n<p>De momento, con estos conceptos sobre los\u00a0<strong>controles de una aplicaci\u00f3n SAPUI5<\/strong>\u00a0podemos comenzar a dise\u00f1ar las pantallas de nuestra aplicaci\u00f3n.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;M\u00e1s informaci\u00f3n&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"morado\">M\u00e1s informaci\u00f3n:<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/orekait.com\/es\/area-personalizacion&#8221; button_text=&#8221;M\u00e1s informaci\u00f3n&#8221; module_class=&#8221;entrada-btn&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#8156EA&#8221; button_bg_color=&#8221;RGBA(255,255,255,0)&#8221; button_border_color=&#8221;#8156EA&#8221; button_border_radius=&#8221;30px&#8221; button_font=&#8221;Plus Jakarta Sans|600|||||||&#8221; button_icon=&#8221;&#x24;||divi||400&#8243; button_icon_color=&#8221;#8156EA&#8221; button_on_hover=&#8221;off&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; button_text_color__hover_enabled=&#8221;on|desktop&#8221; button_text_color__hover=&#8221;#8156EA&#8221; button_bg_color__hover_enabled=&#8221;on|hover&#8221; button_bg_color__hover=&#8221;#8156EA&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#ffffff&#8221; url_new_window=&#8221;on&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_button][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||40px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8221;on&#8221; admin_label=&#8221;Noticias relacionadas titulo&#8221; module_id=&#8221;fondo-articulos&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#f7f7f7&#8243; width=&#8221;100%&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_margin=&#8221;||40px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][et_pb_heading title=&#8221;Quizas te pueda interesar&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; title_level=&#8221;h2&#8243; title_text_align=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||30px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;Noticias relacionadas&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; width=&#8221;100%&#8221; custom_margin=&#8221;-150px||||false|false&#8221; custom_margin_tablet=&#8221;0px||||false|false&#8221; custom_margin_phone=&#8221;0px||||false|false&#8221; custom_margin_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blog fullwidth=&#8221;off&#8221; posts_number=&#8221;3&#8243; include_categories=&#8221;current&#8221; show_author=&#8221;off&#8221; show_date=&#8221;off&#8221; show_pagination=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_blog][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Al desarrollar una nueva\u00a0aplicaci\u00f3n SAPUI5\u00a0una de las cosas que debemos pensar es c\u00f3mo queremos estructurar dicha aplicaci\u00f3n, y por tanto, qu\u00e9\u00a0controles SAPUI5\u00a0vamos a necesitar. Los controles SAPUI5, son los elementos de interfaz de usuario con los que se va a llevar a cabo la interacci\u00f3n, ya sea de una manera pasiva o activa. En este [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"Lorem ipsum dolor sit amet consectetur adipiscing elit congue montes, imperdiet taciti erat elementum fermentum sem ante ultrices ridiculus, sagittis sociis egestas quisque ac semper quis odio. Aenean hendrerit ac metus dis nascetur aliquet mollis integer, rutrum vel laoreet posuere proin sagittis luctus est, tempus duis nisl ultrices parturient tempor praesent. Dignissim curabitur nascetur pellentesque augue fringilla pulvinar eros, tempus fames vehicula maecenas cubilia id, rutrum euismod integer ut scelerisque mus.\r\n\r\nVivamus auctor odio aenean rhoncus natoque dictum purus, volutpat pellentesque laoreet ridiculus consequat nisi varius euismod, augue platea convallis curae magnis taciti. Imperdiet nibh curabitur quisque orci consequat aenean pellentesque, cubilia duis senectus felis sed posuere tortor, magnis enim diam a odio sociis. Enim tellus nisl nec molestie augue luctus tempor habitant, nunc dictumst phasellus volutpat sem facilisis taciti, habitasse laoreet at turpis vel fermentum vulputate.","_et_gb_content_width":"","footnotes":""},"categories":[52,51],"tags":[],"class_list":["post-18101","post","type-post","status-publish","format-standard","hentry","category-sapui5","category-user-experience-integracion"],"_links":{"self":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/18101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/comments?post=18101"}],"version-history":[{"count":4,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/18101\/revisions"}],"predecessor-version":[{"id":22555,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/18101\/revisions\/22555"}],"wp:attachment":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media?parent=18101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/categories?post=18101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/tags?post=18101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}