Page 1 of 1

Ajustar el Folder.

PostPosted: Thu Feb 09, 2017 12:42 pm
by Garbi
Aunque ya he acabado casi con el tema de las estanterías, fijaros que cuando son varias propfundiades el folder no me queda bien, me gustaria que quedara más ajustado arriba como cuando no uso folder,

Agradecería si alguien tuviera alguna idea para ajustar Con Folder. Gracias de ante mano

Sin folder

Image

Con Folder :
Image

Los parametros de style son :
Image

Re: Ajustar el Folder.

PostPosted: Fri Feb 10, 2017 2:14 am
by cnavarro
Yo lo tengo definido en mi .rc

CONTROL "", 100, "TFOLDEREX", 0x50010000, 5, 4, 550, 370, 0x00000000

Re: Ajustar el Folder.

PostPosted: Fri Feb 10, 2017 9:23 am
by Garbi
Si le pongo estos parametros me da el siguiente error al compilar :

Error description: Error FiveWin/3 Cannot create Dialog Box:
Resource: FOLDER_VARIOS

Stack Calls
===========
Called from: .\source\classes\DIALOG.PRG => CREATEDLGERROR(558)
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(296)
Called from: .\estanter.PRG => ESTANTERIADATOS(0)
Called from: .\estanter.PRG => (b)ESTANTER(0)
Called from: .\jose.PRG => (b)CODBROWSE_NEW(0)
Called from: .\source\classes\TCBROWSE.PRG => TCBROWSE:LDBLCLICK(917)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1733)
Called from: .\source\classes\WBROWSE.PRG => TCBROWSE:HANDLEEVENT(1647)
Called from: .\window.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: .\window.PRG => TMDIFRAME:ACTIVATE(0)
Called from: .\planman.PRG => MAIN(0)

Re: Ajustar el Folder.

PostPosted: Fri Feb 10, 2017 10:29 am
by cmsoft
Tambien cambia en tu .prg el REDEFINE FOLDER por REDEFINE FOLDEREX
Esta son las opciones del redefine
Code: Select all  Expand view
REDEFINE FOLDEREX [<oFolder>];
             [ ID <nId> ] ;
             [ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
             [ <prm: PROMPT, PROMPTS, ITEMS> <cPrompt,...> ] ;
             [ <bm: BITMAPS, IMAGES, BMPS> <cbmps,...> ] ;
             [ <dlg: DIALOG, DIALOGS, PAGE, PAGES> <cDlgsName,...> ] ;
             [ TAB HEIGHT <ntabheight> ];
             [ OPTION <nOption> ] ;
             [ ROUND <nRound> ];
             [ SEPARATOR <nSep> ];
             [ <lAdjust: ADJUST> ] ;
             [ <lStretch: STRETCH> ] ;
             [ POPUP <upop>];
             [ ALIGN <nAlign,...> ] ;
             [ BRIGHT <nBright> ] ;
             [ ACTION <uAction> ];
             [ ON CHANGE <uChange> ] ;
             [ ON PAINT TAB <uPaint> ];
             [ ON PAINT TEXT <uPaintxt> ];
             [ HELPTOPICS <cnHelpids,...> ] ;
             [ <layout: TOP, LEFT, BOTTOM, RIGHT> ] ;
             [ <lAnimate: ANIMATE> [ SPEED <nSpeed> ] ] ;
               [ FONT <oFont> ]; //-->> byte-one 2010
               [ <lTransparent: TRANSPARENT> ]

Re: Ajustar el Folder.

PostPosted: Fri Feb 10, 2017 11:13 am
by Garbi
Lo he cambiado, y la verdad es que ha mejorado bastante el aspecto, 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.

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.)