Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2012
taqtaq taqtaq is offline
Miembro
 
Registrado: jun 2006
Posts: 22
Poder: 0
taqtaq Va por buen camino
Juampy, lo único que tenes que cambiar es la forma de capturar el valor de la celda que vas a utilizar para filtrar el detalle

El siguiente código te va a servir para poder obtener el valor de una celda.

La tabla con la que yo trabajé, contiene una columna "NOMBRE", en tu caso deberás poner el nombre del campo de la tabla que utilizas

Código PHP:
     function OpenGrid1JSBeforeEditCell($sender, $params)
    {
        ?>
        //begin js
          var fila =jQuery('#OpenGrid1').getGridParam('selrow'); // obtengo el valor de la fila 
          var registro = jQuery("#OpenGrid1").getRowData(fila); // obtengo el registro completo (la fila completa)
          findObj('Label1').innerHTML = registro.NOMBRE; //eso es nada más para verlo en la pantalla
          findObj('HiddenField1').value = registro.NOMBRE; (pongo en el hiddenfield el valor de la columna "NOMBRE")
        //end
        <?php
    
}
Lo demás es igual, es decir, pasas el valor al Hiddenfield y haces la llamada ajax para actualizar el detalle.

Creo que con la OpenGrid tenes la posibilidad de enlazar dos grillas a través de las propiedades para que realicen por sí mismas el filtro maestro detalle. Todavía no sé cómo se hace pero si lo investigas y te resulta, puedes compartirlo.

Otro dato interesante respecto de la OpenGrid, es que puedes cambiar la apariencia a través de la propiedad "theme". Prueba con los siguientes valores: coffee, green, sand

Si necesitas más información, visita el siguiente enlace:
http: //www.trirand.com/jqgridwiki/doku.php?id=wiki:jqgriddocs

También en http: //stackoverflow.com hay muchos temas relacionados con la jqgrid.

No te olvides que la OpenGrid es la JQGrid de JQuery, por lo que si en google buscas jqgrid ... (y lo que necesites) vas a encontrar mucha información

Por último, lo que te pasó con la QDBgrid y la OpenGrid, me refiero a que esta última desapareció, a mí me pasó algo similar al utilizar una DBGrid y una QDBGrid por lo que me di cuenta que hay que utilizar un solo tipo de DBGRid.

Espero te sirva

Saludos
Responder Con Cita
  #2  
Antiguo 22-05-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Question Sobre OpenGrid

Taqtaq,

Existe un boton "Reload" que al pincharlo, refresca la OpenGrid con la nueva qry, tu sabes como puedo "disparar" la función desde el codigo?.

