AYUDA CON TOTAL POR COLUMNA EN XBROWSE

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

AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by remtec »

Amigos

Como siempre molestando.

He revisado todo lo que hay en el foro sobre Totales por Columnas en Xbrowse, pero no logro que funcione.

Ademas, no se habilita el Scroll Vertical.

Desde ya Muchos saludos.
Antonio.

Code: Select all

                REDEFINE XBROWSE oIngre ALIAS "&Nro_usu3" FIELDS ;
                                 Fol_caj,;
                                 OemToAnsi(Nom_pac),;
                                 OemToAnsi(Tip_pag),;
                                 OemToAnsi(Tip_ate),;
                                 Tot_gen,;                              <======== Columna a Totalizar
                                 OemToAnsi(Med_tra),;
                                 OemToAnsi(Cod_dig),;
                                 OemToAnsi(Hor_dig);
                                HEADERS;
                                 "Folio Caja",;
                                 "Nombre de Paciente",;
                                 "T. Pago",;
                                 "T. Aten",;
                                 "Valor Total",;
                                 "Med.Tra.",;
                                 "Digita",;
                                 "H.Digita";
                               PICTURES "99999999","@!","@!","@!","9999999999","@!","@!","@!";
                               ID 104 OF oDlg ;
                                 FONT oFont1;
                                 FOOTERS LINES CELL
                                 oIngre:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                                 oIngre:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
                                 oIngre:l2007:=.T.
                                 oIngre:lVScroll := (.T.)         <=============== No se Muestra en el Browse
                                 oIngre:lFooter := .T.
                                 oIngre:aCols[5]:nFooterType := AGGR_SUM
                               oIngre:MakeTotals()


 
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by joseluisysturiz »

Saludos, has esto a la columna que quieres haga el total, saludos...gracias... :shock:

Code: Select all

WITH OBJECT aBrw[6]
      :aCols[3]:cFooter := "Total Items ->"
      :aCols[3]:nFootStrAlign := AL_RIGHT
      ***
      :aCols[4]:cDataType := "N" // COLUMNA CON TOTALIZADOR...
      :aCols[4]:nFooterType := AGGR_TOTAL
      ***
   END WITH
 
Dios no está muerto...

Gracias a mi Dios ante todo!
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by remtec »

Jose Luis.

Muy buen dia, muchas gracias por responder.

Aplique tu recomendacion, pero como otras que habia aplicado encontradas en el foro, NO SUMA, muestra el total en Cero en el Footer, lo mismo que no logro que me muestre la barra VScroll.

Muchos Saludos.

Antonio
VitalJavier
Posts: 188
Joined: Mon Jun 10, 2013 6:40 pm

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by VitalJavier »

Yo lo pongo asi: xBrowse

Code: Select all

    oBrow2:aCols[04]:nHeadStrAlign  := 2
    oBrow2:aCols[04]:cEditPicture    := "99,999,999.99" 
    oBrow2:aCols[04]:nFooterType    := AGGR_TOTAL
    oBrow2:MakeTotals()         

*Cuando quiero actualizar solo pongo
       oBrow2:MakeTotals()

*Para la barra Vertical
      oBrow2:lVScroll := .T.

 
Si lo haces desde Recursos, ahi puedes poner la barra.
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by remtec »

Javier

Muchas gracias por responder.

Extrañamente no funciona al igual que todo lo que he aplicado desde el foro y Jose Luis.

Sigue mostrando Cero en el total de la columna, ni tampoco se muestra la barra, he revisado el Recurso RES de Pelles y no logro dar con la Solucion, ahora cambie el Codigo y Nada, pondre el nuevo codigo a ver si se descubre algun error.

Se llena todo el Xbrowse, pero la Columna Valor Total se muestra en cero en Footer.


Muchos Saludos
Antonio

