Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado Asignar ID registro content
14-03-2017, 06:24 PM
Mensaje: #1
Asignar ID registro content
Hola,

Estoy haciendo unas pruebas siguiendo el ejemplo relación cabecera-detalles de la wiki para asignar a un elemento del content el ID de la colección padre (Pedido - Detalles).

Todo funciona correctamente hasta que en lugar de crear un nuevo elemento del content utilizando el botón "añadir" de la barra superior por defecto del content utilizo un script, llamando a la colección utilizada por el content y hago un pushvalue. En este caso, al editar el registro y volver a la colección principal se realiza el insert, en lugar de "esperar" a que se almacene la colección principal y se asigne el ID padre en el registro del content.

Este sería la colección padre:

Código XOne:
<coll name="Pedido" title="el Pedido"
sql="SELECT p.*, c.NOMBRE AS MAP_CLIENTE FROM ##PREF##Pedidos p LEFT JOIN ##PREF##clientes c ON p.IDCLIENTE=c.ID" objname="Pedidos" updateobj="Pedidos" progid="ASData.CASBasicDataObj" loadall="false" withopen="false">
    <
group name="General" id="1">    
        <
prop name="IDCLIENTE" group="1" visible="0" type="N" mapcol="Clientes" mapfld="ID"></prop>
        <
prop name="NUMERO" visible="3" group="1" type="N" fieldsize="12" size="12"></prop>
        <
prop name="FECHA" visible="3" group="1" type="D" fieldsize="12" size="12"></prop>
        <
prop name="MAP_CLIENTE" visible="3" group="1" type="T" fieldsize="12" size="12" linkedto="IDCLIENTE" linkedfield="NOMBRE"></prop>
    </
group>
    <
group name="Detalles" id="2">
        <
prop name="@DETALLES" group="2" type="Z" contents="Detalles" editmodal="true" mask="31" forceonchange="true" onchange="refresh">Detalles</prop><!-- mask="31" -->
        <
contents name="Detalles" src="DetallePedido" filter="IDPEDIDO=##ID##"></contents>
        <
prop group="2" name="engadir" type="B" postonchange="refresh" method="ExecuteNode(engadir)" captions="engadir" />
    </
group>
    <
insert>
        <
action name="link" coll="Detalles" field="IDPEDIDO" value="##ID##"></action>
    </
insert>
    <
engadir>
      <
action name="runscript">
      <
script language="VBScript">
                    
        
dim col,obj
        set col 
appdata.GetCollection("DetallePedido")
        
set obj=col.CreateObject
        col
.AddItem Empty,obj
        
        appdata
.PushValue obj
      </script>
    </action>
    </engadir>
</coll> 


Y este el content:
Código XOne:
<coll name="DetallePedido" title="Detalle pedido"
sql="SELECT d.* FROM ##PREF##Detalles d" objname="Detalles" updateobj="Detalles" progid="ASData.CASBasicDataObj" check-owner="true" dependent="true">
    <
group name="General" id="1">    
        <
prop name="IDPEDIDO" group="1" visible="1" type="N" mapcol="Pedido" mapfld="ID"></prop>
        <
prop name="IDARTICULO" group="1" visible="0" type="N" mapcol="Articulos" mapfld="ID"></prop>
        <
prop name="CANTIDAD" visible="7" group="1" type="N2" fieldsize="12" size="12">Cantidad</prop>
    </
group>
    <
create>
        <
action name="setfldval" targetfld="IDPEDIDO" sourcefld="ID"></action>
    </
create>
</
coll


A ver si me podeis comentar donde estoy fallando, gracias
Encuentra todos sus mensajes
14-03-2017, 07:33 PM
Mensaje: #2
RE: Asignar ID registro content
Hola, el problema lo tienes en el script, que has puesto esto set col = appdata.GetCollection("DetallePedido"), y debes poner esto: set col = this.contents("DetallePedido").
De esta forma, se hace referencia al objeto content que se indica en la cabecera. De la forma que lo tienes, abres una nueva referencia, pero no es la misma que la visual, por eso no se te visualizará.
Encuentra todos sus mensajes
14-03-2017, 07:56 PM
Mensaje: #3
RE: Asignar ID registro content
Vale, perfecto, la opción más obvia es la que me faltaba por probar.

Muchas gracias, tema cerrado.
Encuentra todos sus mensajes
Tema cerrado 


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