USO DE Setup en xBrowse - CERRADO

USO DE Setup en xBrowse - CERRADO

Postby joseluisysturiz » Sun Sep 07, 2014 4:19 pm

Saludos, estoy intentando usar SETUP en mis xbrowse, ya que repito muchos parametros en su creacion, entiendo que con SETUP llamando una funcion donde haga mis definicion me ahorraira lineas repetias innecesarias, tambien entiendo que mi funcion deberia recibir mi objeto xbrowse y algunos otros parametros, pero no consigo si es asi como se le llama, el methodo SETUP en xbrowse, vi como un colega lo usa asi...

Code: Select all  Expand view
XBROWSER aPrueba tITLE "MI TITULO" COLUMNS { 1,2,3 } SETUP MiSetUp( oBrw, {'Col1','Col2',Col3'} )


pero yo defino mi xbrowse asi...

Code: Select all  Expand view
  oBrw := TXBrowse():New( oDlg )

   WITH OBJECT oBrw
      :nMarqueeStyle    := MARQSTYLE_HIGHLCELL
      :nColDividerStyle := LINESTYLE_BLACK
      :lColDividerComplete := .t.
      :nHeaderHeight := 20
      :l2007 := .t.
      :lFooter := .t.
      :lRecordSelector := .t.
      :lAllowColHiding := .f.
      :lAllowColSwapping := .f.
      :bClrStd := {|| IF( oBrw:nArrayAt % 2 == 0, {0, RGB(255,255,255)} ,;
         {0, RGB(203,226,254)} ) }
// AL HACER CLICK EN LA CELDA QUEDA EDITABLE
      :bLButtonUp := { |r,c,f,o| If( o:SelectedCol():lEditable, o:SelectedCol():Edit(), nil )  }
      :lFastEdit := .t.
   END WITH

   oCol := oBrw:AddCol()
      oCol:cHeader       := "Denominación"
      oCol:bStrData      := {|| IIF( LEN( oBrw:aArrayData ) == 0, SPACE(5) ,;
                                 oBrw:aArrayData[oBrw:nArrayAt, 1] ) }
      oCol:nHeadStrAlign := AL_CENTER
      oCol:nDataStrAlign := AL_CENTER
      oCol:nWidth        := 100
      oCol:nArrayCol     := 1

   oBrw:CreateFromResource(100)
   oBrw:SetArray( aBilletes, .t. )
 


...como y donde aplico el uso de SETUP.?, gracias, saludos... :shock:
Last edited by joseluisysturiz on Tue Sep 09, 2014 2:05 am, edited 1 time in total.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: USO DE Setup en xBrowse

Postby FranciscoA » Sun Sep 07, 2014 7:07 pm

Hola Jose Luis, intenta asi: (Ejemplo al vuelo, no lo probé)
Code: Select all  Expand view
oBrw := TXBrowse():New( oChild )

  oBrw:bSetUp := {|| MyBrwSetUp(oBrw) }

   oCol = oBrw:AddCol()
   *****
   *****
function MyBrwSetUp(oBrw)
   oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLCELL  //BarSel solo ilumina la celda actual
   oBrw:nColDividerStyle     := LINESTYLE_INSET
   oBrw:nRowDividerStyle     := LINESTYLE_INSET
   oBrw:lColDividerComplete  := .t.    //completa pintado hasta el footer cuando lineas no llenan todo el browse
   oBrw:nRowHeight   := 20  //altura entre lineas
RETURN NIL
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: USO DE Setup en xBrowse-CERRADO

Postby joseluisysturiz » Sun Sep 07, 2014 8:01 pm

Francisco, muchisimas gracias, funciono al pelo...a eso me referia, como no veo informacion sobre setup, ni tenia idea que era un bloque de codigo, ahora si a limpiar mis sistemas de tantas lineas repetidas, saludos... :shock:

Una acotacion, tuve que colocar el
oBrw:bSetUp := {|| mis_browses( oBrw ) } // LAS DEFINICIONES GENERALES EN MIS BROWSES

despues de las definiciones de las columnas ya que si lo hago antes, me agrega al xbrowse primera columna a la izquierda con data .f. y .t. con cabezera bSetup, al cambiar la linea de posicion, desaparecio la columna...se que se puede definir las columnas y otros valores generales, pero n consigo informacion sobre cual es el orden y tipos de datos a enviar, solo el array de las columnas, si alguien tiene o sabe los parametros que se pueden mandar a mi funcion usando bSetup y quiera compartirla, gracias, saludos... :shock:

PostData: volviendo a revisar el xbrowse...me doy cuenta que ahora coloco la columna con valores .f. y .t. al final, es decir, si se coloca antes de la defincion de las columnas, crea de primero dicha columna y se coloca despues de las columnas, agrega dicha columna al final, no entiendo porque hace eso o si es obligatorio definir las columnas en la funcion que llamo con bSetup...algun comentario o idea..? saludos.. :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: USO DE Setup en xBrowse

Postby FranciscoA » Sun Sep 07, 2014 11:26 pm

Efectivamente, asi se comporta, lo acabo de probar.
La idea del bSetup se me vino a la mente porque mucho uso la function Xbrowse que está a samples. Hechale un vistazo, tal vez sacas algo.
function XBrowse( uData, cTitle, lAutoSort, bSetUp, aCols, bSelect, lExcel, lFastEdit )


Por otra parte, lo que quieres hacer, lo he hecho de esta otra forma: (puede que te sirva de guia)

Code: Select all  Expand view
@1,1 XBROWSE oBrw1 OF oDlg AUTOCOLS FOOTERS ARRAY aData[1]
     BrwCmpSetUp(oBrw1,nHt,nWd,oFont)
     oBrw1:CreateFromCode()
@1,1 XBROWSE oBrw2 OF oDlg AUTOCOLS FOOTERS ARRAY aData[2]
     BrwCmpSetUp(oBrw2,nHt,nWd,oFont)
     oBrw2:CreateFromCode()
@1,1 XBROWSE oBrw3 OF oDlg AUTOCOLS FOOTERS ARRAY aData[2]  //aData[3]
     BrwCmpSetUp(oBrw3,nHt,nWd,oFont)
     oBrw3:CreateFromCode()
...
...
//-------------------------
Function BrwCmpSetUp(oBrw,nHt,nWd,oFont)
local n
local aGradBarSel:= { { 1, RGB(252,232,171), RGB(248,195, 34) } }
local aGradRowSel:= { { 1, RGB(108,125,184), RGB(241,222,088) } }

   WITH OBJECT oBrw
      :nTop                   := 40  
      :nLeft                  := 5
      :nBottom                := :nTop + nHt - 30
      :nRight                 := :nLeft + nWd - 20
      :nMarqueeStyle          := MARQSTYLE_HIGHLCELL  //MARQSTYLE_HIGHLROWMS //Multiselect  //MARQSTYLE_HIGHLROW   //MARQSTYLE_HIGHLCELL
      :lColDividerComplete    := .t.
      :nStyle                 := nAnd( :nStyle, nNot( WS_BORDER ) )
      :nColDividerStyle := LINESTYLE_LIGHTGRAY
      :nRowDividerStyle := LINESTYLE_LIGHTGRAY
      :nHeaderHeight    := 30  //altura del header
      :bClrSel        := {|| { nRGB(  0,  0,  0), aGradRowSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus   := { || { CLR_BLACK, aGradBarSel } }     // para barra de linea selecc cuando el control tiene el foco
      *:nHeadStrAligns := AL_CENTER  //texto cabeceras de cols centrado
      *:bClrStd        := { || IF( (cAlias)->Conciliado = "CONCILIADO", {0, RGB(222, 225, 230)} ,{CLR_BLACK, CLR_WHITE} ) }
      :lRecordSelector  := .f.
      :nStretchCol   :=  STRETCHCOL_LAST  //ajustar ancho de col6 para llenar ancho del browse

      :SetFont(oFont)

      For n:=1 to len(:aCols)   //para que cols de ctas tengan mismo tamaño
        :aCols[n]:nWidth := 28
      Next

     :aCols[6]:nWidth := 200
     :aCols[7]:nWidth := 80
     :aCols[8]:nWidth := 80

     :aCols[7]:lTotal := .t.
     :aCols[7]:nTotal := 0
     :aCols[7]:cEditPicture := "999,999,999.99"
     :aCols[7]:nFooterType := AGGR_SUM   //AGGR_TOTAL

     :aCols[8]:lTotal := .t.
     :aCols[8]:nTotal := 0
     :aCols[8]:cEditPicture := "999,999,999.99"
     :aCols[8]:nFooterType := AGGR_SUM   //AGGR_TOTAL

     :MakeTotals()
   END
Return nil
 

Saludos
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: USO DE Setup en xBrowse

Postby joseluisysturiz » Sun Sep 07, 2014 11:50 pm

Gracias Francisco por confirmar lo que dije, crei habia hecho algo malo, ya que tengo un xbrowse editable con varias lineas precargadas de una array y cuando llego a la ultima columna en edicion, en vez de salta a la siguiente fila, de forma extraña hace salto a la ultima fila como si existiera oculto un GoBottom, el detalle esta que me lo copie de otra funcion donde si trabaja bien, es mas, es para el mismo trato con la unica diferencia que en el que me hace el salto extraño uso maketotal, la 1ra.columna no es editable, la 2da.si y la tercera no, y la 3ra. su valor es igual al valor fijo de la 1ra.multiplicado por el valor entrado en la 2da...tengo rato revisando y no le veo el motivo de ese salto loco a la ultima linea, este en la linea que este...seguire revisando, gracias...tu idea es buena, es hacer nuestro propio SETUP saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: USO DE Setup en xBrowse

Postby FranciscoA » Mon Sep 08, 2014 12:12 am

Probá asi, como simple function:
Code: Select all  Expand view
oBrw := TXBrowse():New( oChild )

MyBrwSetUp(oBrw)    //ASI...

   oCol = oBrw:AddCol()
   *****
   *****
function MyBrwSetUp(oBrw)
   oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLCELL  //BarSel solo ilumina la celda actual
   oBrw:nColDividerStyle     := LINESTYLE_INSET
   oBrw:nRowDividerStyle     := LINESTYLE_INSET
   oBrw:lColDividerComplete  := .t.    //completa pintado hasta el footer cuando lineas no llenan todo el browse
   oBrw:nRowHeight   := 20  //altura entre lineas
RETURN NIL
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: USO DE Setup en xBrowse

Postby joseluisysturiz » Mon Sep 08, 2014 5:07 am

FranciscoA wrote:Probá asi, como simple function:
Code: Select all  Expand view
oBrw := TXBrowse():New( oChild )

MyBrwSetUp(oBrw)    //ASI...

   oCol = oBrw:AddCol()
   *****
   *****
function MyBrwSetUp(oBrw)
   oBrw:nMarqueeStyle    := MARQSTYLE_HIGHLCELL  //BarSel solo ilumina la celda actual
   oBrw:nColDividerStyle     := LINESTYLE_INSET
   oBrw:nRowDividerStyle     := LINESTYLE_INSET
   oBrw:lColDividerComplete  := .t.    //completa pintado hasta el footer cuando lineas no llenan todo el browse
   oBrw:nRowHeight   := 20  //altura entre lineas
RETURN NIL


Asi lo hice Francisco, el detalle que reviso ahora es el comportamiento extraño del salto al final del xbrowse sin mandarlo, gracias, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: USO DE Setup en xBrowse - CERRADO

Postby joseluisysturiz » Wed Sep 10, 2014 2:39 am

Doy por cerrado el tema, tenia una confucion en lo de SETUP, esto es de uso de la FUNCION xBrowse que no conocia, muy buena por demas, alli vi como se usaba con la ayuda del colega Alfredo Cruz, asi que, estoy empezando a usar funcion xBrowse en pequeños programas, gracias Francisco por las respuestas y las ideas, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 79 guests