#1
|
|||
|
|||
Cargar texto de inputField - BSP
Hola a todos,
Estoy en aprendizaje de desarrollo de aplicaciones BSP (con el Modelo Vista Controlador), Lo que pasa es que estoy intentando realizar un Insert a una tabla de BD desde inputField (textbox), ¿Cómo podria cargar el dato que tenga el parámetro a una variable y luego mandarla a la tabla interna que realiza el insert? 1. El inputField lo nombro de la siguiente manera: <htmlb:inputField id = "IDNUMBER" invalid = "false" required = "true" maxlength = "60" value = "<%= idnumber %>" /> 2. Para mandarlo a una variable asi: data ?= cl_htmlb_manager=>get_data( request = runtime->server->request name = 'inputField' id = 'IDNUMBER' ). idnumber = data->value. ls_infobp-idnumber = idnumber. 3. Al realizar la ejecución me sale el siguiente texto de error: Access via 'NULL' object reference not possible. ¿A qué se debe esto? Muchas Gracias por su ayuda, o si hay alguna manera de cargar el inputField a una variable de una manera más sencilla, les agradeceria que la compartieran. De antemano, Muchísimas Gracias.
__________________
Andrés Felipe Hernández! |
#2
|
|||
|
|||
Hola Andres,
Por empezar si estas comenzando con BSP te aconsejo que primero veas algo de "Flow logic" y luego pases a MVC. No se que tanto estás al tanto de BSP pero hay dos metodologías Flow Logic y MVC (Model View Controller). "idnumber" lo tenes que tener declarado como atributo de la página. seguramente te esté faltando eso. En Flow logic (Pagina con lógica de proceso) lo que queres hacer sería así: En la vista .htm - Layout <htmlb:inputField id = "IDNUMBER" invalid = "false" required = "true" maxlength = "60" value = "<%= idnumber %>" /> En la vista . htm Atributos Página idnumber TYPE STRING El nombre tiene que ser igual al "<%= idnumber %>" En la vista htm - Control eventos -> OnInputProcessing DATA: event TYPE REF TO CL_HTMLB_EVENT. DATA: l_idnumber TYPE STRING. event = CL_HTMLB_MANAGER=>get_event( runtime->server->request ). ***** BOTON BUSCAR IF event->name = 'button' AND event->id = 'buscar'. l_idnumber = request->get_form_field( 'idnumber' ). * Al darle al boton buscar en la variable l_idnumber tenes el valor ingresado ENDIF. Ahora MVC es un poco más complicado de explicar por aca, a una vista (propiamente dicho) sin lógica de proceso vas a ver que le falta la solapa de Control de Eventos. Esto es porque la lógica ahora pasa a estar en el controlador, independizandose de la vista (justamente es la finalidad de MVC) tener objetos independientes bien marcados. En MVC la parte del layout y el atributo de página es igual. Pero ahora en lugar de usar el control de eventos tenes que crear un controlador .do que herede de "CL_BSP_CONTROLLER2" dicho controlador va a tener prácticamente los mismos "eventos" por así decirlo que en flow logic...en los métodos ves por ejemplo: DO_INIT : Para inicializar valores DO_REQUEST: Para definir que pagina vas a mostrar DO_HANDLE_DATA: Para mapear los datos DO_HANDLE_EVENT: Para atajar eventos Tenes que redefinir el método que quieras, en DO_REQUEST vas a tener que asignar y disparar la vista que desees, en handle_data tenes como parámetro "form_fields" que tiene los valores ingresados en la vista. Aca podes asignarle el valor del htm a un atributo de la clase controlador y en el handle_event como el valor ya lo tenes a nivel atributo de la clase ya lo vas a tener disponible con tan solo me->atributo Saludos |
#3
|
|||
|
|||
Muchas Gracias amigo, me fue perfecta tu ayuda Me hacia falta implementar el método DO_HANDLE_DATA, hicé lo que me indicaste y funcionó bien... De nuevo Gracias
__________________
Andrés Felipe Hernández! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|