Ayuda Para Totalizar Columna en XBROWSE

Post Reply
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Ayuda Para Totalizar Columna en XBROWSE

Post by remtec »

Hola Amigos.

Tengo un problema, por mas que copio otros codigos donde totalizo Columna con Xbrowse, aqui no doy con la Solución.

Tengo un Xbrowse con un Array de 5 Columnas, debo Totalizar la Columna 5 y contar cantidad de registro digitados.

Ademas, no logro que el Boton Salir, cierre el Dialogo y vuelva desde donde lo envio.

Los datos son ingresados desde un Get y agregados al Xbrowse.

Desde ya, muchos gracias.

Muchos Saludos.

Antonio

Dejo el Código que debo solucionar:

Code: Select all

        @ 20,68 GET oCodi    Var Cod_Ara1       SIZE 50,10 PIXEL OF oDlg1   PICTURE "@!"   COLOR RGB(0,0,128)   FONT oFont2 UPDATE;
                        Valid IF(!Exis_Exa(Tip_Ate1,Tip_Pag1,Cod_Ara1,aCodigos),(MsgStop("CODIGO DIGITADO NO EXISTE"),.F.), (oDlg1:Refresh(),Cod_Ara1:=Spac(7),oBrw1:Refresh(),oCodi:Refresh(),oCodi:SetFocus(), .T.) )

    @ 19.5,130 BTNBMP SIZE 15, 15  OF oDlg1 PIXEL 2007 Resource "#8018" FONT oFont2 ;
                    ToolTip  "BUSCAR CODIGO";
                    ACTION Buscar_Cod()

    @ 35,10 XBROWSE oBrw1 SIZE -10,-60 PIXEL OF oDlg1 DATASOURCE aCodigos FONT oFont3;
                        HEADERS 'Codigo','Descripción','Cantidad','Valor Prestación','Valor Total';
                      COLUMNS 1, 2,3,4,5;
                        COLSIZES 70, 280, 70, 110, 110;
                        PICTURES '@!','@!','9999','999,999,999','999,999,999';
                        CELL LINES AUTOSORT NOBORDER;
                    oBrw1:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
                    oBrw1:nColDividerStyle := LINESTYLE_INSET
                    oBrw1:nRowDividerStyle := LINESTYLE_INSET
                        oBrw1:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
                        oBrw1:nOpacity    := 230


                        oBrw1:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                        oBrw1:bClrSelFocus        := {|| { nRGB(  255,  255,  255), nRGB(102, 178, 255) } }
                        oBrw1:lFooter := .t.
                        oBrw1:lHScroll := .f.
                                        oBrw1:lIncrFilter      := .f.
                                        oBrw1:lSeekWild        := .F.                   
                        oBrw1:SetStyle( 2018)
                        oBrw1:nColorPen := CLR_RED
                        oBrw1:aCols[2]:cFooter := "TOTAL INGRESOS -->"
                                        oBrw1:aCols[2]:nFootStrAlign := AL_LEFT
                        oBrw1:nFooterLines:=1

                        WITH OBJECT oBrw1
                                 :aCols[03]:cEditPicture    := "999,999"
                                 :aCols[03]:nFooterType := AGGR_COUNT   // No Cuenta

                                 :aCols[05]:cEditPicture    := "999,999,999"
                                             :aCols[05]:nFooterType    := AGGR_TOTAL                // No Totaliza
                                 :MakeTotals()


                                 :CreateFromCode()
                        END


   @ 245,180 BTNBMP SIZE 35, 35 PROMPT "SALIR" OF oDlg1 PIXEL 2007 Resource "#8002" FONT oFont2 ;      // Este Boton NO Cierra el Dialogo, Siempre pide Ingreso de Codigo en  oCodi
                    ToolTip  "SALIR DEL SISTEMA";
                    ACTION oDlg1:End()

   ACTIVATE DIALOG oDlg1 CENTERED ON INIT oCodi:SetFocus()

 
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda Para Totalizar Columna en XBROWSE

Post by remtec »

Amigos

Alguna Luz ??

Saludos
Antonio
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Ayuda Para Totalizar Columna en XBROWSE

Post by leandro »

Yo lo utilizo de la siguiente manera:

Code: Select all

...
    oCol          = oBrwItem:AddCol()
    oCol:bStrData := {|| if(Len( oFac:detalle ) > 0 , Transform(oFac:detalle[oBrwItem:nArrayAt]["total"],oLamcla:PIC7)  ,"" ) }
    oCol:cHeader  = "Total"
    oCol:nWidth   = 81
    oCol:nHeadStrAlign = AL_RIGHT
    oCol:nDataStrAlign = AL_RIGHT   
    oCol:oHeaderFont = oFont
    oCol:bFooter       = {|| Transform(oFac:hEncabezado["total"],oLamcla:PIC7) } //variable a mostrar
    oCol:nFootStrAlign = 1
    oCol:oFooterFont = oFont3   

....

METHOD sumaTotales() CLASS cFact 
Local vCanti := 0
Local vSubto := 0
Local vVrIva := 0
Local vTotal := 0

FOR i:=1 TO len(::detalle)
    vCanti := vCanti + ::detalle[i]["cantidad"]
    vSubto := vSubto + ::detalle[i]["subtotal"]
    vVrIva := vVrIva + ::detalle[i]["iva"]
    vTotal := vTotal + ::detalle[i]["total"]
NEXT

::hEncabezado["cantitotal"] := vCanti
::hEncabezado["subtotal"] := vSubto
::hEncabezado["iva"] := vVrIva
::hEncabezado["total"] := vTotal
return nil

 
Utilizo una variable independiente y la refresco cada vez que realice algún cambio que afecte los totales, la verdad también intente hacerlo con la funcion maketotals(), pero no me maqueto los resultados.
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda Para Totalizar Columna en XBROWSE

Post by remtec »

Hola Leandro

Como estas?

Muchas gracias por responder.

Mira, con DBF funciona, por que lo tengo corriendo y lo hace bien. Pero en este caso estoy usando Array y no aqui el codigo no funciona el Totalizar, pero extrañamente se actualiza Solo al hacer Click en la barra " lVScroll ", cargo el array desde el Get y la unica forma que se actualice es Cliqueando en la Barra del Scroll.

Espero por su ayuda.

Muchos Saludos.

Antonio.
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda Para Totalizar Columna en XBROWSE

Post by FranciscoA »

Ademas, no logro que el Boton Salir, cierre el Dialogo y vuelva desde donde lo envio.
Intenta asi:

Code: Select all

local oBt1
 @ 245,180 BTNBMP oBt1 SIZE 35, 35 PROMPT "SALIR" OF oDlg1 PIXEL 2007 Resource "#8002" FONT oFont2 ;      // Este Boton NO Cierra el Dialogo, Siempre pide Ingreso de Codigo en  oCodi
                    ToolTip  "SALIR DEL SISTEMA";
                    ACTION oDlg1:End()
      oBt1:lCancel := .t.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: Ayuda Para Totalizar Columna en XBROWSE

Post by remtec »

Hola Francisco

Muchas Gracias por tu ayuda.

Ya he logrado solucionar el problema, en relación a Totalizar, use variables y una linea especial, lo que poder abandonar el dialogo, logre que pudiera salir del Get y salir del dialogo.

Desde ya muchas gracias por toda tu ayuda.

Muchos Saludos
Antonio.
Post Reply