Code: Select all

                DEFINE DIALOG oDlg RESOURCE "#1001"     Title " "
                REDEFINE SAY oSay1  ID 101 PROMPT "FECHA:" OF oDlg FONT oFont1
                REDEFINE SAY oSay3  ID 106 PROMPT "CAJERAS:" OF oDlg FONT oFont1

                REDEFINE SAY oSay  ID 100 PROMPT "MUESTRA INGRESOS DE CAJA "+dtoc(dFecha) OF oDlg FONT oFont  COLORS RGB(12, 135, 27)

                REDEFINE DTPICKER oFecha VAR dFecha ID 103  OF  oDlg  FONT oFont1  UPDATE
                /*
                REDEFINE COMBOBOX oOrden VAR nOrden ITEMS ArrTranspose(aOrden)[2] ID 102 OF oDlg COLORS nRGB(9, 11, 10), nRGB(73, 250, 202);
                             ON CHANGE (cOrden:=ArrTranspose(aOrden)[1][oOrden:nAt],oFiltra:Setfocus())
                */

                REDEFINE COMBOBOX oFiltra VAR nFiltra ITEMS ArrTranspose(aFiltra)[2] ID 107 OF oDlg COLORS nRGB(9, 11, 10), nRGB(73, 250, 202);
                                 ON CHANGE (cFiltra:=ArrTranspose(aFiltra)[1][oFiltra:nAt])



              REDEFINE BTNBMP ID 105 Resource "#8004" OF oDlg ;
                         ACTION (oDlg:END())

                REDEFINE CHECKBOX oEfecti VAR cEfecti  ID 122 OF oDlg  ON CHANGE bus_efec( oDlg)


              REDEFINE BTNBMP ID 110 Resource "#8005" OF oDlg TOOLTIP "BUSCAR INGRESOS"  FONT oFont1;
              ACTION IF(!Procesa(dFecha,cFiltra),(MsgStop(Mensa),.F.), (oIngre:Refresh(),oSay:Refresh(), .T.) )           // Aqui Boton Acepta

        //              ACTION  (Procesa(dFecha,cOrden,cFiltra,oIngre),oSay:Refresh(),oDlg:Refresh(),oIngre:Refresh())

             REDEFINE XBROWSE oIngre  DATASOURCE ALIAS(2) ;
                             COLUMNS;
                                 "Fol_caj",;
                             "Nom_pac",;
                                 "Tip_pag",;
                                 "Tip_ate",;
                                 "Tot_gen",;
                                 "Med_tra",;
                                 "Cod_dig",;
                                 "Hor_dig";
                                HEADERS;
                             "Folio Caja",;
                             "Nombre de Paciente",;
                                 "T. Pago",;
                                 "T. Aten",;
                                 "Valor Total",;
                                 "Med.Tra.",;
                                 "Digita",;
                                 "H.Digita";
                                    ID 104 OF oDlg;
                                    FONT oFont1;
                                 FOOTERS LINES CELL

                                 oIngre:nMarqueeStyle := MARQSTYLE_HIGHLROW
                                 oIngre:nColDividerStyle := LINESTYLE_INSET
                                 oIngre:nRowDividerStyle := LINESTYLE_INSET

                                 oIngre:lAutoSort := .t.
                                 oIngre:aCols[1]:cSortOrder := "&Nro_usu3"
                                 oIngre:aCols[3]:cSortOrder := "&Nro_usu5"
                                 oIngre:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                                 oIngre:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
                                 oIngre:l2007:=.t.

                                 oIngre:lVScroll := .f.
                                 oIngre:lFooter := .t.

                                 oIngre:aCols[05]:cEditPicture    := "99,999,999.99"
                                             oIngre:aCols[05]:nFooterType    := AGGR_TOTAL
                                             oIngre:MakeTotals()
            
                ACTIVATE DIALOG oDlg CENTERED ON INIT oIngre:SetFocus()




 
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by armando.lagunas »

Suponiendo de que el ALIAS(2) es una DBF común y silvestre y que Tot_Gen es un campo Numérico con al menos 1 decimal

