FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour URLLINK + XBROWSE
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
URLLINK + XBROWSE
Posted: Thu Oct 03, 2019 07:16 PM
Buenas tardes para todos,

es posible colocar un link a un enlace externo en una celda de xbrowse?

algo similar a esto pero directo en el xbrowse
Code (fw): Select all Collapse
   REDEFINE URLLINK ID 104 URL "www.fivetechsoft.com" OF oDlg ;
            TOOLTIP "Sitio oficial de FiveTech"


De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM
Re: URLLINK + XBROWSE
Posted: Fri Oct 04, 2019 01:57 AM

+1

Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM
Re: URLLINK + XBROWSE
Posted: Thu Oct 10, 2019 02:06 AM

+2

Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 12:44 PM

+3

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 01:13 PM
Leandro, cual és el problema en usar de esta forma?
Code (fw): Select all Collapse
   oCol:bLDClickData := { || Shellexecute( 0, "Open", oCol:Value ) }
Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 02:03 PM
karinha, ninguno, así lo implementamos finalmente.
Code (fw): Select all Collapse
oCol:bLDClickData := { || Shellexecute( 0, "Open", aInfo[oBrw:nArrayAt]["url"] ) }
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 02:08 PM
leandro wrote:karinha, ninguno, así lo implementamos finalmente.
Code (fw): Select all Collapse
oCol:bLDClickData := { || Shellexecute( 0, "Open", aInfo[oBrw:nArrayAt]["url"] ) }
Leandro en mi humilde opinión me parece excelente. Usted es muy inteligente. Cuando sea mayor quiero ser como tú. jajajajaja.

Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 7318
Joined: Thu Oct 18, 2012 07:17 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 02:11 PM
leandro wrote:karinha, ninguno, así lo implementamos finalmente.
Code (fw): Select all Collapse
oCol:bLDClickData := { || Shellexecute( 0, "Open", aInfo[oBrw:nArrayAt]["url"] ) }

probablemente no estemos diciendo lo mismo: no necesariamente tiene que abrir un enlace en el navegador pero podría abrir un popup o una función específica. Para la visualización pretendo que tenga la misma forma que el texto de la clase Turllink o la clase tsayref, es decir cuando el usuario final pasa con el mouse sobre el texto (subrayado) cambia de color (sobre color y color normal).

no necesariamente tiene que ser una dirección para abrir, puede ser cualquier información, imagina por ejemplo una tabla xbrowse donde hay datos numéricos correspondientes a pedidos, el usuario podría abrir la ficha de ese pedido, o de ese cliente con un clic .

Ejemplo tangible de archivo de movimiento de artículos (carga/descarga).

Se muestra el nombre del proveedor. pues para ver los datos de ese proveedor el usuario final debe cerrar la gestión de almacén y abrir el registro de proveedores y buscar ese proveedor para abrir la tarjeta.

Tenerlo como enlace URL en el xbrowse del almacén podría abrir directamente el perfil de ese proveedor.
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 02:14 PM
Lo único adicional que agregamos fue un tooltip para indicarle al usuario que puede hacer doble clic sobre esa columna.

Quizás para que parezca un enlace, se podría colocar la fuente subrayada, pero eso si no lo hemos hecho hasta el momento.
Code (fw): Select all Collapse
    oCol:bCellToolTip := { |oCol| "Doble clic para abrir en enlace"}
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 02:20 PM

Silvio, si entiendo (me cuesta seguir tu razonamiento), simplemente activaría una función con un DIÁLOGO y usaría SSAY.PRG o URLLINK para activar con la URL. Si no entendí, lo siento.

Silvio, if I understand (I have difficulty following your reasoning), I would simply trigger a function with a DIALOG and use SSAY.PRG or URLLINK to trigger with the URL. If I didn't understand, I'm sorry.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 03:59 PM
Espero te sirva esta idea:

Code (fw): Select all Collapse
#include "FiveWin.ch"
Function Inicio()
LOCAL oDlg, oBrw, oFont[2]
LOCAL aData := {{"xHarbour"        , "http://www.xharbour.org/"           , 1},;
                {"Cualquier cosa"  , "Ejecuta proceso Tres"               , 3},;
                {"Fivetech"        , "www.fivetechsoft.com"               , 1},;
                {"Forum Fivetecht" , "https://forums.fivetechsupport.com" , 1},;
                {"Tarea adicional" , "Ejecuta proceso Dos"                , 2}}

DEFINE FONT oFont[1] NAME "TAHOMA" SIZE 0,-14
DEFINE FONT oFont[2] NAME "TAHOMA" SIZE 0,-14 UNDERLINE
DEFINE DIALOG oDlg SIZE 537,300 PIXEL TRUEPIXEL TITLE "xBrowse con UrlLink"

    @ 20,20 XBROWSE oBrw DATASOURCE aData OF oDlg PIXEL SIZE 500,200 AUTOSORT AUTOCOLS LINES CELL;
                 HEADERS "Empresa / Mensaje", "URL / Acción" COLSIZES {150,300} FONT oFont[1]
   
          WITH OBJECT oBrw:aCols[2]
              :bLDClickData := { || Opciones(aData, oBrw) }
              :oDataFont := {|| iif( aData[oBrw:nArrayAt, 3] == 1, oFont[2], oFont[1]) }
              :aClrText  := {|| Iif( aData[oBrw:nArrayAt, 3] == 1, nRGB(50,50,200), nRGB(0,0,0) )}
              :bCellToolTip := { |oCol| {"Doble clic para abrir enlace o ejecutar Proceso","Selecciona:"} }
         END
   
         oBrw:nRowDividerStyle := LINESTYLE_LIGHTGRAY
         oBrw:nColDividerStyle := LINESTYLE_LIGHTGRAY
         oBrw:CreateFromCode()
   
   ACTIVATE DIALOG oDlg CENTERED

Return(NIL)
//-------------------------------------------------//

Function Opciones(aData, oBrw)
   LOCAL nOpcion := aData[oBrw:nArrayAt, 3]
   DO CASE
      CASE nOpcion == 1
           Shellexecute( 0, "Open", aData[oBrw:nArrayAt, 2] )
      CASE nOpcion == 2
           Dos()
      CASE nOpcion == 3
           Tres()
   ENDCASE
Return(NIL)
//-------------------------------------------------//

Function Dos()
   MsgInfo("Opción Dos")
Return(NIL)
//-------------------------------------------------//

Function Tres()
   MsgInfo("Opción Tres")
Return(NIL)
//-------------------------------------------------//

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 04:28 PM
Excelente ejemplo Carlos, para causar un mejor efecto solo faltaría que apareciera la manito (cursor) sobre el link.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 04:59 PM
Carlos, marabilloso d+
Code (fw): Select all Collapse
// C:\FWH\SAMPLES\SILVIURL.PRG

#include "FiveWin.ch"

FUNCTION Inicio()

   LOCAL oDlg, oBrw, oFont[ 2 ]
   LOCAL aData := { { "xHarbour", "http://www.xharbour.org/", 1 }, ;
                    { "Cualquier cosa", "Ejecuta proceso Tres", 3 }, ;
                    { "Fivetech", "www.fivetechsoft.com", 1 }, ;
                    { "Forum Fivetecht", "https://forums.fivetechsupport.com", 1 }, ;
                    { "Tarea adicional", "Ejecuta proceso Dos", 2 } }

   LOCAL oCursorBtn := TCursor():New(, 'HAND' )

   DEFINE FONT oFont[ 1 ] NAME "TAHOMA" SIZE 0, - 14
   DEFINE FONT oFont[ 2 ] NAME "TAHOMA" SIZE 0, - 14 UNDERLINE

   DEFINE DIALOG oDlg SIZE 537, 300 PIXEL TRUEPIXEL ;
      TITLE "xBrowse con UrlLink"

   oDlg:lHelpIcon := .F.

   @ 20, 20 XBROWSE oBrw DATASOURCE aData OF oDlg PIXEL SIZE 500, 200   ;
      AUTOSORT AUTOCOLS LINES CELL                                      ;
      HEADERS "Empresa / Mensaje", "URL / Acción" COLSIZES { 150, 300 } ;
      FONT oFont[ 1 ]

   oBrw:cTooltip := { "Click-Me",                                    ;
                      "Silvio Falconi", 1, CLR_WHITE, CLR_CYAN }

   BrwColors( oBrw, .T. )

   WITH OBJECT oBrw:aCols[ 2 ]

      :bLDClickData := {|| Opciones( aData, oBrw ) }
      :oDataFont := {|| iif( aData[ oBrw:nArrayAt, 3 ] == 1, oFont[ 2 ], oFont[ 1 ] ) }
      :aClrText  := {|| iif( aData[ oBrw:nArrayAt, 3 ] == 1, nRGB( 50, 50, 200 ), nRGB( 0, 0, 0 ) ) }
      :bCellToolTip := {| oCol | { "Doble clic para abrir enlace o ejecutar Proceso", "Selecciona:" } }

   END

   oBrw:oCursor := oCursorBtn
   oBrw:nRowDividerStyle := LINESTYLE_LIGHTGRAY
   oBrw:nColDividerStyle := LINESTYLE_LIGHTGRAY
   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

STATIC FUNCTION BrwColors( oBrw, lFoot )

   local cClrBack
   DEFAULT lFoot          := .F.

   oBrw:l2007             := .F.
   oBrw:nRowHeight        := 24
   oBrw:nHeaderHeight     := 24
   oBrw:lFooter           := lFoot
   
   //oBrw:lRecordSelector     := .F.
   //oBrw:lColDividerComplete := .F.
   //oBrw:lRowDividerComplete := .F.
   
   oBrw:lFlatStyle        := .T.
   oBrw:bClrHeader        := { || { CLR_BLACK, CLR_WHITE, CLR_WHITE } } //RGB( 232, 255, 232 ), RGB( 232, 255, 232 ) }}
   oBrw:lFullGrid         := .F.
   oBrw:nRowDividerStyle  := LINESTYLE_NOLINES //DARKGRAY  //LINESTYLE_LIGHTGRAY      //
   oBrw:nColDividerStyle  := LINESTYLE_NOLINES //LIGHTGRAY // LINESTYLE_NOLINES

   oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW

   oBrw:bClrStd = { || If( oBrw:KeyNo() % 2 == 0, ;
                         { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
                           RGB( 198, 255, 198 ) }, ;
                         { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
                           RGB( 232, 255, 232 ) } ) }

   oBrw:bClrSel = { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ),;
                           RGB( 34, 177, 76 ) } } //RGB( 0x33, 0x66, 0xCC ) } }
   
   cClrBack = Eval( oBrw:bClrSelFocus )[ 2 ]

   oBrw:bClrSelFocus  := { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ),;
                              cClrBack } }

   oBrw:SetColor( CLR_BLUE, RGB( 232, 255, 232 ) )

RETURN NIL

FUNCTION Opciones( aData, oBrw )

   LOCAL nOpcion := aData[ oBrw:nArrayAt, 3 ]

   DO CASE
   CASE nOpcion == 1

      Shellexecute( 0, "Open", aData[ oBrw:nArrayAt, 2 ] )

   CASE nOpcion == 2

      Dos()

   CASE nOpcion == 3

      Tres()

   ENDCASE

RETURN NIL

FUNCTION Dos()

   MsgInfo( "Opción Dos" )

RETURN NIL

FUNCTION Tres()

   MsgInfo( "Opción Tres" )

RETURN NIL

// FIN / END
Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: URLLINK + XBROWSE
Posted: Tue Feb 27, 2024 05:13 PM

Leandro,

Lo del cursor esta complicado, encontré dos inconvenientes:

1.- xBrowse permite definir cursor general a todo el Browse, no a columnas individuales, que sería lo interesante.

2.- Así lo definas un cursor al Browse, en la columna en la que se asinge ToolTip, se anula el cursor.

Ojalá Antonio o Mr.Rao nos dan una mano.

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Continue the discussion