Page 1 of 1

xbrowse alinear columnas.

Posted: Tue Feb 07, 2017 12:59 pm
by Garbi
En el ejmeplo que pongo quiero alinear todo a centrado, el titulo si sale centrado, pero no se como alinear centrado los datos de las celdas, he probado con :nDataStrAlign pero me da el siguiente error : Message not found: TXBROWSE:NDATASTRALIGN

Alguien podria indicarme como ordenar los datos dentro de cada "celda". Se que deber ser una tonteria, pero no lo consigo.

Muchas Gracias.

Code: Select all

 REDEFINE FOLDER oFld ID 101 OF oDDATOS UPDATE;
             PROMPT &vprompt DIALOGS &vfolders ADJUST;
             on change (refrescardatos(vestanteria,oBrw[oFld:nOption],oFld:nOption,vfilas))

       FOR i:=1 to vprofundo
           REDEFINE XBROWSE oBrw[i] ID 101 ;
                  HEADERS V_Header ;
                  SIZES   V_ColSize ;
                  DATASOURCE aData[i] AUTOCOLS CELL LINES NOBORDER FASTEDIT of oFld:aDialogs[i]

            WITH OBJECT oBrw[ i ]
             :bRClicked:= {|| borrararticulo(aData,oBrw,oFld:nOption,vestanteria,vfilas,oFld) }
             :bLDblClick := {|| buscararticulo(aData,oBrw,oFld:nOption,vestanteria) }
             :bKeychar := {|nkey| iif(nkey=13 .and. oBrw[oFld:nOption]:nColSel > 1,buscararticulo(aData,oBrw,oFld:nOption,vestanteria),)}
             :lColChangeNotify := .t.
             :bChange := { |oBrw| refrescardatos(vestanteria,oBrw,oFld:nOption,vfilas)}
             :nFreeze:=1
             :lFullGrid  := .t.

           END

       next i

Re: xbrowse alinear columnas.

Posted: Tue Feb 07, 2017 4:16 pm
by horacio
Con que versión estás compilando ?

Saludos

Re: xbrowse alinear columnas.

Posted: Tue Feb 07, 2017 4:29 pm
by Garbi
Fivewin Habour 15.09 y borland cc 5.82

Re: xbrowse alinear columnas.

Posted: Tue Feb 07, 2017 4:48 pm
by FranciscoA
Garbi.
Intentalo asi:
....
....

Code: Select all

WITH OBJECT oBrw[ i ]
             :bRClicked:= {|| borrararticulo(aData,oBrw,oFld:nOption,vestanteria,vfilas,oFld) }
             :bLDblClick := {|| buscararticulo(aData,oBrw,oFld:nOption,vestanteria) }
             :bKeychar := {|nkey| iif(nkey=13 .and. oBrw[oFld:nOption]:nColSel > 1,buscararticulo(aData,oBrw,oFld:nOption,vestanteria),)}
             :lColChangeNotify := .t.
             :bChange := { |oBrw| refrescardatos(vestanteria,oBrw,oFld:nOption,vfilas)}
             :nFreeze:=1
             :lFullGrid  := .t.
 END

AEval(oBrw[ i ]:aCols, {|o| o:nDataStrAlign := AL_CENTER })   // <----

next i
Saludos.

Re: xbrowse alinear columnas.

Posted: Tue Feb 07, 2017 5:08 pm
by Garbi
Muchas Gracias. Funcionando Perfectamente.
Gracias por evitarme horas de trabajo.

Un saludo.

Re: xbrowse alinear columnas.

Posted: Tue Nov 24, 2020 2:53 pm
by jbrita
Hola garbi como armas vprompt y vFolders

PROMPT &vprompt DIALOGS &vfolders

Saludos

Re: xbrowse alinear columnas.

Posted: Tue Nov 24, 2020 3:05 pm
by Garbi

Code: Select all

// varias profundos


 for i:=1 to vcolumnas+1
     if i = 1
         AADD(V_Header," ")
         AADD(V_Colsize,50)
     ELSE
         AADD(V_Header,"Columna "+alltrim(transform(i-1,"999")))
         AADD(V_Colsize,100)
     endif
next i


vprompt:= '" 1 Profundidad"'
for i:=2 to vprofundo
     vprompt:=vprompt+","+'"'+alltrim(transform(i,"999"))+' Profundidad"'
next i


vfolders:='"FOLDERS"'
FOR i:= 2 to vprofundo
    vfolders:=vfolders+","+'"FOLDERS"'
