Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Duda content editable
30-03-2017, 03:49 PM
Mensaje: #1
Duda content editable
Hola, tengo un content editable que cambia de color el estado en el que esta. Hay dos botones con los que podemos cambiar el estado:
A) Confirmar -> marca la linea como confirmada y la pone con el color verde
B) Editar -> abre la linea del content en modo edición para indicar una incidencia y al cerrar la ventana de edición debe poner el color amarillo.

He estando intentando hacerlo con refreshContentSelectedRow o con refreshContentRow, pero en ninguno de los dos casos he conseguido que se refresque el contenido. Al parecer estos métodos se usan en la colección padre para actualizar una linea del content, sin embargo, lo que necesitaría es actualizar la linea del content que "edita" el usuario.

¿Hay algún método para esto? Es decir, para refrescar una linea de un content editable desde la propia linea?

Gracias de antemano!

Un saludo!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
30-03-2017, 03:56 PM
Mensaje: #2
RE: Duda content editable
Hola, lo puedes realizar ui.refreshContentSelectedRow "nombre_del_content", y eso te refresca esa linea en concreto. Fijate de no hacer otros refrescos ni de volver a cargar el content.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
30-03-2017, 04:09 PM (Este mensaje fue modificado por última vez en: 30-03-2017 04:10 PM por jesus_gesdemo.)
Mensaje: #3
RE: Duda content editable
Hola Ruben, me da un error de null en ui.refreshContentSelectedRow("NuevoAlmacenPedidoContent"). Esto lo he puesto en el botón del content.

Más o menos esta es la estructura:

Colección padre:
Código XOne:
<coll name="NuevoAlmacenPedido" title="NuevoAlmacenPedido" notab="true" pull-to-refresh="true" sql=" XXXX " objname="PEDIDO_ALMACEN_CAB" updateobj="PEDIDO_ALMACEN_CAB" progid="ASData.CASBasicDataObj"  loadall="false" withopen="false">
      <
prop name="MAP_LINEAS_PEDIDO_ALMACEN_CNT" visible="1" group="2" type="Z" frame="FramePrincipalP2" forceonchange="true" mask="0" edit-inrow="true" contents="NuevoAlmacenPedidoContent" tmargin="5p" onchange="refresh255" height="1650p" disableedit="MKM_ESTADO=1" />
      <
contents name="NuevoAlmacenPedidoContent" src="NuevoAlmacenPedidoContent" filter="ifnull(pl.MK_BAJA,0)=0 AND pl.IDPEDIDO_ALMACEN_CAB=##ID##" sort="MAP_NUMERO_ALMACEN,MAP_NUMERO_PASILLO,MAP_NUMERO_TRAMO,MAP_CODIGO_MANO, MAP_NUMERO_ALTURA" />
    </
coll

