¡Hola Forastero!

Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!

In this Discussion

www.kplian.com
Para solicitar una invitación remitir un correo a info@kplian.com (Esta es una medida para evitar ataques de SPAM)

Recuperar un ID padre y enviarlo en un combo de una vista hijo

edited septiembre 2017 in Framework PXP
Buenos dias amigos.. una pregunta.. quiero mandar un id de una vista padre y enviarlo dentro de un combo de una vista hijo para filtrarlo mediante ese id... osea recuperar un id padre recuperarlo en una vista hijo y enviarlo en un combo para que solo te muestre los registros d ese id.. y no todos los datos... como puedo hacer eso?

Comentarios

  • Es una interface tipo pop up, o es usando los paneles south o easth??..

    las interface tipo ventana emergente, en el contructor llega la varible "config",   que se decarga detro de this.maestri,  en esta varialbe tiene el record que fue seleccioando en el padre con todos los datos

    Phx.vista.Cotizacion=Ext.extend(Phx.gridInterfaz,{
        tam_pag: 50,
        constructor: function(config){
       
       this.maestro = config;



    En la pantalla en que visualizas simultáneamente maestro y detalle, 

    tiene la función on reReloadPage (la tiene que sobrecargar) la variable "m" contiene
    el record del maestro seleccionado

    onReloadPage:function(m){       
            this.maestro=m;
  • Gracias por tu respuesta, es en una vista maestro detalle,
    Otra consulta, cuando intento enviar algún id de la vista padre en un ComboBox de la vista hijo mediante el this.maestro me aparece este mensaje en el firebug "this.maestro is undefined".
    dentro un ComboBox intento enviar de la siguiente manera: 
    baseParams: {par_filtro: 'man.descripcion',id_dispenser:this.maestro.id_dispenser}
    todo esto dentro un ComboBox.
    como debo recuperar el id padre mediante el this.maestro y enviarlo al ComboBox??
    gracias por tus respuestas,,
    saludos.
  • Cuando la interfaz es de tipo maestro detalle, en el detalle debes tener un metodo reload que seria algo asi:

    onReloadPage:function(m){       
    this.maestro=m;
    this.store.baseParams.id_planilla = this.maestro.id_planilla;
    this.load({params:{start:0, limit:this.tam_pag}});


    },

    Como puedes ver en la linea resaltada se recibe todo el record seleccionado en el maestro y se lo guarda en el variable this.maestro.

    Esta variable debería ser accesible en cualquier lugar de la clase que estas manejando. Si no es asi es porq talves estas manejando mal el scope en el lugar donde lo quieres utilizar.

    Si muestras mas código talves se puede ayudar mas
  • {
    config: {
    name: 'id_manguera',
    fieldLabel: 'Descripcion',
    allowBlank: false,
    emptyText: 'Elija una opción...',
    store: new Ext.data.JsonStore({
    url: '../../sis_esser/control/Manguera/listarManguera',
    id: 'id_manguera',
    root: 'datos',
    sortInfo: {
    field: 'descripcion',
    direction: 'ASC'
    },
    totalProperty: 'total',
    fields: ['id_manguera', 'descripcion', 'descripcion'],
    remoteSort: true,
    baseParams: {par_filtro: 'man.descripcion',id_dispenser:this.maestro.id_dispenser}
    }),
    valueField: 'id_manguera',
    displayField: 'descripcion',
    gdisplayField: 'descripcion',
    hiddenName: 'id_manguera',
    forceSelection: true,
    typeAhead: false,
    triggerAction: 'all',
    lazyRender: true,
    mode: 'remote',
    pageSize: 15,
    queryDelay: 1000,
    anchor: '100%',
    gwidth: 150,
    minChars: 2,
    renderer : function(value, p, record) {
    return String.format('{0}', record.data['descripcion']);
    }
    },
    es aquí que quiero recuperar el id_dispenser para poderlo filtrar.
    gracias por la ayuda.
    y el reload esta asi.
    onReloadPage:function(m){
    this.maestro=m;
    this.store.baseParams={id_estructura_venta:this.maestro.id_estructura_venta};
    //alert(this.maestro.id_dispenser);
    this.load({params:{start:0, limit:50}})
    },
    loadValoresIniciales:function()
    {
    Phx.vista.EstructuraVenta.superclass.loadValoresIniciales.call(this);
    this.getComponente('id_estructura_venta').setValue(this.maestro.id_estructura_venta);
    },
    bdel:true,
    bsave:true
  • lo que me olvide aclarar es que el error "this.maestro is undefined" me aparece en el firebug al cargar la vista en el navegador. Osea no me muestra la vista, directamente me aparece ese mensaje en el firebug cuando intento enviar this.maestro.id_dispenser en el elemento comboBox.
    gracias por su ayuda.
  • edited septiembre 2017

    como  jaime ya te menciono en su respuesta, lo tiene que hacer en la funcion  onReloadPage


    onReloadPage:function(m){
    this.maestro=m;
    this.store.baseParams={id_estructura_venta:this.maestro.id_estructura_venta};
    //alert(this.maestro.id_dispenser);

                   this.Cmp.id_manguera.store.baseParams.id_dispenser = this.maestro.id_dispenser;

    this.load({params:{start:0, limit:50}})
    },
  • muchas gracias por la ayuda. :D
  • Olvidaba algo mas que tienes que hacer es borrar la cache para que cuando cambi de variable no tengas problemas 

    onReloadPage:function(m){
    this.maestro=m;
    this.store.baseParams={id_estructura_venta:this.maestro.id_estructura_venta};
    //alert(this.maestro.id_dispenser);

                   this.Cmp.id_manguera.store.baseParams.id_dispenser = this.maestro.id_dispenser;
                    this.Cmp.id_manguera.modificado = true;

    this.load({params:{start:0, limit:50}})
    },
Sign In or Register to comment.