Code: Select all


   use Tabla.dbf ALIAS PASO  EXCLUS NEW  // yo lo llamare asi el ALIAS



    REDEFINE XBROWSE oIngre   ID 104   COLUMNS "Fol_caj","Nom_pac","Tip_pag","Tip_ate","Tot_gen","Med_tra","Cod_dig","Hor_dig" ALIAS "PASO" OF oDlg;
                                                       FONT oFont1 NOBORDER AUTOSORT FOOTERS

                             oIngre:aCols[1]:cHeader  :=    "Folio Caja"
                             oIngre:aCols[2]:cHeaders :=    "Nombre de Paciente"
                             oIngre:aCols[3]:cHeaders :=    "T. Pago"
                             oIngre:aCols[4]:cHeaders :=    "T. Aten"
                             oIngre:aCols[5]:cHeaders :=    "Valor Total"
                             oIngre:aCols[6]:cHeaders :=    "Med.Tra."
                             oIngre:aCols[7]:cHeaders :=    "Digita"
                             oIngre:aCols[8]:cHeaders :=    "H.Digita"

                             oIngre:nMarqueeStyle := MARQSTYLE_HIGHLROW
                             oIngre:nColDividerStyle := LINESTYLE_INSET
                             oIngre:nRowDividerStyle := LINESTYLE_INSET

                              oIngre:aCols[1]:cSortOrder := "&Nro_usu3"
                              oIngre:aCols[3]:cSortOrder := "&Nro_usu5"
                              oIngre:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                              oIngre:bClrSelFocus        := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
                              oIngre:l2007:=.t.

                              oIngre:aCols[05]:nFooterType    := AGGR_TOTAL
           
                ACTIVATE DIALOG oDlg CENTERED ON INIT oIngre:SetFocus()
 
Prueba así y me cuentas resultados
remtec
Posts: 431
Joined: Fri May 12, 2017 2:50 pm

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by remtec »

Armando

Hola como estas, muchas gracias por responder.

He copiado todo tu codigo, un error al compilar, una s demas en cHeader, se compilo sin problema.

Lamentablemente sigue el totalizador en Cero, no totaliza, como dije antes, he probado muchos codigos del foro, pero no termina por mostrar la Suma Total, he revisado el Recurso RES, pensando que pueda ser algo en el, pero no encuentro nada.

Creo que se hace mas facil asi, dejo el link con un RAR con todos los archivos, si alguien dese echar una mano.

El programa en cuestion es " Ing_caj.PRG ", la variable a totalizar es " Tot_gen ".

Agradeciendo desde ya,

Muchos Saludos.
Antonio

Link del Programa:
https://drive.google.com/file/d/1uu5FLr ... sp=sharing
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by armando.lagunas »

segun veo en tu codigo, el problema es cuando le indicas al xbrowse que alias usar.

Code: Select all

                Sele 1
                Use Caja Shared
                If !file('&Nro_usu3..dbf')    // Paso para Tipo Informes
                Copy Struc TO &Nro_usu3
                Endif
                DbClosearea()

                Sele 2
                Use &Nro_usu3 Exclusi
                __dbZap()
                inde on fol_caj to &nro_usu3
        inde on tip_pag+str(fol_caj,10) to &nro_usu5
                Set Inde to &nro_usu3,&nro_usu5

                Sele 3
                Use Usuinfca Shared
                Set Inde to Usucanom
                Dbgotop()
                If Eof()
                     MsgStop(" NO Existen Profesionales Medicos ")
                     dbclosearea()
                     Return
                Endif
                Stor 0 to t2
                AADD( aFiltra,{ "TODAS","TODAS LAS CAJERAS"})
                Do While !Eof()
                     t2=1
                 AADD( aFiltra,{ c->Cod_usu,c->Nom_usu})
                 c->(DbSkip())
                Enddo
                DbClosearea()
                If t2=0
                 MsgStop(" NO Existen Cajeras a Procesar ")
                     DbCloseAll()
                     Return
              Endif
                Sele &Nro_usu3
                DbGotop()

                cAlias="&Nro_usu3"
 
tambien veo en el rar, 3 tablas dbf

caja.dbf, ingca1.dbf, ingca2.dbf los 3 archivos contienen el campo TOT_GEN
asumo de que el que quieres utilizar es caja.dbf

lo que haria yo es lo siguiente.

Code: Select all


USE CAJA.DBF ALIAS CAJA SHARED NEW

        If !file('caja_paso.dbf')    // Paso para Tipo Informes
            Copy Struc TO caja_paso.dbf
        Endif
    
