Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como capturar el click en un componete TcxGrid Agrupado (https://www.clubdelphi.com/foros/showthread.php?t=76626)

cmfab 14-11-2011 14:38:35

como capturar el click en un componete TcxGrid Agrupado
 
Hola a todos, preferentemente esta pregunta es para quellos que usan los componentes DevExpress. Hace algun tiempo puse una pregunta en este foro similar, pero por necesidad trato de volver a explicarme, pues no consigo informacion de como hacerlo. uilizo el componente TcxGrid para representar los datos de una tabla que necesito agrupar por uno de sus campos. para ello creo una vista usando el componente TcxGridDBTableView y asignabdo los campos a mostrar y agrupando por un campo "x". lo que necesito es capturar cuando se hace click derecho sobre el campo que esta agrupado que es un evento diferente al que se desencadena cuando se hace click derecho sobre una celda del componente TcxGridDBTableView (en este caso las celdas se representan por los detalles debajo del campo agrupado). si uso la propiedad popupmenu de dicho componente entonces no me permite desplegar el menupopup cuando se hace click derecho sobre una celda del detalle, ya que dicha pripiedad (menupopup) se aplica a toda la grilla. osea resumiento necesito que un menu popup se desplieque con ciertas acciones cuando se hace click derecho sobre la linea donde esta el campo por el cual se agrupa y que otro menu popup con diferentes acciones se despliegue al hacer click derecho sobre una celda de los detalles del grupo. espero haberme explicado correctamente. gracias a todos por sus atenciones

ecfisa 14-11-2011 17:47:39

Cita:

resumiento necesito que un menu popup se desplieque con ciertas acciones cuando se hace click derecho sobre la linea donde esta el campo por el cual se agrupa y que otro menu popup con diferentes acciones se despliegue al hacer click derecho sobre una celda de los detalles del grupo. espero haberme explicado correctamente.
Hola cmfab.

Voy a hacerte una sugerencia que funciona para un TDBGrid.
Basándome en el supuesto que la primera columna es el campo por que se agrupa, asigna a PopupMenu1 al Grid y luego este código al evento OnColEnter del mismo.
Código Delphi [-]
procedure TForm1.DBGridColEnter(Sender: TObject);
begin
  with Sender as TDBGrid do
    if SelectedField.FieldName = 'NOMBRE_DE_TU_CAMPO_AGRUPADO' then
      PopupMenu:= PopupMenu1
    else
      PopupMenu:= PopupMenu2;
end;
Como no utilizo esos componentes, no sé si será aplicable, pero al menos espero que te aporte alguna idea.

Un saludo.

cmfab 14-11-2011 22:48:41

Gracias lo probaré a ver si resulta y despues os comento

Neeruu 18-11-2011 14:31:42

Hola.....

Podrías decir que es lo que quieres hacer.... yo utilizo devexpress.... capas si describes lo que necesitas puedo ayudarte....


Saluda Atte Neeruu!!!:)

cmfab 21-11-2011 16:03:00

Gracias y disculpen porque me ausente unos dias. el tema es que tengo la grilla agrupada por un campo, por ejemplo por el numero de la venta. entonces debajo de cada numero de la venta estan los detalles, lo que necesito es que cuando se haga click derecho en el numero de la venta, aparezca un menu popup con variantes diferentes a las que deben salir cuando se hace click sobre los detalles. sucede que uso el evento oncellclick para desplegar el popup que necesito que emerja cuando se hace click derecho en el detalle, pero como el grupo (numero de venta) se encuenta en una fila que no se considera como una celda, pues alli dicho evento no se desencadena, solo me funciona si le asigno a la grilla un menupopup en su propiedad "PopupMenu", pero al hacer esto entonces prevalece ese menu para todo el detalle tambien. espero que se me haya entendido y gracias una vez mas

ecfisa 21-11-2011 17:13:44

Hola.

Aunque no conozco el TcxGrid, creo entender que en una fila aparece el título, como por ejemplo: NRO DE VENTA o DETALLES y debajo el contenido del campo.
De ser así, ¿ Hay algun patrón para guiarse como por ejemplo que los títulos estén en fila par o impar ?

Un saludo.

cmfab 21-11-2011 18:57:53

Gracias, así mismo es como vos lo entendió, pero no tengo idea del patron que me comentas. un saludo

