Page 1 of 1

Ayuda Para Totalizar Columna en XBROWSE

Posted: Tue Oct 29, 2019 11:00 pm
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()

 

Re: Ayuda Para Totalizar Columna en XBROWSE

Posted: Wed Oct 30, 2019 12:52 pm
by remtec
Amigos

Alguna Luz ??

Saludos
Antonio

Re: Ayuda Para Totalizar Columna en XBROWSE

Posted: Wed Oct 30, 2019 1:44 pm
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.

Re: Ayuda Para Totalizar Columna en XBROWSE

Posted: Wed Oct 30, 2019 2:40 pm
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.

Re: Ayuda Para Totalizar Columna en XBROWSE

Posted: Thu Oct 31, 2019 8:33 pm
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.

Re: Ayuda Para Totalizar Columna en XBROWSE

Posted: Fri Nov 01, 2019 6:16 pm
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.