USE CAJA_PASO.DBF ALIAS PASO EXCLUSIVE NEW
  //-- esto no es necesario ya que copias la estructura vacia de la tabla caja ***      __dbZap()

    index on fol_caj to paso_01
        index on tip_pag + str(fol_caj,10) to paso_02
    Set Index to paso_01, paso_02
        ...
        ...
      
        ** yo no usaría el simbolo & ya que eso indica al compilador el "contenido de"

 
una vez definido bien los alias ocupas el xbrowse como te indique, cambiando el ALIAS(2) por el de paso

Code: Select all

             REDEFINE XBROWSE oIngre   ID 104   COLUMNS "Fol_caj","Nom_pac","Tip_pag","Tip_ate","Tot_gen","Med_tra","Cod_dig","Hor_dig" ALIAS "PASO" OF oDlg;
                                                       FONT oFont1 NOBORDER AUTOSORT FOOTERS


                             oIngre:aCols[1]:cHeader  :=    "Folio Caja"
                             oIngre:aCols[2]:cHeader :=    "Nombre de Paciente"
                             oIngre:aCols[3]:cHeader :=    "T. Pago"
                             oIngre:aCols[4]:cHeader :=    "T. Aten"
                             oIngre:aCols[5]:cHeader :=    "Valor Total"
                             oIngre:aCols[6]:cHeader :=    "Med.Tra."
                             oIngre:aCols[7]:cHeader :=    "Digita"
                             oIngre:aCols[8]:cHeader :=    "H.Digita"

                             oIngre:nMarqueeStyle := MARQSTYLE_HIGHLROW
                             oIngre:nColDividerStyle := LINESTYLE_INSET
                             oIngre:nRowDividerStyle := LINESTYLE_INSET

                              oIngre:aCols[1]:cSortOrder := "Paso_01"
                              oIngre:aCols[3]:cSortOrder := "Paso_02"
                              oIngre:bClrStd                  := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
                              oIngre:bClrSelFocus           := {|| { nRGB(  0,  0,  0), nRGB(137, 247, 33) } }
                              oIngre:l2007                     :=.t.

                              oIngre:aCols[05]:nFooterType  := AGGR_TOTAL

 
primero te lo mostrará vacío y por ende el total del footer estará en 0
al agregar datos a la visualización del xbrowse, debes de hacer el oIngre:Maketotals() para que te calcule totales

dependiendo de la acción del xbrowse puedes hacer un bChange o un bValid

Ej.

Code: Select all

     ...
     ...
     oIngre:bChange := {|| oIngre:Maketotals() }

 
Espero de que te resulte, yo nunca he tenido problemas con los totales, promedios o contadores en los footers

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

Re: AYUDA CON TOTAL POR COLUMNA EN XBROWSE

Post by remtec »

Hola Armando.

Mil gracias por tu tiempo y preocupación, al igual que todos los amigos que intervinieron.

Eres un Maestro, tenias toda la razón, se trataba de la actualización del Totalizador, solo aplique tu sugerencia en las opciones que se encargan de actualizar el Xbrowse.

Para aclarar sobre las DBF, "CAJA.DBF", es la Dbf Maestra, la DBF "Ingca1.dbf", es dbf de paso se crea desde la estructura de Caja, su nombre inicia con "Ingca"+el Nro de Usuario que ingresa al sistema, esto me permite que esta base sea personal y no compartida, por el proceso que realiza, quizas no sea la forma mas correcta, pero siempre me a funcionado. Si hay otra sugerencia, bienvenida y la revisaria. Es por esto que dentro del sistema las uso como " &Nro_usu3 ", que es la varia que trae el nombre de la dbf creada.

Ejemplo:

Code: Select all

REDEFINE CHECKBOX oEfecti VAR cEfecti  ID 122 OF oDlg;
        ON CHANGE (bus_efec( oDlg), [b]oIngre:MakeTotals(),oIngre:Refresh()[/b])
 
Eternamente agradecido.

Muchos Saludos.
Antonio.
Post Reply