Probe algo como:
Código PHP:
$this->OpenGrid2->trigger('ReloadGrid'
Que que deberia actualizar la OpenGrid2 pero no funciona.

Gracias.
Responder Con Cita
  #3  
Antiguo 23-05-2012
taqtaq taqtaq is offline
Miembro
 
Registrado: jun 2006
Posts: 22
Poder: 0
taqtaq Va por buen camino
Te sirvió el código javascript que te escribí? Pudiste actualizar la grilla de esa forma o necesitas disparar el "reloadgrid" porque no te sirvió el código?
Responder Con Cita
  #4  
Antiguo 23-05-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Si todo el codigo esta excelente!

Todo muy bien, lo unico que necesito ahora es "disparar" alguna función que me actualize automaticamente la OpenGrid2 (Empleados), osea que cuando pincho una linea de la OpenGrid1 (Empresas), automaticamente se muestren los "Empleados" de la "Empresa" en la OpenGrid2.

Es como una MasterDetail, las Empresas en OpenGrid1 y el detalle de los Empleados en OpenGrid2 a medida que seleccionas, pero aun no encuentro como actualizar la OpenGrid2 en tiempo de ejecucion.

Gracias.
Responder Con Cita
  #5  
Antiguo 23-05-2012
taqtaq taqtaq is offline
Miembro
 
Registrado: jun 2006
Posts: 22
Poder: 0
taqtaq Va por buen camino
Si bien tengo entendido que se pueden enlazar Opengrids como maestro detalle (yo no lo he hecho aun) supongo que a eso lo puedes hacer como ya lo hiciste con la QDBgrid, aunque no lo he probado tampoco.

En el evento javascript BeforeEditCell de la Opengrid maestro, tienes que poner lo siguiente:

Código PHP:
function OpenGridMaetroJSBeforeEditCell($sender, $params)
    {
        ?>
        //begin js
          var fila =jQuery('#OpenGrid1').getGridParam('selrow'); // obtengo el valor de la fila 
          var registro = jQuery("#OpenGrid1").getRowData(fila); // obtengo el registro completo (la fila completa)
          findObj('HiddenField1').value = registro.ID_PERSONA; (pongo en  el hiddenfield el valor de la columna "ID_PERSONA" que es la clave)
        //end
        <?php
         
echo $this->OpenGridMaestro->ajaxCall("ActualizarGrilla",array(),array("OpenGridDetalle"));
    }
No te olvides que en "ActualizarGrilla" tienes que poner la función que te actualiza el detalle

Algo así:
Código PHP:
function ActualizarGrilla()
    {
      
$sql "SELECT * FROM PERSONAS WHERE ID_PERSONA = ".$this->HideField->Value;
      
$this->Query2->close();
      
$this->Query2->SQL=$sql;

      
$this->Query2->Prepare();
      
$this->Query2->close();
      
$this->Query2->open(); //// el Query2 es el dataset enlazado a la OpenGridDetalle
    

De lo que no estoy seguro es si puedes usar el ajaxcall en la OpenGrid y ahora no lo puedo probar.

Pruebalo y me avisas.

Saludos
Responder Con Cita
  #6  
Antiguo 23-05-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Detalle del problema.

Todo el algoritmo informado en el ultimo post ya fue aplicado, pero falta algo.

Si yo actualizo con el procedimiento:

Código PHP:
function ActualizarGrilla()
    {
      
$sql "SELECT * FROM PERSONAS WHERE ID_PERSONA = ".$this->HideField->Value;
      
$this->Query2->close();
      
$this->Query2->SQL=$sql;

      
$this->Query2->Prepare();
      
$this->Query2->close();
      
$this->Query2->open); //// el Query2 es el dataset enlazado a la OpenGridDetalle
    

La OpenGrid del detalle desaparece de la pantalla.

El procedimiento informado es trasparente con PHP no asi con Axaj.

Ahora, si yo recargo la pantalla (F5 o Ctrl+F5), la OpenGrid del detalle vuelve aparece con los datos filtrados segun la Empresa seleccionada como debe ser.

Lo que necesitamos ahora es encontrar una funcion propia de la OpenGrid que actualize los datos de la OepnGrid, osea algo como:

Código PHP:
function ActualizarGrilla()
    {
      
$sql "SELECT * FROM PERSONAS WHERE ID_PERSONA = ".$this->HideField->Value;
      
$this->Query2->close();
      
$this->Query2->SQL=$sql;

      
$this->Query2->Prepare();
      
$this->Query2->close();
      
$this->Query2->open); //// el Query2 es el dataset enlazado a la OpenGridDetalle
    
}  
 
$this->OpenGrid2->trigger('ReloadGrid');   //No funciona en RADPHP
$this->OpenGrid2->Refresh;                   //No aplica 
Eso es lo que se necesita, una funcion que actualize y/o refresque los datos de la OpenGrig2 en tiempo de ejecucion.

Muchas gracias estimado.
Responder Con Cita
  #7  
Antiguo 23-05-2012
juanpy juanpy is offline
Miembro
NULL
 
Registrado: feb 2012
Ubicación: Santiago de Chile
Posts: 64
Poder: 13
juanpy Va por buen camino
Exclamation Un ejemplo!!

Taqtaq,

Mira el ejemplo en:

El ejemplo es lo mismo que yo quiero mostrar.

Muchas gracias.
Responder Con Cita
  #8  
Antiguo 27-12-2012
Avatar de ramflores
ramflores ramflores is offline
Miembro
 
Registrado: may 2005
Ubicación: Monterrey, Mex.
Posts: 87
Poder: 20
ramflores Va por buen camino
QDatagrid

Hola foristas.

tengo 2 dudas

1. Estoy indagando en el mundo de RadPHP, estoy tratando de hacer un pequeño ejemplo sencillo ABC, Usando plantilla con SmartyTemplate, trato de poner el evento onclick o onrowchanged, pero por alguna razon no se almacena el valor en un campo hiddenfield.

Buscando por ahi, me tope con un componente llamado OpenGrid, se ve muy bien, pero al quererlo integrar con la plantilla no lo despliega, existe alguna restriccion de componentes para usarce con las Plantillas SmartyTemplate??

Gracias de antemano
__________________
Gracias de antemano
Saludos ........
---------------------------------
Ramiro Flores
Responder Con Cita
  #9  
Antiguo 22-02-2013
LEONARDO19712 LEONARDO19712 is offline
Miembro
 
Registrado: jul 2008
Posts: 12
Poder: 0
LEONARDO19712 Va por buen camino
Hola, no se si aun te sirva pero yo lo manejaría de la siguiente manera, como lo que quieres es que aprtir de un registro de la grilla el haga una consulta y muestre el resultado en otra grilla es lo que entiendo, pues simplemente en el formulario de la grilla principal capturas los datos con javascript tal como te lo explicaron y los guardas ahi mismo en campos edit, desde ese momento ya puedes trabajar con php pues php tomara los valores puestos en esos campos. por medio de un boton mostrar resultados puedes abrir una ventana emergente y cargar la informacion ahi. es una opcion que no afecta la grilla anterior o principal, otra puede ser ajax
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas Retorno de Valor SP MSSQL subzero PHP 1 08-04-2009 23:56:17
El retorno... jcerro Varios 7 01-01-2007 13:44:07
Distinto valor de retorno en storedprocedure desde delfi y desde consola sql manolop Firebird e Interbase 4 20-07-2005 17:24:52
retorno de carro empty Varios 3 14-05-2004 10:21:39
Cálculo de valor presente y tasa de retorno (NPV, IRR) power_vegeta Varios 1 11-07-2003 08:16:57


La franja horaria es GMT +2. Ahora son las 21:15:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi