Sobre SubTotales en Grid

262 views
Skip to first unread message

HernanCano

unread,
Apr 2, 2010, 1:37:34 AM4/2/10
to Mundo Visual FoxPro
Buenos días, muchachos.

Tengo un grid con datos, por ejm, de recaudos, como el mostrado en la
figura ( sección
Archivos - "Grid-SubTotales.bmp" ). Digamos que ya sé cómo generar los
renglones referentes por ejm a encabezados de grupo, subtotales de
grupo y totales generales.

Necesito poner en negrilla los renglones de encabezados, de subtotales
y de totales.

El campo "Marca" se ve en el grid sólo para efectos de que ustedes
tengan una mejor visión, pero en el desarrollo final se ocultaría
(digamos que ésto también sé cómo hacerlo).

Los efectos que quisiera implementar son: negrilla/itálica/subrayado,
color de fondo, color de letra, tamaño de letra; no necesariamente
todos juntos en el mismo desarrollo. Incluso cada efecto podría ser a
todo el renglón o sólo a una celda -o varias-.

He considerado que los efectos especiales se agregarán a los renglones
que tengan algo escrito en el campo "Marca".

He buscado en Internet, pero sólo llego a ejemplos que muestran cómo
hacer un campo calculado ( ejemplo de una factura; col1: referencia,
col2: descripción; col3: cantidad; col4: vr.unitario; col5: SUBTOTAL =
Cantidad * Vr.Unitario ), pero no es lo que necesito.

Gracias por el apoyo que me puedan dar.

Hernán Cano
Analista de Sistemas - Programador
Medellín, Antioquia, Colombia

PD: El efecto final se ve como lo que necesita, pues se hizo en hoja
electrónica y se armó una imagen bmp tomando además un grid "real".

menalm

unread,
Apr 2, 2010, 4:43:43 PM4/2/10
to Mundo Visual FoxPro
This.Grid1.SetAll("dynamicbackcolor", "IIF(PacientesTemp2.Chk =
1,RGB(128,255,128), RGB(255,255,255))", "Column")

Asi coloco en mis grid cuando quiero resaltar una fila, en mi caso
resalto las finas de pacientes que ya he atendido (soy medico,.. y
programador)
lo que puedes hacer es adicionar un campo mas (como un 'chk') al
cursor que estes generando y marcas las filas que te interesen cambiar
la propiedad y usas algo parecido al ejemplo de arriba.
suerte
Walter Mendoza

Intel Man

unread,
Apr 2, 2010, 7:10:05 PM4/2/10
to mundovis...@googlegroups.com
Hola, busca en la ayuda las propiedades que empiezan con dynamic como por ejemplo: dynamicbackcolor o diynamicforecolor

Saludos


> Date: Thu, 1 Apr 2010 22:37:34 -0700
> Subject: [Mundo Visual FoxPro] Sobre SubTotales en Grid
> From: jherna...@gmail.com
> To: mundovis...@googlegroups.com
> --
> _______________________________________________________________
> Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
> FoxPro" de Grupos de Google.
>
> Para anular la suscripción a este grupo, envía un mensaje a:
> mundovisualfox...@googlegroups.com
>
> To unsubscribe, reply using "remove me" as the subject.


Tus datos personales, más seguros con Internet Explorer 8. ¡Descárgatelo gratis!

HernanCano

unread,
Apr 3, 2010, 1:11:14 AM4/3/10
to Mundo Visual FoxPro
Gracias, Walter e "Intel".

Su ayuda es esencial para mis mejoramientos.

Probaré las repu que me dan.

Hasta luego.

HernanCano

unread,
Apr 4, 2010, 7:15:09 PM4/4/10
to Mundo Visual FoxPro
Basado en las respuestas de Walter e "Intel" desarrollé el sgte
ejemplo, pero los resultados no son satisfactorios.
(creo recordar que la justificación no aparecerá correcta, lo cuál
hará difícil leer el prg; disculpen, sin problemas de estos protales;
pensé en grabarlo en Archivos -como la imagen-, pero si ustedes me
dicen...)

Gracias.

**
** El comentario
*
La única propiedad que funciona es DynamicBackColor (probablemente
también DynamicForeColor).
¿Qué adicional debemos hacer para que funcione el resto de propiedades
(las que se mencionan a continuación)?

DynamicFontName
DynamicFontSize *

DynamicFontBold *
DynamicFontItalic *
DynamicFontUnderline *

DynamicFontStrikeThru
DynamicFontOutline
DynamicFontShadow


Creo que para evitar los ceros podría usar DynamicInputMask, ¿cierto?

**************************************************
** Sample.PRG
**
local oForm1 &&
oForm1=newobject([frmSample])
if type([oForm1])=[O] and !isnull(oForm1)
oForm1.Show(1)
else
wait window [No se pudo crear al formulario de ejemplo.]
endif
release oForm1
clear class frmSample
return


DEFINE CLASS frmSample AS form

WindowType = 1
DataSession= 2 && probando
*Top = 50
*Left =200
AutoCenter = .f.
Height=400
Width =600
DoCreate = .T. && ¿para qué sirve??
Caption = "Ejemplo"
AllowOutput = .F.
icon =([])
Name = "frmSample"

ADD OBJECT grdDatos AS grid WITH ;
Left= 15, ;
Top = 15, ;
Height=290, ;
Width =500, ;
Name = "grdDatos", ;
RecordSourceType= 0,;
RecordSource= [dbf("PRUEBA")]

procedure Load
set talk off
set cent on
set date ansi
create cursor PRUEBA ( Chk C(05), Codigo C(05), Fecha D, Numero N(05),
Factura N(5), Valor N(11,2) )
insert into PRUEBA values ( [], [V01], date(2010,01,01), 1, 123,
1500 )
insert into PRUEBA values ( [], [V01], date(2010,01,08), 1, 234,
2500 )
insert into PRUEBA values ( [], [V01], date(2010,01,15), 1, 345,
3700 )

insert into PRUEBA values ( [**], [ ], {}, 0, 0,
1500+2500+3700)

insert into PRUEBA values ( [], [V01], date(2010,01,22), 1, 456,
4500 )
insert into PRUEBA values ( [], [V01], date(2010,01,29), 1, 567,
5000 )
insert into PRUEBA values ( [], [V01], date(2010,02,05), 1, 678,
6500 )
insert into PRUEBA values ( [], [V01], date(2010,02,12), 1, 680,
7250 )

insert into PRUEBA values ( [**], [ ], {}, 0, 0,
4500+5000+6500+7250)

insert into PRUEBA values ( [], [V01], date(2010,02,19), 1, 789,
7500 )
insert into PRUEBA values ( [], [V01], date(2010,02,26), 1, 890,
8700 )
insert into PRUEBA values ( [], [V01], date(2010,03,05), 1, 901,
9850 )

insert into PRUEBA values ( [**], [ ], {}, 0, 0,
7500+8700+9850)


procedure Init
with This
**
cDynamic = [iif(empty(Chk), .f., .t.) ] && no funciona,
¿por qué?
.SetAll('DynamicFontBold', cDynamic, 'Column')
**
*cDynamic = [iif(empty(Chk), DynamicFontSize, 20)]
&&FontSize*1.5 && muestra error según imagen, ¿por qué?
*.SetAll('DynamicFontSize', cDynamic, 'Column')
**
*cDynamic = [iif(empty(Chk), RowHeight, RowHeight*1.3) ] &&
tipo de dato inválido
*.SetAll('RowHeight', cDynamic, 'Grid')
**
.SetAll("dynamicbackcolor", "IIF(empty(Chk) ,
RGB(255,255,255) , RGB(128,255,128))", "Column") && SI FUNCIONA!!
**
endwith

**
endproc

ENDDEFINE
*
**************************************************

HernanCano

unread,
Apr 10, 2010, 2:12:49 AM4/10/10
to Mundo Visual FoxPro
En cuanto encuentre algo, les compartiré.
.
Chao.
.

HernanCano

unread,
Apr 12, 2010, 9:39:34 PM4/12/10
to Mundo Visual FoxPro
Aún no resuelvo mi inconveniente.

Yvan GMAIL

unread,
Apr 13, 2010, 9:48:46 AM4/13/10
to mundovis...@googlegroups.com
Cual es el inconveniente.. no se ve el historial del problema.

Yvan Carranza
613-8906

----- Original Message -----
From: "HernanCano" <jherna...@gmail.com>
To: "Mundo Visual FoxPro" <mundovis...@googlegroups.com>
Sent: Monday, April 12, 2010 8:39 PM
Subject: [Mundo Visual FoxPro] Re: Sobre SubTotales en Grid


A�n no resuelvo mi inconveniente.

--
_______________________________________________________________
Has recibido este mensaje porque est�s suscrito al Grupo "Mundo Visual


FoxPro" de Grupos de Google.

Para anular la suscripci�n a este grupo, env�a un mensaje a:

Daniel Sánchez

unread,
Apr 13, 2010, 12:27:34 PM4/13/10
to mundovis...@googlegroups.com
No se si te refieres a un resumen como el que te adjunto en una grilla


Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil 044-949398047
Trujillo - Perú
resumenengrid.JPG

Christian López Gómez

unread,
Apr 13, 2010, 1:07:29 PM4/13/10
to mundovis...@googlegroups.com
hola amigo como le haces para que pongas las pestañas en la parte de abajo..?


--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual

FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com



--
Atentamente.
Ing. Christian López Gómez
Jefe de Sistemas
MSN:   christi...@hotmail.com
          christi...@gmail.com

Depto. Sistemas
P.D. "Un buen programador nunca muere solo se pierde en un proceso"

Daniel Sánchez

unread,
Apr 13, 2010, 1:42:26 PM4/13/10
to mundovis...@googlegroups.com
Es una librería que descargue me parece de portalfox o la webdaphantom no recuerdo bien, pero no siempre funciona bien al tratar de activar la ventana deseada, lo demás funciona bien, si le puedes dar una revisada y solucionas excelente, lo compartes con el foro

-- 
foxtabs.app

Julio Cesar Rodriguez Dominguez

unread,
Apr 13, 2010, 1:52:05 PM4/13/10
to mundovis...@googlegroups.com
El 13 de abril de 2010 12:07, Christian López Gómez <christi...@gmail.com> escribió:
hola amigo como le haces para que pongas las pestañas en la parte de abajo..?

Es parte de un proyecto el cual pretende extender VFP mediante add-ons, estos son open source, pudiendo usar y modificar libremente.


El que te interesa a ti es: http://vfpx.codeplex.com/wikipage?title=FoxTabs&referringTitle=Home el cual esta en beta, pero hay más y muy buenos, como por ejemplo FoxCharts, GDIPlusX, por mencionar algunos.

HernanCano

unread,
Apr 14, 2010, 1:12:21 AM4/14/10
to Mundo Visual FoxPro
Perdón, "iván". ¿Dices algo?

HernanCano

unread,
Apr 14, 2010, 1:24:06 AM4/14/10
to Mundo Visual FoxPro
Daniel: La primera frase de este mensaje-pregunta-tema (después del
saludo) es
(puedes leerlo allá arriba):
-----------------------------------------------------------------------------------------------------------

Tengo un grid con datos, por ejm, de recaudos, como el mostrado en la
figura
( sección Archivos - "Grid-SubTotales.bmp" ). Digamos que ya sé cómo
generar
los renglones referentes por ejm a encabezados de grupo, subtotales de
grupo
y totales generales.
-----------------------------------------------------------------------------------------------------------
Pero..bueno... no te debe dar pereza mirar allá (en los recursos de
este gran foro)...
lo lamento.... no veo cómo adjuntar aquí mismo....
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
De todas formas---te comento: No, no es como la imagen que pones. Tu
imagen
similar una aplicación contable, pero no, lo que deseo es algo similar
a los
subtotales de un xls, como se ve en la imagen quye puse.....

Yvan GMAIL

unread,
Apr 14, 2010, 9:37:10 AM4/14/10
to mundovis...@googlegroups.com
Intentaba ayudarte.. pero como uso el Outlook Express.. no ve�a el
historial.. osea el problema que tenias.. Revis� su Imagen en la web... lo
que deseas es combinar las celdas.. Eso seg�n investigue un poco en san
Google.. lo puedes hacer con MsflexGrid (control active x)-- cpnm
mergecells.

Yvan Carranza
613-8906

----- Original Message -----
From: "HernanCano" <jherna...@gmail.com>
To: "Mundo Visual FoxPro" <mundovis...@googlegroups.com>
Sent: Wednesday, April 14, 2010 12:12 AM
Subject: [Mundo Visual FoxPro] Re: Sobre SubTotales en Grid


Perd�n, "iv�n". �Dices algo?

Daniel Sánchez

unread,
Apr 14, 2010, 11:11:11 AM4/14/10
to mundovis...@googlegroups.com
Si tienes razón no había visto en la sección de archivos como deseaba que salga su grid, si no, no hubiera adjuntado el ejemplo.

Las disculpas del caso.

-- 

Gil Grissom

unread,
Apr 14, 2010, 2:05:17 PM4/14/10
to mundovis...@googlegroups.com
Estos problemas ocurren cuando se revisa el correo desde el web de gmail, les sugiero revisar desde Outlook o MS Outlook
 
 
Saludos
 
Grissom

 

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual

FoxPro" de Grupos de Google.
 

Julio Cesar Rodriguez Dominguez

unread,
Apr 14, 2010, 2:14:21 PM4/14/10
to mundovis...@googlegroups.com
El 14 de abril de 2010 13:05, Gil Grissom <griss...@gmail.com> escribió:
Estos problemas ocurren cuando se revisa el correo desde el web de gmail, les sugiero revisar desde Outlook o MS Outlook 

No creo que eso sea cierto, yo reviso esta y otras listas desde mi cliente de correo web de gmail y siempre anda muy bien, incluso en el grupo todo los thread llevan un perfecto seguimiento. http://groups.google.com.mx/group/mundovisualfoxpro/browse_thread/thread/dacfc5f435d48095

HernanCano

unread,
Apr 15, 2010, 1:45:33 AM4/15/10
to Mundo Visual FoxPro
(1)
"Yvan": gracias por tu aporte.
Pero--por favor-- la idea no es el manejo de "combinar celdas". dices:
------------------
lo puedes hacer con MsFlexGrid (control active x)-- con mergecells.
------------------
La imagen muestra algo al respecto, pero la idea no es ésa.
La idea es "mostrar en negrilla -o la letra en otro color, o el fondo
highlight en otro color-" de los renglones marcados como subtotal,
total o título de grupo.
Me complace tu aporte, claro; es sólo que no quiero que haya
desviaciones en el tema.
.
Seguimos en contacto.

(2)
Yvan, Daniel: agradezco su apoyo. Somos "zorros" (con respeto).

(3)
Christian: tienes su email; no nos desviemos, ¿está bien?

(4)
"grissom", julio: ¿problemas? outlook?
Está bien....
.
Con el apoyo de todos, definiremos una metodología que nos ayude con
un grid para "subtotales, totales y títulos de grupo".
.
Hasta luego.

Yvan GMAIL

unread,
Apr 15, 2010, 9:20:26 AM4/15/10
to Mundo Visual FoxPro
Hernán,
 
Te comenté el tema de combinar celdas, dado que en la imagen que muestras estas combinando 2 celdas (Y es algo que no he logrado con el Grid de V. Fox). En caso de manejar color de letra, fondo, etc. Solo es cuestión de utilizar dynamicbackcolor, dynamicforecolor, dynamicfontunderline (Algo que el amigo Daniel ya mostró en un ejemplo anterior).
 
Te adjunto una imagen de lo que hasta ahora he manejado con el tema de dynamic..
 
Yvan Carranza
613-8906
----- Original Message -----
From: "HernanCano" <jherna...@gmail.com>
To: "Mundo Visual FoxPro" <mundovis...@googlegroups.com>
Sent: Thursday, April 15, 2010 12:45 AM
Subject: [Mundo Visual FoxPro] Re: Sobre SubTotales en Grid

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual

FoxPro" de Grupos de Google.

Para anular la suscripción a este grupo, envía un mensaje a:
sample.jpg

HernanCano

unread,
Apr 16, 2010, 1:39:51 AM4/16/10
to Mundo Visual FoxPro
Claro yvan, gracias.

Pero es que quisiera que analizaras el listado que mostré en abr-04 a
las 6:15pm, donde las instrucciones que tengo no funcionan como se
menciona en los comentarios del mismo.

Veo que utilizas todos los aspectos que deseo: color de fondo,color de
letra, negrilla, subrayado, etc, tanto sobre el título del grupo como
en los renglones de subtotal e incluso en columnas (o celdas)
específicas. El combinar celdas no me preocupa, ni creo que me
preocupe a posteriori.

Me funciona una pero las otras no. ¿Por qué?
No te pido que me des tu solución, pero ¿me podrías indicar por qué la
que propongo no funciona?

Gracias por leer mis temas.
.

Yvan GMAIL

unread,
Apr 16, 2010, 9:33:06 AM4/16/10
to mundovis...@googlegroups.com
cDynamic = [iif(empty(Chk), .f., .t.) ] && no funciona,
¿por qué?
.SetAll('DynamicFontBold', cDynamic, 'Column')

Nunca he usado este tipo de asignación.

Pero has probado sin usar la variable cDynamic o usarla asi

cDynamic = 'iif(empty(Chk), .f., .t.)'
.SetAll('DynamicFontBold', cDynamic, 'Column')

O si no asi:

.SetAll('DynamicFontBold', 'iif(empty(Chk), .f., .t.)', 'Column')

Lo mismo seria para las demas.
-------------------------------------------------------------------------------------------------
Para afectar el color de fondo de todas las columna uso .setall.. pero para
el caso
de afectar una sola columna uso.

.Columna1.DynamicFontBold = "IIF(MiCampo = 'X',.T.,.F.)"


Yvan Carranza
613-8906

----- Original Message -----
From: "HernanCano" <jherna...@gmail.com>
To: "Mundo Visual FoxPro" <mundovis...@googlegroups.com>
Sent: Friday, April 16, 2010 12:39 AM
Subject: [Mundo Visual FoxPro] Re: Sobre SubTotales en Grid


HernanCano

unread,
Apr 17, 2010, 1:33:15 AM4/17/10
to Mundo Visual FoxPro
Alternativa #1:
cDynamic = [iif(empty(Chk), .f., .t.) ]
.SetAll('DynamicFontBold', cDynamic, 'Column')

Alternativa #2:
cDynamic = 'iif(empty(Chk), .f., .t.)'
.SetAll('DynamicFontBold', cDynamic, 'Column')

Alternativa #3:
.SetAll('DynamicFontBold', 'iif(empty(Chk), .f., .t.)', 'Column')

======================================

Todas tres son EXACTAMENTE IGUALES.
¿Qué te pasa?

Daniel Sánchez

unread,
Apr 18, 2010, 8:46:03 AM4/18/10
to mundovis...@googlegroups.com
En realidad puede que no sean exactamente iguales, si la variable esta definida como publica conservara el valor asi salgas del procedimiento o metodo, pero si no es definida como pública y solo se define dentro del método o procedimiento al salir de este deja de existir y por eso me parece que al amigo no le funciona usando la variable cdynamic en su asignación a su propiedades dynamic de su grilla, me parece que por ahi el tiene el problema, ya que esta propiedad esta constantemente verificando el valor no solo cuando lo asignas, para verificar si cambia el color, el tipo de letra y otras cosas mas.....
--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil 044-949398047
Trujillo - Perú

HernanCano

unread,
Apr 19, 2010, 2:49:13 AM4/19/10
to Mundo Visual FoxPro
Bien.

A pesar de no estar de acuerdo con lo de "no usar la vble" (pues la
metodología la tomé de ayudas de otros colegas en estos foros (se
supone que cada uno la ha probado y funciona), he reescrito el método
INIT del form y lo tengo así:

procedure Init
with This
.SetAll("DynamicBackColor","IIF(empty(Chk) ,
RGB(255,255,255), RGB(128,255,128))", "Column") && SI FUNCIONA!!
.SetAll("DynamicForeColor","IIF(empty(Chk) , RGB(0,0,0) ,
RGB(128,0,128))", "Column") && SI FUNCIONA!!
*.SetAll('DynamicFontBold', [iif(empty(Chk) , .t. , .f.) ],
'Column') && No
.SetAll('DynamicFontName', [iif(empty(Chk) , "Courier New",
"Arial Black")], 'Column') && SI FUNCIONA!!
.SetAll('DynamicFontSize', [iif(empty(Chk) , 08, 11)],
'Column') && SI FUNCIONA!!
.SetAll('DynamicInputMask', [iif(empty(Chk),
"99999,999,999", "@Z 99999,999,999")], 'Column') && SI FUNCIONA!!
.grdDatos.SetAll("IntegralHeight", .t., "TextBox") && No
endwith

Como verán no funciona ni DynamicFontBold ni IntegralHeight.

La forma como solvento el no usar negrilla, es con una fuente q

HernanCano

unread,
Apr 19, 2010, 3:05:58 AM4/19/10
to Mundo Visual FoxPro
Bien.

A pesar de no estar de acuerdo con lo de "no usar la vble" (pues la
metodología la tomé de ayudas de otros colegas en estos foros (se
supone que cada uno la ha probado y funciona), he reescrito el método
INIT del form y lo tengo así:

procedure Init
with This
.SetAll("DynamicBackColor","IIF(empty(Chk) ,
RGB(255,255,255), RGB(128,255,128))", "Column") && SI FUNCIONA!!
.SetAll("DynamicForeColor","IIF(empty(Chk) , RGB(0,0,0),
RGB(128,0,128))", "Column") && SI FUNCIONA!!
*.SetAll('DynamicFontBold', [iif(empty(Chk) , .t. , .f.) ],
'Column') && No
.SetAll('DynamicFontName', [iif(empty(Chk) , "Courier New",
"Arial Black")], 'Column') && SI FUNCIONA!!
.SetAll('DynamicFontSize', [iif(empty(Chk) , 08, 11)],
'Column') && SI FUNCIONA!!
.SetAll('DynamicInputMask', [iif(empty(Chk),
"99999,999,999", "@Z 99999,999,999")], 'Column') && SI FUNCIONA!!
.grdDatos.SetAll("IntegralHeight", .t., "TextBox") && No
endwith

Como verán no funciona ni DynamicFontBold ni IntegralHeight.

La forma como solvento el no usar negrilla, es con una fuente que sea
bold por defecto (como la Arial Black).
Ahora cuando uso un tamaño de letra muy grande, no cabe en la celda
del grid (con los datos del ejemplo se nota ésto).
Pero no sé cómo usar la propiedad IntegralHeight de los textbox dentro
del grid.
La Z en el InputMask es para no mostar ceros, pero en las fechas
vacías se muestran los puntos separadores.

Ver la imagen " Grid-SubTotales-2.jpg " que cargué en archivos.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Les agradezco a todos la ayuda.
Considero que puedo quedarme con la solución como la tengo hasta
ahora.
Lo que pueda verse faltando lo puedo ajustar más adelante.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Larga vida al zorro.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HernanCano

unread,
Apr 20, 2010, 9:47:58 PM4/20/10
to Mundo Visual FoxPro
Este era el mensaje de "conclusión" de un tema del mismo nombre.
Lamento que haya quedado como independiente.
.
Chao.

HernanCano

unread,
Apr 20, 2010, 9:49:24 PM4/20/10
to Mundo Visual FoxPro
Ya en otro "mensaje" (con el mismo nombre) dí una especie de "cierre"
o "conclusión" a este tema.
Lamento que haya quedado (ese otro) como independiente.
.
Chao.
Reply all
Reply to author
Forward
0 new messages