PDA

Ver la Versión Completa : ramificaciones DBGRID o en que se podra hacer?


sakuragi
20-07-2005, 17:45:08
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
...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
conosen algo del "virtual Treeview"?? Sí. :D:D:D ¿Qué necesitas?

...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
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. (http://www.clubdelphi.com/foros/showpost.php?p=96687&postcount=2) 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:


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


te lo deja

Yo casa 1
moto 1
Juan casa 1
auto 1


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

maeyanes
25-07-2005, 16:05:28
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


GRACIAS A TODOS

SALUDOS

Te recomiendo que le des una "hojeada" a la ayuda que viene con QuantumGrid Suite 4. Sobre todo en lo que se refiere al componente TcxGrid.

Para adelantarte algo, esta versión es muy diferente a la tres, la cual tenía un componente normal (TdxGrid) y otro para bases de datos (TdxDBGrid). Aquí solo tienes un componente (TcxGrid) el cual puedes usar para mostrar datos desde bases de datos...



Saludos...

ContraVeneno
25-07-2005, 16:09:04
Perdón por no contestar antes, pero el fin de semana es el fin de semana :D :D

Además, Maeyanes me leyó la mente :)

Saludos

sakuragi
25-07-2005, 16:20:35
gracias checare

:cool:

sakuragi
26-07-2005, 01:14:50
hola que tal

me reporto para comentar que ya me sale lo de las ramificaciones

pero tengo un problem


el cxGRID de maneja por medio de niveles para podr poner los grid

entonses el primer nivel le hago un query por sql y me da el resultado digamos asi:


----------------------------------------
| nombre | total | pago | debe |
+ manuel 100 50 50
+ jose 200 100 100
+ juan 400 300 100



entonses el segundo nivel esta oculto por las (+) entonses del otro nivel voy haser otra consulta en sql del resultado del primer query para saver cuando me habonaron y cuanto

para que quede asi:


----------------------------------------
| nombre | total | pago | debe |
-manuel 100 50 50
manuel 01-ago-05 50
-jose 200 100 100
jose 23-feb-05 100
- juan 400 300 100
juan 12 ene o5 300


lo que hise es haser la consulta recorriendo el resultado de uno por uno el query 2

asi algo asi



while not(qry2.EoF) do
begin
....{ la sentencias yc ondiiones }

qry2.next;
end;


bueno todo va saliendo bien lo malo que cada resultado que me va dnado me va borrando el que me havia dado en el otro nodo y nomas queda el ultimo

sera algo de que no se queda en memoria el resultado?

si es asi =S

no encuentro la opcion que es para permitir que haga esto

toy mal o mas mal?

saludos

=P

gracias