xBrowse con orden descendente desde el inicio

xBrowse con orden descendente desde el inicio

Postby nanoespinoza » Wed Jul 29, 2020 4:13 pm

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  Expand view  RUN

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.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: xBrowse con orden descendente desde el inicio

Postby karinha » Wed Jul 29, 2020 5:10 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7844
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: xBrowse con orden descendente desde el inicio

Postby karinha » Wed Jul 29, 2020 5:11 pm

Code: Select all  Expand view  RUN


  // Swap it to descending - Trocar para descendente
  SET DESCENDING OFF
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7844
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: xBrowse con orden descendente desde el inicio

Postby nanoespinoza » Wed Jul 29, 2020 5:47 pm

Estimado Karinha

Agregando el SET DESCENDINF OFF, tampoco me ayuda, estoy con Arrays.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: xBrowse con orden descendente desde el inicio

Postby nanoespinoza » Thu Jul 30, 2020 2:35 am

Estimados:

Algún otro aporte que aclare como resolver el problema descrito.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: xBrowse con orden descendente desde el inicio

Postby karinha » Thu Jul 30, 2020 3:04 am

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7844
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: xBrowse con orden descendente desde el inicio

Postby nanoespinoza » Thu Jul 30, 2020 4:10 am

Estimado Karinha

Gracias por el apoyo; pero por ahí tampoco veo la solución.

Saludos

FE
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: xBrowse con orden descendente desde el inicio

Postby nageswaragunupudi » Thu Jul 30, 2020 5:21 am

Code: Select all  Expand view  RUN
#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  Expand view  RUN
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
}
 


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse con orden descendente desde el inicio

Postby nanoespinoza » Thu Jul 30, 2020 8:04 pm

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.
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: xBrowse con orden descendente desde el inicio

Postby nageswaragunupudi » Fri Jul 31, 2020 5:32 am

When you want to set a new array to the browse, do not use SetArray().
Do like this:
Code: Select all  Expand view  RUN

oBrw:aArrayData := aNewArray
oBrw:cOrders := ""
oBrw:aCols[ 1 ]:cOrder := "A"
oBrw:aCols[ 1 ]:SetOrder()
oBrw:GoTop()
oBrw:Refresh()
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10662
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: xBrowse con orden descendente desde el inicio

Postby artu01 » Thu Aug 13, 2020 9:29 pm

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

Image

y deberia salir asi:

Image
Pego mi codigo
Code: Select all  Expand view  RUN

    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
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: xBrowse con orden descendente desde el inicio

Postby artu01 » Thu Aug 13, 2020 10:34 pm

Mr. rao lo solucione de esta forma:
Code: Select all  Expand view  RUN

    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() )
 
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 58 guests