Traducir a :

miércoles, 31 de julio de 2013

¿Cómo insertar un registro a una tabla de la base de datos desde un popUp en Oracle ADF?

Este tutorial fue realizado en jDeveloper 11.1.1.7.0 y su objetivo es insertar un registro a una tabla de la base de datos ingresando los datos del nuevo registro en un popUp.

Para este tutorial tenemos la siguiente tabla de Observaciones y  botón "Agregar Observación" en el fragmento "Fragmento.jsff".


Tenemos un popUp que contiene un Dialog y necesitamos agregar un nuevo registro en la tabla de la base de datos. Es necesario arrastar desde los Data Controls el View Object referente a la tabla de la base de datos que estamos trabajando, en este caso es "ObservacionesView1".



Vamos a popUp -> Propety Inspector -> Common -> PopUpFetchListener creamos la función "editPopUpListener", y en popUp -> Propety Inspector -> Common-> PopUpCanceledListener creamos la función "editPopUpCancelListener", en el Manage Bean del fragmento: "FragmentoBean.java".

Además cambiamos la propiedad de Common-> ContentDelivery a lazyUncached.


Luego nos dirigimos hacia la pestaña Bindings de la página y añadimos 3 bindings de tipo "action": "CreateInsert" , "Commit" y "Rollback". Como vemos todas estas acciones hacen referencia al Iterador: "ObservacionView1Iterator" del View Object "ObservacionView1" que estamos trabajando.



Para ejecutar un "action" desde el ManageBean de la página o fragmento podemos utilizar la siguiente función:
    public Object executeAction(String actionName) {
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
            OperationBinding operation = bindings.getOperationBinding(actionName);
            return operation.execute(); }

Luego implementamos los métodos "editPopUpListener"  y "editPopUpCancelListener":

   public void editPopUpFetchListener(PopupFetchEvent popupFetchEvent) {
        executeAction("CreateInsert");   }

  public void editPopUpCalcelListener(PopupCanceledEvent popupCanceledEvent) {
    executeAction("Rollback"); }

Ahora vamos nos dirigimos hacia las propiedades del  Dialog que se encuentra dentro del popUp y añadimos un método en Dialog-> Property Inspector -> Behavior -> DialogListener


En la función OKDialog que acabamos de crear, implementamos lo siguiente:

  public void OKDialog(DialogEvent dialogEvent) { 
    Outcome outcome = dialogEvent.getOutcome();
            if (outcome == Outcome.ok){
              executeAction("Commit");}
          else if (outcome == Outcome.no){
               executeAction("Rollback");}}
¿Quieres compartir esta publicación?

¿Cómo obtener la fila actual (currentRow) de una tabla en Oracle ADF?


Este tutorial fue realizado en jDeveloper 11.1.1.7.0 y su objetivo es obtener la fila actual de una tabla al oprimir un botón.

Por ejemplo tenemos la siguiente tabla, en la cual deseamos obtener el valor de "NumDocumento"  de la fila actual cuando se oprima el botón "Ver".



Seleccionamos el botón "Ver", nos dirigimos hacia Source y veremos sombreado las propiedades del botón en la página o fragmento. Dentro de el código de este botón agregamos la siguiente línea:

 <f:attribute name="rowID" value="#{row.NumDocumento}"/> 


De lo anterior se indica que se creó un atributo "rowID" que nos dará el valor de "NumDocumento" de la fila actual.

Finalmente creamos una evento en el ActionListener del botón "Ver" y en el método obtenemos el valor de la fila que deseamos de la siguiente manera:

   public void obtenerFilaActual(ActionEvent actionEvent) {
    Object ob = actionEvent.getComponent().getAttributes().get("rowID");
    System.out.println("ob: "+ob); }
¿Quieres compartir esta publicación?