URLLINK + XBROWSE

URLLINK + XBROWSE

Postby leandro » Thu Oct 03, 2019 7: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: Select all  Expand view  RUN

   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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: URLLINK + XBROWSE

Postby nanoespinoza » Fri Oct 04, 2019 1:57 am

+1
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: URLLINK + XBROWSE

Postby nanoespinoza » Thu Oct 10, 2019 2:06 am

+2
nanoespinoza
 
Posts: 141
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: URLLINK + XBROWSE

Postby Silvio.Falconi » Tue Feb 27, 2024 12:44 pm

+3
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 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
User avatar
Silvio.Falconi
 
Posts: 7090
Joined: Thu Oct 18, 2012 7:17 pm

Re: URLLINK + XBROWSE

Postby karinha » Tue Feb 27, 2024 1:13 pm

Leandro, cual és el problema en usar de esta forma?

Code: Select all  Expand view  RUN

   oCol:bLDClickData := { || Shellexecute( 0, "Open", oCol:Value ) }
 


Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: URLLINK + XBROWSE

Postby leandro » Tue Feb 27, 2024 2:03 pm

karinha, ninguno, así lo implementamos finalmente.
Code: Select all  Expand view  RUN

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: URLLINK + XBROWSE

Postby karinha » Tue Feb 27, 2024 2:08 pm

leandro wrote:karinha, ninguno, así lo implementamos finalmente.
Code: Select all  Expand view  RUN

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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: URLLINK + XBROWSE

Postby Silvio.Falconi » Tue Feb 27, 2024 2:11 pm

leandro wrote:karinha, ninguno, así lo implementamos finalmente.
Code: Select all  Expand view  RUN

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.
Last edited by Silvio.Falconi on Tue Feb 27, 2024 2:18 pm, edited 1 time in total.
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 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
User avatar
Silvio.Falconi
 
Posts: 7090
Joined: Thu Oct 18, 2012 7:17 pm

Re: URLLINK + XBROWSE

Postby leandro » Tue Feb 27, 2024 2: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: Select all  Expand view  RUN

    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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: URLLINK + XBROWSE

Postby karinha » Tue Feb 27, 2024 2: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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: URLLINK + XBROWSE

Postby Cgallegoa » Tue Feb 27, 2024 3:59 pm

Espero te sirva esta idea:
Image

Code: Select all  Expand view  RUN
#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)
//-------------------------------------------------//
Last edited by Cgallegoa on Tue Feb 27, 2024 4:35 pm, edited 1 time in total.
Saludos,

Carlos Gallego

*** FWH-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: URLLINK + XBROWSE

Postby leandro » Tue Feb 27, 2024 4:28 pm

Excelente ejemplo Carlos, para causar un mejor efecto solo faltaría que apareciera la manito (cursor) sobre el link.
Image
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: URLLINK + XBROWSE

Postby karinha » Tue Feb 27, 2024 4:59 pm

Carlos, marabilloso d+

Code: Select all  Expand view  RUN

// 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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: URLLINK + XBROWSE

Postby Cgallegoa » Tue Feb 27, 2024 5: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-24.07, xHarbour 1.3.1 Build 20240624, Borland C++7.70, PellesC ***
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 97 guests