Page 1 of 1
xBrowse con orden descendente desde el inicio
Posted: Wed Jul 29, 2020 4:13 pm
by nanoespinoza
Estimados
Estoy que le doy la vuelta a un problema y no le encuentro solución; xBrwose tiene muchas prestaciones interesantes, cada vez es más potente y cada vez las uso más; pero no encuentro como lograr que un xBrwose con array al iniciar el mismo, empiece con orden DESCENDENTE en la columna que tiene asignado el orden, por más que hago, siempre empieza con el orden ascendente, y toca dar el click en la cabecera de la columna deseada para invertirlo.
El código resumido que uso:
Code: Select all
DEFINE DIALOG oDlgTorn OF oVent RESOURCE "EDICION_CAMPS" FONT oFnt1 TRANSPARENT
.........
.........
REDEFINE COLUMN XBROWSE oLbx ID 301 OF oDlgTorn ARRAY aDatos AUTOSORT UPDATE 2015
ADD COLUMN TO oLbx AT 1 ARRAY ELEMENT 1 HEADER "Temp." WIDTH 57 ALIGN CENTER
....
.... (23 columnas)
FOR ni=23 TO 1 STEP -1
oLbx:aCols[ni]:nHeadStrAlign:= AL_CENTER
oLbx:aCols[ni]:bLClickHeader:= {|| oLbx:Gotop()}
oLbx:aCols[ni]:cTooltip := {aToolTips[ni], "SicefWin "+cVersSW, 1, CLR_WHITE, CLR_CYAN}
oLbx:aCols[ni]:cOrder := "D"
oLbx:aCols[ni]:cSortOrder:= ni
oLbx:aCols[ni]:SortArrayData()
NEXT
.....
.....
ACTIVATE DIALOG oDlgTorn CENTERED ON INIT ( oLbx:aCols[2]:SetOrder(), Eval(oLbx:aCols[2]:bLClickHeader), oLbx:aCols[2]:nHeadBmpNo:=IF(cOrdenLbx="A", 1, 2) )
Saludos
Fernando Espinoza A.
Re: xBrowse con orden descendente desde el inicio
Posted: Wed Jul 29, 2020 5:10 pm
by karinha
Re: xBrowse con orden descendente desde el inicio
Posted: Wed Jul 29, 2020 5:11 pm
by karinha
Code: Select all
// Swap it to descending - Trocar para descendente
SET DESCENDING OFF
Re: xBrowse con orden descendente desde el inicio
Posted: Wed Jul 29, 2020 5:47 pm
by nanoespinoza
Estimado Karinha
Agregando el SET DESCENDINF OFF, tampoco me ayuda, estoy con Arrays.
Saludos
Fernando Espinoza A.
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Jul 30, 2020 2:35 am
by nanoespinoza
Estimados:
Algún otro aporte que aclare como resolver el problema descrito.
Saludos
Fernando Espinoza A.
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Jul 30, 2020 3:04 am
by karinha
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Jul 30, 2020 4:10 am
by nanoespinoza
Estimado Karinha
Gracias por el apoyo; pero por ahí tampoco veo la solución.
Saludos
FE
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Jul 30, 2020 5:21 am
by nageswaragunupudi
Code: Select all
#include "fivewin.ch"
function Main()
local aData := {{ 1001, "One", "Sun" }, { 1002, "Two", "Mon" }, { 1003, "Three", "Tues" }, { 1004, "Four", "Wed" }}
local oDlg, oBrw
DEFINE DIALOG oDlg RESOURCE "TEST"
REDEFINE XBROWSE oBrw ID 101 DATASOURCE aData ;
COLUMNS 1, 2, 3 AUTOSORT
ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:aCols[ 1 ]:SetOrder(), oBrw:GoTop() )
return nil
Code: Select all
TEST DIALOG 6, 15, 210, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "TXBrowse demo"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "OK", IDOK, 252, 211, 50, 14
CONTROL "", 101, "TXBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 4, 5, 200, 100
}
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Jul 30, 2020 8:04 pm
by nanoespinoza
Estimado Mr. Rao:
He probado su sugerencia y me funciona bien cuando cargo el xBrowse por primera vez; pero en mi aplicación necesito cambiar el contenido del xBrowse de forma constante a través de una selección que se realiza en un combobox y usando oBrw:SetArray(aData). Entonces al refrescar el dialogo con oDlg:Update(), vuelve a mostrarse el xBrowse en orden Ascendente.
Esto con la versión 1711 de xHarbour.
Saludos
Fernando Espinoza A.
Re: xBrowse con orden descendente desde el inicio
Posted: Fri Jul 31, 2020 5:32 am
by nageswaragunupudi
When you want to set a new array to the browse, do not use SetArray().
Do like this:
Code: Select all
oBrw:aArrayData := aNewArray
oBrw:cOrders := ""
oBrw:aCols[ 1 ]:cOrder := "A"
oBrw:aCols[ 1 ]:SetOrder()
oBrw:GoTop()
oBrw:Refresh()
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Aug 13, 2020 9:29 pm
by artu01
nageswaragunupudi wrote:#include "fivewin.ch"
function Main()
local aData := {{ 1001, "One", "Sun" }, { 1002, "Two", "Mon" }, { 1003, "Three", "Tues" }, { 1004, "Four", "Wed" }}
local oDlg, oBrw
DEFINE DIALOG oDlg RESOURCE "TEST"
REDEFINE XBROWSE oBrw ID 101 DATASOURCE aData ;
COLUMNS 1, 2, 3 AUTOSORT
ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:aCols[ 1 ]:SetOrder(), oBrw:GoTop() )
return nil
Mr. Rao
Con array si funciona el orden descendente pero con recordset no ordena la columna
lote en forma descendente
Sale asi
y deberia salir asi:
Pego mi codigo
Code: Select all
cSql:= "SELECT lote, FORMAT(fecha, 'dd/MM/yyyy') as fecha, descrip as material, color, nombre as prove, idmat, idcol, idpro, importe, impuesto, valor, obruto, oneto, oCajas,"
cSql+="incaj, inbru, innet, sacaj, sabru, sanet, tica, cajas, neto, bruto, doingre, dosalid, dosaldo, puni from lotes where fecha> '1994-12-31' "
cSql+="order by lote "
TRY
oRs1 := FW_OpenRecordSet( oConnect, cSql, adLockOptimistic ) // adLockBatchOptimistic
lRs:=.T.
CATCH oError
MsgStop( oError:Description )
END
DEFINE DIALOG oDlg RESOURCE "TEST"
REDEFINE XBROWSE oBrw ID 4025 DATASOURCE oRs1 ;
COLUMNS "lote" AUTOSORT
//oBrw:aCols[ 1 ]:cOrder:="D"
ACTIVATE DIALOG oDlg CENTERED ON INIT ( oBrw:aCols[ 1 ]:SetOrder(),oBrw:GoTop() )
Please help me
Thanks
Re: xBrowse con orden descendente desde el inicio
Posted: Thu Aug 13, 2020 10:34 pm
by artu01
Mr. rao lo solucione de esta forma:
Code: Select all
cSql:= "SELECT lote, FORMAT(fecha, 'dd/MM/yyyy') as fecha, descrip as material, color, nombre as prove, idmat, idcol, idpro, importe, impuesto, valor, obruto, oneto, oCajas,"
cSql+="incaj, inbru, innet, sacaj, sabru, sanet, tica, cajas, neto, bruto, doingre, dosalid, dosaldo, puni from lotes where fecha> '1994-12-31' "
cSql+="order by lote desc "
TRY
oRs1 := FW_OpenRecordSet( oConnect, cSql, adLockOptimistic ) // adLockBatchOptimistic
lRs:=.T.
CATCH oError
MsgStop( oError:Description )
END
REDEFINE XBROWSE oBrw ;
DATASOURCE oRs1 ;
COLUMNS "LOTE"
ID 4001 OF oDlg ;
AUTOSORT ;
LINES CELL NOBORDER UPDATE
oBrw:lSeekWild := .t.
oBrw:aCols[ 1 ]:cOrder:="D"
oBrw:aCols[ 1 ]:SetOrder()
ACTIVATE DIALOG oDlg NOWAIT ON INIT (oBrw:aCols[ 1 ]:SetOrder(), oBrw:GoTop(), oBrw:Setfocus() )