Page 1 of 1
xBrowse sum help? (SOLVED)
Posted: Mon Jun 20, 2022 9:57 am
by Horizon
Hi,
I want to sum one column in xbrowse. If I sum all of records, there is not any problem using below.

Code: Select all | Expand
if ! Empty( oCol := oBrw:oCol( "Ödeme Yeri" ) )
oCol:nHeadStrAlign := AL_LEFT
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 70
oCol:bStrData:={|o| IIF((oBrw:cAlias)->OD_YERI="H","Havale","Büroda")}
oCol:cFooter := "Toplam"+CRLF+"Havale"+CRLF+"Büroda"
endif
if ! Empty( oCol := oBrw:oCol( "Tutar" ) )
oCol:nWidth := 90
oCol:nTotal := 0
oCol:lTotal := .t.
endif
oBrw:lFooter := .T.
oBrw:nFooterLines := 3
But I want to sum "Havale", "Büroda" and "all" records in "Ödeme Yeri" like that
Any help?
Re: xBrowse sum help?
Posted: Tue Jun 21, 2022 8:36 am
by nageswaragunupudi
Code: Select all | Expand
if ! Empty( oCol := oBrw:oCol( "Tutar" ) )
oCol:nWidth := 90
oCol:nFooterType := AGGR_SUM
// oCol:nTotal := 0
// oCol:lTotal := .t.
endif
and finally,
Re: xBrowse sum help?
Posted: Tue Jun 21, 2022 8:51 am
by Horizon
Thank you Mr. Rao,
I have changed your advice but there is not any change.
As I said before, I should sum three condition. 1. all, 2. Header Ödeme Yeri = "Büroda", 3 - Header Ödeme Yeri = "Havale"
and I want to show three total in footer "Tutar" column.
Re: xBrowse sum help?
Posted: Wed Jun 22, 2022 5:05 am
by nageswaragunupudi
XBrowse does not natively support multiple totals in a single column.
We need to use workaround.
Please try this sample:
Code: Select all | Expand
#include "fivewin.ch"
function Main()
USE CUSTOMER
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
DEFINE DIALOG oDlg SIZE 500,500 PIXEL TRUEPIXEL FONT oFont
@ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
DATASOURCE "CUSTOMER" ;
COLUMNS "FIRST", "MARRIED", "SALARY", "SALARY AS SALU" ;
COLSIZES 100,80,120 ;
LINES NOBORDER FASTEDIT FOOTERS
WITH OBJECT oBrw
:nStretchCol := 1
:nFooterLines := 3
:nEditTypes := EDIT_GET
WITH OBJECT :Married
:SetCheck()
:bFooter := { || "Total" + CRLF + "Married" + CRLF + "Unmarried" }
:nFootStrAlign := AL_RIGHT
END
WITH OBJECT :Salary
:cEditPicture := "@E 999,999,999.99"
:nFooterType := AGGR_SUM
:bSumCondition := { || oBrw:Married:Value }
:bFooter := { |o| TRANSFORM( o:nTotal + oBrw:SalU:nTotal, o:cEditPicture ) + CRLF + ;
TRANSFORM( o:nTotal, o:cEditPicture ) + CRLF + ;
TRANSFORM( oBrw:SalU:nTotal, o:cEditPicture ) }
END
WITH OBJECT :SalU
:nFooterType := AGGR_SUM
:bSumCondition := { || !oBrw:Married:Value }
:lHide := .t.
END
:MakeTotals()
:CreateFromCode()
END
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont
CLOSE CUSTOMER
return nil

Please use similar logic in your program.
Re: xBrowse sum help?
Posted: Fri Jun 24, 2022 11:52 am
by Horizon
nageswaragunupudi wrote:XBrowse does not natively support multiple totals in a single column.
We need to use workaround.
Please try this sample:
Code: Select all | Expand
#include "fivewin.ch"
function Main()
USE CUSTOMER
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-15
DEFINE DIALOG oDlg SIZE 500,500 PIXEL TRUEPIXEL FONT oFont
@ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg ;
DATASOURCE "CUSTOMER" ;
COLUMNS "FIRST", "MARRIED", "SALARY", "SALARY AS SALU" ;
COLSIZES 100,80,120 ;
LINES NOBORDER FASTEDIT FOOTERS
WITH OBJECT oBrw
:nStretchCol := 1
:nFooterLines := 3
:nEditTypes := EDIT_GET
WITH OBJECT :Married
:SetCheck()
:bFooter := { || "Total" + CRLF + "Married" + CRLF + "Unmarried" }
:nFootStrAlign := AL_RIGHT
END
WITH OBJECT :Salary
:cEditPicture := "@E 999,999,999.99"
:nFooterType := AGGR_SUM
:bSumCondition := { || oBrw:Married:Value }
:bFooter := { |o| TRANSFORM( o:nTotal + oBrw:SalU:nTotal, o:cEditPicture ) + CRLF + ;
TRANSFORM( o:nTotal, o:cEditPicture ) + CRLF + ;
TRANSFORM( oBrw:SalU:nTotal, o:cEditPicture ) }
END
WITH OBJECT :SalU
:nFooterType := AGGR_SUM
:bSumCondition := { || !oBrw:Married:Value }
:lHide := .t.
END
:MakeTotals()
:CreateFromCode()
END
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont
CLOSE CUSTOMER
return nil

Please use similar logic in your program.
Thank you very much Mr. Rao. I have done like you described.