Page 1 of 1

Agregar columna xbrowse

Posted: Sun Jul 14, 2019 1:19 am
by surGom
Hola buenas noches, quiero hacer un xbrowse de una base de datos , y en el mismo agregar una columna con la suma de _ numericos
de la base de datos mas la celda anterior de esta columna. O algún ejemplo para emular.

Gracias

Re: Agregar columna xbrowse

Posted: Sun Jul 14, 2019 5:28 am
by nageswaragunupudi

Code: Select all

#include "fivewin.ch"

REQUEST DBFCDX

function Main()

   local oDlg, oBrw, oFont, aTotals, d
   local nTotal   := 0

   SetGetColorFocus()
   FWNumFormat( "E", .t. )

   USE CUSTOMER NEW ALIAS CUST SHARED VIA "DBFCDX"
   SET FILTER TO !DELETED()
   GO TOP
   aTotals  := Array( OrdKeyCount() )
   DBEVAL( { || aTotals[ OrdKeyNo() ] := nTotal := FIELD->AGE + FIELD->SALARY + nTotal } )
   GO TOP

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 500,500 PIXEL TRUEPIXEL FONT oFont
   @ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
      DATASOURCE "CUST" ;
      COLUMNS "FIRST", "AGE", "SALARY", { || aTotals[ OrdKeyNo() ] } ;
      HEADERS nil, nil, nil, "CUMTOTAL" ;
      PICTURES nil, nil, nil, NUMPICT( 11, 2 ) ;
      CELL LINES NOBORDER FASTEDIT

   WITH OBJECT oBrw
      :nEditTypes    := EDIT_GET
      :CumTotal:nEditType := EDIT_NONE
      :Age:bOnChange := ;
      :Salary:bOnChange := { |oCol,uOldVal| d := oCol:Value - uOldVal, ;
                              AEval( aTotals, { |n,i| aTotals[i] := n + d }, CUST->( OrdKeyNo() ), ;
                              oBrw:Refresh() ) }
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil
 
This sample uses customer.dbf in fwh\samples folder.
The last column is the cumulative (running) total of the fields AGE + SALARY.
This browse can be edited. When AGE or SALARY is edited and modified, the last column values are also changed.

Re: Agregar columna xbrowse

Posted: Mon Jul 15, 2019 10:53 pm
by surGom
Thanks Mrs Rao it worked perfect