ecfisa 21-11-2011 19:07:14

Hola cmfab.

Me refiero si las filas donde están los titulos (los que no se consideran como celda) tienen alguna propiedad u órden por los cuales se los pueda identificar.

Sería buenísimo si pudieras graficar como es la disposición, nada muy elaborado, sólo para hacernos una idea. (mejor aún una imágen de la grilla)

Saludos.

cmfab 21-11-2011 20:53:01

1 Archivos Adjunto(s)
Aqui va la imagen de una parte de la grilla. saludos y gracias

ecfisa 21-11-2011 21:24:13

Hola cmfab.

Donde dice "Mov. No. :442(SUM=0.00)", es parte del título de la grilla o aparece varias veces como una línea más ?

Perdón por tanta pregunta, pero no conozco el componente y quiero ver como podríamos diferenciarla de una celda.

Saludos.

cmfab 21-11-2011 21:36:17

todo bien no hay problemas, ese titulo aparece varias veces, es el encabezado del grupo y debajo estan los detalles, solo que puse un grupo pero hay varios mas arriba o mas debajo. gracias por el interes

Neeruu 22-11-2011 13:26:50

Hola cmfab!!!

Tengo algo que puede llegar a servirte...

No se con que versión de DevExpress trabajas... pero debes agregar un cxGridPopupMenu.

A este Componente se le asocia cxGrid, y luego en la propiedad PopupMenues creas un TcxPopupMenuInfo, donde te permite asignar la GridView, el PopuMenu y activar donde quieres que se muestre....

Fíjate si te sirve sino veremos que podemos hacer por código.

Saluda Atte Neeruu!!!:)

cmfab 22-11-2011 13:51:22

Gracias muchas, lo pruebo enseguida y les comento

cmfab 22-11-2011 13:57:24

Pero segun estoy revisando veo que se le asigna el popupmenu a todo el gridView y los datos de las filas y los detalles estan en el mismo gridview. como podria cambiar de popupmenu la hacer el click en la fila del grupo o en las celdas de los detalles ???

cmfab 22-11-2011 14:19:07

Hola de nuevo, ya hay un avance. les explico. puse en el form el componente cxGridPopupMenu le asigno el cxgrid, despues en la propiedad popupmenus agrego un cxPopupmenusinfo a este ultimi le agrego el Gridview, pero tambien tiene una propiedad popupmenu. alli le asigno el menu popup que quiero que se despliegue pero lo que hace es que cuando hago click derecho sobre la fila con el titulo del grupo me sale un menu popup con las opciones:

Sort by group value;
Sort by group summary;
Sum

no logro que en vez de estas opciones salgan las que tengo en el menu popup que le asigné al cxpopupmenuinfo.

Gracias

Neeruu 22-11-2011 14:36:18

Porque en las opciones que tiene el TcxPopupMenuInfo, tienes que marcar donde quieres que aparezca el popup que asignaste....

Por ejemplo marca que aparezca en el GroupByBox y cuando hagas clic con el botón derecho del mouse te aparecerá el popup que asignaste!!!!


Saluda Atte Neeruu!!!:)

cmfab 22-11-2011 14:44:28

Ya lo hice así mismo y me siguen saliendo esas opciones por defecto en vez de los items del popup menu que le asigne al tcxpoppupmenuinfo. será que hay que cambiar alguna otra cosa en las propiedades de esos controles. gracias y disculpen las molestias por el gran debate de este post

cmfab 22-11-2011 14:48:15

Tendre que analizar cuales de las opciones es la que necesito activar del comp. tcxmenupopupinfo, pues el tema es que el Groupbybox lo tengo oculto, lo puse voisible y funciono correctamente. pero necesito que este oculto. os comento enseguida gracias

Neeruu 22-11-2011 14:53:33

Prueba si te sirve algunas de las opciones, sino veremos como podemos hacerlo por código.....


Que versión de DevExpress usas???

Saludo Atte Neeruu!!!:)

cmfab 22-11-2011 15:17:29

cientos de millones de gracias Neeruu, solucionado el problema, tuve que activar en mi caso las opciones: qvhtRecord y gvhtGroupSummary. reitero los agradecimientos. uso las DevExpress 5

un saludo


La franja horaria es GMT +2. Ahora son las 23:36:33.

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