xBrowse ascending order
Posted:
Wed Aug 07, 2013 6:44 pm
by Otto
xBrowse
I can’t remember how to fix XBrowse on ascending order when clicking on Header.
Thanks in advance
Otto
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 2:10 am
by nageswaragunupudi
When we click on header of an unsorted column, it will be sorted in Ascending Order. If we click again on the header of a sorted column, the order keeps toggling between ascending and descending.
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 3:59 am
by ShumingWang
oCol := obrow1:AddCol()
oCol:bStrData := {||odb1:startdate}
oCol:cHeader := "创建日期"
oCol:cOrder := "A"
oCol:nHeadBmpNo := 1
oCol:bLClickHeader := {|r,c,f,o| ::bas1205( r,c,o) }
...
method bas1205(nrow,ncol,oCol) class bas12class
local aCols,cOrder,nFor,nLen
local nat,id1
aCols := oCol:oBrw:aCols
cOrder := oCol:cOrder
nAt := oCol:nCreationOrder
nLen := LEN(aCols)
for nFor := 1 to nLen
aCols[ nFor ]:nHeadBmpNo := 0
aCols[ nFor ]:cOrder := ""
next
do case
case nAt==1
id1:=::odb1:custid
::odb1:cQuery:="select * from custm1 order by custid"+if(corder=="A"," desc","")
::odb1:refresh()
::obrow:refresh()
::obrow:bseek:={|v|::odb1:SEEK(v,,{||::odb1:custid})}
::obrow:SEEK(id1)
case nAt==3
id1:=::odb1:custm
::odb1:cQuery:="select * from custm1 order by custm"+if(corder=="A"," desc","")
::odb1:refresh()
::obrow:refresh()
::obrow:bseek:={|v|::odb1:SEEK(v,,{||::odb1:custm})}
::obrow:SEEK(id1)
case nAt==5
id1:=::odb1:sales
::odb1:cQuery:="select * from custm1 order by sales"+if(corder=="A"," desc","")
::odb1:refresh()
::obrow:refresh()
::obrow:bseek:={|v|::odb1:SEEK(v,,{||::odb1:sales})}
::obrow:SEEK(id1)
case nAt==6
id1:=::odb1:addrc
::odb1:cQuery:="select * from custm1 order by addrc"+if(corder=="A"," desc","")
::odb1:refresh(.t.)
::obrow:refresh()
::obrow:bseek:={|v|::odb1:SEEK(v,,{||::odb1:addrc})}
::obrow:SEEK(id1)
endcase
if nat==1.or.nat==3.or.nat==5.or.nat==6
if cOrder == "" .or. cOrder == "D"
oCol:cOrder := "A"
oCol:nHeadBmpNo := 1
else
oCol:cOrder := "D"
oCol:nHeadBmpNo := 2
endif
end
return
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 5:51 am
by Otto
Thank you for your help.
Mr. Rao is it possible to switch off toggling.
Thanks in advance
Otto
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 6:22 am
by nageswaragunupudi
Mr Otto
We have not provided for disabling toggling.
Do you want to disable toggling globally for the entire project or for selected browses only?
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 12:36 pm
by Rick Lipkin
Otto
I believe you can just omit AUTOSORT when you create your browse ... if I recall that disables the header click to sort.
Rick Lipkin
Re: xBrowse ascending order
Posted:
Thu Aug 08, 2013 1:50 pm
by nageswaragunupudi
Mr Rick
He wants autosort.
What he does not want is descending sort.
I shall help when he explains to me whether he wants to suppress Descending sort globally or for selected browses. i shall think of introducing a switch for that purpose.
Re: xBrowse ascending order
Posted:
Fri Aug 09, 2013 7:40 am
by Otto
Dear Mr. Rao,
to suppress toggling for a single browser would be fine for me.
Thanks in advance
Otto
Re: xBrowse ascending order
Posted:
Sun Aug 11, 2013 5:09 am
by nageswaragunupudi
Mr Otto
Please introduce new DATA by adding this line in the class declaration section of xbrowse.prg
- Code: Select all Expand view
DATA lSortDescend AS LOGICAL INIT .t.
Desirable position is next to DATA lAutoSort.
In the METHOD SetOrder CLASS TXBrwColumn, insert these three lines of code just after local declaration:
- Code: Select all Expand view
if ::cOrder == 'A' .and. ! ::oBrw:lSortDescend
return .f.
endif
For whichever browse, you do not want descend sort, please set
oBrw:lSortDescend := .f.