Page 1 of 1

Ayuda para ajustar xbrowse en Folderex

PostPosted: Fri Feb 10, 2017 7:31 pm
by Garbi
He cambiado a Folderex, y la verdad es que ha mejorado bastante el aspecto respecto a folder, pero el xbrowse no se me ajusta al folder

Por ejemplo son 10 columnas y solo me salen nueve cuando hay espacio a la derecha y falta el scroll horizontal, además me gustaria subir el xbrowse un poco hacia arriba para que se vea el scroll horizontal y quede algo más vistoso.


Se que es cuestión de estética pero la estética es importante también.

Os dejo también el código.

Gracias por vuestra ayuda .
Image

Code: Select all  Expand view

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_Header,chr(VASCII++))
         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
     

   REDEFINE BTNBMP ID 500  RESOURCE "ACEPTAR" OF oddatos ;
            ACTION (lSalva:=.t. , oddatos:End());
            MESSAGE "Guardar cambios y salir del catalogo" ;
            WHEN ( Acceso(oApp:aUsuarios,"ESTANTER", nActua ) )

   REDEFINE BTNBMP ID 501  RESOURCE "SALIR" OF oddatos ACTION (lSalva := falso, oddatos:End()) ;
            MESSAGE "Salir de Estanteria"


 ACTIVATE DIALOG oDDATOS CENTER ON INIT (oFld:aDialogs[ 1 ]:setfocus(),.f.)

 

Re: Ayuda para ajustar xbrowse en Folderex

PostPosted: Sat Feb 11, 2017 2:46 pm
by SantaCroya
Intenta:
Code: Select all  Expand view

     ....
     oFld:aDialogs[i]:oClient := oBrw[i]
     oFld:aDialogs[i]:oClient:nClientBevel := x   //Margen respecto a los bordes, es Opcional , x = 0, 1, 2, etc...

next i
 

Re: Ayuda para ajustar xbrowse en Folderex

PostPosted: Sat Feb 11, 2017 4:00 pm
by armando.lagunas
Como defines esto en tu archivo rc?

Code: Select all  Expand view


vfolders:='"FOLDERS"'
FOR i:= 2 to vprofundo
    vfolders:=vfolders+","+'"FOLDERS"'
next i
...
...
...
  REDEFINE FOLDEREX oFld ID 101 OF oDDATOS UPDATE;

             PROMPT &vprompt DIALOGS &vfolders ;   <---- aqui es mi pregunta

             on change (refrescardatos(vestanteria,oBrw[oFld:nOption],oFld:nOption,vfilas))

 


tienes de darle el alto y ancho del folder definido, a cada DIALOG y dentro de este colocar el xbrowse individual.
yo ocupo la clase "PAGE" pero es lo mismo en la forderex.

1.- se define el CONTROL, en tu caso SystabControl32

Image
2.- se define el dialogo de la pestaña 1.
en Workshop

Window Type: Child
Frame style : No border
Dialog style : System modal and Visible


Image


el resultado.

Image


espero que te sirva

Saludos

Re: Ayuda para ajustar xbrowse en Folderex

PostPosted: Mon Feb 13, 2017 11:41 am
by Garbi
Gracias a todos.
No me lo puedo creer, lo tenia delante de mis narices y no lo había visto, era la definición en el rc de los "FOLDERS" que era muy grande, lo he corregido y todos perfecto, por lo menos a mi me parece.

Gracias Armando y Santa por vuestra ayuda.

Image