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