Contents:
Código XOne:
<coll name="NuevoAlmacenPedidoContent" title="NuevoAlmacenPedidoContent" show-toolbar="false" nomenmask="16" sql="
        SELECT pl.*,  ifnull(pc.MKM_ESTADO,0) AS MAP_MKM_ESTADO,
        ifnull(a.CODIGO,'[Cod.Art]')||' - '||ifnull(a.DESCRIPCION,'[Cod.Art]') AS MAP_ARTICULO,
        ifnull(a.CODIGO,'[Cod.Art]')||' - '||ifnull(a.DESCRIPCION,'[Cod.Art]') AS MAP_ARTICULO_NOMBRE,
        ' UP: '||ifnull(round(pl.CANTIDAD_PEDIDA,2),'0') AS MAP_CANTIDAD_PEDIDA, ifnull(a.CODIGOBARRAS,'Sin referencia') AS MAP_CODIGOBARRAS,
        ' STK: ' ||ifnull(round(a.STOCK,2),'0') AS MAP_STOCK, ' US: ' ||ifnull(round(pl.CANTIDAD_SERVIDA,2),'0') AS MAP_CANTIDAD_SERVIDA,
        ' UB: '|| ifnull(pl.NUMERO_ALMACEN,'')||' '||ifnull(pl.NUMERO_PASILLO,'')||' '||ifnull(pl.NUMERO_TRAMO,'')||' '||ifnull(pl.CODIGO_MANO,'')||' '||ifnull(pl.NUMERO_ALTURA,'') AS MAP_UBICACION,
        CAST(pl.NUMERO_ALMACEN AS INTEGER) AS MAP_NUMERO_ALMACEN,  CAST(pl.NUMERO_PASILLO AS INTEGER) AS MAP_NUMERO_PASILLO,  
        CAST(pl.NUMERO_TRAMO AS INTEGER) AS MAP_NUMERO_TRAMO, ifnull(pl.CODIGO_MANO,'') AS MAP_CODIGO_MANO, CAST(pl.NUMERO_ALTURA AS INTEGER) AS MAP_NUMERO_ALTURA,
        CASE WHEN LENGTH(ifnull(pl.INCIDENCIA,''))>0 AND ifnull(pl.CANTIDAD_SERVIDA,0)=0 THEN '#F78181'
             WHEN ifnull(pl.CANTIDAD_SERVIDA,0)=0 THEN '#C6C4C4'
             WHEN ifnull(pl.CANTIDAD_PEDIDA,0)=ifnull(pl.CANTIDAD_SERVIDA,0) THEN '#B9F6A9'
             WHEN ifnull(pl.CANTIDAD_SERVIDA,0)>0 THEN '#E5E579'
        ELSE '#FF0000' END AS MAP_COLOR
        
           FROM ##PREF##PEDIDO_ALMACEN_LIN pl
         INNER JOIN ##PREF##PEDIDO_ALMACEN_CAB pc ON pl.IDPEDIDO_ALMACEN_CAB=pc.ID
         LEFT OUTER JOIN ##PREF##ARTICULO a ON pl.IDARTICULO=a.ID
         LEFT OUTER JOIN ##PREF##TIPO_IVA ti ON a.IDTIPO_IVA=ti.ID
        " 
objname="PEDIDO_ALMACEN_LIN" updateobj="PEDIDO_ALMACEN_LIN" check-owner="false" dependent="false" progid="ASData.CASBasicDataObj" autorefresh="true" notab="true" editmask="2">
      <
prop name="MAP_COLOR" group="1" title="colorview" colorview="true" type="T" visible="0" onchange="refresh" />
      
      <
frame name="FrameCnt_2" frame="FrameCnt" width="15%" newline="false" align="center" />
      <
prop name="P1CARGAR_UD_PEDIDA" group="1" type="B" visible="6" class="BotonPequenyo" title=" " img="btConfirmarPed.png" onchange="" method="ExecuteNode(P1CargarUdPedida)" frame="FrameCnt_2" disablevisible="MAP_MKM_ESTADO=1" />
      <
prop name="P1EDITAR" group="1" type="B" visible="6" class="BotonPequenyo" title=" " img="btEditarLineaPed.png" onchange="" method="ExecuteNode(P1Editar)" frame="FrameCnt_2" disablevisible="MAP_MKM_ESTADO=1" />
      <
P1CargarUdPedida refresh="false" refresh-prop="MAP_COLOR,MAP_CANTIDAD_SERVIDA,CANTIDAD_SERVIDA">
        <
action name="runscript">
          <
script language="javascript">
            
NuevoAlmacenPedidoContentP1CargarUdPedida();
            
ui.refreshContentSelectedRow("NuevoAlmacenPedidoContent");   --> ERROR !!!!!!!!!!!!!!!!!
          
