URLLINK + XBROWSE

Post Reply
User avatar
Silvio.Falconi
Posts: 7104
Joined: Thu Oct 18, 2012 7:17 pm

Re: URLLINK + XBROWSE

Post by Silvio.Falconi »

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

Re: URLLINK + XBROWSE

Post by karinha »

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

Code: Select all | Expand

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

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: URLLINK + XBROWSE

Post by leandro »

karinha, ninguno, así lo implementamos finalmente.

Code: Select all | Expand

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

Re: URLLINK + XBROWSE

Post by karinha »

leandro wrote:karinha, ninguno, así lo implementamos finalmente.

Code: Select all | Expand

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
Silvio.Falconi
Posts: 7104
Joined: Thu Oct 18, 2012 7:17 pm

Re: URLLINK + XBROWSE

Post by Silvio.Falconi »

leandro wrote:karinha, ninguno, así lo implementamos finalmente.

Code: Select all | Expand

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
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: URLLINK + XBROWSE

Post by leandro »

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

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

Re: URLLINK + XBROWSE

Post by karinha »

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
Cgallegoa
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: URLLINK + XBROWSE

Post by Cgallegoa »

Espero te sirva esta idea:
Image

Code: Select all | Expand

#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 ***
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: URLLINK + XBROWSE

Post by leandro »

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

Re: URLLINK + XBROWSE

Post by karinha »

Carlos, marabilloso d+

Code: Select all | Expand

// 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
Cgallegoa
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador
Contact:

Re: URLLINK + XBROWSE

Post by Cgallegoa »

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 ***
Post Reply