Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ramificaciones DBGRID o en que se podra hacer? (https://www.clubdelphi.com/foros/showthread.php?t=23544)

sakuragi 20-07-2005 17:45:08

ramificaciones DBGRID o en que se podra hacer?
 
hola que tal

quisiera saver si se puede haser en un DBgrid ramificaciones asi como "windows explorer"

[code]
+ botes 300
- cajas 567
--- 345 - 23 febrero 2005
--- 30 - 30 marzo 2005
+ sacos 405
[code]

algo asi

si en el DBGrid muestro el total de cajas la darle clic o doble clic se abra abajo una ramificacion que me muestre cuando de agrearon mas cajas a la bodeja y la fecha que eso fue?

sera eso posible?

o algo paresido o estoy errado con el dbgrid no se puede?

espero explicado bien

de hante mano gracias

saludos

Paoti 20-07-2005 20:09:42

si se puede hacer sakuragi...

pero no con este dbgrid el standar tienes que usar uno de pago.


que si cuestan bastante pero valen la pena, si estas en una empresa, seria recomedable que los compraran, son muy versatiles...


http://www.devexpress.com/Products/VCL/ExQuantumGrid/


saludos

sakuragi 20-07-2005 23:30:17

bueno gracias

=S

me supongo que habra una forma de haserlo pero ha de ser mucha programacion


saludos

sakuragi 20-07-2005 23:42:36

disculpa de nuevo

lo has usado?

no sabes de un manual o algo para ver como funciona baje el demo para ver si me sirve, para posterior mente si me funciona adquirirlo


pero no se como funciona

sus propiedades

saludos


o espesificamente lo que quiero haser

saludos

Paoti 21-07-2005 00:02:40

mmmh no se si te puedas bajar un trial de la pagina....



eviarte el manual no podria porque tengo el instalador y viene completo...



una solucion posible, aunque no es como tu lo quieres.. es tener dos dbgrids, en una relacion maestro detalle.... y ordenarlos de forma bonita




o llenar los datos (botes, cjas) un un tree view y porgramar que al selccionar uno, es una rejilla llenar los datos, o incluso esos datos ( entrada) agregarlas por codigo como un item...

Neftali [Germán.Estévez] 21-07-2005 09:56:53

Cita:

Empezado por sakuragi
...lo has usado? no sabes de un manual o algo para ver como funciona baje el demo para ver si me sirve, para posterior mente si me funciona adquirirlo

Tienen una página muy buena de "Knowledge Base" con infinidad de preguntas y respuestas y muchos ejemplos:

http://www.devexpress.com/Support/KnowledgeBase/

sakuragi 21-07-2005 16:50:11

conosen algo del "virtual Treeview"??


saludos

ContraVeneno 21-07-2005 20:23:49

primero tienes que cargar todos los registros en memoria (opción egoLoadAllRecords=TRUE), definir el campo en la propiedad KeyField y luego la propiedad SHowGroupPanel a TRUE y lixto, ya puedes agrupar como se requiera.
nada más vas moviendo las columnas en la parte del panel para agrupar y ya puedes ir dando una vista así como quieres. además de ordenamr, mover, sumar, avg, , etc, etc, etc.

El detalle es, que habría que ver el rendimiento, ya que cargar miles y miles de registros en memoria puede ser un poco lento. Yo lo he probado en una LAN cargando 16000 registros y se tarda algo así como 4 segundos :o . Claro esta que habría que ver si vas a cargar esa cantidad de regitros, ya que podría haber una mejor manera :D . Pero si no son muchos registros (habría que ver cuan mucho es mucho) funciona bien.

...olvide mencionar lo del dataset y ese rollo, pero supongo que ya sabes como conecar un grid a un dataset....

sakuragi 21-07-2005 23:35:51

contraveneno

gracias

oye pero esto que me aconsejas es con un DBGrid standar?


saludos

ContraVeneno 21-07-2005 23:57:37

No, todo ese rollo es para la QuantumGrid de DevExpress, TdxDBGrid si mal no recuerdo.

Neftali [Germán.Estévez] 22-07-2005 08:57:03

Cita:

Empezado por sakuragi
conosen algo del "virtual Treeview"??

Sí. :D:D:D ¿Qué necesitas?

Cita:

Empezado por ContraVeneno
...ya que cargar miles y miles de registros en memoria puede ser un poco lento.

Estoy de acuerdo contigo, y esa es una de las grandes desventajas del QuantumGrid, que para que funcionen las agrupaciones, totales y demás se deben cargar todas las fiolas en memoria... :(

sakuragi 22-07-2005 20:32:27

gracias contra veneno

tengo problemas me marca mi delphi que no tengo TdxDBgrid <-- no found


instale el QuantumGrid 4 quise habrir unos demos para ver y me marco error de ese componete =S

y no lo hayo

no se puede haser lo mismo en el "TcxGrid" ?

saludos

ContraVeneno 22-07-2005 20:44:39

Cita:

En la ayuda de Delphi
TdxDBGrid is a data-aware object that manages the display and manipulation of data in an intuitive and straightforward manner.

Unit
dxDBGrid

te hace falta agregar la unidad mencionada.

sakuragi 23-07-2005 01:40:43

disculpen de nuevo

ya vati el delphi por todos lados y no lo hayo =S

dxDBGrid

de donde lo instalo o lo agrego?

saludos

ContraVeneno 23-07-2005 06:09:18

en tu form donde pusiste el tdxdbgrid, arriba en el código en la parte de units, agregas esa unidad de dxDBGrid, si te marca que el archivo no se encuentra (generalmente un .dcu) entonces hay que agregar el directorio donde instalaste la quantum grid a la librería de delphi... que es el mismo problema que se resuelve con este mensaje. en el que se maneja otro componete, pero es lo mismo que creo te va a suceder con la quamtum grid

Crandel 23-07-2005 06:10:52

Hola sakuragi,

perdona que me una tan tarde al hilo, pero aca te doy una idea de como resolver el problema con DBGrid.

Es un código en C++Builder, si te resulta dificil de traducirlo me avisas.

Lo que hace este código es dejar en blanco los espacios que cumplen una determinada condición, para que se vea una sola parte de la lista.

por ejemplo uno tiene:

Código:

Yo    casa  1
Yo    moto  1
Juan  casa  1
Juan  auto  1

te lo deja
Código:

Yo    casa  1
      moto  1
Juan  casa  1
      auto  1

Código:

void __fastcall TFMain::GridCargosDrawColumnCell(TObject *Sender,
      const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State)
{
  if (!ModulePersonal->IBCargosOrdenados->IsEmpty())
  {
    int Fila = ModulePersonal->IBCargosOrdenados->RecNo-1;
    if (Fila > 0)
      if ((ModulePersonal->ArrayCargos[Fila] == ModulePersonal->ArrayCargos[Fila-1]) &&
          (Column->FieldName != "TIPO_ACTIVIDAD") &&
          (Column->FieldName != "DENOMINACION_ACTIV"))
        GridCargos->Canvas->Font->Color = GridCargos->Canvas->Brush->Color;
    }

  GridCargos->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}

puedes adaptarlo a tu gusto

Lepe 23-07-2005 10:40:51

Pues yo me pongo del lado del Virtual Treeview, tardarás como mucho un par de horas en ponerte a codificar, y puedes hacer lo que se te antoje con él, además, como hay muchos ejemplos en la misma pagina web con código fuente, pues ayuda mucho.

Aunque hay alguno especial para Bases de datos, ni siquiera lo he mirado, porque el estandar (TvirtualStringTree) es infinitamente personalizable.

Los detalles que más me ha gustado de él son:
- Las casillas de verificación que puedes mostrar u ocultar para cada nodo, es decir, por código decides cuando quieres que aparezca o cuando no.
- Drag & Drop como el explorador de windows 2000 o XP que se ve la fila que arrastras con un degradado de color.
- Poder editar cualquier columna directamente haciendo clic (como si fuera un grid), eso si, necesitas el VTSEditor, un componente a instalar.
- Colores y negritas, tanto de fuentes como el fondo, en función de la fila o columna que quieres pintar.

Y claro, la presentación final es impecable desde el punto de vista de un usuario. Lo recomiendo encarecidamente y siendo gratis y con fuentes.... pues no digo más :).

La filosofía para trabajar con él es distinta a lo que ves en Delphi, por ahí te puedo ayudar para aclararte las ideas.

Un saludo.

sakuragi 23-07-2005 16:36:51

gracias a todos por responder

contraveneno

el problema que tengo no es con el directorio lib esta bien al ruta el problema es que no tengo el conponente dxDBGrid en ninguna paleta el unico que se instalo es el cxGrid instale el QuantiumSuite4

de hante mano gracias

------------

Crandel

gracias por ayudar lo un apregunta con ese modo se puede sacar los resultados de dos select diferentes? por que lo que quiero es que me de por ejemplo. tengo un producto y me muestre todos los productos vencido con todos sus datos
entonses lo desplegable sea de otro select referente a esa linea que me muestre todas la veses que se ha vencido ese producto y la cantidad. aparte si se acaba agregarle en tiempo de ejcucion a la columna cantidad mas producto nuevo, claro que esto tambien se puede haser como un arbol , para poder ocultar el resultado del segundo select

saludos

-------------
Lepe

se puede editar una columna en tiempo de ejecucion, o bien puede poner varias columnas como en un dbgrid en la misma linea?




GRACIAS A TODOS

SALUDOS

Lepe 23-07-2005 21:34:00

Si y Si :D

Puedes editar cualquier columna, saber el valor que tenia antes, y el nuevo texto que se ha introducido. Trae varios componentes, TDateTimePicker, comboboxEditor, IntegerEditor, y por supuesto un Edit para enlazarlo. Segun la columna que quieras editar, enlazas el editor correspondiente con su columna. Por tanto, si tienes una celda concreta es de fechas, muestras el TdatetimePicker, y si es una celda de números, enlazas el editor numerico.

Fijate que he dicho "celda", ya que a efectos visuales es como un grid, y dependiendo del momento, puedes mostrar un combobox o un TdateTimePicker.

Puedes ver un ejemplo de sus muchas virtudes en su web http://www.delphi-gems.com/VirtualTreeview/

A modo de resumen, se trabaja como un TreeView, nodos padres, nodos hijos y el simbolito del más para desplegar los nodos hijos. Cada nodo tiene columnas que incluso se pueden cambiar de sitio en tiempo de ejecución, y no varía su ColumnIndex, ya que el Virtual Treeview mantiene dos "ColumnIndex", uno para el programador y otro para el usuario, con lo cual, facilita las tareas.

Lepe 24-07-2005 11:11:35

Como ejemplo práctico, te cuento que he realizado una "vista preliminar de facturación" con ese componente, de tal forma que Aparece una linea con los datos de la empresa que factura, cuando se le da al + se despliega todos los clientes que se van a facturar con los totales en €, dando al + de cada cliente, se muestran todas las facturas que se van a crear, y dando de nuevo al + en una factura, aparecen todos los albaranes de esa factura.

Si utilizara otra técnica, tendría que realizar 3 relaciones Maestro-Detalle, y la información estaría en 3 Grids distintos.

Un saludo


La franja horaria es GMT +2. Ahora son las 16:39:03.

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