next i

   aData    := Array( vprofundo )
   aData[ 1 ]  := Array( vfilas, vcolumnas+1 )

   AEval( aData[ 1 ], { |a,k| a[ 1 ] := chr(( k )+64) } )

   for i:= 2 to vcolumnas+1
        AEval( aData[ 1 ], { |a,k| a[ i ] := space(10) } )
   next i
   AEval( aData, { |u,k| aData[ k ] := AClone( aData[ 1 ] ) }, 2 )
   oBrw  := Array( vprofundo )

    area:=select()
    cdestant := OpenDbf(fdestant,1, , , , kdestant,"DBFCDX")
   (cdestant)->(DbSetOrder(1))
   (cdestant)->(Dbgotop())
    acdestan:=select()
    dbseek(vestanteria)
    do while !eof() .and. (cdestant)->estanteria = vestanteria
      aData[(cdestant)->profundo][(cdestant)->fila,(cdestant)->columna+1]:= (cdestant)->articulo
       dbskip()
    enddo
    (cdestant)->(Dbclosearea())
    select(area)



 DEFINE Dialog oDDATOS RESOURCE "FOLDER_VARIOS" TITLE "Estanteria : "+alltrim(vestanteria)+" -- "+alltrim(vdetallestanteria) OF oApp:aMod[20]:oWnd

        REDEFINE get gvfcliente  Var vfcliente  ID 102 of oDDATOS when lsay
        REDEFINE get gvfnombre   Var vfnombre   ID 103 of oDDATOS when lsay
        REDEFINE get gvfarticulo Var vfarticulo ID 104 of oDDATOS when lsay
        REDEFINE get gvfdetalle  Var vfdetalle  ID 105 of oDDATOS when lsay
        REDEFINE get gvfcantidad Var vfcantidad ID 106 of oDDATOS when lsay
        REDEFINE get gvfpaquetes Var vfpaquetes ID 107 of oDDATOS when lsay

        REDEFINE get gvfcolumna Var  vfcolumna  ID 108 of oDDATOS when lsay
        REDEFINE get gvffila     Var  vffila      ID 109 of oDDATOS when lsay
        REDEFINE get gvfprofundo Var vfprofundo ID 110 of oDDATOS when lsay

      REDEFINE FOLDEREX oFld ID 101 OF oDDATOS UPDATE;
             PROMPT &vprompt DIALOGS &vfolders ;
             on change (refrescardatos(vestanteria,oBrw[oFld:nOption],oFld:nOption,vfilas))

       FOR i:=1 to vprofundo
           REDEFINE XBROWSE oBrw[i] ID 101 ;
                  HEADERS V_Header ;
                  SIZES   V_ColSize ;
                  DATASOURCE aData[i] AUTOCOLS CELL LINES NOBORDER FASTEDIT of oFld:aDialogs[i]

            WITH OBJECT oBrw[ i ]
             :bRClicked:= {|| borrararticulo(aData,oBrw,oFld:nOption,vestanteria,vfilas,oFld) }
             :bLDblClick := {|| buscararticulo(aData,oBrw,oFld:nOption,vestanteria) }
             :bKeychar := {|nkey| iif(nkey=13 .and. oBrw[oFld:nOption]:nColSel > 1,buscararticulo(aData,oBrw,oFld:nOption,vestanteria),)}
             :lColChangeNotify := .t.
             :bChange := { |oBrw| refrescardatos(vestanteria,oBrw,oFld:nOption,vfilas)}
             :nFreeze:=1
             :lFullGrid  := .t.

           END

           AEval(oBrw[ i ]:aCols, {|o| o:nDataStrAlign := AL_CENTER })
       next i

 

Re: xbrowse alinear columnas.

Posted: Tue Nov 24, 2020 5:46 pm
by jbrita
Muchas Gracias resulto bien.
Saludos

Re: xbrowse alinear columnas.

Posted: Thu Nov 26, 2020 4:50 pm
by jbrita
Garbi yo armo asi:

Local aData
LOcal vData:=""

cProductos:=xServer:Query("SELECT * FROM productos")
cProductos:GoTop()
vData:='"aProd"'
cProductos:Skip(1) //Skip
Do While !cProductos:Eof()
vData :=vData +","+ '"aProd"'

cProductos:Skip(1) //Skip
ENDDO
cProductos:End()

? vData

aData := Array( vData )

? aData //aca esta vacio marca error

saludos

Re: xbrowse alinear columnas.

Posted: Thu Nov 26, 2020 5:16 pm
by Garbi
Vamos a ver si me acuerdo, que ya hace tiempo.

Creo que el error que esta teniendo es que :

aData := Array( vData )

vData es un "literal" no es un numero, fijate que yo asigno vprofundo, que es un numero, es decir lo largo del array, tu deberías asignar el numero de registros, y casi te diria que numero de registros +1 que tienes fuera.

Prueba a ver si fuera eso