DESTACAR FILA DE FOCUS EN XBROWSE

DESTACAR FILA DE FOCUS EN XBROWSE

Postby remtec » Fri Aug 16, 2019 3:59 pm

Amigos

Muy buen dia.

Tengo 2 necesidades en Xbrowse:

1. Mostrar la Fila que contiene el Focus con un Tipo de FONT diferente.

2. Necesito Modificar el Contenido de una Columna que se muestra en Xbrowse:
El Campo Viene asi: Rut 99999999-9 Mostrarlo asi --> 99.999.999-9.

Desde ya muchas gracias.

Saludos
Antonio.

Este es mi codigo:
Code: Select all  Expand view

 @ 20,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg DATASOURCE "MAEPACIE" ;
            HEADERS 'Apellidos', 'Nombres', 'R.u.t';
      COLUMNS OemToAnsi("APE_PAC"),OemToAnsi("NOM_PAC"),"RUT_PAC";
      CELL LINES AUTOSORT NOBORDER;
            oBrw:nMarqueeStyle := MARQSTYLE_HIGHLWIN7
            oBrw:nColDividerStyle := LINESTYLE_INSET
            oBrw:nRowDividerStyle := LINESTYLE_INSET
            oBrw:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
            oBrw:nOpacity    := 230

            oBrw:bClrStd             := {|| { nRGB(  0,  0,  0), nRGB(255,248,220) } }
            oBrw:bClrSelFocus        := {|| { nRGB(  255,  255,  255), nRGB(102, 178, 255) } }

   WITH OBJECT oBrw
            :lFooter := .t.
            oBrw:lHScroll := .f.
                        oBrw:lIncrFilter      := .f.
                        oBrw:lSeekWild        := .F.                  
            oBrw:SetStyle( 2018)


            oCol := oBrw:aCols[ 1 ]
            ocol:cToolTip:="Clique para ordenar por APELLIDOS"
            oCol := oBrw:aCols[ 2 ]
            ocol:cToolTip:="Clique para ordenar por NOMBRES"

            oCol := oBrw:aCols[ 3 ]
            ocol:cToolTip:="Clique para ordenar por RUT"

            oBrw:aCols[1]:bRClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "APE_PAC", oBrw:Refresh() }
            oBrw:aCols[2]:bRClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "NOM_PAC", oBrw:Refresh() }
            oBrw:aCols[3]:bRClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "RUT_PAC", oBrw:Refresh() }
            oCol:bLClickHeader:= {|| oBrw:Gotop() }

            oBrw:bKeyDown:={|nKey| iif(nKey=32.or.nKey=VK_RETURN, Muestra_Pac(),oBrw:Refresh())}
            oBrw:bLDblClick:={||Muestra_Pac(),oBrw:Refresh()}

            oBrw:bChange := {|| oBrw:Refresh() }


                oBrw:CreateFromCode()
   END

 
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby FranciscoA » Sat Aug 17, 2019 8:10 pm

Antonio, intenta asi:
(Tengo funcionando algo asi, para arrays)

Code: Select all  Expand view
local aFont := Array(2), nRowAct

DEFINE FONT aFont[1] NAME 'arial' SIZE 0,-12
DEFINE FONT aFont[2] NAME 'arial' SIZE 0,-14 ITALIC BOLD

 @ 20,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg DATASOURCE "MAEPACIE" ;
            HEADERS 'Apellidos', 'Nombres', 'Rut';
      COLUMNS OemToAnsi("APE_PAC"),OemToAnsi("NOM_PAC"),"RUT_PAC";
      CELL LINES AUTOSORT NOBORDER;
...
...
...
   nRowAct := oBrw:KeyNo()

   WITH OBJECT oBrw
      :bChange := {|| nRowAct := oBrw:KeyNo(), oBrw:Refresh() }
   END

   //Cambia la Font para linea actual seleccionada
   AEval(oBrw:aCols, {|o| o:oDataFont := {|| IF( nRowAct == oBrw:KeyNo(), aFont[2], aFont[1]) } })

   //Estableciendo el picture para el campo
   //Orig es "Rut 99999999-9" y queremos que se muestre "99.999.999-9"
   WITH OBJECT oBrw:Rut    //ó oBrw:aCols[3]
      :bEditValue := {|| Substr((oBrw:cAlias)->RUT_PAC,5,10) }  
      :cEditPicture := "@R ##.###.#####"
   END
 
 

Espero te sea útil.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

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

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby FranciscoA » Sat Aug 17, 2019 8:52 pm

Para Arrays:

Code: Select all  Expand view
nRowAct := oBrw1:nArrayAt

   WITH OBJECT oBrw1
      :bChange := {||   nRowAct := oBrw1:nArrayAt, oBrw1:Refresh() }
   END

   //Cambia la Font para linea actual seleccionada, para sobresalir de las demas.
   AEval(oBrw1:aCols, {|o| o:oDataFont := {|| IF( nRowAct == oBrw1:nArrayAt, aFont[2], aFont[1]) } })

   //Estableciendo el picture para el campo NumRuc
   //Orig es "Rut 99999999-9" y queremos que se muestre "99.999.999-9"
   WITH OBJECT oBrw1:aCols[3]
      :bEditValue := {|| Substr(oBrw1:aArrayData[oBrw1:nArrayAt,8],5,10) }
      :cEditPicture := "@R ##.###.#####"
   END
 


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

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

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby remtec » Sat Aug 17, 2019 10:26 pm

Francisco

Muchas gracias por tu ayuda, probare lo que me das y te comentare, pero desde ya muy agradecido.

Muchos Saludos
Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby remtec » Sat Aug 17, 2019 11:06 pm

Hola Francisco

He tratado de aplicar tu sugerencia, pero tengo lo siguiente:

1. No puedo hacer funcionar el cambiar el FONT de la linea Completa, solo quiero que cuando me pare o pase con las techas arriba o abajo, la linea del Focus Cambie su Font.

2. El Formato de Rut, lo muestra correctamente, pero al ser una Columna de Busqueda, no puedo buscar por Ejemplo : 1.123, no me permite digitar el " . " al buscar.

Alguna idea para poder corregir los puntos 1 y 2?

Muchos Saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby FranciscoA » Sun Aug 18, 2019 10:18 pm

Antonio: Aqui tienes un ejemplo probado. Espero te sea de utilidad.

Code: Select all  Expand view
Function Brw2FntPictRowSel()
local oBrw, oDlg
local aFont := Array(2), nRowAct

if !File(".\MAEPACIE.DBF")
   DbCreate(".\MAEPACIE",{ {"APE_PAC", "C", 20,0} ,;
                           {"NOM_PAC", "C", 20,0} ,;
                           {"RUT_PAC", "C", 14,0} })
endif  

DbUseArea(.t.,,".\MAEPACIE","MAEPACIE",.F.)
DBAPPEND()
field->APE_PAC := "Martinez"
field->NOM_PAC := "Francisco"
field->RUT_PAC := "Rut 99999999-9"
DBAPPEND()
field->APE_PAC := "Gutierrez"
field->NOM_PAC := "Roberto"
field->RUT_PAC := "Rut 88999999-8"
DBAPPEND()
field->APE_PAC := "Altamirano"
field->NOM_PAC := "Lorenzo"
field->RUT_PAC := "Rut 77999999-7"

INDEX ON FIELD->APE_PAC TO AP TEMPORARY ADDITIVE
INDEX ON FIELD->NOM_PAC TO NO TEMPORARY ADDITIVE
INDEX ON SUBSTR(FIELD->RUT_PAC,5,10) TO RU TEMPORARY ADDITIVE

DEFINE FONT aFont[1] NAME 'arial' SIZE 0,-12
DEFINE FONT aFont[2] NAME 'arial' SIZE 0,-14 ITALIC BOLD

DEFINE DIALOG oDlg SIZE 600,400 PIXEL ;
       TITLE "FONT DIFERENTE EN REG ACTUAL, Y PICTURE PARA CAMPO RUT"

 @ 20,10 XBROWSE oBrw SIZE -10,-30 PIXEL OF oDlg ;
         DATASOURCE "MAEPACIE" ;
         COLUMNS "APE_PAC", "NOM_PAC", "RUT_PAC";
         HEADERS 'Apellidos', 'Nombres', 'Rut';
         SIZES 200,200,120 ;
         CELL LINES AUTOSORT NOBORDER

   WITH OBJECT oBrw
      :bChange := {|| nRowAct := oBrw:KeyNo(), oBrw:Refresh() }

      WITH OBJECT oBrw:apellidos
         :cToolTip      := "Clique para ordenar por APELLIDOS"
         :bLClickHeader := {|| Eval(oBrw:bChange)  }
      END
      WITH OBJECT oBrw:nombres
         :cToolTip      := "Clique para ordenar por NOMBRES"
         :bLClickHeader := {|| Eval(oBrw:bChange)  }
      END
      WITH OBJECT oBrw:Rut
         :cToolTip      := "Clique para ordenar por RUT"
         :bLClickHeader := {|| Eval(oBrw:bChange)  }
         :bEditValue    := {|| Substr((oBrw:cAlias)->RUT_PAC,5,10) }  
         :cEditPicture  := "@R ##.###.#####"
      END
   END

   oBrw:CreateFromCode()

   nRowAct := oBrw:KeyNo()

   //Cambia la Font para linea actual seleccionada
   AEval(oBrw:aCols, {|o| o:oDataFont := {|| IF( nRowAct == oBrw:KeyNo(), aFont[2], aFont[1]) } })

   ACTIVATE DIALOG oDlg CENTERED

   MAEPACIE->(dbCloseArea())
   Ferase(".\MAEPACIE.DBF")

   aFont[1]:End()
   aFont[2]:End()
return nil
 

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

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

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby FranciscoA » Sun Aug 18, 2019 10:34 pm

remtec wrote:Hola Francisco

He tratado de aplicar tu sugerencia, pero tengo lo siguiente:

1. No puedo hacer funcionar el cambiar el FONT de la linea Completa, solo quiero que cuando me pare o pase con las techas arriba o abajo, la linea del Focus Cambie su Font.

2. El Formato de Rut, lo muestra correctamente, pero al ser una Columna de Busqueda, no puedo buscar por Ejemplo : 1.123, no me permite digitar el " . " al buscar.

Alguna idea para poder corregir los puntos 1 y 2?

Muchos Saludos.
Antonio


Antonio.
Punto 1: El ejemplo hace correctamente lo que indicas.
Punto 2: En el ejemplo se considera la consistencia en cuanto a longitud del dato (Rut 99999999-9) 14 espacios.
Se ha creado indice Substr(xCampo,5,10)
Para el ejemplo no se usa oSeek,cSeek, sino que typeas directamente ej: 11.222.333-4, 99.121.555-7, etc.
Al finalizar un busqueda, se tiene que mover el cursor antes de hacer la siguiente.

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

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

Re: DESTACAR FILA DE FOCUS EN XBROWSE

Postby FranciscoA » Sun Aug 18, 2019 10:38 pm

La version que tengo es la 1204.
Francisco J. Alegría P.
Chinandega, Nicaragua.

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Horizon and 42 guests