xbrowse alinear columnas.

Post Reply
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

xbrowse alinear columnas.

Post 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
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: xbrowse alinear columnas.

Post by horacio »

Con que versión estás compilando ?

Saludos
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Re: xbrowse alinear columnas.

Post by Garbi »

Fivewin Habour 15.09 y borland cc 5.82
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: xbrowse alinear columnas.

Post 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.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Re: xbrowse alinear columnas.

Post by Garbi »

Muchas Gracias. Funcionando Perfectamente.
Gracias por evitarme horas de trabajo.

Un saludo.
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: xbrowse alinear columnas.

Post by jbrita »

Hola garbi como armas vprompt y vFolders

PROMPT &vprompt DIALOGS &vfolders

Saludos
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Re: xbrowse alinear columnas.

Post 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

 
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: xbrowse alinear columnas.

Post by jbrita »

Muchas Gracias resulto bien.
Saludos
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: xbrowse alinear columnas.

Post 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
Garbi
Posts: 250
Joined: Wed Nov 02, 2005 3:28 pm

Re: xbrowse alinear columnas.

Post 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
Post Reply