</script>
        </action>
      </P1CargarUdPedida>
      <P1Editar refresh="false" refresh-prop="MAP_COLOR,MAP_CANTIDAD_SERVIDA,CANTIDAD_SERVIDA">
        <action name="runscript">
          <script language="javascript">
                appData.pushValue (self);
          </script>
        </action>
      </P1Editar>
      <!-- EDICION -->
      <frame name="idBotonesCabeceraP1" class="frameBotonesSup" />
      <frame name="idBotonesCabeceraP1Izq" frame="idBotonesCabeceraP1" width="80%" lmargin="0" align="left" />
      <frame name="idBotonesCabeceraP1Dcha" frame="idBotonesCabeceraP1" width="20%" lmargin="0" align="right" newline="false" />
      <prop name="P1GUARDAR" group="1" type="B" visible="1" title=" " img="btAceptar.png" method="ExecuteNode(P1Guardar)" postonchange="ExecuteNode(P1Refrescar)" frame="idBotonesCabeceraP1Izq" class="Boton" />
      <P1Guardar>
        <action name="runscript">
          <script language="javascript">
            NuevoAlmacenPedidoContentP1Guardar(); --> Tambien hay que actualizar el color en el content !!!!!!!!!
          </script>
        </action>
      </P1Guardar>
      <frame name="datosCabeceraP1" class="framePrincipal" scroll="true" />
      <prop name="MAP_LT_INCIDENCIA" type="TL" visible="1" group="1" title="Codigo estado" class="literal" frame="datosCabeceraP1" />
      <prop name="MAP_IDTIPO" visible="0" group="1" type="N" mapcol-values="03,05" />
      <prop name="INCIDENCIA" group="1" type="T" visible="1" title="Codigo estado" frame="datosCabeceraP1" linkedto="MAP_IDTIPO" linkedfield="DATA" showinline="true" />
    </coll> 


Un saludo!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
30-03-2017, 05:20 PM
Mensaje: #4
RE: Duda content editable
Hola,

Pasale el objeto padre en una variable y refresca con GETVIEW. Por ejemplo, en el padre te guardas el objeto al entrar en MENUPRINCIPAL:

Código:
appData.getCurrentEnterprise().setVariables("MENUPRINCIPAL",self);

Luego en el content haces el ui.refeshSelectedRow pero con el getView y el objeto padre:

Código:
ui.getView(appData.getCurrentEnterprise().getVariables("MENUPRINCIPAL")).refreshContentSelectedRow("MensajesRecibidos");

Saludos
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
31-03-2017, 07:38 AM (Este mensaje fue modificado por última vez en: 31-03-2017 07:39 AM por jesus_gesdemo.)
Mensaje: #5
RE: Duda content editable
Hola Rubén,
en el before-edit de la coleccion padre [NuevoAlmacenPedido] he puesto:
appData.getCurrentEnterprise().setVariables("VENTANA_PEDIDO_ALMACEN",self);

Luego, en el boton del content [NuevoAlmacenPedidoContent], he puesto:
ui.getView(appData.getCurrentEnterprise().getVariables("VENTANA_PEDIDO_ALMACEN")).refreshContentSelectedRow("NuevoAlmacenPedidoContent");

Pero me salta el error de la imagen...

Un saludo!


Archivo(s) adjuntos Miniatura(s)
   
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
31-03-2017, 07:51 AM
Mensaje: #6
RE: Duda content editable
Hola, la funcion refreshContentSelectedRow, solo esta disponible en este momento para el ui. Es decir, tu solo puedes ejecutarlo asi: ui.refreshContentSelectedRow "nombrecontent"

En ese sentido, lo que puedes hacer es en el selecteditem del content, poner que se ejecute un executenode del objeto cabecera y entonces realizar esa accion, algo asi:

appData.getCurrentEnterprise().getVariables("VENTANA_PEDIDO_ALMACEN").executenode("mi-accion");

En mi-accion ejecutas el ui.refreshContentSelectedRow "nombrecontent"
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
04-04-2017, 07:34 AM
Mensaje: #7
RE: Duda content editable
Hola Rubén,
para el boton que actualiza la cantidad funciona correctamente (aunque no cambia de color). Pero cuando hay que marcar una incidencia, que lo que se hace es el pushValue(self) se recarga toda la ventana, por lo que el content se vuelve a subir a la parte superior...
Hay alguna forma de que el pushValue no refresque la ventana?
Un saludo!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS