¿Como totalizar en un Browse?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

¿Como totalizar en un Browse?

Mensagem por Adalberto »

Caros amigos do foro,

Necesito totalizar una o varias columnas de un Browse, estoy usando MiniGui Ext (ultima version) y el TSBROWSE, que lo defino asi:

Código: Selecionar todos

	//
	XSele( cArcDbf2, 1 )
	DBGOTOP()
	DEFINE TBROWSE oBrow AT 100, 010 CELLED ALIAS cArcDbf2 		;
		HEIGHT   270 WIDTH 510 FONT 'Font1' BOLD 				;
		HEADERS  'Madera', 'Especie', 'Precio', 'Importe'		;
		WIDTHS   070, 200, 100, 120								;
		FIELDS   Madera, Nom_Esp, Precio, Importe				;
		PICTURE  REPL( '!', 05), REPL('!', 25), '##,###.##', '##,###.##';
		ON DBLCLICK Editar( RECNO() )
Me ajudan por favor?, les agradezco mucho.

El Dios del cielo sea con ustedes.

[] Adalberto
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

¿Como totalizar en un Browse?

Mensagem por Adalberto »

Caros amigos do foro.

Desejo compartilhar com vocês a solução deste problema que me tirou o sonho muitas noites; com a ajuda do amigo lichitorres y outros amigos do foro harbourminigui_es consegui isso. (muito agradecido com cada um deles)

Código: Selecionar todos

ADD COLUMN TO oBrow					;
			DATA FieldWblock( 'Metros', Select( cArcDbf2 ) )  ;
			PICTURE '##.###' HEADER 'Metros³' SIZE 080 PIXELS ;
			COLORS CLR_BLACK,CLR_NBLUE 3DLOOK TRUE, TRUE, TRUE;
			MOVE DT_MOVE_NEXT ALIGN DT_RIGHT, DT_CENTER FOOTER {|| SumaCol()}

Código: Selecionar todos

//
STATIC FUNCTION SumaCol()
LOCAL nTotal := nReg := 0
//
nReg := &cArcDbf2.->( RECNO() )
&cArcDbf2.->( DBGOTOP() )
&cArcDbf2.->( DBEVAL( {||nTotal += Metros}) )
&cArcDbf2.->( DBGOTO(nReg) )
RETURN TRANS( nTotal, '##.###' )
Muito obrigado com cada um de vocês, nosso bom Deus os abençoe assim também os seus amados e suas amadas.
[] Adalberto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

¿Como totalizar en un Browse?

Mensagem por alxsts »

Olá!

Muy bien!

Não conheço HMG mas, em se tratando de xBase, é possível melhorar a performance deste código, eliminando a utilização do operador macro ( & ):

Código: Selecionar todos

STATIC FUNCTION SumaCol()
LOCAL nTotal := nReg := 0
//
nReg := (cArcDbf2)->( RECNO() )
(cArcDbf2)->( DBGOTOP() )
(cArcDbf2)->( DBEVAL( {||nTotal += Metros}) )
(cArcDbf2)->( DBGOTO(nReg) )
RETURN TRANSFORM( nTotal, '@E 999,999.999' )
ou

Código: Selecionar todos

STATIC FUNCTION SumaCol()
LOCAL nTotal := 0, nReg := (cArcDbf2)->( RECNO() )
//
(cArcDbf2)->( DBGOTOP(), DBEVAL( {||nTotal += Metros}), DBGOTO(nReg) )
//
RETURN TRANSFORM( nTotal, '@E 999,999.999' )
[]´s
Alexandre Santos (AlxSts)
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

¿Como totalizar en un Browse?

Mensagem por Adalberto »

Hola Alexandre Santos,
Gracias por tu respuesta, ya implemente tus sugerencias y funciono mu bien

[] Adalberto
Responder