FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola Juampy
Creo que podrás encontrar una mejor respuesta de alguien que sepa PHP y no sea un principiante como yo, pero aun así, te voy a comentar algunas cosas que estuve probando, que me dieron resultados y que, tal vez, te puedan servir también. Por lo que decis, estás necesitando obtener un valor de una QDBGrid y a partir de ese valor, realizar una operación que arroje algún resultado. Como no aclaras lo que pretendes hacer con ese valor, decidí tomar un valor de un QDBgrid para actualizar otro QDBgrid. Creo que en base a lo que hice, tal vez, podrías adaptarlo a lo que tu necesitas. Yo trabajo con Firebird y utilicé los componentes para firebird, si trabajas con MySQL, obviamente, tendrás que utilizar las conexiones y componentes para MySQL. Entonces, puse: * una conexión a la BD * dos datasource * dos query * dos QDBgrid * 1 HiddenField * 1 Label Enlacé a la primera dbgrid, el datasource1 con una consulta a una tabla. A la segunda dbgrid lo enlacé al datasource2 enlazado a un query con consulta a lo que se podría llamar como el detalle de la primer dgbrid. En el evento onclick de javascript de la primer qdbgrid, puse el siguiente código: Código PHP:
El objetivo es obtener la clave primaria de la tabla que me permita obtener un detalle en la segunda Dbgrid. Es por eso que utilizo var value=DBGrid1.getTableModel().getValueById('ID_PERSONA',row); (Si quieres más información acerca de las DBGRIDS, fijate en este link: //demo.qooxdoo.org/current/apiviewer/#qx.ui.table.ITableModel ) Siguiendo lo que tu necesitas, paso ese valor a un Hidenfield que puse para tal fin. (En las demos de RADPHP hay un ejemplo del uso de los hidenfields.) findObj('HideField').value = value; findObj es una función que permite acceder a un objeto de php con javascript ( docwiki.embarcadero.com/RadPHP/en/RPCL_and_JavaScript ) y findObj('Label1').innerHTML = value; la uso solamente para mostrar el valor de mi clave. Para poder actualizar la segunda DBGrid, escribí la siguiente función: Código PHP:
A esa función le hago una llamada ajax con "ajaxCall" y me actualiza la segunda DBGrid. También estuve probando que si a la función "ActualizarGrilla" le hubiera declarado parametros, para llamarla tendría que usar lo siguiente: echo $this->DBGrid1->ajaxCall("ActualizarGrilla",array($sender,$param),array("DBGrid2")); Resumiendo: ¿Como pasé el valor de javascript a php? Con un hidennfield utilizando findObj("").value= ¿Cuándo obtuve el valor de mi clave primaria? En el evento onclick de javascript de la DBGRID. ¿Cuándo filtré los datos de la segunda DBGRID? En el mismo evento onclick de la DBGRID al llamar con ajaxCall a una función que definí previamente para actualizar el DBGRID2. Lo hubiera podido hacer en otra parte. Bueno, espero te sirva. Insisto, soy un principiante en PHP y en RADPHP así que es posible que alguien sugiera una mejor manera de la que yo te expongo y sería bueno que eso ocurra así aprendemos. Saludos |
#2
|
|||
|
|||
Excelente, mejor que cualquier manual.
Taqtaq,
Amigo mio, esta realmente excelente tu presentación, clara, precisa y didactica. Yo tengo una QDBGrid en la cual se despliega datos de los pagos realizados por los clientes. Si ellos en algun momento pagaron con cheques en la grilla aparece la información: QDBGrid1 Cuenta Corriente: Código:
Cuenta Descripción Fecha Efectivo Cheque 752900 Contrato anual 01/03/2011 120.000 0 457801 Compra articulo 13/12/2010 5.000 0 378102 Contrato anual 01/03/2010 120.000 120.000
La columna Cheque se encuentra en 0, osea que el pago fue efectivo y el dinero entro a la caja. Al pinchar la cuenta 378102, la QDBGrid2 Cheques, debiese mostrar todos los datos relacionados a los cheques emitidos para pagar el valor total del efectivo: QDBGrid2 Cheques: Código:
Cuenta Cheque Fecha pago Valor 378102 1234567 01/05/2010 40.000 378102 1234566 01/04/2010 40.000 378102 1234565 01/03/2010 40.000 Pero ahora luego de tu clase especifica realizare la adaptación y te cuento como me va. Gracias amigo y estamos en contacto. |
#3
|
|||
|
|||
Genial funciono sin mayores problemas.
Estimado taqtaq,
La receta para actualizar la qgrilla de resultado quedo impecable, fue cosa de adaptarlo y resolvio enseguida, lo unico que deja el ultimo resultado en caso de que la qry sea igual a cero coincidecias pero es cosa de afinarlo creo. Muchisimas gracias estimado por su gran profesionalismo y su desinteres por ayudarme. Última edición por juanpy fecha: 09-05-2012 a las 19:12:19. Razón: semantica |
#4
|
|||
|
|||
No muestra todas las lineas
Estimado taqtaq,
Sabes pense que lo podria resolver pero no me muestra todas las lineas en la QDBGrid2, es mas, para algunos casos muestra todo pero para otros no, osea, que por ejemplo para la empresa con cod_empresa=2 (cod_empresa, integer, largo 3, QDBGrid1) no muestra ningun funcionario (cod_empresa, interger, largo 3, QDBGrid2), pero para la empresa cond cod_empresa=504 los muestra todos. Estube viendo si es un problema de tipo de valor (integer, varchar, text, etc.) con el cual realizo el filtro (WHERE .$this->HiddenField1->value, pero aun no puedo descubrir el dato. Digame; usted se a topado con esto?, que cree que pueda ser?, sera problemas con las propiedades de la QDBGrid2?. Gracias estimados. |
#5
|
|||
|
|||
Juampy, no será problema de datos? es decir, tal vez para la empresa con cod_empresa=2 no hay funcionarios o la tabla que
contiene los funcionarios no está bien cargada, porque debería funcionar. Dame algún otro dato a ver si podemos solucionarlos. Saludos |
#6
|
|||
|
|||
Mas datos
Hola Taqtaq,
Active el depurador de ajax y en el si muestra los resultados de todas las empresas lo unico que no los vuelca a la QDBGrid, incluso probe con un ejemplo MasterDetail pero este es peor actualiza la qdbgrilla de las empresa y no la de los funcionarios. Estoy probando los comando ajax que me enviaste, Refresh(), Open(), Close() tal vez por ahi este el problema. Si tu quieres te me indicas como te hago llegar un set de registros y como los dispongos para que tu veas que te resuelve a ti. Gracias por todo ahora eres tu el unico soporte que tengo. |
#7
|
|||
|
|||
Juampy has probado tanto que una prueba más no creo que te moleste demasiado.
En este enlace: http ://rpcl.svn.sourceforge.net/viewvc/rpcl/trunk/oc/ hay una serie de componentes gratuitos para RADPHP. Ahi podes encontrar la OpenGrid que es una DBGrid basada en JQuery, a diferencia de la QDBGrid que es Qoodoo. Estuve viendo en el foro de embarcadero y parece que alguien más tiene un problema similar con la DBGrid, es decir, no le muestra todos los registros. Si tenés tiempo, bajate la Opengrid, instalala y probá a ver qué pasa. Si es un problema del QDBGrid, tal vez, la OpenGrid te lo pueda resolver y, si no, seguiremos intentando. Saludos |
|
|
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 |
|