<![CDATA[FiveTech Software tech support forums]]> https://forums.fivetechsupport.com/~fivetec1/forums Tue, 15 Apr 2025 17:43:01 -0600 Smartfeed extension for phpBB https://forums.fivetechsupport.com/~fivetec1/forums/styles/prosilver/theme/images/site_logo.svg <![CDATA[FiveTech Software tech support forums]]> https://forums.fivetechsupport.com/~fivetec1/forums en-gb Tue, 15 Apr 2025 17:43:01 -0600 60 <![CDATA[FiveWin for Harbour/xHarbour :: Embeddings for Harbour/xHarbour !!! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45535&p=278408#p278408 :!:

Included in next FWH build! Thanks to my son Lolo for his inspiration and for explaining it to me! <3

This class uses HuggingFace free embeddings API (378 values for each embedding) or OpenAI commercial embeddings API (3.072 values for each embedding). We convert those values to a json string that can be saved into a DBF, TXT, INI, etc.

tembeddings.prg

Code: Select all | Expand

#include "FiveWin.ch"
#include "hbcurl.ch"

//----------------------------------------------------------------------------//

CLASS TEmbeddings
    
   DATA   cModel
   DATA   cPrompt
   DATA   cResponse
   DATA   cUrl
   DATA   cKey
   DATA   hCurl
   DATA   nError     INIT 0
   DATA   nHttpCode  INIT 0
   DATA   aEmbeddings

   METHOD New( cModel, cKey )
   METHOD Distance( aVector2, lCosine )
   METHOD DistanceFrom( oEmbeddings ) INLINE ::Distance( oEmbeddings:aEmbeddings ) 
   METHOD End() 
   METHOD GetEmbeddings( cPrompt )    
   METHOD IsOpenAI() INLINE ( "openai" $ Lower( ::cModel ) .or. "text-embedding-" $ ::cModel )
   OPERATOR "-" ARG oEmbeddings INLINE ::DistanceFrom( oEmbeddings )  
   DESTRUCTOR Destroy()    

ENDCLASS        

//----------------------------------------------------------------------------//

METHOD New( cModel, cKey ) CLASS TEmbeddings

   DEFAULT cModel := "sentence-transformers/all-MiniLM-L6-v2"  // Default to Hugging Face
   DEFAULT cKey   := hb_GetEnv( "HF_API_KEY" )               // Try Hugging Face first

   if Empty( cKey )
      cKey := hb_GetEnv( "OPENAI_API_KEY" )  // If no HF_API_KEY, try OPENAI_API_KEY
   endif

   ::cModel = cModel
   ::cKey   = cKey
   ::hCurl  = curl_easy_init()

   // Set the endpoint based on the model
   if ::IsOpenAI()
      ::cUrl = "https://api.openai.com/v1/embeddings"
   else
      ::cUrl = "https://api-inference.huggingface.co/pipeline/feature-extraction/" + ::cModel  // Feature extraction for embeddings
   endif
    
   if Empty( ::cKey )
      MsgAlert( "API key is required! Set it via parameter or HF_API_KEY/OPENAI_API_KEY environment variables." )
   endif

return Self    

//----------------------------------------------------------------------------//

METHOD End() CLASS TEmbeddings

    curl_easy_cleanup( ::hCurl )
    ::hCurl = nil

return nil    

//----------------------------------------------------------------------------//

METHOD GetEmbeddings( cPrompt ) CLASS TEmbeddings 

   local aHeaders, cJson, hRequest := { => }, hResponse, uValue

   if ! Empty( cPrompt )
      ::cPrompt = cPrompt
   endif   

   curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl )

   aHeaders := { ;
      "Content-Type: application/json", ;
      "Authorization: Bearer " + ::cKey ;
   }

   curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, aHeaders )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, '' )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )

   if ::IsOpenAI()
      hRequest[ "model" ] = ::cModel
      hRequest[ "input" ] = ::cPrompt  // OpenAI uses "input" instead of "inputs"
   else
      // Hugging Face: Correct structure for feature-extraction pipeline
      hRequest[ "inputs" ] = ::cPrompt
   endif

   cJson = hb_jsonEncode( hRequest )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )

   ::nError = curl_easy_perform( ::hCurl )
   curl_easy_getinfo( ::hCurl, HB_CURLINFO_RESPONSE_CODE, @::nHttpCode )

   if ::nError == HB_CURLE_OK
      ::cResponse = curl_easy_dl_buff_get( ::hCurl )
   else
      ::cResponse := "Error code " + Str( ::nError )
   endif

   hb_jsonDecode( ::cResponse, @hResponse )

   if ::IsOpenAI()
      TRY 
         uValue = hResponse[ "data" ][ 1 ][ "embedding" ]  // OpenAI returns embeddings in "data[0].embedding"
         ::aEmbeddings = uValue
      CATCH
         uValue = hResponse[ "error" ][ "message" ]
         ::aEmbeddings = nil
      END   
   else  // Hugging Face
      TRY 
         uValue = hResponse  // HF feature-extraction returns the vector directly as an array
         ::aEmbeddings = uValue
      CATCH
         uValue = hResponse[ "error" ]
         ::aEmbeddings = nil
      END   
   endif   
    
return uValue

//----------------------------------------------------------------------------//

PROCEDURE Destroy() CLASS TEmbeddings

   if ::hCurl != nil
      ::End()
   endif

return    

//----------------------------------------------------------------------------//

METHOD Distance( aVector2, lCosine ) CLASS TEmbeddings

    local nDistance, nSum, nNorm1, nNorm2, nDotProduct, nI

    DEFAULT lCosine := .T.  // Default to cosine distance
 
    if Empty( ::aEmbeddings )
       return -1  // Error: No embeddings stored in ::aEmbeddings
    endif
 
    if Len( ::aEmbeddings ) != Len( aVector2 )
       return -1  // Error: vectors must have the same length
    endif
 
    if lCosine
       // Calculate dot product and norms for cosine similarity
       nDotProduct := 0
       nNorm1 := 0
       nNorm2 := 0
       for nI := 1 to Len( ::aEmbeddings )
          nDotProduct += ::aEmbeddings[nI] * aVector2[nI]
          nNorm1 += ::aEmbeddings[nI] ^ 2
          nNorm2 += aVector2[nI] ^ 2
       next
       nNorm1 := Sqrt( nNorm1 )
       nNorm2 := Sqrt( nNorm2 )
       
       // Avoid division by zero
       if nNorm1 == 0 .OR. nNorm2 == 0
          return 1  // Maximum distance if one vector is zero
       endif
       
       // Cosine similarity and distance
       nDistance := 1 - ( nDotProduct / ( nNorm1 * nNorm2 ) )
    else
       // Euclidean distance
       nSum := 0
       for nI := 1 to Len( ::aEmbeddings )
          nSum += ( ::aEmbeddings[nI] - aVector2[nI] ) ^ 2
       next
       nDistance := Sqrt( nSum )
    endif
 
 return nDistance
 
//----------------------------------------------------------------------------//
Samples:

embeddings1.prg

Code: Select all | Expand

// Please remember to set HF_API_KEY=hf_... or OPENAI_API_KEY=... in your environment

#include "FiveWin.ch"

function Main()

    local oEmbeddings1 := TEmbeddings():New()
    local oEmbeddings2 := TEmbeddings():New()
    local oEmbeddings3 := TEmbeddings():New()
    
    oEmbeddings1:GetEmbeddings( "Me siento muy bien" )
    oEmbeddings2:GetEmbeddings( "¿ Como estás ?" )
    oEmbeddings3:GetEmbeddings( "he visto a Pepe" )

    ? oEmbeddings1 - oEmbeddings2
    ? oEmbeddings1 - oEmbeddings3
    
return nil    
embeddings2.prg

Code: Select all | Expand

// Please remember to set HF_API_KEY=hf_... or OPENAI_API_KEY=... in your environment

#include "FiveWin.ch"

function Main()

    local oEmbeddings := TEmbeddings():New()
    local cJson, cSentence := "Hello how are you ?" 
    
    oEmbeddings:GetEmbeddings( cSentence )
    
    cJson = hb_jsonEncode( oEmbeddings:aEmbeddings )

    if ! File( "embeddings.dbf" )
       DbCreate( "embeddings", { { "id", "+", 4, 0 },;
                                 { "sentence", "M", 10, 0 },;
                                 { "vectors", "M", 10 , 0 } } ) 
    endif
    
    USE embeddings 
    APPEND BLANK
    REPLACE sentence WITH cSentence
    REPLACE vectors WITH cJson
    XBrowse()
    USE
    
return nil    
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45535&p=278408#p278408 Mon, 17 Mar 2025 01:46:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45535&p=278408#p278408
<![CDATA[FiveWin for Harbour/xHarbour :: webview menu :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45544&p=278433#p278433
How to create a menu in html, like the example below: index.html (I couldn't find it)

https://www.fivetechsupport.com/forums/ ... ew#p267520]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45544&p=278433#p278433 Tue, 18 Mar 2025 11:50:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45544&p=278433#p278433
<![CDATA[FiveWin for Harbour/xHarbour :: Webview2 + GRAPHIC :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278425#p278425
Thanks]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278425#p278425 Tue, 18 Mar 2025 07:39:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278425#p278425
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview2 + GRAPHIC :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278426#p278426

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   local oWnd, oWebView 

   DEFINE WINDOW oWnd TITLE "Dashboard"

   oWebView = TWebView2():New( oWnd )

   oWebView:SetHtml( memoRead( "dashboard.html" ) )

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE oWebView:SetSize( nWidth, nHeight )

return nil      
dashboard.html

Code: Select all | Expand

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Professional Dashboard with Charts</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: Arial, sans-serif;
        }

        body {
            background: #f0f2f5;
            color: #333;
            line-height: 1.6;
        }

        .container {
            display: flex;
            min-height: 100vh;
        }

        .sidebar {
            width: 250px;
            background: #2c3e50;
            color: white;
            position: fixed;
            height: 100%;
            padding: 20px;
        }

        .sidebar h2 {
            font-size: 24px;
            margin-bottom: 30px;
            text-align: center;
        }

        .sidebar ul {
            list-style: none;
        }

        .sidebar ul li {
            margin: 20px 0;
        }

        .sidebar ul li a {
            color: white;
            text-decoration: none;
            display: flex;
            align-items: center;
            padding: 10px;
            border-radius: 5px;
            transition: background 0.3s;
        }

        .sidebar ul li a:hover {
            background: #34495e;
        }

        .sidebar ul li a i {
            margin-right: 10px;
            font-size: 18px;
        }

        .main-content {
            flex: 1;
            margin-left: 250px;
            padding: 20px;
        }

        .dashboard-container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .header {
            background: #2c3e50;
            color: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
        }

        .header h1 {
            font-size: 24px;
        }

        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 20px;
        }

        .card {
            background: white;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            transition: transform 0.3s;
        }

        .card:hover {
            transform: translateY(-5px);
        }

        .card h3 {
            margin-bottom: 15px;
            color: #2c3e50;
        }

        .stats-card {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .stats-icon {
            width: 50px;
            height: 50px;
            background: #3498db;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 24px;
        }

        .chart-container {
            height: 200px;
            position: relative;
        }

        .progress-bar {
            width: 100%;
            height: 20px;
            background: #eee;
            border-radius: 10px;
            overflow: hidden;
            margin-top: 10px;
        }

        .progress {
            height: 100%;
            background: #2ecc71;
            width: 0;
        }

        .progress-75 { width: 75%; }
        .progress-50 { width: 50%; }
        .progress-25 { width: 25%; }

        @media (max-width: 768px) {
            .sidebar {
                width: 200px;
            }

            .main-content {
                margin-left: 200px;
            }

            .grid-container {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 480px) {
            .sidebar {
                width: 70px;
            }

            .sidebar h2,
            .sidebar ul li a span {
                display: none;
            }

            .main-content {
                margin-left: 70px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar">
            <h2>Menu</h2>
            <ul>
                <li><a href="#"><i>🏠</i><span>Dashboard</span></a></li>
                <li><a href="#"><i>📊</i><span>Analytics</span></a></li>
                <li><a href="#"><i>👥</i><span>Users</span></a></li>
                <li><a href="#"><i>⚙️</i><span>Settings</span></a></li>
                <li><a href="#"><i>🚪</i><span>Logout</span></a></li>
            </ul>
        </div>

        <div class="main-content">
            <div class="dashboard-container">
                <div class="header">
                    <h1>Dashboard Overview</h1>
                </div>

                <div class="grid-container">
                    <div class="card stats-card">
                        <div class="stats-icon">📊</div>
                        <div>
                            <h3>Revenue</h3>
                            <p>$24,500</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">👥</div>
                        <div>
                            <h3>Users</h3>
                            <p>1,234</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">⭐</div>
                        <div>
                            <h3>Rating</h3>
                            <p>4.8/5</p>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Sales Trend (Monthly)</h3>
                        <div class="chart-container">
                            <canvas id="salesChart"></canvas>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Project Progress</h3>
                        <p>Development</p>
                        <div class="progress-bar"><div class="progress progress-75"></div></div>
                        <p>Design</p>
                        <div class="progress-bar"><div class="progress progress-50"></div></div>
                        <p>Testing</p>
                        <div class="progress-bar"><div class="progress progress-25"></div></div>
                    </div>

                    <div class="card">
                        <h3>User Distribution</h3>
                        <div class="chart-container">
                            <canvas id="userChart"></canvas>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Sales Trend Line Chart
        const salesCtx = document.getElementById('salesChart').getContext('2d');
        new Chart(salesCtx, {
            type: 'line',
            data: {
                labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
                datasets: [{
                    label: 'Sales ($)',
                    data: [12000, 19000, 15000, 25000, 22000, 30000],
                    borderColor: '#3498db',
                    backgroundColor: 'rgba(52, 152, 219, 0.2)',
                    fill: true,
                    tension: 0.4
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });

        // User Distribution Bar Chart
        const userCtx = document.getElementById('userChart').getContext('2d');
        new Chart(userCtx, {
            type: 'bar',
            data: {
                labels: ['New', 'Returning', 'Inactive'],
                datasets: [{
                    label: 'Users',
                    data: [500, 600, 134],
                    backgroundColor: [
                        '#2ecc71',
                        '#3498db',
                        '#e74c3c'
                    ]
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>
</html>
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278426#p278426 Tue, 18 Mar 2025 07:51:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278426#p278426
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview2 + GRAPHIC :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278429#p278429 no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278429#p278429 Tue, 18 Mar 2025 08:23:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278429#p278429 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview2 + GRAPHIC :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278438#p278438 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278438#p278438 Tue, 18 Mar 2025 14:53:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278438#p278438 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview2 + GRAPHIC :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278450#p278450 no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278450#p278450 Wed, 19 Mar 2025 05:15:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45540&p=278450#p278450 <![CDATA[FiveWin for Harbour/xHarbour :: webview google graph subtitle :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278439#p278439 When I set title: 'test', the subtitle will have the same value. I would like to be able to configure both.

Image

//part of a function taken from the forum:
cFuncion := cFuncion + " ]);"+;
"var options = { "+;
" title: '"+cTitulo+"',"+;
" hAxis: {title: '" + Alltrim(cHorTitle) + "'},"+;
" vAxis: {prefix:'R$', format: 'R$ #,##0.00', title: '" + Alltrim(cVerTitle) + "'},"+;
" widht: '100%',"+;
" height: 300, "+;
" isStacked: true, "+;
" is3D: " + IIf(lIs3D,"true ","false ")+;
"};"+;
"var chart = new google.visualization."+cTipo+"(document.getElementById('"+cNombre+"'));"+;
"chart.draw(data, options);"+;
"var formatter = new google.visualization.NumberFormat({ prefix: 'R$ ', decimalSymbol: ',', groupingSymbol: '.' }); formatter.format(data, 0); formatter.format(data, 1);"+;
"}"+;]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278439#p278439 Tue, 18 Mar 2025 14:54:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278439#p278439
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview google graph subtitle :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278443#p278443 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278443#p278443 Tue, 18 Mar 2025 22:09:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278443#p278443 <![CDATA[FiveWin for Harbour/xHarbour :: Re: webview google graph subtitle :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278447#p278447 https://www.fivetechsupport.com/forums/ ... 75#p273775]]> no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278447#p278447 Wed, 19 Mar 2025 04:29:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278447#p278447 <![CDATA[FiveWin for Harbour/xHarbour :: Re: webview google graph subtitle :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278449#p278449
I am basing myself on your code, it is being very useful. Thank you very much.
Cesar, the title provided below is the same as the subtitle, I would like to have a new parameter: cSubTitle

METHOD AddGraph (cNombre, cTitulo, cTipo, aColumnsData, aData, cColor )


METHOD AddGraph (cNombre, cTitulo, cTipo, aColumnsData, aData, cColor )
Local cGraph, cFuncion, cId, i
cGraph := cNombre+'();//AgregarChar'
::cHtml := strtran(::cHtml,"//AgregarChar",cGraph)
cFuncion := "function "+cNombre+"() { "+;
"var data = google.visualization.arrayToDataTable(["+;
" ['"+aColumnsData[1]+"', '"+aColumnsData[2]+"'], "
for i := 1 to len(aData)
cFuncion := cFuncion + "['"+aData[i,1]+"', "+STR(aData[i,2])+"],"
next i
cFuncion := cFuncion + " ]);"+;
"var options = { "+;
" title: '"+cTitulo+"',"+;
" widht: '100%',"+;
" height: 300, "+;
" is3D: true "+;
"};"+;
"var chart = new google.visualization."+cTipo+"(document.getElementById('"+cNombre+"'));"+;
"chart.draw(data, options);"+;
"}"+;
"//FuncionGrafico"
::cHtml := strtran(::cHtml,"//FuncionGrafico",cFuncion)
cId := '<div class="bg-white shadow-md p-6 rounded-lg">'+;
'<h2 class="text-xl font-bold mb-4 text-'+cColor+'-500">'+cTitulo+'</h2>'+;
'<div id="'+cNombre+'"></div>'+;
'</div>'+;
'<!-- idgrafico -->'
::cHtml := strtran(::cHtml,"<!-- idgrafico -->",cId)
return Self]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278449#p278449 Wed, 19 Mar 2025 05:14:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278449#p278449
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview google graph subtitle :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278459#p278459

Code: Select all | Expand

METHOD AddGraph (cNombre, cTitulo, cTipo, aColumnsData, aData, cColor)


METHOD AddGraph (cNombre, cTitulo, cTipo, aColumnsData, aData, cColor,cSubTitulo) // Cambiar aca
Local cGraph, cFuncion, cId, i
cGraph := cNombre+'();//AgregarChar'
::cHtml := strtran(::cHtml,"//AgregarChar",cGraph)
cFuncion := "function "+cNombre+"() { "+;
"var data = google.visualization.arrayToDataTable(["+;
" ['"+aColumnsData[1]+"', '"+aColumnsData[2]+"'], "
for i := 1 to len(aData)
cFuncion := cFuncion + "['"+aData[i,1]+"', "+STR(aData[i,2])+"],"
next i
cFuncion := cFuncion + " ]);"+;
"var options = { "+;
" title: '"+cSubTitulo+"',"+; //Cambiar Aca
" widht: '100%',"+;
" height: 300, "+;
" is3D: true "+;
"};"+;
"var chart = new google.visualization."+cTipo+"(document.getElementById('"+cNombre+"'));"+;
"chart.draw(datos, opciones);"+;
"}"+;
"//FuncionGrafico"
::cHtml := strtran(::cHtml,"//FuncionGrafico",cFuncion)
cId := '<div class="bg-white shadow-md p-6 rounded-lg">'+;
'<h2 class="text-xl font-bold mb-4 text-'+cColor+'-500">'+cTitulo+'</h2>'+;
'<div id="'+cNombre+'"></div>'+;
'</div>'+;
'<!-- idgrafico -->'
::cHtml := strtran(::cHtml,"<!-- idgrafico -->",cId)
return Self
]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278459#p278459 Wed, 19 Mar 2025 09:59:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278459#p278459
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview google graph subtitle :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278461#p278461 ]]> no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278461#p278461 Wed, 19 Mar 2025 12:18:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45546&p=278461#p278461 <![CDATA[FiveWin for Harbour/xHarbour :: Debug :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45552&p=278471#p278471 Grazie per l'aiuto]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45552&p=278471#p278471 Thu, 20 Mar 2025 01:03:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45552&p=278471#p278471 <![CDATA[FiveWin for Harbour/xHarbour :: insert a line on a Group :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278474#p278474

I want to insert a black line between the group header and the first record of the group,

The vertical position (oRep:nRow) is not updated correctly.

even if I do it this way

Code: Select all | Expand

oRep:bPostGroup := { || oRep:Line(oRep:nRow + 5, 0, oRep:nRow + 5, oRep:nWidth, 1, CLR_BLACK) }
nothing happens]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278474#p278474 Thu, 20 Mar 2025 03:10:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278474#p278474
<![CDATA[FiveWin for Harbour/xHarbour :: Re: insert a line on a Group :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278476#p278476
Image

Code: Select all | Expand

 oRep:bStartGroup := { |oGroup| oRep:Say(oRep:nMargin, Replicate("-", oRep:nWidth / 10), 1, RPT_LEFT, oRep:nRow + 5, , , CLR_BLACK),;
                                     oRep:nRow := oRep:nRow + 10 }
]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278476#p278476 Thu, 20 Mar 2025 03:43:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45553&p=278476#p278476
<![CDATA[FiveWin for Harbour/xHarbour :: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Author driessen]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278430#p278430
When building my application with xHarbour Professional, I get this message:

xLINK: warning: Multiple '.CRT$XIC' sections found with different attributes (0x40000040 and 0xc0000040).
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHCM.lib(winexec.obj)->_HB_FUN_SLEEP previously defined at (FGEGTL1.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHCM.lib(mem.obj)->_HB_FUN_NEXTMEM previously defined at (JUDA.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(filename.obj)->_HB_FUN_MOVEFILE previously defined at (FGEGTL2.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(getsysin.obj)->_HB_FUN_GETSYSFONT previously defined at (FGEGTL1.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(harbour.obj)->_HB_FUN_OLEINVOKE previously defined at (MAKEIND.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(harbour.obj)->_HB_FUN_OLESETPROPERTY previously defined at (MAKEIND.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(harbour.obj)->_HB_FUN_OLEGETPROPERTY previously defined at (MAKEIND.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\FwHarb\lib\FiveHMX.lib(brush.obj)->_HB_FUN_GRADIENTBRUSH previously defined at (FGEGTL2.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\xHarbour\lib\xHB.lib(xhbrtl.obj)->__dosmaperr previously defined at C:\SOFTWARE\FwHarb-lib\libcmt.lib(dosmap.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\xHarbour\c_lib\crt.lib(exit.obj)->_exit previously defined at C:\SOFTWARE\FwHarb-lib\libcmt.lib(crt0dat.obj)' is multiply defined.
xLINK: warning: Symbol 'C:\SOFTWARE\xHarbour\c_lib\crt.lib(localeconv.obj)->_localeconv previously defined at C:\SOFTWARE\FwHarb-lib\libcmt.lib(lconv.obj)' is multiply defined.
Creating object: C:\SOFTWARE\JUDA\JUDA_2_D.EXP
Creating library: C:\SOFTWARE\JUDA\JUDA_2_D.LIB
xLINK: error: Unresolved external symbol '_SetWindowLongPtr referenced from FiveHCM.lib(ffdlgprc.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_RATIO referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_HOLLOWTEXT referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FILLRECT referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FONTSTYLE referenced from FiveHMX.lib(font.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWARROW referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCAPTURERECTWND referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DELETEIMAGE referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPMESURETXT referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSBMPEMPTY referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICSIMG referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXT referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEGRAPHICS referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWTEXT referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_SAYIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_RINGGRAD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_CLONEIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_GETHBITMAP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FROMHBITMAP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FROMRESOURCE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEFROMFILE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEFROMSTR referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEINFO referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_ZOOM referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_NEWALPHABMP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_SAVEIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGTOIMG24 referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGECREATETHUMB referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMG2BLOB referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_CROP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_ROTATE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWSHAPES referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_GRAD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_PIE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGETOCLIPBOARD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DELETEBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_COLORBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWIMAGE referenced from FiveHMX.lib(ximage.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSHBITMAPTOCLIPBOARD referenced from FiveHMX.lib(ximage.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSHIGHQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNORMALQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWLINE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWRECT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWELLIPSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWARC referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSFILLPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCLEARCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSETSMOOTHINGGRAPHICS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHTRASLATETRANSFORM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHROTATETRANSFORM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHSCALE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_SETPAGEUNIT2PIXEL referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICSWND referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHICSFROMIMG referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXTFONT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXTLF referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSISINREGION referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEREGIONFROMGPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEPEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSETCLR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSALIGN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSETLINEJOIN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNOALIGN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSIZE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWPEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSTYLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWSOLIDBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRADIENTBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSANGLEGRADIENTBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSTARTUP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSHUTDOWN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDARC referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDELLIPSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDLINE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDRECTANGLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHCLOSEFIGURE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHSTARTFIGURE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSROTATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSROTATECENTERPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSCALEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSTRANSLATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDSTRING referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEIMAGEFROMRES referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEMATRIXTOGRAY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETALPHA referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETBLUE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEGETPIXCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPIXISCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEHBITMAPIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETGREEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGETHEIGHTBITMAP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETRED referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGETWIDTHBITMAP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEIS32BITS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEROTATEANGLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADPNGFROMSTR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEROTATEFLIP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESET32BITS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESETPIXCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXTOGRAYCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEMATRIXCUSTOM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESETPIXHCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPIXELCOLORTOALPHA referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESCALE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADPNGFROMRESOURCES referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADCACHEDFILE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESAVEQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESAVE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEDISPOSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGERESIZE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSEMFTOJPG referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGECROP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSEMFTOBMP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSLOADDIRECTIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGGETFRAMECOUNT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGGETFRAME referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: fatal error: 123 unresolved external(s).

Any idea what is wrong?

Using Harbour is doing fine. I need xHarbour Professional for debugging reasongs.

Thanks a lot in advance.]]>
no_email@example.com (driessen) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278430#p278430 Tue, 18 Mar 2025 08:39:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278430#p278430
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278470#p278470
We had to disable GDI+ support for VC98 (the version that we use of Visual C that is PellesC compatible) as there were many errors

If you need it, we will do our best to find a solution for you.

In the meantime, in case that you don't need GDI+ you can add dummy functions for those symbols.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278470#p278470 Wed, 19 Mar 2025 23:22:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278470#p278470
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Reply by driessen]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278472#p278472 Thanks for you answer.
So, I need to make 123 dummies?
That is a lot.
But I try do to it.]]>
no_email@example.com (driessen) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278472#p278472 Thu, 20 Mar 2025 02:01:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278472#p278472
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Reply by driessen]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278473#p278473 I succeeded in making dummies for all the GDI-functions, except one

xLINK: error: Unresolved external symbol '_SetWindowLongPtr referenced from FiveHCM.lib(ffdlgprc.obj)'.

How do I make a dummy for this?

Thanks.]]>
no_email@example.com (driessen) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278473#p278473 Thu, 20 Mar 2025 02:17:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278473#p278473
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278475#p278475
https://github.com/FiveTechSoft/FWH_too ... er/xfw.lib]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278475#p278475 Thu, 20 Mar 2025 03:26:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278475#p278475
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Unresolved externals with FWH 25.01 and xHarbour Prof. :: Reply by driessen]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278479#p278479
Thanks a lot.

For the time being, the problems are solved.]]>
no_email@example.com (driessen) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278479#p278479 Thu, 20 Mar 2025 05:12:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45542&p=278479#p278479
<![CDATA[FiveWin for Harbour/xHarbour :: -xbrowse not run correcly on a touchscreen :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278416#p278416

Code: Select all | Expand

WITH OBJECT oBrw
      :bChange := {|| RefreshCont(aBtnBrow[4], oBrw)}
      :lHScroll := .F.
      :CreateFromCode()
   END
if I use the vertical scroll the counter works (it scrolls through the records)

If I use my finger because I'm using a touchscreen I can scroll through the records but the counter doesn't change

see this video Please

Image

how is this possible ?
do i have to use another command ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278416#p278416 Mon, 17 Mar 2025 14:56:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278416#p278416
<![CDATA[FiveWin for Harbour/xHarbour :: Re: -xbrowse not run correcly on a touchscreen :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278424#p278424 oBrw:lHoverSelect := .t.]]> no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278424#p278424 Tue, 18 Mar 2025 06:38:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278424#p278424 <![CDATA[FiveWin for Harbour/xHarbour :: Re: -xbrowse not run correcly on a touchscreen :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278462#p278462
MGA wrote: Tue Mar 18, 2025 12:38 pm Hello Silvio, try
oBrw:lHoverSelect := .t.
Sorry not run ok here I use a lenovo Ideapad Miix 320 10 inch]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278462#p278462 Wed, 19 Mar 2025 13:53:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278462#p278462
<![CDATA[FiveWin for Harbour/xHarbour :: Re: -xbrowse not run correcly on a touchscreen :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278477#p278477
Silvio.Falconi wrote: Wed Mar 19, 2025 7:53 pm Sorry not run ok here I use a lenovo Ideapad Miix 320 10 inch
did you run the App under Windows 10 ?

have you try Mouse Option : Image]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278477#p278477 Thu, 20 Mar 2025 04:28:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278477#p278477
<![CDATA[FiveWin for Harbour/xHarbour :: Re: -xbrowse not run correcly on a touchscreen :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278481#p278481
Jimmy wrote: Thu Mar 20, 2025 10:28 am hi Silvio,
Silvio.Falconi wrote: Wed Mar 19, 2025 7:53 pm Sorry not run ok here I use a lenovo Ideapad Miix 320 10 inch
did you run the App under Windows 10 ?

have you try Mouse Option : Image
Image]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278481#p278481 Thu, 20 Mar 2025 06:04:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45538&p=278481#p278481
<![CDATA[FiveWin for Harbour/xHarbour :: Place click event on TITLETEXT :: Author oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278464#p278464
I would like to know if it is possible to place a click event on TITLETEXT?

Kind regards,

Oliveiros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278464#p278464 Wed, 19 Mar 2025 14:57:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278464#p278464
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Place click event on TITLETEXT :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278468#p278468
If you refer to Class TTitle then you can use oTitle:bLButtonUp = { | nRow, nCol | ... }]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278468#p278468 Wed, 19 Mar 2025 23:17:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278468#p278468
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Place click event on TITLETEXT :: Reply by oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278484#p278484
Obrigado pela resposta. Vou testar aqui.

Oliveiros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278484#p278484 Thu, 20 Mar 2025 07:23:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278484#p278484
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Place click event on TITLETEXT :: Reply by oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278485#p278485
Funcionou. Obrigado!

Oliveros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278485#p278485 Thu, 20 Mar 2025 07:34:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45551&p=278485#p278485
<![CDATA[FiveWin for Harbour/xHarbour :: ADSODBC and OpenSSL :: Author reinaldocrespo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278487#p278487
Is anyone connecting to an Advantage Database data dictionary using ODBC?

I'm having problems trying to connect using an ODBC DNS entry. I'm using ADSODBC and ADSODBC64 from ADS ver 10.10. Here is the error:
Connection failed: [iAnywhere Solutions][Advantage SQL][ASA] Error 7160: Unable to find or load one of the OpenSSL libraries. axServerConnect
The help file describes 7160 error as:
Problem: Advantage Database Server was not able to load the OpenSSL libraries. In order to use AES encryption or TLS communications, you must have the FIPS Encryption Security Option available.
Solution: If the libraries are available, verify that they are in a path location that the server can access.
Obviously the connect function is not finding the appropriate SSL .dlls but I have no idea which version is it that works or where to place these files.

Can someone help?

Thank you.]]>
no_email@example.com (reinaldocrespo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278487#p278487 Thu, 20 Mar 2025 13:54:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278487#p278487
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ADSODBC and OpenSSL :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278509#p278509
Place the OpenSSL DLLs in a location where the system or ADSODBC driver can find them. Here are some common locations to check:
The same directory as the ODBC driver (adsodbc.dll).
A system-wide location like C:\Windows\System32\ for 64-bit or C:\Windows\SysWow64\ for 32-bit.
Alternatively, you can add the directory containing the OpenSSL DLLs to your system's PATH environment variable.
Ensure that you're using a version of OpenSSL that's compatible with Advantage Database Server (ADS) 10.10. The OpenSSL libraries should match the version that ADS expects for encryption (AES, TLS, etc.).
Advantage Database typically uses OpenSSL 1.0.x, so using a newer or incompatible version (like OpenSSL 1.1.x or OpenSSL 3.x) could cause issues.
For ADS 10.10, you need OpenSSL libraries in the 0.9.8 series (similar to what's used in ADS 11.10)
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278509#p278509 Fri, 21 Mar 2025 16:32:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278509#p278509
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ADSODBC and OpenSSL :: Reply by Giovany Vecchi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278511#p278511 Look at this link which has options to connect to the AdvantageDatabase Server in several ways.

https://www.connectionstrings.com/sybase-advantage/]]>
no_email@example.com (Giovany Vecchi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278511#p278511 Fri, 21 Mar 2025 19:35:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45554&p=278511#p278511
<![CDATA[FiveWin for Harbour/xHarbour :: FiveLinux repositories :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45557&p=278514#p278514 https://github.com/FiveTechSoft/FiveLinux2

FiveLinux based on GTK 3.0
https://github.com/FiveTechSoft/FiveLinux3]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45557&p=278514#p278514 Sat, 22 Mar 2025 02:05:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45557&p=278514#p278514
<![CDATA[FiveWin for Harbour/xHarbour :: Parameterized queries with MariaDB :: Author reinaldocrespo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278522#p278522
Parameterized queries are key to preventing SQL injection in any SQL including MariaDB. However, in MariaDB (and MySQL), the parameterization itself is handled at the level of the client application, not in SQL syntax directly.

Parameterized queries are also a lot faster when executed inside a loop many times, as the server only parses the SQL once.

Here is a sample code using PHP of a parameterized query with MariaDB.

Code: Select all | Expand

$mysqli = new mysqli("localhost", "user", "password", "database");

$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username); // 's' means string
$username = "rcrespo";
$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    print_r($row);
}
Does fwh maria class supports parameterized queries?

Thank you.]]>
no_email@example.com (reinaldocrespo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278522#p278522 Sat, 22 Mar 2025 12:26:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278522#p278522
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Parameterized queries with MariaDB :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278525#p278525

Code: Select all | Expand

cSql     := "SHOW FULL TABLES IN `?` LIKE ?"
oMysql:Execute( cSql, { npar1, npar2 } )    // Example with two parameters
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278525#p278525 Sat, 22 Mar 2025 17:38:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45559&p=278525#p278525
<![CDATA[FiveWin for Harbour/xHarbour :: TPanel Left click mouse is possbible? :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278489#p278489

Code: Select all | Expand

DEFINE WINDOW oWnd TITLE "Dashboard " 
   *** Paneles
      
   oPanelWeb := TPanel():New( 0, 281, oWnd:nHeight, oWnd:nWidth, oWnd ) 
  
   oPanelWeb:blclicked := {|| msginfo("test")}  <---------
   
   oWebView := TWebView2():New(oPanelWeb)      
   oWebView:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )   
   oWebView:SetHtml( MiHtml(1) ) 
   oWebView:Run()   

ACTIVATE WINDOW oWnd MAXIMIZED ON RESIZE
]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278489#p278489 Thu, 20 Mar 2025 14:35:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278489#p278489
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278502#p278502

Code: Select all | Expand

// C:\FWH\SAMPLES\BIRAPAN.PRG

#include "FiveWin.ch"

STATIC oWnd, OPANELWEB, OWEBVIEW

FUNCTION Main()

   DEFINE WINDOW oWnd TITLE "Dashboard " // ** Paneles

   oPanelWeb := TPanel():New( 0, 281, oWnd:nHeight, oWnd:nWidth, oWnd )

   WITH OBJECT oPanelWeb

      oWnd:bRClicked := { || ( FUNDOBIRA() ) } // Mouse Direito

      oWnd:bLClicked := { || ( FUNDOBIRA() ) } // Mouse Esquerdo

   END

   oWebView := TWebView2():New( oPanelWeb )
   oWebView:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )
   oWebView:SetHtml( MiHtml( 1 ) ) // ?? Mostre isso Bira, fiquei curioso.
   oWebView:Run()

   ACTIVATE WINDOW oWnd MAXIMIZED // ON RESIZE ??

RETURN NIL

FUNCTION FUNDOBIRA()

   ? [AQUI ESTOU BIRA]

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278502#p278502 Fri, 21 Mar 2025 10:53:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278502#p278502
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278508#p278508
não funciona.]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278508#p278508 Fri, 21 Mar 2025 15:04:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278508#p278508
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278510#p278510
Use a javascript event called function that jumps to FWH using javascript SendToFWH()

If you provide function MiHtml() source code then we can help you to implement it]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278510#p278510 Fri, 21 Mar 2025 16:44:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278510#p278510
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278538#p278538
Antonio Linares wrote: Fri Mar 21, 2025 10:44 pm The WebView control covers all the window parent area so you can not use bRClicked

Use a javascript event called function that jumps to FWH using javascript SendToFWH()

If you provide function MiHtml() source code then we can help you to implement it
Antonio ,
a long time ago I used a simple html without the Twebview class, I connected to an html page that I had on a server, the page was formed as a dashboard with all the icons, if I pressed a button or the writings I could open the procedures that were in the program without using javascript, I have to find the example again and I'll show it to you

run also on local

look the video
Image

I use a simply activex

oActiveX := TActiveX():New( oWndBrowser, "Shell.Explorer" )
oActiveX:bOnEvent := { | event, aParams, pParams | EventInfo( event, aParams, pParams, oActiveX ) }

on Eventinfo I insert

Code: Select all | Expand

 
  if ( "index.html" $ cParam .and. "#" $ cParam )

            cCommand := SubStr( cParam, At( "#", cParam ) + 1 )

            if !Empty( cCommand )
                            &cCommand
                        end if
                        
sample on html

Code: Select all | Expand

<ul class="post-content-button">
                            			<li class="post-contenido-button"><img src="img/gc_document_text_user.png" class="imagen"></li>
                                		<li class="post-contenido-button"><font class="tituloboton"><a href="index.html#AppFacCli()">A&ntilde;adir nueva factura</a></font></li>
                            		</ul>
when I click on "A&ntilde;adir nueva factura" I open the procedure index.html#AppFacCli()


I not Know TwebView or TwebView2 because I never use these object classes, exist a codeblock to insert as bonEvent ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278538#p278538 Mon, 24 Mar 2025 03:44:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278538#p278538
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278540#p278540
mihtml.html

Code: Select all | Expand


<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Test TWebView</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
            background-color: #f0f0f0;
        }
        .post-content-button {
            list-style: none;
            padding: 0;
            display: flex;
            align-items: center;
            background-color: #ffffff;
            border: 1px solid #ccc;
            border-radius: 5px;
            box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
        }
        .post-contenido-button {
            margin: 10px;
        }
        .imagen {
            width: 24px;
            height: 24px;
            vertical-align: middle;
        }
        .tituloboton {
            font-size: 16px;
            color: #333;
        }
        a {
            text-decoration: none;
            color: #0078d7;
        }
        a:hover {
            text-decoration: underline;
            color: #005bb5;
        }
    </style>
</head>
<body>
    <ul class="post-content-button">
        <li class="post-contenido-button">
            <img src="img/test.png" class="imagen" alt="Image">
        </li>
        <li class="post-contenido-button">
            <font class="tituloboton">
                <a href="#" onclick="callHarbourFunction('AppFacCli'); return false;">Añadir nueva factura</a>
            </font>
        </li>
    </ul>

    <script>
        function callHarbourFunction(funcName) {
            if (window.chrome && window.chrome.webview) {
                window.chrome.webview.postMessage(funcName); 
                alert("Messaggio inviato a Harbour: " + funcName); 
            } else {
                alert("WebView2 non è disponibile!");
            }
        }
    </script>
</body>
</html>



test.prg

Code: Select all | Expand


#include "FiveWin.ch"

FUNCTION Main()
   LOCAL oWebView := TWebView():New( 0, 0, 800, 600 ) // Create the WebView control
   LOCAL cHtml := MemoRead("mihtml.html")   // Upload your HTML

   // Set up binding to receive messages from the web
   oWebView:bOnBind := {|cMessage| ExecuteFunction(cMessage) }

   // Load the HTML
   oWebView:SetHtml(cHtml)
   oWebView:Run()

RETURN NIL

FUNCTION ExecuteFunction(cFuncName)
   IF cFuncName == "AppFacCli"
      AppFacCli() // Call your Harbour function
   ENDIF
RETURN NIL

FUNCTION AppFacCli()
   MsgInfo("here your harbour/fwh  codes!")
RETURN NIL
]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278540#p278540 Mon, 24 Mar 2025 06:44:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278540#p278540
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278541#p278541 Please why it make error ?

Code: Select all | Expand

#include "FiveWin.ch"

FUNCTION Main()
   LOCAL oWebView := TWebView():New()

   oWebView:SetHtml( Html() )
   oWebView:SetTitle( "Test AppFacCli" )
   oWebView:SetSize( 800, 600 )
   oWebView:Bind( "SendToFWH" )
   oWebView:bOnBind := {|cJson, cCalls| ExecuteFunction(cJson, cCalls, oWebView) }
   oWebView:Run()
   oWebView:Destroy()

RETURN NIL

FUNCTION ExecuteFunction(cJson, cCalls, oWebView)
   LOCAL hData

   // Decodifica il JSON ricevuto dal JavaScript
   hb_jsonDecode(cJson, @hData)

   // Controlla il contenuto del JSON
   IF hb_HHasKey(hData, "function") .AND. hData["function"] == "AppFacCli"
      AppFacCli()
      oWebView:Return(cCalls, 0, "{ 'result': 'AppFacCli eseguita con successo!' }")
   ELSE
      oWebView:Return(cCalls, 0, "{ 'result': 'Funzione non riconosciuta' }")
   ENDIF

RETURN NIL

FUNCTION AppFacCli()
   MsgInfo("my codes!")
RETURN NIL

FUNCTION Html()
   LOCAL cHtml

   TEXT INTO cHtml
   <!DOCTYPE html>
   <html lang="it">
   <head>
       <meta charset="UTF-8">
       <title>Test TWebView</title>
       <style>
           body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; }
           .post-content-button { list-style: none; padding: 0; display: flex; align-items: center; background-color: #ffffff; border: 1px solid #ccc; border-radius: 5px; box-shadow: 2px 2px 5px rgba(0,0,0,0.1); }
           .post-contenido-button { margin: 10px; }
           .imagen { width: 24px; height: 24px; vertical-align: middle; }
           .tituloboton { font-size: 16px; color: #333; }
           a { text-decoration: none; color: #0078d7; }
           a:hover { text-decoration: underline; color: #005bb5; }
       </style>
   </head>
   <body>
       <ul class="post-content-button">
           <li class="post-contenido-button"><img src="img/test.png" class="imagen" alt="Icona"></li>
           <li class="post-contenido-button">
               <font class="tituloboton">
                   <a href="#" onclick="callHarbourFunction('AppFacCli'); return false;">Añadir nueva factura</a>
               </font>
           </li>
       </ul>

       <script>
           function callHarbourFunction(funcName) {
               var data = { function: funcName };
               var s = SendToFWH(data).then(s => { 
                   alert(s.result);
               }).catch(err => {
                   alert("Errore: " + err); 
               });
           }
       </script>
   </body>
   </html>
   ENDTEXT

RETURN cHtm
]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278541#p278541 Mon, 24 Mar 2025 07:16:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278541#p278541
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278542#p278542 Now run ok

the procedure call RightClickEvent() , this is opened when I click on right click of the mouse into webview

Code: Select all | Expand

#include "FiveWin.ch"

FUNCTION Main()
   LOCAL oWebView := TWebView():New()

   oWebView:SetHtml( Html() )
   oWebView:SetTitle( "Test AppFacCli" )
   oWebView:SetSize( 800, 600 )
   oWebView:Bind( "SendToFWH" )
   oWebView:bOnBind := {|cJson, cCalls| ExecuteFunction(cJson, cCalls, oWebView) }
   oWebView:Run()
   oWebView:Destroy()

RETURN NIL

FUNCTION ExecuteFunction(cJson, cCalls, oWebView)
   LOCAL hData, cFuncName

   // Debug: mostra il JSON ricevuto
   MsgInfo("JSON ricevuto: " + cJson)

   // Decodifica il JSON
   hb_jsonDecode(cJson, @hData)

   // Se hData è un array, prendi il primo elemento
   IF ValType(hData) == "A" .AND. Len(hData) > 0
      hData := hData[1]
   ENDIF

   // Estrai il nome della funzione
   cFuncName := hb_HGetDef(hData, "function", "Nessuna funzione")
   MsgInfo("Funzione estratta: " + cFuncName)

   // Esegui la funzione corrispondente
   IF Upper(cFuncName) == "APPFACCLI"
      AppFacCli()
      oWebView:Return(cCalls, 0, "{ 'result': 'AppFacCli eseguita con successo!' }")
   ELSE
      oWebView:Return(cCalls, 0, "{ 'result': 'Funzione non riconosciuta: " + cFuncName + "' }")
   ENDIF

   RETURN NIL

FUNCTION AppFacCli()
   MsgInfo("my codes!")
   RETURN NIL

Function RightClickEvent()     // this is opened when  I click on right click of the mouse into webview
         MsgInfo("right click!")
   return nil




   FUNCTION Html()
   LOCAL cHtml

   TEXT INTO cHtml
   <!DOCTYPE html>
   <html lang="it">
   <head>
       <meta charset="UTF-8">
       <title>Test TWebView</title>
       <style>
           body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; }
           .post-content-button { list-style: none; padding: 0; display: flex; align-items: center; background-color: #ffffff; border: 1px solid #ccc; border-radius: 5px; box-shadow: 2px 2px 5px rgba(0,0,0,0.1); }
           .post-contenido-button { margin: 10px; }
           .imagen { width: 24px; height: 24px; vertical-align: middle; }
           .tituloboton { font-size: 16px; color: #333; }
           a { text-decoration: none; color: #0078d7; }
           a:hover { text-decoration: underline; color: #005bb5; }
       </style>
   </head>
   <body>
       <ul class="post-content-button">
           <li class="post-contenido-button"><img src="img/test.png" class="imagen" alt="Icona"></li>
           <li class="post-contenido-button">
               <font class="tituloboton">
                   <a href="#" onclick="callHarbourFunction('AppFacCli'); return false;">Aggiungi nuova fattura</a>
               </font>
           </li>
       </ul>

       <script>
           // Funzione per chiamare Harbour
           function callHarbourFunction(funcName) {
               var data = { function: funcName };
               SendToFWH(data).then(s => { 
                   alert(s.result);
               }).catch(err => {
                   alert("Errore: " + err); 
               });
           }

           // Intercetta il clic destro e invia l'evento a Harbour
           document.addEventListener("contextmenu", function(event) {
               event.preventDefault(); // Evita il menu di default del browser
               var data = { function: "RightClickEvent" };
               SendToFWH(data);
           });
       </script>
   </body>
   </html>
   ENDTEXT

RETURN cHtml

]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278542#p278542 Mon, 24 Mar 2025 07:33:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278542#p278542
<![CDATA[FiveWin for Harbour/xHarbour :: Re: TPanel Left click mouse is possbible? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278546#p278546
Better use FWH Class TWebView2 instead of Class TWebView as it is much more advanced and it does not require an external DLL

thanks!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278546#p278546 Mon, 24 Mar 2025 13:54:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45555&p=278546#p278546
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Lost connection to MySQL server during query :: Reply by ssbbs]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=43528&p=278553#p278553
vilian wrote: Mon Dec 30, 2024 2:09 pm Yes,
You can use bOnLostServer

* FWMariaConnection:
Reconnection logic improved when the app loses connection to the server.
New data bOnLostServer: If this codeblock is specified, it is called when the
application loses connection with the server.
PAUL SIMM wrote:Is there any way I can change the error message "Lost Connection to MySql server during query" to only log the error to a text file end return false to the calling fintion. At the moment the error is a MsgInfo and the process which is automatic with a Timer blocks the aplication.

This code do'snt do this

oCon:Execute(cQwery)

if oCon:nError != 0
MSGWAIT("Error executando query","Line 10961")
oCon:Close()
RETURN .F.
endif

I used to work with Eagle I could define what to do when an MySql error occured with this funcion.
FUNCTION MyMsgError(cArg1,cArg2 )
MSGWAIT(cArg1,cArg2+" Web2Reco")
YMENSCEN(cArg1+ " "+cArg2) //log error
RETURN NIL
******************************************************************************
mysql.c add:

Code: Select all | Expand

HB_FUNC(SQLPING)
{
   _retnl((long) mysql_ping( (MYSQL *)_parnl(1) ) );
}
tMySQL.prg
CLASS TMySQLServer
add:

Code: Select all | Expand

METHOD   Ping()               INLINE sqlping( ::nSocket )
your prg use TTimer to run SQL:ping() every 180 seconds.
I've been using this method for over ten years!]]>
no_email@example.com (ssbbs) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=43528&p=278553#p278553 Tue, 25 Mar 2025 01:52:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=43528&p=278553#p278553
<![CDATA[FiveWin for Harbour/xHarbour :: open a function from a link inserted in an html (oWebview) RESOLVED :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278578#p278578

Code: Select all | Expand

 <div class="quick-item" onclick="callHarbourFunction('Clienti')">
                                <img src="{IMGCLIENTI}" alt="Clienti">
                                <span>Clienti</span>
                            </div>
callHarbourFunction is on a javascritpt script

Code: Select all | Expand

<script>
                function callHarbourFunction(funcName) {
                    var data = { function: funcName };
                    var s = SendToFWH(data).then(s => {
                        alert(s.result);
                    }).catch(err => {
                        alert("Errore: " + err);
                    });
                }
            </script>

When I click on a link give me a message box with the text "array"

Image

and not open the function clienti()

How I can resolve ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278578#p278578 Wed, 26 Mar 2025 15:38:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278578#p278578
<![CDATA[FiveWin for Harbour/xHarbour :: Re: open a function from a link inserted in an html (oWebview) :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278585#p278585
oWebView:bOnBind := {|cJson, cCalls| ExecuteFunction(cJson, cCalls, oWebView) }

but not arrive nothing on cJson]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278585#p278585 Wed, 26 Mar 2025 12:03:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278585#p278585
<![CDATA[FiveWin for Harbour/xHarbour :: Re: open a function from a link inserted in an html (oWebview) :: Reply by Ari]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278594#p278594
How is your function that opens the WebView?

Post an example]]>
no_email@example.com (Ari) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278594#p278594 Wed, 26 Mar 2025 15:14:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278594#p278594
<![CDATA[FiveWin for Harbour/xHarbour :: Re: open a function from a link inserted in an html (oWebview) :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278598#p278598
Please use XBrowse( data ) instead of MsgInfo( data )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278598#p278598 Wed, 26 Mar 2025 15:28:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278598#p278598
<![CDATA[FiveWin for Harbour/xHarbour :: Re: open a function from a link inserted in an html (oWebview) :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278603#p278603 I resolved

oWebView:bOnBind := {|hData| ExecuteFunction(hData, oWebView) }

Code: Select all | Expand

 FUNCTION Extract(cString)
    LOCAL aData
    LOCAL cValue
    aData := (cString)
    cValue := aData[1]["function"]
    RETURN cValue

Code: Select all | Expand

Function ExecuteFunction(hData, oWebView)
   local  cFuncName  := Extract(hData)


   DO CASE
      CASE cFuncName == "Bacheca"
         Bacheca(oWebView)
        CASE cFuncName = "Clienti"
         Clienti()
              ENDCASE
   RETURN NIL
because the string returned by bOnBind is not a valid hash but seem as an array]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278603#p278603 Wed, 26 Mar 2025 15:38:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45566&p=278603#p278603
<![CDATA[FiveWin for Harbour/xHarbour :: Harbour debugging under IIS :: Author don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278568#p278568
Is there a way to have access to a debugger for the Harbour exe when running under IIS?]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278568#p278568 Wed, 26 Mar 2025 06:31:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278568#p278568
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Harbour debugging under IIS :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278569#p278569
#pragma DEBUGINFO=ON
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278569#p278569 Wed, 26 Mar 2025 07:40:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278569#p278569
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Harbour debugging under IIS :: Reply by don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278575#p278575
Does the debugger appear when it hits an altd()?]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278575#p278575 Wed, 26 Mar 2025 09:56:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278575#p278575
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Harbour debugging under IIS :: Reply by don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278576#p278576 no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278576#p278576 Wed, 26 Mar 2025 09:57:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278576#p278576 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Harbour debugging under IIS :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278593#p278593
a CGI app can not use the GUI interface so you can only generate a log file (ascii file) with some usefull info for debugging

Afaik, there is no way to use the debugger from it]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278593#p278593 Wed, 26 Mar 2025 14:54:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278593#p278593
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Harbour debugging under IIS :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278608#p278608
File hbd_debug.c

Code: Select all | Expand

#include "windows.h"
#include "hbapi.h"

HB_FUNC( HB_DEBUG_STRING )
{
	OutputDebugString( hb_parcx( 1 ) );
}
then from your prg

Code: Select all | Expand

hb_debug_string( "your string message" )
then from app "DebugView++.exe"
https://github.com/CobaltFusion/DebugVi ... -win64.zip

I hope can be useful 8)]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278608#p278608 Wed, 26 Mar 2025 18:25:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45564&p=278608#p278608
<![CDATA[FiveWin for Harbour/xHarbour :: SendToFWH() - TWebView2 :: Author Ari]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278605#p278605
HTML see <script>

Code: Select all | Expand

  
  <!DOCTYPE html>
  <html lang="pt-br">
  <head>
  
  <meta charset="UTF-8">
  <title>Menu</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
  <link rel="stylesheet" href="/easyui/themes/color.css">
  <link rel="stylesheet" href="/easyui/themes/metro/easyui.css">
  <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
  <script src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
      
    
  <script>

    function ExecMenu(opcao){
    
         alert("Executando ExecMenu: " + opcao);              <<<< ----- ok
         
         window.chrome.webview.postmessage(opcao);            <<<< ---- :-( não funciona
		 SendToFWH( opcao );                                  <<<< ---- :-( não funciona 
   	}
 
  </script>
  
  <style>
   
  body {
    font-family: "Segoe UI", sans-serif;
    padding: 20px;
    background: #f4f6f9;
  }
 
  .menu-card {
    padding: 0;
    padding-bottom: 12px;
    background: #fff;
    border: 1px solid #d0d7de;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    margin-bottom: 20px;
  }
 
  h3.menu-titulo {
    margin: 0;
    padding: 8px 12px;
    background-color: 'f6f6f6;
    color: '0078d4;
    font-size: 16px;
    font-weight: bold;
    border-bottom: 1px solid 'ddd;
    border-radius: 6px 6px 0 0;
  }
 
  ul {
    margin: 2px 0;
    padding: 0;
  }
 
  li, li a {
    list-style: none;
    margin: 0;
    padding: 0;
    border: none;
    line-height: 1.2;
  }
 
  .menu-card li {
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
 
  .menu-card li:hover {
    background: #B0E2FF;
  }
 
  li a {
    color: #0078d4;
    text-decoration: underline;
    display: block;
    padding: 2px 2px;
  }
 
  li a:hover {
    text-decoration: none;
  }
  
  li span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  }
  
  li img, li i {
    vertical-align: middle;
    display: inline-block;
    margin-right: 6px;  
  }
    
  </style>
    
  </head>
  <body>
  

   <div class="menu-container" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px;">

   <div class="menu-card" style="background:#fff; border:1px solid #d0d7de;   border-radius:6px; padding:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05);">
   <h3 style="margin:0; color: white; font-size:16px; border-bottom:1px solid #eee; border-radius: 6px 6px 0 0;border-bottom: 1px solid #ddd; font-weight: bold;padding: 8px 12px;padding-bottom:4px; background-color: #004080;">Arquivos</h3>
   <ul style="list-style:none; padding:0; margin:0; white-space: nowrap;">
     <li><span><i class="fas fa-dollar-sign" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVPla000():New( ::oWnd )'); return false;">Captura lista de preços</a></span></li>
     <li><span><i class="fas fa-box" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm087():New(::oWnd)'); return false;">Gerar arquivo de produtos (Global)</a></span></li>
     <li><span><i class="fas fa-envelope" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('EnviaLista()'); return false;">Enviar lista de preco por email</a></span></li>
     <li><span><i class="fas fa-cog" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCfg():New(::oWnd)'); return false;">Configurações Gerais</a></span></li>
     <li><span><i class="fas fa-user" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm046():New(::oWnd, ::oWnd:oMenu)'); return false;">Vendedor/Usuário/Representante</a></span></li>
     <li><span><i class="fas fa-user-lock" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm124():New(::oWnd)'); return false;">Ligar/Desligar direitos para vários usuários</a></span></li>
    </ul>
</div>

   <div class="menu-card" style="background:#fff; border:1px solid #d0d7de; border-radius:6px; padding:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05);">

   <h3 style="margin:0; color: white; font-size:16px; border-bottom:1px solid #eee; border-radius: 6px 6px 0 0;border-bottom: 1px solid #ddd; font-weight: bold;padding: 8px 12px;padding-bottom:4px; background-color: #004080;">Processos especiais</h3>

   <ul style="list-style:none; padding:0; margin:0;">
     <li><span><i class="fas fa-database" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('Msg("Solicite informações para restaurar copias de segurança")'); return false;">Restaurar Cópias de Segurança</a></span></li>
     <li><span><i class="fas fa-table" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckTab():New(.T., ::oWnd)'); return false;">Conferência das tabelas</a></span></li>
     <li><span><i class="fas fa-table" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| RecnoTab(oMeter) },"aguarde","processando")'); return false;">Recupera tabela-especial</a></span></li>
     <li><span><i class="fas fa-exchange-alt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TrocaTbl()'); return false;">Troca de tabela - manutenção</a></span></li>
     <li><span><i class="fas fa-upload" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TMigra():New(.T.,,,.T.)'); return false;">Carrega tabela de dados - manutenção</a></span></li>
     <li><span><i class="fas fa-file-archive" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TBackup():New(2, ::oWnd)'); return false;">Backup dos Arquivos XML-NFe</a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TBackup():New(3, ::oWnd)'); return false;">Enviar todos os XML-NFe por Cliente</a></span></li>
     <li><span><i class="fas fa-terminal" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('ManutencaoQuery()'); return false;">Manutenção por query</a></span></li>
     <li><span><i class="fas fa-wrench" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('ManutencaoPorFuncao()'); return false;">Manutenção por função</a></span></li>
     <li><span><i class="fas fa-terminal" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('CriaManutencaoQuery()'); return false;">Cria Manutenção por query</a></span></li>
     <li><span><i class="fas fa-tools" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('CriaManutencaoPorFuncao()'); return false;">Cria Manutenção por função</a></span></li>
     <li><span><i class="fas fa-folder-open" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm086():New()'); return false;">Organizar Arquivos</a></span></li>
     <li><span><i class="fas fa-file-medical" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('ManTableFrm086()'); return false;">Manutenção arquivos - corrigir integridade</a></span></li>
     <li><span><i class="fas fa-tools" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('Reparar()'); return false;">Manutenção de tabela</a></span></li>
     <li><span><i class="fas fa-circle" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():Ler(::oWnd)'); return false;">Registros de eventos</a></span></li>
     <li><span><i class="fas fa-history" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():LerPed(::oWnd)'); return false;">Histórico de pedidos de venda</a></span></li>
     <li><span><i class="fas fa-history" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():LerPedComp(::oWnd)'); return false;">Histórico de pedidos de compra</a></span></li>
     <li><span><i class="fas fa-history" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():LerPedCompDiversos(::oWnd)'); return false;">Histórico de pedidos de compra - diversos</a></span></li>
     <li><span><i class="fas fa-receipt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():VerDuplicata(1,::oWnd)'); return false;">Histórico de duplicatas - Contas a pagar</a></span></li>
     <li><span><i class="fas fa-receipt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TCheckDic():VerDuplicata(2,::oWnd)'); return false;">Histórico de duplicatas - Contas a receber</a></span></li>
     <li><span><i class="fas fa-share-square" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('SuporteSis()'); return false;">Enviar informações do sistema</a></span></li>
     <li><span><i class="fas fa-user" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TUser():New(::oWnd)'); return false;">Usuários conectados</a></span></li>
     <li><span><i class="fas fa-database" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TSysInfo():New(::oWnd)'); return false;">Informações do MySQL</a></span></li>
     <li><span><i class="fas fa-cloud-upload-alt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgRun("Verificando versão no Servidor FTP", "Sisrev Informática Ltda.", {|oMsg| ChamaGoFTP()} )'); return false;">Atualizar versão do Sistema por FTP</a></span></li>
     <li><span><i class="fas fa-cloud-upload-alt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVMan233():New(::oWnd)'); return false;">Atualizar NFe_Util por FTP</a></span></li>
     <li><span><i class="fas fa-cloud-upload-alt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVMan234():New(::oWnd)'); return false;">Atualizar Fontes do Danfe por FTP</a></span></li>
     <li><span><i class="fas fa-sync" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgRun("Verificando versão no Servidor Web", "Sisrev Informática Ltda.", {|oMsg| ChamaGoWeb(1)} )'); return false;">Atualizar versão via Servidor Web</a></span></li>
     <li><span><i class="fas fa-sync-alt" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgRun("Verificando versão no Servidor Web", "Sisrev Informática Ltda.", {|oMsg| ChamaGoWeb(2)} )'); return false;">Substituir versão (mesmo número) via Servidor Web</a></span></li>
   </ul></div>

   <div class="menu-card" style="background:#fff; border:1px solid #d0d7de; border-radius:6px; padding:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05);">

   <h3 style="margin:0; color: white; font-size:16px; border-bottom:1px solid #eee; border-radius: 6px 6px 0 0;border-bottom: 1px solid #ddd; font-weight: bold;padding: 8px 12px;padding-bottom:4px; background-color: #004080;">Arquivos de contabilidade</h3>

   <ul style="list-style:none; padding:0; margin:0;">
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TFolhaMNovo():New(.F.)'); return false;">Gerar arquivo Folhamatic layout 1.9 </a></span></li>
     <li><span><i class="fas fa-file-invoice-dollar" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVMan210():New(::oWnd)'); return false;">Gerar arquivo de recebimentos</a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TFolha20():New(.T.)'); return false;">Gerar arquivo Folhamatic layout 2.0 (2009) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TContMatic():New(1)'); return false;">Gerar arquivo Contmatic (Entradas/Saidas) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TContMatic():New(2)'); return false;">Gerar arquivo Contmatic (Lançtos.Contabeis: Pagos/Recebidos) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter( {|oMeter|TSintegra2009():TxtInventario_Contmatic(oMeter)},"Processando","Aguarde")'); return false;">Gerar arquivo Contmatic (Inventário) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TFolhaMCompra():New()'); return false;">Gerar arquivo Folhamatic layout 2.0 (Notas de Compras) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TFolha20():New(.T., .T.)'); return false;">Gerar arquivo Folhamatic layout 2.0.06 </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TFolhaMCompra():New(.T.)'); return false;">Gerar arquivo Folhamatic layout 2.0.06 (Notas de Compras) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVArq001():New()'); return false;">Gerar arquivo Prosoft (Lançtos.Contabeis: Pagos/Recebidos) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter( {|oMeter|TSintegra2009():TxtInventario_Prosoft(oMeter)},"Processando","Aguarde")'); return false;">Gerar arquivo Prosoft (Inventário) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVArq002():New()'); return false;">Gerar arquivo Questor (Lançtos.Contabeis: Pagos/Recebidos) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVArq003():New()'); return false;">Gerar arquivo Folhamatic (Lançtos.Contabeis: Pagos/Recebidos) </a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVArq004():New()'); return false;">Gerar Arquivo para o Sistema Domínio (Lançamentos Contábeis: Pagos/Recebidos) </a></span></li>
     <li><span><i class="fas fa-folder" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| TNfeMonitor():GeraNfe(oMeter,1)},"Processando","Aguarde")'); return false;">Arquivos NFe (gera XML das notas-saídas)</a></span></li>
     <li><span><i class="fas fa-file-code" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| TNfeMonitor():GeraNfe(oMeter,2)},"Processando","Aguarde")'); return false;">Arquivos NFe (gera XML das notas-por cliente)</a></span></li>
     <li><span><i class="fas fa-file-import" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| TNfeMonitor():GeraNfeEnt(oMeter,1)},"Processando","Aguarde")'); return false;">Arquivos NFe (gera XML das notas-entradas)</a></span></li>
     <li><span><i class="fas fa-file-import" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| TNfeMonitor():GeraNfeEnt(oMeter,2)},"Processando","Aguarde")'); return false;">Arquivos NFe (gera XML das notas-entradas-por fornecedor)</a></span></li>
     <li><span><i class="fas fa-file-invoice" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVRLis256():New(::oWnd)'); return false;">Relatório de Conferência de XML de Notas de Entrada</a></span></li>
     <li><span><i class="fas fa-file-signature" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter({|oMeter| TNFeMonitor():GeraCartas(oMeter)},"Processando","Aguarde")'); return false;">Arquivos de Carta de Correção (gera XML das cartas)</a></span></li>
     <li><span><i class="fas fa-table" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TEContab():New(2)'); return false;">Tabela de Produtos para Sistema E-Contab </a></span></li>
     <li><span><i class="fas fa-file-invoice-dollar" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVRlis260():New(::oWnd)'); return false;">Escritório '1 - 100 clientes     (contabilidade)</a></span></li>
     <li><span><i class="fas fa-file-invoice-dollar" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVRlis261():New(::oWnd)'); return false;">Escritório '2 - 100 fornecedores (contabilidade)</a></span></li>
     <li><span><i class="fas fa-box" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVRlis262():New(::oWnd)'); return false;">Escritório '3 - 100 produtos (saídas)(contabilidade)</a></span></li>
     <li><span><i class="fas fa-box" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVRlis263():New(::oWnd)'); return false;">Escritório '4 - 100 produtos (entrada)(contabilidade)</a></span></li>
   </ul></div>

   <div class="menu-card" style="background:#fff; border:1px solid #d0d7de; border-radius:6px; padding:12px; box-shadow:0 1px 3px rgba(0,0,0,0.05);">

   <h3 style="margin:0; color: white; font-size:16px; border-bottom:1px solid #eee; border-radius: 6px 6px 0 0;border-bottom: 1px solid #ddd; font-weight: bold;padding: 8px 12px;padding-bottom:4px; background-color: #004080;">Arquivos Fiscais</h3>

   <ul style="list-style:none; padding:0; margin:0;">
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TSintegra2009():New()'); return false;">Gerar Sintegra 2009 (a partir 01-05-2009)</a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TSintegra2009():Registro88()'); return false;">Gerar Sintegra 2009 (registro 88)</a></span></li>
     <li><span><i class="fas fa-file-export" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('MsgMeter( {|oMeter|TSintegra2009():Processa74(oMeter,,,,,,,.T.)},"Processando","Aguarde")'); return false;">Gerar Sintegra 2009 (somente - registro 74)</a></span></li>
     <li><span><i class="fas fa-file-invoice" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm040():New()'); return false;">SPED Fiscal - Cadastro do Contador</a></span></li>
     <li><span><i class="fas fa-file-invoice" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm045():New(::oWnd)'); return false;">SPED Fiscal - Gerar arquivo fiscal</a></span></li>
     <li><span><i class="fas fa-folder" style="margin-right:6px;"></i><a href="#" onclick="javascript:ExecMenu('TVFrm044():New(::oWnd)'); return false;">SPED PIS/COFINS - Gerar arquivo</a></span></li>
   </ul></div>
   </div>

</body>
</html>

This is TWebView2() is not getting the HTML option

Code: Select all | Expand

/*========================================================================
                       SISREV INFORMATICA LTDA.
              Prestando serviços com qualidade desde 1993
                       CNPJ: 02.623.572/0001-52
                       CNPJ: 02.623.572/0002-33
                          www.sisrev.com.br
  ========================================================================
   Sistema..: Sisrev-Win 5.0
   Autor(es): Ariovaldo da Costa Foliene
   Aplicação: TVWeb
   Notas....: Abre as páginas do Sisrev-Web - Microsoft Edge WebView2
   Data.....: 10-03-2025  
  ========================================================================
   TVisual--+
            |
            +--TVisualForm--+  
                            |
                            +--TVWeb.prg
   ========================================================================
    
*/

#include "fivewin.ch"
#include "Objects.ch"
#include "\sis\fsql901\include\rede.ch"

STATIC oWV

* ========================================================================
CLASS TVWeb FROM TVisualForm
* ========================================================================
  DATA cPage, oWebView
  
  METHOD New() CONSTRUCTOR
  METHOD AddControl()
  METHOD BuildMenu()
    
END CLASS

* ========================================================================
METHOD New( xcPage, xcNome ) CLASS TVWeb
* ========================================================================

#ifdef __XHARBOUR__
  
  TVWebMsg() ; return Self
  
#endif
    
  DEFAULT xcPage := ""
  DEFAULT xcNome := Empresas(1)  
  
  ::Super:New("rel")
  
  ::cNome       := xcNome
  ::cPage       := "http://localhost:3000/" + xcPage  
  ::lToolBar    := FALSE  
  ::lTask       := FALSE
  ::lRastrear   := FALSE
   
  ::AddControl()
  
  ::oWebView:oWnd:bValid := {|| ::oWebView:Terminate(),;
                                 WndMain():Show()     ,;
                                 WndMain():SetFocus() ,;
                                 TRUE                 }
                                
return Self

* ========================================================================
METHOD AddControl() CLASS TVWeb
* ========================================================================

#ifndef __XHARBOUR__

  ::oWebView:= TWebView2():New()
  
  ::oWebView:SetTitle( WebTitle("Sisrev-Web" + ::cNome ) ) 
  ::oWebView:oWnd:bResized := {|| ::oWebView:oWnd:Maximize() }
  ::oWebView:oWnd:SetMenu( ::BuildMenu() )  
  ::oWebView:oWnd:SetColor( CLR_BLACK ,nRGB( 231, 242, 255 ) )
  ::oWebView:oWnd:l2007    := .T.
  ::oWebView:SetSize( WndWidth(  ::oWebView:oWnd:hWnd ) - 15,;
                      WndHeight( ::oWebView:oWnd:hWnd ) - 58 )  

  ::oWebView:SetUserAgent( WebAgent())                                            
  ::oWebView:Navigate( ::cPage )                     
  
  ::oWebView:bOnBind  := { |cJson| ExecWeb(cJson) }   
  
  ::oWebView:OpenDevToolsWindow(.F.)
  ::oWebView:ShowDownloads(.F.)    
  ::oWebView:oWnd:bInit := {|| ::oWebView:oWnd:Maximize() }
                                    
  ::oWebView:Run()  
  ::oWebView:Destroy()
    
  WndMain():Hide()  
 
#endif

return nil

* ========================================================================
Function ExecWeb( cData )
* ========================================================================
  local cEndPoint := ""
    
  if ValType( cData ) == "A"
  
#ifdef __HARBOUR__  
     cData := HB_VALTOEXP(cData) /* converts any data type to STR Value */
     cData := strtran( cData, "{", "")
     cData := strtran( cData, "}", "")
     cData := strtran( cData, "'", "")
#endif

  Endif  
  
  cEndPoint:= substr( cData, aT(":", cData ) + 1 , 100 )    
  cData    := strtran("#classe=" + cData +"#EndPoint="+cEndPoint, "#", "&" )
   
  OnGet( cData  )
  
return nil

* =========================================================================
Function StartTVWeb(cFileName) 
* =========================================================================

 if IfExist(oWV)
    oWV:oWebView:Navigate("http://localhost:3000/" + cFileName) 
 Else 
    oWV := TVWeb():New(cFileName)
 Endif
 
return nil

* =========================================================================
METHOD BuildMenu() CLASS TVWeb
* =========================================================================
  local oMenu

  MENU oMenu 
     MENUITEM "Fechar" ACTION ::oWebView:oWnd:End()
  ENDMENU
   
return oMenu 

* =========================================================================
Function TVWebMsg()
return Msg("** Esta funcionidade somente para HarBour **")  
* =========================================================================

* =========================================================================
Function WebAgent()
* =========================================================================
return "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)"+;
       " AppleWebKit/537.36 (KHTML, like Gecko)"               +;
       " Chrome/103.0.5060.53 Mobile Safari/537.36" 
       
]]>
no_email@example.com (Ari) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278605#p278605 Wed, 26 Mar 2025 15:54:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278605#p278605
<![CDATA[FiveWin for Harbour/xHarbour :: Re: SendToFWH() - TWebView2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278609#p278609
Desde el DevToolsWindow, en la consola, mira a ver si se genera algún error de javascript]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278609#p278609 Wed, 26 Mar 2025 22:52:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278609#p278609
<![CDATA[FiveWin for Harbour/xHarbour :: Re: SendToFWH() - TWebView2 :: Reply by Ari]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278610#p278610
I did this and it says that SetToFWH() doesn't exist, but I've already used it on another page and it worked. The SendToFWH() function has to be created in a .js file or in the HTML using <script>. I just couldn't figure out what's happening because inside the functions I receive the alert(); that's going there, but then SendToFHW() doesn't do anything. The idea is to use the page as an interface and run the real FiveWin functions/classes, generate other pages and return the new HTML to the WebView.

I'm using TWebView2, it already works with other parts.

I asked GPT, they gave me some suggestions, but without success.]]>
no_email@example.com (Ari) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278610#p278610 Thu, 27 Mar 2025 01:51:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278610#p278610
<![CDATA[FiveWin for Harbour/xHarbour :: Re: SendToFWH() - TWebView2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278613#p278613
From the console of DevToolsWindow write this:

SendToFWH( "test" );

and check if you get it from your app]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278613#p278613 Thu, 27 Mar 2025 02:15:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45569&p=278613#p278613
<![CDATA[FiveWin for Harbour/xHarbour :: Using a webview from an existing window :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278567#p278567 How I can make ?

Webview2 createa window ok but I need to insert a menupulldown and a ribbonbar how I can make ?


function Main()
local oWnd,oWebView,cHtml := Html()

DEFINE WINDOW oWnd TITLE "Test" MDI ;
MENU BuildMenu()


ACTIVATE WINDOW oWnd CENTER
return nil]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278567#p278567 Wed, 26 Mar 2025 06:11:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278567#p278567
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278570#p278570 viewtopic.php?p=278426#p278426]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278570#p278570 Wed, 26 Mar 2025 07:43:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278570#p278570 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278571#p278571
cnavarro wrote: Wed Mar 26, 2025 1:43 pm Look
viewtopic.php?p=278426#p278426
tested but I see a white window blank

Code: Select all | Expand

function Main()

   local oWnd, oWebView 
   local cHtml := Html()
   
   DEFINE WINDOW oWnd TITLE "Dashboard"

   oWebView = TWebView2():New( oWnd )

   oWebView:SetHtml( memoRead(cHtml ) )

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE oWebView:SetSize( nWidth, nHeight )

   return nil
perhaps run only with a html saved on disk not on memory]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278571#p278571 Wed, 26 Mar 2025 07:52:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278571#p278571
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by alerchster]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278572#p278572

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   local oWnd, oWebView 

   DEFINE WINDOW oWnd TITLE "Dashboard"

   oWebView = TWebView2():New( oWnd )

   oWebView:SetHtml( dash() )

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE oWebView:SetSize( nWidth, nHeight )

return nil      

function dash()

local cHtml

TEXT INTO cHtml
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Professional Dashboard with Charts</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: Arial, sans-serif;
        }

        body {
            background: #f0f2f5;
            color: #333;
            line-height: 1.6;
        }

        .container {
            display: flex;
            min-height: 100vh;
        }

        .sidebar {
            width: 250px;
            background: #2c3e50;
            color: white;
            position: fixed;
            height: 100%;
            padding: 20px;
        }

        .sidebar h2 {
            font-size: 24px;
            margin-bottom: 30px;
            text-align: center;
        }

        .sidebar ul {
            list-style: none;
        }

        .sidebar ul li {
            margin: 20px 0;
        }

        .sidebar ul li a {
            color: white;
            text-decoration: none;
            display: flex;
            align-items: center;
            padding: 10px;
            border-radius: 5px;
            transition: background 0.3s;
        }

        .sidebar ul li a:hover {
            background: #34495e;
        }

        .sidebar ul li a i {
            margin-right: 10px;
            font-size: 18px;
        }

        .main-content {
            flex: 1;
            margin-left: 250px;
            padding: 20px;
        }

        .dashboard-container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .header {
            background: #2c3e50;
            color: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
        }

        .header h1 {
            font-size: 24px;
        }

        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 20px;
        }

        .card {
            background: white;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            transition: transform 0.3s;
        }

        .card:hover {
            transform: translateY(-5px);
        }

        .card h3 {
            margin-bottom: 15px;
            color: #2c3e50;
        }

        .stats-card {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .stats-icon {
            width: 50px;
            height: 50px;
            background: #3498db;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 24px;
        }

        .chart-container {
            height: 200px;
            position: relative;
        }

        .progress-bar {
            width: 100%;
            height: 20px;
            background: #eee;
            border-radius: 10px;
            overflow: hidden;
            margin-top: 10px;
        }

        .progress {
            height: 100%;
            background: #2ecc71;
            width: 0;
        }

        .progress-75 { width: 75%; }
        .progress-50 { width: 50%; }
        .progress-25 { width: 25%; }

        @media (max-width: 768px) {
            .sidebar {
                width: 200px;
            }

            .main-content {
                margin-left: 200px;
            }

            .grid-container {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 480px) {
            .sidebar {
                width: 70px;
            }

            .sidebar h2,
            .sidebar ul li a span {
                display: none;
            }

            .main-content {
                margin-left: 70px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar">
            <h2>Menu</h2>
            <ul>
                <li><a href="#"><i>🏠</i><span>Dashboard</span></a></li>
                <li><a href="#"><i>📊</i><span>Analytics</span></a></li>
                <li><a href="#"><i>👥</i><span>Users</span></a></li>
                <li><a href="#"><i>⚙️</i><span>Settings</span></a></li>
                <li><a href="#"><i>🚪</i><span>Logout</span></a></li>
            </ul>
        </div>

        <div class="main-content">
            <div class="dashboard-container">
                <div class="header">
                    <h1>Dashboard Overview</h1>
                </div>

                <div class="grid-container">
                    <div class="card stats-card">
                        <div class="stats-icon">📊</div>
                        <div>
                            <h3>Revenue</h3>
                            <p>$24,500</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">👥</div>
                        <div>
                            <h3>Users</h3>
                            <p>1,234</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">⭐</div>
                        <div>
                            <h3>Rating</h3>
                            <p>4.8/5</p>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Sales Trend (Monthly)</h3>
                        <div class="chart-container">
                            <canvas id="salesChart"></canvas>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Project Progress</h3>
                        <p>Development</p>
                        <div class="progress-bar"><div class="progress progress-75"></div></div>
                        <p>Design</p>
                        <div class="progress-bar"><div class="progress progress-50"></div></div>
                        <p>Testing</p>
                        <div class="progress-bar"><div class="progress progress-25"></div></div>
                    </div>

                    <div class="card">
                        <h3>User Distribution</h3>
                        <div class="chart-container">
                            <canvas id="userChart"></canvas>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Sales Trend Line Chart
        const salesCtx = document.getElementById('salesChart').getContext('2d');
        new Chart(salesCtx, {
            type: 'line',
            data: {
                labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
                datasets: [{
                    label: 'Sales ($)',
                    data: [12000, 19000, 15000, 25000, 22000, 30000],
                    borderColor: '#3498db',
                    backgroundColor: 'rgba(52, 152, 219, 0.2)',
                    fill: true,
                    tension: 0.4
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });

        // User Distribution Bar Chart
        const userCtx = document.getElementById('userChart').getContext('2d');
        new Chart(userCtx, {
            type: 'bar',
            data: {
                labels: ['New', 'Returning', 'Inactive'],
                datasets: [{
                    label: 'Users',
                    data: [500, 600, 134],
                    backgroundColor: [
                        '#2ecc71',
                        '#3498db',
                        '#e74c3c'
                    ]
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>
</html>
ENDTEXT
   
  
RETURN cHtml
]]>
no_email@example.com (alerchster) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278572#p278572 Wed, 26 Mar 2025 08:56:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278572#p278572
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278579#p278579
alerchster wrote: Wed Mar 26, 2025 2:56 pm

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   local oWnd, oWebView 

   DEFINE WINDOW oWnd TITLE "Dashboard"

   oWebView = TWebView2():New( oWnd )

   oWebView:SetHtml( dash() )

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE oWebView:SetSize( nWidth, nHeight )

return nil      

function dash()

local cHtml

TEXT INTO cHtml
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Professional Dashboard with Charts</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: Arial, sans-serif;
        }

        body {
            background: #f0f2f5;
            color: #333;
            line-height: 1.6;
        }

        .container {
            display: flex;
            min-height: 100vh;
        }

        .sidebar {
            width: 250px;
            background: #2c3e50;
            color: white;
            position: fixed;
            height: 100%;
            padding: 20px;
        }

        .sidebar h2 {
            font-size: 24px;
            margin-bottom: 30px;
            text-align: center;
        }

        .sidebar ul {
            list-style: none;
        }

        .sidebar ul li {
            margin: 20px 0;
        }

        .sidebar ul li a {
            color: white;
            text-decoration: none;
            display: flex;
            align-items: center;
            padding: 10px;
            border-radius: 5px;
            transition: background 0.3s;
        }

        .sidebar ul li a:hover {
            background: #34495e;
        }

        .sidebar ul li a i {
            margin-right: 10px;
            font-size: 18px;
        }

        .main-content {
            flex: 1;
            margin-left: 250px;
            padding: 20px;
        }

        .dashboard-container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .header {
            background: #2c3e50;
            color: white;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
        }

        .header h1 {
            font-size: 24px;
        }

        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 20px;
        }

        .card {
            background: white;
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            transition: transform 0.3s;
        }

        .card:hover {
            transform: translateY(-5px);
        }

        .card h3 {
            margin-bottom: 15px;
            color: #2c3e50;
        }

        .stats-card {
            display: flex;
            align-items: center;
            gap: 15px;
        }

        .stats-icon {
            width: 50px;
            height: 50px;
            background: #3498db;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 24px;
        }

        .chart-container {
            height: 200px;
            position: relative;
        }

        .progress-bar {
            width: 100%;
            height: 20px;
            background: #eee;
            border-radius: 10px;
            overflow: hidden;
            margin-top: 10px;
        }

        .progress {
            height: 100%;
            background: #2ecc71;
            width: 0;
        }

        .progress-75 { width: 75%; }
        .progress-50 { width: 50%; }
        .progress-25 { width: 25%; }

        @media (max-width: 768px) {
            .sidebar {
                width: 200px;
            }

            .main-content {
                margin-left: 200px;
            }

            .grid-container {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 480px) {
            .sidebar {
                width: 70px;
            }

            .sidebar h2,
            .sidebar ul li a span {
                display: none;
            }

            .main-content {
                margin-left: 70px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="sidebar">
            <h2>Menu</h2>
            <ul>
                <li><a href="#"><i>🏠</i><span>Dashboard</span></a></li>
                <li><a href="#"><i>📊</i><span>Analytics</span></a></li>
                <li><a href="#"><i>👥</i><span>Users</span></a></li>
                <li><a href="#"><i>⚙️</i><span>Settings</span></a></li>
                <li><a href="#"><i>🚪</i><span>Logout</span></a></li>
            </ul>
        </div>

        <div class="main-content">
            <div class="dashboard-container">
                <div class="header">
                    <h1>Dashboard Overview</h1>
                </div>

                <div class="grid-container">
                    <div class="card stats-card">
                        <div class="stats-icon">📊</div>
                        <div>
                            <h3>Revenue</h3>
                            <p>$24,500</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">👥</div>
                        <div>
                            <h3>Users</h3>
                            <p>1,234</p>
                        </div>
                    </div>

                    <div class="card stats-card">
                        <div class="stats-icon">⭐</div>
                        <div>
                            <h3>Rating</h3>
                            <p>4.8/5</p>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Sales Trend (Monthly)</h3>
                        <div class="chart-container">
                            <canvas id="salesChart"></canvas>
                        </div>
                    </div>

                    <div class="card">
                        <h3>Project Progress</h3>
                        <p>Development</p>
                        <div class="progress-bar"><div class="progress progress-75"></div></div>
                        <p>Design</p>
                        <div class="progress-bar"><div class="progress progress-50"></div></div>
                        <p>Testing</p>
                        <div class="progress-bar"><div class="progress progress-25"></div></div>
                    </div>

                    <div class="card">
                        <h3>User Distribution</h3>
                        <div class="chart-container">
                            <canvas id="userChart"></canvas>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Sales Trend Line Chart
        const salesCtx = document.getElementById('salesChart').getContext('2d');
        new Chart(salesCtx, {
            type: 'line',
            data: {
                labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
                datasets: [{
                    label: 'Sales ($)',
                    data: [12000, 19000, 15000, 25000, 22000, 30000],
                    borderColor: '#3498db',
                    backgroundColor: 'rgba(52, 152, 219, 0.2)',
                    fill: true,
                    tension: 0.4
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });

        // User Distribution Bar Chart
        const userCtx = document.getElementById('userChart').getContext('2d');
        new Chart(userCtx, {
            type: 'bar',
            data: {
                labels: ['New', 'Returning', 'Inactive'],
                datasets: [{
                    label: 'Users',
                    data: [500, 600, 134],
                    backgroundColor: [
                        '#2ecc71',
                        '#3498db',
                        '#e74c3c'
                    ]
                }]
            },
            options: {
                responsive: true,
                maintainAspectRatio: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>
</html>
ENDTEXT
   
  
RETURN cHtml

If you add a buttonbar

Code: Select all | Expand

DEFINE BUTTONBAR oBar _3D SIZE 80, 70 OF oWnd  2015
then the oWebview erase the buttonbar

I Tried also this ON RESIZE oWebView:SetSize( nWidth, nHeight-oBar:nHeight )]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278579#p278579 Wed, 26 Mar 2025 10:44:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278579#p278579
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278580#p278580 Please create TPanel into windows for webview]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278580#p278580 Wed, 26 Mar 2025 10:49:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278580#p278580 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278586#p278586
cnavarro wrote: Wed Mar 26, 2025 4:49 pm Webview not is a control windows
Please create TPanel into windows for webview
but this
oWebView:oWnd:SetMenu( BuildMenu(oWebView) )

run
it could run also with buttonbar ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278586#p278586 Wed, 26 Mar 2025 12:50:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278586#p278586
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278587#p278587 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278587#p278587 Wed, 26 Mar 2025 13:10:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278587#p278587 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278601#p278601
cnavarro wrote: Wed Mar 26, 2025 7:10 pm Webview must be installed on oWnd:oClient ( area client )
I tried But Not Knw How make it]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278601#p278601 Wed, 26 Mar 2025 15:34:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278601#p278601
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278607#p278607

Code: Select all | Expand

oWnd:oClient := oWebView
then you dont need setSize]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278607#p278607 Wed, 26 Mar 2025 18:15:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278607#p278607
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278612#p278612
Lailton wrote: Thu Mar 27, 2025 12:15 am Maybe?

Code: Select all | Expand

oWnd:oClient := oWebView
then you dont need setSize
I allready tested and make error twebview:adjclient not found

Code: Select all | Expand

rror occurred at: 03/27/25, 09:06:38
   Error description: Error BASE/1004  Message not found: TWEBVIEW2:ADJCLIENT
   Args:
     [   1] = O   TWEBVIEW2

Stack Calls
===========
   Called from: ../../../tobject.prg => __ERRRT_SBASE( 0 )
   Called from: ../../../tobject.prg => TWEBVIEW2:ERROR( 0 )
   Called from: ../../../tobject.prg => (b)HBOBJECT( 0 )
   Called from: ../../../tobject.prg => TWEBVIEW2:MSGNOTFOUND( 0 )
   Called from: ../../../tobject.prg => TWEBVIEW2:ADJCLIENT( 0 )
   Called from: .\source\classes\window.prg => TWINDOW:RESIZE( 2432 )
   Called from: .\source\classes\window.prg => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\window.prg => _FWH( 3719 )
please try

Code: Select all | Expand


function Main()
   local oWnd, oWebView
   local oBar

 DEFINE WINDOW oWnd TITLE "Dashboard"
   oWebView := TWebView2():New( oWnd )
   //oWebView:SetHtml( Html() )
  // oWebView:bOnBind := {|hData| ExecuteFunction(hData, oWebView) }

  // oWebView:oWnd:SetMenu( BuildMenu(oWebView) )


   oWebView:oWnd:SetColor( CLR_BLACK, nRGB( 231, 242, 255 ) )
   oWebView:oWnd:l2007 := .T.
   oWebView:SetSize( WndWidth( oWebView:oWnd:hWnd ) - 15, WndHeight( oWebView:oWnd:hWnd ) - 58 )


    oWnd:oclient:= oWebView
    
   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE ( oWebView:SetSize( nWidth, nHeight ))

   return nil
]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278612#p278612 Thu, 27 Mar 2025 02:05:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278612#p278612
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278615#p278615
TWebView2():New( oWnd:oClient )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278615#p278615 Thu, 27 Mar 2025 02:19:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278615#p278615
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278620#p278620
Antonio Linares wrote: Thu Mar 27, 2025 8:19 am Better try with:

TWebView2():New( oWnd:oClient )
Not make error but I see a White window blank not load the html

Image

the sample test

Code: Select all | Expand

function Main()
   local oWnd, oWebView
   local oBar

 DEFINE WINDOW oWnd TITLE "Invoicing"
 BuildMainBar(oWnd)

 oWebView := TWebView2():New( oWnd:oClient )
 oWebView:SetHtml( Html() )
 oWebView:bOnBind := {|hData| ExecuteFunction(hData, oWebView) }
 oWebView:oWnd:SetMenu( BuildMenu(oWebView) )

 oWebView:oWnd:SetColor( CLR_BLACK, nRGB( 231, 242, 255 ) )
 oWebView:SetSize( WndWidth( oWebView:oWnd:hWnd ) - 15, WndHeight( oWebView:oWnd:hWnd ) - 58 )

   DEFINE MSGBAR PROMPT "Invoicing app" ;
      OF oWnd 2015 KEYBOARD DATE


   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE ( oWebView:SetSize( nWidth, nHeight ))

   return nil


static function BuildMainBar(oWnd)

   local oBar

   DEFINE BUTTONBAR oBar OF oWnd 2015 SIZE 70, 60 //70

   DEFINE BUTTON OF oBar PROMPT "Invoices" RESOURCE "code" ;
      ACTION NIL

   DEFINE BUTTON OF oBar PROMPT "Clients" RESOURCE "clients" ;
      ACTION NIL

   DEFINE BUTTON OF oBar PROMPT "Items" RESOURCE "relation" ;
      ACTION NIL

   DEFINE BUTTON OF oBar PROMPT "Exit" RESOURCE "exit" ;
      ACTION oWnd:End()

return nil

Function BuildMenu(oWebView)
   local oMenu

   MENU oMenu
      MENUITEM "Uscita" ACTION oWebView:oWnd:End()
   ENDMENU

   return oMenu

I tried also with oWebView:setparent(oWnd:oClient) or oWebView:setparent(oWnd)]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278620#p278620 Thu, 27 Mar 2025 05:23:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278620#p278620
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278621#p278621 RUN OK with

Code: Select all | Expand

function Main()
   local oWnd, oWebView
   local oBar

 DEFINE WINDOW oWnd TITLE "Invoicing"
                      BuildMainBar(oWnd)

 oWebView := TWebView2():New( oWnd )
 oWebView:SetHtml( Html() )
 oWebView:bOnBind := {|hData| ExecuteFunction(hData, oWebView) }
 oWebView:oWnd:SetMenu( BuildMenu(oWebView) )

 oWebView:oWnd:SetColor( CLR_BLACK, nRGB( 231, 242, 255 ) )

   DEFINE MSGBAR PROMPT "Invoicing app" ;
      OF oWnd 2015 KEYBOARD DATE

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE ( oWebView:SetSize( WndWidth( oWebView:oWnd:hWnd ) - 15,;
                     WndHeight( oWebView:oWnd:hWnd ) - 58 ) )
   return nil
only I not see the msgbar !!!]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278621#p278621 Thu, 27 Mar 2025 05:40:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278621#p278621
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using a webview from an existing window :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278622#p278622
Image

https://i.postimg.cc/MpCwxL2r/msgbar.png

Code: Select all | Expand

 ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON RESIZE ( oWebView:SetSize( WndWidth( oWebView:oWnd:hWnd ) - 15,;
                     WndHeight( oWebView:oWnd:hWnd ) - 80 ) )

the problem is on top because the html is too near the buttonbar

and I solved it with a trick
<body>
<p>
<p>

<div class="container">]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278622#p278622 Thu, 27 Mar 2025 05:48:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45563&p=278622#p278622
<![CDATA[FiveWin for Harbour/xHarbour :: link problem with fivewin 25.01 64 bit and VS2022 :: Author marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278573#p278573 i have installed fivewin 25.01 with harbour.
i have modify the mak file ( used for fivewin 17.01 and VC2017) adapting it to the new folders.
I managed to generate ppt, ppo, c e obj files.

i have copied stdio.h from include vc17 a include vc22 plus all the under files:
corecrt.h, corecrt_wstdio.h, corecrt_stdio_config.h, stdlib.h, corecrt_malloc.h, corecrt_search.h, stddef.h,
corecrt_wstdlib.h, string.h, corecrt_memory.h, corecrt_memcpy_s.h, errno.h, corecrt_wstring.h, malloc.h

the link asked me the following lib files:
i have copied msvcrt.lib from lib vc17 to the folder of the program: \scuola64 and all following files:
libcmt.lib, OLDNAMES.lib, uuid.lib

with uuid.lib give me an error and create a link.log file of 3000 row with 1038 not resolved external.
i have read some posts but without results.

as you can see I disabled rc.exe because it gives syntax errors and does not compile.

can you help me?

thanks Marzio

Code: Select all | Expand


called from:
.\..\..\VC2022\bin\Hostx64\x64\nmake -fscuolaC64.mak



HBDIR=.\..\..\Hb64vC22
FWDIR=.\..\..\fwh642501
VCDIR=.\..\..\VC2022
VC32DIR=.\..\..\VC2017
SDKDIR=.\..\..\VC2022\sdk

PRGS = scuola.prg functscl.prg TcBrowse.prg #tmGet.prg Combo_Box.prg

.SUFFIXES: .prg .c .obj .rc .res

scuola64.exe : $(PRGS:.prg=.obj) scuola64.res
   @echo $(PRGS:.prg=.obj) > msvc.tmp

   @echo $(FWDIR)\lib\FiveH64.lib  >> msvc.tmp
 	@echo $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp

   @echo $(HBDIR)\lib\win\msvc64\hbrtl.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbvm.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\gtgui.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hblang.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbmacro.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbrdd.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddntx.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddcdx.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddfpt.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbsix.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbdebug.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcommon.lib >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbpp.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbwin.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcplr.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\xhb.lib      >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbpcre.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbct.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcpage.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbzlib.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\png.lib      >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbzlib.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbziparc.lib >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbmzip.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\minizip.lib  >> msvc.tmp

   @echo $(VC32DIR)\Lib\LIBCMT.lib                                                  >> msvc.tmp
   @echo $(VC32DIR)\Lib\OLDNAMES.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\gdi32.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\winspool.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\comctl32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\comdlg32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\advapi32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\shell32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\ole32.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\oleaut32.lib                                                >> msvc.tmp
#   @echo $(VC32DIR)\Lib\uuid.lib                                                    >> msvc.tmp
   @echo $(VC32DIR)\Lib\odbc32.lib                                                  >> msvc.tmp
   @echo $(VC32DIR)\Lib\odbccp32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\iphlpapi.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\mpr.lib                                                     >> msvc.tmp
   @echo $(VC32DIR)\Lib\version.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\wsock32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\msimg32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\oledlg.lib                                                  >> msvc.tmp
   @echo $(VC32DIR)\Lib\psapi.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\gdiplus.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\winmm.lib                                                   >> msvc.tmp

#   @echo $(VC32DIR)\Lib\amd64\libcmt.lib                                                >> msvc.tmp
#   @echo $(VC32DIR)\Lib\amd64\oldnames.lib                                              >> msvc.tmp
#   @echo $(VC32DIR)\Lib\amd64\libvcruntime.lib                                          >> msvc.tmp
#   @echo $(VC32DIR)\kit\lib\ucrt\x64\libucrt.lib                                        >> msvc.tmp


   IF EXIST scuola64.res echo scuola64.res >> msvc.tmp
#  copiare .\..\..\VC2015\bin\cvtres.exe nella cartella x86_amd64

   $(VCDIR)\bin\Hostx64\x64\link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:msvcrt > link.log
   @type link.log
   @del $(PRGS:.prg=.obj)

$(PRGS:.prg=.obj) : $(PRGS:.prg=.c)
$(PRGS:.prg=.c) : $(PRGS)

# scuola64.res : scuola64.rc
#   $(VC32DIR)\bin\rc.exe -r -d__FLAT__ scuola64.rc

.prg.c:
   $(HBDIR)\bin\win\msvc64\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include -gc3 -p -p+
#-gc3 come parametro di harbour genera codice C e non pcode.

.c.obj:
#   $(VCDIR)\bin\x86_amd64\cl.exe -c -TC -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include -I$(VCDIR)\kit\include\ucrt $<
   $(VCDIR)\bin\Hostx64\x64\cl.exe -c -TC -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include -I$(VCDIR)\kit\include\ucrt -I$(FWDIR)\include $<
]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278573#p278573 Wed, 26 Mar 2025 09:16:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278573#p278573
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278574#p278574
You have to use these flags with the linker: /NODEFAULTLIB:libucrt /NODEFAULTLIB:msvcrt

and link Microsoft ucrt.lib]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278574#p278574 Wed, 26 Mar 2025 09:23:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278574#p278574
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278577#p278577 like before, i obtain a big link.log and error.

see the mak file modify:

Code: Select all | Expand

HBDIR=.\..\..\Hb64vC22
FWDIR=.\..\..\fwh642501
VCDIR=.\..\..\VC2022
VC32DIR=.\..\..\VC2017
SDKDIR=.\..\..\VC2022\sdk

PRGS = scuola.prg functscl.prg TcBrowse.prg #tmGet.prg Combo_Box.prg

.SUFFIXES: .prg .c .obj .rc .res

scuola64.exe : $(PRGS:.prg=.obj) scuola64.res
   @echo $(PRGS:.prg=.obj) > msvc.tmp

   @echo $(FWDIR)\lib\FiveH64.lib  >> msvc.tmp
 	@echo $(FWDIR)\lib\FiveHC64.lib >> msvc.tmp

   @echo $(HBDIR)\lib\win\msvc64\hbrtl.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbvm.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\gtgui.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hblang.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbmacro.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbrdd.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddntx.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddcdx.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\rddfpt.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbsix.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbdebug.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcommon.lib >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbpp.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbwin.lib    >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcplr.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\xhb.lib      >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbpcre.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbct.lib     >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbcpage.lib  >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbzlib.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\png.lib      >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbzlib.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbziparc.lib >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\hbmzip.lib   >> msvc.tmp
   @echo $(HBDIR)\lib\win\msvc64\minizip.lib  >> msvc.tmp

   @echo $(VC32DIR)\Lib\gdi32.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\winspool.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\comctl32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\comdlg32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\advapi32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\shell32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\ole32.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\oleaut32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\odbc32.lib                                                  >> msvc.tmp
   @echo $(VC32DIR)\Lib\odbccp32.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\iphlpapi.lib                                                >> msvc.tmp
   @echo $(VC32DIR)\Lib\mpr.lib                                                     >> msvc.tmp
   @echo $(VC32DIR)\Lib\version.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\wsock32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\msimg32.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\oledlg.lib                                                  >> msvc.tmp
   @echo $(VC32DIR)\Lib\psapi.lib                                                   >> msvc.tmp
   @echo $(VC32DIR)\Lib\gdiplus.lib                                                 >> msvc.tmp
   @echo $(VC32DIR)\Lib\winmm.lib                                                   >> msvc.tmp
   @echo .\lib\oldnames.lib                                                         >> msvc.tmp
   @echo .\lib\ucrt.lib                                                             >> msvc.tmp
   @echo .\lib\uuid.lib                                                             >> msvc.tmp
   @echo .\lib\libcmt.lib                                                           >> msvc.tmp

#   @echo $(VC32DIR)\Lib\amd64\libvcruntime.lib                                          >> msvc.tmp
#   @echo $(VC32DIR)\kit\lib\ucrt\x64\libucrt.lib                                        >> msvc.tmp


   IF EXIST scuola64.res echo scuola64.res >> msvc.tmp
#  copiare .\..\..\VC2015\bin\cvtres.exe nella cartella x86_amd64

   $(VCDIR)\bin\Hostx64\x64\link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:libucrt /NODEFAULTLIB:msvcrt > link.log
   @type link.log
   @del $(PRGS:.prg=.obj)

$(PRGS:.prg=.obj) : $(PRGS:.prg=.c)
$(PRGS:.prg=.c) : $(PRGS)

# scuola64.res : scuola64.rc
#   $(VC32DIR)\bin\rc.exe -r -d__FLAT__ scuola64.rc

.prg.c:
   $(HBDIR)\bin\win\msvc64\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include -gc3 -p -p+
#-gc3 come parametro di harbour genera codice C e non pcode.

.c.obj:
#   $(VCDIR)\bin\x86_amd64\cl.exe -c -TC -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include -I$(VCDIR)\kit\include\ucrt $<
   $(VCDIR)\bin\Hostx64\x64\cl.exe -c -TC -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include -I$(VCDIR)\kit\include\ucrt -I$(FWDIR)\include $<

]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278577#p278577 Wed, 26 Mar 2025 09:58:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278577#p278577
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278581#p278581
$(VC32DIR)\
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278581#p278581 Wed, 26 Mar 2025 10:52:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278581#p278581
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278582#p278582
cnavarro wrote: Wed Mar 26, 2025 4:52 pm This folder is correct?
$(VC32DIR)\
yes, the path is correct.

Code: Select all | Expand


content of file: msvc.tmp

scuola.obj functscl.obj TcBrowse.obj 
.\..\..\fwh642501\lib\FiveH64.lib 
.\..\..\fwh642501\lib\FiveHC64.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbrtl.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbvm.lib 
.\..\..\Hb64vC22\lib\win\msvc64\gtgui.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hblang.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbmacro.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbrdd.lib 
.\..\..\Hb64vC22\lib\win\msvc64\rddntx.lib 
.\..\..\Hb64vC22\lib\win\msvc64\rddcdx.lib 
.\..\..\Hb64vC22\lib\win\msvc64\rddfpt.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbsix.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbdebug.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbcommon.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbpp.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbwin.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbcplr.lib 
.\..\..\Hb64vC22\lib\win\msvc64\xhb.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbpcre.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbct.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbcpage.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbzlib.lib 
.\..\..\Hb64vC22\lib\win\msvc64\png.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbzlib.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbziparc.lib 
.\..\..\Hb64vC22\lib\win\msvc64\hbmzip.lib 
.\..\..\Hb64vC22\lib\win\msvc64\minizip.lib 
.\..\..\VC2017\Lib\gdi32.lib 
.\..\..\VC2017\Lib\winspool.lib 
.\..\..\VC2017\Lib\comctl32.lib 
.\..\..\VC2017\Lib\comdlg32.lib 
.\..\..\VC2017\Lib\advapi32.lib 
.\..\..\VC2017\Lib\shell32.lib 
.\..\..\VC2017\Lib\ole32.lib 
.\..\..\VC2017\Lib\oleaut32.lib 
.\..\..\VC2017\Lib\odbc32.lib 
.\..\..\VC2017\Lib\odbccp32.lib 
.\..\..\VC2017\Lib\iphlpapi.lib 
.\..\..\VC2017\Lib\mpr.lib 
.\..\..\VC2017\Lib\version.lib 
.\..\..\VC2017\Lib\wsock32.lib 
.\..\..\VC2017\Lib\msimg32.lib 
.\..\..\VC2017\Lib\oledlg.lib 
.\..\..\VC2017\Lib\psapi.lib 
.\..\..\VC2017\Lib\gdiplus.lib 
.\..\..\VC2017\Lib\winmm.lib 
.\..\..\VC2017\Lib\libvcruntime.lib 
.\..\..\VC2017\lib\libucrt.lib 
.\lib\oldnames.lib 
.\lib\ucrt.lib 
.\lib\uuid.lib 
.\lib\libcmt.lib 
scuola64.res 
]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278582#p278582 Wed, 26 Mar 2025 11:14:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278582#p278582
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278584#p278584

Code: Select all | Expand

hbrtl.lib(vfile.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbwin.lib(win_misc_1.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbct.lib(trig.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbrtl.lib(hbi18n1.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbrtl.lib(gttone.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbrtl.lib(itemseri.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(gencc.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbpcre.lib(pcrecomp.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbct.lib(dattime3.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbct.lib(ctmath2.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(harboury.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(complex.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(genc.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(exproptb.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcommon.lib(expropt1.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcommon.lib(expropt2.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbwin.lib(olecore.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcplr.lib(hbmain.obj) : error LNK2001: simbolo esterno _fltused non risolto
rddfpt.lib(dbffpt1.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcommon.lib(hbstr.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcommon.lib(hbdate.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbcommon.lib(hbprintf.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbrdd.lib(sdf1.obj) : error LNK2001: simbolo esterno _fltused non risolto
hbrdd.lib(dbf1.obj) : error LNK2001: simbolo esterno _fltused non risolto
rddntx.lib(dbfntx1.obj) : error LNK2001: simbolo esterno _fltused non risolto
rddcdx.lib(dbfcdx1.obj) : error LNK2001: simbolo esterno _fltused non risolto
FiveHC64.lib(richedit.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(richedi5.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(tabctrlw.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(tabctrl.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(getdir.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(fwunicode.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(icons.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(nonclient.obj) : error LNK2001: simbolo esterno memset non risolto
FiveH64.lib(getsysin.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(dlg2chr.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(winexec.obj) : error LNK2001: simbolo esterno memset non risolto
FiveHC64.lib(getfile.obj) : error LNK2001: simbolo esterno memset non risolto

..............................

minizip.lib(ioapi.obj) : error LNK2019: riferimento al simbolo esterno __imp__ftelli64 non risolto nella funzione ftell64_file_func
hbrtl.lib(gttone.obj) : error LNK2019: riferimento al simbolo esterno __imp_Beep non risolto nella funzione hb_gt_wNtTone
hbrtl.lib(itemseri.obj) : error LNK2019: riferimento al simbolo esterno _byteswap_uint64 non risolto nella funzione _hb_get_rev_uint64
hbvm.lib(dynlibhb.obj) : error LNK2019: riferimento al simbolo esterno __imp_LoadLibraryW non risolto nella funzione hb_libLoad
hbpp.lib(ppcore.obj) : error LNK2019: riferimento al simbolo esterno __imp_fputs non risolto nella funzione hb_pp_dumpEnd
hbwin.lib(win_misc_1.obj) : error LNK2019: riferimento al simbolo esterno __imp_QueryPerformanceFrequency non risolto nella funzione HB_FUN_WIN_QPCOUNTER2SEC
hbwin.lib(win_misc_1.obj) : error LNK2019: riferimento al simbolo esterno __imp_CreateEventW non risolto nella funzione HB_FUN_WIN_SYSREFRESH
hbwin.lib(win_misc_1.obj) : error LNK2019: riferimento al simbolo esterno __imp_FindResourceW non risolto nella funzione HB_FUN_WIN_LOADRESOURCE
hbwin.lib(win_misc_1.obj) : error LNK2019: riferimento al simbolo esterno __imp_MsgWaitForMultipleObjects non risolto nella funzione HB_FUN_WIN_SYSREFRESH
hbwin.lib(wapi_shellapi.obj) : error LNK2019: riferimento al simbolo esterno __imp_ShellExecuteExW non risolto nella funzione HB_FUN_WAPI_SHELLEXECUTE_WAIT
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegCreateKeyExW non risolto nella funzione HB_FUN_WIN_REGCREATEKEYEX
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegDeleteKeyW non risolto nella funzione HB_FUN_WIN_REGDELETEKEY
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegDeleteValueW non risolto nella funzione HB_FUN_WIN_REGDELETEVALUE
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegOpenKeyExW non risolto nella funzione HB_FUN_WIN_REGOPENKEYEX
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegQueryValueExW non risolto nella funzione HB_FUN_WIN_REGQUERYVALUEEX
hbwin.lib(win_regc.obj) : error LNK2019: riferimento al simbolo esterno __imp_RegSetValueExW non risolto nella funzione HB_FUN_WIN_REGSETVALUEEX
.\..\..\VC2017\Lib\gdi32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\winspool.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\comctl32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\comdlg32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\advapi32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\shell32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\ole32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\oleaut32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\odbc32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\odbccp32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\iphlpapi.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\mpr.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\version.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\wsock32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\msimg32.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\oledlg.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\psapi.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\gdiplus.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\winmm.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\Lib\libvcruntime.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\..\..\VC2017\lib\libucrt.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\lib\ucrt.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
.\lib\libcmt.lib : warning LNK4272: il tipo 'x86' del computer della libreria   in conflitto con il tipo 'x64' del computer di destinazione
scuola.exe : fatal error LNK1120: 1008 esterni non risolti
]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278584#p278584 Wed, 26 Mar 2025 11:59:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278584#p278584
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278588#p278588
marzio wrote: Wed Mar 26, 2025 5:14 pm
cnavarro wrote: Wed Mar 26, 2025 4:52 pm This folder is correct?
$(VC32DIR)\
yes, the path is correct.
Excuse me, so the path that contains that definition is correct?
VC32DIR=.\..\..\VC2017
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278588#p278588 Wed, 26 Mar 2025 13:18:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278588#p278588
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278592#p278592
You are mixing 32 and 64 bits:
> .\..\..\VC2017\Lib\gdi32.lib : warning LNK4272: il tipo 'x86' del computer della libreria in conflitto con il tipo 'x64' del computer di destinazione

Please go to FWH64\samples and run this:

buildh64.bat tutor01

Everything should work fine. Please try it.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278592#p278592 Wed, 26 Mar 2025 14:50:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278592#p278592
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278596#p278596
Antonio Linares wrote: Wed Mar 26, 2025 8:50 pm Dear Marzio,

You are mixing 32 and 64 bits:
> .\..\..\VC2017\Lib\gdi32.lib : warning LNK4272: il tipo 'x86' del computer della libreria in conflitto con il tipo 'x64' del computer di destinazione

Please go to FWH64\samples and run this:

buildh64.bat tutor01

Everything should work fine. Please try it.
buildh64 tutor01
i obtain this result:

Code: Select all | Expand

┌────────────────────────────────────────────────────────────────────────────┐
│ FWH 64 for Harbour 25.01 (VS64bits)  Jan. 2025  Harbour development power  │▄
│ (c) FiveTech 1993-2025 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘█
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Error in script usage. The correct usage is:
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" [option]
  or
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" [option] store
  or
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" [option] [version number]
  or
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" [option] store [version number]
where [option] is: x86 | amd64 | arm | x86_amd64 | x86_arm | amd64_x86 | amd64_arm
where [version number] is either the full Windows 10 SDK version number or "8.1" to use the windows 8.1 SDK
:
The store parameter sets environment variables to support
  store (rather than desktop) development.
:
For example:
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_arm store
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64 10.0.10240.0
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_arm store 10.0.10240.0
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 8.1
    "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 store 8.1
:
Please make sure either Visual Studio or C++ Build SKU is installed.
Compiling...
Harbour 3.2.0dev (r2502110321)
Copyright (c) 1999-2024, https://harbour.github.io/
Compiling 'tutor01.prg' and generating preprocessed output to 'tutor01.ppo'...
Lines 5031, Functions/Procedures 1
Generating C source output to 'tutor01.c'... Done.
"cl" non è riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
"rc" non è riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
"link" non è riconosciuto come comando interno o esterno,
 un programma eseguibile o un file batch.
* Linking errors *

c:\fwh64\samples>
]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278596#p278596 Wed, 26 Mar 2025 15:17:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278596#p278596
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278597#p278597
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat

thank you]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278597#p278597 Wed, 26 Mar 2025 15:26:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278597#p278597
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278599#p278599
Antonio Linares wrote: Wed Mar 26, 2025 9:26 pm Please check if you have this folder and file:

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat

thank you
no, i had notice that the vcvarsall.bat file did not exist]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278599#p278599 Wed, 26 Mar 2025 15:33:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278599#p278599
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278600#p278600
cnavarro wrote: Wed Mar 26, 2025 7:18 pm
marzio wrote: Wed Mar 26, 2025 5:14 pm
cnavarro wrote: Wed Mar 26, 2025 4:52 pm This folder is correct?
yes, the path is correct.
Excuse me, so the path that contains that definition is correct?
VC32DIR=.\..\..\VC2017
i have a folder d:\winclip that contain fivewin folder, harbour folder, vc2017 folder , vc2022 folder , applications folder.
applications folder contains scuola64 folder where there are the prg files, mak file, and where i launch my build64.bat
from this folder i must go down of 2 folder to return to winclip folder and find the harbour, fivewin and vc2022 folders.]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278600#p278600 Wed, 26 Mar 2025 15:31:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278600#p278600
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278602#p278602
Don't move it to a different place. Leave it as it installs.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278602#p278602 Wed, 26 Mar 2025 15:37:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278602#p278602
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278604#p278604
i have reinstalled and updated visual studio 2022 community and now the bat files are present.
buildh64 tutor01 now works fine.
now i try to compile my program.

thanks]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278604#p278604 Wed, 26 Mar 2025 15:40:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278604#p278604
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278611#p278611
echo "%VCDIR%\Tools\MSVC\14.43.34808\lib\x64\Libcmt.lib" >> msvc.tmp
echo "%VCDIR%\Tools\MSVC\14.43.34808\lib\x64\libvcruntime.lib" >> msvc.tmp

and now i have an exe file!]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278611#p278611 Thu, 27 Mar 2025 01:51:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278611#p278611
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278614#p278614 have you an example?
thanks]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278614#p278614 Thu, 27 Mar 2025 02:16:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278614#p278614
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278616#p278616
go64.bat and test64.hbp]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278616#p278616 Thu, 27 Mar 2025 02:20:53 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278616#p278616
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278617#p278617
but i have substitute %1 with @FileComp.txt for harobur compilation in buildh64.bat
%hdir%\bin\win\msvc64\harbour @FileComp.txt /n /i%fwdir%\include;%hdir%\include /w /p /d__64__ %2 %3 > comp.log 2> warnings.log
and i obtain 3 .c files.

I have modify cl.exe inserting the 3 files .c instead of %1.c
cl -TC -W3 -O2 -c -I%hdir%\include -D_WIN64 -D__FLAT__ -I%fwdir%\include -I-I"%ProgramFiles(x86)%\Windows Kits"\10\Include\10.0.18362.0\ucrt scuola.c functscl.c TcBrowse.c

i have modify: echo %1.obj > msvc.tmp with echo scuola.obj functscl.obj TcBrowse.obj > msvc.tmp
and now it generate a msvc.tmp file with 3 obj file and the necessary lib files.

now i have new problem:
some functions called from scuola.prg but residents in funcscl.prg give this errors:

scuola.c
functscl.c
TcBrowse.c
Generazione del codice in corso...
functscl.obj : error LNK2005: HB_FUN_LGETPASSWORD just defined in scuola.obj
functscl.obj : error LNK2005: HB_FUN_MOVE_FILE già definito in scuola.obj
TcBrowse.obj : error LNK2005: HB_FUN_TCBROWSE già definito in scuola.obj
ecc
scuola.exe : fatal error LNK1169: rilevato uno o più simboli definiti più volte
* Linking errors *


is there a flag to put to avoid this errors?
thanks]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278617#p278617 Thu, 27 Mar 2025 04:02:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278617#p278617
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278625#p278625
/force:multiple]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278625#p278625 Thu, 27 Mar 2025 06:54:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278625#p278625
<![CDATA[FiveWin for Harbour/xHarbour :: Re: link problem with fivewin 25.01 64 bit and VS2022 :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278626#p278626
now all works fine!

i have also correct this string for harbor compile with 3 files:
%hdir%\bin\win\msvc64\harbour scuola functscl TcBrowse /n /i%fwdir%\include;%hdir%\include /p /d__64__ %2 %3 > comp.log 2> warnings.log

thanks to all.
Marzio]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278626#p278626 Thu, 27 Mar 2025 07:14:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45565&p=278626#p278626
<![CDATA[FiveWin for Harbour/xHarbour :: Re: How load png from resource :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=15100&p=278640#p278640
PROCEDURE Main()
LOCAL cDatiPng
cDatiPng := cResToStr("DASH_HOME","PNG")
IF !Empty(cDatiPng)
hb_MemoWrit("immagine_estratta.png", cDatiPng)
? "PNG estratto con successo!"
ELSE
? "Errore: risorsa non trovata."
ENDIF
RETURN

and not found the resource why ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=15100&p=278640#p278640 Thu, 27 Mar 2025 12:39:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=15100&p=278640#p278640
<![CDATA[FiveWin for Harbour/xHarbour :: webview2 and images :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278547#p278547

Code: Select all | Expand

 <div class="quick-item" onclick="callHarbourFunction('Clienti')">
                           <img src="img/clienti.png" alt="Clienti">
                           <div>Clienti</div>
                       </div>
the problem is basically that the html page does not actually exist physically because I load it into memory. If the HTML page does not exist as a physical file but is dynamically loaded into memory inside TWebView, then the paths relative to the local files may not work correctly. I have tried several solutions


I tried to insert the path of the images with local

Code: Select all | Expand

cFolder := cFilePath( GetModuleFileName( GetInstance() ) ) + "img/"
but it doesn't work

then I tried on the browser file:///C:/Work/errori/webview/img/clienti.png

the image opens from the browser but doesn't appear in TWebView, then the problem is due to TWebView that blocks the loading of local resources

chatgpt suggests me to set this parameter oWebView:lAllowLocalContent := .T. but it gives me an error telling me that it can't find this variable

TWebView2 doesn't know where to look for images

When you load an HTML file from disk, the browser knows that the path img/clienti.png means "img folder next to the HTML file".

If you instead generate the HTML in memory, TWebView doesn't have a reference path, so it doesn't find local images.

WebView2 may treat the HTML as a temporary file





Any solution ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278547#p278547 Mon, 24 Mar 2025 17:00:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278547#p278547
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278548#p278548
Example for PNG but you can adjust to jpeg etc.

Code: Select all | Expand

function image2base64( cFile )
return "data:image/png;base64," + hb_base64encode( hb_memoRead( cFile ) )
]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278548#p278548 Mon, 24 Mar 2025 19:40:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278548#p278548
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278554#p278554
Lailton wrote: Tue Mar 25, 2025 1:40 am You can convert it to base64encode and use it on the HTML

Example for PNG but you can adjust to jpeg etc.

Code: Select all | Expand

function image2base64( cFile )
return "data:image/png;base64," + hb_base64encode( hb_memoRead( cFile ) )

not run!!

I made sample

LOCAL cHtml
LOCAL cImgHome := image2base64( "img/home.png" )

TEXT INTO cHtml
<!DOCTYPE html>
<html lang="it">

<span class="section-title"><img src="{cImgHome}" alt="Home"> home</span>
</body>
</html>
ENDTEXT

hb_StrReplace( cHtml, "{cImgHome}", cImgHome )]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278554#p278554 Tue, 25 Mar 2025 04:02:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278554#p278554
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278556#p278556
"/www/var/img/home.png"
It should be able to READ file and convert to base64.

also here I think that should be:

Code: Select all | Expand

cHtml := hb_StrReplace( cHtml, "{cImgHome}", cImgHome )
]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278556#p278556 Tue, 25 Mar 2025 10:07:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278556#p278556
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278557#p278557 The HTML Is on Memory
The HTML not exist It Is load on Memory]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278557#p278557 Tue, 25 Mar 2025 14:41:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278557#p278557
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278558#p278558 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278558#p278558 Tue, 25 Mar 2025 16:38:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278558#p278558 <![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278559#p278559 Image
El codigo que use fue el propuesto por Laiton

Code: Select all | Expand

cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\fwh21\bitmaps\pngs\2.png' ) )
oDashBoard:cHtml := '<!DOCTYPE html> '+;
                            '<html lang="it"> '+;
                            '<span class="section-title"><img src="'+cImgHome+'" alt="Home"> home</span>'+;
                            '</body>'+;
                            '</html>'
Tambien puedes usar la ruta relativa, tambien me funcionó

Code: Select all | Expand

'..\bitmaps\pngs\2.png'
Use como ejemple el pinguino que esta en la carpeta bitmaps/pngs]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278559#p278559 Tue, 25 Mar 2025 16:44:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278559#p278559
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278560#p278560
cmsoft wrote: Tue Mar 25, 2025 10:44 pm Con las indicaciones de Laiton, e indicando el nombre completo de la ruta, el programa funciona como es esperado
Image
El codigo que use fue el propuesto por Laiton

Code: Select all | Expand

cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\fwh21\bitmaps\pngs\2.png' ) )
oDashBoard:cHtml := '<!DOCTYPE html> '+;
                            '<html lang="it"> '+;
                            '<span class="section-title"><img src="'+cImgHome+'" alt="Home"> home</span>'+;
                            '</body>'+;
                            '</html>'
Tambien puedes usar la ruta relativa, tambien me funcionó

Code: Select all | Expand

'..\bitmaps\pngs\2.png'
Use como ejemple el pinguino que esta en la carpeta bitmaps/pngs

Cesar,
I have the exe on Root webview3 and the image pngs into /img sample img\home.png


I tried with

FUNCTION Html()
LOCAL cHtml
local cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\work\fwh\bitmaps\pngs\2.png' ) )
TEXT INTO cHtml
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Dashboard</title>

</head>
<body>
<div class="container">
<div class="left-column">
<div class="box">
<span class="section-title">
<img src="'+cImgHome+'" alt="Home"> TITLE HOME</span>
<a href="#" onclick="callHarbourFunction('Home'); return false;"><img src="'+cImgHome+'" alt="home"> title1</a>
<p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
</div>
</body>
</html>
ENDTEXT
RETURN cHtml]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278560#p278560 Wed, 26 Mar 2025 02:12:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278560#p278560
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278561#p278561

Code: Select all | Expand

Function html()
    LOCAL cHtml
    cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\work\fwh\bitmaps\pngs\2.png' ) )

    TEXT INTO cHtml
     <!DOCTYPE html>
     <html lang="it">
     <span class="section-title">
         <img src=cImgHome alt="Home"> home</span>
         </body>
         </html>
            ENDTEXT
    return cHtml

Not run


If I made

Code: Select all | Expand

Function html()
    cImgHome := "data:image/png;base64," +;
    hb_base64encode( hb_memoRead( 'c:\work\fwh\bitmaps\pngs\2.png' ) )
cHtml := '<!DOCTYPE html> '+;
         '<html lang="it"> '+'<span class="section-title"><img src="'+cImgHome+'" alt="Home"> home</span>'+;
         '</body>'+;
        '</html>'

         return cHtml

run ok



So when I use TEXT INTO cHtml why there are problems ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278561#p278561 Wed, 26 Mar 2025 02:47:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278561#p278561
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278562#p278562

Code: Select all | Expand

Function html()
    LOCAL cHtml
    cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\work\fwh\bitmaps\pngs\2.png' ) )

    TEXT INTO cHtml
     <!DOCTYPE html>
     <html lang="it">
     <span class="section-title">
         <img src=&cImgHome alt="Home"> home</span>
         </body>
         </html>
         ENDTEXT

         msginfo(cHtml)

    return cHtml

Run ok


Why ? I must use macro ? <img src=&cImgHome alt="Home"> home</span>]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278562#p278562 Wed, 26 Mar 2025 02:56:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278562#p278562
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278563#p278563
I make

Code: Select all | Expand

#include "fivewin.ch"

FUNCTION Main()
   LOCAL cHtml
   LOCAL oWebView := TWebView2():New()

   // Genera il contenuto HTML con immagini Base64
   cHtml := Html()

   // Carica l'HTML direttamente in memoria
   oWebView:SetHtml( cHtml )
   oWebView:SetTitle( "Dashboard" )
   oWebView:SetSize( 1024, 768 )
   oWebView:Run()
   oWebView:Destroy()

   RETURN NIL

Function html()
    local cImagesPath := cFilePath( GetModuleFileName( GetInstance() ) )+"\img\"
    local cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( cImagesPath+'home.png' ) )
    local  cHtml

      TEXT INTO cHtml

     <!DOCTYPE html>
     <html lang="it">
     <span class="section-title">
  <img src="'"+cImgHome+"'"  alt="Home"> home</span>
         </body>
         </html>

         ENDTEXT

     return cHtml

If I make Msginfo(cImgHome)
Ihave this

Image


So th eimage is loaded but then when I put i tinto chtml not run]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278563#p278563 Wed, 26 Mar 2025 04:30:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278563#p278563
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278564#p278564 and RUN OK

Code: Select all | Expand

#include "fivewin.ch"

FUNCTION Main()
   LOCAL cHtml
   LOCAL oWebView := TWebView2():New()

   // Genera il contenuto HTML con immagini Base64
   cHtml := Html()

   // Carica l'HTML direttamente in memoria
   oWebView:SetHtml( cHtml )
   oWebView:SetTitle( "Dashboard" )
   oWebView:SetSize( 1024, 768 )
   oWebView:Run()
   oWebView:Destroy()

   RETURN NIL

Function Html()
    local cImagesPath := cFilePath( GetModuleFileName( GetInstance() ) ) + "\img\"
    local cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( cImagesPath + "home.png" ) )
    local cHtml

    // Usa TEXT INTO per la parte statica dell'HTML
    TEXT INTO cHtml
        <!DOCTYPE html>
        <html lang="it">
        <head>
            <title>Dashboard</title>
        </head>
        <body>
            <span class="section-title">
                <img src="{IMGSRC}" alt="Home"> home
            </span>
        </body>
        </html>
    ENDTEXT

    // Sostituisci il segnaposto {IMGSRC} con il valore di cImgHome
    cHtml := StrTran( cHtml, "{IMGSRC}", cImgHome )

    return cHtml

Image



Information

TEXT INTO Block:

The TEXT INTO cHtml block defines the static HTML structure.

I inserted a {IMGSRC} placeholder where the dynamic value of cImgHome should go.

StrTran Replacement:
After the TEXT INTO block, I use StrTran() to replace {IMGSRC} with the content of cImgHome, which contains the Base64 string of the image.

Advantages:
This approach keeps the code readable thanks to TEXT INTO for the static part.

It allows you to insert the value of cImgHome dynamically without having to manually concatenate each line.]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278564#p278564 Wed, 26 Mar 2025 04:45:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278564#p278564
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278565#p278565 Creo que si lo haces como lo habias hecho al principio reemplazando el texto por la imagen estaría bien:

Code: Select all | Expand

Function html()
    LOCAL cHtml
    cImgHome := "data:image/png;base64," + hb_base64encode( hb_memoRead( 'c:\work\fwh\bitmaps\pngs\2.png' ) )

    TEXT INTO cHtml
     <!DOCTYPE html>
     <html lang="it">
     <span class="section-title">
         <img src="cImgHome" alt="Home"> home</span>
         </body>
         </html>
            ENDTEXT
   cHtml := REPLACE(cHml, "cImgHome",cImgHome) //Reemplazar el literal por el contenido de la variable            
    return cHtml
Editado: Esta respuesta es lo mismo que te dio la IA, no lo habia visto a ese mensaje]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278565#p278565 Wed, 26 Mar 2025 04:58:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278565#p278565
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278566#p278566
I opted for another direction, that is, inserting all the images into a Hash. It seems faster.
The problem is that I don't know if I can insert the resource.

Code: Select all | Expand

  hImages["IMGHOME"] := "data:image/png;base64," + hb_base64encode( hb_memoRead( cImagesPath + "home.png" ) )
]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278566#p278566 Wed, 26 Mar 2025 05:48:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278566#p278566
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278639#p278639
Why we can't show images directly from jpg files as we do with html?]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278639#p278639 Thu, 27 Mar 2025 11:56:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278639#p278639
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278644#p278644
vilian wrote: Thu Mar 27, 2025 5:56 pm Hi Guys,

Why we can't show images directly from jpg files as we do with html?
Because we are not using a web server. We are just loading a HTML into a webview so we have to provide everything it needs.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278644#p278644 Thu, 27 Mar 2025 13:41:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278644#p278644
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview2 and images :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278646#p278646 ]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278646#p278646 Thu, 27 Mar 2025 14:30:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45562&p=278646#p278646 <![CDATA[FiveWin for Harbour/xHarbour :: resource on hash no run with webview2 - RESOLVED :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278606#p278606

I load images and save on a Hash
then I use on html {IMGHOME} then replace the images before to release the chtml
If the images are on resources not load the images

I tried also with

hImages["IMGHOME"] := "data:image/png;base64," + hb_base64encode( GetResources("DASH_HOME") )

Please try this test


test.prg

Code: Select all | Expand

#include "fivewin.ch"

function Main()
   local oWnd, oWebView


 DEFINE WINDOW oWnd TITLE "Invoicing"

 BuildMainBar(oWnd)

 oWebView := TWebView2():New( oWnd )
 oWebView:SetHtml( Html() )


  SET MESSAGE OF oWnd TO "Invoicing app"  CENTER NOINSET

   ACTIVATE WINDOW oWnd  ;
      ON RESIZE ( oWebView:SetSize( WndWidth( oWebView:oWnd:hWnd ) - 17,;
                                    WndHeight( oWebView:oWnd:hWnd ) - 80 ) )
   RETURN NIL


Function Html()
     LOCAL hImages := LoadImages()  // Carica l'hash delle immagini
   LOCAL cHtml
   LOCAL cKey


  TEXT INTO cHtml
   <!DOCTYPE html>
   <html>
   <head>
     <title>Identify</title>
     <style>
     body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
      background-color: #F2F2F2;
      font-family: Arial, sans-serif;
      margin: 0;
     padding: 0;
    }

      .container {
         max-width: 400px;
         margin: 0 auto;
         padding: 40px;
         background-color: #FFFFFF;
         border-radius: 5px;
         display: flex;
         flex-direction: column;
         align-items: center;
         box-shadow: 0px 0px 44px rgba(0, 0, 0, 0.7) !important;
         overflow:none !important;
       }

       .logo {
         margin-bottom: 40px;
         display: flex;
         align-items: center;
       }

       .logo img {
         max-width: 100%;
         height: auto;
       }

       .btn {
         display: inline-block;
         padding: 12px 24px;
         background-color: #4CAF50;
         color: #FFFFFF;
         font-size: 16px;
         text-decoration: none;
         border-radius: 5px;
         transition: background-color 0.3s ease;
       }

       .btn:hover {
         background-color: #45A049;
       }

       .form-group {
         margin-bottom: 20px;
       }

       .form-group label {
         display: block;
         font-size: 16px;
         font-weight: bold;
         margin-bottom: 5px;
         color: #333333;
       }

       .form-group input {
         width: 100%;
         padding: 12px;
         font-size: 16px;
         border-radius: 5px;
         border: 1px solid #CCCCCC;
       }

       .btn {
         display: inline-block;
         padding: 12px 24px;
         background-color: #4CAF50;
         color: #FFFFFF;
         font-size: 16px;
         text-decoration: none;
         border-radius: 5px;
         transition: background-color 0.3s ease;
       }

       .btn:hover {
         background-color: #45A049;
       }

       body {
         background-color: #3498db;
       }

       .btn {
         background-color: #2980b9;
       }

       .btn:hover {
         background-color: #1a5276;

      .logo {
         margin-bottom: 40px;
         }

         .logo img {
         max-width: 100%;
         height: auto;
         }
       }

     .myinput {
       width: auto !important;
     }

     .mybtn {
       text-align:center;
     }

     </style>
   </head>
   <body>
     <div class="container">
       <div class="logo">
         <img src="{IMGHOME}" alt="Home">
       </div>

     </div>


   </body>
   </html>
   ENDTEXT

  FOR EACH cKey IN hImages:Keys
      cHtml := StrTran(cHtml, "{" + cKey + "}", hImages[cKey])
   NEXT

return cHtml

Function LoadImages()
   LOCAL hImages := {=>}
    hImages["IMGHOME"]       := "data:image/png;base64," + hb_base64encode( hb_memoRead( "DASH_HOME" ) )
    RETURN hImages


 static function BuildMainBar(oWnd)
   local oBar
   DEFINE BUTTONBAR oBar OF oWnd 2015 SIZE 90, 60
   return nil


test.rc (please put your image)

Code: Select all | Expand

1 24 "WindowsXP.Manifest"
DASH_HOME       10   "dashboard/home.png"



try with

Function LoadImages()
LOCAL hImages := {=>}
LOCAL cImageData := GetResources("DASH_HOME")

IF Empty(cImageData) .OR. ValType(cImageData) != "C"
MsgInfo("Error!")
ELSE
hImages["IMGHOME"] := "data:image/png;base64," + hb_base64encode(cImageData)
ENDIF

RETURN hImages]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278606#p278606 Fri, 28 Mar 2025 03:33:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278606#p278606
<![CDATA[FiveWin for Harbour/xHarbour :: Re: resource on hash no run with webview2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278645#p278645 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278645#p278645 Thu, 27 Mar 2025 14:03:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278645#p278645 <![CDATA[FiveWin for Harbour/xHarbour :: Re: resource on hash no run with webview2 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278652#p278652
Antonio Linares wrote: Thu Mar 27, 2025 8:03 pm Check from the console of the DevTools if you get any errors
as I told you elsewhere I need to read the png from the resources, the hb_base64encode function expects to read a code loaded from memoread that it can't do with the resource, so the png image must be extracted from the resources and converted to base 64 to be used inside the html this is because I'm not using a webserver or a website but I'm doing it all locally, the Qween Artificial Intelligence (Grok3 and chagpt only told me nonsense without helping me) suggests a function to load the resource image and convert it to base 64, this function needs a SizeofResource function that doesn't find it if I compile the procedure


Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_SIZEOFRESOURCE' referenced from C:\WORK\ERRORI\PNG_FROM_RES\OBJ\TEST.OBJ
Error: Unable to perform link]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278652#p278652 Fri, 28 Mar 2025 02:22:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278652#p278652
<![CDATA[FiveWin for Harbour/xHarbour :: Re: resource on hash no run with webview2 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278653#p278653
add kernel32.lib

Code: Select all | Expand

#pragma BEGINDUMP

#include <windows.h>

HB_FUNC( SIZEOFRESOURCE )
{
   HMODULE hModule = (HMODULE) hb_parnl(1);
   HRSRC hResInfo = (HRSRC) hb_parnl(2);

   hb_retnl(SizeofResource(hModule, hResInfo));
}

HB_FUNC( FINDRESOURCE )
{
   HMODULE hModule = (HMODULE) hb_parnl(1);
   LPCSTR lpName = (LPCSTR) hb_parc(2);
   LPCSTR lpType = (LPCSTR) hb_parc(3);

   hb_retnl((LONG_PTR) FindResource(hModule, lpName, lpType));
}

HB_FUNC( LOADRESOURCE )
{
   HMODULE hModule = (HMODULE) hb_parnl(1);
   HRSRC hResInfo = (HRSRC) hb_parnl(2);

   hb_retnl((LONG_PTR) LoadResource(hModule, hResInfo));
}

HB_FUNC( LOCKRESOURCE )
{
   HGLOBAL hResData = (HGLOBAL) hb_parnl(1);

   hb_retnl((LONG_PTR) LockResource(hResData));
}

#pragma ENDDUMP


the resource is found, the resource is loaded but then the size is zero and it can't convert it to base 64
I tried with another file and it gives the same error, that is, it finds the resource and uploads it but then the size is always zero]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278653#p278653 Fri, 28 Mar 2025 02:47:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278653#p278653
<![CDATA[FiveWin for Harbour/xHarbour :: Re: resource on hash no run with webview2 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278655#p278655


the functions

Code: Select all | Expand



FUNCTION LoadResourceToBase64(cResourceName)
LOCAL cResourceData := crestostr(cResourceName, RT_RCDATA)  // Legge la risorsa come stringa
LOCAL cBase64

IF EMPTY(cResourceData)
   MsgStop("Error: Unable to read file'" + cResourceName + "'.")
   RETURN NIL
ENDIF

//MsgInfo("Resource '" + cResourceName + "' read correctly.")

// Converte i dati della risorsa in Base64
cBase64 := hb_base64encode(cResourceData, LEN(cResourceData))

IF EMPTY(cBase64)
   MsgStop("Error: Base64 conversion failed.")
   RETURN NIL
ENDIF

//MsgInfo("Base64 conversion completed.")

RETURN "data:image/png;base64," + cBase64


FUNCTION LoadImageFromFile(cFilePath)
LOCAL cFileContent := hb_MemoRead(cFilePath)
LOCAL cBase64

IF EMPTY(cFileContent)
   MsgStop("Error: Unable to read file '" + cFilePath + "'.")
   RETURN NIL
ENDIF

cBase64 := hb_base64encode(cFileContent, LEN(cFileContent))
RETURN "data:image/png;base64," + cBase64


I use the function with

Function html()
LOCAL hImages := LoadImagesToHash()
.....


FUNCTION LoadImagesToHash()
LOCAL hImages := {=>}
hImages["IMGHOME"] := LoadResourceToBase64("DASH_HOME")
RETURN hImages]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278655#p278655 Fri, 28 Mar 2025 03:32:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278655#p278655
<![CDATA[FiveWin for Harbour/xHarbour :: Re: resource on hash no run with webview2 - RESOLVED :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278656#p278656 better with any type of file


Code: Select all | Expand


FUNCTION LoadResourceToBase64(cResourceName, cMimeType)
LOCAL cResourceData := crestostr(cResourceName, RT_RCDATA)  // Read the resource as a string
LOCAL cBase64

IF EMPTY(cResourceData)
   MsgStop("Error: Unable to read resource '" + cResourceName + "'.")
   RETURN NIL
ENDIF

MsgInfo("Resource '" + cResourceName + "' loaded successfully.")

// Convert resource data to Base64
cBase64 := hb_base64encode(cResourceData, LEN(cResourceData))

IF EMPTY(cBase64)
   MsgStop("Error: Base64 conversion failed.")
   RETURN NIL
ENDIF

MsgInfo("Base64 conversion completed.")

// Return the Base64 string with the correct MIME type
RETURN "data:" + cMimeType + ";base64," + cBase64


use
hImages["ICON"] := LoadResourceToBase64("ICON_GIF", "image/gif")]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278656#p278656 Fri, 28 Mar 2025 04:02:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45570&p=278656#p278656
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by reinaldocrespo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278505#p278505
Is there a pdf or wiki that documents this MariaDB class? I would like something that describes the whole class without having to read each post on the forum.

And one other thing; is this an update to the TDolphin class or a whole different class altogether?

Thank you.]]>
no_email@example.com (reinaldocrespo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278505#p278505 Fri, 21 Mar 2025 12:39:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278505#p278505
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278506#p278506 Some time ago I started to collect all Mr Rao tips about FWH MySql in a chm file. You can download it through the link bellow:

https://drive.google.com/file/d/1DnNBBt ... sp=sharing]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278506#p278506 Fri, 21 Mar 2025 13:03:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278506#p278506
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278531#p278531
vilian wrote: Fri Mar 21, 2025 7:03 pm Hi Reinaldo,
Some time ago I started to collect all Mr Rao tips about FWH MySql in a chm file. You can download it through the link bellow:

https://drive.google.com/file/d/1DnNBBt ... sp=sharing
Hello,

It doesn't work.

Regards]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278531#p278531 Sun, 23 Mar 2025 07:41:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278531#p278531
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278532#p278532 https://www.mediafire.com/file/r92mgkwd ... s.chm/file]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278532#p278532 Sun, 23 Mar 2025 08:26:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278532#p278532 <![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by reinaldocrespo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278677#p278677

Code: Select all | Expand

DELIMITER //    
CREATE FUNCTION CurrentLease( 
   pPropID CHAR( 25 ), pDate DATE 
   )  
   RETURNS CHAR( 13 ) DETERMINISTIC   
BEGIN   
   DECLARE cLease CHAR( 13 ) DEFAULT '' ;  
                              
   SELECT leaseID INTO cLease  
   FROM leases   
   WHERE propertyID = pPropID   
      AND StartDate <= pDate   
      AND ( IsMtoM OR EndDate IS NULL OR EndDate >= pDate )  
ORDER BY startdate DESC   
   LIMIT 1 ;  
  
   RETURN( cLease ) ; 
  
END //  
 DELIMITER ; 	
The sql executes fine using HeidiSQL connected to the same db and creates the function.

I have tried to execute the sql using Execute() and QueryResult() at no avail.

Can someone help?

Thank you.]]>
no_email@example.com (reinaldocrespo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278677#p278677 Fri, 28 Mar 2025 18:21:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278677#p278677
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278678#p278678 viewtopic.php?t=33280]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278678#p278678 Fri, 28 Mar 2025 18:29:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278678#p278678 <![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by reinaldocrespo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278682#p278682
Muchas muchas gracias.

That thread helped me see the problem.

So far, everywhere I have read and even when testing scripts with HeidiSQL, I must use the clase "DELIMITER" to change the standard delimiter from ; to something else, like //. That way a ; does not ends the script. This is stupid to me, but it is a MySQL rule non the less; as per all documentation I have read.

However, with the fw client being used for MariaDB (and I suspect MySQL), the clause "DELIMITER" causes a syntax error. That was all the problem.

I realized this when reading your reference thread where Mr. Rao shows a script that creates a function and he is not using the clause "DELIMITER'.

This brings me to the question... why? I would expect there is a standard.

Well, what really matters to me is that is a problem solved and thank you very much Cristobal.]]>
no_email@example.com (reinaldocrespo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278682#p278682 Sat, 29 Mar 2025 06:37:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278682#p278682
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH 16.08 : Built-in MySql/MariaDB functionality (Updated ) :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278688#p278688 This is one of the most valuable posts on this forum.
The explanation is wonderful, but above all, Mr. Rao's implementation of STORE PROCEDURES (and use of CALL) in his fabulous class developed for MySQL/MariaDB is magnificent.
The differences between the standard and Fivewin's implementation lie in the development Mr. Rao did in his class, as always, to try to make it easier for users.
Best regards and a hug.]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278688#p278688 Sat, 29 Mar 2025 18:47:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32657&p=278688#p278688
<![CDATA[FiveWin for Harbour/xHarbour :: fill text fields and checkbox of existing PDF files :: Author marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278654#p278654 from a my program I call pdftk to fill text fields or set checkboxes of an existing PDF file,
but some utf8 characters, pdftk does not handle them (Romanian language etc.)
I wanted to do this directly from the program. is it possible with the tPdf class of fivewin, harbour or other?
in tPdf I don't think there are methods that can be useful for my case. in the example files I didn't find anything.

thanks for any help
Marzio]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278654#p278654 Fri, 28 Mar 2025 02:59:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278654#p278654
<![CDATA[FiveWin for Harbour/xHarbour :: Re: fill text fields and checkbox of existing PDF files :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278675#p278675
You're correct that pdftk has limitations when it comes to handling UTF-8 characters, especially for languages like Romanian that use diacritics (e.g., ă, î, ș, ț). This is a known issue with pdftk, as it doesn't fully support UTF-8 encoding for form filling, often resulting in garbled or missing characters. Since you're working with FiveWin and Harbour, and considering the tPdf class, let’s explore your options for filling PDF form fields with UTF-8 support directly from your program.
The tPdf Class in FiveWin/Harbour
The tPdf class in FiveWin (a library for Harbour and Clipper) is primarily designed for generating PDF files from scratch, not for manipulating existing PDFs or filling form fields in pre-existing documents. It’s a lightweight tool based on basic PDF generation principles, similar to early versions of libraries like FPDF. From the available documentation and examples (typically found in the FiveWin distribution or community forums), tPdf lacks built-in methods for:
Loading an existing PDF.
Interacting with form fields (e.g., filling text fields or setting checkboxes).
Handling AcroForms (the PDF form structure).
The examples provided with tPdf (e.g., creating text, lines, or simple graphics) focus on generating new PDFs rather than editing existing ones. As a result, tPdf is not suitable for your use case of filling form fields in an existing PDF with UTF-8 support.
Alternative Approaches
Since tPdf doesn’t meet your needs, here are some viable alternatives to achieve your goal directly from your Harbour/FiveWin program:
1. Use a Different PDF Library with Form-Filling Capabilities
You can integrate a more capable PDF library into your Harbour/FiveWin application. Here are two options that support form filling and UTF-8:
TCPDF (via PHP Integration)
TCPDF is a PHP library that supports UTF-8 and can fill PDF forms. While Harbour doesn’t natively interface with PHP, you could:
Write a small PHP script using TCPDF to handle the PDF manipulation.
Call this script from Harbour using EXECUTE or RUN to pass data (e.g., via a temporary file or command-line arguments).
TCPDF’s setFormField() method allows you to fill text fields and checkboxes in an existing PDF, and it supports UTF-8 with appropriate font embedding (e.g., DejaVu Sans).
Challenges: Requires setting up a PHP environment and handling inter-process communication, which adds complexity.
iText (via Java or C# Integration)
iText is a powerful PDF library (available in Java and C#) that supports form filling with full UTF-8 support. You could:
Create a small Java or C# utility to process the PDF.
Call it from Harbour using a system command or a DLL interface (if you compile it to a native library).
iText’s AcroFields class can fill text fields and checkboxes while preserving UTF-8 characters.
Challenges: Requires Java or .NET setup and bridging Harbour to another language.
2. Use a Command-Line Tool with Better UTF-8 Support
Instead of pdftk, you could switch to a tool that handles UTF-8 better and call it from your Harbour program:
QPDF
QPDF is a command-line tool that can manipulate PDFs, including filling forms via its form-filling capabilities (though it’s less straightforward than pdftk). It has better UTF-8 support when paired with a proper FDF (Form Data Format) file. You’d need to:
Generate an FDF file with UTF-8 encoded data from Harbour.
Use QPDF to merge the FDF into the PDF.
Example Workflow:
harbour
cFDF := 'FDF content with UTF-8 data'
hb_MemoWrit("data.fdf", cFDF)
RUN 'qpdf --replace-input input.pdf --fill-form data.fdf output.pdf'
pdftk-java
This is a maintained fork of pdftk with improved UTF-8 support. It might handle Romanian characters better than the original pdftk. You can test it by calling it from Harbour:
harbour
RUN 'pdftk-java input.pdf fill_form data.fdf output output.pdf'
3. Extend tPdf or Write Custom Code
If you’re comfortable with Harbour and PDF internals, you could extend tPdf or write a custom solution:
Parse the existing PDF manually (PDF is a text-based format at its core).
Locate the AcroForm fields (text fields and checkboxes are defined in the PDF structure).
Modify their values with UTF-8 encoded strings.
Rebuild the PDF stream.
This approach requires deep knowledge of the PDF specification (ISO 32000) and is time-intensive. Libraries like tPdf don’t provide this level of manipulation out of the box, so you’d essentially be building a mini PDF editor.
4. Use a Harbour-Compatible Library
There’s no widely known Harbour-native library for PDF form filling with UTF-8 support, but you could explore:
Haru (libHaru): A C library for PDF generation with some editing capabilities. It supports UTF-8 but doesn’t natively handle form filling. You’d need to wrap it in Harbour via a C interface.
Custom FFI: Use Harbour’s foreign function interface (FFI) to call a C/C++ library like Poppler or MuPDF, which can manipulate PDFs and handle UTF-8.
Recommendation
Given your constraints and the need for simplicity:
Short-Term Solution: Switch to pdftk-java or QPDF. Test if they handle Romanian UTF-8 characters correctly when called from Harbour. This keeps your workflow similar to what you’re already doing.
Long-Term Solution: Integrate TCPDF via a PHP script. It’s well-documented, supports UTF-8 fully (with font embedding), and can fill forms in existing PDFs. You’d call it from Harbour like this:
harbour
cCmd := 'php fill_pdf.php input.pdf "field1=ăîșț" "checkbox1=on" output.pdf'
RUN cCmd
Conclusion
The tPdf class in FiveWin/Harbour isn’t designed for your use case. For direct form filling with UTF-8 support, you’ll need to either leverage an external tool (like pdftk-java or QPDF) or integrate a more capable library (like TCPDF or iText). The easiest path is to test pdftk-java first, as it’s a drop-in replacement for pdftk with potential UTF-8 improvements. If that fails, TCPDF via PHP is a robust, Harbour-compatible option. Let me know if you’d like help crafting a specific implementation!
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278675#p278675 Fri, 28 Mar 2025 14:23:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278675#p278675
<![CDATA[FiveWin for Harbour/xHarbour :: Re: fill text fields and checkbox of existing PDF files :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278679#p278679 thank you for your kindness and for your exhaustive treatment.
thanks also for your willingness to help me, I would like to try some proposed software solutions,
but my skills are not sufficient to create a program in Python, C#, C++ or other.

I would like to try "Custom FFI" but first I will study your proposals well but I will certainly focus on the 2 external programs proposed.
if they work better than PDFtk it will already be a good result.
as I had already done with PDFtk some alphabetical characters that were completely distorted, (with a function) I replaced them with a readable character. eg. with our t I replaced the Romanian t with the tilde below, always better than seeing a completely different character.
I hope these work better. then I will update you on the results.

many thanks again.
Marzio]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278679#p278679 Sat, 29 Mar 2025 00:06:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278679#p278679
<![CDATA[FiveWin for Harbour/xHarbour :: Re: fill text fields and checkbox of existing PDF files :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278691#p278691 I tried QPDF but it doesn't seem to have the functions to fill text fields, in this link there are the info:
https://qpdf.readthedocs.io/en/stable/c ... on-options

PDFTK-Java I was unable to find the version for Windows. The Linux version works only if Java is installed on your computer.
It should have DLL library for use without installing Java.]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278691#p278691 Sun, 30 Mar 2025 07:47:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45575&p=278691#p278691
<![CDATA[FiveWin for Harbour/xHarbour :: Images on Webview no base64 conversion :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45581&p=278693#p278693 before I made

Code: Select all | Expand

LOCAL hImages := {=>}
    hImages["IMGHOME"]       := LoadResourceToBase64("DASH_HOME" )
    
but this evening I discovered that it is also possible to do differently

that is, take them directly from the exe, how do you do it?

with the res command

res://<path-to-executable-file>/<resource-type>/<resource-name>

or to give a practical example

<img src='res://silvio.exe/PNG/HOME' class="LINKS">

Did you know?

This approach is portable and works in any modern browser, but increases the size of the HTML file because the image is embedded as text.

Using res://, on the other hand, keeps the images separate in the executable, reducing the size of the HTML file and allowing for more modular resource management, but it only works in specific contexts (not in standard web browsers like Chrome or Firefox).

is not a common practice on the modern web. The res:// scheme is a peculiarity of legacy Windows applications or software that uses the old Internet Explorer engine.

Today, for the web, solutions like Base64, remote URLs (https://), or local files served via a server are preferred.



I asked Grok3 :

I use webview but is it better to do as you explained or is it better to use base64?


The choice between using the res:// scheme with resources embedded in an executable and encoding images in Base64 depends on your specific context, the type of application you are developing with WebView and your goals. Let's analyze the pros and cons of both options to help you decide which is better

Advantages:
Modularity: Images remain separate from the HTML file, making the HTML code cleaner and lighter.

Performance: No need to load long Base64 strings into memory for each image; resources are extracted directly from the executable, which can be more efficient for large files.

Security: Images are embedded in the executable, so they are not easily accessible or modified from the outside (useful if you want to protect the content).

Distribution: Everything is contained in a single file (the executable), making it easy to distribute the application without having to manage separate files.

Cons:
Limited compatibility: Only works with Internet Explorer-based WebViews or legacy WebBrowser controls. If you switch to a modern WebView (such as Edge/Chromium-based WebView2), res:// is not natively supported.

Development complexity: You have to embed the resources into the executable using tools like a resource editor (e.g. Resource Hacker) or by configuring the compiler, which adds a step to the build process.

Difficult to update: If you want to modify an image, you have to recompile the executable, which is not practical for frequent updates.

Legacy: This technique is tied to obsolete technologies and may not be supported in the future.

When to use it?
If you are developing a Windows desktop application that uses a legacy (IE-based) WebView and want to keep everything in a single executable.

If the images are static and do not change often.

If portability to other platforms or modern browsers is not a priority.

Option 2: Use Base64
Pros:
Portability: Works on any WebView (including Chromium-based WebView2) and all modern browsers, without depending on Windows-specific features.

Simplicity: You don't have to manage resources in the executable; just encode the image in Base64 and paste it into the HTML.

Flexibility: You can edit images directly in the HTML without recompiling anything, useful for prototypes or dynamic content.

Modern standard: This is a more common practice and is supported everywhere on the web.

Cons:
File size: Base64 strings increase the size of the HTML (about 33% more than the original binary), which can slow down loading if you have many or large images.

Performance: Decoding Base64 in memory can be slower than loading a native binary resource, especially for large images.

Readability: HTML becomes harder to read and maintain with long Base64 strings.

Exposure: Images are visible in the source code, so anyone can easily extract them (less secure than res://).

When to use it?
If you are using a modern WebView (e.g. WebView2) or plan to upgrade your application to a newer technology.

If your images are small or few, and the increased size of the HTML is not a concern.

If you need to change images frequently without recompiling the application.

If you want a more standard and portable approach.

Which one is right for you?
It depends on a few key factors:
Type of WebView:
If you are using a legacy Internet Explorer-based WebView, res:// is a good and convenient choice.

If you are using or plan to upgrade to WebView2 (Edge/Chromium-based), Base64 is the best option, because res:// is not supported.

Size and number of images:
For a few small images, Base64 is simpler and more practical.

For many images or large images, res:// can be more efficient.

Update frequency:
If images change often, Base64 is more flexible.

If they are fixed, res:// is neater.

Portability:
If you want your application to run on platforms other than Windows or in modern browsers, Base64 is the way to go.

Practical advice
If you are tied to a legacy WebView and do not plan to update: Use res://. It is more efficient and integrates well with your current context.

If you want to future-proof or are using WebView2: Switch to Base64, because it gives you flexibility and long-term compatibility.

A hybrid alternative could be to load the images as separate files (not embedded) and serve them via a small local server in the application (e.g. with a URL like http://localhost), but this requires more setup work.
Let me know what kind of WebView you are using and what your priorities are (e.g. performance, simplicity, portability), so I can give you more targeted advice!]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45581&p=278693#p278693 Sun, 30 Mar 2025 11:26:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45581&p=278693#p278693
<![CDATA[FiveWin for Harbour/xHarbour :: Webview and external css :: Author vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278669#p278669 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278669#p278669 Fri, 28 Mar 2025 12:21:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278669#p278669 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278670#p278670 ]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278670#p278670 Fri, 28 Mar 2025 13:10:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278670#p278670 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278673#p278673 ]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278673#p278673 Fri, 28 Mar 2025 13:21:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278673#p278673 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278674#p278674
You have to read it with memoRead() and place it inside your HTML code as explained above

If it is a remote CSS file then you have to download it using FWH WebPageContents( cUrl, lText, nSysWait ) and then StrTran() it into the HTML]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278674#p278674 Fri, 28 Mar 2025 14:07:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278674#p278674
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278681#p278681 Aqui uso uno web y funciona muy bien
https://www.fivetechsupport.com/forums/ ... 75#p273775
Sino, como dice antonio, leerlo con Memoread e inscrustarlo en el codigo]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278681#p278681 Sat, 29 Mar 2025 05:51:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278681#p278681
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278687#p278687 YES, Is it possible to load a local style file in the webview
It is not necessary to load the HTML code or the contents of the CSS file into a variable, nor to use a web server (although it is recommended for many other uses in combination with the webview).
I've attached the code for the prg you should use and the HTML, CSS to use.

Please replace the path shown in the examples with the correct path where your files are located.

Try it and let me know if it worked for you.

Code: Select all | Expand


#include "fivewin.ch"

static oWebView

function Main()

   local oWnd
   
   DEFINE WINDOW oWnd TITLE "Test External CSS"

   ACTIVATE WINDOW oWnd MAXIMIZED ;
      ON INIT CreaWebView( oWnd ) ;
      ON RESIZE if( hb_IsObject( oWebView ), oWebView:SetSize( nWidth, nHeight ), )

return nil

Function CreaWebView( oWnd )

   oWebView = TWebView2():New( oWnd )

   oWebView:OpenDevToolsWindow(.T.)
   oWebView:Navigate( 'file:///d:/fwh/fwhteam/samples/vilian/index1.html' )

Return oWebView

HTML file ( index1.html )

Code: Select all | Expand

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WebView con CSS</title>

<script>
function loadCSS(url) {
    const link = document.createElement('link');
    link.rel = 'stylesheet';
    link.href = url;
    link.type = "text/css";
    console.log( "Cargando CSS" );

    link.onload = function() {
        console.log(`Archivo CSS cargado: ${url}`);
    };

    link.onerror = function() {
        console.error(`Error al cargar el archivo CSS: ${url}`);
    };

   // Simula un retraso para depuración
    setTimeout(() => {
        console.log('Verificando carga...');
    }, 2000);
    document.head.appendChild(link); // Agrega el CSS al <head>
}

// Uso
   loadCSS('file:///d:/fwh/fwhteam/samples/vilian/styles.css');

</script>
</head>
<body>
    <h1>Hola desde WebView</h1>
    <p>Este texto está estilizado con CSS.</p>
</body>
</html>
CSS file ( styles.css )

Code: Select all | Expand

body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    color: #333;
}

h1 {
    color: #ff0000;
}

p {
    color: #0000ff;
}
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278687#p278687 Sat, 29 Mar 2025 18:14:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278687#p278687
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278690#p278690 Look the message bar of images
Image
Image]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278690#p278690 Sun, 30 Mar 2025 05:25:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278690#p278690
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278694#p278694 LOCAL cCss := BuildCss()

on this function I insert the css sample

Code: Select all | Expand


 TEXT INTO cCss
      html, body {
         font-family: Tahoma, sans-serif;
         background-color: #F5F5EB;
         padding: 20px 5px 10px 5px;
         margin: 0;
         height: 100vh;
         overflow: hidden;
      }
      .container {
         display: flex;

then on html insert

<style>
{CSS}
</style>

at the end of the file html write

</body>
</html>
ENDTEXT
cHtml := StrTran(cHtml, "{CSS}", cCss)


and run ok]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278694#p278694 Sun, 30 Mar 2025 11:30:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278694#p278694
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278696#p278696 The issue arises when you want to use your own stylesheet because your development is a bit more ambitious, or you "copy" a web page ( or entire site web ) from a project to run it in your webview.]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278696#p278696 Sun, 30 Mar 2025 12:29:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278696#p278696 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Webview and external css :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278707#p278707 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278707#p278707 Mon, 31 Mar 2025 04:46:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45578&p=278707#p278707 <![CDATA[FiveWin for Harbour/xHarbour :: Any 3DES Algorithm functions for Harbour? :: Author richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278731#p278731
Any 3DES Algorithm functions for Harbour?]]>
no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278731#p278731 Tue, 01 Apr 2025 02:11:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278731#p278731
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Any 3DES Algorithm functions for Harbour? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278735#p278735
Harbour, being a modernized, open-source, cross-platform successor to Clipper, does not natively include built-in functions specifically for the Triple DES (3DES) algorithm in its standard library. However, Harbour provides robust mechanisms to integrate with C libraries or implement custom algorithms, which can be leveraged to work with 3DES. Since 3DES is a widely used symmetric-key block cipher, you can either call an external C library (like OpenSSL) or implement the algorithm yourself in Harbour by interfacing with C code or using Harbour's capabilities.

Below, I'll outline approaches to achieve 3DES functionality in Harbour, as no direct 3DES functions (e.g., TripleDESEncrypt() or TripleDESDecrypt()) exist in its core documentation or standard runtime library as of my last update.

Approach 1: Using an External C Library (e.g., OpenSSL)
Harbour supports seamless integration with C code, allowing you to use established cryptography libraries like OpenSSL, which provides 3DES functionality. Here’s how you could do it:
Link OpenSSL with Harbour:
Ensure OpenSSL is installed on your system (e.g., libcrypto for the cryptographic functions).
Harbour can call C functions via its C keyword or by creating a shared library.
Example C Code for 3DES:
You can write a small C wrapper for OpenSSL’s 3DES functions and link it to Harbour. Here’s a basic example:
c
#include <openssl/des.h>
#include <string.h>

void Harbour_3DES_Encrypt(const unsigned char *input, unsigned char *output,
const unsigned char *key, const unsigned char *iv, int len) {
DES_key_schedule ks1, ks2, ks3;
unsigned char key1[8], key2[8], key3[8];

// Split 24-byte key into three 8-byte DES keys
memcpy(key1, key, 8);
memcpy(key2, key + 8, 8);
memcpy(key3, key + 16, 8);

DES_set_key_unchecked((const_DES_cblock *)key1, &ks1);
DES_set_key_unchecked((const_DES_cblock *)key2, &ks2);
DES_set_key_unchecked((const_DES_cblock *)key3, &ks3);

DES_ede3_cbc_encrypt(input, output, len, &ks1, &ks2, &ks3,
(DES_cblock *)iv, DES_ENCRYPT);
}

void Harbour_3DES_Decrypt(const unsigned char *input, unsigned char *output,
const unsigned char *key, const unsigned char *iv, int len) {
DES_key_schedule ks1, ks2, ks3;
unsigned char key1[8], key2[8], key3[8];

memcpy(key1, key, 8);
memcpy(key2, key + 8, 8);
memcpy(key3, key + 16, 8);

DES_set_key_unchecked((const_DES_cblock *)key1, &ks1);
DES_set_key_unchecked((const_DES_cblock *)key2, &ks2);
DES_set_key_unchecked((const_DES_cblock *)key3, &ks3);

DES_ede3_cbc_encrypt(input, output, len, &ks1, &ks2, &ks3,
(DES_cblock *)iv, DES_DECRYPT);
}
Harbour Code to Call the C Functions:
Compile the C code into a shared library (e.g., 3deslib.dll or lib3des.so), then call it from Harbour:
harbour
#include "hbapi.h"

// Declare external C functions
EXTERN VOID Harbour_3DES_Encrypt( const BYTE *, BYTE *, const BYTE *, const BYTE *, INT );
EXTERN VOID Harbour_3DES_Decrypt( const BYTE *, BYTE *, const BYTE *, const BYTE *, INT );

FUNCTION Encrypt3DES( cInput, cKey, cIV )
LOCAL cOutput := Space( Len(cInput) )
Harbour_3DES_Encrypt( cInput, @cOutput, cKey, cIV, Len(cInput) )
RETURN cOutput

FUNCTION Decrypt3DES( cInput, cKey, cIV )
LOCAL cOutput := Space( Len(cInput) )
Harbour_3DES_Decrypt( cInput, @cOutput, cKey, cIV, Len(cInput) )
RETURN cOutput

PROCEDURE Main()
LOCAL cPlain := "Hello, Harbour!"
LOCAL cKey := "123456789012345678901234" // 24 bytes
LOCAL cIV := "12345678" // 8 bytes
LOCAL cEncrypted, cDecrypted

cEncrypted := Encrypt3DES( cPlain, cKey, cIV )
cDecrypted := Decrypt3DES( cEncrypted, cKey, cIV )

? "Original:", cPlain
? "Encrypted:", hb_Hex2Str( cEncrypted )
? "Decrypted:", cDecrypted
RETURN
Compilation:
Compile the C code with a compatible compiler (e.g., GCC or MinGW) and link it with OpenSSL.
Use Harbour’s hbmk2 to build your project, linking the shared library.
Approach 2: Implementing 3DES in Pure Harbour
Implementing 3DES directly in Harbour is possible but impractical due to the complexity of bit-level operations and performance considerations. 3DES involves applying the DES algorithm three times with different keys, requiring functions for:
Key scheduling
Initial and final permutations
Expansion, substitution (S-boxes), and permutation steps
CBC mode (if needed)
Harbour lacks native bitwise operations optimized for such tasks, so this would require significant effort and likely be slower than a C-based solution. Instead, you could port a C implementation of DES (e.g., from OpenSSL or a public domain source) and adapt it to Harbour via inline C or a custom library.
Here’s a simplified pseudocode outline for 3DES in Harbour (not a full implementation):
harbour
FUNCTION TripleDESEncrypt( cPlainText, cKey1, cKey2, cKey3 )
LOCAL cBlock, cCipherText := ""
// Split plaintext into 64-bit blocks
FOR EACH cBlock IN SplitIntoBlocks( cPlainText, 64 )
// EDE: Encrypt-Decrypt-Encrypt
cBlock := DESEncrypt( cBlock, cKey1 )
cBlock := DESDecrypt( cBlock, cKey2 )
cBlock := DESEncrypt( cBlock, cKey3 )
cCipherText += cBlock
NEXT
RETURN cCipherText

FUNCTION TripleDESDecrypt( cCipherText, cKey1, cKey2, cKey3 )
LOCAL cBlock, cPlainText := ""
FOR EACH cBlock IN SplitIntoBlocks( cCipherText, 64 )
// DED: Decrypt-Encrypt-Decrypt
cBlock := DESDecrypt( cBlock, cKey3 )
cBlock := DESEncrypt( cBlock, cKey2 )
cBlock := DESDecrypt( cBlock, cKey1 )
cPlainText += cBlock
NEXT
RETURN cPlainText

// Placeholder DES functions (would need C implementation)
FUNCTION DESEncrypt( cBlock, cKey )
// Implement DES encryption logic or call C
RETURN cBlock

FUNCTION DESDecrypt( cBlock, cKey )
// Implement DES decryption logic or call C
RETURN cBlock
Notes

Security: 3DES is considered deprecated as of 2023 by NIST due to its vulnerability to certain attacks (e.g., meet-in-the-middle) and its small block size (64 bits). AES is recommended for modern applications.
Performance: For production use, rely on a C library like OpenSSL rather than a pure Harbour implementation.
Key Length: 3DES uses three 56-bit keys (168 bits total), though effective security is 112 bits due to attack optimizations.
If you need a specific, working implementation, let me know, and I can refine the OpenSSL-based solution further!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278735#p278735 Tue, 01 Apr 2025 07:41:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45588&p=278735#p278735
<![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 25.01 :: Reply by Eroni]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=278756#p278756 Do your class works with xHarbour too?
Regards and thanks.
Silvio.Falconi wrote: Wed Feb 26, 2025 9:06 am My Office365 class

The Tgmail class I provided is specifically for integrating with the GMail API via OAuth2,
so it would not work directly for Office 365 (Outlook). However,

we can adapt it to also work with Office 365 (Microsoft Graph API),
which is the official API for interacting with Microsoft services, including Outlook and OneDrive.

Authentication via OAuth2:

To get the access_token, you will need to configure your application in the Azure Portal,
similar to how you did for GMail.
Microsoft Graph uses a similar authentication flow to GMail
but with different URLs and parameters.
Sending an email via Microsoft Graph:

The HTTP request to send the email will be directed to a different
URL than GMail, namely https://graph.microsoft.com/v1.0/me/sendMail.

Adapting the Tgmail class for Office 365 (Microsoft Graph API)
Below I show you how you can adapt the Tgmail class for Office 365.

The new class will be called Toffice365.

With this Toffice365 class, you can integrate your application with Office 365 (Microsoft Outlook) via OAuth2,
get an access_token,
and use it to send emails via the Microsoft Graph API.

Code: Select all | Expand

CLASS Toffice365

   DATA cClientId // OAuth2 Client ID
   DATA cClientSecret // OAuth2 Client Secret
   DATA cRedirectUri // Redirect URI
   DATA cAccessToken // OAuth2 Access Token
   DATA cRefreshToken // OAuth2 Refresh Token
   DATA cAuthUrl // Authorization URL

   METHOD Init( cClientId, cClientSecret, cRedirectUri )
   METHOD GetAuthorizationUrl()
   METHOD GetAccessToken( cCode )
   METHOD SendEmail( cSubject, cBody, cRecipient )

ENDCLASS

// Constructor for Toffice365 class
METHOD Init( cClientId, cClientSecret, cRedirectUri )
   ::cClientId := cClientId
   ::cClientSecret := cClientSecret
   ::cRedirectUri := cRedirectUri
   ::cAuthUrl := "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?" + ;
                    "client_id=" + SELF:cClientId + ;
                    "&response_type=code" + ;
                    "&redirect_uri=" + SELF:cRedirectUri + ;
                    "&scope=Mail.Send"
   RETURN NIL

// Method to get the authorization URL
METHOD GetAuthorizationUrl()
   RETURN ::cAuthUrl

// Method to get access token using authorization code
METHOD GetAccessToken( cCode )
   LOCAL cUrl, cData, cResponse, cTokenUrl
   LOCAL aJson
   cTokenUrl := "https://login.microsoftonline.com/common/oauth2/v2.0/token"
   cData := "code=" + cCode + ;
            "&client_id=" + SELF:cClientId + ;
            "&client_secret=" + SELF:cClientSecret + ;
            "&redirect_uri=" + SELF:cRedirectUri + ;
            "&grant_type=authorization_code"

   // Request to get the token
   cResponse := HttpPostRequest( cTokenUrl, cData, "" )
   IF !Empty(cResponse)
      
      aJson := JsonParse( cResponse )
      ::cAccessToken := aJson[ "access_token" ]
      ::cRefreshToken := aJson[ "refresh_token" ]
      RETURN .T.
   ELSE
      RETURN .F.
   ENDIF

// Method to send an email via Office 365 (Microsoft Graph)
METHOD SendEmail( cSubject, cBody, cRecipient )
   LOCAL cUrl, cMessage, cRaw, cResponse

   // Prepara il messaggio in formato MIME
   cRaw := '{"message": {' + ;
           '"subject": "' + cSubject + '",' + ;
           '"body": {"contentType": "Text", "content": "' + cBody + '"},' + ;
           '"toRecipients": [{"emailAddress": {"address": "' + cRecipient + '"}}]' + ;
           '}}'

   // URL to send message via Microsoft Graph
   cUrl := "https://graph.microsoft.com/v1.0/me/sendMail"

   // Send HTTP request with access token
   cResponse := HttpPostRequest( cUrl, cRaw, "Authorization: Bearer " + SELF:cAccessToken )
   IF !Empty(cResponse)
      RETURN .T.
   ELSE
      RETURN .F.
   ENDIF

RETURN NIL


SAMPLES as tgmail samples

Code: Select all | Expand

LOCAL oOffice365
oOffice365 := Toffice365():New()

// Initializes with the client_id, client_secret and redirect_uri obtained from Azure Portal
oOffice365:Init( "YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET", "YOUR_REDIRECT_URI" )

Code: Select all | Expand

LOCAL cAuthUrl
cAuthUrl := oOffice365:GetAuthorizationUrl()
MsgInfo( "Visita questo URL per autorizzare l'app: " + cAuthUrl, "Autorizzazione OAuth2" )

Code: Select all | Expand

LOCAL cCode, lSuccess
cCode := "AUTHORIZATION_CODE_OBTAINED_FROM_USER"  // Codice di autorizzazione
lSuccess := oOffice365:GetAccessToken( cCode )
IF lSuccess
   MsgInfo( "Token di accesso ottenuto!", "Successo" )
ELSE
   MsgError( "Errore durante l'ottenimento del token.", "Errore" )
ENDIF

Code: Select all | Expand

LOCAL lSuccess
lSuccess := oOffice365:SendEmail( "Test Email", "Ciao, questa è una prova di invio email!", "recipient@example.com" )
IF lSuccess
   MsgInfo( "Email inviata con successo!", "Successo" )
ELSE
   MsgError( "Errore durante l'invio dell'email.", "Errore" )
ENDIF


Functions
// Funzione per eseguire una richiesta HTTP POST
FUNCTION HttpPostRequest( cUrl, cData, cHeaders )
LOCAL cResponse
cResponse := HttpPost( cUrl, cData, cHeaders )
RETURN cResponse
]]>
no_email@example.com (Eroni) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=278756#p278756 Wed, 02 Apr 2025 12:58:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=278756#p278756
<![CDATA[FiveWin for Harbour/xHarbour :: Silvio, Happy Birthday :: Author Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278702#p278702 Wishing you calm seas, clever code, and a steady course on your Fivewin/Harbour journey.
From the good old Clipper days to mod_harbour and beyond – may your projects always compile with joy!

Keep on sailing and stay true to the code!

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278702#p278702 Mon, 31 Mar 2025 03:00:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278702#p278702
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278703#p278703
Happy birthday!!! :D

You are a very important member in this family of friends! :wink:]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278703#p278703 Mon, 31 Mar 2025 03:12:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278703#p278703
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278705#p278705 no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278705#p278705 Mon, 31 Mar 2025 03:28:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278705#p278705 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by Maurizio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278708#p278708 Maurizio]]> no_email@example.com (Maurizio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278708#p278708 Mon, 31 Mar 2025 06:08:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278708#p278708 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278709#p278709
Happy birthday!!!]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278709#p278709 Mon, 31 Mar 2025 06:36:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278709#p278709
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278710#p278710
Happy birthday!!! :D]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278710#p278710 Mon, 31 Mar 2025 08:43:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278710#p278710
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278711#p278711 no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278711#p278711 Mon, 31 Mar 2025 09:42:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278711#p278711 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278712#p278712 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278712#p278712 Mon, 31 Mar 2025 10:20:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278712#p278712 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278718#p278718 no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278718#p278718 Mon, 31 Mar 2025 12:41:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278718#p278718 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by carlos vargas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278719#p278719 ]]> no_email@example.com (carlos vargas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278719#p278719 Mon, 31 Mar 2025 12:58:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278719#p278719 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by admsoporte]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278720#p278720 no_email@example.com (admsoporte) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278720#p278720 Mon, 31 Mar 2025 13:05:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278720#p278720 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278733#p278733 no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278733#p278733 Tue, 01 Apr 2025 03:21:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278733#p278733 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by Cgallegoa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278745#p278745
Happy birthday and success in all your endeavors!]]>
no_email@example.com (Cgallegoa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278745#p278745 Tue, 01 Apr 2025 14:13:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278745#p278745
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278752#p278752
Happy birthday!!!]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278752#p278752 Wed, 02 Apr 2025 06:13:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278752#p278752
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Silvio, Happy Birthday :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278764#p278764 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278764#p278764 Thu, 03 Apr 2025 01:11:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45584&p=278764#p278764 <![CDATA[FiveWin for Harbour/xHarbour :: webview questions :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278699#p278699
if I can no show the menu when I click on html as

Image

I can use the command

Code: Select all | Expand

:InjectJavascript( "document.addEventListener('contextmenu', function(e) { if (e.target.tagName !== 'A') { e.preventDefault(); } });" )
and seems run ok obviously it is set so that if the mouse clicks on a link it executes it without problems


For ugrade html
is there a comand or I must call allways the command oApp():oDashboard:SetHtml( Html() )
or I can simulate ctrl+R ? as there is on menu ?
I can use f5 or

Code: Select all | Expand

:InjectJavascript( "document.addEventListener('keydown', function(e) { if (e.key === 'F5') { e.preventDefault(); window.location.reload(); } }); function refreshPage() { window.location.reload(); } document.addEventListener('DOMContentLoaded', function() { var refreshAreas = document.getElementsByClassName('refresh-area'); for (var i = 0; i < refreshAreas.length; i++) { refreshAreas[i].addEventListener('click', function() { refreshPage(); }); } });" )
any suggestions ?

SetUserAgent( cUserAgent )

How use this ? is there a sample test ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278699#p278699 Sun, 30 Mar 2025 15:02:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278699#p278699
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview questions :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278700#p278700
Look this topic
viewtopic.php?p=278605#p278605]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278700#p278700 Sun, 30 Mar 2025 18:13:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278700#p278700
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview questions :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278723#p278723
cnavarro wrote: Mon Mar 31, 2025 12:13 am SetUserAgent

Look this topic
viewtopic.php?p=278605#p278605
Cris ¿qué debería hacer este agente? ¿Cual es su función?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278723#p278723 Mon, 31 Mar 2025 14:19:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278723#p278723
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview questions :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278725#p278725 https://developer.mozilla.org/en-US/doc ... User-Agent
El User-Agent es un encabezado HTTP que los navegadores (u otros clientes HTTP) envían al servidor web para identificar el dispositivo, sistema operativo, navegador y versión que está realizando la solicitud. Este encabezado permite que el servidor adapte su respuesta según las capacidades del cliente.
Gracias al encabezado que se envia con el user-agent puedes determinar el comportamiento de la aplicacion, son muchas las utilidades que tiene.
The User-Agent is an HTTP header that browsers (or other HTTP clients) send to the web server to identify the device, operating system, browser, and version making the request. This header allows the server to tailor its response based on the client's capabilities.
Thanks to the header sent with the user-agent, you can determine the application's behavior, and it has many uses.
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278725#p278725 Mon, 31 Mar 2025 17:42:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278725#p278725
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview questions :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278765#p278765
cnavarro wrote: Mon Mar 31, 2025 11:42 pm Silvio, te remito a la documentacion oficial, pero en algunos casos es muy util
https://developer.mozilla.org/en-US/doc ... User-Agent
El User-Agent es un encabezado HTTP que los navegadores (u otros clientes HTTP) envían al servidor web para identificar el dispositivo, sistema operativo, navegador y versión que está realizando la solicitud. Este encabezado permite que el servidor adapte su respuesta según las capacidades del cliente.
Gracias al encabezado que se envia con el user-agent puedes determinar el comportamiento de la aplicacion, son muchas las utilidades que tiene.
The User-Agent is an HTTP header that browsers (or other HTTP clients) send to the web server to identify the device, operating system, browser, and version making the request. This header allows the server to tailor its response based on the client's capabilities.
Thanks to the header sent with the user-agent, you can determine the application's behavior, and it has many uses.
for an application dashboard not need it]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278765#p278765 Thu, 03 Apr 2025 01:15:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278765#p278765
<![CDATA[FiveWin for Harbour/xHarbour :: Re: webview questions :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278768#p278768 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278768#p278768 Thu, 03 Apr 2025 03:40:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45583&p=278768#p278768 <![CDATA[FiveWin for Harbour/xHarbour :: Part of the text of a Word table cell :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278770#p278770
There is an object
oTb:Item(1):Rows:Item(1):Cells:Item(1)

However, if I try to cut out a piece of cell text,
oTb:Item(1):Rows:Item(1):Cells:Item(1):Range(1, 100):Text
I get an error (Word.Application:ACTIVEDOCUMENT:TABLES:ITEM:ROWS:ITEM:CELLS:ITEM/6 DISP_E_UNKNOWNNAME: RANGE)]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278770#p278770 Thu, 03 Apr 2025 04:43:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278770#p278770
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Part of the text of a Word table cell :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278771#p278771
oCell := oTb:Item(1):Rows:Item(1):Cells:Item(1) // Get the first cell
oRange := oCell:Range // Get the range of the cell

oRange:Start := oRange:Start + 1 // Set start position
oRange:End := oRange:Start + 100 // Set end position (ensure it doesn't exceed)

? oRange:Text // Output the extracted text]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278771#p278771 Thu, 03 Apr 2025 05:01:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278771#p278771
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Part of the text of a Word table cell :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278772#p278772 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278772#p278772 Thu, 03 Apr 2025 05:14:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45592&p=278772#p278772 <![CDATA[FiveWin for Harbour/xHarbour :: XBROWSE lFastEdit in some columns :: Author MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278747#p278747 Actually I set only in this way but oBrw:lFastEdit = .T. this piece of code set all columns. My desire is to have some columns not editable and other editable

Many Thanks]]>
no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278747#p278747 Wed, 02 Apr 2025 02:12:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278747#p278747
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278751#p278751
oBrw:aCols[1]:nEditType := EDIT_NONE]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278751#p278751 Wed, 02 Apr 2025 06:12:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278751#p278751
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278754#p278754 In the guide I see "If true, editable columns go to edit mode just pushing an alpha or digit character. This feature is incompatible with Incremental seek and is only available when the marquee style is cell based.]]> no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278754#p278754 Wed, 02 Apr 2025 08:54:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278754#p278754 <![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278762#p278762 Wouldn't it be more appropriate to configure lFastEdit := .F., and configure oCol:nEditType only on the editable columns?]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278762#p278762 Wed, 02 Apr 2025 23:50:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278762#p278762 <![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278763#p278763 of the column
IF oBrw:lFastEdit = .T. and a column is always oCol:nEditType = EDIT_GET
IF I press alpha or digit characters I can modify the value of the column
For some columns I want this behavior but only for some not all of them
I've tried oCol:lFastEdit = .T. unsuccessful]]>
no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278763#p278763 Thu, 03 Apr 2025 00:34:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278763#p278763
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278769#p278769

Code: Select all | Expand

#include "fivewin.ch"

FUNCTION Main()
     LOCAL i
     
     REQUEST DBFCDX
     RddSetDefault( "DBFCDX" )
     set DATE FRENCH
     SET CENTURY ON
     SET EPOCH TO Year( Date() ) - 40

     // Please change path
     USE d:\fwh\fwhteam\samples\customer NEW SHARED
     
     XBROWSER "customer" TITLE "Prueba Botones y Excel" SETUP ;
               (  oBrw:lFastEdit  := .F., ;
                  oBrw:aCols[ 1 ]:nEditType := oBrw:aCols[ 3 ]:nEditType := EDIT_GET, ;
                  oBrw:bKeyChar  := { | nKey, nFlags, oB, oCol | if( oCol:nEditType == 0, nil, ;
                                        if( oCol:lEditable .and. oCol:IsEditKey( nKey ), oCol:Edit( nKey ), ) ) } ;
                  )
RETURN nil

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278769#p278769 Thu, 03 Apr 2025 04:11:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278769#p278769
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBROWSE lFastEdit in some columns :: Reply by MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278776#p278776 ]]> no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278776#p278776 Thu, 03 Apr 2025 08:28:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45589&p=278776#p278776 <![CDATA[FiveWin for Harbour/xHarbour :: UTF-8 con BOM :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278698#p278698
on my html I allready insert

Code: Select all | Expand

 TEXT INTO cHtml
      <!DOCTYPE html>
      <html lang="it">
      <head>
         <meta charset="UTF-8">
but it's not enough

because I have a string as "contabilità" with a grave or "Ordine n°" and on html I see a symbol ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278698#p278698 Sun, 30 Mar 2025 14:38:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278698#p278698
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278701#p278701 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278701#p278701 Sun, 30 Mar 2025 18:16:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278701#p278701 <![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278722#p278722 But the problem Is on a menu "contabilità" i change With che(224) and on the HTML i make a converion. Strtran With agrave;
Now seems tò run ok
For the oders "orders n°' i saw i can change because It Is my script and the Number of invoice come from dbf , i must only make some test]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278722#p278722 Mon, 31 Mar 2025 14:16:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278722#p278722
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Giovany Vecchi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278724#p278724

Code: Select all | Expand

 TEXT INTO cHtml
_CodeUtf8Bom_
      <!DOCTYPE html>
      <html lang="it">
      <head>
         <meta charset="UTF-8">
ENDTEXT

cHtml := Strtran(cHtml,_CodeUtf8Bom_,chr(239)+chr(187)+chr(191))
]]>
no_email@example.com (Giovany Vecchi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278724#p278724 Mon, 31 Mar 2025 16:12:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278724#p278724
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278766#p278766
Giovany Vecchi wrote: Mon Mar 31, 2025 10:12 pm cHtml := Strtran(cHtml,_CodeUtf8Bom_,chr(239)+chr(187)+chr(191))
Error occurred at: 04/03/25, 09:18:56
Error description: Error BASE/1003 Variable does not exist: _CODEUTF8BOM_

Stack Calls
===========
Called from: Source\test.prg => HTML( 95 )
Called from: Source\test.prg => MAIN( 19 )]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278766#p278766 Thu, 03 Apr 2025 01:19:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278766#p278766
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278767#p278767
Are you using this in your PRG ?

REQUEST HB_CODEPAGE_ITWIN

...

hb_SetCodePage( "ITWIN" )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278767#p278767 Thu, 03 Apr 2025 03:02:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278767#p278767
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Giovany Vecchi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278781#p278781
Silvio.Falconi wrote: Thu Apr 03, 2025 7:19 am ´
Giovany Vecchi wrote: Mon Mar 31, 2025 10:12 pm cHtml := Strtran(cHtml,_CodeUtf8Bom_,chr(239)+chr(187)+chr(191))
Error occurred at: 04/03/25, 09:18:56
Error description: Error BASE/1003 Variable does not exist: _CODEUTF8BOM_

Stack Calls
===========
Called from: Source\test.prg => HTML( 95 )
Called from: Source\test.prg => MAIN( 19 )
I forgot the quotes

cHtml := Strtran(cHtml,"_CodeUtf8Bom_",chr(239)+chr(187)+chr(191))]]>
no_email@example.com (Giovany Vecchi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278781#p278781 Thu, 03 Apr 2025 12:44:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278781#p278781
<![CDATA[FiveWin for Harbour/xHarbour :: Re: UTF-8 con BOM :: Reply by Carles]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278785#p278785
Try saving your code from your editor in 'UTF8 WITHOUT BOM' format. If you save code with 'UTF8 WITH BOM', it can cause many such errors in many browsers.

C.]]>
no_email@example.com (Carles) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278785#p278785 Thu, 03 Apr 2025 23:28:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45582&p=278785#p278785
<![CDATA[FiveWin for Harbour/xHarbour :: Whatsapp :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278814#p278814 Thanks.]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278814#p278814 Sat, 05 Apr 2025 08:46:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278814#p278814 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Whatsapp :: Reply by toninhofwi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278818#p278818
https://easychat.seacweb.com/docs/1.0/introduction

https://cloudhotels.com.br/

call he on whatsapp if you like.

regards.]]>
no_email@example.com (toninhofwi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278818#p278818 Sat, 05 Apr 2025 09:16:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45601&p=278818#p278818
<![CDATA[FiveWin for Harbour/xHarbour :: Email :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278815#p278815 Thanks.]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278815#p278815 Sat, 05 Apr 2025 08:47:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278815#p278815 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Email :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278817#p278817
vinpug wrote: Sat Apr 05, 2025 2:47 pm Hello, I would like to know if it is possible to send an email with an attachment from within an xHarbour program.
Thanks.
Good afternoon. How do you want to send emails? OutLook.exe or CDOSYS?

Buenas tardes. ¿Cómo desea enviar correos electrónicos? ¿OutLook.exe o CDOSYS?

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278817#p278817 Sat, 05 Apr 2025 09:14:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278817#p278817
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Email :: Reply by toninhofwi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278820#p278820
https://www.chilkatsoft.com/refdoc/xChi ... ilRef.html

Cheers.]]>
no_email@example.com (toninhofwi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278820#p278820 Sat, 05 Apr 2025 09:18:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278820#p278820
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Email :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278821#p278821
Mira cómo puedes crear remitentes de correo electrónico ilimitados.

https://imgur.com/TfTyVYS

Image

just an idea.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278821#p278821 Sat, 05 Apr 2025 10:02:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45602&p=278821#p278821
<![CDATA[FiveWin for Harbour/xHarbour :: Experience Report: Two Months with Our Local AI System :: Author Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278810#p278810 Two months after launching our local AI setup – based on Ollama running on Ubuntu with a RAG (Retrieval-Augmented Generation) extension – it’s clear: our daily work with documents has significantly changed for the better.

Our Document Management System (DMS) follows a deliberately simple structure: HTML files, JSON metadata, and organized folder hierarchies. Nothing fancy or overly complex. The key difference now is the new AI integration: all contents are automatically transferred into a vector database (Chroma), where they’re indexed and stored with context. The locally installed AI can access this data – and provides clear, accurate answers.

What has changed in practice:
The DMS became a knowledge source: Instead of just storing documents, the AI “understands” their content and can respond meaningfully.

Context-based answers: The AI doesn’t just look for keywords – it intelligently searches across documents and combines relevant information.

Fully automated integration: Every new document automatically becomes part of the knowledge network – without extra effort.

High-quality responses: The answers are precise, easy to understand, and far superior to traditional full-text search.

100% local operation: No cloud, no API fees, no internet dependency – and full control over data privacy.

A surprising bonus:
What really stands out is the practical side effect: Everyone in the company – whether at the front desk, in the kitchen, or in maintenance – contributes to the AI knowledge base simply by writing into the DMS. Without even realizing it. It’s what we’d call effortless knowledge management.

For developers:
Integration is refreshingly simple. You send a text request via the local HTTP API and receive a JSON response. That’s it. Existing applications can easily tap into the system without major changes – but with a huge gain in functionality.

Conclusion:
For us, combining a local DMS with AI is far from a hype. It’s a practical, forward-thinking step – especially for small businesses that want to actively use their internal knowledge instead of just storing it.

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278810#p278810 Sat, 05 Apr 2025 00:16:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278810#p278810
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278811#p278811
Would you be so kind to explain us how to use Chroma and some examples ?

Congratulations! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278811#p278811 Sat, 05 Apr 2025 00:35:14 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278811#p278811
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278813#p278813
Reading comments like yours helps encourage us all to delve deeper into the topic of AI.
Thank you and congratulations.]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278813#p278813 Sat, 05 Apr 2025 08:36:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278813#p278813
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278825#p278825

Que versión de oLlama estas usando? y que configuración de maquina tienes para lograr el objetivo? con la configuración de maquina que tienes, responde de manera rápida?

Gracias de antemano por la respuesta.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278825#p278825 Sat, 05 Apr 2025 11:05:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278825#p278825
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278826#p278826 thank you for the kind words.
It's not so easy for me – I'm a beginner – to explain this here, as I don't fully understand it myself yet.
But I have documented all the points.

I think, in principle, this one Python function is sufficient.

Best regards,
Otto

Code: Select all | Expand

meine raglogic.py

nano ~/ollama-rag/ragserver/raglogic.py

import chromadb
from chromadb.utils import embedding_functions
import requests

# Chroma vorbereiten
chroma_client = chromadb.Client()
collection = chroma_client.get_or_create_collection(
    name="hotelwissen",
    embedding_function=embedding_functions.DefaultEmbeddingFunction()
    )


def frage_beantworten(frage: str) -> str:
    result = collection.query(query_texts=[frage], n_results=3)
    kontext = " ".join([doc for doc in result["documents"][0]])

    payload = {
        "model": "mistral",
        "prompt": f"Beantworte folgende Frage basierend auf diesem Kontext:\n\n>
    }

    response = requests.post("http://localhost:11434/api/generate", json=payloa>
    for line in response.iter_lines():
        if line:
            data = line.decode("utf-8")
            if '"response":"' in data:
                return data.split('"response":"')[1].split('"')[0]
    return "Keine Antwort erhalten"

start.sh

cd ~/ollama-rag/ragserver
source venv/bin/activate
uvicorn main:app --host 127.0.0.1 --port 8000

otto-atzwanger@KI-Server:~$ nano ~/ollama-rag/ragserver/raglogic.py
otto-atzwanger@KI-Server:~$ cd ~/ollama-rag/ragserver
source venv/bin/activate
uvicorn main:app --host 127.0.0.1 --port 8000
INFO:     Started server process [6402]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278826#p278826 Sat, 05 Apr 2025 11:21:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278826#p278826
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278827#p278827 I use the following hardware. The responses are really fast. I asked the AI some questions because we want to deploy the systems directly at customer sites, including how it performs when everything is installed in a VM on existing customer systems.

✅ **CPU**: AMD Ryzen 9 7950X (16 cores / 32 threads)
- Ideal for parallel AI inference (e.g., handling multiple hotel queries simultaneously).

✅ **GPU**: RTX 3090 (24 GB VRAM)
- **Large VRAM** suitable for 7B–13B models (e.g., `llama3-70B` in 4-bit quantized format).
- *Tip:* With `mistral`/`llama3`-7B, multiple models can even fit in memory simultaneously.

✅ **RAM**: 64 GB DDR5-6000
- Sufficient for CPU inference in case the GPU is under load.

✅ **SSD**: 2 TB PCIe 4.0
- Fast loading of large models (e.g., `nougat` for invoice recognition).

Since the **RTX 4090 is not available**

Here’s my question to the AI:
File Details
How do you install a VirtualBox for Windows on a Linux PC? I need Windows Server.

Sure, let me walk you through it step by step — so you want to run a virtual machine with Windows Server on a Linux machine (e.g., Ubuntu), perhaps for testing or as an RDP target. Here's the guide:
Best regards,
Otto
File Details
How does it work to install a virtual box for Windows on a Linux PC? I need Windows Server.

Sure, I'll explain it step by step – so you want to run a virtual machine with Windows Server on a Linux computer (e.g., Ubuntu), for testing or as an RDP target. Here's the guide:

🧰 Requirements

A Linux PC with sufficient RAM (at least 8 GB recommended)

Installed Linux operating system (e.g., Ubuntu, Debian, Fedora …)

Windows Server ISO file (e.g., Windows Server 2019, 2022)

VirtualBox + Extension Pack

🔧 Step 1: Install VirtualBox
For Ubuntu/Debian:

bash
Kopieren
Bearbeiten
sudo apt update
sudo apt install virtualbox
For Fedora/RHEL-based:

bash
Kopieren
Bearbeiten
sudo dnf install virtualbox
Alternatively, you can get the latest version directly from Oracle’s website.

🧩 Step 2: Install Extension Pack
The Extension Pack is needed for USB 2.0/3.0, RDP, etc.

Download here: https://www.virtualbox.org/wiki/Downloads

Then install:

bash
Kopieren
Bearbeiten
sudo VBoxManage extpack install <path-to-.vbox-extpack-file>
Or via the GUI: Open VirtualBox → File → Preferences → Extensions.

💿 Step 3: Create a VM for Windows Server

Start VirtualBox

Create new VM:

Name: e.g., WinServer2022

Type: Microsoft Windows

Version: Windows 2022 (64-bit), or depending on ISO

RAM: e.g., 4096 MB (or more, depending on system)

Hard disk: new virtual disk (e.g., 50 GB, VDI, dynamically allocated)

Then: Select VM → Settings → Storage → Insert ISO file as virtual CD/DVD

▶️ Step 4: Install Windows Server

Start the VM

Install Windows Server as you would on a real PC

At the end, activate Windows Server, set up RDP, etc.

🔐 Optional: Set up RDP access to the VM
If you want to access the VM via RDP:

Enable RDP in Windows Server

Set the network mode in VM settings to Bridged Adapter (so the VM gets its own IP address on the network)

Question: What is the minimum requirement for the customer's system to work reasonably well?

Answer: For reasonably smooth operation of a VirtualBox VM with Windows Server (e.g., for testing or RDP access), the host system (i.e., the customer’s Linux PC) should meet at least the following requirements:

✅ Minimum Requirements for Host PC

Component Recommendation for productive use
CPU Quad-core processor, e.g., Intel i5 / AMD Ryzen 5 or better
RAM At least 16 GB (so that 4–8 GB can be allocated to the VM)
Storage SSD with at least 100 GB free, ideally NVMe
GPU (optional) Not required unless for graphics-heavy applications
Network Gigabit LAN or stable Wi-Fi for RDP connections
BIOS/UEFI Virtualization enabled (Intel VT-x / AMD-V)
📦 Virtual Machine Configuration

Resource Minimum (for Windows Server 2019/2022)
RAM (VM) 4 GB (better: 6–8 GB)
CPU (VM) 2 virtual CPUs
HDD (VM) 50–80 GB dynamically allocated
Network Mode Bridged (for LAN-based RDP access)
⚡ What else is important?

SSD is mandatory – HDDs are too slow for virtual systems.

Cooling system: Ensure good airflow for continuous operation.

Power consumption: Mini-PCs (e.g., Intel NUC, Ryzen Mini PCs) are great if quiet and energy-efficient operation is desired.

🧪 Practical Tip
For small companies with 1–2 simultaneous RDP users, a low-cost mini-PC with Ryzen 5, 16 GB RAM, and 1 TB SSD is often sufficient. Windows Server runs stably in VirtualBox on such a system.
]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278827#p278827 Sat, 05 Apr 2025 11:58:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278827#p278827
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Experience Report: Two Months with Our Local AI System :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278834#p278834 There is a large .dbf file containing around 200,000 forum posts. The posts are stored in memo fields and have so far been used for a traditional full-text search.

Now these contents are to be fed into a local RAG system (Retrieval-Augmented Generation).

Each post has been exported as a separate .txt file – one file per post to allow independent processing of the texts.

Planned steps:
Automatic cleanup of the texts:
Removal of HTML markup, BBCode elements

Code: Select all | Expand

([code], <span>, &#40;, etc.)
Saving the cleaned content as plain text files

Transferring the cleaned files into the RAG document folder

Running load_docs.py to index the content using Chroma

I'm really curious to see the quality of the responses and how fast it will work.

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278834#p278834 Sun, 06 Apr 2025 01:28:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45600&p=278834#p278834
<![CDATA[FiveWin for Harbour/xHarbour :: E_mail :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278802#p278802 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278802#p278802 Fri, 04 Apr 2025 13:52:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278802#p278802 <![CDATA[FiveWin for Harbour/xHarbour :: Re: E_mail :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278803#p278803 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278803#p278803 Fri, 04 Apr 2025 13:56:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278803#p278803 <![CDATA[FiveWin for Harbour/xHarbour :: Re: E_mail :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278837#p278837 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278837#p278837 Sun, 06 Apr 2025 02:25:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278837#p278837 <![CDATA[FiveWin for Harbour/xHarbour :: Re: E_mail :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278839#p278839 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278839#p278839 Sun, 06 Apr 2025 02:33:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278839#p278839 <![CDATA[FiveWin for Harbour/xHarbour :: Re: E_mail :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278840#p278840 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278840#p278840 Sun, 06 Apr 2025 03:53:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45599&p=278840#p278840 <![CDATA[FiveWin for Harbour/xHarbour :: Print to PDF :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278816#p278816 Thanks.]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278816#p278816 Sat, 05 Apr 2025 09:04:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278816#p278816 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Print to PDF :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278819#p278819
¿Modo consola xHarbour o xHarbour con fivewin?

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278819#p278819 Sat, 05 Apr 2025 09:17:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278819#p278819
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Print to PDF :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278835#p278835 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278835#p278835 Sun, 06 Apr 2025 02:17:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278835#p278835 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Print to PDF :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278838#p278838 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278838#p278838 Sun, 06 Apr 2025 02:28:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278838#p278838 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Print to PDF :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278842#p278842
http://www.pctoledo.com.br/forum/viewto ... DF#p168603

http://www.pctoledo.com.br/forum/viewto ... =4&t=25918

PDFLIB:

https://pctoledo.websiteseguro.com/foru ... a7#p139205

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278842#p278842 Sun, 06 Apr 2025 09:44:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45603&p=278842#p278842
<![CDATA[FiveWin for Harbour/xHarbour :: ReSyncWhere: agrega registro al final de oRowSet :: Author José]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278830#p278830
Estoy tratando de usar XBrowse con MySQL, y luego de agregar un registro nuevo uso

oQry:ReSyncWhere( 'CLAVE = "' + <la clave> + '"' )
oBrw:RefreshCurrent()

Y efectivamente el registro es incluido en el oRowSet, pero siempre al final de la lista, no respetando la actual columna de orden ni si es ascendente o descendente.

Debe ser algo fácil, pero no lo logro. La idea es no tener que cargar toda la consulta de nuevo.

Me baso en el mensaje en viewtopic.php?p=200956&hilit=loadquery#p200956, pero algo me falta.

Gracias a todos.]]>
no_email@example.com (José) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278830#p278830 Sat, 05 Apr 2025 15:28:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278830#p278830
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ReSyncWhere: agrega registro al final de oRowSet :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278832#p278832 Try with

Code: Select all | Expand

oBrw:SetOrder( <column order> )
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278832#p278832 Sat, 05 Apr 2025 19:05:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278832#p278832
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ReSyncWhere: agrega registro al final de oRowSet :: Reply by José]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278852#p278852
Hola, gracias por tu interés y pronta ayuda.

Aunque no he logrado aún resolver el problema, haciendo pruebas con tu sugerencia me di cuenta que las nuevas filas no asumen la posición correcta cuando aún no he hecho clic en ninguna cabecera de columna para cambiar el orden de visualización.

Por otro lado, si hago clic en cualquier cabecera de columna y cambio el orden, e incluso si luego ordeno por la misma columna de orden inicial, ascendente o descendente, los nuevos registros, uno a uno, sin necesidad de volver a cambiar el orden, sí se posicionan en la fila correcta según el orden actual.

Hice cambios y pruebas, pensando que quizás es porque XBrowse no sabe que está ordenado hasta que ejecuto al menos un oCol:SetOrder, y lo hago en el código fuente; pero aún así, no funciona sino hasta que manualmente hago clic en cabeceras de ordenamiento.

Nota. No he encontrado forma de hacer oBrw:SetOrder, solo oCol:SetOrder.

Creo que me falta algo que se activa al hacer ese clic, pero luego de varias horas probando aún no se qué.

Gracias nuevamente, y quedo atento a cualquier otro ayuda.]]>
no_email@example.com (José) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278852#p278852 Sun, 06 Apr 2025 11:06:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278852#p278852
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ReSyncWhere: agrega registro al final de oRowSet :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278861#p278861
Hola, despues de, como bien dices, hacer el oBrw:aCols[ n ]:SetOrder( .T. ), el .T. no es necesario si el xbrowse al ser definido tiene el lAutosort := .T. o la correspondiente clausula, haces el Refresh() ? ( Prueba haciendo oBrw:GoTop() )]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278861#p278861 Mon, 07 Apr 2025 06:14:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45606&p=278861#p278861
<![CDATA[FiveWin for Harbour/xHarbour :: FW and Wine :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278858#p278858
I have Linux Rosa on my laptop. I am trying to run FW application using Wine emulator. However, I get the message - "Error reading archive...". How can I solve this problem ?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278858#p278858 Mon, 07 Apr 2025 05:24:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278858#p278858
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FW and Wine :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278859#p278859 Check Wine Compatibility
Ensure that the application (FW, which I assume is a Windows-based program) is compatible with Wine. You can search the Wine Application Database (AppDB) online by typing the full name of the "FW application" (e.g., "FileWave" or whatever it stands for) to see if others have successfully run it and what Wine version they used. If you provide the exact name of the FW application, I can search for specifics if needed.
Update Wine
Make sure you’re using the latest version of Wine, as newer versions often fix bugs and improve compatibility. To check and update Wine on Linux Rosa (which is based on ROSA Linux, a Mandriva derivative), open a terminal and run:
sudo urpmi.update -a
sudo urpmi wine
This updates your package sources and installs/upgrades Wine. If you’re using a specific version (e.g., Wine Staging), specify it like sudo urpmi wine-staging.
Install Missing Dependencies
Wine sometimes needs additional libraries to handle Windows applications. Install the 32-bit compatibility libraries, as many Windows apps are 32-bit:
sudo urpmi libwine
Also, consider installing winetricks, a helper script for Wine:
sudo urpmi winetricks
Then run winetricks and install common dependencies like corefonts, dotnet, or vcrun (e.g., winetricks vcrun2019), depending on what the FW application might need. Check the app’s documentation or website for system requirements.
Verify the Installer/File Integrity
The error might indicate a corrupted executable or archive. If you downloaded the FW app installer, verify its integrity (e.g., using an MD5 or SHA checksum if provided by the source). Re-download it if necessary. If it’s an archive (e.g., .zip, .rar), extract it manually using a tool like unzip or unrar on Linux Rosa before running it with Wine:
unzip filename.zip
wine setup.exe
Run Wine with Debugging Output
To get more details about the error, run the application in Wine with verbose output:
WINEDEBUG=+err,+warn wine path/to/your/FWapp.exe
Look at the terminal output for clues—terms like “missing DLL” or “access denied” might point to specific fixes (e.g., installing a DLL via winetricks or adjusting permissions).
Check File Permissions
Ensure the application files have proper permissions. In the terminal, navigate to the folder containing the FW app and run:
chmod +x FWapp.exe
ls -l
If the file isn’t executable or readable, adjust it with chmod or chown as needed.
Use a Fresh Wine Prefix
Wine uses a “prefix” (like a virtual Windows environment). A corrupted prefix might cause issues. Create a new one:
WINEPREFIX=~/.wine_new winecfg
Then run the app in this prefix:
WINEPREFIX=~/.wine_new wine path/to/FWapp.exe
Alternative: Specify Full Path
If you’re running wine FWapp.exe from a directory Wine can’t access properly, use the full path instead:
wine /home/yourusername/path/to/FWapp.exe
If none of these work, could you clarify what "FW" stands for (e.g., FreeCAD, FileWave, or something else) and share the exact command you’re using? That’ll help me narrow it down further. Also, let me know if the error message has more details—I can refine the solution based on that!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278859#p278859 Mon, 07 Apr 2025 06:00:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278859#p278859
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FW and Wine :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278860#p278860
Which Wine to install 32 or 64 ?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278860#p278860 Mon, 07 Apr 2025 06:09:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278860#p278860
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FW and Wine :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278864#p278864 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278864#p278864 Mon, 07 Apr 2025 07:18:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278864#p278864 <![CDATA[FiveWin for Harbour/xHarbour :: Re: FW and Wine :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278866#p278866
https://forums.linuxmint.com/viewtopic.php?t=238941

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278866#p278866 Mon, 07 Apr 2025 08:05:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45610&p=278866#p278866
<![CDATA[FiveWin for Harbour/xHarbour :: How to use HB_DateTimeToSeconds() function? :: Author richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278875#p278875 I use this HB_DateTimeToSeconds() function and get error below:

Compiling...
Harbour 3.2.0dev (r2404101339)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'testfV.prg' and generating preprocessed output to 'testfV.ppo'...
Lines 5063, Functions/Procedures 2
Generating C source output to 'testfV.c'... Done.
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
testfV.c:
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_HB_DATETIMETOSECONDS' referenced from D:\FWH2402\SAMPLES\TESTFV.OBJ
Error: Unable to perform link
* Linking errors *]]>
no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278875#p278875 Tue, 08 Apr 2025 01:19:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278875#p278875
<![CDATA[FiveWin for Harbour/xHarbour :: Re: How to use HB_DateTimeToSeconds() function? :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278876#p278876 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278876#p278876 Tue, 08 Apr 2025 02:07:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278876#p278876 <![CDATA[FiveWin for Harbour/xHarbour :: Re: How to use HB_DateTimeToSeconds() function? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278877#p278877
Please copy testfv.prg source code here, thanks]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278877#p278877 Tue, 08 Apr 2025 02:16:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278877#p278877
<![CDATA[FiveWin for Harbour/xHarbour :: Re: How to use HB_DateTimeToSeconds() function? :: Reply by MaxP]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278879#p278879
Could this feature be useful to you?

Code: Select all | Expand

SecondsFrom1970()

#pragma BEGINDUMP

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include "hbapi.h"

HB_FUNC( SECONDSFROM1970 )

{
        unsigned long count;
        time_t *tmppointer=NULL;
        
        count = time( tmppointer ) ;
        
        hb_retnl( count ) ;
}

#pragma ENDDUMP
Massimo]]>
no_email@example.com (MaxP) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278879#p278879 Tue, 08 Apr 2025 03:48:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45612&p=278879#p278879
<![CDATA[FiveWin for Harbour/xHarbour :: Windows 10/11 Progressbar :: Author Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278841#p278841
i like to have A Windows 10/11 Progressbar from Windows Shell API, specifically the IProgressDialog interface
Image

but i have no Idea how to use Microsoft.WindowsAPICodePack or use the Windows SDK for it ?]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278841#p278841 Sun, 06 Apr 2025 06:43:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278841#p278841
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278848#p278848
Here you have a working example. To build it go to FWH\samples and modify buildh32.bat this way:

cl.exe -nologo -c -O2 -W4 -wd4127 /TP /I%hdir%\include %1.c

then do: buildh32.bat jimmy

Code: Select all | Expand

#include "FiveWin.ch"

FUNCTION Main()

   Test()

RETURN NIL

#pragma BEGINDUMP

#include <windows.h>
#include <shlobj.h>
#include <hbapi.h>

void test( void )
{
    CoInitialize(NULL);

    IProgressDialog* pProgress;
    HRESULT hr = CoCreateInstance(CLSID_ProgressDialog, NULL, CLSCTX_INPROC_SERVER, IID_IProgressDialog, (void**)&pProgress);

    if (SUCCEEDED(hr))
    {
        pProgress->SetTitle(L"Copying file...");
        pProgress->StartProgressDialog(NULL, NULL, PROGDLG_NORMAL, NULL);

        for (ULONG i = 0; i <= 100; i++)
        {
            pProgress->SetProgress(i, 100);
            Sleep(50);
        }

        pProgress->StopProgressDialog();
        pProgress->Release();
    }

    CoUninitialize();
}

HB_FUNC( TEST )
{
   test();
}

#pragma ENDDUMP    
Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278848#p278848 Sun, 06 Apr 2025 10:44:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278848#p278848
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278856#p278856
Antonio Linares wrote: Sun Apr 06, 2025 4:44 pm Here you have a working example.
To build it go to FWH\samples and modify buildh32.bat this way:

cl.exe -nologo -c -O2 -W4 -wd4127 /TP /I%hdir%\include %1.c

then do: buildh32.bat jimmy
THX for the Sample.

but i have problem to use CL.EXE as i do´nt have a File with that Name
c:\fwh64\samples\Iprogress>cl.exe -nologo -c -O2 -W4 -wd4127 /TP /I\include pprogres.c
Der Befehl "cl.exe" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
i also have NO Folder called /TP/
Can you please give me a Tip what is missing ?]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278856#p278856 Sun, 06 Apr 2025 23:18:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278856#p278856
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278857#p278857
You have to install Visual Studio Community 2022 with C/C++ support.

https://visualstudio.microsoft.com]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278857#p278857 Mon, 07 Apr 2025 00:58:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278857#p278857
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278872#p278872
Antonio Linares wrote: Mon Apr 07, 2025 6:58 am cl.exe is the C/C++ compiler for Visual Studio.

You have to install Visual Studio Community 2022 with C/C++ support.

https://visualstudio.microsoft.com
i have Visual Studio Community 2022 installed, but there is NO CL.EXE on my PC (search using Everything) ?

do i need a newer Version of Visual Studio Community 2022 and change my hole Environment ?]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278872#p278872 Mon, 07 Apr 2025 23:14:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278872#p278872
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278873#p278873
When you install it, there is an option to install C/C++ support.

You may run the installer again and select it. No need to uninstall it.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278873#p278873 Tue, 08 Apr 2025 00:02:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278873#p278873
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278880#p278880 have run Installer again and found Option for C++ Support

now i try to run it and got

Code: Select all | Expand

c:\fwh64\samples\Iprogress>"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64\cl.exe"  -nologo -c -O2 -W4 -wd4127 /TP /I%hdir%\include pprogres.c pprogres.c
c:\harbour64\include\hbdefs.h(50): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "stdarg.h": No such file or directory

c:\fwh64\samples\Iprogress>
so i have Problem with Include hbdefs.H File :(
does it work using 64 Bit or do i need to use 32 Bit Environment ?

THX for Help]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278880#p278880 Tue, 08 Apr 2025 04:26:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278880#p278880
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278881#p278881
I just built it using FWH\samples\buildh64.bat and adding the flag -TP to cl.exe and worked fine on first try :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278881#p278881 Tue, 08 Apr 2025 04:58:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278881#p278881
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278882#p278882
Antonio Linares wrote: Tue Apr 08, 2025 10:58 am I just built it using FWH\samples\buildh64.bat and adding the flag -TP to cl.exe and worked fine on first try :)
can you please tell me WHERE (which line) you add Flag -TP in buildh64.bat ?]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278882#p278882 Tue, 08 Apr 2025 05:55:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278882#p278882
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278883#p278883 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278883#p278883 Tue, 08 Apr 2025 06:06:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278883#p278883 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278884#p278884
i have try it in this line

Code: Select all | Expand

cl -TP -W3 -O2 -c -I%hdir%\include -D_WIN64 -D__FLAT__ -I%fwdir%\include -I-I"%ProgramFiles(x86)%\Windows Kits"\10\Include\10.0.18362.0\ucrt %1.c
and got missing
[vcvarsall.bat] Environment initialized for: 'x64'
Compiling...
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'pprogres.prg' and generating preprocessed output to 'pprogres.ppo'...
Lines 5061, Functions/Procedures 1
Generating C source output to 'pprogres.c'... Done.
Microsoft (R) C/C++-Optimierungscompiler Version 19.43.34809 für x64
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

pprogres.c
c:\harbour64\include\hbdefs.h(51): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "stdio.h": No such file or directory
LINK : fatal error LNK1181: Eingabedatei "pprogres.obj" kann nicht geöffnet werden.
* Linking errors *

c:\fwh64\samples\Iprogress>
do i have wrong "Windows KIts" ?]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278884#p278884 Tue, 08 Apr 2025 06:11:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278884#p278884
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278885#p278885
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.9.6
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

next:

cl -TP -W3 -O2 -c -Ic:\harbour\include -D_WIN64 -D__FLAT__ -Ic:\fwh\include -I"%ProgramFiles(x86)%\Windows Kits"\10\Include\10.0.18362.0\ucrt jimmy.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.39.33523 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

jimmy.c]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278885#p278885 Tue, 08 Apr 2025 06:26:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278885#p278885
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278887#p278887
c:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt\stdio.h

c:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278887#p278887 Tue, 08 Apr 2025 06:32:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278887#p278887
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278888#p278888 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278888#p278888 Tue, 08 Apr 2025 06:34:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278888#p278888 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278891#p278891 THX for your great Help

i got now a Object using

Code: Select all | Expand

call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
cl -TP -W3 -O2 -c -Ic:\harbour\include -D_WIN64 -D__FLAT__ -Ic:\fwh\include -I"%ProgramFiles(x86)%\Windows Kits"\10\Include\10.0.22621.0\ucrt\ pprogres.C
as my Include File are at "C:\Program Files (x86)\Windows Kits"\10\Include\10.0.22621.0\ucrt\stdio.h

but how to LINK into *.EXE ?
I try to build MSVC.TMP with all Fw-Libs and this Syntax

Code: Select all | Expand

link @msvc.tmp /nologo /subsystem:windows /NODEFAULTLIB:libucrt /NODEFAULTLIB:msvcrt
but it does not work, still not able to build your Sample :(]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278891#p278891 Tue, 08 Apr 2025 09:40:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278891#p278891
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278892#p278892
what error do you get ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278892#p278892 Tue, 08 Apr 2025 09:46:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278892#p278892
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Windows 10/11 Progressbar :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278897#p278897
GOT IT working :)
THX for help]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278897#p278897 Tue, 08 Apr 2025 12:49:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45607&p=278897#p278897
<![CDATA[FiveWin for Harbour/xHarbour :: Fivedit - Download :: Author cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278904#p278904 From now on, the download can be done at the following URL:

https://github.com/cristobalnavarro/Tes ... ivedit.zip

Please report any issues you may encounter.
Your browser may prompt you with a "Suspicious Download" message. Please ignore this message because the .zip contains .exe and .dll files.
Regards]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278904#p278904 Tue, 08 Apr 2025 16:35:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278904#p278904
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Fivedit - Download :: Reply by ssbbs]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278907#p278907 :D :D]]> no_email@example.com (ssbbs) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278907#p278907 Tue, 08 Apr 2025 19:28:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278907#p278907 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Fivedit - Download :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278909#p278909 ]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278909#p278909 Wed, 09 Apr 2025 03:21:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45615&p=278909#p278909 <![CDATA[FiveWin for Harbour/xHarbour :: Re: XBrowse 16.04 : Gets in Header Bar :: Reply by damianodec]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278908#p278908 if I press the "clear filter" button the value into the get header remains there.
How can I clean the get fields when I press "clear filter" ?]]>
no_email@example.com (damianodec) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278908#p278908 Wed, 09 Apr 2025 02:43:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278908#p278908
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBrowse 16.04 : Gets in Header Bar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278910#p278910
Please provide a screenshot, thanks!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278910#p278910 Wed, 09 Apr 2025 03:23:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278910#p278910
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBrowse 16.04 : Gets in Header Bar :: Reply by damianodec]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278911#p278911 Image

then I press "Clear Filter" Button but the value "simp" is still in the get header
Image

How can I clear the field?]]>
no_email@example.com (damianodec) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278911#p278911 Wed, 09 Apr 2025 03:56:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278911#p278911
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBrowse 16.04 : Gets in Header Bar :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278912#p278912

Code: Select all | Expand

   @ 60,250 BTNBMP PROMPT "Clear Filter" ;
      SIZE 100,40 PIXEL OF oDlg FLAT ;
      ACTION ( oBrw:cAlias )->( DBCLEARFILTER(), oBrw:Refresh(), ClearFilter( oBrw ), oBrw:SetFocus() )   // Look

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFontB, oBoldB

return nil

//----------------------------------------------------------------------------//
// New code
// Function clean barget
//----------------------------------------------------------------------------//

static function ClearFilter( oBrw )

   local n

   for n := 1 to Len( oBrw:aCols )
      WITH OBJECT oBrw:aCols[ n ]
         if FieldType( n ) != 'L'
            :uBarGetVal    := uValBlank( fieldGet( n ) )
            if FieldType( n ) == 'N'
               :cBarGetPic := NumPict( FieldLen( n ), FieldDec( n ) )
            endif
         endif
         if hb_IsObject( :oBarGet )
            :oBarGet:Refresh()
         endif
      END
   next
Return nil

//----------------------------------------------------------------------------//
Please note that the functions used for applying and removing filters depend on the RDD (data source) you are using in xbrowse, and therefore the initialization of the oGetBar will also be different. This example is created using a DBF.
The important thing to clean the values ​​in the barget is to initialize the data :uBarGetVal of all columns. Their initial value, as I mentioned before, will depend on the RDD used in Xbrowse.]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278912#p278912 Wed, 09 Apr 2025 04:25:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278912#p278912
<![CDATA[FiveWin for Harbour/xHarbour :: Re: XBrowse 16.04 : Gets in Header Bar :: Reply by damianodec]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278914#p278914 Thank you]]> no_email@example.com (damianodec) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278914#p278914 Wed, 09 Apr 2025 06:35:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=32347&p=278914#p278914 <![CDATA[FiveWin for Harbour/xHarbour :: Problem with numeric fields and FWH 25.01 :: Author vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278448#p278448 IF I run the code bellow with my previous version of FWH. I can see the value 3.3732. But if i run this same code with the new version of FWH, the value showed is 3.37. Do you know why ?

Code: Select all | Expand

function Main()
LOCAL oRs,oCn,oError,oQry,cQryMat

   SET DATE BRIT
   SET CENTURY ON
   
   CursorWait()

   oCn := Maria_Connect( aStr[1] )

   oRs := oCn:Query("SELECT nfiscal,cmat,qte,qtedig FROM consumo WHERE nfiscal LIKE '000005829%'")
   cQryMat := ""
   DO WHILE .NOT. oRs:Eof()
      cQryMat += "'"+oRs:cmat+"',"
      ? oRs:qte,oRs:qtedig,oRs:cmat
      oRs:Skip()
   ENDDO
   oRs:GoTop()
   
RETURN NIL
]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278448#p278448 Wed, 19 Mar 2025 05:12:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278448#p278448
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278469#p278469
Are you using SET DECIMALS TO 4 ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278469#p278469 Wed, 19 Mar 2025 23:19:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278469#p278469
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278478#p278478 No I'm not setting any value to SET DECIMAL. However, is important note that the problem is only happening with decimal values from Mysql rowset/queries. IF I try something like:

Code: Select all | Expand

function Main()
LOCAL nVal1,nVal2,nRes

   SET DATE BRIT
   SET CENTURY ON
   
   nVal1 := 2.3432
   nVal2 := 2.3923
   nRes := nVal1 * nVal2 
   ? nRes
   
RETURN NIL
Everything is fine.]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278478#p278478 Thu, 20 Mar 2025 04:44:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278478#p278478
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278483#p278483

Code: Select all | Expand

oRs := oCn:Query("SELECT nfiscal,cmat,qte,qtedig,valor FROM consumo WHERE nfiscal LIKE '00023332601%'")
? oRs:qte,oRs:valor,oRs:qte*oRs:valor
In FWH2311 shows this:
Image

In FWH2501 shows this:
Image]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278483#p278483 Thu, 20 Mar 2025 06:55:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278483#p278483
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278623#p278623 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278623#p278623 Thu, 27 Mar 2025 06:11:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278623#p278623 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278643#p278643
What is previous FWH version that you were using ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278643#p278643 Thu, 27 Mar 2025 13:39:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278643#p278643
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278647#p278647 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278647#p278647 Thu, 27 Mar 2025 17:08:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278647#p278647 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278650#p278650
I need you to help me to build a small example that I can run here and that generates the error.

Mr. Rao continues at the hospital, so we have to fix it ourselves.

We need to identify the exact FWH version where such error started so we can review the source code diferences.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278650#p278650 Thu, 27 Mar 2025 22:24:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278650#p278650
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278657#p278657
IF you have any table in your mysql server where you have numeric fields with more than 2 decimals. Just run the code bellow and you'll see the problem.

Code: Select all | Expand

oRs := oCn:Query("SELECT nfiscal,cmat,qte,qtedig,valor FROM consumo WHERE nfiscal LIKE '00023332601%'")
? oRs:qte,oRs:valor,oRs:qte*oRs:valor
In my case QTE,QTEDIG and VALOR are numeric fields with more than 2 decimals

Mr Rao told me this:
1) Good morning your point about the numeric fields is correct This is an unfortunate bug I'll try to fix it as soon as I can
]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278657#p278657 Fri, 28 Mar 2025 04:45:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278657#p278657
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278659#p278659
vilian wrote: Fri Mar 28, 2025 10:45 am Dear Antonio,

IF you have any table in your mysql server where you have numeric fields with more than 2 decimals. Just run the code bellow and you'll see the problem.

Code: Select all | Expand

oRs := oCn:Query("SELECT nfiscal,cmat,qte,qtedig,valor FROM consumo WHERE nfiscal LIKE '00023332601%'")
? oRs:qte,oRs:valor,oRs:qte*oRs:valor
In my case QTE,QTEDIG and VALOR are numeric fields with more than 2 decimals

Mr Rao told me this:
1) Good morning your point about the numeric fields is correct This is an unfortunate bug I'll try to fix it as soon as I can
I try this

Image
Perhaps you have a round number ?
can I have a small test to try , perhaps I try to search a solution]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278659#p278659 Fri, 28 Mar 2025 07:19:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278659#p278659
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278661#p278661 The problem is happening only with numeric fields from a rowset. With variables everything is ok, like i said before.]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278661#p278661 Fri, 28 Mar 2025 08:38:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278661#p278661 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278666#p278666 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278666#p278666 Fri, 28 Mar 2025 11:27:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278666#p278666 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278667#p278667 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278667#p278667 Fri, 28 Mar 2025 12:00:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278667#p278667 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278671#p278671 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278671#p278671 Fri, 28 Mar 2025 13:12:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278671#p278671 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278672#p278672
The type of the fields is:

QTE DECIMAL(11,3)
VALOR DECIMAL(12,4)]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278672#p278672 Fri, 28 Mar 2025 13:17:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278672#p278672
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278689#p278689 I've reviewed the latest changes made to classes that may affect this issue, and I haven't seen any significant changes that could alter the behavior compared to previous versions.
Can you provide me with a .sql file that can create the table (including the structure you use) and with some example rows?
Thanks]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278689#p278689 Sat, 29 Mar 2025 18:51:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278689#p278689
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278695#p278695
vilian wrote: Fri Mar 28, 2025 7:17 pm Dear Cristobal,

The type of the fields is:

QTE DECIMAL(11,3)
VALOR DECIMAL(12,4)
I saw many topic on web with problems on MariaDb and Decimals


one man give me this link perhaps can help you
https://docs.oracle.com/javase/8/docs/a ... ormat.html
https://mariadb.com/kb/en/decimal/]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278695#p278695 Sun, 30 Mar 2025 11:36:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278695#p278695
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278697#p278697
vilian wrote: Wed Mar 19, 2025 11:12 am Hi Guys,
IF I run the code bellow with my previous version of FWH. I can see the value 3.3732. But if i run this same code with the new version of FWH, the value showed is 3.37. Do you know why ?

Code: Select all | Expand

function Main()
LOCAL oRs,oCn,oError,oQry,cQryMat

   SET DATE BRIT
   SET CENTURY ON
   
   CursorWait()

   oCn := Maria_Connect( aStr[1] )

   oRs := oCn:Query("SELECT nfiscal,cmat,qte,qtedig FROM consumo WHERE nfiscal LIKE '000005829%'")
   cQryMat := ""
   DO WHILE .NOT. oRs:Eof()
      cQryMat += "'"+oRs:cmat+"',"
      ? oRs:qte,oRs:qtedig,oRs:cmat
      oRs:Skip()
   ENDDO
   oRs:GoTop()
   
RETURN NIL
Dear Silvio
We'll have to try to find out why it worked correctly with the previous version ( 23.11 ), but not with the current one, right?]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278697#p278697 Sun, 30 Mar 2025 12:42:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278697#p278697
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278706#p278706 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278706#p278706 Mon, 31 Mar 2025 04:42:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278706#p278706 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278924#p278924 I really wanted update my FWH version to try webview2, but with this problem, I can't do it :(]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278924#p278924 Thu, 10 Apr 2025 06:33:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278924#p278924 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278927#p278927 viewtopic.php?p=278689#p278689]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278927#p278927 Thu, 10 Apr 2025 08:36:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278927#p278927 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278931#p278931 no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278931#p278931 Thu, 10 Apr 2025 11:33:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278931#p278931 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278933#p278933 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278933#p278933 Thu, 10 Apr 2025 11:48:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278933#p278933 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278935#p278935 I sent it by email to Cristobal.]]> no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278935#p278935 Thu, 10 Apr 2025 12:30:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278935#p278935 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Problem with numeric fields and FWH 25.01 :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278937#p278937 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278937#p278937 Thu, 10 Apr 2025 13:23:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45548&p=278937#p278937 <![CDATA[FiveWin for Harbour/xHarbour :: msgbar item :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278954#p278954
How can I hide/show the msgbar item ? If I write like this

Code: Select all | Expand

oWnd:oMsgBar:aItems[1]:Hide()
, I get an error - "Message not found: TMSGITEM:HIDE"]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278954#p278954 Sat, 12 Apr 2025 03:14:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278954#p278954
<![CDATA[FiveWin for Harbour/xHarbour :: Re: msgbar item :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278955#p278955 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278955#p278955 Sat, 12 Apr 2025 04:34:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278955#p278955 <![CDATA[FiveWin for Harbour/xHarbour :: Re: msgbar item :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278957#p278957 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278957#p278957 Sat, 12 Apr 2025 05:33:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278957#p278957 <![CDATA[FiveWin for Harbour/xHarbour :: Re: msgbar item :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278958#p278958 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278958#p278958 Sat, 12 Apr 2025 06:35:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45619&p=278958#p278958 <![CDATA[FiveWin for Harbour/xHarbour :: String functions UTF8 compatible :: Author marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278949#p278949 in a program I'm trying to replace all the string functions with the new UTF8 functions to be compatible with the RUSSIAN alphabet (cirillic).
FW_At() seemed to me to be of this type but in reality it returns me almost double values ​​with Russian apart from numbers, spaces, punctuation etc.
I also tried HB_At() but it gives the same result.
Where can I find documentation on all these UTF8 functions and also all the new functions and classes of these last years?
thanks for the help.
Marzio

some functions found:
FW_ISUTF8, UTF8TOANSI, ANSITOUTF8, FW_UTF8LEN, UTF8LEN, FW_UTF8LEFT, FW_UTF8SUBSTR, FW_AT, FW_GETCLIPBOARDDATA,
FW_UTF8STUFF, FW_UTF8TOSTR, FW_STRTOUTF8, FW_UTF8TOOEM, FW_OEMTOUTF8 ispureAnsiAsWide(), UTF16toANSI(), UTF16toSTR8(), GETWINDOWTEXT(), MGETLINE(), MGETREPLACE(), GETWINTXTLENGHT(), WINUPPER(), WINLOWER(), GETTEXTWIDTH(), GETTEXTHEIGHT()]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278949#p278949 Fri, 11 Apr 2025 13:54:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278949#p278949
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278951#p278951 https://www.kresin.ru/en/hrbfaq.html#_Doc5
https://github.com/Petewg/harbour-core/wiki/Strings]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278951#p278951 Fri, 11 Apr 2025 14:33:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278951#p278951
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278960#p278960 very useful and interesting to have all the functions for harbour.
Is there something similar for fivewin?
thanks]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278960#p278960 Sat, 12 Apr 2025 10:06:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278960#p278960
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278962#p278962
> Is there something similar for fivewin?

Please run this from FWH\samples:

buildh.bat fwfuncs]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278962#p278962 Sat, 12 Apr 2025 10:49:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278962#p278962
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278964#p278964 i have microsoft visual c compiler. i have found tlib.exe and tlib64.exe and loaded in the bcc77 folder.
i have modify ReadFuncs() in fwfuncs.prg to use theese files but i don't obtain the fiveh.lst
WaitRun( cBccFolder + "bin\tlib.exe ..\lib\fiveh64.lib, fiveh.lst" )
i have tried also tlib64.exe
i see a flash of two windows and then they disappear
i have also tried lib.exe di msvc with the same result.

from the command prompt with fiveh64.lib copied in the same directory bin:
d:\WinClip\bcc77\bin>tlib64.exe fiveh64.lib, fiveh.lst
TLIB64 6.4 Copyright (c) 1987-2014 Embarcadero Technologies, Inc.
Warning: no changes required; library will not be modified

what is the problem?]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278964#p278964 Sat, 12 Apr 2025 21:13:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278964#p278964
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278965#p278965
Please copy these two files to FWH\samples

fiveh.lst

Code: Select all | Expand

Publics by module

activex 	size = 6872
	_HB_FUN_TACTIVEX                  _HB_FUN_THACTIVEX

adofuncs	size = 49883
	_HB_FUN_ADOCREATECOLSQL           _HB_FUN_ADODEFAULT
	_HB_FUN_ADONULL                   _HB_FUN_ADOROLLUPTREE
	_HB_FUN_ADOROLLUPTREEBROWSE       _HB_FUN_DBMSNUM
	_HB_FUN_FIELDTYPEADOTODBF         _HB_FUN_FWADOAPPENDBLANK
	_HB_FUN_FWADOCREATETABLE          _HB_FUN_FWADODELRECORD
	_HB_FUN_FWADOFIELDDEC             _HB_FUN_FWADOFIELDLEN
	_HB_FUN_FWADOFIELDSIZE            _HB_FUN_FWADOFIELDSTRUCT
	_HB_FUN_FWADOFIELDTYPE            _HB_FUN_FWADOLOADRECORD
	_HB_FUN_FWADOMEMOSIZETHRESHOLD    _HB_FUN_FWADOSAVERECORD
	_HB_FUN_FWADOSTRUCT               _HB_FUN_FW_ACEVER
	_HB_FUN_FW_ADOADDCOL              _HB_FUN_FW_ADOADDMODICOLSQL
	_HB_FUN_FW_ADOAPPLYPARAMS         _HB_FUN_FW_ADOCATALOGS
	_HB_FUN_FW_ADOCONNECTIONSTRING    _HB_FUN_FW_ADOCREATEINDEX
	_HB_FUN_FW_ADOCREATETABLESQL      _HB_FUN_FW_ADOCURRENTDB
	_HB_FUN_FW_ADODATETIME            _HB_FUN_FW_ADODROPINDEX
	_HB_FUN_FW_ADOEXPORTTODBF         _HB_FUN_FW_ADOFIELDUPDATEABLE
	_HB_FUN_FW_ADOIMPORTFROMDBF       _HB_FUN_FW_ADOINDEXES
	_HB_FUN_FW_ADOMODIFYCOL           _HB_FUN_FW_ADOPIVOTARRAY
	_HB_FUN_FW_ADOPIVOTRS             _HB_FUN_FW_ADOPRIMARYKEY
	_HB_FUN_FW_ADOQUERYRESULT         _HB_FUN_FW_ADORECONNECT
	_HB_FUN_FW_ADORSTOCSV             _HB_FUN_FW_ADORSTOHTML
	_HB_FUN_FW_ADORSTOTEXT            _HB_FUN_FW_ADOSELECTDB
	_HB_FUN_FW_ADOTABLEEXISTS         _HB_FUN_FW_ADOTABLES
	_HB_FUN_FW_ADOTOEXCEL             _HB_FUN_FW_ADOUNQUOTE
	_HB_FUN_FW_ARRAYASRECORDSET       _HB_FUN_FW_COMPACTMDB
	_HB_FUN_FW_CREATEMDB              _HB_FUN_FW_DATETOADO
	_HB_FUN_FW_DATETOSQL              _HB_FUN_FW_FILTER2WHERE
	_HB_FUN_FW_FILTERDBF2ADO          _HB_FUN_FW_GETADOERROR
	_HB_FUN_FW_MSSQLDB                _HB_FUN_FW_MSSQL_BACKUP
	_HB_FUN_FW_MSSQL_RESTORE          _HB_FUN_FW_ONADOERROR
	_HB_FUN_FW_OPENADOCONNECTION      _HB_FUN_FW_OPENADOEXCELBOOK
	_HB_FUN_FW_OPENADOEXCELSHEET      _HB_FUN_FW_OPENRECORDSET
	_HB_FUN_FW_OPENTRECSET            _HB_FUN_FW_QUOTEDCOLSQL
	_HB_FUN_FW_RDBMSNAME              _HB_FUN_FW_RECSETHEADERS
	_HB_FUN_FW_REOPENRECORDSET        _HB_FUN_FW_SHOWADOERROR
	_HB_FUN_FW_VALTOSQL               _HB_FUN_MSSQL_BULKIMPORTDBF
	_HB_FUN_RSGETROWS                 _HB_FUN_RSTOHASH
	_HB_FUN_RSTOJSON                  _HB_FUN_TADOCOMMAND
	_HB_FUN_TRM                       _HB_FUN_UTYPETOBLANK

alert   	size = 3212
	_HB_FUN_ALERT                   

autoget 	size = 11251
	_HB_FUN_TAUTOGET                  _HB_FUN_TGETLIST

bar     	size = 25647
	_HB_FUN_GRADIENT2000              _HB_FUN_TBAR

bartabs 	size = 2684
	_HB_FUN_TBARTABS                

bitmap  	size = 16799
	_HB_FUN_PALBMPFREE                _HB_FUN_PALBMPNEW
	_HB_FUN_TBITMAP                 

block   	size = 1228
	_HB_FUN_TBLOCK                  

browse  	size = 4408
	_HB_FUN_BROWSE                    _HB_FUN_REPORT

brush   	size = 13063
	_HB_FUN_GRADIENTBRUSH             _HB_FUN_RESIZEBITMAP
	_HB_FUN_TBRUSH                  

brushex 	size = 1312
	_HB_FUN_TBRUSHEX                

btnbmp  	size = 36407
	_HB_FUN_TBTNBMP                 

btnflat 	size = 8231
	_HB_FUN_TBTNFLAT                

button  	size = 6912
	_HB_FUN_TBUTTON                 

buttonb 	size = 6416
	_HB_FUN_TBUTTONBMP              

c5lib   	size = 8935
	_HB_FUN_AC5BOX                    _HB_FUN_ASPLIT
	_HB_FUN_C5BOX                     _HB_FUN_COLORES
	_HB_FUN_CREAAROWRIGHT             _HB_FUN_CREABITMAPEX
	_HB_FUN_CREABITMAPEX2             _HB_FUN_CREAVGRIP
	_HB_FUN_DLGCHANGESIZE             _HB_FUN_DRAWMTEXT
	_HB_FUN_FINDCHAR                  _HB_FUN_FONTUNDER
	_HB_FUN_GENIMAGELIST              _HB_FUN_GETBITMAP16
	_HB_FUN_GETBITMAPSIZE             _HB_FUN_GETDEFFONT
	_HB_FUN_GETORIGINALORDEN          _HB_FUN_ICON2BMP
	_HB_FUN_LFN2SFNEX                 _HB_FUN_LOADACCESOS
	_HB_FUN_LOADICONEX                _HB_FUN_LOADIMAGEEX
	_HB_FUN_LOADIMAGEEX2              _HB_FUN_LTHEMES
	_HB_FUN_MEMOWRITEX                _HB_FUN_RESTORESCREENFROMBMP
	_HB_FUN_SAVESCREENASBMP           _HB_FUN_STRCOUNT
	_HB_FUN_XADRIVES                  _HB_FUN___MIRROW

c5tooltp	size = 11531
	_HB_FUN_TC5TOOLTIP              

calinfo 	size = 6456
	_HB_FUN_TCALINFO                

callstac	size = 2968
	_HB_FUN_CCALLSTACK                _HB_FUN_SHOWCALLSTACK
	_HB_FUN_STACKVARS               

chatgpt 	size = 2760
	_HB_FUN_TCHATGPT                

checkbox	size = 7160
	_HB_FUN_TCHECKBOX               

checkres	size = 1482
	DelResource                       _HB_FUN_CHECKRES
	_HB_FUN_FWADDRESOURCE             _HB_FUN_FWDELRESOURCE
	_HB_FUN_SETRESDEBUG               _RegisterResource

clipbrd 	size = 4304
	_HB_FUN_GETCLIPCONTENTFORMAT      _HB_FUN_TCLIPBOARD

clipmore	size = 492
	_HB_FUN_RLNEW                     _HB_FUN_RLQUERY

combobox	size = 20863
	_HB_FUN_SETCBXCOLORFOCUS          _HB_FUN_TCOMBOBOX
	_HB_FUN_TDRAWITEMSTRUCT         

combom  	size = 13759
	_HB_FUN_TCOMBOMETRO             

control 	size = 30079
	_HB_FUN_GETGRIDSIZE               _HB_FUN_SETGRIDSIZE
	_HB_FUN_TCONTROL                

crcard  	size = 2044
	_HB_FUN_FW_VALIDCREDITCARD      

cursor  	size = 3512
	_HB_FUN_TCURSOR                 

database	size = 39523
	_HB_FUN_TDATABASE               

datarow 	size = 47499
	_HB_FUN_BTNCHOOSECOLOR            _HB_FUN_EXTRACTBMP
	_HB_FUN_FW_COPYRECORD             _HB_FUN_FW_EDITHASH
	_HB_FUN_FW_PASTERECORD            _HB_FUN_FW_RECORD
	_HB_FUN_MAKEBMPARRAY              _HB_FUN_TDATAROW
	_HB_FUN_XEDIT                   

dbcombo 	size = 9040
	_HB_FUN_TDBCOMBO                

dbffunc1	size = 2948
	_HB_FUN_DBF_APPLYPARAMS           _HB_FUN_DBF_NEEDSLOCK
	_HB_FUN_DBROLLBACK                _HB_FUN_DBROLLBACKALL
	_HB_FUN_FIELDINEXPR               _HB_FUN_FW_DBFTOARRAY
	_HB_FUN_FW_DBFTOHASH              _HB_FUN_FW_DBFTOHTML
	_HB_FUN_FW_DBFTOJSON              _HB_FUN_ORDERTAGINFO

dbffunc2	size = 16256
	_HB_FUN_CONVERTTYPE               _HB_FUN_DBFAPPEND
	_HB_FUN_FW_ARRAYTODBF             _HB_FUN_FW_ARRAYTODBFEX
	_HB_FUN_FW_CDXCREATE              _HB_FUN_FW_COPYDBFTO
	_HB_FUN_FW_DBFILTERBLOCK          _HB_FUN_FW_DBFLOOKUP
	_HB_FUN_FW_DBFRENAMEFIELD         _HB_FUN_FW_DBFSQLQUERY
	_HB_FUN_FW_DBFSTRUCT              _HB_FUN_FW_DBFTOEXCEL
	_HB_FUN_FW_DBINSERT               _HB_FUN_FW_EXCELTODBF
	_HB_FUN_FW_FIELDSPUT              _HB_FUN_FW_HASHTOREC
	_HB_FUN_FW_INDEXINFO              _HB_FUN_FW_RECTOHASH
	_HB_FUN_FW_RECTOJSON              _HB_FUN_FW_SAVEARRAYTODBF
	_HB_FUN_FW_SETRECYCLEDELETED      _HB_FUN_SPLITATAS

dbffunc9	size = 1808
	_HB_FUN_GETRECYCLEDREC          

dbgabout	size = 1936
	_HB_FUN_DBGABOUT                

dbgalert	size = 1948
	_HB_FUN_DBGALERT                

dbgmemo 	size = 1812
	_HB_FUN_DBGMEMO                 

dbgprint	size = 2100
	_HB_FUN_DBGPRINT                

dbgtable	size = 2688
	_HB_FUN_DBGTABLE                

dbgtrace	size = 2976
	_HB_FUN_DBGTRACE                

dbtools 	size = 1396
	_HB_FUN_AGETWORKAREAS             _HB_FUN_CGETNEWALIAS
	_HB_FUN_CGETNEWALIASNAME          _HB_FUN_DUPRECORD
	_HB_FUN_GETORDNAMES             

dde     	size = 2756
	_HB_FUN_DDEACK                    _HB_FUN_DDETERMINATE
	_HB_FUN_TDDE                    

ddeclien	size = 4416
	_HB_FUN_TDDECLIENT              

dialog  	size = 23135
	_HB_FUN_FW_SETTRUEPIXEL           _HB_FUN_SETCENTERONPARENT
	_HB_FUN_SETDIALOGESC              _HB_FUN_SETDLGGRADIENT
	_HB_FUN_TDIALOG                 

dlgfind 	size = 1896
	_HB_FUN_DLGFINDTEXT               _HB_FUN_TDLGFIND

dlgs32  	size = 2296
	_HB_FUN_CGETDIR32                 _HB_FUN_CGETFILE32
	_HB_FUN_NGETFILTER32            

dostofwh	size = 5760
	_HB_FUN_ADDDOSMENUPROMPT          _HB_FUN_EXECDOSMENUPROMPT
	_HB_FUN_FW_DBEDIT                 _HB_FUN_FW_DOSCLEAR
	_HB_FUN_FW_DOSDIALOG              _HB_FUN_FW_DOSREAD
	_HB_FUN_FW_SETCOLOR             

dotnet_ 	size = 6284
	_HB_FUN_CLRCREATEINSTANCE         _HB_FUN_FW_DOTNET
	_HB_FUN_FW_DOTNETERROR            _HB_FUN_TDOTNET

drawbmp 	size = 860
	_HB_FUN_DRAWTEXTTRANSPARENT       _HB_FUN_DRAWTILED
	_HB_FUN_DRAWTRANSPARENT         

drxl    	size = 9939
	_HB_FUN_CGETFILEXLSX              _HB_FUN_CTEMPXLSX
	_HB_FUN_DRXLSFORMAT               _HB_FUN_DRXLSXLINKED
	_HB_FUN_DRXLSXOBJ                 _HB_FUN_FWDRXLSX
	_HB_FUN_USEDRXLSX                 _HB_FUN_USEXLSXLIB
	_HB_FUN_XLSXLIBLINKED             _HB_FUN_XLSXLIBOBJ
	_HB_FUN_XLSXOBJ                 

edit    	size = 7819
	_HB_FUN_TEDIT                   

editcell	size = 1664
	_HB_FUN_EDITCELL                

epfunc  	size = 896
	_HB_FUN_EP_GETTEMPPATH            _HB_FUN_EP_LINKEDTOAPP
	_HB_FUN_EP_SETPATH                _HB_FUN_EP_TIDYUP

ereport 	size = 74819
	_HB_FUN_AREACHANGE                _HB_FUN_AREAHIDE
	_HB_FUN_AREAPROPERTIES            _HB_FUN_BARMENU
	_HB_FUN_BETAVERSION               _HB_FUN_CHECKSTYLE
	_HB_FUN_CLICKLISTTREE             _HB_FUN_CLIENTWINDOWS
	_HB_FUN_DECLAREPUBLICS            _HB_FUN_DEFINEFONTS
	_HB_FUN_DELSELECTITEMS            _HB_FUN_DRAWRULERHORZLINE
	_HB_FUN_DRAWRULERVERTLINE         _HB_FUN_ERBUILDMENU
	_HB_FUN_EREPORT                   _HB_FUN_ERGETALLITEMS
	_HB_FUN_ER_MDICHILD               _HB_FUN_ER_MOUSEWHEEL
	_HB_FUN_ER_SETCOLOR               _HB_FUN_EXITEREPORT
	_HB_FUN_FONTSANDCOLORS            _HB_FUN_GENERATESOURCE
	_HB_FUN_GETALLCOLORS              _HB_FUN_GETCOLOR
	_HB_FUN_GETCURRENTFONT            _HB_FUN_GETFONTS
	_HB_FUN_GETFONTTEXT               _HB_FUN_GETPAPERSIZES
	_HB_FUN_INIMAINWINDOW             _HB_FUN_ITEMLIST
	_HB_FUN_LISTTREES                 _HB_FUN_MDL2
	_HB_FUN_MSGBARINFOS               _HB_FUN_OPTIONS
	_HB_FUN_PAINTGRID                 _HB_FUN_POPUPMENU
	_HB_FUN_PREVIEWMENU               _HB_FUN_PREVIEWREFRESH
	_HB_FUN_REPORTSETTINGS            _HB_FUN_SCROLLHORIZONT
	_HB_FUN_SCROLLVERTICAL            _HB_FUN_SELECTFONT
	_HB_FUN_SET2COLOR                 _HB_FUN_SET3COLOR
	_HB_FUN_SETAREAFORMULABTN         _HB_FUN_SETGENERALSETTINGS
	_HB_FUN_SETGRAPHTREEBMP           _HB_FUN_SETMAINWND
	_HB_FUN_SETSCROLLBAR              _HB_FUN_SETTITLECOLOR
	_HB_FUN_SETWINNULL                _HB_FUN_SHOWAREASONBAR
	_HB_FUN_SHOWCOLORCHOICE           _HB_FUN_SHOWFONTCHOICE
	_HB_FUN_STARTMESSAGE              _HB_FUN_TEASYREPORT
	_HB_FUN_TSCRIPT                   _HB_FUN_TTHISREPORT
	_HB_FUN_WNDKEYDOWNACTION        

erfile  	size = 22807
	_HB_FUN_ASKSAVEFILES              _HB_FUN_CHECKFILENAME
	_HB_FUN_CREATEBACKUP              _HB_FUN_CREATENEWREPORT
	_HB_FUN_ER_NEWREPORT              _HB_FUN_ER_SAVEAS
	_HB_FUN_FILEINFOS                 _HB_FUN_MOVERECORD
	_HB_FUN_OPENFILE                  _HB_FUN_SAVEASFILE
	_HB_FUN_SAVEFILE                  _HB_FUN_SETNEWREPORTDEFAULTS
	_HB_FUN_SETSAVE                   _HB_FUN_SETSAVEINFOS

eritems 	size = 45663
	_HB_FUN_BARCODEPROPERTIES         _HB_FUN_DEACTIVATEITEM
	_HB_FUN_DELETEALLITEMS            _HB_FUN_DELETEITEM
	_HB_FUN_DELITEMWITHKEY            _HB_FUN_DRAWBARCODE
	_HB_FUN_DRAWGRAPHIC               _HB_FUN_EDITSOURCECODE
	_HB_FUN_ELEMENTACTIONS            _HB_FUN_ER_SHOWITEM
	_HB_FUN_GETCOLORBTN               _HB_FUN_GETGRAPHINDEX
	_HB_FUN_GETGRAPHNAME              _HB_FUN_GETIMAGESIZE
	_HB_FUN_GETITEMDLGPOS             _HB_FUN_GETOVAR
	_HB_FUN_GRAPHICPROPERTIES         _HB_FUN_IMAGEPROPERTIES
	_HB_FUN_ISGRAPHIC                 _HB_FUN_ITEMCOPY
	_HB_FUN_ITEMPASTE                 _HB_FUN_ITEMPOPUPMENU
	_HB_FUN_ITEMPROPERTIES            _HB_FUN_KEYDOWNACTION
	_HB_FUN_MSGBARITEM                _HB_FUN_MULTIITEMPROPERTIES
	_HB_FUN_NEWITEM                   _HB_FUN_SAVEBARITEM
	_HB_FUN_SAVEGRAITEM               _HB_FUN_SAVEIMGITEM
	_HB_FUN_SAVEITEMGENERAL           _HB_FUN_SAVETEXTITEM
	_HB_FUN_SETFORMULABTN             _HB_FUN_SETITEMDEFAULT
	_HB_FUN_SETITEMDLG                _HB_FUN_SETITEMSIZE
	_HB_FUN_TEXTPROPERTIES            _HB_FUN_UPDATEITEMS

eritems2	size = 2964
	_HB_FUN_INVERTSELECTION           _HB_FUN_MARKITEM
	_HB_FUN_MOVESELECTION             _HB_FUN_MSGSELECTED
	_HB_FUN_REFRESHSELECTION          _HB_FUN_SELECTALLITEMS
	_HB_FUN_SELECTITEM                _HB_FUN_STARTSELECTION
	_HB_FUN_STOPSELECTION             _HB_FUN_TOGGLEITEMSELECTION
	_HB_FUN_UNSELECTALL             

errsysw 	size = 9316
	_HB_FUN_ERRORLINK                 _HB_FUN_ERRORSYS
	_HB_FUN_FWERRORSYS                _HB_FUN_FW_GT
	_HB_FUN_GETCPU                    _HB_FUN_HB_GTSYS
	_HB_FUN_SETERRORDIALOG            _HB_FUN_SETERRORFILENAME
	_HB_FUN_SETERRORPATH              _HB_FUN_SETPOSTERRORACTION

ertools 	size = 34983
	_HB_FUN_ADD2UNDO                  _HB_FUN_ADDTORECENTDOCS
	_HB_FUN_ADELETE                   _HB_FUN_ALTPRINTREPORT
	_HB_FUN_CHECKEXPRESSION           _HB_FUN_CLEARUNDOREDO
	_HB_FUN_CLOSEUNDO                 _HB_FUN_COPYTOEXPRESS
	_HB_FUN_CREATEDBFSEXPRESSIONS     _HB_FUN_CREATENEWFILE
	_HB_FUN_DATABASES                 _HB_FUN_DELDBASE
	_HB_FUN_DELETEAREA                _HB_FUN_EDITLANGUAGE
	_HB_FUN_ERCOPYFILE                _HB_FUN_ER_CHECKPATH
	_HB_FUN_ER_GETPIXEL               _HB_FUN_EXPRESSIONS
	_HB_FUN_GETBARCODES               _HB_FUN_GETCMINCH
	_HB_FUN_GETDBASE                  _HB_FUN_GETDBFIELD
	_HB_FUN_GETDIVISIBLE              _HB_FUN_GETEXPRFIELDS
	_HB_FUN_GETFIELD                  _HB_FUN_GETFILE
	_HB_FUN_GETLANGUAGE               _HB_FUN_GETSOURCETOOLTIP
	_HB_FUN_GL                        _HB_FUN_GOBOTTOM
	_HB_FUN_INICOLOR                  _HB_FUN_INSERTAREA
	_HB_FUN_ISDIVISIBLE               _HB_FUN_ISINTERSECTRECT
	_HB_FUN_ISPOINTINRECT             _HB_FUN_ISSECONDPAGE
	_HB_FUN_MAINCAPTION               _HB_FUN_MULTIUNDOREDO
	_HB_FUN_OPENDATABASES             _HB_FUN_OPENLANGUAGE
	_HB_FUN_OPENUNDO                  _HB_FUN_PRINTREPORT
	_HB_FUN_REDO                      _HB_FUN_REFRESHREDO
	_HB_FUN_REFRESHUNDO               _HB_FUN_SAVEDATABASES
	_HB_FUN_STRATNUM                  _HB_FUN_UNDO
	_HB_FUN_UNDOEXPRESSION            _HB_FUN_UNDOREDOMENU
	_HB_FUN_VRD_MSGRUN              

esreport	size = 49423
	_HB_FUN_ERSTART                   _HB_FUN_FWER_ITEM
	_HB_FUN_FWER_PRREPORT             _HB_FUN_FW_EREPORT

etc     	size = 808
	_HB_FUN_FNADDBITMAP               _HB_FUN___CHANGESTYLEWINDOW

expbuild	size = 8480
	_HB_FUN_CGETEXPRESSION            _HB_FUN_FWARGSLIST
	_HB_FUN_FWCHECKEXPRESSION         _HB_FUN_FWEXPBUILDER

fget    	size = 71131
	_HB_FUN_GTFTOTXT                  _HB_FUN_TFGET
	_HB_FUN_TXTTOGTF                

fileedit	size = 12247
	_HB_FUN_BROWSEITEMS               _HB_FUN_CELLVARPUT
	_HB_FUN_DBREPLACE                 _HB_FUN_DUPLICATE
	_HB_FUN_EREDITCELL                _HB_FUN_FEBUILDMENU
	_HB_FUN_FEFILEEDIT                _HB_FUN_FEGETFILE
	_HB_FUN_FEOPENFILE                _HB_FUN_FILEEDITABOUT
	_HB_FUN_GETTYPE                   _HB_FUN_LASTENTRYNR
	_HB_FUN_REPLACEITEMS            

filename	size = 7192
	_HB_FUN_ADRIVES                   _HB_FUN_AFINDFILE
	_HB_FUN_CFILEDISC                 _HB_FUN_CFILEEXT
	_HB_FUN_CFILEMASK                 _HB_FUN_CFILENAME
	_HB_FUN_CFILENOEXT                _HB_FUN_CFILENOPATH
	_HB_FUN_CFILEPATH                 _HB_FUN_CFILESETEXT
	_HB_FUN_CFILESUBDIR               _HB_FUN_CFILEUNC
	_HB_FUN_CNEWFILENAME              _HB_FUN_CRELATIVEPATH
	_HB_FUN_CTEMPFILE                 _HB_FUN_CURDRIVE
	_HB_FUN_FDATE                     _HB_FUN_FOLDEREXISTS
	_HB_FUN_FSIZE                     _HB_FUN_FTIME
	_HB_FUN_FW_MEMOWRIT               _HB_FUN_FW_NETRMTNAME
	_HB_FUN_GETIMAGE                  _HB_FUN_ISFILEEXT
	_HB_FUN_LFILEISREMOTE             _HB_FUN_LISDIR
	_HB_FUN_LOGFILE                   _HB_FUN_LOGSTACK
	_HB_FUN_MAPDRIVE                  _HB_FUN_MOVEFILE
	_HB_FUN_REMOVEDIR                 _HB_FUN_SETFOLDERICON
	_HB_FUN_SETLOGFILE              

fldex   	size = 8085
	_CalcPos                          _HB_FUN_CALPOS
	_HB_FUN_CALPOSITION               _RetriveFldInfo
	_hb_FWarrayClone                

fline   	size = 1380
	_HB_FUN_TFLINE                  

folder  	size = 16391
	_HB_FUN_TFOLDER                 

font    	size = 13215
	_HB_FUN_FONTFROMTEXT              _HB_FUN_FONTTOTEXT
	_HB_FUN_FW_CHECKFONT              _HB_FUN_GETUSEDFONTS
	_HB_FUN_TFONT                   

ftranslate	size = 3096
	_HB_FUN_FW_TRANSLANG              _HB_FUN_LISTLANGS
	_HB_FUN_TRANSACTION             

fwbarcod	size = 14352
	_HB_FUN_FWER_BARCODE              _HB_FUN_FWER_BARCODE_CHKDIGIT

fwdbg   	size = 42467
	_HB_FUN_DBGGETODBG                _HB_FUN_DBGSETODBG
	_HB_FUN_DBGSOALARM                _HB_FUN_DBGSOALERT
	_HB_FUN_DBGSOBLEEP                _HB_FUN_DBGSOCLICK
	_HB_FUN_DBGSOINFO                 _HB_FUN_DBGSOPUCK
	_HB_FUN_TDBG                      _HB_FUN___DBGENTRY

fwdecode	size = 3768
	_HB_FUN_ARRTRANSPOSE              _HB_FUN_ARRTRANSPOSEQ
	_HB_FUN_ASHUFFLE                  _HB_FUN_FW_AREVERSE
	_HB_FUN_FW_ARRGROUPSUM            _HB_FUN_FW_ARRSUM
	_HB_FUN_FW_ASORT                  _HB_FUN_FW_DECODE
	_HB_FUN_FW_GREATEST               _HB_FUN_FW_LEAST
	_HB_FUN_FW_RAEVAL               

fwerror 	size = 956
	_HB_FUN__FWGENERROR               _HB_FUN___LOWMEMERROR

fwmaria 	size = 159286
	_HB_FUN_FRECSET                   _HB_FUN_FWMARIALIB_VERSION
	_HB_FUN_FWMARIA_LCMESSAGES        _HB_FUN_FWMARIA_SET_PAD_CHAR_TO_FULL_LENGTH
	_HB_FUN_FW_DEMODB                 _HB_FUN_FW_XOR
	_HB_FUN_INBRACKETS                _HB_FUN_MARIA_CONNECT
	_HB_FUN_MARIA_CONNECTERROR        _HB_FUN_MARIA_EMBEDDED
	_HB_FUN_MYSQL_BLOBASHEX           _HB_FUN_MYSQL_CRYPT
	_HB_FUN_MYSQL_CRYPTKEY            _HB_FUN_MYSQL_ESCAPE_STRING
	_HB_FUN_MYSQL_MAXPADLIMIT         _HB_FUN_MYSQL_QUOTEDCOL
	_HB_FUN_MYSQL_ROWSET              _HB_FUN_MYSQL_STMT_BINDTEST
	_HB_FUN_MYSQL_STMT_CLOSE          _HB_FUN_MYSQL_STMT_EXECUTE
	_HB_FUN_MYSQL_STMT_INIT           _HB_FUN_MYSQL_STMT_PREPARE
	_HB_FUN_MYSQL_TINYINTASLOGICAL    _HB_FUN_MYSQL_UPDATEFROMTABLESQL
	_HB_FUN_MYSQL_UPDATESUMMARYSQL    _HB_FUN_STRICMPX
	_fw_isbinarydata                  _result_items

fwmsword	size = 11887
	_HB_FUN_FWMSWORDDOC             

fwmulti 	size = 1006
	_HB_FUN_EXEID                     _HB_FUN_FW_SETMULTI
	_HB_FUN_OPENMUTEX               

fworm   	size = 15247
	_HB_FUN_EXTRACTGROUPBY            _HB_FUN_ORM_CONNECTION
	_HB_FUN_ORM_TABLE               

fwpdf   	size = 29239
	_HB_FUN_FWHARU                    _HB_FUN_FWPDF

fwrowset	size = 23593
	_HB_FUN_FWM_BLANKVALUE            _HB_FUN_FWROWSET
	_HB_FUN_TRANS_DBFSQL              _HB_FUN_TRANS_LIKETODBF

fwstack 	size = 1592
	_HB_FUN_FWSTACK                 

fwxlsxlb	size = 15979
	_HB_FUN_TWORKBOOK                 _HB_FUN_XLSXLIB

fwzebra 	size = 4876
	_HB_FUN_FWZEBRA                   _HB_FUN_FWZEBRA_BARCODE

gantt   	size = 8403
	_HB_FUN_TGANTT                    _HB_FUN_TGANTTITEM

getfiles	size = 920
	_HB_FUN_AGETFILES                 _HB_FUN_AGETFILESA

getsysin	size = 9248
	_HB_FUN_BORLANDVERSION            _HB_FUN_COLORSQTY
	_HB_FUN_CWINVERSION               _HB_FUN_DISPFONTPERSIZE
	_HB_FUN_FW_ACTIVEMONITORS         _HB_FUN_FW_GETALLMONITORS
	_HB_FUN_FW_GETMONITOR             _HB_FUN_FW_GETTHEMEMODE
	_HB_FUN_FW_ISMOUSEPRESENT         _HB_FUN_FW_ISTABLETMODE
	_HB_FUN_FW_ISTOUCHSCREEN          _HB_FUN_FW_SETMONITOR
	_HB_FUN_FW_VIRTUALSCREEN          _HB_FUN_GETCPUSPEED
	_HB_FUN_GETSYSFONT                _HB_FUN_ISDARKTHEME
	_HB_FUN_ISWIN2000                 _HB_FUN_ISWIN64
	_HB_FUN_ISWIN7                    _HB_FUN_ISWIN8
	_HB_FUN_ISWINDOWS10               _HB_FUN_ISWINDOWS11
	_HB_FUN_ISWINVISTA                _HB_FUN_ISWINXP
	_HB_FUN_LARGEFONTS                _HB_FUN_SAVEDESKTOP
	_HB_FUN_SCREENHEIGHT              _HB_FUN_SCREENHEIGHTMM
	_HB_FUN_SCREENSCALING             _HB_FUN_SCREENSIZE
	_HB_FUN_SCREENSIZE_NOSCALING      _HB_FUN_SCREENWIDTH
	_HB_FUN_SCREENWIDTHMM             _HB_FUN_SCRRESOLUTION
	_HB_FUN_SETDARKTHEME              _HB_FUN_WINDOWS
	_HB_FUN_WNDCENTEREX             

gettasks	size = 2784
	_HB_FUN_GETTASKS                  _HB_FUN_GETWINDOWMODULEFILENAME
	_HB_FUN_SETTASKMANAGER          

gmail   	size = 5740
	_HB_FUN_TGMAIL                  

group   	size = 5136
	_HB_FUN_TGROUP                  

gtf     	size = 6940
	_HB_FUN_GTFTORTF                  _HB_FUN_ISGTF
	_HB_FUN_ISRTF                     _HB_FUN_RTFTOGTF

harbour 	size = 4379
	_HB_FUN_ASEND                     _HB_FUN_ASLONG
	_HB_FUN_ASLONGLONG                _HB_FUN_ASPTR
	_HB_FUN_CHILDLEVEL                _HB_FUN_EXECUTE
	_HB_FUN_FREELIB32                 _HB_FUN_FREELIBRARY
	_HB_FUN_FREOPEN_STDERR            _HB_FUN_GETLASTERROR
	_HB_FUN_GETLOCAL                  _HB_FUN_GETPARAM
	_HB_FUN_GETPROCADDRESS            _HB_FUN_HB_DBG_VMPARLLIST
	_HB_FUN_HB_DBG_VMSTKLCOUNT        _HB_FUN_HB_DBG_VMVARLGET
	_HB_FUN_HB_DBG_VMVARSLEN          _HB_FUN_LOADLIB32
	_HB_FUN_LOADLIBRARY               _HB_FUN_LOADVBX
	_HB_FUN_LOCALCOUNT                _HB_FUN_MEMMAX
	_HB_FUN_MEMUSED                   _HB_FUN_NHEAPSIZE
	_HB_FUN_NINITDSSIZE               _HB_FUN_NSTACKSIZE
	_HB_FUN_NSTATICS                  _HB_FUN_NSYMPSIZE
	_HB_FUN_NTXPOS                    _HB_FUN_OCLONE
	_HB_FUN_OLEGETPROPERTY            _HB_FUN_OLEINVOKE
	_HB_FUN_OLESETPROPERTY            _HB_FUN_OSEND
	_HB_FUN_PARAMCOUNT                _HB_FUN_SETMULTIPLE
	_HB_FUN_TVBCONTROL                _HB_FUN_ULOADOBJECT
	_HB_FUN_VBXCLASSNAME              _HB_FUN_VBXEVENT
	_HB_FUN_WINDOWSFIX                _HB_FUN__CLSSETERROR
	_HB_FUN__GENERROR               

help32  	size = 4424
	_HB_FUN_HELPINDEX                 _HB_FUN_HELPPOPUP
	_HB_FUN_HELPSEARCH                _HB_FUN_HELPTOPIC
	_HB_FUN_SETAUTOHELP               _HB_FUN_SPWINHELP
	_HB_FUN_SPWINHELPC                _HB_FUN_WINHELP

helpchm 	size = 3071
	_HB_FUN_CHMHELPINDEX              _HB_FUN_CHMHELPPOPUP
	_HB_FUN_CHMHELPSEARCH             _HB_FUN_CHMHELPTOPIC
	_HB_FUN_FREEHTMLDLL               _HB_FUN_GETHELPPOPUP
	_HB_FUN_HTMLPOP                   _HB_FUN_HTMLSEARCH
	_HB_FUN_HTML_HELP                 _HB_FUN_SETHELPPOPUP
	_hDLL                             _helpaddress
	_pHTMLHELP                      

icon    	size = 3956
	_HB_FUN_TICON                   

iget    	size = 2560
	_HB_FUN_TICONGET                

igroup  	size = 15835
	_HB_FUN_TICONGROUP              

image   	size = 16455
	_HB_FUN_FICNV24                   _HB_FUN_FICONVERTIMAGEFILE
	_HB_FUN_FICONVTO32                _HB_FUN_FIGETBITS
	_HB_FUN_FIGETFILETYPE             _HB_FUN_FIGETINFO
	_HB_FUN_FIGETINFOHEADER           _HB_FUN_FIGETWIDTH
	_HB_FUN_FIISTRANSPARENT           _HB_FUN_FILOAD
	_HB_FUN_FILOADFROMMEMORY          _HB_FUN_FILOADIMG
	_HB_FUN_FIMAKETHUMBNAIL           _HB_FUN_FIROTATE
	_HB_FUN_FIROTATEIMG               _HB_FUN_FISAVE
	_HB_FUN_FISETTRANSPARENT          _HB_FUN_FITYPEFROMMEMORY
	_HB_FUN_FIUNLOAD                  _HB_FUN_FI_CLOSEMEMORY
	_HB_FUN_FI_GETFILETYPEFROMFILENAME  _HB_FUN_FI_GETFILETYPEFROMMEMORY
	_HB_FUN_FI_LOADFROMMEMORY         _HB_FUN_FI_OPENMEMORY
	_HB_FUN_FI_SAVETOMEMORY           _HB_FUN_FI_SUPPORTSWRITING
	_HB_FUN_FMAKETHUMBNAIL            _HB_FUN_FREEIMAGEISLOADED
	_HB_FUN_ISIMAGEDATA               _HB_FUN_LOADFREEIMAGE
	_HB_FUN_TIMAGE                    _HB_FUN_UNLOADFREEIMAGE

imageb64	size = 7500
	_HB_FUN_TIMAGEBASE64            

imgtxtio	size = 51385
	_HB_FUN_CALCTEXTWH                _HB_FUN_CONTRASTCLR
	_HB_FUN_DRAWBMPARRAY              _HB_FUN_DRAWPROGRESSBAR
	_HB_FUN_DRAWTEXTEXARRAY           _HB_FUN_DUPLICATEIMAGE
	_HB_FUN_ELLIPSE_RADIUS            _HB_FUN_EMF2HBITMAP
	_HB_FUN_EXTRACTBASE64IMAGE        _HB_FUN_FILLRECTEX
	_HB_FUN_FW_ANGLEARC               _HB_FUN_FW_BARCODEBMP
	_HB_FUN_FW_BMPMINUS               _HB_FUN_FW_BMPPLUS
	_HB_FUN_FW_BMPSTAR                _HB_FUN_FW_BOX
	_HB_FUN_FW_CLIPBOARDHASIMAGE      _HB_FUN_FW_COPYTOCLIPBOARD
	_HB_FUN_FW_CREATEBITMAP           _HB_FUN_FW_DRAWIMAGE
	_HB_FUN_FW_DRAWSHADOW             _HB_FUN_FW_DRAWSHAPES
	_HB_FUN_FW_ELLIPSHADOW            _HB_FUN_FW_EMPTYCLIPBOARD
	_HB_FUN_FW_GETCLIPBOARDDATA       _HB_FUN_FW_HBITMAPTOFILE
	_HB_FUN_FW_IMAGETOBLOB            _HB_FUN_FW_MAKEYOURBITMAP
	_HB_FUN_FW_PIECHART               _HB_FUN_FW_READIMAGE
	_HB_FUN_FW_RICHTEXTBMP            _HB_FUN_FW_SAVEHBITMAP
	_HB_FUN_FW_SAVEIMAGE              _HB_FUN_FW_SAVEIMAGESAMETYPE
	_HB_FUN_FW_SAVETHUMBNAIL          _HB_FUN_FW_SAYBARCODE
	_HB_FUN_FW_SAYHOLLOW              _HB_FUN_FW_SAYTEXT
	_HB_FUN_FW_SAYTEXTHILITE          _HB_FUN_FW_SAYTEXTSPREAD
	_HB_FUN_FW_STITCHIMAGES           _HB_FUN_FW_TEXTTOBITMAP
	_HB_FUN_FW_TRANSFORMBITMAP        _HB_FUN_GDI32_HOLLOWTEXT
	_HB_FUN_GETBMPHEIGHT              _HB_FUN_GETBMPWIDTH
	_HB_FUN_GRADARGB2RGB              _HB_FUN_GRADIENTFILL
	_HB_FUN_GRADIENTGDIP              _HB_FUN_HICO2HBMP
	_HB_FUN_HVALTOBRUSH               _HB_FUN_HVALTOPEN
	_HB_FUN_ISALPHACLR                _HB_FUN_ISFILEIMAGETYPE
	_HB_FUN_ISIMAGEEXT                _HB_FUN_ISXHBCOM
	_HB_FUN_JPEGDIM                   _HB_FUN_MEMORYBUFFERTYPE
	_HB_FUN_MSGINFOSCROLL             _HB_FUN_PCHARTOPTR
	_HB_FUN_RESIZEIMAGEPTR            _HB_FUN_RINGGRADIENTFILL
	_HB_FUN_SAMEIMGEXT                _HB_FUN_SAYTEXTATANGLE
	_HB_FUN_SEGOEMDL2                 _HB_FUN_SELECTCLIPPATH
	_HB_FUN_SELECTCLIPRGN             _HB_FUN_SETDEFAULTICONSIZE
	_HB_FUN_TXTINRCT                  _HB_FUN_USEGDI
	_HB_FUN_WEBIMAGE                  _HB_FUN_WEBPAGECONTENTS
	_HB_FUN_WINDOWFROMDC              _HB_FUN_WNDBMP
	_HB_FUN_WRAPTOWIDTH             

ini     	size = 2852
	_HB_FUN_GETPVPRFSE                _HB_FUN_TINI

internet	size = 1580
	_HB_FUN_TINTERNET               

keys    	size = 376
	_HB_FUN__SETKEY                 

linklist	size = 5140
	_HB_FUN_TLINKLIST               

listbox 	size = 12095
	_HB_FUN_TLISTBOX                

loadval 	size = 444
	_HB_FUN_LOADVALUE               

longnam2	size = 3572
	_HB_FUN_APIFINDCLS                _HB_FUN_APIFINDFST
	_HB_FUN_APIFINDNXT                _HB_FUN_GETFULLPATHNAME
	_HB_FUN_GETSHORTPATHNAME          _HB_FUN_LFN2SFN
	_HB_FUN_SFN2LFN                 

mariarec	size = 4380
	_HB_FUN_FWMARIARECORD           

math    	size = 640
	_HB_FUN_BINTOC                    _HB_FUN_BINTON
	_HB_FUN_NTOBIN                  

matrices	size = 10860
	_HB_FUN_ADIFF                     _HB_FUN_FW_MATRIX
	_HB_FUN_MATRIXINVERT              _HB_FUN_MATRIXMULTIPLY
	_HB_FUN_MATRIX_BOX              

mdichild	size = 7595
	_HB_FUN_TMDICHILD               

mdiclien	size = 5304
	_HB_FUN_TMDICLIENT              

mdiframe	size = 9371
	_HB_FUN_GETWNDFRAME               _HB_FUN_TMDIFRAME

mdirec  	size = 1324
	_HB_FUN_MDIRECEDIT              

memoedit	size = 25087
	_HB_FUN_BUILDRICHEDITBAR          _HB_FUN_FW_MEMOEDIT
	_HB_FUN_HTMLVIEW                  _HB_FUN_JSONBROWSE
	_HB_FUN_JSONVIEW                  _HB_FUN_RICHEDIT
	_HB_FUN_RICHEDIT5                 _HB_FUN_SAVEFILESOURCE
	_HB_FUN_SETUPSCINT                _HB_FUN_SOURCECOMPILE
	_HB_FUN_SOURCEEDIT                _HB_FUN_SOURCEEDITOR
	_HB_FUN_UTFEDIT                 

memstat 	size = 684
	_HB_FUN_MEMSTAT                 

menu    	size = 49759
	_HB_FUN_DELCHECK                  _HB_FUN_GETAAUXITEMS
	_HB_FUN_GETALLITEMS               _HB_FUN_GETBMPSITEMS
	_HB_FUN_GETNHEIGHTITEM            _HB_FUN_GETNHEIGHTSEP
	_HB_FUN_GETNOLDHEIGHTITEM         _HB_FUN_GETNWIDTHITEM
	_HB_FUN_GETPOPUPS                 _HB_FUN_ITEMBITMAP
	_HB_FUN_MENUCLONE                 _HB_FUN_RESBUILD
	_HB_FUN_SEARCHID                  _HB_FUN_SEARCHITEM
	_HB_FUN_TMENU                   

menuitem	size = 21635
	_HB_FUN_TMENUITEM                 _HB_FUN_TXTTOBMP

meter   	size = 13083
	_HB_FUN_PAINTCIRCULARMETER        _HB_FUN_PAINTCIRCULARMETEROLD
	_HB_FUN_TMETER                  

metrcirc	size = 12207
	_HB_FUN_TPROGRESSWHEEL          

metropnl	size = 23443
	_HB_FUN_TMETROBTN                 _HB_FUN_TMETROPANEL

mget    	size = 17911
	_HB_FUN_SETMGETCOLORFOCUS         _HB_FUN_TMULTIGET

mimeclip	size = 3352
	_HB_FUN_FFMIMEDEC                 _HB_FUN_FFMIMEENC
	_HB_FUN_FMIMEDEC                  _HB_FUN_FMIMEENC
	_HB_FUN_MAKEWIND                  _HB_FUN_MIMEEXT
	_HB_FUN_REGQRYVALUEEX             _HB_FUN_TESTTHIS

mru     	size = 4376
	_HB_FUN_TMRU                    

msgbar  	size = 15851
	_HB_FUN_GETMSGBARDEFAULT          _HB_FUN_SETMSGBARDEFAULT
	_HB_FUN_TIMEFROMSTART             _HB_FUN_TMSGBAR

msgcalc 	size = 4276
	_HB_FUN_MSGCALC                 

msgget  	size = 3596
	_HB_FUN_MSGGET                  

msglist 	size = 1552
	_HB_FUN_MSGLIST                 

msglogo 	size = 2108
	_HB_FUN_MSGLOGO                   _HB_FUN_MSGSPLASH

msgmeter	size = 6272
	_HB_FUN_MSGDATE                   _HB_FUN_MSGMETER

msgrun  	size = 1592
	_HB_FUN_MSGRUN                    _HB_FUN_MSGWAIT
	_HB_FUN_STOPUNTIL                 _HB_FUN_WAITSECONDS

msgtbar 	size = 884
	_HB_FUN_MSGTOOLBAR              

netapi32	size = 3964
	_HB_FUN_ISEXTERNALIP              _HB_FUN_ISINTERNET
	_HB_FUN_ISLOCALIP                 _HB_FUN_LOCALIP
	_HB_FUN_NETBIOS                   _HB_FUN_NETSERIALNUMBER
	_HB_FUN_PUBLICIP                

now     	size = 6884
	_HB_FUN_NOW                       _HB_FUN_NOWC
	_IN6ADDR_ISANY                    _IN6ADDR_ISEQUAL
	_IN6ADDR_ISLOOPBACK               _IN6ADDR_ISUNSPECIFIED
	_IN6ADDR_SETANY                   _IN6ADDR_SETLOOPBACK
	_IN6_ADDR_EQUAL                   _IN6_IS_ADDR_ANYCAST
	_IN6_IS_ADDR_EUI64                _IN6_IS_ADDR_GLOBAL
	_IN6_IS_ADDR_LINKLOCAL            _IN6_IS_ADDR_LOOPBACK
	_IN6_IS_ADDR_MC_GLOBAL            _IN6_IS_ADDR_MC_LINKLOCAL
	_IN6_IS_ADDR_MC_NODELOCAL         _IN6_IS_ADDR_MC_ORGLOCAL
	_IN6_IS_ADDR_MC_SITELOCAL         _IN6_IS_ADDR_MULTICAST
	_IN6_IS_ADDR_SITELOCAL            _IN6_IS_ADDR_SUBNET_RESERVED_ANYCAST
	_IN6_IS_ADDR_SUBNET_ROUTER_ANYCAST  _IN6_IS_ADDR_UNSPECIFIED
	_IN6_IS_ADDR_V4COMPAT             _IN6_IS_ADDR_V4MAPPED
	_IN6_IS_ADDR_V4TRANSLATED         _IN6_SET_ADDR_LOOPBACK
	_IN6_SET_ADDR_UNSPECIFIED         _WSAGetFailConnectOnIcmpError
	_WSAGetIPUserMtu                  _WSAGetIcmpErrorInfo
	_WSAGetRecvIPEcn                  _WSAGetUdpRecvMaxCoalescedSize
	_WSAGetUdpSendMessageSize         _WSASetFailConnectOnIcmpError
	_WSASetIPUserMtu                  _WSASetRecvIPEcn
	_WSASetUdpRecvMaxCoalescedSize    _WSASetUdpSendMessageSize
	_gai_strerrorA                    _gai_strerrorW
	_getipv4sourcefilter              _getsourcefilter
	_idealsendbacklognotify           _idealsendbacklogquery
	_setipv4sourcefilter              _setsourcefilter

num2word	size = 3228
	_HB_FUN_FW_N2WSETUP               _HB_FUN_FW_NUMTOWORDS

oauth   	size = 10748
	_HB_FUN_THTTPSERVER               _HB_FUN_TOAUTH

objects 	size = 1472
	_HB_FUN_ENDOBJECT                 _HB_FUN_SETOBJECT
	_HB_FUN_TAPPLICATION            

objfile 	size = 4116
	_HB_FUN_TOBJFILE                

odata   	size = 412
	_HB_FUN_AODATA                  

odbc    	size = 2092
	_HB_FUN_ODBCDSNENTRIES            _HB_FUN_SQLCOL
	_HB_FUN_SQLCOMMIT                 _HB_FUN_SQLDESCRIBECOL
	_HB_FUN_SQLDRIVERCONNECT          _HB_FUN_SQLFILE
	_HB_FUN_SQLGETCURNAME             _HB_FUN_SQLGETDATA
	_HB_FUN_SQLGETINFO                _HB_FUN_SQLINDEX
	_HB_FUN_SQLPREPARE                _HB_FUN_SQLSETCURNAME

olefuncs	size = 8368
	_HB_FUN_CONVERTTOOOURL            _HB_FUN_DBF2EXCELNUMFORMAT
	_HB_FUN_EXCELBOOKSAVEAS           _HB_FUN_EXCELLANG
	_HB_FUN_EXCELLANGID               _HB_FUN_EXCELOBJ
	_HB_FUN_EXCELSEPARATORS           _HB_FUN_EXCELTRANSLATE
	_HB_FUN_FILESYSOBJ                _HB_FUN_FWGETOLEOBJECT
	_HB_FUN_FW_TOGGLEDESKTOP          _HB_FUN_GETEXCELBOOK
	_HB_FUN_GETEXCELRANGE             _HB_FUN_GETPROPERTYVALUE
	_HB_FUN_HARBOURNEW                _HB_FUN_MERGEDOCS
	_HB_FUN_OFFICEEXTRACTIMAGE        _HB_FUN_SUNCALCOBJ
	_HB_FUN_WINHTTPOBJ                _HB_FUN_WINWORDOBJ
	_HB_FUN_WMISERVICE                _HB_FUN_XLRANGEVALUE

outl2003	size = 11175
	_HB_FUN_TOUTLOOK2003              _HB_FUN_TOUTLOOK2003GROUP

outl2010	size = 11159
	_HB_FUN_TOUTLOOK2010              _HB_FUN_TOUTLOOK2010GROUP

outlook 	size = 11363
	_HB_FUN_TOUTLOOK                

pdmenu  	size = 20811
	_HB_FUN_DELAMENUSAUX              _HB_FUN_DELMENUFONT
	_HB_FUN_FW_MEASUREITEM            _HB_FUN_FW_MENUDRAW
	_HB_FUN_GETACCTABLE               _HB_FUN_GETAMENUS
	_HB_FUN_GETAMENUSAUX              _HB_FUN_GETMENUFONT
	_HB_FUN_GETPARENTAUXMENUS         _HB_FUN_ISCHARUNI
	_HB_FUN_ISUTF8                    _HB_FUN_LASTAUXMENU
	_HB_FUN_LASTITEM                  _HB_FUN_LASTITEMPOS
	_HB_FUN_LASTMENU                  _HB_FUN_LASTMENUITEMSCOUNT
	_HB_FUN_MENUADDITEM               _HB_FUN_MENUBEGIN
	_HB_FUN_MENUDATA                  _HB_FUN_MENUEND
	_HB_FUN_SETINITITEMSCHILDS        _HB_FUN_SETOLDMENUS
	_HB_FUN_SETSPACEMONOSP            _HB_FUN_SETSPACEXTRAS
	_HB_FUN_SETSPACEXTRASPOP        

pdreport	size = 1852
	_HB_FUN_RPTADDCOLUMN              _HB_FUN_RPTADDGROUP
	_HB_FUN_RPTBEGIN                  _HB_FUN_RPTEND

pen     	size = 1584
	_HB_FUN_TPEN                    

pgsuport	size = 11424
	_HB_FUN_FWPG_APPENDFROMALIAS      _HB_FUN_FWPG_CREATETABLESQL
	_HB_FUN_FWPG_CURRENTDB            _HB_FUN_FWPG_EXECUTE
	_HB_FUN_FWPG_FIELDGET             _HB_FUN_FWPG_GOTOKEYVAL
	_HB_FUN_FWPG_IMPORTFROMDBF        _HB_FUN_FWPG_LISTDBS
	_HB_FUN_FWPG_LISTSCHEMAS          _HB_FUN_FWPG_METASTRUCT
	_HB_FUN_FWPG_PRIMARYKEYS          _HB_FUN_FWPG_PRIMARYORDER
	_HB_FUN_FWPG_QUERYSETORDER        _HB_FUN_FWPG_SKIPPER
	_HB_FUN_FWPG_STRUCTURE            _HB_FUN_FWPG_TABLENAMEFROMID
	_HB_FUN_FWPG_XBRSAVEDATA          _HB_FUN_FWPG_XBRSEEK

printer 	size = 36179
	_HB_FUN_AGETPRINTERS              _HB_FUN_HARUPDFDOC
	_HB_FUN_ISHARULINKED              _HB_FUN_MSPRINTTOPDF
	_HB_FUN_PAGEBEGIN                 _HB_FUN_PAGEEND
	_HB_FUN_PRINTBEGIN                _HB_FUN_PRINTEND
	_HB_FUN_PRINTQUEUE                _HB_FUN_PRNGETFILETOSAVE
	_HB_FUN_PRNLASTPAGE               _HB_FUN_SAVEPREVIEWTOIMAGE
	_HB_FUN_SETPRINTDEFAULT           _HB_FUN_SETPRINTER
	_HB_FUN_TPRINTER                

prv2pdf 	size = 11286
	_HB_FUN_FWJPGTOPDF                _HB_FUN_FWSAVEPREVIEWTOPDF
	_HB_FUN_FW_EMFTOPDF               _HB_FUN_FW_I2PDF
	_HB_FUN_TFW_PDF                   _HB_FUN_WORDPDF
	_fp                               _iBufLen
	_nDocLen                        

radio   	size = 7048
	_HB_FUN_TRADIO                  

radmenu 	size = 5340
	_HB_FUN_TRADMENU                

random  	size = 1192
	_HB_FUN_DECTOHEX                  _HB_FUN_NHEX
	_HB_FUN_NRANDOM                   _HB_FUN_TIMEZONE

rcolumn 	size = 12531
	_HB_FUN_TRCOLUMN                

readxlsx	size = 11259
	_HB_FUN_FW_OPENXLSX               _HB_FUN_FW_SHOWXLSX
	_HB_FUN_TXLSXREADER             

rebar   	size = 1848
	_HB_FUN_TREBAR                  

rect    	size = 9352
	_HB_FUN_ARRAYMATH                 _HB_FUN_POINTROWCOL
	_HB_FUN_POINTXY                   _HB_FUN_TPOINT
	_HB_FUN_TRECT                   

reg32   	size = 3236
	_HB_FUN_TREG32                  

report  	size = 35839
	_HB_FUN_TREPORT                 

rfile   	size = 3740
	_HB_FUN_TRFILE                  

rgroup  	size = 4500
	_HB_FUN_TRGROUP                 

rline   	size = 3684
	_HB_FUN_TRLINE                  

rpreview	size = 39495
	_HB_FUN_CONVERTTOWORDDOC          _HB_FUN_RPREVIEW
	_HB_FUN_RPREVUSERBTNS             _HB_FUN_SETCUSTOMPRINTPREVIEW
	_HB_FUN_TOWORDDOCVIAWRITER        _HB_FUN_TPREVIEW

rtfbox  	size = 1420
	_HB_FUN_RTFBOX                  

rtffile 	size = 2944
	_HB_FUN_TRTFFILE                

say     	size = 7236
	_HB_FUN_TSAY                    

scintila	size = 87123
	_HB_FUN_CHOICEFONT                _HB_FUN_FUNCHARB
	_HB_FUN_GETLEXERS                 _HB_FUN_HCADFUNCTION
	_HB_FUN_LOADFHB                   _HB_FUN_READFUNCFW
	_HB_FUN_READFUNCFWC               _HB_FUN_READFUNCHB
	_HB_FUN_SETMIFONT                 _HB_FUN_TSCINTILLA

scrllbar	size = 6624
	_HB_FUN_TSCROLLBAR              

scrlpanl	size = 10707
	_HB_FUN_TSCROLLPANEL            

scrollm 	size = 9940
	_HB_FUN_SMLARROW                  _HB_FUN_SMRARROW
	_HB_FUN_TSCROLLMETRO            

scrolmsg	size = 4052
	_HB_FUN_TSCROLLMSG              

selector	size = 10451
	_HB_FUN_ATANG                     _HB_FUN_FWCOS
	_HB_FUN_FWSIN                     _HB_FUN_TANG
	_HB_FUN_TSELECTOR               

shellapi	size = 2508
	_HB_FUN_COPYFILE                  _HB_FUN_OUTPUTDEBUGSTRING
	_HB_FUN_SHELL_NOTIFYICON          _HB_FUN_TASKADDICON
	_HB_FUN_TASKCHANGEICON            _HB_FUN_TASKDELICON

skin    	size = 9981
	_HB_FUN_APPLYSETFILTER            _HB_FUN_ISWIN98
	_HB_FUN_SETFILTER                 _HB_FUN_SETTRANSPARENT
	_HB_FUN_SKIN                      _HB_FUN_TSKIN
	_SetFilter                      

skins   	size = 7164
	_HB_FUN_BUTTONS2007               _HB_FUN_FWSKINBTNFOCUSED
	_HB_FUN_FWSKINBTNKEYDOWN          _HB_FUN_FWSKINBTNKEYUP
	_HB_FUN_FWSKINBTNLBUTTONDOWN      _HB_FUN_FWSKINBTNLBUTTONUP
	_HB_FUN_FWSKINBTNMOUSELEAVE       _HB_FUN_FWSKINBTNMOUSEMOVE
	_HB_FUN_FWSKINBTNOBJ              _HB_FUN_FWSKINBTNPAINT
	_HB_FUN_SETSKINBTNDEFAULTCLRS     _HB_FUN_SETSKINBUTTONSCOLORS
	_HB_FUN_SKINBUTTONS             

slider  	size = 10091
	_HB_FUN_TSLIDER                 

sliderm 	size = 2776
	_HB_FUN_TSLIDERMETRO            

splitter	size = 11863
	_HB_FUN_TSPLITTER               

sqlerror	size = 2072
	_HB_FUN_TSQLERROR               

statusba	size = 4304
	_HB_FUN_TSTATUSBAR              

strings 	size = 51580
	_HB_FUN_FWADDLANGUAGE             _HB_FUN_FWADDSTRING
	_HB_FUN_FWEDITSTRINGS             _HB_FUN_FWLANGUAGEID
	_HB_FUN_FWLOADSTRINGS             _HB_FUN_FWMISSINGSTRINGS
	_HB_FUN_FWSAVESTRINGS             _HB_FUN_FWSETLANGUAGE
	_HB_FUN_FWSETSTRING               _HB_FUN_FWSTRING

system  	size = 356
	_HB_FUN_SYSWAIT                 

tabs    	size = 19483
	_HB_FUN_TTABS                   

tacctbl 	size = 1752
	_HB_FUN_TACCTABLE               

tagcloud	size = 5348
	_HB_FUN_TTAGCLOUD               

tanimate	size = 4244
	_HB_FUN_TANIMATE                

tarrdata	size = 39127
	_HB_FUN_STR2STRUCT                _HB_FUN_TARRAYDATA

tblockchain	size = 5332
	_HB_FUN_TBLOCKCHAIN             

tbtnclr 	size = 13527
	_HB_FUN_TBTNCLR                   _HB_FUN_TPICKERCOLOR

tcalenda	size = 17119
	_HB_FUN_TCALENDAR               

tcalex  	size = 29615
	_HB_FUN_CALEX_SETFIRSTDATE        _HB_FUN_COLORDATA
	_HB_FUN_DRAWBOX                   _HB_FUN_DRAWSPECIALBOX
	_HB_FUN_TCALEX                  

tcbrowse	size = 25155
	_HB_FUN_TCBROWSE                

tccolumn	size = 4392
	_HB_FUN_TCCOLUMN                

tclipget	size = 728
	_HB_FUN_FWGETNEW                  _HB_FUN_TCLIPGET

tcomobj 	size = 1924
	_HB_FUN_TCOMOBJECT              

tcompone	size = 3092
	_HB_FUN_TCOMPONENT              

tctrsock	size = 2204
	_HB_FUN_TCTRLSOCKET             

tcvrflow	size = 20867
	_HB_FUN_TCOVER                    _HB_FUN_TCOVERFLOW

tdayv   	size = 7455
	_HB_FUN_TDAYVIEW                

tdbase  	size = 992
	_HB_FUN_TDBASE                  

tdbfcomp	size = 2888
	_HB_FUN_TDBFCOMP                

tdbfuncs	size = 652
	_HB_FUN_TDBF_DECRYPT              _HB_FUN_TDBF_ENCRYPT

tdbodbc 	size = 23531
	_HB_FUN_TDBODBC                 

tdbodbcd	size = 17831
	_HB_FUN_TDBODBCDIRECT           

tddemlcl	size = 3056
	_HB_FUN_DDECLIENT                 _HB_FUN_TDDEMLCLIENT

tddemlsv	size = 4004
	_HB_FUN_DDESERVER                 _HB_FUN_TDDEMLSERVER

tdeepseek	size = 2724
	_HB_FUN_TDEEPSEEK               

tdict   	size = 29499
	_HB_FUN_LOGEVENT                  _HB_FUN_TDICT

tdockpnel	size = 25547
	_HB_FUN_TDOCKPNEL               

tdosprn 	size = 6592
	_HB_FUN_TDOSPRN                 

tdtpicke	size = 11653
	_HB_FUN_DTP_GETSTYLE              _HB_FUN_DTP_SETSTYLE
	_HB_FUN_TDATEPICK                 _read_datetime

tembeddings	size = 4008
	_HB_FUN_TEMBEDDINGS             

tenhmeta	size = 4852
	_HB_FUN_TENHMETAFILE            

tereport	size = 61283
	_HB_FUN_ADDNEWDATAS               _HB_FUN_TEREPORT

texplbar	size = 15635
	_HB_FUN_TEXPLORERBAR              _HB_FUN_TTASKPANEL

texplist	size = 20171
	_HB_FUN_TEXPLORERLIST             _HB_FUN_TITEMLISTBAR

texstruc	size = 3792
	_HB_FUN_STRUCBEGIN                _HB_FUN_STRUCEND
	_HB_FUN_STRUCMEMBER               _HB_FUN_TEXSTRUCT

tfield  	size = 1148
	_HB_FUN_TFIELD                  

tfile   	size = 5484
	_HB_FUN_TFILE                   

tfilegtf	size = 3124
	_HB_FUN_GTFFONT                   _HB_FUN_GTFFORMAT
	_HB_FUN_SETGTFALIGN               _HB_FUN_SETGTFCOLOR
	_HB_FUN_SETGTFFONT                _HB_FUN_SETGTFFORMAT
	_HB_FUN_TFILEGTF                

tfoldex 	size = 31359
	_HB_FUN_TFOLDEREX               

tform   	size = 4600
	_HB_FUN_TFORM                   

tftp    	size = 3220
	_HB_FUN_TFTP                    

tftpcli 	size = 5176
	_HB_FUN_TFTPCLIENT              

tftpfile	size = 2148
	_HB_FUN_TFTPFILE                

tftpserv	size = 6224
	_HB_FUN_TFTPSERVER              

tftpsess	size = 944
	_HB_FUN_TFTPSESSION             

tgdiplus	size = 25163
	_HB_FUN_AEMF2IMAGES               _HB_FUN_BRUSH
	_HB_FUN_CGETBMPNAME               _HB_FUN_DRAWIMAGEROTATECENTER
	_HB_FUN_EMFTOIMG                  _HB_FUN_FRAMETIFF
	_HB_FUN_GDIBMP                    _HB_FUN_GDIPLUSCONVER24TO32ALPHA
	_HB_FUN_GDIPLUSCONVER24TO32ALPHAGRAY  _HB_FUN_GDIPLUSCONVERTIMAGE
	_HB_FUN_GDIPLUSRESIZEIMAGE        _HB_FUN_GDIPLUSSAVETHUMBNAIL
	_HB_FUN_GETIMGFROMLIST            _HB_FUN_GETIMGFROMLISTH
	_HB_FUN_GETIMGFROMLISTV           _HB_FUN_GRAPHICS
	_HB_FUN_HBMPFROMFILE              _HB_FUN_HBMPFROMRES
	_HB_FUN_IMAGEFROM10RESOURCE       _HB_FUN_IMAGEPNGFROMSTR
	_HB_FUN_LISPNG                    _HB_FUN_NEWEMFTOJPG
	_HB_FUN_PATH                      _HB_FUN_PEN
	_HB_FUN_REGION                    _HB_FUN_SAVEPREVIEWTOIMG
	_HB_FUN_SAVEWINDOW                _HB_FUN_TIFFTOJPG

tgemini 	size = 7352
	_HB_FUN_TGEMINI                 

tget    	size = 57659
	_HB_FUN_CHR16                     _HB_FUN_FW_SETGETTIMEPART
	_HB_FUN_FW_UTF8PADBYTE            _HB_FUN_FW_UTF8PADCHAR
	_HB_FUN_GETTEXTLIMITBYCHARS       _HB_FUN_LENMINMAX
	_HB_FUN_POPUPBROWSE               _HB_FUN_SETGETCOLORFOCUS
	_HB_FUN_TGET                      _HB_FUN_WIDESTRPUT

tgif    	size = 4176
	_HB_FUN_TGIF                    

tgraph  	size = 55119
	_HB_FUN_TGRAPH                  

tgselect	size = 16687
	_HB_FUN_CHOOSEGRADIENT            _HB_FUN_TCHOOSEGRADIENT
	_HB_FUN_TGSELECTOR                _HB_FUN_TINK

theader 	size = 4068
	_HB_FUN_THEADER                 

thtmlpag	size = 1636
	_HB_FUN_THTMLPAGE               

timaglst	size = 2392
	_HB_FUN_TIMAGELIST              

time    	size = 2036
	_HB_FUN_TTIME                   

timer   	size = 2072
	_HB_FUN_TIMEREVENT                _HB_FUN_TTIMER

tindex  	size = 1784
	_HB_FUN_TINDEX                  

tlayout 	size = 3744
	_HB_FUN_TLAYOUT                 

tlex    	size = 2792
	_HB_FUN_TLEX                    

tlib    	size = 920
	_HB_FUN_TLIBFILE                

tlistvie	size = 8123
	_HB_FUN_TLISTVIEW                 _HB_FUN_TLISTVIEWGROUP
	_HB_FUN_TLISTVIEWITEM           

tlocks  	size = 3424
	_HB_FUN_TLOCKS                  

tmail   	size = 2448
	_HB_FUN_TMAIL                   

tmci    	size = 2356
	_HB_FUN_TMCI                    

tmcpserver	size = 9152
	_HB_FUN_CREATEMCPSERVER           _HB_FUN_ERRORHANDLER
	_HB_FUN_FREADLINE                 _HB_FUN_TMCPCONTEXT
	_HB_FUN_TMCPPROMPT                _HB_FUN_TMCPRESOURCE
	_HB_FUN_TMCPSERVER                _HB_FUN_TMCPTOOL

tmetafil	size = 6601
	_HB_FUN_GETEMFSIZE                _HB_FUN_GETOBJECTTYPE
	_HB_FUN_ISENHMETA                 _HB_FUN_ISHBITMAP
	_HB_FUN_TMETAFILE               

tmeterex	size = 6900
	_HB_FUN_TMETEREX                

tmetro  	size = 4588
	_HB_FUN_TMETRO                  

tmnucomp	size = 2244
	_HB_FUN_TMNUCOMP                

tmonthv 	size = 12047
	_HB_FUN_TMONTHVIEW              

tmsgitem	size = 9339
	_HB_FUN_TMSGITEM                

tneuralnet	size = 4111
	_HB_FUN_DSIGMOID                  _HB_FUN_MATH_E
	_HB_FUN_SIGMOID                   _HB_FUN_TNEURALLAYER
	_HB_FUN_TNEURALNETWORK            _HB_FUN_TNEURON

tnewsins	size = 17323
	_HB_FUN_TNEWSINSTANCE           

tnewssrv	size = 4696
	_HB_FUN_TNEWSSERVER             

todbc   	size = 11479
	_HB_FUN_TODBC                   

tollama 	size = 4136
	_HB_FUN_TAGENT                    _HB_FUN_TOLLAMA

toolbar 	size = 7380
	_HB_FUN_TTOOLBAR                

topenai 	size = 4968
	_HB_FUN_TOPENAI                 

tordinfo	size = 2016
	_HB_FUN_TORDINFO                

tpages  	size = 5468
	_HB_FUN_TPAGES                  

tpanel  	size = 5936
	_HB_FUN_TPANEL                  

tparser 	size = 976
	_HB_FUN_TPARSER                 

tpdf    	size = 12519
	_HB_FUN_TPDF                    

tpop3   	size = 4120
	_HB_FUN_TPOP3                   

tprogres	size = 3540
	_HB_FUN_TPROGRESS               

tproxy  	size = 2384
	_HB_FUN_TPROXY                  

trackbar	size = 3688
	_HB_FUN_TTRACKBAR               

tras    	size = 4760
	_HB_FUN_TRAS                    

trating 	size = 6636
	_HB_FUN_TRATING                 

trbgroup	size = 18207
	_HB_FUN_TRBGROUP                

trbtn   	size = 26407
	_HB_FUN_TRBTN                   

trdd    	size = 3684
	_HB_FUN_RDDEVENT                  _HB_FUN_TRDD
	_HB_FUN_VIRTUALRDD              

trddodbc	size = 6064
	_HB_FUN_TRDDODBC                

trecset 	size = 22155
	_HB_FUN_ADOERRORASTEXT            _HB_FUN_TRECSET

treeitem	size = 9388
	_HB_FUN_GETTREEBMPS               _HB_FUN_TTREEITEM

trees   	size = 2372
	_HB_FUN_SUMMARYDATAASTREE         _HB_FUN_TREEBEGIN
	_HB_FUN_TREEEND                   _HB_FUN_TREEFREE
	_HB_FUN__TREEITEM               

tribbon 	size = 41067
	_HB_FUN_GRADIENTBMP               _HB_FUN_TBACKSTAGE
	_HB_FUN_TBACKSTAGEOPTION          _HB_FUN_TQUICKACCESS
	_HB_FUN_TRIBBONBAR              

triched5	size = 48423
	_HB_FUN_MNUCOLORS                 _HB_FUN_TRICHEDIT5

trichedi	size = 26651
	_HB_FUN_TRICHEDIT               

trpanel 	size = 2332
	_HB_FUN_TRPANEL                 

tsaybcod	size = 4044
	_HB_FUN_TSAYBARCODE             

tselex  	size = 12027
	_HB_FUN_TSELEX                  

tskinbtn	size = 2304
	_HB_FUN_TSKINBUTTON             

tsmtp   	size = 14667
	_HB_FUN_CFILENOPATHSMTP           _HB_FUN_TSMTP

tsocket 	size = 6868
	_HB_FUN_SHOWIP                    _HB_FUN_TSOCKET

tstruct 	size = 4048
	_HB_FUN_THISSTRUCT                _HB_FUN_TSTRUCT

tswitch 	size = 9327
	_HB_FUN_TSWITCH                 

ttabctrl	size = 4304
	_HB_FUN_TTABCONTROL             

ttitle  	size = 21199
	_HB_FUN_TTITLE                    _HB_FUN_TTITLEIMG
	_HB_FUN_TTITLETEXT              

ttmpicke	size = 5776
	_HB_FUN_TTIMEPICK               

ttoast  	size = 21155
	_HB_FUN_TIPTIMEHIDE               _HB_FUN_TIPTRANSFLICKER
	_HB_FUN_TIPTRANSHIDE              _HB_FUN_TIPTRANSSHOW
	_HB_FUN_TTOAST                  

ttray   	size = 4580
	_HB_FUN_GETNOTIFYICONDATA         _HB_FUN_TTRAYICON

ttreevie	size = 12739
	_HB_FUN_TTREEVIEW               

ttvitem 	size = 4528
	_HB_FUN_TTVITEM                 

ttxtedit	size = 33555
	_HB_FUN_TTXTEDIT                  _HB_FUN_TTXTUNDO

ttxtfile	size = 5112
	_HB_FUN_TTXTFILE                

twebcam 	size = 9295
	_HB_FUN_GETVIDEOCAPDRIVER         _HB_FUN_TWEBCAM
	_HB_FUN__WEBCAM_EVENT           

twebclie	size = 2084
	_HB_FUN_TWEBCLIENT              

twebserv	size = 9472
	_HB_FUN_CLIENTIP                  _HB_FUN_GETQUERY
	_HB_FUN_SERVERIP                  _HB_FUN_TWEBSERVER
	_HB_FUN_UNESCAPE                

twebsock	size = 4824
	_HB_FUN_TWEBSOCKETSERVER        

twebview	size = 5964
	_HB_FUN_BUILDWEBVIEW              _HB_FUN_ISWEBVIEWAVAILABLE
	_HB_FUN_TWEBVIEW                  _HB_FUN_TWEBVIEWITEM
	_HB_FUN_WEBVIEW                   _HB_FUN_WEBVIEWITEMREDEFINE
	_HB_FUN_WEBVIEW_GETVALUES         _HB_FUN_WEBVIEW_HANDLEEVENT

twebview2	size = 5936
	_HB_FUN_FW_WEBVIEW                _HB_FUN_TWEBVIEW2
	_HB_FUN_WEBVIEW2_ONBIND           _HB_FUN_WEBVIEW2_ONEVAL
	_HB_FUN_WEBVIEW2_ONNAVIGATIONCOMPLETED

tweekv  	size = 8411
	_HB_FUN_TWEEKVIEW               

tyacc   	size = 4448
	_HB_FUN_TYACC                   

uidialog	size = 6852
	_HB_FUN_DLGBARTITLEUI             _HB_FUN_DLGVS
	_HB_FUN_NCUANTAS                  _HB_FUN_TDIALOGUI

uiwindow	size = 51843
	_HB_FUN_CARGAIMGBTT               _HB_FUN_CHANGECOLORBAR
	_HB_FUN_CHANGECOLORIMG            _HB_FUN_DRAWTXTROW
	_HB_FUN_KEYBD_EVENT               _HB_FUN_LOADIMGUI
	_HB_FUN_SINB                      _HB_FUN_TWINDOWSUI

urllink 	size = 5628
	_HB_FUN_TURLLINK                

valblank	size = 4830
	_HB_FUN_ARRAYTOTEXT               _HB_FUN_CCLRTOCODE
	_HB_FUN_CVALTOCHAR                _HB_FUN_FW_CLRTOHTML
	_HB_FUN_FW_DEFAULT                _HB_FUN_FW_READVAR
	_HB_FUN_IFNIL                     _HB_FUN_NRGBADD
	_HB_FUN_NRGBRESET                 _HB_FUN_UVALBLANK
	_HB_FUN_XEVAL                   

valtostr	size = 23285
	_HB_FUN_ARRAYTOTEXTBOX            _HB_FUN_ARRTOHASH
	_HB_FUN_ARRTOJSON                 _HB_FUN_CNUM2EXPFORMAT
	_HB_FUN_CNUMTOSTR                 _HB_FUN_COMPAREUNISTR
	_HB_FUN_CURRENCYSYMBOL            _HB_FUN_CVALTOSTR
	_HB_FUN_DATETIMEFROMFILETIME      _HB_FUN_DBF_FIELDPIC
	_HB_FUN_EXPANDNUMPICT             _HB_FUN_FITNUMPICTTOVAL
	_HB_FUN_FWNUMFORMAT               _HB_FUN_FW_ADDMONTH
	_HB_FUN_FW_ADDTIME                _HB_FUN_FW_AGE
	_HB_FUN_FW_ALLTRIM                _HB_FUN_FW_ARRAYASLIST
	_HB_FUN_FW_ARRAYTOCSV             _HB_FUN_FW_ARRAYTOHTML
	_HB_FUN_FW_CONCAT                 _HB_FUN_FW_CONCAT_WS
	_HB_FUN_FW_DATETOUNIX             _HB_FUN_FW_DTOT
	_HB_FUN_FW_JSONDECODE             _HB_FUN_FW_LISTASARRAY
	_HB_FUN_FW_LTRIM                  _HB_FUN_FW_MTHSLAPSED
	_HB_FUN_FW_NEXTBIRTHDAY           _HB_FUN_FW_PROPERCASE
	_HB_FUN_FW_RTRIM                  _HB_FUN_FW_SETJSONHUMAN
	_HB_FUN_FW_STOT                   _HB_FUN_FW_STUFF
	_HB_FUN_FW_TABLESTYLEHTML         _HB_FUN_FW_TIMEPART
	_HB_FUN_FW_TIMEZONE               _HB_FUN_FW_TIMEZONENAME
	_HB_FUN_FW_TRANSFORM              _HB_FUN_FW_TRIM
	_HB_FUN_FW_TTOD                   _HB_FUN_FW_UNIXTODATE
	_HB_FUN_FW_UTCTOLOCAL             _HB_FUN_FW_UTF8LEFT
	_HB_FUN_FW_UTF8RIGHT              _HB_FUN_FW_UTF8STUFF
	_HB_FUN_FW_UTF8SUBSTR             _HB_FUN_FW_VALTOCSV
	_HB_FUN_FW_VALTOEXP               _HB_FUN_FW_VALTOHTML
	_HB_FUN_FW_YMDLAPSED              _HB_FUN_INTPICT
	_HB_FUN_ISBINARYDATA              _HB_FUN_ISROMANNUMBER
	_HB_FUN_ISTEXTUNICODE             _HB_FUN_MAKEIID
	_HB_FUN_NSTRTONUM                 _HB_FUN_NUMPICT
	_HB_FUN_NUMPICTADDCURRENCY        _HB_FUN_NUMPICTFORVAL
	_HB_FUN_STRBETWEEN                _HB_FUN_TABLETOHTMLPAGE
	_HB_FUN_UCHARTOVAL                _HB_FUN_UTC_TIMESTAMP
	_HB_FUN_UTF16TOUTF8               _HB_FUN_UTF8TOUTF16
	_HB_FUN_WHEELSCROLL             

valtostt	size = 248
	_HB_FUN_FW_DT2STR                 _HB_FUN_FW_STR2DT

video   	size = 2832
	_HB_FUN_TVIDEO                  

vistamnu	size = 22394
	_HB_FUN_C5SETSCROLLINFO           _HB_FUN_INTERSECTRECT
	_HB_FUN_TVISTAMENU                _HB_FUN_TVISTAMENUITEM

vrd     	size = 44247
	_HB_FUN_DELFILE                   _HB_FUN_ENTRYNR
	_HB_FUN_FULLPATHNAME              _HB_FUN_GETINIENTRY
	_HB_FUN_GETINISECTION             _HB_FUN_GETPPSECTION
	_HB_FUN_REGOPENKEYEXA             _HB_FUN_REGQUERYVALUEEXA
	_HB_FUN_VRD                       _HB_FUN_VRD_ATOKEN
	_HB_FUN_VRD_ERSTART               _HB_FUN_VRD_GETFIELD
	_HB_FUN_VRD_GETFULLPATH           _HB_FUN_VRD_GETGROUP
	_HB_FUN_VRD_GETREGISTRY           _HB_FUN_VRD_GL
	_HB_FUN_VRD_LF2SF                 _HB_FUN_VRD_NEWSTRUCTURE
	_HB_FUN_VRD_PRREPORT              _HB_FUN_VRD_SETFIELD
	_HB_FUN_VRD_STRCOUNT              _HB_FUN_VRD_XTOC

vrdbcode	size = 11700
	_HB_FUN_VRDBARCODE              

vrdini  	size = 3592
	_HB_FUN_GETPROFSECT               _HB_FUN_TINIER

vrditem 	size = 9016
	_HB_FUN_VRDITEM                 

vstrfun1	size = 5496
	_HB_FUN_FINDMATCH                 _HB_FUN_FIRSTWORD
	_HB_FUN_FW_AT                     _HB_FUN_FW_EXPRNASBLOCK
	_HB_FUN_FW_STRICMP                _HB_FUN_FW_STRIPCOMMENTS
	_HB_FUN_ISINLIST                  _HB_FUN_VALTYPEX

wbrowse 	size = 44751
	_HB_FUN_TWBROWSE                  _HB_FUN__AFIELDS

webapp  	size = 9352
	_HB_FUN_BUTTONHTML                _HB_FUN_CHECKBOXHTML
	_HB_FUN_CTRLSHTML                 _HB_FUN_EDITHTML
	_HB_FUN_GETWEBAPP                 _HB_FUN_ISWEBAPP
	_HB_FUN_SETWEBAPP                 _HB_FUN_STATICHTML
	_HB_FUN_WA_ADDDIALOG              _HB_FUN_WA_CONTROLLER
	_HB_FUN_WA_EXISTDIALOG            _HB_FUN_WA_GETDIALOGFROMID
	_HB_FUN_WA_GETDIALOGFROMLINK      _HB_FUN_WA_HEADER
	_HB_FUN_WA_SHOWCODEDIALOGS        _HB_FUN_WEBSERVER

webserver	size = 5462
	_HB_FUN_HBWEBSERVER               _HB_FUN_HB_URLDECODE
	_HB_FUN_OBJSETDATA                _HB_FUN_OBJTOCHAR

window  	size = 66407
	_HB_FUN_AREAD                     _HB_FUN_ASAVE
	_HB_FUN_ATOTEXT                   _HB_FUN_BRWCLASSES
	_HB_FUN_CLEARDATASLIST            _HB_FUN_DBUFFEREND
	_HB_FUN_DEVICETOUCHSPACE          _HB_FUN_FW_TOUCHFRIENDLY
	_HB_FUN_GETALLWIN                 _HB_FUN_GETDROPINFO
	_HB_FUN_GETMSGLOG                 _HB_FUN_GETSETWINSYSLOG
	_HB_FUN_GETWNDDEFAULT             _HB_FUN_MSGLOG
	_HB_FUN_NWINDOWS                  _HB_FUN_OREAD
	_HB_FUN_OWNDFROMHWND              _HB_FUN_SETALPHA
	_HB_FUN_SETBALLOON                _HB_FUN_SETDRAGBEGINWND
	_HB_FUN_SETDROPINFO               _HB_FUN_SETSKINS
	_HB_FUN_SETWNDDEFAULT             _HB_FUN_STARTFWLOG
	_HB_FUN_TWINDOW                   _HB_FUN_WNDCREATEERROR
	_HB_FUN_WNDMAIN                   _HB_FUN_WNDPARENTS
	_HB_FUN__FWH                    

wininet 	size = 7844
	_HB_FUN_FTPCREATEDIRECTORY        _HB_FUN_FTPDELETEFILE
	_HB_FUN_FTPFINDFIRSTFILE          _HB_FUN_FTPGETFILE
	_HB_FUN_FTPOPENFILE               _HB_FUN_FTPPUTFILE
	_HB_FUN_FTPRENAMEFILE             _HB_FUN_FTPSETCURRENTDIRECTORY
	_HB_FUN_INTERAUTHA                _HB_FUN_INTERNETAT
	_HB_FUN_INTERNETAU                _HB_FUN_INTERNETCLOSEHANDLE
	_HB_FUN_INTERNETCONNECT           _HB_FUN_INTERNETDI
	_HB_FUN_INTERNETFINDNEXTFILE      _HB_FUN_INTERNETGO
	_HB_FUN_INTERNETHA                _HB_FUN_INTERNETOPEN
	_HB_FUN_INTERNETREADFILE          _HB_FUN_INTERNETSETFILEPOINTER
	_HB_FUN_INTERNETST                _HB_FUN_INTERNETWRITEFILE
	_HB_FUN_INTRESPINF                _HB_FUN_WININET

winrt   	size = 3796
	_HB_FUN_ROGETACTIVATIONFACTORY    _HB_FUN_ROINITIALIZE
	_HB_FUN_ROUNINITIALIZE            _HB_FUN_TOAST
	_HB_FUN_WINDOWSCREATESTRING       _HB_FUN_WINDOWSDELETESTRING
	_HB_FUN_WINDOWSGETSTRINGRAWBUFFER  _HB_FUN_WINRTSTRING

wqout   	size = 400
	_HB_FUN_WQOUT                   

xbrcode 	size = 19199
	_HB_FUN_CFONTCODE                 _HB_FUN_TXBRCODE
	_HB_FUN_TXBRCOLCODE             

xbrgetdt	size = 7748
	_HB_FUN_RESETCAL                  _HB_FUN_SETUPCOL
	_HB_FUN_TDTXBROWSE                _HB_FUN_XBRGETDATE

xbrowse 	size = 264311
	_HB_FUN_CALCLINEWH                _HB_FUN_CONTRASTCOLOR
	_HB_FUN_DRAWHORZ                  _HB_FUN_DRAWPEN
	_HB_FUN_DRAWVERT                  _HB_FUN_EXTRACTLINE
	_HB_FUN_HASHTREE                  _HB_FUN_ISRECORDSET
	_HB_FUN_PARSEXBRCOLSPEC           _HB_FUN_SETKINETIC
	_HB_FUN_SETXBROWSE                _HB_FUN_TXBROWS
	_HB_FUN_TXBROWSE                  _HB_FUN_TXBRWCOLUMN
	_HB_FUN_XADS_KEYGOTO              _HB_FUN_XBRADOSAVE
	_HB_FUN_XBREDITMEMO               _HB_FUN_XBRGETSELECTALL
	_HB_FUN_XBRHEXEDIT                _HB_FUN_XBRIMAGEEDIT
	_HB_FUN_XBRJUSTIFY                _HB_FUN_XBRNUMFORMAT
	_HB_FUN_XBROWSABLEOBJ             _HB_FUN_XBROWSENEW
	_HB_FUN_XBRSQLRDDMODE             _HB_FUN_XBRWSETDATASOURCE
	_HB_FUN_XREPORT                 

xbrowser	size = 10775
	_HB_FUN_XBROWSE                 

xcbrowse	size = 42219
	_HB_FUN_CLICKOUTEND               _HB_FUN_DAFMTOTXT
	_HB_FUN_DRAWROWN                  _HB_FUN_GENMENUBLOCK
	_HB_FUN_TXCBROWS                  _HB_FUN_TXCBROWSE
	_HB_FUN_TXCBRWCOLUMN              _HB_FUN_XBRWLINDET
	_HB_FUN_XBRWTEXTFILE              _HB_FUN_XCBROWSEMNU
	_HB_FUN_XCBROWSENEW               _HB_FUN_XCBROWSETREE
	_HB_FUN_XMAKETREE                 _HB_FUN_XSUBTREE
	_HB_FUN_XTOGGLEFOLDER           

ximage  	size = 29213
	_HB_FUN_ANGLE3PT                  _HB_FUN_ROTATEBMP
	_HB_FUN_TXIMAGE                   _HB_FUN_WMF2EMFX
	_HB_FUN_XIMAGE                    _HB_FUN_XIMAGEARRAY

xmlview 	size = 5224
	_HB_FUN_FW_XMLVIEW                _HB_FUN_XBROWSEXML

xpad    	size = 740
	_HB_FUN_GETFREESYSTEMRESOURCES    _HB_FUN_XPADC
	_HB_FUN_XPADL                     _HB_FUN_XPADR
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278965#p278965 Sat, 12 Apr 2025 23:34:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278965#p278965
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278966#p278966

Code: Select all | Expand

Publics by module

BMPREAD 	size = 347
	_HB_FUN_FILEREAD                  _HB_FUN_READBITMAP

CTLHDLEH	size = 6976
	_HB_FUN_WNDHANDLEEVENT            _regex

FFWNDRUN	size = 400
	_GetWndApp                        _HB_FUN_SETIDLEACT
	_HB_FUN_WINRUN                    _HB_FUN___GENGPF
	_SetWndApp                        __SetAcceleratorTable
	_wLastKey                       

HARBOURC	size = 622
	_FW_GetUnicode                    _FrameProc
	_HB_FUN_ALLOCCONSOLE              _HB_FUN_DEBUGGER
	_HB_FUN_FW_SETUNICODE             _HB_FUN_GETSTDHANDLE
	_HB_FUN_SETCONSOLETITLE           _HB_FUN__LASTKEY
	_LogFile                          ___FWH

LEGACYCP	size = 0

SYSREFRE	size = 530
	_DdeRefresh                       _HB_FUN_DDEREFRESH
	_HB_FUN_SYSREFRESH                _SysRefresh

TOOLBARS	size = 970
	_HB_FUN_CREATETLBAR               _HB_FUN_INITCOMMONCONTROLS
	_HB_FUN_INITCOMMONCONTROLSEX      _HB_FUN_TBADDBUTTON
	_HB_FUN_TBADDMENU                 _HB_FUN_TBADDSEPARATOR
	_HB_FUN_TBENABLEBUTTON            _HB_FUN_TBGETRECT
	_HB_FUN_TBSETTEXT                 _HB_FUN_TTNSETTEXT

TOOLTIP 	size = 322
	_HB_FUN_CREATETOOLTIP           

WNDRUN  	size = 6572
	_GetWndProcInstance               _HB_FUN_CANREGDIALOG
	_HB_FUN_DEREGDIALOG               _HB_FUN_GETWNDAPP
	_HB_FUN_LWRUNNING                 _HB_FUN_REGDIALOG
	_HB_FUN_SETWNDAPP                 _IsModelessDialog
	_SetRunning                       _bWRunning

XPROC   	size = 152
	_HB_FUN_XCHANGEPROC             

__WNDPRO	size = 149
	_HB_FUN_WININSPECT                __DbgWndProc
	__WndProc                         _bDbgActive
	_bDbgBreak                      

aat     	size = 201
	_HB_FUN_AAT                     

accelera	size = 422
	_HB_FUN_LOADACCELERATORS          _HB_FUN_SETACCTABLE
	_HB_FUN_TRANSLATEACCELERATOR    

actx    	size = 557

anigif  	size = 101

animate 	size = 160
	_HB_FUN_ANIMOPEN                  _HB_FUN_ANIMOPENEX
	_HB_FUN_ANIMPLAY                

ansiup  	size = 227
	_HB_FUN_ANSILOWER                 _HB_FUN_ANSIUPPER
	_HB_FUN_CHARUPPER                 _HB_FUN_ISANSILOWER
	_HB_FUN_ISANSIUPPER             

arg     	size = 115
	_HB_FUN_ARG                       _HB_FUN_CARGV
	_HB_FUN_NARGC                   

atom    	size = 101
	_HB_FUN_GLOBALADDATOM             _HB_FUN_GLOBALDELATOM
	_HB_FUN_GLOBALGETATOMNAME       

b2bin   	size = 176
	_HB_FUN_B2BIN                     _HB_FUN_BIN2D
	_HB_FUN_C2HEX                     _HB_FUN_D2BIN

backgrnd	size = 436
	_HB_FUN_DitBackGrd              

bartools	size = 807
	_BtnDisable                       _HB_FUN_BARADJUST
	_HB_FUN_BTNDISABLE                _RectDisable

bitmaps 	size = 34183
	_HB_FUN_FWBITMAP                  _fwstrlwr

bmpdraw 	size = 4064
	_DrawBitmap                       _DrawGray
	_DrawGrayed                       _DrawMasked
	_DuplicateBitmap                  _FWWaterMark
	_HB_FUN_BMPALPHA                  _HB_FUN_BTNPAINT
	_HB_FUN_COPYIMAGE                 _HB_FUN_CREATECOMPATIBLEBITMAP
	_HB_FUN_DRAWBITMAP                _HB_FUN_DRAWGRAY
	_HB_FUN_DRAWMASKED                _HB_FUN_DUPLICATEBITMAP
	_HB_FUN_FWHBMPTOALPHA             _HB_FUN_FWWATERMARK
	_HB_FUN_RESIZEBMP                 _HB_FUN_SHADOWH
	_HB_FUN_SHADOWV                   _HB_FUN_STRETCHBLT

bmps    	size = 14363
	_HB_FUN_BMPEBCOLLAPSED            _HB_FUN_BMPEBEXPANDED
	_HB_FUN_BMPOLARROW                _HB_FUN_BMPOLDOTS
	_HB_FUN_CLOSELISTBAR              _HB_FUN_CLOSEOVERLISTBAR
	_HB_FUN_MSGBAR2007                _HB_FUN_OPENLISTBAR
	_HB_FUN_OPENOVERLISTBAR           _HB_FUN_QUICKAREAL
	_HB_FUN_QUICKAREAM                _HB_FUN_QUICKAREAR

bmptabs 	size = 10585
	_HB_FUN_BMP_BACK                  _HB_FUN_BMP_BACKV
	_HB_FUN_BMP_TABSEL                _HB_FUN_BMP_TABSELL
	_HB_FUN_BMP_TABSELLV              _HB_FUN_BMP_TABSELR
	_HB_FUN_BMP_TABSELRV              _HB_FUN_BMP_TABSELV
	_HB_FUN_BMP_TABUNSEL              _HB_FUN_BMP_TABUNSELV
	_HB_FUN_BMP_TABUNSL               _HB_FUN_BMP_TABUNSLV
	_HB_FUN_BMP_TABUNSR               _HB_FUN_BMP_TABUNSRV

brushes 	size = 22037
	_CircleGradient                   _CreateMemBitmap
	_CreateMemBitmap2                 _CreateMemBitmap3
	_DiagonalGradient                 _Gradient
	_HB_FUN_ABPAINT                   _HB_FUN_ATREEBMPS
	_HB_FUN_BMP_ARROWBCK              _HB_FUN_CIRCLEGRADIENT
	_HB_FUN_CREATEHATCHBRUSH          _HB_FUN_DIAGONALGRADIENT
	_HB_FUN_EMF2WMF                   _HB_FUN_FIXSAYS
	_HB_FUN_FWBRUSHES                 _HB_FUN_FWLOGOBITMAP
	_HB_FUN_GETDRAWITEM               _HB_FUN_GETDRAWMENU
	_HB_FUN_GETMEAITEM                _HB_FUN_GRADIENT
	_HB_FUN_ISBREAK                   _HB_FUN_ISDIBITMAP
	_HB_FUN_ISMENUITEM                _HB_FUN_ISMISEPARATOR
	_HB_FUN_ISSEPARATOR               _HB_FUN_MISTEXT
	_HB_FUN_MSGBAR2010                _HB_FUN_MSGBAR2015
	_HB_FUN_PARENTIMAGE               _HB_FUN_WMF2EMF
	_HB_ISDIBitmap                  

c5cnew  	size = 28735
	BrowseCallbackProc                _BitmapFromCode
	_C5GradientFill                   _C5_CloseThemeData
	_C5_DrawThemeBackground           _C5_IsAppThemed
	_C5_IsThemeActive                 _C5_OpenThemeData
	_DrawAlphaTransparentBitmap       _DrawBitmapEx
	_DrawBitmapTransparent            _DrawGradientFill
	_DrawMaskedColor                  _FillSolidRect
	_FrameDotEx2                      _GetFontMenu
	_GradientFill0                    _HB_FUN_ARROWDOWN
	_HB_FUN_ARROWUP                   _HB_FUN_BMPARROWDOWNBLACK
	_HB_FUN_BMPARROWDOWNNET           _HB_FUN_BMPARROWDOWNWHITE
	_HB_FUN_BMPARROWUPBLACK           _HB_FUN_BMPARROWUPWHITE
	_HB_FUN_BMPBLACKARROWS            _HB_FUN_BMPBTNDBAR
	_HB_FUN_BMPCARPETA                _HB_FUN_BMPCDROM
	_HB_FUN_BMPHDDISK                 _HB_FUN_BMPHEIGHT
	_HB_FUN_BMPHTML                   _HB_FUN_BMPNETDRIVE
	_HB_FUN_BMPTOGRAY                 _HB_FUN_BMPWHITEARROWS
	_HB_FUN_BMPWIDTH                  _HB_FUN_BOX
	_HB_FUN_BOXEX                     _HB_FUN_C5CURSORCATCH
	_HB_FUN_C5CURSORHAND              _HB_FUN_C5CURSORSEP
	_HB_FUN_C5DEGRADA                 _HB_FUN_C5DRAWTEXT
	_HB_FUN_C5LINE                    _HB_FUN_C5ROUNDBOX
	_HB_FUN_C5ROUNDRECT               _HB_FUN_C5_CLOSETHEMEDATA
	_HB_FUN_C5_DRAWTHEMEBACKGROUND    _HB_FUN_C5_DRAWTHEMEICON
	_HB_FUN_C5_DRAWTHEMETEXT          _HB_FUN_C5_EXTFLOODFILL
	_HB_FUN_C5_GETCURRENTTHEMENAME    _HB_FUN_C5_GETTHEMECOLOR
	_HB_FUN_C5_GETTHEMEFONT           _HB_FUN_C5_ISAPPTHEMED
	_HB_FUN_C5_ISTHEMEACTIVE          _HB_FUN_C5_OPENTHEMEDATA
	_HB_FUN_CGETFILEEX                _HB_FUN_CGETFOLDER
	_HB_FUN_COMPATBMP                 _HB_FUN_COMPATDC
	_HB_FUN_CREAFBOLD                 _HB_FUN_CREAFCAPT
	_HB_FUN_CREAFUNDER                _HB_FUN_CREATEBRUSHDOTTED
	_HB_FUN_CREATECAPTIONFONT         _HB_FUN_CREATEFONTBOLD
	_HB_FUN_CREATEFONTUNDERLINE       _HB_FUN_CREATEHGRIP
	_HB_FUN_DEGRADASO                 _HB_FUN_DRAWALPHATRANSPARENTBITMAP
	_HB_FUN_DRAWBITMAPEX              _HB_FUN_DRAWEDGE
	_HB_FUN_DRAWFRAMECONTROL          _HB_FUN_DRAWGRADIENTFILL
	_HB_FUN_DRAWIMAGEBLEND            _HB_FUN_DRAWMASKEDCOLOR
	_HB_FUN_DRAWSTATESTRING           _HB_FUN_EQUALRECT
	_HB_FUN_EXCLUDECLIPRECT           _HB_FUN_FILLSOLIDRECT
	_HB_FUN_FILLSOLIRC                _HB_FUN_FRAMEDOTEX
	_HB_FUN_FWDELETEFILE              _HB_FUN_GETBMPICONEXT
	_HB_FUN_GETCURRENTOBJECT          _HB_FUN_GETDRAWITEMSTRUCT
	_HB_FUN_GETSCROLLINFOPOS          _HB_FUN_GETSIZETEXT
	_HB_FUN_GETTEXTLEN                _HB_FUN_HGRADIENTFILL
	_HB_FUN_HORIZONTALGRADIENT        _HB_FUN_ICONTOBMP
	_HB_FUN_ICONTOGRAY                _HB_FUN_IMAGELIST_ADD
	_HB_FUN_IMAGELIST_ADDMASKED       _HB_FUN_IMAGELIST_CREATE
	_HB_FUN_IMAGELIST_DESTROY         _HB_FUN_IMAGELIST_DRAW
	_HB_FUN_IMAGELIST_GETICONSIZE     _HB_FUN_IMAGELIST_LOADIMAGE
	_HB_FUN_INTRECT                   _HB_FUN_LINEEX
	_HB_FUN_MENUDRAWITEM2             _HB_FUN_MENUMEASUREITEM2
	_HB_FUN_POW                       _HB_FUN_PTINRECT
	_HB_FUN_REGISTERWINDOWMESSAGE     _HB_FUN_ROUNDRECTEX
	_HB_FUN_SETBRUSHORG               _HB_FUN_SETEDITCLIENTRIGHT
	_HB_FUN_SETMENUITEMBITMAPS        _HB_FUN_SETSTRETCHBLTMODE
	_HB_FUN_SHADERECT                 _HB_FUN_STARTTRACKMOUSELEAVE
	_HB_FUN_TRANSPARENTBLT            _HB_FUN_TRANSPARENTBLT2
	_HB_FUN_VALIDATERECT              _HB_FUN_VERTICALGRADIENT
	_HB_FUN_VGRADIENTFILL             _HorizontalGradient
	_ShadeRect                        _StartTrackMouseLeave
	_VerticalGradient               

caldll32	size = 552
	_GetCallProc32                    _HB_FUN_GETHWND32
	_HB_FUN_GETPROC32                 _HB_FUN_GETVDMP16
	_HB_FUN_GETVDMP32                 _HB_FUN_LADDTOC

calendar	size = 1574
	_HB_FUN_GETDAYSTATE               _HB_FUN_ISOVERDAY
	_HB_FUN_MONTHCAL_GETCOLOR         _HB_FUN_MONTHCAL_GETCURRENTVIEW
	_HB_FUN_MONTHCAL_GETCURSEL        _HB_FUN_MONTHCAL_GETFIRSTDAYOFWEEK
	_HB_FUN_MONTHCAL_GETMAXSELCOUNT   _HB_FUN_MONTHCAL_GETMINREQRECT
	_HB_FUN_MONTHCAL_GETMONTHRANGE    _HB_FUN_MONTHCAL_GETRANGE
	_HB_FUN_MONTHCAL_GETSELRANGE      _HB_FUN_MONTHCAL_GETTODAY
	_HB_FUN_MONTHCAL_GETVIEWCHANGEVALUES  _HB_FUN_MONTHCAL_SETCOLOR
	_HB_FUN_MONTHCAL_SETCURRENTVIEW   _HB_FUN_MONTHCAL_SETCURSEL
	_HB_FUN_MONTHCAL_SETFIRSTDAYOFWEEK  _HB_FUN_MONTHCAL_SETMAXSELCOUNT
	_HB_FUN_MONTHCAL_SETRANGE         _HB_FUN_MONTHCAL_SETSELRANGE
	_HB_FUN_MONTHCAL_SETTODAY         _HB_FUN_MONTHCAL_SIZERECTTOMIN
	_HB_FUN_SETDAYSTATE             

calexc  	size = 1908
	_HB_FUN_HNEXTITEM                 _HB_FUN_HNEXTITEMO
	_HB_FUN_HPREVITEM                 _HB_FUN_HPREVITEMO
	_HB_FUN_POLYLINE                  _HB_FUN_RGBFILTER

calldll 	size = 816
	_HB_FUN_FWCALLDLL               

calldllc	size = 0

caret   	size = 154
	_HB_FUN_CREATECARET               _HB_FUN_DESTROYCARET
	_HB_FUN_GETCARETPOS               _HB_FUN_HIDECARET
	_HB_FUN_SETCARETPOS               _HB_FUN_SHOWCARET

changepr	size = 92
	_HB_FUN_CHANGEPROC                _HB_FUN_LINKDLG
	_HB_FUN_RESTPROC                

chr2data	size = 65
	_HB_FUN_CCHR2DATA               

clpbrd  	size = 1050
	_HB_FUN_CLOSECLIPBOARD            _HB_FUN_EMPTYCLIPBOARD
	_HB_FUN_GETCLPDATA                _HB_FUN_GETPRIORITYCLIPBOARDFORMAT
	_HB_FUN_OPENCLIPBOARD             _HB_FUN_SETCLIPBOARDDATA

clrchoos	size = 305
	ComDlgHkColor                     _HB_FUN_CHOOSECOLOR

clt2scr 	size = 256
	_HB_FUN_CLIENTTOSCREEN            _HB_FUN_SCREENTOCLIENT

codegtf 	size = 641
	_HB_FUN_CODETEXT                  _HB_FUN_DECODETEXT

color   	size = 2659
	_HB_FUN_ARGB2RGB                  _HB_FUN_BGR2RGB
	_HB_FUN_CLR2ARRAY                 _HB_FUN_GETBKCOLOR
	_HB_FUN_GETSYSCOLOR               _HB_FUN_GETTEXTCOLOR
	_HB_FUN_HSLTORGB                  _HB_FUN_NARGB
	_HB_FUN_NRGB                      _HB_FUN_RGBTOHSL
	_HB_FUN_SETBKCOLOR                _HB_FUN_SETBKMODE
	_HB_FUN_SETSYSCOLORS              _HB_FUN_SETTEXTCOLOR
	_hashrgbtocolorref                _hsl_to_rgb
	_rgb_to_hsl                     

colorton	size = 1009
	_HB_FUN_LIGHTCOLOR                _HB_FUN_NCOLORTON
	_HB_FUN_NGETBACKRGB               _HB_FUN_NGETFORERGB
	_HB_FUN_NRGB2ARRAY                _HB_FUN_NRGBBLUE
	_HB_FUN_NRGBGREEN                 _HB_FUN_NRGBRED
	_bColorToN                        _lColorToRGB

comm    	size = 1417
	_CloseComm                        _EnableCommNotification
	_FlushComm                        _GetCommError
	_GetCommEventMask                 _HB_FUN_BUILDCOMMDCB
	_HB_FUN_CLOSECOMM                 _HB_FUN_ENABLECOMMNOTIFICATION
	_HB_FUN_ESCAPECOMMFUNCTION        _HB_FUN_FLUSHCOMM
	_HB_FUN_GETCOMMERROR              _HB_FUN_OPENCOMM
	_HB_FUN_READCOMM                  _HB_FUN_SETCOMMSTATE
	_HB_FUN_WRITECOMM                 _OpenComm
	_ReadComm                         _SetCommEventMask
	_WriteComm                      

crc     	size = 1642
	_HB_FUN_NCRCERROR                 _HB_FUN_NFILECRC
	_HB_FUN_NSTRCRC                 

createpa	size = 48
	_HB_FUN_CREATEPATTERNBRUSH      

createpe	size = 40
	_HB_FUN_CREATEPEN               

createso	size = 149
	_HB_FUN_CREATESOLIDBRUSH          _HB_FUN_SETBRUSHORGEX

creatwnd	size = 207
	_HB_FUN_CREATEWINDOW              _HB_FUN_GETERRMSG

ctl3d   	size = 858
	Ctl3dAutoSubClass                 Ctl3dEnabled
	Ctl3dRegister                     Ctl3dSubClassDlgEx
	Ctl3dSubclassCtl                  Ctl3dUnregister
	Ctl3dUnsubclassCtl                _HB_FUN_CTL3DAUTOS
	_HB_FUN_CTL3DDLGEX                _HB_FUN_CTL3DLOOK
	_HB_FUN_CTL3DREGIS                _HB_FUN_CTL3DUNREG
	_HB_FUN_SET3DLOOK               

ctrl2chr	size = 643
	_HB_FUN_CCTRL2CHR                 _HB_FUN_CTRLFONTFACENAME
	_HB_FUN_CTRLFONTSIZE              _HB_FUN_CTRLGETBACKCOLOR
	_HB_FUN_CTRLGETTEXTCOLOR          _HB_FUN_GETDIALOGBASEUNITS

ctrldraw	size = 2059
	_HB_FUN_BARINVERT                 _HB_FUN_CTRLDRAW
	_HB_FUN_CTRLDRAWFOCUS             _HB_FUN_LBXDRAWITEM
	_HB_FUN_LBXMEASURE                _HB_FUN_RECTDOTTED

cursors 	size = 4370
	_CursorArrow                      _CursorWait
	_HB_FUN_CREATEBMPCURSOR           _HB_FUN_CURSOR
	_HB_FUN_CURSORARROW               _HB_FUN_CURSORCATCH
	_HB_FUN_CURSORDRAG                _HB_FUN_CURSORHAND
	_HB_FUN_CURSORIBEAM               _HB_FUN_CURSORNO
	_HB_FUN_CURSORNS                  _HB_FUN_CURSOROPENHAND
	_HB_FUN_CURSORSEARCH              _HB_FUN_CURSORSIZE
	_HB_FUN_CURSORSTOP                _HB_FUN_CURSORWAIT
	_HB_FUN_CURSORWE                  _HB_FUN_DESTROYCURSOR
	_HB_FUN_GETCURSORDRAG             _HB_FUN_GETCURSORHAND
	_HB_FUN_GETCURSORPOS              _HB_FUN_GETCURSORSEARCH
	_HB_FUN_GETCURSORSTOP             _HB_FUN_GETGUIRESOURCES
	_HB_FUN_LOADCURSOR                _HB_FUN_SETCURSORPOS
	_HB_FUN_SHOWCURSOR                _HB_FUN_WSETCURSOR

cvrflow 	size = 3844
	_BackImg                          _BmpPer
	_BmpPerspec                       _DrawReflex
	_HB_FUN_BMPPER                    _HB_FUN_BMPPERSPEC
	_HB_FUN_DRAWREFLEX              

cwebview	size = 1368

datepick	size = 385
	_HB_FUN_GETDATEPICK               _HB_FUN_INITCOMMON
	_HB_FUN_SETDATEPICK             

datetime	size = 201
	_HB_FUN_FILETIMETODATE            _HB_FUN_FILETIMETOTIME
	_HB_FUN_SYSTIME                 

dbl2flt 	size = 186
	_HB_FUN_NDBL2FLT                  _dbl2flt

dc      	size = 1788
	_HB_FUN_BITBLT                    _HB_FUN_CREATECDC
	_HB_FUN_CREATECOMPATIBLEDC        _HB_FUN_CREATEDC
	_HB_FUN_DBUFFERSTART              _HB_FUN_DELETEDC
	_HB_FUN_FWDISPBEGIN               _HB_FUN_FWDISPEND
	_HB_FUN_FWRESTSCREEN              _HB_FUN_FWSAVESCREEN
	_HB_FUN_GETDC                     _HB_FUN_GETWINDOWDC
	_HB_FUN_RELEASEDC                 _HB_FUN_RESTOREDC
	_HB_FUN_SAVEDC                    _HB_FUN_SETDIBITSTODEVICE
	_HB_FUN_SETVIEWORG                _HB_FUN_SETVIEWPORTEXT
	_HB_FUN_SETWINDOWEXT            

ddeml   	size = 1121
	_ClientCallback                   _HB_FUN_CLIENTCALLBACK
	_HB_FUN_DDEACCESSDATA             _HB_FUN_DDECLIENTTRANSACTION
	_HB_FUN_DDECMPSTRINGHANDLES       _HB_FUN_DDECONNECT
	_HB_FUN_DDECREATEDATAHANDLE       _HB_FUN_DDECREATESTRINGHANDLE
	_HB_FUN_DDEDISCONNECT             _HB_FUN_DDEFREEDATAHANDLE
	_HB_FUN_DDEFREESTRINGHANDLE       _HB_FUN_DDEGETDATA
	_HB_FUN_DDEGETLASTERROR           _HB_FUN_DDEINITIALIZE
	_HB_FUN_DDENAMESERVICE            _HB_FUN_DDEQUERYSTRING
	_HB_FUN_DDEUNINITIALIZE           _HB_FUN_SERVERCALLBACK
	_ServerCallback                 

ddexc   	size = 112
	_HB_FUN_DDECOMMAND                _HB_FUN_DDEGETCOMMAND

delobjec	size = 103
	_HB_FUN_DELETEOBJECT              _HB_FUN_ISGDIOBJECT
	_IsGDIObject                    

desktop 	size = 154
	_HB_FUN_GETDESKTOPAREA            _HB_FUN_GETDESKTOPWINDOW
	_HB_FUN_SETDESKWALLPAPER        

device  	size = 639
	_HB_FUN_DEVICECAPABILITIES        _HB_FUN_GETDEVICECAPS
	_HB_FUN_GETDRIVETYPE              _HB_FUN_GETLOGICALDRIVES
	_HB_FUN_GETLOGICALDRIVESTRINGS    _HB_FUN_SETROP2

dib     	size = 1348
	_CreateDIBPalette                 _DibBits
	_DibDraw                          _DibRead
	_DibToStr                         _DibWrite
	_HB_FUN_CREATEDIBITMAP            _HB_FUN_DIBDRAW
	_HB_FUN_DIBHEIGHT                 _HB_FUN_DIBPALETTE
	_HB_FUN_DIBREAD                   _HB_FUN_DIBTOSTR
	_HB_FUN_DIBWIDTH                  _HB_FUN_DIBWRITE
	wDIBColors                      

dibbmp  	size = 1257
	_DibFromBitmap                    _DibNumColors
	_HB_FUN_ALPHAFILL                 _HB_FUN_BMPTOSTR
	_HB_FUN_DIBFROMBITMAP             _HB_FUN_HASALPHA
	_isalphabmp                       _setalphabits

disk    	size = 104
	_HB_FUN_GETDISKFREESPACEEX      

dlg2chr 	size = 461
	_HB_FUN_CDLG2CHR                  _HB_FUN_GETDLGBASEUNITS

dlgbox  	size = 851
	_AnsiToWide                       _HB_FUN_DIALOGBOX
	_HB_FUN_DIALOGBOXINDIRECT         _HB_FUN_DIALOGBOXINDIRECTW
	_HB_FUN_DIALOGBOXW              

dll     	size = 0

dlogbox 	size = 708
	_HB_FUN_CREATEDLG                 _HB_FUN_CREATEDLGINDIRECT
	_HB_FUN_CREATEDLGINDIRECTW        _HB_FUN_CREATEDLGW
	_HB_FUN_ENDDIALOG                 _HB_FUN_NDLGBOX
	_HB_FUN_SETOWNERDRAWITEMHEIGHT  

dotnet  	size = 0

dots    	size = 729
	_HB_FUN_DOTSADJUST              

drawgrid	size = 117
	_HB_FUN_DRAWGRID                

drawicon	size = 1202
	_HB_FUN_EXTDRAWICON               _HB_FUN_GETPROMPTRECT
	_MsgAdjust                      

drawing 	size = 1618
	_HB_FUN_ARC                       _HB_FUN_CHORD
	_HB_FUN_DRAWSTATE                 _HB_FUN_ELLIPSE
	_HB_FUN_EXTFLOODFILL              _HB_FUN_FLOODFILL
	_HB_FUN_GETPIXEL                  _HB_FUN_LINETO
	_HB_FUN_PIE                       _HB_FUN_POLYPOLYGON
	_HB_FUN_RECTANGLE                 _HB_FUN_SETPIXEL
	_HB_FUN_SETPOLYFILLMODE           _MoveTo

drawitem	size = 274
	_HB_FUN_DRAWMSGITEM             

drawsele	size = 1118
	_HB_FUN_DRAWSELECTOR            

drawslid	size = 4605
	_HB_FUN_DRAWSLIDER              

drives  	size = 201
	_HB_FUN_GETCURDIR                 _HB_FUN_ISCDROM
	_HB_FUN_ISDISKETTE                _HB_FUN_SETCURDIR
	_HB_FUN_SETCURDRIVE             

dropfile	size = 829
	DropTarget_AddRef                 DropTarget_DragEnter
	DropTarget_DragLeave              DropTarget_DragOver
	DropTarget_Drop                   DropTarget_QueryInterface
	DropTarget_Release                _DropTarget_Vtbl
	_HB_FUN_DRAGACCEPTFILES           _HB_FUN_DRAGFINISH
	_HB_FUN_DRAGQUERYFILES            _HB_FUN_DRAGQUERYPOINT
	_HB_FUN_REGISTERDRAGDROP          _HB_FUN_REVOKEDRAGDROP

encript 	size = 548
	_HB_FUN_DECRYPT                   _HB_FUN_ENCRYPT

ffdlgprc	size = 425
	DialogWndProc                     DlgNoModalProc
	_HB_FUN_ODLGFROMHWND              _SetDlgNoModal

fgetclip	size = 624
	_HB_FUN_GETFCLIPDATA              _HB_FUN_SETFCLIPDATA

fgetline	size = 5353
	_GetTextExtent                    _HB_FUN_CARETFLINE
	_HB_FUN_DRAWFGETLINE              _HB_FUN_FORMATFLINE
	_HB_FUN_HEIGHTFLINE               _HB_FUN_LENFLINE
	_HB_FUN_WIDTHFLINE                _HB_FUN__DRAWFGETLINE

files   	size = 865
	_HB_FUN_FATTRIB                   _HB_FUN_FCOMMIT
	_HB_FUN_GETFTIME                  _HB_FUN_SETFTIME

findtext	size = 354
	_HB_FUN_FINDTEXT                

foldtool	size = 3108
	_HB_FUN_FOLDPAINT               

fonts   	size = 3072
	_HB_FUN_ADDFONTRESOURCE           _HB_FUN_BASETEXT
	_HB_FUN_CHOOSEFONT                _HB_FUN_CREATEFONT
	_HB_FUN_CREATEFONTAS              _HB_FUN_GETFACEFONTMENU
	_HB_FUN_GETFONTHEIGHT             _HB_FUN_GETFONTINFO
	_HB_FUN_GETFONTMENU               _HB_FUN_GETFONTNAMES
	_HB_FUN_GETFONTWIDTH              _HB_FUN_GETHEIGHTFONTMENU
	_HB_FUN_GETHEIGHTMENU             _HB_FUN_GETHFONTFROMINFO
	_HB_FUN_GETWIDTHFONTMENU          _HB_FUN_GETWIDTHMENU
	_HB_FUN_HFONTTOAFONT              _HB_FUN_REMOVEFONTRESOURCE

ftext   	size = 683
	_HB_FUN_CFREADLINE                _HB_FUN_CSTRWORD
	_HB_FUN_LGETTEXTLINE              _HB_FUN_NTXTLINES
	__TReadLn                         _bStrAt

fwarray 	size = 1346
	_fwArrayAdd                       _fwArrayDel
	_fwArrayFree                      _fwArrayGet
	_fwArrayIns                       _fwArrayLen
	_fwArrayLock                      _fwArrayNew
	_fwArraySet                       _fwArraySize
	_fwArrayTraverse                  _fwArrayUnlock

fwbmp   	size = 7176
	_AlphaBlendNew                    _HB_FUN_CROPIMAGE
	_HB_FUN_NBMPCOLORS                _HB_FUN_NBMPHEIGHT
	_HB_FUN_NBMPWIDTH                 _HB_FUN_PALBMPDRAW
	_HB_FUN_PALBMPLOAD                _HB_FUN_PALBMPREAD
	_HB_FUN_PALBMPREALIZE             _HB_FUN_PALBTNPAINT
	_HB_FUN_TRANSBMP                  _MaskRegion
	_TransBmp                         _TransBmpNew
	_drawbmp_alpha                    _drawbmp_trans
	_hPalBitmapDraw                   _hPalBitmapNew

fwcrc8  	size = 326
	_HB_FUN_FW_CRC8                 

fwgif   	size = 34168
	FW_WndProc                        _FWGIFClass
	_FWReadFile                       _HB_FUN_FWGIFEND
	_HB_FUN_FWGIFISRUNNING            _HB_FUN_FWGIFPLAY
	_HB_FUN_FWGIFRESIZE               _HB_FUN_FWGIFRESTART
	_HB_FUN_FWGIFSTOP                 _HB_FUN_FWGIFWINDOW
	_HB_FUN_FWIGNOREBCK               _HB_FUN_FWSETGIFBRUSH
	_HB_FUN_FWSETGIFSIZING            _HB_FUN_GETGIFINFO
	_hin                              _last_passed
	_pass                           

fwmatrix	size = 3858
	_HB_FUN_MATRIX_ARRAY              _HB_FUN_MATRIX_CALC
	_HB_FUN_MATRIX_CREATE             _HB_FUN_MATRIX_DETERMINANT
	_HB_FUN_MATRIX_IDENTITY           _HB_FUN_MATRIX_INVERT
	_HB_FUN_MATRIX_MMULT              _HB_FUN_MATRIX_RANDOM
	_HB_FUN_MATRIX_REFLECT            _HB_FUN_MATRIX_RELEASE
	_HB_FUN_MATRIX_ROW                _HB_FUN_MATRIX_SUMOFROWS
	_HB_FUN_MATRIX_TRANSPOSE          _HB_FUN_MATRIX_VAL
	_array_determinant                _calc
	_matrix_adjunct                   _matrix_check
	_matrix_clone                     _matrix_copyfrom
	_matrix_determinant               _matrix_identity
	_matrix_invert                    _matrix_linear_calc
	_matrix_mmult                     _matrix_new
	_matrix_random                    _matrix_release
	_matrix_scalar_calc               _matrix_sigmoid
	_matrix_sigmoid_derivative        _matrix_sumofrows
	_matrix_transpose               

fwpalctl	size = 742
	_HB_FUN_PALCHGEVENT               _HB_FUN_QRYNEWPALEVENT
	_HB_FUN_SETFOREBMP                _IsForePalette
	_PalBmpRealize                  

fwpng   	size = 2899
	_FillBitmap                       _HB_FUN_CONVERTEMF2PNG
	_HB_FUN_FWOPENPNGFILE             _HB_FUN_FWPNGFROMMEMORY
	_HB_FUN_SAVE2PNGFILE              _IsPng
	_imgbuf_alloc                     _imgbuf_free
	_imgbuf_init                      _pix
	_pixel_at                         _save_png_to_file

fwstr   	size = 484
	_fw_memmove                       _fw_strcat
	_fw_strchr                        _fw_strcpy
	_fw_strncmp                       _fw_strstr
	_fw_wcslen                      

fwunicode	size = 7189
	_FW_AnsiToWide                    _FW_WideToAnsi
	_HB_FUN_ANSITOUTF8                _HB_FUN_APPENDMENUW
	_HB_FUN_CREATEWINDOWEXW           _HB_FUN_DRAWTEXTW
	_HB_FUN_EXTTEXTOUTW               _HB_FUN_FW_CDPTRANSLATE
	_HB_FUN_FW_LEFT                   _HB_FUN_FW_OEMTOUTF8
	_HB_FUN_FW_RIGHT                  _HB_FUN_FW_SETCDP
	_HB_FUN_FW_STRPEEK                _HB_FUN_FW_STRTOUTF8
	_HB_FUN_FW_SUBSTR                 _HB_FUN_FW_UTF8CHR
	_HB_FUN_FW_UTF8LEN                _HB_FUN_FW_UTF8TOOEM
	_HB_FUN_FW_UTF8TOSTR              _HB_FUN_GETACP
	_HB_FUN_GETCLASSINFOW             _HB_FUN_GETOEMCP
	_HB_FUN_GETTEXTWIDTHW             _HB_FUN_HBCDP
	_HB_FUN_INSERTMENUW               _HB_FUN_MENUDRAWITEMW
	_HB_FUN_MSGINFOW                  _HB_FUN_MSGPAINTW
	_HB_FUN_REGISTERCLASSW            _HB_FUN_STRTOWIDE
	_HB_FUN_TEXTOUTW                  _HB_FUN_UTF8TOANSI
	_HB_FUN_WIDETOSTR                 _HB_FUN_WTEXTOUTW
	_UTF16toUTF8                      _UTF8toUTF16
	_fw_parWide                       _fw_retWide
	_hasbom8                          _hbcdp_to_wincdp
	_is2byteansi                      _is_utf8
	_strlentowidestr                  _strpart
	_strtowidestr                     _utf8part
	_widestrlentostr                  _widestrtostr

gdipfwh 	size = 4071

gdiplus 	size = 2770
	_gdiplusStartupInput              _gdiplusToken

getdir  	size = 815
	_HB_FUN_CGETDIR                   _HB_FUN_CGETDIRA
	_HB_FUN_FW_FOLDERCHANGED        

getdlgit	size = 96
	_HB_FUN_GETDLGCTRLID              _HB_FUN_GETDLGITEM
	_HB_FUN_NEXTDLGTAB              

getfile 	size = 2126
	ComDlgHkFile                      _HB_FUN_CGETFILE
	_HB_FUN_CGETFILEA                 _HB_FUN_NGETFILEFILTER

getproca	size = 219
	_HB_FUN_GETPRADD                  _HB_FUN_GETPROCADD
	_HB_FUN_SETPROCADDRESS          

getstkob	size = 82
	_HB_FUN_GETSTOCKOBJECT            _HB_FUN_SETBLACKPEN
	_HB_FUN_SETWHITEPEN             

gettext 	size = 918
	_HB_FUN_GETWINDOWTEXT             _HB_FUN_GETWINTXTLENGHT
	_HB_FUN_MGETLINE                  _HB_FUN_MGETREPLACE
	_HB_FUN_WINLOWER                  _HB_FUN_WINUPPER
	_UTF16toANSI                      _UTF16toSTR8
	_ispureAnsiAsWide               

gettextw	size = 400
	_HB_FUN_GETTEXTHEIGHT             _HB_FUN_GETTEXTWIDTH

getwnd  	size = 179
	_HB_FUN_CHILDWINDOWFROMPOINT      _HB_FUN_GETWINDOW
	_HB_FUN_GETWINDOWTHREADPROCESSID  _HB_FUN_GETWINDOWWORD
	_HB_FUN_GETWNDTASK              

handlist	size = 1172
	__fwAddGlobal                     __fwDelGlobal
	__fwFreeAllGlobals                __fwFreeAllLibrarys
	__fwFreeLibInstance               __fwFreeLibrary
	__fwLoadLibrary                 

harddisk	size = 233
	_HB_FUN_NSERIALA                  _HB_FUN_NSERIALHD
	_HB_FUN_VOLUMENAME              

help    	size = 726
	_HB_FUN_GETHELPFILE               _HB_FUN_GETHELPTOPIC
	_HB_FUN_HELPCTRLHWND              _HB_FUN_HELPSETPOS
	_HB_FUN_HELPSETTOPIC              _HB_FUN_SETHELPFILE
	_HB_FUN__SETHELPFI              

hex2dec 	size = 226
	_HB_FUN_HEXTODEC                  _fw_hextodec

hiloword	size = 196
	_HB_FUN_NHIBYTE                   _HB_FUN_NHIWORD
	_HB_FUN_NLOBYTE                   _HB_FUN_NLOWORD

icons   	size = 4610
	_DrawIconFocus                    _GetIconSize
	_HB_FUN_BMPFROMICON               _HB_FUN_BMPFROMICONEX
	_HB_FUN_DESTROYICON               _HB_FUN_DRAWICON
	_HB_FUN_DRAWICONEX                _HB_FUN_DRAWICONFOCUS
	_HB_FUN_DUPLICATEICON             _HB_FUN_EXTRACTICON
	_HB_FUN_GETICONSIZE               _HB_FUN_HASICONALPHA
	_HB_FUN_HBMPFROMHICON             _HB_FUN_ICON_READ
	_HB_FUN_ICON_READEX               _HB_FUN_ISHICON
	_HB_FUN_LOADICON                  _HB_FUN_LOADIMAGEFILEICON
	_HB_FUN_LOADIMAGERESICON          _HB_FUN_NICONS
	_hasIconAlpha                   

imagelis	size = 639
	_HB_FUN_ILADD                     _HB_FUN_ILADDICON
	_HB_FUN_ILADDMASKED               _HB_FUN_ILCREATE
	_HB_FUN_ILDESTROY                 _HB_FUN_ILLOADIMAGE
	_HB_FUN_ILSETBKCOLOR            

instance	size = 251
	_GetInstance                      _HB_FUN_GETFOCUS
	_HB_FUN_GETINSTANCE               _HB_FUN_POSTQUITMESSAGE
	_HB_FUN_SETFOCUS                  _HB_FUN_SETFOREGROUNDWINDOW
	_HB_FUN_SHOWWINDOW                _HB_FUN__SETFOCUS

joystick	size = 504
	_HB_FUN_JOYGETDEVCAPS             _HB_FUN_JOYGETNUMDEVS
	_HB_FUN_JOYGETPOS                 _HB_FUN_JOYGETTHRESHOLD
	_HB_FUN_JOYRELEASECAPTURE         _HB_FUN_JOYSETCAPTURE
	_HB_FUN_JOYSETTHRESHOLD         

keybrd  	size = 457
	_HB_FUN_FW_SENDKEY                _HB_FUN_GETASYNCKEY
	_HB_FUN_GETKEYSTATE               _HB_FUN_GETKEYTOGGLE
	_HB_FUN_KEYTOGGLE                 _HB_FUN_SENDKEY
	_HB_FUN____KEYBOARD               _PostVirtualKeyEvent

lbx     	size = 282
	_HB_FUN_LBXGETITEM                _HB_FUN_LBXGETSELITEMS
	_HB_FUN_MEASUREITEM             

listview	size = 1396
	_HB_FUN_GETNMLISTVIEWITEM         _HB_FUN_LVDELETEITEM
	_HB_FUN_LVENABLEGROUPVIEW         _HB_FUN_LVFINDITEM
	_HB_FUN_LVGROUPSETSTATE           _HB_FUN_LVINSERTGROUP
	_HB_FUN_LVINSERTGROUPINLIST       _HB_FUN_LVINSERTINLIST
	_HB_FUN_LVINSERTITEM              _HB_FUN_LVINSERTITEMGROUP
	_HB_FUN_LVSETGROUP                _HB_FUN_LVSETITEMSELECT
	_HB_FUN_LVSETITEMTEXT             _HB_FUN_LVSETSTYLE

loadbmp 	size = 169
	_HB_FUN_CREATEMEMBITMAP           _HB_FUN_HSYSBITMAP
	_HB_FUN_LOADBITMAP              

longname	size = 84
	_HB_FUN_LCLOSE                    _HB_FUN_LCREAT
	_HB_FUN_LOPEN                   

lzexpand	size = 112
	_HB_FUN_LZCOPYFILE              

makeintr	size = 19
	_HB_FUN_MAKEINTRESOURCE         

makelong	size = 48
	_HB_FUN_NMAKELONG               

mapi    	size = 3875
	_HB_FUN_MAPIADDRESS               _HB_FUN_MAPIDELETEMAIL
	_HB_FUN_MAPIFINDNEXT              _HB_FUN_MAPILOGOFF
	_HB_FUN_MAPILOGON                 _HB_FUN_MAPIREADMAIL
	_HB_FUN_MAPIRESOLVENAME           _HB_FUN_MAPISENDDOCUMENTS
	_HB_FUN_MAPISENDMAIL            

mci     	size = 728
	_HB_FUN_AUXGETCAPS                _HB_FUN_AUXGETDEV
	_HB_FUN_AUXGETVOL                 _HB_FUN_AUXSETVOL
	_HB_FUN_MCIGETERRORSTRING         _HB_FUN_MCISENDCOMMAND
	_HB_FUN_MCISENDSTR                _HB_FUN_NMCIOPEN
	_HB_FUN_NMCIPLAY                  _HB_FUN_NMCIWINDOW

mdi     	size = 871
	_HB_FUN_CMDISTRUCT                _HB_FUN_CREATEMDIWINDOW
	_HB_FUN_GETFRAMEPROC              _HB_FUN_GETMDICHLPROC
	_HB_FUN_MDICTRLADJUST             _WndFrameProc

mem     	size = 401
	_HB_FUN_GETFREESPACE              _HB_FUN_GLOBALALLOC
	_HB_FUN_GLOBALCOMPACT             _HB_FUN_GLOBALDATA
	_HB_FUN_GLOBALFREE                _HB_FUN_GLOBALLOCK
	_HB_FUN_GLOBALREALLOC             _HB_FUN_GLOBALSIZE
	_HB_FUN_GLOBALUNLOCK              _HB_FUN_LOCALSHRINK
	_HB_FUN_NEXTMEM                   _fwGlobalAlloc
	_fwGlobalFree                   

menudraw	size = 17080
	_Bmp2Gray                         _Check2007
	_Check2010                        _Check2013
	_Check2015                        _CheckFw
	_DelCheck2007                     _DelCheck2010
	_DelCheck2013                     _DelCheck2015
	_DelCheckFw                       _DelPointC
	_FwBarMenu                        _FwBmpItem
	_FwCharItem                       _FwCheckedItem
	_FwNoSelectedItem                 _FwPromptItem
	_FwSelectedItem                   _FwSeparatorItem
	_HB_FUN_ALTFONTMIMENU             _HB_FUN_ANCFONTMIMENU
	_HB_FUN_BMP2GRAY                  _HB_FUN_CCOLORMENU
	_HB_FUN_CCOLORSUBMENU             _HB_FUN_CFONTMIMENU
	_HB_FUN_CHGMENUMEA                _HB_FUN_CHGMNUISR
	_HB_FUN_COLORGETBACK              _HB_FUN_DELCHECK2007
	_HB_FUN_DELCHECK2010              _HB_FUN_DELCHECK2013
	_HB_FUN_DELCHECK2015              _HB_FUN_DELCHECKFW
	_HB_FUN_DELPOINTC                 _HB_FUN_GETDRAWISR
	_HB_FUN_GETITEMTEXT               _HB_FUN_GETPARENTITEM
	_HB_FUN_HBITMAPITEM               _HB_FUN_HBMPBACK
	_HB_FUN_HB_FWBCODE                _HB_FUN_HCHECK
	_HB_FUN_HPOINT                    _HB_FUN_HSETBMPBACK
	_HB_FUN_MENUDRAWFW                _HB_FUN_MGETALLITEMS
	_HB_FUN_MINFOMIMENU               _HB_FUN_MITEMS
	_HB_FUN_MITEMS2007                _HB_FUN_MITEMSFW
	_HB_FUN_MSYSBITMAP                _HB_FUN_NOCLOSEDLG
	_HB_FUN_SET2007SKINMENU           _HB_FUN_SET2010SKINMENU
	_HB_FUN_SET2013SKINMENU           _HB_FUN_SET2015SKINMENU
	_HB_FUN_SETBITMAPITEM             _HB_FUN_SETFWSKINMENU
	_HB_FUN_SETITEMSTEXT              _HB_FUN_SETOWNERMENU
	_HPointC                          _SelectSkinMnu
	_SysBitMap                        _getParentMenuItem
	_hsetbmpback                      _set2007SkinMenu
	_set2010SkinMenu                  _set2013SkinMenu
	_set2015SkinMenu                  _setFwSkinMenu

menus   	size = 2006
	_DrawCheck                        _DrawRadioCheck
	_DrawRadioUncheck                 _DrawUncheck
	_HB_FUN_APPENDMENU                _HB_FUN_CHECKMENUITEM
	_HB_FUN_CREATEMENU                _HB_FUN_CREATEPOPUPMENU
	_HB_FUN_DESTROYMENU               _HB_FUN_DRAWMENUBAR
	_HB_FUN_ENABLEMENUITEM            _HB_FUN_FSETMENUDEFAULTITEM
	_HB_FUN_FSETMENUITEMBITMAPS       _HB_FUN_FWMODIFYMENU
	_HB_FUN_GETMENU                   _HB_FUN_GETMENUSTATE
	_HB_FUN_GETMENUSTRING             _HB_FUN_GETMITEMCOUNT
	_HB_FUN_GETMITEMID                _HB_FUN_GETSUBMENU
	_HB_FUN_GETSYSTEMMENU             _HB_FUN_HILITEMENUITEM
	_HB_FUN_INSERTMENU                _HB_FUN_ISMENU
	_HB_FUN_LOADMENU                  _HB_FUN_MODIFYMENU
	_HB_FUN_RADIOMENUITEM             _HB_FUN_REMOVEMENU
	_HB_FUN_SETITEMBITMAPS            _HB_FUN_SETMENU
	_HB_FUN_SETMENUDEFAULTITEM        _HB_FUN_TRACKPOPUP
	_HB_FUN_TRACKPOPUPMENUEX          _HB_FUN__GETMENUID

metafi32	size = 886
	_HB_FUN_CLOSEENHMETAFILE          _HB_FUN_CREATEENHMETAFILE
	_HB_FUN_DELETEENHMETAFILE         _HB_FUN_GETENHMETAFILE
	_HB_FUN_PLAYENHMETAFILE           _HB_FUN_XPLAYENHMETAFILE

metafile	size = 795
	_HB_FUN_CLOSEMETAFILE             _HB_FUN_CREATEMETAFILE
	_HB_FUN_DELETEMETAFILE            _HB_FUN_GETMETABIT
	_HB_FUN_GETMETAFILE               _HB_FUN_GETPMETAFILE
	_HB_FUN_PLAYMETAFILE              _HB_FUN_PMETA
	_SetMetaFileBits                

metpaint	size = 730
	_HB_FUN_METERPAINT              

mgetcrea	size = 387
	_HB_FUN_MGETCREATE              

mime64  	size = 1008
	_HB_FUN_CMIMEDEC                  _HB_FUN_CMIMEENC
	_at                             

mkdir   	size = 602
	_HB_FUN_FILEW                     _HB_FUN_GETWINDOWSDIRECTORY
	_HB_FUN_LCHDIR                    _HB_FUN_LCHDIRW
	_HB_FUN_LISDIRW                   _HB_FUN_LLFNMKDIR
	_HB_FUN_LLFNRMDIR                 _HB_FUN_LMKDIR
	_HB_FUN_LMKDIRW                   _HB_FUN_LMKFULLPATH
	_HB_FUN_LMKFULLPATHW              _HB_FUN_LRMDIR
	_HB_FUN_LRMDIRW                 

moveto  	size = 182
	_HB_FUN_MOVEGET                   _HB_FUN_MOVETO
	_HB_FUN_MOVETOEX                

msgbeep 	size = 23
	_HB_FUN_MESSAGEBEEP               _HB_FUN_MSGBEEP

msgs    	size = 2119
	MsgBoxHookProc                    _HB_FUN_CENTERMSGS
	_HB_FUN_FWMESSAGEBOX              _HB_FUN_MSGABOUT
	_HB_FUN_MSGALERT                  _HB_FUN_MSGINFO
	_HB_FUN_MSGNOYES                  _HB_FUN_MSGRETRYCANCEL
	_HB_FUN_MSGSTOP                   _HB_FUN_MSGYESNO
	_HB_FUN_MSGYESNOCANCEL            _HB_FUN_NMSGBOX
	_HB_FUN_SETASMSGBOX               _HB_FUN_SETMSGLANGID
	_HB_FUN_SHELLABOUT                _HB_FUN_UNHOOKWINDOWSHOOKEX
	_LToStr                           _MsgStr
	_ValToChar                      

msgsapi 	size = 1025
	_HB_FUN_FW_ISUTF8                 _HB_FUN_POSTMESSAGE
	_HB_FUN_SENDMESSAGE               _HB_FUN_SENDWIDESTRINGMESSAGE
	_SendMessageU                     _fw_parAnsi
	_isutf8                         

msgtools	size = 1094
	_HB_FUN_MSGPAINT                  _HB_FUN_MSGPAINT3L

net     	size = 740
	_HB_FUN_WNETADDCON                _HB_FUN_WNETADDCONNECTION2
	_HB_FUN_WNETADDCONNECTION2W       _HB_FUN_WNETBROWSEDIALOG
	_HB_FUN_WNETCONNECT               _HB_FUN_WNETDELCONNECTION
	_HB_FUN_WNETDISCONNECTDIALOG      _HB_FUN_WNETERROR
	_HB_FUN_WNETGETCONNECTION         _HB_FUN_WNETGETERR
	_HB_FUN_WNETGETUSER             

netcrdid	size = 809
	_GetMACaddress                    _GetMACaddressEx
	_HB_FUN_GETNETCARDID              _HB_FUN_GETNETCARDINFO

nonclient	size = 2567
	_HB_FUN_COMBOSELTEXT              _HB_FUN_DLGDIRLISTCOMBOBOX
	_HB_FUN_GETALIGNPOPUP             _HB_FUN_GETNONCLIENT
	_HB_FUN_GETRECTCOMBOBTT           _HB_FUN_GETRECTCOMBOEDIT
	_HB_FUN_HWNDCOMBO                 _HB_FUN_HWNDCOMBOEDIT
	_HB_FUN_HWNDCOMBOLIST             _HB_FUN_ISTACTIL
	_HB_FUN_NGETLISTBOXINFO           _HB_FUN_NONCLIENT
	_HB_FUN_SETADDTOOL                _HB_FUN_SETALIGNPOPUP
	_HB_FUN_SETNONCLIENT              _HB_FUN_SETRECTCOMBOBTT
	_HB_FUN_SETRECTCOMBOEDIT          _HB_FUN_SETWHSCROLL

notify  	size = 89
	_HB_FUN_GETNMHDRCODE              _HB_FUN_GETNMHDRHWNDFROM
	_HB_FUN_GETNMHDRIDFROM            _HB_FUN_NMTREEVIEWACTION
	_HB_FUN_NMTREEVIEWITEMNEW       

ntxtools	size = 175
	_HB_FUN_CNTXKEY                   _HB_FUN_DELDBFMDX

numcword	size = 3690
	_HB_FUN_FW_NUMTOWORDC             _HB_FUN_N2W_SETSTRINGS
	_HB_FUN_N2W_SETUNITS              _bAnd
	_bIndian                        

ocx     	size = 164
	_HB_FUN_COINITIALIZE              _HB_FUN_REGISTERSERVER
	_HB_FUN_UNREGISTERSERVER        

odbc32x 	size = 2798
	_HB_FUN_SQLALLOCCONNECT           _HB_FUN_SQLALLOCENV
	_HB_FUN_SQLALLOCSTMT              _HB_FUN_SQLCANCEL
	_HB_FUN_SQLCOLUMNS                _HB_FUN_SQLCONNECT
	_HB_FUN_SQLDESC32                 _HB_FUN_SQLDISCONNECT
	_HB_FUN_SQLDRVC32                 _HB_FUN_SQLERROR
	_HB_FUN_SQLEXECDIRECT             _HB_FUN_SQLEXECUTE
	_HB_FUN_SQLEXTENDEDFETCH          _HB_FUN_SQLFETCH
	_HB_FUN_SQLFREECONNECT            _HB_FUN_SQLFREEENV
	_HB_FUN_SQLFREESTMT               _HB_FUN_SQLGETCONNECTOPTION
	_HB_FUN_SQLGETCURSORNAME          _HB_FUN_SQLGETD32
	_HB_FUN_SQLGETDIAGREC             _HB_FUN_SQLGETIN32
	_HB_FUN_SQLGETSTMTOPTION          _HB_FUN_SQLGETTEXTDATA
	_HB_FUN_SQLNUMRESULTCOLS          _HB_FUN_SQLPARAMDATA
	_HB_FUN_SQLPREP32                 _HB_FUN_SQLPRIMARYKEYS
	_HB_FUN_SQLPUTDATA                _HB_FUN_SQLROLLBACK
	_HB_FUN_SQLROWCOUNT               _HB_FUN_SQLSCOL
	_HB_FUN_SQLSETCONNECTOPTION       _HB_FUN_SQLSETCURSORNAME
	_HB_FUN_SQLSETPARAM               _HB_FUN_SQLSETPOS
	_HB_FUN_SQLSETSTMT                _HB_FUN_SQLSTATISTICS
	_HB_FUN_SQLTABLES                 _HB_FUN_SQLTRANSACT
	_aRowStatus                     

oemansi 	size = 455
	_HB_FUN_ANSITOOEM                 _HB_FUN_ISANSI
	_HB_FUN_ISOEM                     _HB_FUN_OEMTOANSI
	_HB_FUN_makeLANGID              

onoffbmp	size = 2245
	_HB_FUN_FWBMPOFF                  _HB_FUN_FWBMPON

or      	size = 472
	_HB_FUN_I2HEX                     _HB_FUN_L2HEX
	_HB_FUN_LAND                      _HB_FUN_LXOR
	_HB_FUN_NAND                      _HB_FUN_NNOT
	_HB_FUN_NOR                       _HB_FUN_NPTRWORD
	_HB_FUN_NXOR                      _HB_FUN_PTRTONUM
	_HB_FUN_UTOS                    

paint   	size = 79
	_HB_FUN_BEGINPAINT                _HB_FUN_ENDPAINT

peekmsg 	size = 87
	_HB_FUN_PEEKMESSAGE               _HB_FUN_WAITMESSAGE

peekpoke	size = 42
	_HB_FUN_PEEKBYTE                  _HB_FUN_PEEKWORD
	_HB_FUN_POKEBYTE                  _HB_FUN_POKEWORD

point   	size = 210
	_HB_FUN_DPTOLP                    _HB_FUN_LPTODP

printdc 	size = 4684
	_HB_FUN_ABORTDOC                  _HB_FUN_COMDLGXERR
	_HB_FUN_DRAFTMODE                 _HB_FUN_ENDDOC
	_HB_FUN_ENDPAGE                   _HB_FUN_ENUMFONTFAMILIES
	_HB_FUN_ESCAPE                    _HB_FUN_GETPRINTDC
	_HB_FUN_GETPRINTDEFAULT           _HB_FUN_IMPORTRAWFILE
	_HB_FUN_ISCOLORPRINTER            _HB_FUN_ISDUPLEXPRINTER
	_HB_FUN_PAGEGETMARGINS            _HB_FUN_PAGESETUP
	_HB_FUN_PRINTERDCFROMNAME         _HB_FUN_PRINTEREND
	_HB_FUN_PRINTERESC                _HB_FUN_PRINTERINIT
	_HB_FUN_PRINTERSETUP              _HB_FUN_PRNBINSOURCE
	_HB_FUN_PRNDUPLEX                 _HB_FUN_PRNGETCOLLATE
	_HB_FUN_PRNGETCOPIES              _HB_FUN_PRNGETDRIVE
	_HB_FUN_PRNGETNAME                _HB_FUN_PRNGETORIENTATION
	_HB_FUN_PRNGETPAGES               _HB_FUN_PRNGETPAGNUMS
	_HB_FUN_PRNGETPORT                _HB_FUN_PRNGETSELECTION
	_HB_FUN_PRNGETSIZE                _HB_FUN_PRNLANDSCAPE
	_HB_FUN_PRNOFFSET                 _HB_FUN_PRNPORTRAIT
	_HB_FUN_PRNSETCOLLATE             _HB_FUN_PRNSETCOPIES
	_HB_FUN_PRNSETPAGE                _HB_FUN_PRNSETSIZE
	_HB_FUN_PRNSTATUS                 _HB_FUN_RESETDC
	_HB_FUN_SPOOLFILE                 _HB_FUN_STARTDOC
	_HB_FUN_STARTPAGE                 _HB_FUN_devMODE

prnsayrt	size = 0

profile 	size = 522
	_HB_FUN_DELINIENTRY               _HB_FUN_DELINISECTION
	_HB_FUN_GETPROFINT                _HB_FUN_GETPROFSTRING
	_HB_FUN_GETPVPROFINT              _HB_FUN_GETPVPROFSTRING
	_HB_FUN_WRITEPPROSTRING           _HB_FUN_WRITEPROFSTRING

prop    	size = 182
	_HB_FUN_GETPROP                   _HB_FUN_REMOVEPROP
	_HB_FUN_SETPROP                 

prpsheet	size = 416
	_HB_FUN_PROPSHEET               

rasapi  	size = 1141
	_HB_FUN_RACONST                   _HB_FUN_RADIAL
	_HB_FUN_RAENUMCONNECTIONS         _HB_FUN_RAENUMENTRIES
	_HB_FUN_RAGETCONST                _HB_FUN_RAGETERROR
	_HB_FUN_RAHANGUP                

rebars  	size = 213
	_HB_FUN_RBINSERTBAND              _HB_FUN_SETREBARINFO

rebarsw 	size = 357
	_HB_FUN_RBINSERTBANDAW            _HB_FUN_SETREBARINFOAW

rects   	size = 1911
	_FrameDot                         _HB_FUN_DRAWFOCUSELLIPSE
	_HB_FUN_DRAWFOCUSRECT             _HB_FUN_FILLRECT
	_HB_FUN_FRAMEDOT                  _HB_FUN_GETCLIENTRECT
	_HB_FUN_GETCOORS                  _HB_FUN_GETLABELDIM
	_HB_FUN_GETWNDRECT                _HB_FUN_INVALIDATERECT
	_HB_FUN_INVERTRECT                _HB_FUN_MAPDIALOGRECT
	_HB_FUN_NCCSRIGHT                 _HB_FUN_ROUNDRECT

regclass	size = 264
	_HB_FUN_GETMODULEHANDLE           _HB_FUN_REGISTERCLASS
	_HB_FUN_SETCLASSWORD            

regedit 	size = 876
	_HB_FUN_REGCLOSEKEY               _HB_FUN_REGCREATEKEY
	_HB_FUN_REGDELETEKEY              _HB_FUN_REGENUMKEY
	_HB_FUN_REGENUMVALUE              _HB_FUN_REGOPENKEY
	_HB_FUN_REGOPENKEYEX              _HB_FUN_REGQUERYVALUE
	_HB_FUN_REGQUERYVALUEEX           _HB_FUN_REGSETVALUE
	_HB_FUN_REGSETVALUEEX           

regions 	size = 1046
	_HB_FUN_COMBINERGN                _HB_FUN_CREATEELLIPTICRGN
	_HB_FUN_CREATEELLIPTICRGNINDIRECT  _HB_FUN_CREATEPOLYGONRGN
	_HB_FUN_CREATERECTRGN             _HB_FUN_CREATEROUNDRECTRGN
	_HB_FUN_FRAMERGN                  _HB_FUN_INVALIDATERGN
	_HB_FUN_SETWINDOWRGN            

resource	size = 757
	_GetResources                     _HB_FUN_CRESTOSTR
	_HB_FUN_ENUMRESOURCENAMES         _HB_FUN_FINDICON
	_HB_FUN_FINDRESOURCE              _HB_FUN_FREERESOURCES
	_HB_FUN_GETRESOURCES              _HB_FUN_LOADHTML
	_HB_FUN_LOADRESOURCE              _HB_FUN_LOCKRESOURCE
	_HB_FUN_RCDATATOFILE              _HB_FUN_RESOURCEFREE
	_HB_FUN_SETRESOURCES            

ribbon  	size = 6849
	_BitmapFromMem                    _Blur
	_BrightImg                        _CreateBase
	_CreateShadow                     _DoHBlur
	_DoHorizontalBlur                 _DoVBlur
	_DoVerticalBlur                   _HB_FUN_BEGINPATH
	_HB_FUN_BLUR                      _HB_FUN_BRIGHTIMG
	_HB_FUN_CREATEBASE                _HB_FUN_CREATESHADOW
	_HB_FUN_ENDPATH                   _HB_FUN_FILLPATH
	_HB_FUN_FILLRGN                   _HB_FUN_GETTEXTEXTENTPOINT32
	_HB_FUN_HDCBITMAP                 _HB_FUN_LITTLEARROW
	_HB_FUN_MAKEBKBMP                 _HB_FUN_MAKEBKBMPEX
	_HB_FUN_MAKEBKBRUSH               _HB_FUN_MINIBTN
	_HB_FUN_OFFSETRGN                 _HB_FUN_PARENTCAPTURE
	_HB_FUN_PATHTOREGION              _HB_FUN_RESIZEIMG
	_HB_FUN_STROKEANDFILLPATH         _HB_FUN_STROKEPATH
	_HB_FUN_TI_DRAWREFLEX             _MakeBkBmp
	_MakeBkBmpEx                      _MakeBkBmpExHDC
	_ParentCapture                    _PrepareInfoHeader
	_ResizeImg                        _TI_DrawReflex

richedi5	size = 14450
	_FillRichEditFromFile             _HB_FUN_GETPARFORM5
	_HB_FUN_REDLLVERSION5             _HB_FUN_REFINDTEXT5
	_HB_FUN_REGETBACKCOLOR5           _HB_FUN_REGETBULLET5
	_HB_FUN_REGETCHARFORMAT5          _HB_FUN_REGETDATETIME5
	_HB_FUN_REGETHIGHLIGHT5           _HB_FUN_REGETINDENT5
	_HB_FUN_REGETNMHDRLINK5           _HB_FUN_REGETNUMBERING5
	_HB_FUN_REGETOLEINTERFACE5        _HB_FUN_REGETPARAFORMAT5
	_HB_FUN_REGETPARAGRAPH5           _HB_FUN_REGETPARAGRAPHALL5
	_HB_FUN_REGETSELECTION5           _HB_FUN_REGETTEXTCOLOR5
	_HB_FUN_REGETZOOM5                _HB_FUN_REINSERTPICTURE5
	_HB_FUN_REINSERTRTF5              _HB_FUN_REINSERTRTFFROMFILE5
	_HB_FUN_RELASTLINEVISIBLE         _HB_FUN_RELEN5
	_HB_FUN_RELOADASRTF5              _HB_FUN_REPAGEBREAK5
	_HB_FUN_REPASTESPECIAL5           _HB_FUN_REPREVIEW5
	_HB_FUN_REPRINT5                  _HB_FUN_REPRINTBOX5
	_HB_FUN_RESAVEASRTF5              _HB_FUN_RESETATTRIBUTE5
	_HB_FUN_RESETAUTOURLDETECT5       _HB_FUN_RESETBACKCOLOR5
	_HB_FUN_RESETBULLET5              _HB_FUN_RESETCHARFORMAT5
	_HB_FUN_RESETFONTNAME5            _HB_FUN_RESETFONTSIZE5
	_HB_FUN_RESETHIGHLIGHT5           _HB_FUN_RESETINDENT5
	_HB_FUN_RESETNUMBERING5           _HB_FUN_RESETOLECALLBACK5
	_HB_FUN_RESETOLEINIT5             _HB_FUN_RESETOLEUNINIT5
	_HB_FUN_RESETPARADELIMITER5       _HB_FUN_RESETPARAFORMAT5
	_HB_FUN_RESETPARAGRAPH5           _HB_FUN_RESETPARAGRAPHALL5
	_HB_FUN_RESETPOS5                 _HB_FUN_RESETSELECTION5
	_HB_FUN_RESETTEXTCOLOR5           _HB_FUN_RESETZOOM5
	_HB_FUN_RTGETPARAFORMAT5          _HB_FUN_RTINSERTOBJECT5
	_HB_FUN_RTINSERTTABLE5            _HB_FUN_RTSETPARAFORMAT5
	_HB_FUN_SETPARFORM5               _InsertObject

richedit	size = 8997
	_HB_FUN_REDLLVERSION              _HB_FUN_REFINDTEXT
	_HB_FUN_REGETBULLET               _HB_FUN_REGETCHARFORMAT
	_HB_FUN_REGETDATETIME             _HB_FUN_REGETHIGHLIGHT
	_HB_FUN_REGETINDENT               _HB_FUN_REGETNMHDRLINK
	_HB_FUN_REGETNUMBERING            _HB_FUN_REGETOLEINTERFACE
	_HB_FUN_REGETPARAFORMAT           _HB_FUN_REGETPARAGRAPH
	_HB_FUN_REGETSELECTION            _HB_FUN_REGETZOOM
	_HB_FUN_REINSERTPICTURE           _HB_FUN_RELEN
	_HB_FUN_RELOADASRTF               _HB_FUN_REPAGEBREAK
	_HB_FUN_REPASTESPECIAL            _HB_FUN_REPREVIEW
	_HB_FUN_REPRINT                   _HB_FUN_REPRINTBOX
	_HB_FUN_RESAVEASRTF               _HB_FUN_RESETATTRIBUTE
	_HB_FUN_RESETAUTOURLDETECT        _HB_FUN_RESETBULLET
	_HB_FUN_RESETCHARFORMAT           _HB_FUN_RESETFONTNAME
	_HB_FUN_RESETFONTSIZE             _HB_FUN_RESETHIGHLIGHT
	_HB_FUN_RESETINDENT               _HB_FUN_RESETNUMBERING
	_HB_FUN_RESETOLECALLBACK          _HB_FUN_RESETOLEINIT
	_HB_FUN_RESETOLEUNINIT            _HB_FUN_RESETPARAFORMAT
	_HB_FUN_RESETPARAGRAPH            _HB_FUN_RESETPOS
	_HB_FUN_RESETSELECTION            _HB_FUN_RESETTEXTCOLOR
	_HB_FUN_RESETZOOM               

saveicon	size = 1001
	_HB_FUN_FW_SAVEHICONTOICO         _SaveIcon3

scintilc	size = 3602
	_HB_FUN_ASIGNKEYS                 _HB_FUN_FINDAUTOCOMPLETE
	_HB_FUN_GETANNOTALINESADDHDR      _HB_FUN_GETCHARHDR
	_HB_FUN_GETIDHDR                  _HB_FUN_GETLENHDR
	_HB_FUN_GETLEVNOWHDR              _HB_FUN_GETLEVPREVHDR
	_HB_FUN_GETLINADDHDR              _HB_FUN_GETLINEHDR
	_HB_FUN_GETLISTCOMPLETIONHDR      _HB_FUN_GETLISTHDR
	_HB_FUN_GETLPARAM                 _HB_FUN_GETMARGHDR
	_HB_FUN_GETMESSAGEHDR             _HB_FUN_GETMODIFIER
	_HB_FUN_GETMODTYPE                _HB_FUN_GETPOSHDR
	_HB_FUN_GETPOSIHDR                _HB_FUN_GETTEXTHDR
	_HB_FUN_GETTOKENHDR               _HB_FUN_GETUPDATEDHDR
	_HB_FUN_GETWNDHDR                 _HB_FUN_GETWPARAM
	_HB_FUN_GETXHDR                   _HB_FUN_GETXPARAM
	_HB_FUN_GETYHDR                   _HB_FUN_GETYPARAM
	_HB_FUN_MYFUNC_DBLUE              _HB_FUN_MYFUNC_F
	_HB_FUN_MYFUNC_F16                _HB_FUN_MYFUNC_FBLUE
	_HB_FUN_MYFUNC_MBLUE              _HB_FUN_MYFUNC_MBLUE16
	_HB_FUN_MYFUNC_VBLUE              _HB_FUN_PONFOLD
	_HB_FUN_PONFOLDCOMPACT            _HB_FUN_SCIGETLINE
	_HB_FUN_SCIGETSELTEXT             _HB_FUN_SCIGETTEXT
	_HB_FUN_SCIGETTEXTAT              _HB_FUN_SCI_OPENFILE
	_HB_FUN_SCNOTIFICATIONCH          _HB_FUN_SCNOTIFICATIONCODE
	_HB_FUN_SC_ADDTEXT                _HB_FUN_SC_ISREADONLY
	_HB_FUN_SEARCHBACKWARD            _HB_FUN_SEARCHFORWARD
	_SearchBackward                   _SearchForward

scroll  	size = 503
	_HB_FUN_ENABLESCROLLBAR           _HB_FUN_GETSCROLLPOS
	_HB_FUN_GETSCROLLRANGE            _HB_FUN_SETSCROLLINFO
	_HB_FUN_SETSCROLLPOS              _HB_FUN_SETSCROLLRANGE
	_HB_FUN_SETSCROLLRANGEX         

selobjec	size = 31
	_HB_FUN_SELECTOBJECT            

sethandl	size = 22
	_HB_FUN_SETHANDLECOUNT          

setmapmo	size = 75
	_HB_FUN_GETMAPMODE                _HB_FUN_GETSYSMETRICS
	_HB_FUN_SETMAPMODE              

settext 	size = 88
	_HB_FUN_SETWINDOWTEXT           

sound   	size = 269
	_HB_FUN_MSGSOUND                  _HB_FUN_SNDPLAYRESOURCE
	_HB_FUN_SNDPLAYSOUND            

str2hex 	size = 806
	_HB_FUN_FW_URLENCODE              _HB_FUN_HEX2STR
	_HB_FUN_STR2HEX                 

string  	size = 67
	_HB_FUN_LOADSTRING              

strtoken	size = 672
	_HB_FUN_STRBYTE                   _HB_FUN_STRCAPFIRST
	_HB_FUN_STRCHAR                   _HB_FUN_STRCHARCOUNT
	_HB_FUN_STRCPY                    _HB_FUN_STRPTR
	_HB_FUN_STRTOKEN                  _StrToken

tabctrl 	size = 939
	_HB_FUN_TABCTRLADD                _HB_FUN_TABCTRL_ADJUSTRECT
	_HB_FUN_TABCTRL_GETCURSEL         _HB_FUN_TABCTRL_HITTEST
	_HB_FUN_TABCTRL_SETCURSEL         _HB_FUN_TABDELALLITEMS
	_HB_FUN_TABGETROWCOUNT            _HB_FUN_TABSETITEM

tabctrlw	size = 1242
	_HB_FUN_TABCTRLADDW               _HB_FUN_TABCTRL_ADJUSTRECTW
	_HB_FUN_TABCTRL_GETCURSELW        _HB_FUN_TABCTRL_HITTESTW
	_HB_FUN_TABCTRL_SETCURSELW        _HB_FUN_TABDELALLITEMSW
	_HB_FUN_TABGETROWCOUNTW           _HB_FUN_TABSETITEMW

tcbfuncs	size = 1615
	_HB_FUN_ATCBRWPOSRECT             _HB_FUN_NTCWROW
	_HB_FUN_TCBRWSCROLL               _HB_FUN_TCDRAWCELL

text    	size = 2892
	_DrawTextAW                       _DrawTextAW2
	_DrawTextAWC                      _ExtTextOutAW
	_HB_FUN_DRAWTEXT                  _HB_FUN_DRAWTEXTEX
	_HB_FUN_EXTTEXTOUT                _HB_FUN_GETTEXTALIGN
	_HB_FUN_SETTEXTALIGN              _HB_FUN_SETTEXTJUSTIFICATION
	_HB_FUN_TEXTOUT                   _TextOutAW
	_UTF8toUTF16W                     _fw_parRect

theaders	size = 692
	_HB_FUN_GETNMHEABUTTON            _HB_FUN_GETNMHEAITEM
	_HB_FUN_HEADERGET                 _HB_FUN_HEADERINS
	_HB_FUN_HEADERLAYOUT              _HB_FUN_HEADERSET

themes  	size = 4543
	_DrawGripper                      _DrawPBack
	_DrawRBGripper                    _HB_FUN_APPHASMANIFEST
	_HB_FUN_CHECKFOCUS                _HB_FUN_DRAWGRIPPER
	_HB_FUN_DRAWHEADER                _HB_FUN_DRAWPBACK
	_HB_FUN_DRAWTABBODY               _HB_FUN_DRAWTHEMED
	_HB_FUN_EDBORDER                  _HB_FUN_FIXTHEMECONTROLS
	_HB_FUN_ISAPPTHEMED               _HB_FUN_ISCLASSIC
	_HB_FUN_ISTHEMEACTIVE             _HB_FUN_MAPWINDOWPOINT
	_HB_FUN_SETWINDOWTHEME            _HB_FUN_TBERASE
	__HasManifest                     __IsAppThemed

timepick	size = 221
	_HB_FUN_GETTIMEPICK               _HB_FUN_SETTIMEPICK

timers  	size = 93
	_HB_FUN_GETTICKCOUNT              _HB_FUN_KILLTIMER
	_HB_FUN_SETTIMER                

toolbarsw	size = 1219
	_HB_FUN_CREATETLBARAW             _HB_FUN_INITCOMMONCONTROLSEXW
	_HB_FUN_INITCOMMONCONTROLSW       _HB_FUN_TBADDBUTTONAW
	_HB_FUN_TBADDMENUAW               _HB_FUN_TBADDSEPARATORAW
	_HB_FUN_TBENABLEBUTTONAW          _HB_FUN_TBGETRECTAW
	_HB_FUN_TBSETTEXTAW               _HB_FUN_TTNSETTEXTA
	_HB_FUN_TTNSETTEXTW             

toolhelp	size = 39
	_HB_FUN_INTERRUPTREGISTER         _HB_FUN_INTERRUPTUNREGISTER
	_HB_FUN_TERMINATEAPP              _HB_FUN_TIMERCOUNT

tooltipa	size = 608
	_HB_FUN_CREATETOOLTIPANEW       

tooltipw	size = 904
	_HB_FUN_CREATETOOLTIPWNEW       

touch   	size = 897
	_HB_FUN_AUTOROTATIONPREF          _HB_FUN_GESTUREINFO
	_HB_FUN_GETAUTOROTATIONSTATE      _HB_FUN_ISEVENTBYTOUCH
	_HB_FUN_USEALLGESTURES          

treeview	size = 1576
	_HB_FUN_TVDELALLITEMS             _HB_FUN_TVDELETEITEM
	_HB_FUN_TVEDITLABEL               _HB_FUN_TVGETCHECK
	_HB_FUN_TVGETEDITCONTROL          _HB_FUN_TVGETPARENT
	_HB_FUN_TVGETSELECTED             _HB_FUN_TVGETSELTEXT
	_HB_FUN_TVGETTEXT                 _HB_FUN_TVHITTEST
	_HB_FUN_TVINSERTITEM              _HB_FUN_TVIPARAM
	_HB_FUN_TVSELECT                  _HB_FUN_TVSETCHECK
	_HB_FUN_TVSETCOLOR                _HB_FUN_TVSETIMAGELIST
	_HB_FUN_TVSETITEMBOLD             _HB_FUN_TVSETITEMHEIGHT
	_HB_FUN_TVSETITEMIMAGE            _HB_FUN_TVSETITEMTEXT
	_HB_FUN_TVSETTEXTIMAGE          

urldownloadtofile	size = 8
	_downloading                    

wbrwline	size = 408
	_HB_FUN_ABRWPOSRECT             

webcam  	size = 1018
	_HB_FUN_CAPFILESETCAPTUREFILE     _HB_FUN_WEBCAM_CAPTUREWINDOW
	_HB_FUN_WEBCAM_DLGVIDEOFORMAT     _HB_FUN_WEBCAM_DLGVIDEOSOURCE
	_HB_FUN_WEBCAM_DRIVERCONNECT      _HB_FUN_WEBCAM_DRIVERDISCONNECT
	_HB_FUN_WEBCAM_FILESAVEDIB        _HB_FUN_WEBCAM_GETDRIVERDESCRIPTION
	_HB_FUN_WEBCAM_PREVIEW            _HB_FUN_WEBCAM_PREVIEWRATE
	_HB_FUN_WEBCAM_PREVIEWSCALE       _HB_FUN___WEBCAM_CALLBACK
	fpCallbackProc                    fpCallbackProc2

webview 	size = 1295
	_HB_FUN_WEBVIEW_BIND              _HB_FUN_WEBVIEW_CREATE
	_HB_FUN_WEBVIEW_DESTROY           _HB_FUN_WEBVIEW_DISPATCH
	_HB_FUN_WEBVIEW_EVAL              _HB_FUN_WEBVIEW_GETWINDOW
	_HB_FUN_WEBVIEW_INIT              _HB_FUN_WEBVIEW_NAVIGATE
	_HB_FUN_WEBVIEW_OPENDEVTOOLSWINDOW  _HB_FUN_WEBVIEW_RETURN
	_HB_FUN_WEBVIEW_RUN               _HB_FUN_WEBVIEW_SETHTML
	_HB_FUN_WEBVIEW_SETSIZE           _HB_FUN_WEBVIEW_SETTITLE
	_HB_FUN_WEBVIEW_SETUSERAGENT      _HB_FUN_WEBVIEW_TERMINATE
	_HB_FUN_WEBVIEW_UNBIND            _HB_FUN_WV_SENDTOFWH

webview2	size = 237
	_HB_FUN_WEBVIEW2_END              _HB_FUN_WEBVIEW2_EVAL
	_HB_FUN_WEBVIEW2_NAVIGATE         _HB_FUN_WEBVIEW2_NEW
	_HB_FUN_WEBVIEW2_OPENDEVTOOLSWINDOW  _HB_FUN_WEBVIEW2_SETHTML
	_HB_FUN_WEBVIEW2_SETSIZE          _HB_FUN_WEBVIEW2_SETUSERAGENT
	_HB_FUN_WEBVIEW2_SHOWDOWNLOADS  

win2000 	size = 49
	_HB_FUN_SETLAYEREDWINDOWATTRIBUTES

windows 	size = 431
	_HB_FUN_DEFWINDOWPROC             _HB_FUN_ENUMCHILDWINDOWS
	_HB_FUN_ENUMWINDOWS               _HB_FUN_GETCLASSLONG
	_HB_FUN_GETPARENT                 _HB_FUN_LOCKWINDOWUPDATE
	_HB_FUN_SETCLASSLONG              _HB_FUN_SETPARENT

winexec 	size = 1308
	_HB_FUN_EXITWINDOW                _HB_FUN_EXITWND
	_HB_FUN_GETMODULEFILENAME         _HB_FUN_GETNUMTASKS
	_HB_FUN_GETSYSDIR                 _HB_FUN_GETWINDIR
	_HB_FUN_ISEXERUNNING              _HB_FUN_SHELLEXECUTE
	_HB_FUN_SHFILEOPERATION           _HB_FUN_SHFILEOPERATIONW
	_HB_FUN_SLEEP                     _HB_FUN_WAITRUN
	_HB_FUN_WINEXEC                 

winrtc  	size = 964
	_HB_FUN_WINRTEVENTHANDLER         _HB_FUN_WINRTEVENTTOKEN
	_HB_FUN_WINRTFIND                 _HB_FUN_WINRTMETHOD

winsock 	size = 1506
	_HB_FUN_ACCEPT                    _HB_FUN_BINDTOPORT
	_HB_FUN_CLOSESOCKET               _HB_FUN_CONNECTTO
	_HB_FUN_GETHOSTBYADDRESS          _HB_FUN_GETHOSTBYNAME
	_HB_FUN_GETHOSTNAME               _HB_FUN_GETIP
	_HB_FUN_GETPEERNAME               _HB_FUN_GETPORT
	_HB_FUN_GETSERVBYNAME             _HB_FUN_HTONS
	_HB_FUN_INET_ADDR                 _HB_FUN_LISTEN
	_HB_FUN_RECV                      _HB_FUN_SENDBINARY
	_HB_FUN_SETSOCKOPT                _HB_FUN_SOCKET
	_HB_FUN_SOCKETSELECT              _HB_FUN_SOCKETSEND
	_HB_FUN_WSAASYNCSELECT            _HB_FUN_WSACLEANUP
	_HB_FUN_WSAGETLASTERROR           _HB_FUN_WSASTARTUP

wmouse  	size = 178
	_HB_FUN_GETCAPTURE                _HB_FUN_RELEASECAPTURE
	_HB_FUN_SETCAPTURE                _HB_FUN_TRACKMOUSEEVENT

wndboxes	size = 1924
	_HB_FUN_BARPAINT                  _HB_FUN_ROUNDBOX
	_HB_FUN_WNDBOX                    _HB_FUN_WNDBOX2007
	_HB_FUN_WNDBOXCLR                 _HB_FUN_WNDBOXIN
	_HB_FUN_WNDBOXRAISED              _HB_FUN_WNDINSET
	_HB_FUN_WNDRAISED                 _RoundBox
	_WindowBox                        _WindowBoxBlack
	_WindowBoxIn                      _WindowBoxInBlack
	_WindowInset                      _WindowRaised
	_WndBox2007                       _WndDrawBox

wndcente	size = 631
	_HB_FUN_GETVIEWPORTORGEX          _HB_FUN_GETWINDOWORGEX
	_HB_FUN_SETACTIVEWINDOW           _HB_FUN_SETWINDOWORG
	_HB_FUN_WNDCENTER               

wnddestr	size = 46
	_HB_FUN_DESTROYWINDOW           

wndis   	size = 1447
	_HB_FUN_BORLANDC                  _HB_FUN_CALLWINDOWPROC
	_HB_FUN_CLOSEWINDOW               _HB_FUN_ENABLEWINDOW
	_HB_FUN_FINDWINDOW                _HB_FUN_GETACTIVEWINDOW
	_HB_FUN_GETCLASSINFO              _HB_FUN_GETFOREGROUNDWINDOW
	_HB_FUN_GETTOPWINDOW              _HB_FUN_GETVERSION
	_HB_FUN_GETWINDOWLONG             _HB_FUN_GETWINFLAGS
	_HB_FUN_GETWINVER                 _HB_FUN_ISCHILD
	_HB_FUN_ISDEFBUTTON               _HB_FUN_ISEXE64
	_HB_FUN_ISICONIC                  _HB_FUN_ISWIN95
	_HB_FUN_ISWINDOW                  _HB_FUN_ISWINDOWENABLED
	_HB_FUN_ISWINDOWUNICODE           _HB_FUN_ISWINDOWVISIBLE
	_HB_FUN_ISWINNT                   _HB_FUN_ISWOW64
	_HB_FUN_ISZOOMED                  _HB_FUN_MSVC
	_HB_FUN_SETWINDOWLONG             _HB_FUN_SETWINDOWWORD
	_HB_FUN_WINDOWFROMPOINT           _IsWin95
	_fnIsWow64Process               

wndisove	size = 121
	_HB_FUN_ISOVERWND                 _HB_FUN_WNDHASSCROLLS

wndlines	size = 604
	_HB_FUN_WNDHLINERA                _HB_FUN_WNDHRAISED
	_HB_FUN_WNDVLINERA                _HB_FUN_WNDVRAISED
	_WindowHRaised                    _WindowVRaised
	_WndDrawHLine                     _WndDrawVLine

wndmove 	size = 3131
	_HB_FUN_BRINGWINDOWTOTOP          _HB_FUN_MOVEWINDOW
	_HB_FUN_SETMINMAX                 _HB_FUN_WNDADJBOTTOM
	_HB_FUN_WNDADJCLIENT              _HB_FUN_WNDADJLEFT
	_HB_FUN_WNDADJRIGHT               _HB_FUN_WNDADJTOP
	_HB_FUN_WNDBOTTOM                 _HB_FUN_WNDCOPY
	_HB_FUN_WNDHEIGHT                 _HB_FUN_WNDLEFT
	_HB_FUN_WNDSETSIZE                _HB_FUN_WNDTOP
	_HB_FUN_WNDWIDTH                

wndpos  	size = 196
	_HB_FUN_GETWINDOWPLACEMENT        _HB_FUN_SETWINDOWPLACEMENT
	_HB_FUN_SETWINDOWPOS            

wndprint	size = 466
	_HB_FUN_PRINTWINDOW               _HB_FUN_WNDBITMAP
	_HB_FUN_WNDPRINT                

wndproc 	size = 436
	_HB_FUN_REMOVEWINDOWPROC          _HB_FUN_SETWINDOWPROC

wndrows 	size = 364
	_GetWindowRow                     _GetWindowRows
	_HB_FUN_NWROW                     _HB_FUN_NWROWS

wndsay  	size = 972
	_HB_FUN_NWNDCHRHEIGHT             _HB_FUN_WSAY
	_HB_FUN_WSAYRECT                

wndscrol	size = 639
	_HB_FUN_SCROLLWINDOW              _HB_FUN_WBRWSCROLL
	_HB_FUN_WSCROLL                 

wndupdat	size = 52
	_HB_FUN_GETCLASSNAME              _HB_FUN_UPDATEWINDOW

xbrowsec	size = 1465
	_BmpDrawNoStretch                 _HB_FUN_BMPDRAWNOSTRETCH
	_HB_FUN_FWBMPASC                  _HB_FUN_FWBMPDES
	_HB_FUN_FWDARROW                  _HB_FUN_FWRARROW
	_HB_FUN_XBRWSCROLLROW           

xhb     	size = 0

xxproc  	size = 166
	_HB_FUN_XXCHANGEPROC            
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278966#p278966 Sat, 12 Apr 2025 23:35:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278966#p278966
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278968#p278968 i have tried with fivehc32.lib and fiveh32.lib but doesn't works.
i have posted below fwfuncs.prg corrected from some oversights (I left the wrong lines as comments)
pay attention to the updated version of MS VC22 is now numbered: \14.43.34808\
i have tried to change bin\Hostx64\x86\ with bin\Hostx86\x86\

i have tried also from from the command prompt with libs copied in the same directory bin but i have this result:
Microsoft (R) Library Manager Version 14.43.34809.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1181: cannot open input file 'fiveh32.lib,'

now i use the LST files that you have posted, when you have time you try to see what is not working.
thanks for attention,
Marzio

Code: Select all | Expand

#include "fivewin.ch"

#define EM_LINESCROLL           182
#define EM_GETFIRSTVISIBLELINE  0x00CE


//----------------------------------------------------------------------------//

static cBccFolder  := "c:\bcc77\"   // your bcc folder here
static cMSVCFolder := "c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x86\"   // your msvc folder here

//----------------------------------------------------------------------------//

function Main()

   local aFunc
   local oDlg, nWd, oFont, oFixed, oBrw, oSay, oGet
   local cModule, cFile, cText, cUpper
   local aTemp := {}
   local cSymbols := ""

   SetMGetColorFocus()

   aFunc := ReadFuncs()
   if Empty( aFunc )
      return nil
   endif

   AEval( aFunc, { | a | AAdd( aTemp, a[ 2 ] ) } )
   ASort( aTemp )
   // XBrowse( aTemp )
   AEval( aTemp, { | cName | cSymbols += "extern " + cName + CRLF } )
   hb_memoWrit( "symbols.txt", cSymbols )
   // fw_memoEdit( cSymbols )

   cModule  := aFunc[ 1, 1 ]
   cFile    := ModuleToFile( cModule )
   cText    := If( Empty( cFile ), "", MemoRead( cFile ) )

   DEFINE FONT oFont  NAME "TAHOMA" SIZE 0,-13
   DEFINE FONT oFixed NAME "LUCIDA CONSOLE" SIZE 0,-14

   nWd      := Int( ScreenWidth() * 0.9 )

   DEFINE DIALOG oDlg SIZE nWd,600 PIXEL TRUEPIXEL FONT oFont ;
      TITLE FWVERSION + ": Functions and Classes"

   @ 20,20 XBROWSE oBrw SIZE 400,-20 PIXEL OF oDlg ;
      DATASOURCE aFunc COLUMNS 1,2 ;
      HEADERS "MODULE", "FUNCTION" ;
      COLSIZES "BBBBBBBBBB" ;
      CELL LINES NOBORDER FOOTERS AUTOSORT

   WITH OBJECT oBrw
      :bRecSelData   := { || oBrw:KeyNo }
      :nRecSelWidth  := "9999"
      :bRecSelHeader := { || "SlNo" }
      :bRecSelFooter := { || oBrw:nLen }

      :lHScroll      := .f.
      :lSeekBar      := .t.
      :bClrEdits     := { || { CLR_HRED, CLR_YELLOW } }
      :lSeekWild     := .t.
      :nStretchCol   := 2

      :bChange       := <||
         if !( cModule == oBrw:aRow[ 1 ] )
            cModule  := oBrw:aRow[ 1 ]
            cFile    := ModuleToFile( cModule )
            if Empty( cFile )
               cText := ""
            else
               cText := MemoRead( cFile )
            endif
            cUpper   := Upper( cText )
            oSay:Refresh()
            oGet:Refresh()
         endif
         LocateFunction( oBrw:aRow[ 2 ], cText, cUpper, oGet )
         return nil
         >

      :CreateFromCode()
   END

   @ 20,420 SAY oSay PROMPT { || cFile } SIZE nWd - 440, 26 PIXEL CENTER OF oDlg ;
      COLOR CLR_BLACK, oBrw:nRecSelColor

   @ 50,420 GET oGet VAR cText MEMO SIZE nWd - 440, 530 PIXEL OF oDlg FONT oFixed

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT LocateFunction( aFunc[ 1, 2 ], cText, cUpper, oGet )
   RELEASE FONT oFont, oFixed

return nil

//----------------------------------------------------------------------------//

function ReadFuncs()

   local cText, aLines, cLine, cFunc, cFunc1, cFunc2, n, i
   local cModule  := ""
   local aFunc    := {}

   if "Borland" $ HB_Compiler() .and. ! lIsDir( cBccFolder )
      MsgStop( cBccFolder + " not found" )
      return nil
   endif

   if "Microsoft" $ HB_Compiler() .and. ! lIsDir( cMSVCFolder )
      MsgStop( cMSVCFolder + " not found" )
      return nil
   endif

   if ! File( "fiveh.lst" )
     if File( cBccFolder + "bin\tlib.exe" )
        WaitRun( cBccFolder + "bin\tlib.exe ..\lib\fiveh.lib, fiveh.lst" )
     else
        WaitRun( cMSVCFolder + "bin\lib.exe ..\lib\fiveh32.lib, fiveh32.lst" )      // MsgStop( cMSVCFolder + "bin\lib.exe ..\lib\fiveh32.lib, fiveh.lst" )
     endif
     SysWait( .2 )
   endif

   if File( "fiveh.lst" )
      cText    := MemoRead( "fiveh.lst" )
   elseif File( "fiveh32.lst" )
      cText    := MemoRead( "fiveh32.lst" )
   endif
   aLines   := AMERGE( aLines, HB_ATokens( cText, CRLF ) )                             //   aLines   := HB_ATokens( cText, CRLF )

   if ! File( "fivehc.lst" )
      if File( cBccFolder + "bin\tlib.exe" )
         WaitRun( cBccFolder + "bin\tlib.exe ..\lib\fivehc.lib, fivehc.lst" )
      else
         WaitRun( cMSVCFolder + "bin\lib.exe ..\lib\fivehc32.lib, fivehc32.lst" )   // MsgStop( cMSVCFolder + "bin\lib.exe ..\lib\fiveh32c.lib, fivehc.lst" )
      endif
       SysWait( .2 )
   endif

   if File( "fivehc.lst" )
      cText    := MemoRead( "fivehc.lst" )
   elseif File( "fivehc32.lst" )                                                            //   elseif File( "fiveh32c.lst" )
      cText    := MemoRead( "fivehc32.lst" )                                        //      cText    := MemoRead( "fiveh32c.lst" )
   endif
   aLines   := AMERGE( aLines, HB_ATokens( cText, CRLF ) )

   for n := 2 to Len( aLines )
      cLine    := aLines[ n ]
      if Empty( cLine )
         LOOP
      endif
      if Left( cLine, 1 ) == Chr( 9 )
         for i := 1 to 2
            cFunc    := TOKEN( cLine, , i )
            if cFunc = "_HB_FUN_"
               AAdd( aFunc, { cModule, AFTERATNUM( "_HB_FUN_", cFunc ) } )
            else
               EXIT
            endif
         next
      else
         cModule  := AllTrim( TOKEN( cLine,,1 ) )
      endif
   next

   ASort( aFunc, , , { |x,y| If( x[ 1 ] == y[ 1 ], x[ 2 ] < y[ 2 ], x[ 1 ] < y[ 1 ] ) } )

return aFunc

//----------------------------------------------------------------------------//

static function ModuleToFile( cModule )

   local cSpec := "..\source\" + cModule + ".*"
   local cFile := ""
   local aDir

   aDir     := DirectoryRecurse( TrueName( cSpec ) )
   if !Empty( aDir )
      cFile    := aDir[ 1, 1 ]
   endif

return cFile

//----------------------------------------------------------------------------//

static function LocateFunction( cFunc, cText, cUpper, oGet )

   local nRow     := 1
   local aSeek    := {}
   local nPos

   if !Empty( cText )

      DEFAULT cUpper  := Upper( cText )

      aSeek    := {  "FUNCTION " + cFunc + "(", ;
                     "FUNCTION " + cFunc + " ", ;
                     "CLASS " + cFunc, ;
                     "HB_FUNC( " + cFunc + " )", ;
                     "HB_FUNC (" + cFunc + ")" }

      nPos     := AAT( aSeek, cUpper )

      if nPos > 0
         nRow     := OCCURS( CRLF, LEFT( cText, nPos ) )
      endif

      GetSetTopRow( oGet, nRow )

   endif

return nRow

//----------------------------------------------------------------------------//

static function GetSetTopRow( oGet, nRow )

   local nTopRow     := oGet:SendMsg( EM_GETFIRSTVISIBLELINE )

   oGet:SendMsg( EM_LINESCROLL, 0, nRow - nTopRow )

return nil

//----------------------------------------------------------------------------//

]]>
no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278968#p278968 Sun, 13 Apr 2025 22:30:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278968#p278968
<![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278969#p278969 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278969#p278969 Sun, 13 Apr 2025 23:43:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278969#p278969 <![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by marzio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278970#p278970 However, the fact remains that from the prompt of the commands does not extract the file at 32 and at 64 bit.]]> no_email@example.com (marzio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278970#p278970 Mon, 14 Apr 2025 01:23:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278970#p278970 <![CDATA[FiveWin for Harbour/xHarbour :: Re: String functions UTF8 compatible :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278972#p278972 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278972#p278972 Mon, 14 Apr 2025 01:41:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45618&p=278972#p278972 <![CDATA[FiveWin for Harbour/xHarbour :: Copying controls :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278971#p278971 "A" there is a control - xBrowser. In the process of work I need to copy it to the dialog "B" (ocopy())/.
How can I do this ?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278971#p278971 Mon, 14 Apr 2025 01:35:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278971#p278971
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Copying controls :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278973#p278973
Maybe you can just change the parent of the control using SetParent()]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278973#p278973 Mon, 14 Apr 2025 01:55:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278973#p278973
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Copying controls :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278974#p278974 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278974#p278974 Mon, 14 Apr 2025 02:05:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278974#p278974 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Copying controls :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278975#p278975

Code: Select all | Expand

oNew:=ocopy(oDlg_1:aControls[1])
aadd(oDlg_2:aControls, oNew)
oDlg_2:Refresh()
]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278975#p278975 Mon, 14 Apr 2025 02:23:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278975#p278975
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Copying controls :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278976#p278976
Please try it this way:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

    USE customer

    XBROWSER SETUP BrwSetup( oBrw ) 

return nil    

function BrwSetup( oBrw )

   local oDlg, oBrw2, hWnd

   DEFINE DIALOG oDlg SIZE 800, 600 

   @ 1, 1 XBROWSE oBrw2 OF oDlg SIZE 600, 500 

   oBrw2:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED NOWAIT ;
      ON INIT ( hWnd := oBrw2:hWnd, oBrw2 := OClone( oBrw ), oBrw2:hWnd := hWnd, oBrw2:oWnd := oDlg, .T. ) 

return nil 
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278976#p278976 Mon, 14 Apr 2025 06:29:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45620&p=278976#p278976
<![CDATA[FiveWin for Harbour/xHarbour :: FWH Zebra QR test :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278795#p278795
Would you be so kind to build and run this example on your PC and let us know your results ?

many thanks!

Code: Select all | Expand

#include "fivewin.ch"

REQUEST FWZEBRA  // required for barcodes

function Main()

   local oPrn, cText := "Texto a QR"

   PRINT oPrn
   PAGE
   @ 2,2 PRINT TO oPrn TEXT cText AS BARCODE TYPE "QR" SIZE 2,2 INCHES
   ENDPAGE
   ENDPRINT

return nil
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278795#p278795 Fri, 04 Apr 2025 12:36:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278795#p278795
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278800#p278800 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278800#p278800 Fri, 04 Apr 2025 13:25:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278800#p278800 <![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by Ruth]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278805#p278805
it runs perfectly fine here, too.
By coincidence, we spent this morning getting the printing of a Scan&Pay QR-Code generated via FW_Barcodebmp() to work.
When printing the resulting invoice (with or without a letterhead layer) through the free PDF24, the QR code disappeared. However, printing just the QR code alone worked fine, leading us to suspect that PDF24 may block certain commercial use. Meanwhile, everything prints perfectly with FinePrint PDF Factory Pro — whether it’s just the QR code or the QR code plus text and underlay.

Kind regards and have a nice weekend,
Ruth]]>
no_email@example.com (Ruth) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278805#p278805 Fri, 04 Apr 2025 15:25:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278805#p278805
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by RAMESHBABU]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278807#p278807
It working ok with me. It is generated a PDF with a QRCode.

-Ramesh Babu P]]>
no_email@example.com (RAMESHBABU) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278807#p278807 Fri, 04 Apr 2025 22:49:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278807#p278807
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by ertan]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278809#p278809
It's perfectly working for me.

Ertan,

Testing environment:
Latest harbour and BCC 7.70 with x86 or x64 and FWH 25.01
OS: on Win7 x64 and Win10 x64
Print Engine: PDF Factory PRO
I don't use Win11 or Visual Studio :)]]>
no_email@example.com (ertan) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278809#p278809 Sat, 05 Apr 2025 00:10:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278809#p278809
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by dutch]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278886#p278886
I test with FWH2304, it works fine.]]>
no_email@example.com (dutch) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278886#p278886 Tue, 08 Apr 2025 06:28:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278886#p278886
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FWH Zebra QR test :: Reply by richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278983#p278983
It's working fine.]]>
no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278983#p278983 Tue, 15 Apr 2025 00:07:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45597&p=278983#p278983
<![CDATA[FiveWin for Harbour/xHarbour :: :MakeTotals() and picture :: Author damianodec]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278984#p278984 thisi is my xbrowse
Image
this is code

Code: Select all | Expand

	@ 40,10 XBROWSE oBrw SIZE -10,-50 PIXEL ;
	  RECORDSET oRs ;
	  COLUMNS "cdcli", "rascl", "totale",  "pezzi" ;
	  HEADERS "CLIENTE", "RAGIONE SOCIALE", "TOTALE EURO", "TOTALE PEZZI" ;
	  PICTURE NIL,NIL, "@ZE 99,999,999.99", "@ZE 99999,999.999" ;
	  FOOTERS ;
	  OF oDlg2	  
	
	oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLROW
	oBrw:nColDividerStyle    := LINESTYLE_BLACK
	oBrw:nRowDividerStyle    := LINESTYLE_BLACK
	oBrw:lColDividerComplete := .T. 
	oBrw:lRecordSelector     := .t.
	oBrw:lHScroll            := .T.
	oBrw:lVScroll            := .T.
	oBrw:lExcelCellWise 	 := .t.
	
	oBrw:bClrSelFocus = { || { 16777215, 15512898 } }   
	oBrw:bClrSel = { || { 16777215, 15512898 } }
	oBrw:bClrStd := {|| {CLR_BLACK, iif( oBrw:Keyno() % 2 = 0, CLR_SFBRWP, CLR_SFBRWD  ) } }
	
    oBrw:CreateFromCode()
	
    WITH OBJECT oBrw
		:aCols[03]:nFooterType := AGGR_SUM
		:aCols[04]:nFooterType := AGGR_SUM	
		:MakeTotals()
	END		

why does the first column of totals have that picture ?

I Use FiveWin for xHarbour 24.02 - Feb. 2024 - Embarcadero C++ 7.00 for Win32]]>
no_email@example.com (damianodec) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278984#p278984 Tue, 15 Apr 2025 01:35:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278984#p278984
<![CDATA[FiveWin for Harbour/xHarbour :: Re: :MakeTotals() and picture :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278985#p278985
Maybe

Code: Select all | Expand

'
   :aCols[03]:cEditPicture:="99,999,999.99"
]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278985#p278985 Tue, 15 Apr 2025 05:50:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278985#p278985
<![CDATA[FiveWin for Harbour/xHarbour :: Re: :MakeTotals() and picture :: Reply by damianodec]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278986#p278986
I'd like total like the detail with two decimals]]>
no_email@example.com (damianodec) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278986#p278986 Tue, 15 Apr 2025 06:03:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278986#p278986
<![CDATA[FiveWin for Harbour/xHarbour :: Re: :MakeTotals() and picture :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278988#p278988
https://forums.fivetechsoft.com/viewtopic.php?t=20973

https://www.fivetechsupport.com/forums/ ... p?p=173606

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278988#p278988 Tue, 15 Apr 2025 07:25:47 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278988#p278988
<![CDATA[FiveWin for Harbour/xHarbour :: Re: :MakeTotals() and picture :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278990#p278990 Tienes una configuracion diferente?

Damian, the thousands separator is , and the decimal separator is . by default.
Do you have a different configuration?]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278990#p278990 Tue, 15 Apr 2025 11:56:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45622&p=278990#p278990
<![CDATA[FiveWin para Harbour/xHarbour :: Problemas con el PIXEL i coordenadas < 1 :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278414#p278414
En todas las ventanas y diálogos tengo una función en el ON INIT del ACTIVATE que dimensiona a la resolución de la pantalla (es algo cutre pero a mi me vale).

El caso es que he pasado de la versión FWH 24.02 a la 25.01 (tengo la 24.10 pero no la había usado) y en un DIALOG pasa algo raro .
Uno de los GET que hay aparece en un lugar del DIALOG y con unas dimensiones que no son las que deberían, también pasa con algún BUTTON...
En la 24.10 sucede lo mismo.

Mientras escribía he realizado una prueba:

// Falla
@ 1 /* 0.50 */ ,40.00 GET oBusca VAR uBusca OF oDlg PICTURE "@!" COLORS J02CLRTEXTO,;
J02CLRFONDO SIZE 149.00,9.00 FONT J02FONTGET PIXEL //FIVEWIDI

// Falla
@ 1 /* 0.50 */,189.00 BUTTON oASFiltre PROMPT GetTrad("A/Filtre" ) SIZE 27.00,9.00 ACTION ;
FltInBrw(AMPAArra, oTDbf, uBusca, oWBrowse, oASFiltre, ;
cPostKeyDummy, ;
oSayFlt ) OF oDlg FONT J02FONTBTN PIXEL UPDATE ;
WHEN !lConfiltro //FIVEWIDI

¿Qué tienen en comun?
Usan la cláusula PIXEL y una de sus coordenadas es menor que '1'.
Hay algo que cuando recibe PIXEL y el valor es inferior a 1 no va bien y pinta el control donde le parece.
En el SAY no sucede.
Detectado para ROW y COL.

También es verdad que no he investigado más y no sé si hay más 'cosas', voy a ver si parcheo mi rutina de dimensionamiento y salto este error.

Utilizo oWnd:Move() para diemensionar los controles.

Ya dirás.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278414#p278414 Mon, 17 Mar 2025 11:46:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278414#p278414
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Problemas con el PIXEL i coordenadas < 1 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278415#p278415
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278415#p278415 Mon, 17 Mar 2025 12:41:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45537&p=278415#p278415
<![CDATA[FiveWin para Harbour/xHarbour :: Nowait y sin Nowait SOLUCIONADO :: Author D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278417#p278417 Gracias y disculpen.
Saludos

Ruben Dario Fernandez




Amigos, encuentro una diferencia entre dialogo NOWAIT y sin NOWAIT

Con la cláusula nowait el dialogo se muestra y se centra bien, pero muestra como que se crea en otra parte de la pantalla y luego se centra.
Se ve como un efecto fantasma.
SIN nowait el dialogo se crea y se muestra bien sin ese efecto.

Alguna idea,

Muchas gracias y saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278417#p278417 Mon, 17 Mar 2025 19:39:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278417#p278417
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Nowait y sin Nowait :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278418#p278418 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278418#p278418 Mon, 17 Mar 2025 19:37:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278418#p278418 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Nowait y sin Nowait SOLUCIONADO :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278419#p278419 Gracias y disculpen.
Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278419#p278419 Mon, 17 Mar 2025 20:19:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45539&p=278419#p278419
<![CDATA[FiveWin para Harbour/xHarbour :: Webservice con problemas :: Author Adolfo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278411#p278411
Tengo una rutina de acceso a unos webservices. Funciona muy bien.

Dentro de ellas tengo una llamada a recuperar unos xml de ventas. El problema con una llamada en especial es que si lo hago directamente por el navegador funciona sin problemas, si lo hago por mi rutina me aparece algo totalmente distinto (un pedazo de codigo de la web, no los datos)

Ya le di muchas vueltas y estoy en el periodo de no saber que puede ser, unos ojos mas tranquilos me podrian ayudar

Code: Select all | Expand

    oOle := CreateObject( 'Microsoft.XMLHTTP' )

    cContentType:="application/json"
    cAuthorization:=""
    cUrl:="https://superboleta.cl/?a=get-ventas&usuario=100428&xml=1&fecha=2024-07-09&key=aq91xQWD81.qw14&new=1"

    oOle:Open( 'GET', cUrl, .f. )

    oOle:SetRequestHeader( "Content-Type",cContentType)
    if !empty(cAuthorization)
        oOle:SetRequestHeader( "Authorization",cAuthorization)
    end if
    oOle:Send(  )
    cRet:=""
    cRet := oOle:ResponseBody
Reduje la rutina a lo mas condensado posible para que la prueben
Pueden probar poniendo el url en su navegador, ver lo que devuelve y compararlo con lo que devuelve la rutina.

Eso, saludos

Desde Chile
Adolfo]]>
no_email@example.com (Adolfo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278411#p278411 Mon, 17 Mar 2025 07:27:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278411#p278411
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Webservice con problemas :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278412#p278412 Si lees responseBody o responseText tienes un JSON embebido dentro de un HTML

Code: Select all | Expand

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head><body>[...]
Entre las etiquetas <body> y </body> tienes un array/arreglo con todos los datos, sólo tienes que pasar a un hash en harbour y procesar

Code: Select all | Expand

hData := {=>}
hb_jsondecode( responseText, @hData )
]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278412#p278412 Mon, 17 Mar 2025 08:17:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278412#p278412
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Webservice con problemas :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278413#p278413

Code: Select all | Expand

// C:\FWH..\SAMPLES\LAURENT.PRG - 17/03/2025 - kapiabafwh@gmail.com

#Include "FiveWin.ch"

FUNCTION Main()

   LOCAL oServerWS, cUrl, aArray, x1, erro, oADODBStream, cRetorno
   LOCAL cContentType   := "application/json"
   LOCAL cAuthorization := ""

   cUrl:="https://superboleta.cl/?a=get-ventas&usuario=100428&xml=1&fecha=2024-07-09&key=aq91xQWD81.qw14&new=1"

   #ifdef __XHARBOUR__  // PERFEITO COM XHARBOUR( I Like )

      Try

         Try
            oServerWS := CreateObject( 'MSXML2.XMLHTTP' )
         Catch
            oServerWS := CreateObject( 'Microsoft.XMLHTTP' )
         End

      Catch

         MsgInfo( 'Erro na Criação do Serviço' )

         RETURN NIL

      End

   #else // PERFEITO COM HARBOUR. ( no Like. kkkkk )

      Try

         Try
            oServerWS := win_OleCreateObject( 'MSXML2.XMLHTTP' )
         Catch
            oServerWS := win_OleCreateObject( 'Microsoft.XMLHTTP' )
         End

      Catch

         MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' )

         RETURN NIL

      End

   #endif

   oServerWS:Open( 'GET', cUrl, .F. )

   oServerWS:SetRequestHeader( "Content-Type", cContentType) // Adolfo

   IF .NOT. EMPTY( cAuthorization )
      oServerWS:SetRequestHeader( "Authorization", cAuthorization )
   ENDIF

   oServerWS:Send()

   IF oServerWS:STATUS != 200

      MsgStop( AllTrim( Str( oServerWS:Status ) ) + " - " + oServerWS:StatusText, "Erro" )

      RETURN NIL

   ENDIF

   WHILE oServerWS:ReadyState != 4

      SYSREFRESH()

      oServerWS:WaitForResponse( 1000 )

   END

   cRetorno := oServerWS:ResponseBody()

   // ? cRetorno

   IF FILE( "ADOLFO.txt" )
      ERASE ADOLFO.txt
   ENDIF

   MemoWrit('ADOLFO.txt', cRetorno)

RETURN NIL

// FIN / END
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278413#p278413 Mon, 17 Mar 2025 09:12:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278413#p278413
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Webservice con problemas :: Reply by Adolfo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278422#p278422
Les comento como me va.
Saludos]]>
no_email@example.com (Adolfo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278422#p278422 Tue, 18 Mar 2025 06:12:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45536&p=278422#p278422
<![CDATA[FiveWin para Harbour/xHarbour :: ENTER desde otro control SOLUCIONADO :: Author Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278442#p278442 Tengo un GET cuyo valor ser llenado desde otro control:
REDEFINE oVar VAR cVar ......
...
...
REDEFINE BTNBMP oAct ACTION (cVar := "12345", oVar:Refresh(), ????? ) ...... <--- aqui en ???? con le hago para simular un ENTER en oVar

GRacias....]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278442#p278442 Thu, 20 Mar 2025 18:00:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278442#p278442
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENTER desde otro control :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278444#p278444
Prueba con oVar:KeyChar( VK_ENTER )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278444#p278444 Tue, 18 Mar 2025 23:41:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278444#p278444
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENTER desde otro control :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278446#p278446
Willi Quintana wrote: Wed Mar 19, 2025 1:36 am HOla amigos,,,,,
Tengo un GET cuyo valor ser llenado desde otro control:
REDEFINE oVar VAR cVar ......
...
...
REDEFINE BTNBMP oAct ACTION (cVar := "12345", oVar:Refresh(), ????? ) ...... <--- aqui en ???? con le hago para simular un ENTER en oVar

GRacias....
Prueba esto:

Para un GET
oVar:cText( "12345" )
oVar:Refresh()

Para un SAY
oVar:Varput( "12345" )
oVar:Refresh()]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278446#p278446 Wed, 19 Mar 2025 02:48:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278446#p278446
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENTER desde otro control :: Reply by JESUS MARIN]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278452#p278452
Si solo quieres simular el ENTER en el Get, prueba :

Code: Select all | Expand

 ACTION (cVar := "12345", oVar:Refresh(), EVAL( oVar:bLostFocus ) )
]]>
no_email@example.com (JESUS MARIN) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278452#p278452 Wed, 19 Mar 2025 06:46:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278452#p278452
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENTER desde otro control :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278490#p278490 no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278490#p278490 Thu, 20 Mar 2025 14:53:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278490#p278490 <![CDATA[FiveWin para Harbour/xHarbour :: Re: ENTER desde otro control SOLUCIONADO :: Reply by Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278491#p278491 Gracias por los aportes, probe todos, el mas eficiente es el de MGA, gracias mil.
ACTION (cVar := "12345", oVar:Refresh(), EVAL( oVar:bValid ) )]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278491#p278491 Thu, 20 Mar 2025 17:58:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45547&p=278491#p278491
<![CDATA[FiveWin para Harbour/xHarbour :: HBMK2 Incremental Linking :: Author Adolfo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278431#p278431
Tengo Harbour 3.2,Fwh24-08, MSVC 2002, HBMK2

Traspase una aplicación que estaba con xMate/FWH21.x, HB3.0 a esta nueva configuración sin problemas.

Peroooo quiero implementar el linkeado incremental, ya son 34 ficheros prg y verlos todos compilar y linkear ya no es agradable sobretodo si el cambio es ínfimo y en un solo fichero.

Que flags se usan en el fichero hbp, algún directorio donde alojar los objs, que mas necesito.

Eso.

Desde Chile
Adolfo]]>
no_email@example.com (Adolfo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278431#p278431 Tue, 18 Mar 2025 09:39:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278431#p278431
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HBMK2 Incremental Linking :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278434#p278434
-gui
-w0
-inc]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278434#p278434 Tue, 18 Mar 2025 13:21:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278434#p278434
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HBMK2 Incremental Linking :: Reply by Carles]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278500#p278500

Code: Select all | Expand

hbmk2  -help
C.]]>
no_email@example.com (Carles) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278500#p278500 Fri, 21 Mar 2025 10:40:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45543&p=278500#p278500
<![CDATA[FiveWin para Harbour/xHarbour :: Warning borland :: Author Patricio Avalos Aguirre]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278497#p278497
Hace tiempo tengo este warning y quisiera eliminarlo en lo posible
c:\borland\bcc582\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Warning: LINN32: Last line 1045 (415h) is less than first line 1045 (415h) for symbol "<null>" in module obj\Salidas.c

el archivo tiene mas de 4.000 lineas pero no encuentro a mi parecer un código raro en el archivo
si voy al archivo salidas.cl en la linea 1045 tiene puros números,

89,40,0,1,0,1,0,7,0,176,59,0,12,0,
121,8,28,12,95,255,92,2,1,92,2,1,25,13,
95,1,165,95,255,92,2,1,92,2,2,6,95,8,
100,106,11,57,57,57,57,57,57,57,57,57,57,0,
89,42,0,0,0,7,0,7,0,9,0,10,0,11,
0,2,0,3,0,28,0,176,64,0,95,255,95,254,
95,253,95,252,95,251,95,250,96,249,255,12,7,6,
121,97,255,255,200,0,100,100,100,120,100,100,9,9,
100,100,100,100,100,100,106,11,97,71,101,116,91,48,
50,44,50,93,0,100,112,24,95,7,92,2,1,122,
2,26,158,3,36,108,1,48,56,0,176,63,0,12,
0,92,22,89,40,0,1,0,1,0,7,0,176,59,
0,12,0,121,8,28,12,95,255,92,2,1,92,2,
1,25,13,95,1,165,95,255,92,2,1,92,2,2,
6,95,8,100,106,11,57,57,57,57,57,57,57,57,
57,57,0,100,121,97,255,255,200,0,100,100,100,120,
90,4,9,6,100,9,9,100,100,100,100,100,100,106,
11,97,71,101,116,91,48,50,44,50,93,0,100,112,
24,95,7,92,2,1,122,2,36,110,1,95,7,122,


alguien tiene alguna idea de cual seria el warning, aunque mi aplicación no afecta en nada pero esta esta warning :-)]]>
no_email@example.com (Patricio Avalos Aguirre) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278497#p278497 Fri, 21 Mar 2025 09:40:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278497#p278497
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Warning borland :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278498#p278498 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278498#p278498 Fri, 21 Mar 2025 09:54:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278498#p278498 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Warning borland :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278503#p278503
crear una DEMO completa para probar.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278503#p278503 Fri, 21 Mar 2025 11:02:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45556&p=278503#p278503
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278421#p278421
Compilado con la versión de harbour indicada, sigue generando el error 58 : segun https://curl.se/libcurl/c/libcurl-errors.html

"CURLE_SSL_CERTPROBLEM (58) : problem with the local client certificate."

!!! por eso creí que era por la versión que no lo soportaba 8.12..

Si se descarta lo de la versión ... alguien nos puede colaborar en probar el ejemplo con un certificado .p12


Gracias]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278421#p278421 Tue, 18 Mar 2025 05:51:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278421#p278421
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278423#p278423
https://curl.se/libcurl/c/CURLOPT_SSLKEYTYPE.html

Hay que exportar el certificado P12 a PEM

Code: Select all | Expand

rem Public Certificate
C:\OpenSSL-Win32\bin\openssl pkcs12 -in cert.p12 -out cert.crt.pem -clcerts -nokeys
rem Private Key
C:\OpenSSL-Win32\bin\openssl pkcs12 -in cert.p12 -out cert.key.pem -nocerts -nodes
Luego ya se puede utilizar con curl

Code: Select all | Expand

curl_easy_setopt(curl, HB_CURLOPT_URL, "https://example.com/")
curl_easy_setopt(curl, HB_CURLOPT_SSLCERT, "cert.crt.pem")
curl_easy_setopt(curl, HB_CURLOPT_SSLKEY, "cert.key.pem")
curl_easy_setopt(curl, HB_CURLOPT_SSLKEYTYPE, "PEM")
curl_easy_setopt(curl, HB_CURLOPT_KEYPASSWD, "s3cret")
response = curl_easy_perform(curl)
curl_easy_cleanup(curl);
Si alguien lo consigue o estoy equivocado, por favor díganlo ;)]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278423#p278423 Tue, 18 Mar 2025 06:34:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278423#p278423
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278428#p278428
https://www.leaderssl.es/tools/ssl_converter ---- de .p12 a .pem

pero ahora la respuesta es un .. Empty( cSoapResponse )

y con p12 si hay cSoapResponse .. con codigo error 58]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278428#p278428 Tue, 18 Mar 2025 07:55:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278428#p278428
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278432#p278432
OpenSSL es fácil de instalar y gratuito y te he dejado la forma de convertir entre formatos

Revisa que despues de setear las opciones obtengas los valores devueltos así :

Code: Select all | Expand

   nError    := curl_easy_perform( curl )
   cResponse := curl_easy_dl_buff_get( curl )
]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278432#p278432 Tue, 18 Mar 2025 10:53:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278432#p278432
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278436#p278436
RETORNA 58

cSoapResponse := curl_easy_dl_buff_get( hCurl )

RETORNA--- VACIO


//**************************


E:\ZERUS\FIRMA_ELECTRONICA\CERT>openssl pkcs12 -in CERTIFICADO_29.p12 -out cert.crt.pem -clcerts -nokeys
Enter Import Password:

Error outputting keys and certificates
881C0000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../openssl-3.3.1/crypto/evp/evp_fetch.c:355:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()

E:\ZERUS\FIRMA_ELECTRONICA\CERT>]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278436#p278436 Tue, 18 Mar 2025 14:18:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278436#p278436
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278437#p278437
Gracias]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278437#p278437 Tue, 18 Mar 2025 14:29:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278437#p278437
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278445#p278445
hbcurl.ch tiene un montón de parámetros y es fácil confundirse, en mi caso el fallo era establecer HB_CURLOPT_SSLKEYTYPE como tipo de certificado cuando lo correcto es HB_CURLOPT_SSLCERTTYPE

En cambio, es indiferente HB_CURLOPT_SSLKEYPASSWD o HB_CURLOPT_KEYPASSWD, ya que la primera apunta a la segunda

Este código, con sus datos reales, me ha funcionado

Code: Select all | Expand

#include "hbcurl.ch"

PROCEDURE main()

   local nError, cResponse
   local cXmlStr   := hb_memoread( "peticion.xml" )
   local aHeader   := {}
   local cUrl      := "https://..."
   local cCertFile := "certificado.p12"
   local cCertType := "P12" // o "PFX"
   local cCertPass := "********"
   local hCurl     := curl_easy_init()

   // Establecer cabeceras requeridas por el WS
   aadd( aHeader, "Content-Type: application/xml;charset=UTF-8" )
   aadd( aHeader, "Accept: text/xml" )
   aadd( aHeader, "Cache-Control: no-cache" )
   aadd( aHeader, "Pragma: no-cache" )

   // Setear opciones
   curl_easy_setopt( hCurl, HB_CURLOPT_HTTPHEADER, aHeader )
   curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
   curl_easy_setopt( hCurl, HB_CURLOPT_TIMEOUT, 15 )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERT, cCertFile )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERTTYPE, cCertType )
   curl_easy_setopt( hCurl, HB_CURLOPT_KEYPASSWD, cCertPass )
   curl_easy_setopt( hCurl, HB_CURLOPT_POST, .T.)
   curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, cXmlStr )
   curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )   

   // echo server, para depurar .T.
   curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .F. ) 

   // No reutilizar conexiones
   curl_easy_setopt( hCurl, HB_CURLOPT_FRESH_CONNECT, .T.)
   curl_easy_setopt( hCurl, HB_CURLOPT_FORBID_REUSE, .T.)

   // Conexion
   nError    := curl_easy_perform( hCurl )
   cResponse := curl_easy_dl_buff_get( hCurl )

   if nError == 0
      hb_memowrit( "respuesta.xml", cResponse )
   else
      ? "Error :"+ curl_easy_strerror( nError ), nError
   endif

   curl_easy_cleanup( hCurl )
   curl_global_cleanup()

return 

Así que no es necesaria la conversión a PEM con OpenSSL, un problema menos

Cuando se trabaja con certificados, sobretodo en fichero, lo primero que hay que comprobar es que sea instalable en la máquina, es decir, dando doble click al certificado se tendría que instalar sin problemas en el PC
Podemos acceder al certificado con tecla Windows+R certmgr, o desde cmd >certmgr
Comprobar también si el certificado está vigente (no caducado) y finalmente comprobar los usos del certificado, para que nos pueda servir para comunicar con agencias tributarias, normalmente se requiere de :
Autenticación de Cliente (SSL/TLS)
Firma de Documento (XML, PDF)
Certified Document Services (CDS)]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278445#p278445 Wed, 19 Mar 2025 01:48:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278445#p278445
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278451#p278451
No me funciona, te comento actualmente firmo y envió con ese certificado .p12 desde el app "SOAP UI 5.8" y desde un app en c# (lo quiero reemplazar por harbour)..

en SOAP UI , uso este xml : anexo al final

Si te parece te envió el certificado por correo, para que por favor me colabores

Gracias

// prg ajustado

Code: Select all | Expand

#include "hbcurl.ch"

PROCEDURE main()

   local nError, cResponse
   //local cXmlStr   := hb_memoread( "peticion.xml" )
   local aHeader   := {}

   local cUrl := "https://vpfe.dian.gov.co/WcfDianCustomerServices.svc"
   local cCertFile := "CERTIFICADO.p12"
   local cCertType := "P12" // o "PFX"
   local cCertPass := "xxxxxxxxxxxxxx"
   local cSignedXmlFile
   local cNomZip := "z006331767200025SP104100000250.zip"
   local cFacturaXml,cXmlStr

   local hCurl     := curl_easy_init()

    cFacturaXml :=  "UEsDBBQAAgAIABxKZ1obwE1WRBYAAGlGAAAjAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWztPNtyo0qS7xMx/6DwedkNHVncJMDR9iwgJCELJATo9salQEjcDEhI+pv9hvmE+bEtQFdbard7pifO7h5HdBiyMrPyVplZVLm//W3re5UNiBM3DJ4f0EfkoQICM7TcwHl+WKd2jXqoJKkeWLoXBuD5IQgf/vby1798E4JN6JqgAsmDBGLGwVOoJ27yFOg+SJ6SCJiu7Zp6Cvk+rQ3vKTEXwNefton1dKCtYQ8l+ZOpm19kwYW+HwaM48TA0VMAXyMoXpAmF0yNn2PKQnTzFkML6rlI0+ipXs+y7DHDH8PYqWMIgtQRug5xrMR1fjtig236U9Pz2xQEuTduiZCkUAbL1YMnJ9w8meGTrZvpOtaBB8w0DgPI+UlJ43UOBJCuhh4pt7oFzvKvY/cRpIlbaICgNILXN+gj/oj9doWPEugnJMQjeiZJ3DsGQutTsa8UmtbcIA8nE0CqxD2o3w9Li/xsHFXyn8PMVmgmjwWLWhiBoBAB0tXDpKax/Rr2iNYhbd3X3QCi1nPYic8j+gjHHmB8Q37foAef4PDJIUkJvzV0GjkOXngxgE/pJUKOAx351IJ+vMH8GukgW84mDr2PSO/wmHW6CGN3X9jrBaXIJoGQDZpAaYz6Vr+LeJftFdoQxG5o3UTO8eGCg8Gnx2kLrsgXDMGIGkLWMPpb/Xrke/R8YB2pm5fUR/hNQetfkfRKLWAdzJHclSpHH8bAdrcvyrCc6vD6PYp2HPovaIlePH8PWQ1fGjCLlNjw5XMlvyf3lZvvxs1l0CjhOjbv2DY3vmDBCD6tQi60QMVzk5RxYKXYCa3nh+bDBUCCC/f5QQvcFFgVqSBJKrwZBqHvmpU8yblJHvEVO4wr/DqGq7QkLxIE0EbCj6QBWKJATvTkmDBxrqGWu49i5iv64YUblDH0cfwT492zS2E7JbTTTI/BMA43rgXi+8F2xBBalSJ5gbPhULrxcAUsjccNfq+0BEaq/EfLjYFpuv/4e1CBVhf8aA2SNEwquwpjrfVAT6CFTaiN7oHkP4+scs7I8aXkiEM7NHEcJZskdgzio1T3JT/q+Oslf7FxErNxy6rROk7WCLvZqNF4w64RtGETtkUjVJ4KroW6577PXXOlnQJMWNzSXRHYv1pPizaRJoZaJkKZFgDwlURsg8YwEtVRnLAw3GhaDYO2jQaJgwYJXxoGhYKmaRIYRaOoTdl6EzMxukFYDdLCKYzCbZtsog26CR+uLXCp2h0rXOfNT4P5Jvq/NbKJj5FNwRaDJrEmdasUfCfOv4N+x1ryqDBl3msksNmAqQT2xU5Y20Q2eMwbs0fYmD2aYd6GrH2Yb+oJ0GNz8Rb/7QhZgd0zShm5U9EGaRAw8yOUDpcmrNMYQiCYSRENy0SJpkUaTZymGs0GRViUgYMmoGicNFG6CSwSRSzDalC6YaBNxEBNmyApmqQNkqbNUrGDsO9aj/r3e49v9e/2L+Xwzd7nJ7qibxaMVdcJ9Lxf/WKbLVjPDyfaGo5gNE6bVA0jKatGNABZM/QmVQMGCQMDBSSCUg+n+fL6aYfFK6cHRd/sHQJABDAarArjOTAm0oV/Sxh1VHa1I56rQYFq0FlBLYcgOArDvn6t149wLNghxFG9mh/G4Lc40WvJQscazSPPEbBBDFcTKLQ/vdUaJtqwsEbecFF0jTBJrGZgNIQjFgHzhN00abhsitJaGkGN9SCBBdhPrl8/lfLKCSDYAA/Wb6uWHJUtJK1/nKHlOnB9f9EUULffrg1Qshnr3hq8iE7UVGM18Yh5b7abTmVGNlsGkhKsJmRjkOxZQmLYTRpT2XMh0iVxATgZ8HvGfQW7PFgO5vvtayFXO1L/KiNwqbscv7p0OCPn1XTL9PWQ7wRorzOVM6c7JAN8hC03Q4DMiC8aQd1F4Du7v9/KdTTM+7c4dUFyNNAxhL9oqKRgF0F2yS8zllNvR6uVPWT3o8Ga2DKkFXQmzKutKG/q9HU8WWW6zVQHpkTxnxur/jGXnFQuKK4zVAH6wTRl9iNqwTDboZkkQWvXWpFDnWLXfcQfDaLptN3dtz3SYMZ2A4Rv3VgU69sV39lZuDXwN3VW5NHBWB4ilFrdOK3RbqjozZ6sKFUn3Eu2kjXm6LbbUOSha0lUNt7MgoWKMMyG4jrU0M1eEdTyBquwbSgzqhWOGtux4776PrdeUu4K6wG7Lo2mPXax0qpvokH1tOrkbYrg+01PAYMFPVE1nxrx9qCarRpKu/XmJdnodeqtNIvEJpKeRMTbcitls34LBBNiAQYxOXWSLhmxZkRHfY+NuJm+WOMDxIrszg4A1fX7SuxUt1OJmqCSSo8jcd0k2TQKJWptuOko9mbEClGaI0eKMrFK7nbUDKHSJFobW6KfTtHGW/b8fPLZ2SOF3w6L9CdKyvX6njYQGm5T9dMLly+NYscB05UgdLkWx7E25zCZwDKOILxWBRVB8F4oa1lLnvVew7mw2JgSI/N9VmYyx9S2vSWzYh1pzDKi2B1LY3klsQIvsao2VkYrT1E13pERWlQRlFPgs4a0VXEkZ7wza41luc1nSUNs8XtRFbbwXyq12ozYIjoMqvFcluEyNt5ZHc/XJ9Ji3qH3QptdmD7vjHxvZ0zg78nWm+GjnYE1ohkG58La6Xza8/VpL50pbMvAthtj0otmKu+I7IGvk01lpC2Nxr2OMu5JMsRTke1Q1XowEFlVHovbdotRSr1MkUN6wxFCa3CM76/EtSgnGScX8nf4rNdS9wxoZ8hOajG4uJS34l4jxP1cL2DLS9hYF4VuXxxlWafUv9dipZa2grLtZ47UkuFvzVGRmTNoMXtxJGZ8OY/GZyG00QwVl0JDUgVCVJisW/JotVhLksc9TeFzW7fVMe+JKk85I2/cVr1RW9vzI5GhCt3ZkShISxHyMjFpL2y7LUYv9UxEHpkvoC3R3L7za7tuhRYDSrxQbCMoq3kjIbebPJY0RYOu27GdsTYejPnxpX8hWcpZ0Hem305nk0YA/dAXmVUpy0LkZITKHId3RQbpcMpbRxEMvCXzLCNrDEMIbCtj8vFXJoQxKXMTossbe1yqy5NuvTGMudCj6iAVHWfRc/fADGQjtMi3WbU6f9WGndcJ2tHeElYASTjHyOakoQ2Hb2nABSaxn73CpF1vKn7cJhfpYkOOo/1k7Vi61t/LUXVEuJjZwXrmFuZcyxppTXNrzdhw3qLJ9mSZvXVfp3NMX3ALKjX2q/Z6OPUiiW4Te7iUOnSEs+mgs+4tYk609BWNNBiq3nTILtrpr9dWPd3qXFt4Rasr4Eesnoqiy6AKUeW71e1EnHXSraCvQk/qG3o0XVTXU3Nn+N0m1QHEa6y3530u0DbOBg1JnsOHGxlM7bkRwAWJoqzLdapzM2aB3ptHxlhBX0ngjcdLC7WjgBfpBv+KvkX+Utu1htPWlIErg2E6S8fp72Ae4MglI+a+7o4g3KZ4ZslAQBE/lpDJM5HVmbbIDQNsPe6M5yNp3tB8cY57dcTDhoYktpMOxyUd6MM2m/Esy1OZqrJ91nFi1uHbrGxmzGxW17sjxGyFmz7OxnB9bwyusZxNUM/055Hpo4sZRicGhrr6hF/PMGozn0QujMWN2R27RsdbWtjY7eMSMpvCmN3RmxkuZSKrFXLysjwQmZ3AubkcMuvMzHXXSbJeBuNyhHgsV6wf4TWbsaysdWHOu5BZ5C9kbTEqxzGg1L8L9alnCnwXYVx2bWgvFmvCcdl3YJy2F3mcThaI1WWa/R2d6Zi3NLAMyn+Rl3JdO3Q6871F35c2fWz8NvOlBbQDOvO30Qy3vJlL4/NJb6VPJaSPSZ4ZjIrnISal8xa6NP0M8pL21mS8G2rSoKdKvIaO4Xri4+vcll7ktjTPbZ64klTV1faj1ioTVXErLvmt6CJIT4W5DNU8ERm1oKyIPpnDtd9eGbgYa532bqaknTKvpm2jA8Op29sYvreE761Lv70iZ/0Knjs413VNiC9qQpzXhAKPy/GOuTYtcm0Ol0v6YRh2+5HQFWAObYvKLOsxx/yHqmMN4uX5SEPb2mre01ZoXoeGKk9L8spjhbbEwjz4Pvd8P8+fc+wrzLGf8P5ldUsTWeGYu/sDlYG1hN/BBL/rq3LWlYt4HrDsjG9zPSM2cY6c0Y22v19oxHYmAmph4HQqMoVsVquIX5mH8d4mWozEOqu3xcrt0BkC82vSZpgBjGWeiZORvJ5mrNhUBuFiiW3k5rQfir4VUPiGX8lSXZqTEhuJXQGpCn7VXeK+vJ2Zwx6vNqfYm7ccp9SmanEEkAAjyVVzogr7lsmut8FSENtRVzUXXGc85ND6lJf6cRMul2o2XcctiWUa8xATiDGjrgS+07RwergWCUXx99V53Fm6g32VQdq2nLw1s2HVjmi1340WI0ojMntFkdJr36O66Fi3Q3I2Jdt7esINwUzklwDsXJZfWOFUqW9IDx3yS7Jnz0JL6Q3qs4XU25ue3uSZqImz43pvKKqyPmC9fYQqfao667ZUDawEQ4z6DZfdzejXfj0M5c3cr46Q2NzoTI/jnNDxzV2qLYn+Kx155sAVnDRycGecyocm733zdQKe2jPYuJ0bwJHCXL2LobX21smLt2a3HYre20h7Ua+qzeytZw/xWBUEQZkleNBDOs0uaPrDja94ra3rpSPvNWaUbvzasdZVbz1u7ZvxPIvwgYhxb6/EprqK3raAMGZGFdVNNA67E4+jkFd7BYQ0YFN3KtrLoDuFhT4QpxNG78h1sB2H1Oti52GWH8qh3Z9QDdZYog1dtUdA3HHsdqNbmaEuYnemZ8vuJBpaA3k4rIaDLT1yyTiwSXPiLBQutaNu9CZPYrUlOJK2Hi7YejJedtjYVDrRa09VMOxtTNixh4t+Y1HdsMGae8MWEyWL0D7Rp/XBlkn3JNL1cGzSQEXFsuSZs9j409ds6rsTfYJqqbLGo/EYJtlpc75tDcGIS/W3eYiKzh7N0GMjfjRybnB+W551vjAywxajJ0i577p0UP3KffVzA1+wGhhLYKZFLz/NDzHLd8Gq0RZB0xiC1ygdBTWCJJGa3jCaNR2QKEUbBG5bGOzji5PPJ3mte669cwPnvMP98lFqLsMtRjWSoC3dpoxaAzPzrQVC1SigY3DLYcAfirQI23qoqHrsgPTL3xxOOrzfoRfy/Eu255f8T4zOE10iQMXh9q040WvUoPERUkXoJ7T51GjWkMZTfuz1Efma/mohlyM56PK53Kj/qu8GvjfZ0sPYblQXkSAPNJHuzsF4N/J3PW4XrHYDRBz2bdZLFuGt7wYfxSwhQpKsQayA2NW905axBObftl+45/xzef+ZHXRgUaq0HrnH3yuDZ44R+VFbgBuOCjfoD2DtYioKo8Ah7flkKitMKkM91ittN/b1Cn++IFDhIO/YLsCwuQ99w9V/ryj8SGD6EqyE/OiZRlAcxVAUqxG/VzjpWdFgM1e5M+8ptV5IflSm1E1a+waIX3C0CXmiTarZxPPTChh1J9orxKPFru1Tv/R8/bMAOUdl6Lnm6Www534H4WLgPeiC+vjl/+PFi6vP/xHkkOZuAIWh6xvsPWiDPUaWfVL1g3wtkJixG+WfpItPqneFO4G6erL4VSvAEkNxk5qdhi7snVmIpEKiyGDcY1uBFtjKwGaj7TT2wxiZ3V8B7ySt33VE/Qs+BPEo9M55wdNh/rByUHID9pKso8iDHE7RdDF2A5ZcyXKcqv6F9Afyewt6WYM+YpzH2iGMibRSvpy+MsLc/8WP/EfOIlQh/4L7koJtmvv3KPVp4IDIH257vWhqu0YdsU7QI+C9pO+scFvJ+u06dBq4VRvLgl7yern+YPfyk2dTH+GHE6/idgOEj8v7b0LrBb5UsEe0vDBwNXIm4NZJGvqH4yI4giIl+nv4mQJqZ7tefmJdnH3CCZ4q7TKBHDLzP/5epGYLVMZQI71keCb7wIrfAnN9nP8K+3LkTAZflCGKEAfcqzFNO53fFie31+ernNbma0qXwSkYXL/+3PIo0KXseRk43go69BAHNU4j77CLJuLQZjSObcb16Jmi9Y47ipW4rY+8y3sh+fIpTlaRoznfwc8UUlhsPk6PF7MejoO5dZwv7/KInhsMD3PfGj0T990AFLdeYMWE5dE8xsAH+IFEN58Y08wH4FpTDjkQtgfp7rx4cnrGsty0OHQ/oENHHKxxa+hMCye4ZncFvb558/5A+hCQ5+splxF6XNk/wOs8X9GD3Jil7KoYRRX6/UGlrfGSyisVkRmpXebgpHeUFxN/GCpGFrskPzw+3mD8MKteWC4Gya2bWkfN8/sLt9S+QOPcgwSsxjEjRmSkzkHk08htwmGYpLo3h3upQxxeAO5MVV6nUtZGbmnoU4WRVEZq8aPDhO/Hf4xNEcL5FY27gzf4nM2Xh/b9K2rFKDdiHit4syKNBo8VgqjhjcqgLXCCxFQoBK/wLQG+DSqyNjivlluXQj6dtZDroMJXrs196SraZdBWPD1w1rpTJGgAd2DHxv121F4qclvMKyVvBPx3wvq8zFR9W97Zu7XWRsBxkzQuyD9fdx+wb3DML0Trwe6Pc43uSqhbEkMD9cEGeKcrkyUXAm7RRzWarg2lkskl3q0McmmdP7PJn9nkj5lNPo/SQtN7WeMihD+N30JEYczcFbiU6OZUFyX99vhpuA8c3eNvReWfGe4UtnEUQqXApXqfuVcZ/oh7z7uVu/79wdkvPH7HpQdd4M7LTG8mcuCBaJEnuSZCNim8QTcPsp1HbpCdv7qJuuu9xOskCe205qWW/l+LMPUh8NEM/cOfOFwjf5D/vXgXWh23uZ/2+e92AuWO9Y+2E/g3Bn/jOvhR/OGFpHGqgTaIX70N6Q0kRRlIlZGmKEJF5WHe+L+6Bflf2wIw4xZT6Q+USqEx/P1bpYlUahW0SVVUtoIiCP5n7f/37yTuLp0/ao39NM381C6C/uIu4gcar/n8RyqzFFZ0WFlM/Y/Vfv0/CYt/ZTeT93kEgSI09XPdjOu7Zhz+873Mye8gTm63BW03LgP/6OZyojP4Fo3uu15ZmD7ExMXYDUrRtSwPlEeZ9XeAj664FvrTvuxG13UI+l3+yVcE+uWfGh+W48fPouV+/IKmWPfHw4D38FtU9z58vxu+UOKjiIXkRRyKMGxSPd6pYap71/Plte909sL4uR0q5uHLdr4QuMHwAfb7j8ev9DfwrxnCzMFvTW+duBtwj9+Z3UfsD9yE4BNu6BW7d+gfrKsbHhjBkfwI7XP5bhLc5PkD0l1hXvrunpMKDx5OMK6alGPoobdD70BiyTDH5Rmosg7cNI+154f8HBI9SfQe8VfGRq5KCvzrxJKfp5xP018UfjQWOGFQYRRBUXmJE5jKWBipGtM/HL5cIL/PUErxf2HEVj7LFzYzuSY0TV8nfD5J//HfObe8buhWGB2LiFcx87/bdo31Ds4AHmDDPL6/H/kxkY6t72HrliMfDl13dw5k7u0HLrbo9xuAHH74C6UwSNZ+mOv4VGkDI3/IM05JW+J80OlzQb+uD/apPtiP6HM8moMVvixzz7DMwZenCvLPqFQiXQVvWRVi1wQf4rmA/kg2OON94MHqCfh08V4ivS9xZ8kOwl8lkW/1wzt8/utf/gdQSwECFAAUAAIACAAcSmdaG8BNVkQWAABpRgAAIwAAAAAAAAAAACAAtIEAAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWxQSwUGAAAAAAEAAQBRAAAAhRYAAAAA"
    // MemoRead( cSignedXmlFile )

    // Crear la solicitud SOAP
    cXmlStr = ;
        '<?xml version="1.0" encoding="UTF-8"?>' + ;
        '<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:wcf="http://wcf.dian.colombia">' + ;
        '<soapenv:Header/>'+;
        '<soapenv:Body>' + ;
        '<wcf:SendBillSync>' + ;
        '<wcf:fileName>' + cNomZip +'</wcf:fileName>' + ;
        '<wcf:contentFile>' + cFacturaXml + '</wcf:contentFile>' + ;
        '</wcf:SendBillSync>' + ;
        '</soapenv:Body>' + ;
        '</soapenv:Envelope>'

   // Establecer cabeceras requeridas por el WS
   // LOS HEADER COMENTADOS LOS USA EL APP "SOAP UI"

   //aadd( aHeader, "Accept-Encoding: gzip,deflate" )
   aadd( aHeader, "Content-Type: application/soap+xml; charset=utf-8" )
   aadd( aHeader, "SOAPAction: http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync" )
   //aadd( aHeader, "Content-Length : "+ALLTRIM( STR(len(cXmlStr),12,0)) )
   //aadd( aHeader, "Host: vpfe.dian.gov.co" )
   //aadd( aHeader, "Connection: Keep-Alive" )
   //aadd( aHeader, "User-Agent: Apache-HttpClient/4.5.5 (Java/17.0.12)" )




   // Setear opciones
   curl_easy_setopt( hCurl, HB_CURLOPT_HTTPHEADER, aHeader )
   curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
   curl_easy_setopt( hCurl, HB_CURLOPT_TIMEOUT, 30 )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERT, cCertFile )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERTTYPE, cCertType )
   curl_easy_setopt( hCurl, HB_CURLOPT_KEYPASSWD, cCertPass )
   curl_easy_setopt( hCurl, HB_CURLOPT_POST, .T.)
   curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, cXmlStr )
   curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )

   // echo server, para depurar .T.
   curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .F. )

   // No reutilizar conexiones
   curl_easy_setopt( hCurl, HB_CURLOPT_FRESH_CONNECT, .T.)
   curl_easy_setopt( hCurl, HB_CURLOPT_FORBID_REUSE, .T.)

   // Conexion
   nError    := curl_easy_perform( hCurl )
   cResponse := curl_easy_dl_buff_get( hCurl )

   alert(nError)
   alert(cResponse)

   if nError == 0
      hb_memowrit( "respuesta.xml", cResponse )
   else
      ? "Error :"+ curl_easy_strerror( nError ), nError
   endif

   curl_easy_cleanup( hCurl )
   curl_global_cleanup()

return





//***************************************************************************************
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wcf="http://wcf.dian.colombia">
<soap:Header/>
<soap:Body>
<wcf:SendBillSync>
<!--Optional:-->
<wcf:fileName>z006331767200025SP104100000250.zip</wcf:fileName>
<!--Optional:--> <wcf:contentFile>UEsDBBQAAgAIABxKZ1obwE1WRBYAAGlGAAAjAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWztPNtyo0qS7xMx/6DwedkNHVncJMDR9iwgJCELJATo9salQEjcDEhI+pv9hvmE+bEtQFdbard7pifO7h5HdBiyMrPyVplZVLm//W3re5UNiBM3DJ4f0EfkoQICM7TcwHl+WKd2jXqoJKkeWLoXBuD5IQgf/vby1798E4JN6JqgAsmDBGLGwVOoJ27yFOg+SJ6SCJiu7Zp6Cvk+rQ3vKTEXwNefton1dKCtYQ8l+ZOpm19kwYW+HwaM48TA0VMAXyMoXpAmF0yNn2PKQnTzFkML6rlI0+ipXs+y7DHDH8PYqWMIgtQRug5xrMR1fjtig236U9Pz2xQEuTduiZCkUAbL1YMnJ9w8meGTrZvpOtaBB8w0DgPI+UlJ43UOBJCuhh4pt7oFzvKvY/cRpIlbaICgNILXN+gj/oj9doWPEugnJMQjeiZJ3DsGQutTsa8UmtbcIA8nE0CqxD2o3w9Li/xsHFXyn8PMVmgmjwWLWhiBoBAB0tXDpKax/Rr2iNYhbd3X3QCi1nPYic8j+gjHHmB8Q37foAef4PDJIUkJvzV0GjkOXngxgE/pJUKOAx351IJ+vMH8GukgW84mDr2PSO/wmHW6CGN3X9jrBaXIJoGQDZpAaYz6Vr+LeJftFdoQxG5o3UTO8eGCg8Gnx2kLrsgXDMGIGkLWMPpb/Xrke/R8YB2pm5fUR/hNQetfkfRKLWAdzJHclSpHH8bAdrcvyrCc6vD6PYp2HPovaIlePH8PWQ1fGjCLlNjw5XMlvyf3lZvvxs1l0CjhOjbv2DY3vmDBCD6tQi60QMVzk5RxYKXYCa3nh+bDBUCCC/f5QQvcFFgVqSBJKrwZBqHvmpU8yblJHvEVO4wr/DqGq7QkLxIE0EbCj6QBWKJATvTkmDBxrqGWu49i5iv64YUblDH0cfwT492zS2E7JbTTTI/BMA43rgXi+8F2xBBalSJ5gbPhULrxcAUsjccNfq+0BEaq/EfLjYFpuv/4e1CBVhf8aA2SNEwquwpjrfVAT6CFTaiN7oHkP4+scs7I8aXkiEM7NHEcJZskdgzio1T3JT/q+Oslf7FxErNxy6rROk7WCLvZqNF4w64RtGETtkUjVJ4KroW6577PXXOlnQJMWNzSXRHYv1pPizaRJoZaJkKZFgDwlURsg8YwEtVRnLAw3GhaDYO2jQaJgwYJXxoGhYKmaRIYRaOoTdl6EzMxukFYDdLCKYzCbZtsog26CR+uLXCp2h0rXOfNT4P5Jvq/NbKJj5FNwRaDJrEmdasUfCfOv4N+x1ryqDBl3msksNmAqQT2xU5Y20Q2eMwbs0fYmD2aYd6GrH2Yb+oJ0GNz8Rb/7QhZgd0zShm5U9EGaRAw8yOUDpcmrNMYQiCYSRENy0SJpkUaTZymGs0GRViUgYMmoGicNFG6CSwSRSzDalC6YaBNxEBNmyApmqQNkqbNUrGDsO9aj/r3e49v9e/2L+Xwzd7nJ7qibxaMVdcJ9Lxf/WKbLVjPDyfaGo5gNE6bVA0jKatGNABZM/QmVQMGCQMDBSSCUg+n+fL6aYfFK6cHRd/sHQJABDAarArjOTAm0oV/Sxh1VHa1I56rQYFq0FlBLYcgOArDvn6t149wLNghxFG9mh/G4Lc40WvJQscazSPPEbBBDFcTKLQ/vdUaJtqwsEbecFF0jTBJrGZgNIQjFgHzhN00abhsitJaGkGN9SCBBdhPrl8/lfLKCSDYAA/Wb6uWHJUtJK1/nKHlOnB9f9EUULffrg1Qshnr3hq8iE7UVGM18Yh5b7abTmVGNlsGkhKsJmRjkOxZQmLYTRpT2XMh0iVxATgZ8HvGfQW7PFgO5vvtayFXO1L/KiNwqbscv7p0OCPn1XTL9PWQ7wRorzOVM6c7JAN8hC03Q4DMiC8aQd1F4Du7v9/KdTTM+7c4dUFyNNAxhL9oqKRgF0F2yS8zllNvR6uVPWT3o8Ga2DKkFXQmzKutKG/q9HU8WWW6zVQHpkTxnxur/jGXnFQuKK4zVAH6wTRl9iNqwTDboZkkQWvXWpFDnWLXfcQfDaLptN3dtz3SYMZ2A4Rv3VgU69sV39lZuDXwN3VW5NHBWB4ilFrdOK3RbqjozZ6sKFUn3Eu2kjXm6LbbUOSha0lUNt7MgoWKMMyG4jrU0M1eEdTyBquwbSgzqhWOGtux4776PrdeUu4K6wG7Lo2mPXax0qpvokH1tOrkbYrg+01PAYMFPVE1nxrx9qCarRpKu/XmJdnodeqtNIvEJpKeRMTbcitls34LBBNiAQYxOXWSLhmxZkRHfY+NuJm+WOMDxIrszg4A1fX7SuxUt1OJmqCSSo8jcd0k2TQKJWptuOko9mbEClGaI0eKMrFK7nbUDKHSJFobW6KfTtHGW/b8fPLZ2SOF3w6L9CdKyvX6njYQGm5T9dMLly+NYscB05UgdLkWx7E25zCZwDKOILxWBRVB8F4oa1lLnvVew7mw2JgSI/N9VmYyx9S2vSWzYh1pzDKi2B1LY3klsQIvsao2VkYrT1E13pERWlQRlFPgs4a0VXEkZ7wza41luc1nSUNs8XtRFbbwXyq12ozYIjoMqvFcluEyNt5ZHc/XJ9Ji3qH3QptdmD7vjHxvZ0zg78nWm+GjnYE1ohkG58La6Xza8/VpL50pbMvAthtj0otmKu+I7IGvk01lpC2Nxr2OMu5JMsRTke1Q1XowEFlVHovbdotRSr1MkUN6wxFCa3CM76/EtSgnGScX8nf4rNdS9wxoZ8hOajG4uJS34l4jxP1cL2DLS9hYF4VuXxxlWafUv9dipZa2grLtZ47UkuFvzVGRmTNoMXtxJGZ8OY/GZyG00QwVl0JDUgVCVJisW/JotVhLksc9TeFzW7fVMe+JKk85I2/cVr1RW9vzI5GhCt3ZkShISxHyMjFpL2y7LUYv9UxEHpkvoC3R3L7za7tuhRYDSrxQbCMoq3kjIbebPJY0RYOu27GdsTYejPnxpX8hWcpZ0Hem305nk0YA/dAXmVUpy0LkZITKHId3RQbpcMpbRxEMvCXzLCNrDEMIbCtj8vFXJoQxKXMTossbe1yqy5NuvTGMudCj6iAVHWfRc/fADGQjtMi3WbU6f9WGndcJ2tHeElYASTjHyOakoQ2Hb2nABSaxn73CpF1vKn7cJhfpYkOOo/1k7Vi61t/LUXVEuJjZwXrmFuZcyxppTXNrzdhw3qLJ9mSZvXVfp3NMX3ALKjX2q/Z6OPUiiW4Te7iUOnSEs+mgs+4tYk609BWNNBiq3nTILtrpr9dWPd3qXFt4Rasr4Eesnoqiy6AKUeW71e1EnHXSraCvQk/qG3o0XVTXU3Nn+N0m1QHEa6y3530u0DbOBg1JnsOHGxlM7bkRwAWJoqzLdapzM2aB3ptHxlhBX0ngjcdLC7WjgBfpBv+KvkX+Utu1htPWlIErg2E6S8fp72Ae4MglI+a+7o4g3KZ4ZslAQBE/lpDJM5HVmbbIDQNsPe6M5yNp3tB8cY57dcTDhoYktpMOxyUd6MM2m/Esy1OZqrJ91nFi1uHbrGxmzGxW17sjxGyFmz7OxnB9bwyusZxNUM/055Hpo4sZRicGhrr6hF/PMGozn0QujMWN2R27RsdbWtjY7eMSMpvCmN3RmxkuZSKrFXLysjwQmZ3AubkcMuvMzHXXSbJeBuNyhHgsV6wf4TWbsaysdWHOu5BZ5C9kbTEqxzGg1L8L9alnCnwXYVx2bWgvFmvCcdl3YJy2F3mcThaI1WWa/R2d6Zi3NLAMyn+Rl3JdO3Q6871F35c2fWz8NvOlBbQDOvO30Qy3vJlL4/NJb6VPJaSPSZ4ZjIrnISal8xa6NP0M8pL21mS8G2rSoKdKvIaO4Xri4+vcll7ktjTPbZ64klTV1faj1ioTVXErLvmt6CJIT4W5DNU8ERm1oKyIPpnDtd9eGbgYa532bqaknTKvpm2jA8Op29sYvreE761Lv70iZ/0Knjs413VNiC9qQpzXhAKPy/GOuTYtcm0Ol0v6YRh2+5HQFWAObYvKLOsxx/yHqmMN4uX5SEPb2mre01ZoXoeGKk9L8spjhbbEwjz4Pvd8P8+fc+wrzLGf8P5ldUsTWeGYu/sDlYG1hN/BBL/rq3LWlYt4HrDsjG9zPSM2cY6c0Y22v19oxHYmAmph4HQqMoVsVquIX5mH8d4mWozEOqu3xcrt0BkC82vSZpgBjGWeiZORvJ5mrNhUBuFiiW3k5rQfir4VUPiGX8lSXZqTEhuJXQGpCn7VXeK+vJ2Zwx6vNqfYm7ccp9SmanEEkAAjyVVzogr7lsmut8FSENtRVzUXXGc85ND6lJf6cRMul2o2XcctiWUa8xATiDGjrgS+07RwergWCUXx99V53Fm6g32VQdq2nLw1s2HVjmi1340WI0ojMntFkdJr36O66Fi3Q3I2Jdt7esINwUzklwDsXJZfWOFUqW9IDx3yS7Jnz0JL6Q3qs4XU25ue3uSZqImz43pvKKqyPmC9fYQqfao667ZUDawEQ4z6DZfdzejXfj0M5c3cr46Q2NzoTI/jnNDxzV2qLYn+Kx155sAVnDRycGecyocm733zdQKe2jPYuJ0bwJHCXL2LobX21smLt2a3HYre20h7Ua+qzeytZw/xWBUEQZkleNBDOs0uaPrDja94ra3rpSPvNWaUbvzasdZVbz1u7ZvxPIvwgYhxb6/EprqK3raAMGZGFdVNNA67E4+jkFd7BYQ0YFN3KtrLoDuFhT4QpxNG78h1sB2H1Oti52GWH8qh3Z9QDdZYog1dtUdA3HHsdqNbmaEuYnemZ8vuJBpaA3k4rIaDLT1yyTiwSXPiLBQutaNu9CZPYrUlOJK2Hi7YejJedtjYVDrRa09VMOxtTNixh4t+Y1HdsMGae8MWEyWL0D7Rp/XBlkn3JNL1cGzSQEXFsuSZs9j409ds6rsTfYJqqbLGo/EYJtlpc75tDcGIS/W3eYiKzh7N0GMjfjRybnB+W551vjAywxajJ0i577p0UP3KffVzA1+wGhhLYKZFLz/NDzHLd8Gq0RZB0xiC1ygdBTWCJJGa3jCaNR2QKEUbBG5bGOzji5PPJ3mte669cwPnvMP98lFqLsMtRjWSoC3dpoxaAzPzrQVC1SigY3DLYcAfirQI23qoqHrsgPTL3xxOOrzfoRfy/Eu255f8T4zOE10iQMXh9q040WvUoPERUkXoJ7T51GjWkMZTfuz1Efma/mohlyM56PK53Kj/qu8GvjfZ0sPYblQXkSAPNJHuzsF4N/J3PW4XrHYDRBz2bdZLFuGt7wYfxSwhQpKsQayA2NW905axBObftl+45/xzef+ZHXRgUaq0HrnH3yuDZ44R+VFbgBuOCjfoD2DtYioKo8Ah7flkKitMKkM91ittN/b1Cn++IFDhIO/YLsCwuQ99w9V/ryj8SGD6EqyE/OiZRlAcxVAUqxG/VzjpWdFgM1e5M+8ptV5IflSm1E1a+waIX3C0CXmiTarZxPPTChh1J9orxKPFru1Tv/R8/bMAOUdl6Lnm6Www534H4WLgPeiC+vjl/+PFi6vP/xHkkOZuAIWh6xvsPWiDPUaWfVL1g3wtkJixG+WfpItPqneFO4G6erL4VSvAEkNxk5qdhi7snVmIpEKiyGDcY1uBFtjKwGaj7TT2wxiZ3V8B7ySt33VE/Qs+BPEo9M55wdNh/rByUHID9pKso8iDHE7RdDF2A5ZcyXKcqv6F9Afyewt6WYM+YpzH2iGMibRSvpy+MsLc/8WP/EfOIlQh/4L7koJtmvv3KPVp4IDIH257vWhqu0YdsU7QI+C9pO+scFvJ+u06dBq4VRvLgl7yern+YPfyk2dTH+GHE6/idgOEj8v7b0LrBb5UsEe0vDBwNXIm4NZJGvqH4yI4giIl+nv4mQJqZ7tefmJdnH3CCZ4q7TKBHDLzP/5epGYLVMZQI71keCb7wIrfAnN9nP8K+3LkTAZflCGKEAfcqzFNO53fFie31+ernNbma0qXwSkYXL/+3PIo0KXseRk43go69BAHNU4j77CLJuLQZjSObcb16Jmi9Y47ipW4rY+8y3sh+fIpTlaRoznfwc8UUlhsPk6PF7MejoO5dZwv7/KInhsMD3PfGj0T990AFLdeYMWE5dE8xsAH+IFEN58Y08wH4FpTDjkQtgfp7rx4cnrGsty0OHQ/oENHHKxxa+hMCye4ZncFvb558/5A+hCQ5+splxF6XNk/wOs8X9GD3Jil7KoYRRX6/UGlrfGSyisVkRmpXebgpHeUFxN/GCpGFrskPzw+3mD8MKteWC4Gya2bWkfN8/sLt9S+QOPcgwSsxjEjRmSkzkHk08htwmGYpLo3h3upQxxeAO5MVV6nUtZGbmnoU4WRVEZq8aPDhO/Hf4xNEcL5FY27gzf4nM2Xh/b9K2rFKDdiHit4syKNBo8VgqjhjcqgLXCCxFQoBK/wLQG+DSqyNjivlluXQj6dtZDroMJXrs196SraZdBWPD1w1rpTJGgAd2DHxv121F4qclvMKyVvBPx3wvq8zFR9W97Zu7XWRsBxkzQuyD9fdx+wb3DML0Trwe6Pc43uSqhbEkMD9cEGeKcrkyUXAm7RRzWarg2lkskl3q0McmmdP7PJn9nkj5lNPo/SQtN7WeMihD+N30JEYczcFbiU6OZUFyX99vhpuA8c3eNvReWfGe4UtnEUQqXApXqfuVcZ/oh7z7uVu/79wdkvPH7HpQdd4M7LTG8mcuCBaJEnuSZCNim8QTcPsp1HbpCdv7qJuuu9xOskCe205qWW/l+LMPUh8NEM/cOfOFwjf5D/vXgXWh23uZ/2+e92AuWO9Y+2E/g3Bn/jOvhR/OGFpHGqgTaIX70N6Q0kRRlIlZGmKEJF5WHe+L+6Bflf2wIw4xZT6Q+USqEx/P1bpYlUahW0SVVUtoIiCP5n7f/37yTuLp0/ao39NM381C6C/uIu4gcar/n8RyqzFFZ0WFlM/Y/Vfv0/CYt/ZTeT93kEgSI09XPdjOu7Zhz+873Mye8gTm63BW03LgP/6OZyojP4Fo3uu15ZmD7ExMXYDUrRtSwPlEeZ9XeAj664FvrTvuxG13UI+l3+yVcE+uWfGh+W48fPouV+/IKmWPfHw4D38FtU9z58vxu+UOKjiIXkRRyKMGxSPd6pYap71/Plte909sL4uR0q5uHLdr4QuMHwAfb7j8ev9DfwrxnCzMFvTW+duBtwj9+Z3UfsD9yE4BNu6BW7d+gfrKsbHhjBkfwI7XP5bhLc5PkD0l1hXvrunpMKDx5OMK6alGPoobdD70BiyTDH5Rmosg7cNI+154f8HBI9SfQe8VfGRq5KCvzrxJKfp5xP018UfjQWOGFQYRRBUXmJE5jKWBipGtM/HL5cIL/PUErxf2HEVj7LFzYzuSY0TV8nfD5J//HfObe8buhWGB2LiFcx87/bdo31Ds4AHmDDPL6/H/kxkY6t72HrliMfDl13dw5k7u0HLrbo9xuAHH74C6UwSNZ+mOv4VGkDI3/IM05JW+J80OlzQb+uD/apPtiP6HM8moMVvixzz7DMwZenCvLPqFQiXQVvWRVi1wQf4rmA/kg2OON94MHqCfh08V4ivS9xZ8kOwl8lkW/1wzt8/utf/gdQSwECFAAUAAIACAAcSmdaG8BNVkQWAABpRgAAIwAAAAAAAAAAACAAtIEAAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWxQSwUGAAAAAAEAAQBRAAAAhRYAAAAA</wcf:contentFile>
</wcf:SendBillSync>
</soap:Body>
</soap:Envelope>]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278451#p278451 Wed, 19 Mar 2025 06:12:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278451#p278451
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278453#p278453
Aunque me envies certificado y datos no voy a poderlo probar, cada WS es un mundo y los servicios bajo SOAP más

A veces existen cabeceras que hay que enviar, del tipo

Code: Select all | Expand

      "Accept-Encoding:gzip" ]
      "Content-Encoding:gzip" ]
      "Content-Type:application/octet-stream;charset=UTF-8" ]
Hay que conocer muy bien los requerimientos de cada agencia tributaria o gubernamental

También una vez el XML firmado, antes de enviar, a veces hay que comprimir con gzip

Cuando dices, 'no me funciona' a qué te refieres, a error de certificado ? rechazo de la dian ?
Qué te devuelve nError, cResponse ?]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278453#p278453 Wed, 19 Mar 2025 06:51:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278453#p278453
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278455#p278455
Al parece se queda solo en la primera parte que es firmar con el certificado ... que no lo puede leer]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278455#p278455 Wed, 19 Mar 2025 07:34:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278455#p278455
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278456#p278456 https://russoft.net

y genera el error 58]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278456#p278456 Wed, 19 Mar 2025 08:05:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278456#p278456
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278457#p278457
y ahora obtengo error 0
Y SARTA VACIA]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278457#p278457 Wed, 19 Mar 2025 08:31:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278457#p278457
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278458#p278458
Gracias]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278458#p278458 Wed, 19 Mar 2025 09:23:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278458#p278458
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278460#p278460 no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278460#p278460 Wed, 19 Mar 2025 11:30:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278460#p278460 <![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO ) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278466#p278466 el siguiente código

Nota : solo me falta firmar desde harbour el archivo a enviar en : curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, cXmlStr )

Requiero ayuda de expertos en el tema de firmar xml---

Gracias

JONSSON RUSSI

Code: Select all | Expand


#include "hbcurl.ch"

PROCEDURE main()

   local nError, cResponse
   //local cXmlStr   := hb_memoread( "peticion.xml" )
   local aHeader   := {}

   local cUrl := "https://vpfe.dian.gov.co/WcfDianCustomerServices.svc"
   local cCertFile := "CERTIFICADO.p12"
   local cCertType := "P12" // o "PFX"
   local cCertPass := "xxxxxxxxx"
   local cNomZip := "z006331767200025SP104100000250.zip"
   local cFacturaXml,cXmlStr := ""
   local aHasRes :=  hash()
   local cFilRes := ""
   local cSignedXmlFile := "E:\TEMP\XML_FIRMADO\z006331767200025SP104100000250_fv_B64"
   local hCurl

    cFacturaXml = MemoRead( cSignedXmlFile )
    //  cFacturaXml :=  "UEsDBBQAAgAIABxKZ1obwE1WRBYAAGlGAAAjAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWztPNtyo0qS7xMx/6DwedkNHVncJMDR9iwgJCELJATo9salQEjcDEhI+pv9hvmE+bEtQFdbard7pifO7h5HdBiyMrPyVplZVLm//W3re5UNiBM3DJ4f0EfkoQICM7TcwHl+WKd2jXqoJKkeWLoXBuD5IQgf/vby1798E4JN6JqgAsmDBGLGwVOoJ27yFOg+SJ6SCJiu7Zp6Cvk+rQ3vKTEXwNefton1dKCtYQ8l+ZOpm19kwYW+HwaM48TA0VMAXyMoXpAmF0yNn2PKQnTzFkML6rlI0+ipXs+y7DHDH8PYqWMIgtQRug5xrMR1fjtig236U9Pz2xQEuTduiZCkUAbL1YMnJ9w8meGTrZvpOtaBB8w0DgPI+UlJ43UOBJCuhh4pt7oFzvKvY/cRpIlbaICgNILXN+gj/oj9doWPEugnJMQjeiZJ3DsGQutTsa8UmtbcIA8nE0CqxD2o3w9Li/xsHFXyn8PMVmgmjwWLWhiBoBAB0tXDpKax/Rr2iNYhbd3X3QCi1nPYic8j+gjHHmB8Q37foAef4PDJIUkJvzV0GjkOXngxgE/pJUKOAx351IJ+vMH8GukgW84mDr2PSO/wmHW6CGN3X9jrBaXIJoGQDZpAaYz6Vr+LeJftFdoQxG5o3UTO8eGCg8Gnx2kLrsgXDMGIGkLWMPpb/Xrke/R8YB2pm5fUR/hNQetfkfRKLWAdzJHclSpHH8bAdrcvyrCc6vD6PYp2HPovaIlePH8PWQ1fGjCLlNjw5XMlvyf3lZvvxs1l0CjhOjbv2DY3vmDBCD6tQi60QMVzk5RxYKXYCa3nh+bDBUCCC/f5QQvcFFgVqSBJKrwZBqHvmpU8yblJHvEVO4wr/DqGq7QkLxIE0EbCj6QBWKJATvTkmDBxrqGWu49i5iv64YUblDH0cfwT492zS2E7JbTTTI/BMA43rgXi+8F2xBBalSJ5gbPhULrxcAUsjccNfq+0BEaq/EfLjYFpuv/4e1CBVhf8aA2SNEwquwpjrfVAT6CFTaiN7oHkP4+scs7I8aXkiEM7NHEcJZskdgzio1T3JT/q+Oslf7FxErNxy6rROk7WCLvZqNF4w64RtGETtkUjVJ4KroW6577PXXOlnQJMWNzSXRHYv1pPizaRJoZaJkKZFgDwlURsg8YwEtVRnLAw3GhaDYO2jQaJgwYJXxoGhYKmaRIYRaOoTdl6EzMxukFYDdLCKYzCbZtsog26CR+uLXCp2h0rXOfNT4P5Jvq/NbKJj5FNwRaDJrEmdasUfCfOv4N+x1ryqDBl3msksNmAqQT2xU5Y20Q2eMwbs0fYmD2aYd6GrH2Yb+oJ0GNz8Rb/7QhZgd0zShm5U9EGaRAw8yOUDpcmrNMYQiCYSRENy0SJpkUaTZymGs0GRViUgYMmoGicNFG6CSwSRSzDalC6YaBNxEBNmyApmqQNkqbNUrGDsO9aj/r3e49v9e/2L+Xwzd7nJ7qibxaMVdcJ9Lxf/WKbLVjPDyfaGo5gNE6bVA0jKatGNABZM/QmVQMGCQMDBSSCUg+n+fL6aYfFK6cHRd/sHQJABDAarArjOTAm0oV/Sxh1VHa1I56rQYFq0FlBLYcgOArDvn6t149wLNghxFG9mh/G4Lc40WvJQscazSPPEbBBDFcTKLQ/vdUaJtqwsEbecFF0jTBJrGZgNIQjFgHzhN00abhsitJaGkGN9SCBBdhPrl8/lfLKCSDYAA/Wb6uWHJUtJK1/nKHlOnB9f9EUULffrg1Qshnr3hq8iE7UVGM18Yh5b7abTmVGNlsGkhKsJmRjkOxZQmLYTRpT2XMh0iVxATgZ8HvGfQW7PFgO5vvtayFXO1L/KiNwqbscv7p0OCPn1XTL9PWQ7wRorzOVM6c7JAN8hC03Q4DMiC8aQd1F4Du7v9/KdTTM+7c4dUFyNNAxhL9oqKRgF0F2yS8zllNvR6uVPWT3o8Ga2DKkFXQmzKutKG/q9HU8WWW6zVQHpkTxnxur/jGXnFQuKK4zVAH6wTRl9iNqwTDboZkkQWvXWpFDnWLXfcQfDaLptN3dtz3SYMZ2A4Rv3VgU69sV39lZuDXwN3VW5NHBWB4ilFrdOK3RbqjozZ6sKFUn3Eu2kjXm6LbbUOSha0lUNt7MgoWKMMyG4jrU0M1eEdTyBquwbSgzqhWOGtux4776PrdeUu4K6wG7Lo2mPXax0qpvokH1tOrkbYrg+01PAYMFPVE1nxrx9qCarRpKu/XmJdnodeqtNIvEJpKeRMTbcitls34LBBNiAQYxOXWSLhmxZkRHfY+NuJm+WOMDxIrszg4A1fX7SuxUt1OJmqCSSo8jcd0k2TQKJWptuOko9mbEClGaI0eKMrFK7nbUDKHSJFobW6KfTtHGW/b8fPLZ2SOF3w6L9CdKyvX6njYQGm5T9dMLly+NYscB05UgdLkWx7E25zCZwDKOILxWBRVB8F4oa1lLnvVew7mw2JgSI/N9VmYyx9S2vSWzYh1pzDKi2B1LY3klsQIvsao2VkYrT1E13pERWlQRlFPgs4a0VXEkZ7wza41luc1nSUNs8XtRFbbwXyq12ozYIjoMqvFcluEyNt5ZHc/XJ9Ji3qH3QptdmD7vjHxvZ0zg78nWm+GjnYE1ohkG58La6Xza8/VpL50pbMvAthtj0otmKu+I7IGvk01lpC2Nxr2OMu5JMsRTke1Q1XowEFlVHovbdotRSr1MkUN6wxFCa3CM76/EtSgnGScX8nf4rNdS9wxoZ8hOajG4uJS34l4jxP1cL2DLS9hYF4VuXxxlWafUv9dipZa2grLtZ47UkuFvzVGRmTNoMXtxJGZ8OY/GZyG00QwVl0JDUgVCVJisW/JotVhLksc9TeFzW7fVMe+JKk85I2/cVr1RW9vzI5GhCt3ZkShISxHyMjFpL2y7LUYv9UxEHpkvoC3R3L7za7tuhRYDSrxQbCMoq3kjIbebPJY0RYOu27GdsTYejPnxpX8hWcpZ0Hem305nk0YA/dAXmVUpy0LkZITKHId3RQbpcMpbRxEMvCXzLCNrDEMIbCtj8vFXJoQxKXMTossbe1yqy5NuvTGMudCj6iAVHWfRc/fADGQjtMi3WbU6f9WGndcJ2tHeElYASTjHyOakoQ2Hb2nABSaxn73CpF1vKn7cJhfpYkOOo/1k7Vi61t/LUXVEuJjZwXrmFuZcyxppTXNrzdhw3qLJ9mSZvXVfp3NMX3ALKjX2q/Z6OPUiiW4Te7iUOnSEs+mgs+4tYk609BWNNBiq3nTILtrpr9dWPd3qXFt4Rasr4Eesnoqiy6AKUeW71e1EnHXSraCvQk/qG3o0XVTXU3Nn+N0m1QHEa6y3530u0DbOBg1JnsOHGxlM7bkRwAWJoqzLdapzM2aB3ptHxlhBX0ngjcdLC7WjgBfpBv+KvkX+Utu1htPWlIErg2E6S8fp72Ae4MglI+a+7o4g3KZ4ZslAQBE/lpDJM5HVmbbIDQNsPe6M5yNp3tB8cY57dcTDhoYktpMOxyUd6MM2m/Esy1OZqrJ91nFi1uHbrGxmzGxW17sjxGyFmz7OxnB9bwyusZxNUM/055Hpo4sZRicGhrr6hF/PMGozn0QujMWN2R27RsdbWtjY7eMSMpvCmN3RmxkuZSKrFXLysjwQmZ3AubkcMuvMzHXXSbJeBuNyhHgsV6wf4TWbsaysdWHOu5BZ5C9kbTEqxzGg1L8L9alnCnwXYVx2bWgvFmvCcdl3YJy2F3mcThaI1WWa/R2d6Zi3NLAMyn+Rl3JdO3Q6871F35c2fWz8NvOlBbQDOvO30Qy3vJlL4/NJb6VPJaSPSZ4ZjIrnISal8xa6NP0M8pL21mS8G2rSoKdKvIaO4Xri4+vcll7ktjTPbZ64klTV1faj1ioTVXErLvmt6CJIT4W5DNU8ERm1oKyIPpnDtd9eGbgYa532bqaknTKvpm2jA8Op29sYvreE761Lv70iZ/0Knjs413VNiC9qQpzXhAKPy/GOuTYtcm0Ol0v6YRh2+5HQFWAObYvKLOsxx/yHqmMN4uX5SEPb2mre01ZoXoeGKk9L8spjhbbEwjz4Pvd8P8+fc+wrzLGf8P5ldUsTWeGYu/sDlYG1hN/BBL/rq3LWlYt4HrDsjG9zPSM2cY6c0Y22v19oxHYmAmph4HQqMoVsVquIX5mH8d4mWozEOqu3xcrt0BkC82vSZpgBjGWeiZORvJ5mrNhUBuFiiW3k5rQfir4VUPiGX8lSXZqTEhuJXQGpCn7VXeK+vJ2Zwx6vNqfYm7ccp9SmanEEkAAjyVVzogr7lsmut8FSENtRVzUXXGc85ND6lJf6cRMul2o2XcctiWUa8xATiDGjrgS+07RwergWCUXx99V53Fm6g32VQdq2nLw1s2HVjmi1340WI0ojMntFkdJr36O66Fi3Q3I2Jdt7esINwUzklwDsXJZfWOFUqW9IDx3yS7Jnz0JL6Q3qs4XU25ue3uSZqImz43pvKKqyPmC9fYQqfao667ZUDawEQ4z6DZfdzejXfj0M5c3cr46Q2NzoTI/jnNDxzV2qLYn+Kx155sAVnDRycGecyocm733zdQKe2jPYuJ0bwJHCXL2LobX21smLt2a3HYre20h7Ua+qzeytZw/xWBUEQZkleNBDOs0uaPrDja94ra3rpSPvNWaUbvzasdZVbz1u7ZvxPIvwgYhxb6/EprqK3raAMGZGFdVNNA67E4+jkFd7BYQ0YFN3KtrLoDuFhT4QpxNG78h1sB2H1Oti52GWH8qh3Z9QDdZYog1dtUdA3HHsdqNbmaEuYnemZ8vuJBpaA3k4rIaDLT1yyTiwSXPiLBQutaNu9CZPYrUlOJK2Hi7YejJedtjYVDrRa09VMOxtTNixh4t+Y1HdsMGae8MWEyWL0D7Rp/XBlkn3JNL1cGzSQEXFsuSZs9j409ds6rsTfYJqqbLGo/EYJtlpc75tDcGIS/W3eYiKzh7N0GMjfjRybnB+W551vjAywxajJ0i577p0UP3KffVzA1+wGhhLYKZFLz/NDzHLd8Gq0RZB0xiC1ygdBTWCJJGa3jCaNR2QKEUbBG5bGOzji5PPJ3mte669cwPnvMP98lFqLsMtRjWSoC3dpoxaAzPzrQVC1SigY3DLYcAfirQI23qoqHrsgPTL3xxOOrzfoRfy/Eu255f8T4zOE10iQMXh9q040WvUoPERUkXoJ7T51GjWkMZTfuz1Efma/mohlyM56PK53Kj/qu8GvjfZ0sPYblQXkSAPNJHuzsF4N/J3PW4XrHYDRBz2bdZLFuGt7wYfxSwhQpKsQayA2NW905axBObftl+45/xzef+ZHXRgUaq0HrnH3yuDZ44R+VFbgBuOCjfoD2DtYioKo8Ah7flkKitMKkM91ittN/b1Cn++IFDhIO/YLsCwuQ99w9V/ryj8SGD6EqyE/OiZRlAcxVAUqxG/VzjpWdFgM1e5M+8ptV5IflSm1E1a+waIX3C0CXmiTarZxPPTChh1J9orxKPFru1Tv/R8/bMAOUdl6Lnm6Www534H4WLgPeiC+vjl/+PFi6vP/xHkkOZuAIWh6xvsPWiDPUaWfVL1g3wtkJixG+WfpItPqneFO4G6erL4VSvAEkNxk5qdhi7snVmIpEKiyGDcY1uBFtjKwGaj7TT2wxiZ3V8B7ySt33VE/Qs+BPEo9M55wdNh/rByUHID9pKso8iDHE7RdDF2A5ZcyXKcqv6F9Afyewt6WYM+YpzH2iGMibRSvpy+MsLc/8WP/EfOIlQh/4L7koJtmvv3KPVp4IDIH257vWhqu0YdsU7QI+C9pO+scFvJ+u06dBq4VRvLgl7yern+YPfyk2dTH+GHE6/idgOEj8v7b0LrBb5UsEe0vDBwNXIm4NZJGvqH4yI4giIl+nv4mQJqZ7tefmJdnH3CCZ4q7TKBHDLzP/5epGYLVMZQI71keCb7wIrfAnN9nP8K+3LkTAZflCGKEAfcqzFNO53fFie31+ernNbma0qXwSkYXL/+3PIo0KXseRk43go69BAHNU4j77CLJuLQZjSObcb16Jmi9Y47ipW4rY+8y3sh+fIpTlaRoznfwc8UUlhsPk6PF7MejoO5dZwv7/KInhsMD3PfGj0T990AFLdeYMWE5dE8xsAH+IFEN58Y08wH4FpTDjkQtgfp7rx4cnrGsty0OHQ/oENHHKxxa+hMCye4ZncFvb558/5A+hCQ5+splxF6XNk/wOs8X9GD3Jil7KoYRRX6/UGlrfGSyisVkRmpXebgpHeUFxN/GCpGFrskPzw+3mD8MKteWC4Gya2bWkfN8/sLt9S+QOPcgwSsxjEjRmSkzkHk08htwmGYpLo3h3upQxxeAO5MVV6nUtZGbmnoU4WRVEZq8aPDhO/Hf4xNEcL5FY27gzf4nM2Xh/b9K2rFKDdiHit4syKNBo8VgqjhjcqgLXCCxFQoBK/wLQG+DSqyNjivlluXQj6dtZDroMJXrs196SraZdBWPD1w1rpTJGgAd2DHxv121F4qclvMKyVvBPx3wvq8zFR9W97Zu7XWRsBxkzQuyD9fdx+wb3DML0Trwe6Pc43uSqhbEkMD9cEGeKcrkyUXAm7RRzWarg2lkskl3q0McmmdP7PJn9nkj5lNPo/SQtN7WeMihD+N30JEYczcFbiU6OZUFyX99vhpuA8c3eNvReWfGe4UtnEUQqXApXqfuVcZ/oh7z7uVu/79wdkvPH7HpQdd4M7LTG8mcuCBaJEnuSZCNim8QTcPsp1HbpCdv7qJuuu9xOskCe205qWW/l+LMPUh8NEM/cOfOFwjf5D/vXgXWh23uZ/2+e92AuWO9Y+2E/g3Bn/jOvhR/OGFpHGqgTaIX70N6Q0kRRlIlZGmKEJF5WHe+L+6Bflf2wIw4xZT6Q+USqEx/P1bpYlUahW0SVVUtoIiCP5n7f/37yTuLp0/ao39NM381C6C/uIu4gcar/n8RyqzFFZ0WFlM/Y/Vfv0/CYt/ZTeT93kEgSI09XPdjOu7Zhz+873Mye8gTm63BW03LgP/6OZyojP4Fo3uu15ZmD7ExMXYDUrRtSwPlEeZ9XeAj664FvrTvuxG13UI+l3+yVcE+uWfGh+W48fPouV+/IKmWPfHw4D38FtU9z58vxu+UOKjiIXkRRyKMGxSPd6pYap71/Plte909sL4uR0q5uHLdr4QuMHwAfb7j8ev9DfwrxnCzMFvTW+duBtwj9+Z3UfsD9yE4BNu6BW7d+gfrKsbHhjBkfwI7XP5bhLc5PkD0l1hXvrunpMKDx5OMK6alGPoobdD70BiyTDH5Rmosg7cNI+154f8HBI9SfQe8VfGRq5KCvzrxJKfp5xP018UfjQWOGFQYRRBUXmJE5jKWBipGtM/HL5cIL/PUErxf2HEVj7LFzYzuSY0TV8nfD5J//HfObe8buhWGB2LiFcx87/bdo31Ds4AHmDDPL6/H/kxkY6t72HrliMfDl13dw5k7u0HLrbo9xuAHH74C6UwSNZ+mOv4VGkDI3/IM05JW+J80OlzQb+uD/apPtiP6HM8moMVvixzz7DMwZenCvLPqFQiXQVvWRVi1wQf4rmA/kg2OON94MHqCfh08V4ivS9xZ8kOwl8lkW/1wzt8/utf/gdQSwECFAAUAAIACAAcSmdaG8BNVkQWAABpRgAAIwAAAAAAAAAAACAAtIEAAAAAZnYwMDYzMzE3NjcyMDAwMjVTUDEwNDEwMDAwMDI1MC54bWxQSwUGAAAAAAEAAQBRAAAAhRYAAAAA"

    // Crear la solicitud SOAP
    cXmlStr := ;
        '<?xml version="1.0" encoding="UTF-8"?>' + ;
        '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wcf="http://wcf.dian.colombia">' + ;
        '<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsse:Security soap:mustUnderstand="true" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Timestamp wsu:Id="TS-BD40368ECABC33A9ED174242532066842"><wsu:Created>2025-03-19T23:02:00.668Z</wsu:Created><wsu:Expires>2025-03-20T15:42:00.668Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-BD40368ECABC33A9ED174242532063237">MIIHCDCCBfCgAwIBAgIIK+IT003JoQUwDQYJKoZIhvcNAQELBQAwgcUxJjAkBgNVBAMMHVNVQkNBIENBTUVSRklSTUEgQ09MT01CSUEgU0FTMRQwEgYDVQQFEws5MDEzMTIxMTItNDFAMD4GA1UECww3Q2VydGlmaWNhZG9zIFBhcmEgRmlybWEgRWxlY3Ryb25pY2EgQ2FtZXJmaXJtYSBDb2xvbWJpYTEgMB4GA1UECgwXQ0FNRVJGSVJNQSBDT0xPTUJJQSBTQVMxFDASBgNVBAcMC0JPR09UQSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA3MjQxMzU4MzZaFw0yNjA3MjQxMzU4MzVaMIHLMRwwGgYDVQQJDBNDUkEgMzYgNDQgMzUgT0YgODAzMRMwEQYDVQQUEwozMTY1MjI5NTI4MSAwHgYDVQQDDBdNQVJUSEEgQ0FTVElMTE8gRlVFTlRFUzERMA8GA1UEBRMINjMzMTc2NzIxHDAaBgNVBAsME0ZhY3R1cmEgZWxlY3Ryb25pY2ExIDAeBgNVBAoMF01BUlRIQSBDQVNUSUxMTyBGVUVOVEVTMRQwEgYDVQQIDAtCdWNhcmFtYW5nYTELMAkGA1UEBhMCQ08wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCW4HEbz3N/QWH/5PrCol8/etMgghJizecnQbod7qY++ZKUPGKW1GUqsBIesoZ276W5UPPqtnCnc4zYKori/6SmrF7hthv7VpzWugdaULzQp+R4i2cG2Jcx+OcddRU6cxdYBoZD97FWjwqHKXZ2ahCh8tbzkFuPXlpN9F4zIIHG9p3BtOGuJhrCMdak905A8/6g7H1GLuud/txaCFIK1+kempBatMMiA1S4+EH+xWMYGtxIakolNLbapXh+uXcybmH68Ge4KraFZLCnUvgv1o7EC3PvQeXfZbnUxJ11BiCG+ZcrBeaJZpbVS1K7elVVjd1fpnEM95EK1qpmjUyDPXDXAgMBAAGjggLyMIIC7jAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFMCPn2uVGVZRNZ5UmMZ3l/0l2PbNMFsGCCsGAQUFBwEBBE8wTTBLBggrBgEFBQcwAYY/aHR0cDovL3BraWNvbC5jYW1lcmZpcm1hY29sb21iaWEuY28vZWpiY2EvcHVibGljd2ViL3N0YXR1cy9vY3NwMBUGA1UdEQQOMAyICisGAQQBgYcuHgswJwYDVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMEBggrBgEFBQcDATCCAe8GA1UdHwEB/wSCAeMwggHfMIIB26CCAQmgggEFhoIBAWh0dHA6Ly9wa2ljb2wuY2FtZXJmaXJtYWNvbG9tYmlhLmNvL2VqYmNhL3B1YmxpY3dlYi93ZWJkaXN0L2NlcnRkaXN0P2NtZD1jcmwmaXNzdWVyPUNOJTNEU1VCQ0ErQ0FNRVJGSVJNQStDT0xPTUJJQStTQVMlMkNTTiUzRDkwMTMxMjExMi00JTJDT1UlM0RDZXJ0aWZpY2Fkb3MrUGFyYStGaXJtYStFbGVjdHJvbmljYStDYW1lcmZpcm1hK0NvbG9tYmlhJTJDTyUzRENBTUVSRklSTUErQ09MT01CSUErU0FTJTJDTCUzREJPR09UQStELkMuJTJDQyUzRENPooHLpIHIMIHFMSYwJAYDVQQDDB1TVUJDQSBDQU1FUkZJUk1BIENPTE9NQklBIFNBUzELMAkGA1UEBhMCQ08xFDASBgNVBAcMC0JPR09UQSBELkMuMSAwHgYDVQQKDBdDQU1FUkZJUk1BIENPTE9NQklBIFNBUzFAMD4GA1UECww3Q2VydGlmaWNhZG9zIFBhcmEgRmlybWEgRWxlY3Ryb25pY2EgQ2FtZXJmaXJtYSBDb2xvbWJpYTEUMBIGA1UEBRMLOTAxMzEyMTEyLTQwHQYDVR0OBBYEFCJbrc3C7Y95FmzhU4xYMe8hb39tMA4GA1UdDwEB/wQEAwIF4DANBgkqhkiG9w0BAQsFAAOCAQEArsRQuXwBM6SOohj2vQ6XLoMmdn83vEkQN/NZ7NBpMHI0+Im+ij3mQxYcPJET6X2qljVt8v+dC4eNeANQ+cWTIzDcBuxnjIMFpHTchCGVPC1/XENLr66Ly+wXurDNBA5Zo2I4VATkIEG6d39PuM4SSmz+ZrGjiOz+A0FfQsq6wP+fp9TLHphR8U4wfk87NKLl8H1Vafo7YX7Fz9WCPeYMEjeeyiBEhdoXS/v7l1PEj7JfYodSJO/YhNJzcla6EAp63BV/JPMTQaOBlzp1SL8+YHDTUekIbMpL5iByY9KL/ooQvZm+R0rcvaAJCCgogmcytUj4LK9plcOiIgtpg3gVtQ==</wsse:BinarySecurityToken><ds:Signature Id="SIG-BD40368ECABC33A9ED174242532066441" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces PrefixList="wsa soap wcf" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><ds:Reference URI="#id-BD40368ECABC33A9ED174242532063240"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces PrefixList="soap wcf" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><ds:DigestValue>qJh6cLlCnqq3wbelPQpLrHWjF1DckDtAd6nImSnuk0A=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>QfUTEIbjYSlsBrTjWPwzciZvY/je5La75j8yZrRhxUDHqYHt/09erTS6o6Cd8kMFg4cLoleY1VF1P0xiFMLJCIQYvb9TKYmQPuV2y4vw2B7fAkKNRxSW5JRjeIaAWN3WZ3XjIZiKZMzNKXKVLuM6hKNQ1mtnKBHqc3QpRikmekRwpJ7hDACB+LCbwHQywG9aAdaKzELHO3zzc1khju1YvcRb+eN9Dll7I0CVSX7RUklUfdUtdcyumZPmsgRmPMAZp0PG9owrbOd24tLKDD8QJQM9duNrv+EghPzsBmhYe70CzVlJ7Q3JtiWPctn6O5+Skb2DIsSuyJ6+wkyMNXfdVQ==</ds:SignatureValue><ds:KeyInfo Id="KI-BD40368ECABC33A9ED174242532063238"><wsse:SecurityTokenReference wsu:Id="STR-BD40368ECABC33A9ED174242532063239"><wsse:Reference URI="#X509-BD40368ECABC33A9ED174242532063237" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/></wsse:SecurityTokenReference></ds:KeyInfo></ds:Signature></wsse:Security><wsa:Action>http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync</wsa:Action><wsa:To wsu:Id="id-BD40368ECABC33A9ED174242532063240" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">https://vpfe.dian.gov.co/WcfDianCustomerServices.svc</wsa:To></soap:Header>'+;
        '<soap:Body>' + ;
        '<wcf:SendBillSync>' + ;
        '<wcf:fileName>' + cNomZip +'</wcf:fileName>' + ;
        '<wcf:contentFile>' + cFacturaXml + '</wcf:contentFile>' + ;
        '</wcf:SendBillSync>' + ;
        '</soap:Body>' + ;
        '</soap:Envelope>'


   //  HB_MEMOWRIT( "PRUEBA.XML", cXmlStr )

   // Establecer cabeceras requeridas por el WS

   aadd( aHeader, "Content-Type: application/soap+xml; charset=UTF-8" )
   aadd( aHeader, "SOAPaction=http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync" )
   aadd( aHeader, "Connection: Keep-Alive" )
   aadd( aHeader, "Cache-Control: private" )

   hCurl     := curl_easy_init()
   curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .f. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .f. )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERT, cCertFile )
   curl_easy_setopt( hCurl, HB_CURLOPT_SSLCERTTYPE, cCertType )
   curl_easy_setopt( hCurl, HB_CURLOPT_KEYPASSWD, cCertPass )

   curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, cXmlStr )
   curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   curl_easy_setopt( hCurl, HB_CURLOPT_HTTPHEADER, aHeader )


   // echo server, para depurar .T.
   curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .T. )
   curl_easy_setopt( hCurl, HB_CURLOPT_ENCODING, "" )
   curl_easy_setopt( hCurl, HB_CURLOPT_MAXREDIRS, 10 )
   curl_easy_setopt( hCurl, HB_CURLOPT_CUSTOMREQUEST, "POST" )

   // No reutilizar conexiones
   curl_easy_setopt( hCurl, HB_CURLOPT_FRESH_CONNECT, .T.)
   curl_easy_setopt( hCurl, HB_CURLOPT_FORBID_REUSE, .T.)
 

   // Conexion
   nError    := curl_easy_perform( hCurl )
   cResponse := curl_easy_dl_buff_get( hCurl )

   if nError == 0
      hb_memowrit( "respuesta.xml", cResponse )
   else
      MSGINFO( curl_easy_strerror( nError ) )
   endif

   curl_easy_cleanup( hCurl )
   curl_global_cleanup()

return

]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278466#p278466 Wed, 19 Mar 2025 17:18:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278466#p278466
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278467#p278467

Code: Select all | Expand

	<soap:Header
		xmlns:wsa="http://www.w3.org/2005/08/addressing">
		<wsse:Security soap:mustUnderstand="true"
			xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
			xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
			<wsu:Timestamp wsu:Id="TS-938EB38DEFEBD26652174243018444012">
				<wsu:Created>2025-03-20T00:23:04.440Z</wsu:Created>
				<wsu:Expires>2025-03-20T17:03:04.440Z</wsu:Expires>
			</wsu:Timestamp>
			<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-938EB38DEFEBD2665217424301843837">MIIHCDCCBfCgAwIBAgIIK+IT003JoQUwDQYJKoZIhvcNAQELBQAwgcUxJjAkBgNVBAMMHVNVQkNBIENBTUVSRklSTUEgQ09MT01CSUEgU0FTMRQwEgYDVQQFEws5MDEzMTIxMTItNDFAMD4GA1UECww3Q2VydGlmaWNhZG9zIFBhcmEgRmlybWEgRWxlY3Ryb25pY2EgQ2FtZXJmaXJtYSBDb2xvbWJpYTEgMB4GA1UECgwXQ0FNRVJGSVJNQSBDT0xPTUJJQSBTQVMxFDASBgNVBAcMC0JPR09UQSBELkMuMQswCQYDVQQGEwJDTzAeFw0yNDA3MjQxMzU4MzZaFw0yNjA3MjQxMzU4MzVaMIHLMRwwGgYDVQQJDBNDUkEgMzYgNDQgMzUgT0YgODAzMRMwEQYDVQQUEwozMTY1MjI5NTI4MSAwHgYDVQQDDBdNQVJUSEEgQ0FTVElMTE8gRlVFTlRFUzERMA8GA1UEBRMINjMzMTc2NzIxHDAaBgNVBAsME0ZhY3R1cmEgZWxlY3Ryb25pY2ExIDAeBgNVBAoMF01BUlRIQSBDQVNUSUxMTyBGVUVOVEVTMRQwEgYDVQQIDAtCdWNhcmFtYW5nYTELMAkGA1UEBhMCQ08wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCW4HEbz3N/QWH/5PrCol8/etMgghJizecnQbod7qY++ZKUPGKW1GUqsBIesoZ276W5UPPqtnCnc4zYKori/6SmrF7hthv7VpzWugdaULzQp+R4i2cG2Jcx+OcddRU6cxdYBoZD97FWjwqHKXZ2ahCh8tbzkFuPXlpN9F4zIIHG9p3BtOGuJhrCMdak905A8/6g7H1GLuud/txaCFIK1+kempBatMMiA1S4+EH+xWMYGtxIakolNLbapXh+uXcybmH68Ge4KraFZLCnUvgv1o7EC3PvQeXfZbnUxJ11BiCG+ZcrBeaJZpbVS1K7elVVjd1fpnEM95EK1qpmjUyDPXDXAgMBAAGjggLyMIIC7jAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFMCPn2uVGVZRNZ5UmMZ3l/0l2PbNMFsGCCsGAQUFBwEBBE8wTTBLBggrBgEFBQcwAYY/aHR0cDovL3BraWNvbC5jYW1lcmZpcm1hY29sb21iaWEuY28vZWpiY2EvcHVibGljd2ViL3N0YXR1cy9vY3NwMBUGA1UdEQQOMAyICisGAQQBgYcuHgswJwYDVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMEBggrBgEFBQcDATCCAe8GA1UdHwEB/wSCAeMwggHfMIIB26CCAQmgggEFhoIBAWh0dHA6Ly9wa2ljb2wuY2FtZXJmaXJtYWNvbG9tYmlhLmNvL2VqYmNhL3B1YmxpY3dlYi93ZWJkaXN0L2NlcnRkaXN0P2NtZD1jcmwmaXNzdWVyPUNOJTNEU1VCQ0ErQ0FNRVJGSVJNQStDT0xPTUJJQStTQVMlMkNTTiUzRDkwMTMxMjExMi00JTJDT1UlM0RDZXJ0aWZpY2Fkb3MrUGFyYStGaXJtYStFbGVjdHJvbmljYStDYW1lcmZpcm1hK0NvbG9tYmlhJTJDTyUzRENBTUVSRklSTUErQ09MT01CSUErU0FTJTJDTCUzREJPR09UQStELkMuJTJDQyUzRENPooHLpIHIMIHFMSYwJAYDVQQDDB1TVUJDQSBDQU1FUkZJUk1BIENPTE9NQklBIFNBUzELMAkGA1UEBhMCQ08xFDASBgNVBAcMC0JPR09UQSBELkMuMSAwHgYDVQQKDBdDQU1FUkZJUk1BIENPTE9NQklBIFNBUzFAMD4GA1UECww3Q2VydGlmaWNhZG9zIFBhcmEgRmlybWEgRWxlY3Ryb25pY2EgQ2FtZXJmaXJtYSBDb2xvbWJpYTEUMBIGA1UEBRMLOTAxMzEyMTEyLTQwHQYDVR0OBBYEFCJbrc3C7Y95FmzhU4xYMe8hb39tMA4GA1UdDwEB/wQEAwIF4DANBgkqhkiG9w0BAQsFAAOCAQEArsRQuXwBM6SOohj2vQ6XLoMmdn83vEkQN/NZ7NBpMHI0+Im+ij3mQxYcPJET6X2qljVt8v+dC4eNeANQ+cWTIzDcBuxnjIMFpHTchCGVPC1/XENLr66Ly+wXurDNBA5Zo2I4VATkIEG6d39PuM4SSmz+ZrGjiOz+A0FfQsq6wP+fp9TLHphR8U4wfk87NKLl8H1Vafo7YX7Fz9WCPeYMEjeeyiBEhdoXS/v7l1PEj7JfYodSJO/YhNJzcla6EAp63BV/JPMTQaOBlzp1SL8+YHDTUekIbMpL5iByY9KL/ooQvZm+R0rcvaAJCCgogmcytUj4LK9plcOiIgtpg3gVtQ==</wsse:BinarySecurityToken>
			<ds:Signature Id="SIG-938EB38DEFEBD26652174243018442611"
				xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
				<ds:SignedInfo>
					<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
						<ec:InclusiveNamespaces PrefixList="wsa soap wcf"
							xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
						</ds:CanonicalizationMethod>
						<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
						<ds:Reference URI="#id-938EB38DEFEBD26652174243018438610">
							<ds:Transforms>
								<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
									<ec:InclusiveNamespaces PrefixList="soap wcf"
										xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
									</ds:Transform>
								</ds:Transforms>
								<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
								<ds:DigestValue>buQfAhluXZsKUO9HlDLCSFgl0MeGNpeG7bWGlApVNL8=</ds:DigestValue>
							</ds:Reference>
						</ds:SignedInfo>
						<ds:SignatureValue>GMgcY6ADnFAlGnWNQqOsOOQDd+WicYhZwabfkWsZlcNiUacKLvpr7+K1akLjls7ZaP6XNj/3LwQOcFWB+it5rwuVbyC7DMGNYDMVih99dz6HiChUggeTZdDO7t+G2e/VHr+BQobqsrhn1Pj4X/WbFu+MFPtwRralxyZvCe/SamkidyQb2aNyXXI6PHZsW507o7aGmAF/MFYAk4b/8xf6QXYnRrkYUWoAsOjAO2vzILl8Lk7ppBCbYa6Q4AUzdsCnDqr9iKgC+nXw40gQ0Q/EeOzV/oSQ9VQDkLcDrYvWG8hsjFYBmF4F+AGfwC5yovuljrvDM82sG+D3yNMcLv+Ofg==</ds:SignatureValue>
						<ds:KeyInfo Id="KI-938EB38DEFEBD2665217424301843858">
							<wsse:SecurityTokenReference wsu:Id="STR-938EB38DEFEBD2665217424301843859">
								<wsse:Reference URI="#X509-938EB38DEFEBD2665217424301843837" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
							</wsse:SecurityTokenReference>
						</ds:KeyInfo>
					</ds:Signature>
				</wsse:Security>
				<wsa:Action>http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync</wsa:Action>
				<wsa:To wsu:Id="id-938EB38DEFEBD26652174243018438610"
					xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">https://vpfe.dian.gov.co/WcfDianCustomerServices.svc
				</wsa:To>
	</soap:Header>
]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278467#p278467 Wed, 19 Mar 2025 18:51:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278467#p278467
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278480#p278480
Puedes revisar el post que publiqué para entender un poco los formatos a que te enfrentas

viewtopic.php?t=44888

Como he comentado en otras ocasiones, con Chilkat puedes hacer casi de todo, lo que no consigues con las herramientas disponibles en FiveWin y harbour, puedes conseguirlo con Chilkat, además tienes ejemplos en código foxpro o vbasic muy parecido a nuestro codigo

https://tools.chilkat.io/soap_wsdl_gene ... oxpro&mr=f]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278480#p278480 Thu, 20 Mar 2025 05:52:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278480#p278480
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278482#p278482
Si he leído tu post...

Y por practicidad creo que la solución es con Chilkat ... seria ver si en el foro podemos comprar la licencia para 4 programadores---

? la lib Chilkat , se puede usar directamente en (x)harbour o tocaría en c ?

Gracias...]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278482#p278482 Thu, 20 Mar 2025 06:09:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278482#p278482
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278486#p278486

Code: Select all | Expand

FUNCTION CLILKAT(cFilNam, xDocB64)


LOCAL loXml
LOCAL lcSoapRequestBody
LOCAL lcEndpoint
LOCAL lcSoapAction
LOCAL lcContentType
LOCAL loHttp
LOCAL loResp
LOCAL loResponseXml
LOCAL lnStatusCode
LOCAL lcV_string
LOCAL lcIsValid
LOCAL lcStatusCode
LOCAL lcStatusDescription
LOCAL lcStatusMessage
LOCAL lcXmlBase64Bytes
LOCAL lcXmlBytes
LOCAL lcXmlDocumentKey
LOCAL lcXmlFileName
local cFilXml

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml')
loXml = CreateObject('Chilkat.Xml')
loXml:Tag = "soap:Envelope"
loXml:AddAttribute("xmlns:soap","http://www.w3.org/2003/05/soap-envelope")
loXml:AddAttribute("xmlns:wcf","http://wcf.dian.colombia")
loXml:UpdateChildContent("soap:Header","")
loXml:UpdateChildContent("soap:Body|wcf:SendBillSync|wcf:fileName",cFilNam)
loXml:UpdateChildContent("soap:Body|wcf:SendBillSync|wcf:contentFile",xDocB64)

* In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required.
loXml:EmitXmlDecl = 0
lcSoapRequestBody = loXml:GetXml()

lcEndpoint = "https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc"
lcSoapAction = "http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync"
*  For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
lcContentType = "application/soap+xml"

* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http')
loHttp = CreateObject('Chilkat.Http')

loHttp:ClearHeaders()
loHttp:SetRequestHeader("Content-Type",lcContentType)
loHttp:SetRequestHeader("SOAPAction",lcSoapAction)

loResp = loHttp:PostXml(lcEndpoint,lcSoapRequestBody,"utf-8")
IF (loHttp:LastMethodSuccess = 0)
    alert( loHttp:LastErrorText)
    alert( "Failed to send SOAP request." )
    RELEASE loXml
    RELEASE loHttp
    CANCEL
ENDIF

* Get the XML response body.
* For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Xml')
loResponseXml = CreateObject('Chilkat.Xml')
loResp:GetBodyXml(loResponseXml)

lnStatusCode = loResp:StatusCode
alert( "response status code: " + STR(lnStatusCode) )

RELEASE loResp

cFilXml :=  loResponseXml:GetXml()

hb_memowrit( "respuestaCli.xml", cFilXml )

* If the status code does not indicate succcess, then show the response XML,
* which probably contains error information.
IF (lnStatusCode <> 200)
    alert( cFilXml )
    RELEASE loXml
    RELEASE loHttp
    RELEASE loResponseXml
    CANCEL
ENDIF


* Parse the successful SOAP response XML.

* This is a sample of the response XML, but the namespace prefixes will be different.
* We can parse the result using "*" for the namespace prefixes (see below).

lcV_string = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:ErrorMessage|*:string")
lcIsValid = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:IsValid")
lcStatusCode = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:StatusCode")
lcStatusDescription = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:StatusDescription")
lcStatusMessage = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:StatusMessage")
lcXmlBase64Bytes = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:XmlBase64Bytes")
lcXmlBytes = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:XmlBytes")
lcXmlDocumentKey = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:XmlDocumentKey")
lcXmlFileName = loResponseXml:GetChildContent("*:Body|*:SendBillSyncResponse|*:SendBillSyncResult|*:XmlFileName")

RELEASE loXml
RELEASE loHttp
RELEASE loResponseXml


RETURN cFilXml
]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278486#p278486 Thu, 20 Mar 2025 07:53:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278486#p278486
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278488#p278488
Ahora estoy mirando con firmar un xml tipo invoice (factura o notas electronicas)]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278488#p278488 Thu, 20 Mar 2025 14:18:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278488#p278488
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278493#p278493
Estuve trabajando el ActiveX de CHILKAT y ya logre los 4 procesos críticos para enviar facturas electrónicas a la DIAN Colombia

1. Creación de XML
2. Firmar XML : INVOICE, CREDITNOTE, ETC
3. Firmar XML de petición o ejecución de WS DIAN
4. Envió de petición o ejecución de WS DIAN (para no usar LIBCURL)]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278493#p278493 Fri, 21 Mar 2025 05:43:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278493#p278493
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (SOLUCIONADO) :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278496#p278496
russimicro wrote: Fri Mar 21, 2025 11:43 am Buen día...

Estuve trabajando el ActiveX de CHILKAT y ya logre los 4 procesos críticos para enviar facturas electrónicas a la DIAN Colombia

1. Creación de XML
2. Firmar XML : INVOICE, CREDITNOTE, ETC
3. Firmar XML de petición o ejecución de WS DIAN
4. Envió de petición o ejecución de WS DIAN (para no usar LIBCURL)
Hola a todos,

No estoy muy al corriente del proceso para Colombia pero:

1. Creación de XML -->> precisa de firma?
2. Firmar XML : INVOICE, CREDITNOTE, ETC -->> Para España creo que se puede hacer por comandos con Autofirma, creo que podría valer para Colombia (se trata de firmar un fichero con una firma digital, entiendo).
3. Firmar XML de petición o ejecución de WS DIAN -->> Esto lo desconozco.
4. Envió de petición o ejecución de WS DIAN (para no usar LIBCURL) -->> Yo los envío con CURL.EXE bajado de la red; por tanto me desvinculo del programa por si hay actualizaciones futuras de Windows o de no sé qué, y fuercen a recompilar el programa; sería suficiente con buscar la versión adecuada de CURL.EXE

Cuantas más utilidades estén fuera del programa mejor.
Hay quién aún está usando mi programa de hace 23 años (en pesetas y euros), gracias a no tener cosas 'complicadas' en él. Hoy en día compilado con FWH 25.01 32b y quizás este año a 64b. Pero no me pidan cosas bonitas.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278496#p278496 Fri, 21 Mar 2025 08:23:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278496#p278496
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (AHORA SOLUCION CHILKAT - ACTIVEX) :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278504#p278504 en mi pais Ecuador yo tuve que comprar un componente activex hecho en c# que me firma
Seria de agradecer si ponen ejemplos con la aotufirma con chilkat con openssl ya que si podemos controlar nosotros todo el rpoceso mucho mejor ya que a veces hay cambios inesperados de la parte tributaria y toca iniciar de nuevo con otro producto en firmado de xml
saludos
y se agradece de antemano]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278504#p278504 Fri, 21 Mar 2025 12:00:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278504#p278504
<![CDATA[FiveWin para Harbour/xHarbour :: Re: LIB CURL + HARBOUR + BCC 7.7 (AHORA SOLUCION CHILKAT - ACTIVEX) :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278507#p278507 https://www.example-code.com/foxpro/ubl ... nature.asp]]> no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278507#p278507 Fri, 21 Mar 2025 13:32:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45530&p=278507#p278507 <![CDATA[FiveWin para Harbour/xHarbour :: Repositorios de FiveLinux :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278515#p278515 https://github.com/FiveTechSoft/FiveLinux2

FiveLinux basado en GTK 3.0
https://github.com/FiveTechSoft/FiveLinux3]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278515#p278515 Sat, 22 Mar 2025 02:06:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278515#p278515
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Repositorios de FiveLinux :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278518#p278518
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278518#p278518 Sat, 22 Mar 2025 10:43:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278518#p278518
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Repositorios de FiveLinux :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278523#p278523
Desde hace años mantenemos el código de FiveLinux en esos repositorios en GitHub :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278523#p278523 Sat, 22 Mar 2025 14:01:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278523#p278523
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Repositorios de FiveLinux :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278527#p278527 funciona en linux ?
saludos]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278527#p278527 Sat, 22 Mar 2025 21:26:00 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278527#p278527
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Repositorios de FiveLinux :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278528#p278528 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278528#p278528 Sat, 22 Mar 2025 23:35:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278528#p278528 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Repositorios de FiveLinux :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278530#p278530 un abrazo
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278530#p278530 Sun, 23 Mar 2025 06:43:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45558&p=278530#p278530
<![CDATA[FiveWin para Harbour/xHarbour :: Mover Botón de la barra de xbrowser :: Author jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278427#p278427 Una consulta sobre mover un botón en xbrowser.

Estoy usando xbrowser en algunos casos solo con las opciones de desplazamiento y generar excel.
Aquí un ejemplo de como lo hago:

Code: Select all | Expand

FUNCTION Main()
     LOCAL i
     
     REQUEST DBFCDX
     RddSetDefault( "DBFCDX" )
     set DATE FRENCH
     SET CENTURY ON
     SET EPOCH TO Year( Date() ) - 40

     USE C:\fwh\samples\customer NEW SHARED
     
     XBROWSER "CUSTOMER" TITLE "Prueba" SETUP ;
               ( oBrw:bInit :=  { |o|   ;
                    o:oWnd:oBar:aControls[ 8 ]:lGroup := .F., ;
                    o:oWnd:oBar:aControls[ 5 ]:Hide(), ;
                    o:oWnd:oBar:aControls[ 6 ]:Hide(), ;
                    o:oWnd:oBar:aControls[ 7 ]:Hide(), ;
                    o:oWnd:oBar:aControls[ 8 ]:Hide() } ;
                 )
RETURN nil
La pregunta es:
¿Cómo se puede hacer para que el botón de excel no aparezca distanciado de los demás que no se ocultaron?]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278427#p278427 Tue, 18 Mar 2025 07:51:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278427#p278427
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278440#p278440 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278440#p278440 Tue, 18 Mar 2025 15:41:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278440#p278440 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278494#p278494 Si ya lo había probado pero no obtuve ningun resultado.]]> no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278494#p278494 Fri, 21 Mar 2025 07:03:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278494#p278494 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278495#p278495

Code: Select all | Expand

// C:\FWH\SAMPLES\MURUGOS.PRG

#include "FiveWin.ch"

REQUEST DBFCDX

FUNCTION Main()

   LOCAL i

   rddSetDefault( "DBFCDX" )

   SET DATE FRENCH
   SET CENTURY ON
   SET EPOCH TO Year( Date() ) - 40

   USE ..\SAMPLES\CUSTOMER NEW SHARED
   GO TOP

   XBROWSER "CUSTOMER" TITLE "Prueba" SETUP               ;
      ( oBrw:bInit :=  {| o |                             ;
        o:oWnd:oBar:aControls[ 8 ]:lGroup := .F.,         ;
        o:oWnd:oBar:aControls[ 5 ]:Hide(),                ;
        o:oWnd:oBar:aControls[ 6 ]:Hide(),                ;
        o:oWnd:oBar:aControls[ 7 ]:Hide(),                ;
        o:oWnd:oBar:aControls[ 8 ]:Hide(),                ;
        o:oWnd:oBar:Del( Len( o:oWnd:oBar:aControls ) ) } ; // aqui
      )


RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278495#p278495 Fri, 21 Mar 2025 08:07:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278495#p278495
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278499#p278499
O esto?

Code: Select all | Expand

// C:\FWH\SAMPLES\MURUGOS.PRG - Version 2.

#include "FiveWin.ch"

REQUEST DBFCDX

FUNCTION Main()

   LOCAL i

   rddSetDefault( "DBFCDX" )

   SET DATE FRENCH
   SET CENTURY ON
   SET EPOCH TO Year( Date() ) - 40

   USE ..\SAMPLES\CUSTOMER NEW SHARED
   GO TOP

   /*
   XBROWSER "CUSTOMER" TITLE "Prueba" SETUP              ;
      ( oBrw:bInit :=  {| o |                            ;
        o:oWnd:oBar:aControls[ 8 ]:lGroup := .F.,        ;
        o:oWnd:oBar:aControls[ 5 ]:Hide(),               ;
        o:oWnd:oBar:aControls[ 6 ]:Hide(),               ;
        o:oWnd:oBar:aControls[ 7 ]:Hide(),               ;
        o:oWnd:oBar:aControls[ 8 ]:Hide(),               ;
        o:oWnd:oBar:Del( Len( o:oWnd:oBar:aControls )) } ;
      )
   */

   // Otro modelo
   XBROWSER "CUSTOMER" TITLE "Prueba" SETUP                              ;
      ( oBrw:bInit :=  {| o |                                            ;
        o:oWnd:oBar:aControls[ 8 ]:lGroup := .F.,                        ;
        o:oWnd:oBar:aControls[ 5 ]:Hide(),                               ;
        o:oWnd:oBar:aControls[ 6 ]:Hide(),                               ;
        o:oWnd:oBar:aControls[ 7 ]:Hide(),                               ;
        o:oWnd:oBar:aControls[ 8 ]:Hide(),                               ;
        o:oWnd:oBar:aControls[ 9 ]:Move( 0, o:oWnd:oBar:nWidth() -35 ) } ; // aqui
      )

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278499#p278499 Fri, 21 Mar 2025 10:28:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278499#p278499
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278512#p278512

Code: Select all | Expand

#include "fivewin.ch"

FUNCTION Main()
     LOCAL i
     
     REQUEST DBFCDX
     RddSetDefault( "DBFCDX" )
     set DATE FRENCH
     SET CENTURY ON
     SET EPOCH TO Year( Date() ) - 40

     USE d:\fwh\fwhteam\samples\customer NEW SHARED
     
     XBROWSER "customer" TITLE "Prueba" SETUP ;
               ( oBrw:oWnd:bInit :=  { | o | ;
                    o:oBar:l2013 := .T., ;
                    o:oBar:l2010 := .F., ;
                    o:oBar:l2015 := .F., ;
                    o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
                    o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
                    o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
                    AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 6, 9 ), ; 
                    ASize( o:oBar:aControls, 5 ), ; 
                    AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
                    o:oBar:SetGradients(), ;
                    o:oBar:Refresh() ;
                  } )
RETURN nil

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278512#p278512 Fri, 21 Mar 2025 20:53:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278512#p278512
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278517#p278517

Code: Select all | Expand

// C:\FWH\SAMPLES\MURUGOS2.PRG

#Include "FiveWin.ch"

FUNCTION Main()

   LOCAL i

   REQUEST DBFCDX
   rddSetDefault( "DBFCDX" )

   SET DATE FRENCH
   SET CENTURY ON
   SET EPOCH TO Year( Date() ) - 40

   USE ..\SAMPLES\CUSTOMER NEW SHARED

   XBROWSER "CUSTOMER" TITLE "Prueba" SETUP                               ;
      ( oBrw:oWnd:bInit :=  {| o |                                        ;
        o:oBar:l2007 := .T.,                                              ;
        o:oBar:l2013 := .F.,                                              ;
        o:oBar:l2010 := .F.,                                              ;
        o:oBar:l2015 := .F.,                                              ;
        o:oBar:aControls[ 6 ]:Hide(),                                     ;
        o:oBar:aControls[ 7 ]:Hide(),                                     ;
        o:oBar:aControls[ 8 ]:Hide(),                                     ;
        o:oBar:aControls[ 9 ]:Hide(),                                     ;
        o:oBar:aControls[ 5 ]:cTooltip := o:oBar:aControls[ 9 ]:cToolTip, ;
        o:oBar:aControls[ 5 ]:bAction  := o:oBar:aControls[ 9 ]:bAction,  ;
        o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ),         ;
        AEval( o:oBar:aControls, {| oBtt | oBtt:End() }, 6, 9 ),          ;
        ASize( o:oBar:aControls, 5 ),                                     ;
        AEval( o:oBar:aControls, {| oBtt | oBtt:Refresh() } ),            ;
        o:oBar:SetGradients(),                                            ;
        o:oBar:Refresh()                                                  ;
      } )

RETURN NIL

// FIN / END
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278517#p278517 Sat, 22 Mar 2025 10:38:53 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278517#p278517
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278519#p278519 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278519#p278519 Sat, 22 Mar 2025 10:43:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278519#p278519 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278524#p278524

Code: Select all | Expand

#include "fivewin.ch"

FUNCTION Main()
     LOCAL i
     
     REQUEST DBFCDX
     RddSetDefault( "DBFCDX" )
     set DATE FRENCH
     SET CENTURY ON
     SET EPOCH TO Year( Date() ) - 40

     USE c:\fwh\amples\customer NEW SHARED
     
     XBROWSER "customer" TITLE "Prueba" SETUP ;
               ( oBrw:oWnd:bInit :=  { | o | ;
                    o:oBar:l2013 := .T., ;
                    o:oBar:l2010 := .F., ;
                    o:oBar:l2015 := .F., ;
                    o:oBar:aControls[ 5 ]:cTooltip  := o:oBar:aControls[ 9 ]:cToolTip, ;
                    o:oBar:aControls[ 5 ]:bAction   := o:oBar:aControls[ 9 ]:bAction, ;
                    o:oBar:aControls[ 5 ]:LoadBitmaps( FWBitmap( "Excel" ) ), ;
                    o:oBar:aControls[ 6 ]:cTooltip  := "Exit", ;
                    o:oBar:aControls[ 6 ]:bAction   := { | oBtt | oBtt:oWnd:oWnd:End() }, ;
                    o:oBar:aControls[ 6 ]:LoadBitmaps( FWBitmap( "exit2" ) ), ;  // close16
                    o:oBar:aControls[ 6 ]:lRight    := .T., ;
                    AEval( o:oBar:aControls, { | oBtt | oBtt:End() }, 7, 9 ), ; 
                    ASize( o:oBar:aControls, 6 ), ; 
                    AEval( o:oBar:aControls, { | oBtt | oBtt:Refresh() } ), ;
                    o:oBar:SetGradients(), ;
                    o:oBar:Refresh() ;
                  } )
RETURN nil

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278524#p278524 Sat, 22 Mar 2025 14:53:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278524#p278524
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278533#p278533
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278533#p278533 Sun, 23 Mar 2025 09:19:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278533#p278533
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Mover Botón de la barra de xbrowser :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278539#p278539 Muuchas gracias.
Recien puedo ver y probar el código.
Que buenas soluciones las dos Cristóbal, me decanté por la del botón de salir.
Una belleza.

Gracias por la buena disposición que muestran siempre para ayudar.
Un fuerte abrazo]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278539#p278539 Mon, 24 Mar 2025 05:34:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45541&p=278539#p278539
<![CDATA[FiveWin para Harbour/xHarbour :: envio de mails usando oauth cuentas office365 :: Author wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278630#p278630 existe esa posibilidad de envio de mails usando esas cuentas tengo las siguientes credenciales que me dio la gente de sistemas

usando Harbour consola si es posible

Nombre Aplicación Registrada en Azure: JoseNet Mail

Client ID: xxxxxxxx-5992-44af-b0a7-xxxxxxxxxx
Tenant ID: xxxxxxxxxx-a223-497c-b0b4-xxxxxxxxxxxx
Secret ID: xxxxxxxx-1016-46a7-935c-xxxxxxxxxxxx
Valor Secret ID: YOF8Q~xxxxxxxxxxxxxxxxx-xxxxxxxxxxx3 (Opcional)

supongo con las nuevas clases del ultimo fw ?

gracias por su ayuda
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278630#p278630 Thu, 27 Mar 2025 08:12:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278630#p278630
<![CDATA[FiveWin para Harbour/xHarbour :: Re: envio de mails usando oauth cuentas office365 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278631#p278631
Mira se ayuda:

viewtopic.php?t=45399

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278631#p278631 Thu, 27 Mar 2025 08:16:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278631#p278631
<![CDATA[FiveWin para Harbour/xHarbour :: Re: envio de mails usando oauth cuentas office365 :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278633#p278633 el proveedor es
microsoft azzure
pido ayuda ya habia leido lo de gmail obviamente por mis limitaciones no tengo idea de como implementar para office365
saludos
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278633#p278633 Thu, 27 Mar 2025 08:53:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278633#p278633
<![CDATA[FiveWin para Harbour/xHarbour :: Re: envio de mails usando oauth cuentas office365 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278635#p278635
https://learn.microsoft.com/pt-br/azure ... m-azportal

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278635#p278635 Thu, 27 Mar 2025 09:15:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45573&p=278635#p278635
<![CDATA[FiveWin para Harbour/xHarbour :: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278589#p278589
Porque solo quiero usar el comando:

Code: Select all | Expand

// PARA DESLIGAR O OUTLOOK, SE ESTIVER ABERTO AINDA. Joao
   WaitRun( "CMD /C TASKKILL.EXE /IM OutLook.exe /F", 0 )
Si OutLook.exe está en uso/abierto.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278589#p278589 Wed, 26 Mar 2025 13:32:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278589#p278589
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278595#p278595
1 := Usando Windows API con Harbour:

Code: Select all | Expand

// Método para verificar si Outlook está abierto
FUNCTION IsOutlookRunning()
    LOCAL hWnd
    
    // Buscar la ventana de Outlook
    hWnd := FindWindow("OlMainFrame", NIL)
    
    RETURN hWnd != 0
2 := Usando función de proceso del sistema:

Code: Select all | Expand

FUNCTION CheckOutlookProcess()
    LOCAL aProcessList, lOutlookRunning := .F.
    LOCAL i

    // Obtener lista de procesos
    aProcessList := GetProcessList()
    
    // Recorrer procesos buscando Outlook
    FOR i := 1 TO LEN(aProcessList)
        IF UPPER(aProcessList[i]) == "OUTLOOK.EXE"
            lOutlookRunning := .T.
            EXIT
        ENDIF
    NEXT

    RETURN lOutlookRunning
3 := Usando Windows API directamente:

Code: Select all | Expand

FUNCTION CheckOutlookProcess()
    LOCAL aProcessList, lOutlookRunning := .F.
    LOCAL i

    // Obtener lista de procesos
    aProcessList := GetProcessList()
    
    // Recorrer procesos buscando Outlook
    FOR i := 1 TO LEN(aProcessList)
        IF UPPER(aProcessList[i]) == "OUTLOOK.EXE"
            lOutlookRunning := .T.
            EXIT
        ENDIF
    NEXT

    RETURN lOutlookRunning
]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278595#p278595 Wed, 26 Mar 2025 15:15:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278595#p278595
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278618#p278618

Code: Select all | Expand

// Método para verificar si Outlook está abierto
FUNCTION IsOutlookRunning()
    LOCAL hWnd
    
    // Buscar la ventana de Outlook
    hWnd := FindWindow("OlMainFrame", NIL)
    
    RETURN hWnd != 0
NO FUNCIONA.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278618#p278618 Thu, 27 Mar 2025 05:11:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278618#p278618
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278619#p278619

Code: Select all | Expand

Error: Unresolved external '_HB_FUN_GETPROCESSLIST' referenced from C:\ACBRREAL\
ACBRREAL.OBJ
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278619#p278619 Thu, 27 Mar 2025 05:16:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278619#p278619
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278624#p278624
https://fivewin.com.br/index.php?/topic ... o-windows/

Code: Select all | Expand

/*
* Verificar se um Exe esta sendo executado e podendo at‚ derruba-lo
* Parametros: _cExe, _nKill
* Retorno: Retorno - .t. se estiver rodando
*
* Autor: toya
*/

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL _cExe := "OutLook.exe", _nKill := 2, lOk

   lOk := EstaRodandoKillExe( _cExe, _nKill )

   ? lOk

RETURN NIL
// Is the executable running?
FUNCTION EstaRodandoKillExe( _cExe, _nKill )

   LOCAL Retorno := .F.
   LOCAL oScriptObj
   LOCAL oWmiService
   LOCAL oListaProcess
   LOCAL oProcessos

   hb_default( @_nKill, 0 )

   oScriptObj    := CREATEOBJECT( "wbemScripting.SwbemLocator" )
   oWmiService   := oScriptObj:ConnectServer()
   oListaProcess := oWmiService:ExecQuery( "select * from Win32_Process where Name='" + _cExe + "'" )

   FOR EACH oProcessos in oListaProcess

      Retorno := .T.

      IF _nKill == 2

         oProcessos:Terminate() // mata o _cEXE

      ENDIF

   NEXT

RETURN( Retorno )

FUNCTION hb_default( xVar, xValue ) // Only xHarbour

   IF ValType( xVar ) != ValType( xValue )

      xVar := xValue

   ENDIF

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278624#p278624 Thu, 27 Mar 2025 06:35:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278624#p278624
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿COMPROBAR SI OUTLOOK.EXE ESTÁ ABIERTO EN EL ADAPTADOR DE WINDOWS? :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278636#p278636 no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278636#p278636 Thu, 27 Mar 2025 10:09:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45568&p=278636#p278636 <![CDATA[FiveWin para Harbour/xHarbour :: Registrar un ActiveX :: Author russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278660#p278660
Estoy usando un activex de chilkat , y ya la tengo funcionando en desarrollo, activándola con un .bat asi :

registraActivex.bat

@echo off
echo.Current User is '%USERNAME%'
cd %~dp0
set "filemask=ChilkatAx*.dll"
for %%A in (%filemask%) do %systemroot%\syswow64\regsvr32 %%A || GOTO:EOF
ECHO.&PAUSE&GOTO:EOF

Es posible registrarla o cargarla en fivewin + xharbour directamente, para no tener que ejecutar el registraActivex.bat en cada cliente final.

JONSSON RUSSI
Gracias]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278660#p278660 Fri, 28 Mar 2025 08:17:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278660#p278660
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Registrar un ActiveX :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278662#p278662

Code: Select all | Expand

#include "FiveWin.ch"

FUNCTION Main()

   MYRUN( "/N Regsvr32 /s BARCODE.OCX" ) // TU .OCX

   // O,

   // Regsvr32 /s BARCODE.OCX

RETURN NIL

FUNCTION MYRUN( cComando )

   LOCAL oShell, RET, lOk:=.T.

   TRY
      #IFDEF __XHARBOUR__
         oShell := CreateObject( "WScript.Shell" )
      #ELSE
         oShell := Win_OleCreateObject( "WScript.Shell" )
      #ENDIF

   CATCH

      TRY
         #IFDEF __XHARBOUR__
            oShell := CreateObject( "WScript.Shell" )
         #ELSE
            oShell := Win_OleCreateObject( "WScript.Shell" )
         #ENDIF

      CATCH

         lOk:=.F.

        END
   END

   IF lOk

      TRY

          //.F. = Nao espera a aplicacao fechar, .T. espera.
          oShell:Run( "%comspec% /c " + cComando, 0, .T. ) 

      CATCH

          lOk:=.F.

      END

      oShell := NIL

   ENDIF

   //--   RET := oShell:Run( "%comspec% /c " + cComando, 0)  //, .T. )

RETURN( lOk )

// FIN / END

/* // OCX.BAT
copy NombreOCX.ocx %SystemRoot%\system32\NombreOCX.ocx

regsvr32.exe  /s NombreOCX.o

@echo off

IF EXIST %WinDir%\system\barcode.ocx goto ERRO

:MAIN

cls
echo Voce vai instalar barcode.ocx em seu sistema.
echo.
echo ATENÇÃO:
echo 
echo 
echo Pressione Ctrl+C para Cancelar, Enter para continuar
pause > Nul

echo.
echo Copiando arquivo...
copy barcode.ocx %WinDir%\system


echo.
echo Registrando arquivo...
cd %WinDir%\system
regsvr32/s barcode.ocx 

echo.
echo barcode.ocx   foi instalado no seu computador!
echo.
echo Agora, abra o access e veja em ActiveX Controles 


goto END

:ERRO
echo.
echo.
echo.
echo barcode.ocx , ja encontra-se instalado no seu computador.
echo.

goto END

:END
*/

Regards, saludos]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278662#p278662 Fri, 28 Mar 2025 08:39:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278662#p278662
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Registrar un ActiveX :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278663#p278663

Code: Select all | Expand

 
     local hBorland := LoadLibrary( "BWCC.dll" )
     SET RESOURCES TO "autolay.dll"                  // Personal DLL
pero no se si aplica a cualquier dll

asi se usa con activex registrado desde windows...

loDt := CreateObject('Chilkat.CkDateTime')

lnSuccess := loDt:SetFromCurrentSystemTime()]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278663#p278663 Fri, 28 Mar 2025 09:21:14 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278663#p278663
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Registrar un ActiveX :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278664#p278664 Algo asi

Code: Select all | Expand

CallDll32( "OpenComFiscal" , "WINFIS32.DLL" , nPort , 1 )
Tendrias que identificar cada funcion de la dll y sus parametros para saber que enviar y que recibir en cada caso]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278664#p278664 Fri, 28 Mar 2025 09:52:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278664#p278664
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Registrar un ActiveX :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278665#p278665
~fivetec1/forums/viewtopic.php?t=43071

https://www.fivetechsoft.com/forums/vie ... 4&start=15

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278665#p278665 Fri, 28 Mar 2025 10:04:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45577&p=278665#p278665
<![CDATA[FiveWin para Harbour/xHarbour :: Como saber si existe un tabla en MariaDB :: Author acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278714#p278714
Para DBF lo hago así

Code: Select all | Expand

  If File( "C:\SISTEMAS\DATA\BASE.DBF" ) 
Cómo se hace con MariaDB nativo si existe una TABLA

Gracias por la ayuda]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278714#p278714 Mon, 31 Mar 2025 11:34:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278714#p278714
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Como saber si existe un tabla en MariaDB :: Reply by JoseAlvarez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278715#p278715
acuellar wrote: Mon Mar 31, 2025 5:34 pm Buenas estimados

Para DBF lo hago así

Code: Select all | Expand

  If File( "C:\SISTEMAS\DATA\BASE.DBF" ) 
Cómo se hace con MariaDB nativo si existe una TABLA

Gracias por la ayuda
Hola ademar,
yo lo hago asi:

Code: Select all | Expand

cQuery:= "SHOW TABLES FROM `"+tu_base_de_datos+"` LIKE 'nombre_de_la_tabla';"
Si devuelve vacía la consulta, es porque no existe la tabla.

Code: Select all | Expand

if oQuery:reccount()=0
  Fnct_CrearTablas()
endif
yo uso tDolphin, debes adaptarla a la clase nativa.

Espero te sirva.]]>
no_email@example.com (JoseAlvarez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278715#p278715 Mon, 31 Mar 2025 11:52:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278715#p278715
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Como saber si existe un tabla en MariaDB :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278716#p278716

Code: Select all | Expand

if oCn:TableExists( cTableName, cDbName )
]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278716#p278716 Mon, 31 Mar 2025 12:28:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278716#p278716
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Como saber si existe un tabla en MariaDB :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278721#p278721
Muchas gracias José y Cristobal

Lo logré con lo brindado por Cristobal]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278721#p278721 Mon, 31 Mar 2025 13:35:42 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45585&p=278721#p278721
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Clase TScanner - Interface de escaneo - Jose Murugosa :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=16808&p=278742#p278742
Enrrique Vertiz wrote: Thu May 20, 2010 8:19 pm Saludos Jose, hace algun tiempo subiste esta clase a internet con el ejemplo que hizo Alvaro, estoy tratando de bajarla de internet pero el Link al que hace referencia ya no es valido, podrias pr favor subirlo nuevamente o indicarme desde donde la puedo bajar, MUCHAS GRACIAS
Hola, de casualidad vi tu mensaje recién.
Crearé un link nuevo y lo paso, junto con la clase está también la twain.lib, EZTW32.dll EZTWAIN.h e ijl44.dll porque ya no se puede bajar, y una ayuda escrita por su autor (Rafa).

Por las dudas, la clase NO ES MIA, es del Rafa Carmona THE FULL, porque no sea cosa que como la clase y mi nombre están juntos se preste a confusión :lol:

Aquí el link:
https://mega.nz/file/mBBFjBoT#vdNeioTnZ ... LhrXvmR1Jc]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=16808&p=278742#p278742 Tue, 01 Apr 2025 09:03:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=16808&p=278742#p278742
<![CDATA[FiveWin para Harbour/xHarbour :: Re: España: Normativa sancionadora sistemas informáticos :: Reply by Verhoven]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278513#p278513 Os dejo la noticia para que la podáis revisar:

https://economistas.es/wp-content/uploa ... barees.pdf

Parece que hacienda va a hacer una aplicación para todo el mundo, ya veremos lo práctica que será, y que vuelve a retrasar la entrada en vigor y ajusta ahora la exigencia en función del importe de las facturas emitidas y el tamaño de las empresas.

Vuelven a demostrar que legislan a cadena suelta, sin pensárselo bien y siempre sin consultar a nadie ni admitir rectificaciones o consejos.

Así nos va...]]>
no_email@example.com (Verhoven) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278513#p278513 Sat, 22 Mar 2025 01:19:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278513#p278513
<![CDATA[FiveWin para Harbour/xHarbour :: Re: España: Normativa sancionadora sistemas informáticos :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278516#p278516
Verhoven wrote: Sat Mar 22, 2025 7:19 am Nueva modificación en las exigencias de las facturas inmediatas.
Os dejo la noticia para que la podáis revisar:

https://economistas.es/wp-content/uploa ... barees.pdf

Parece que hacienda va a hacer una aplicación para todo el mundo, ya veremos lo práctica que será, y que vuelve a retrasar la entrada en vigor y ajusta ahora la exigencia en función del importe de las facturas emitidas y el tamaño de las empresas.

Vuelven a demostrar que legislan a cadena suelta, sin pensárselo bien y siempre sin consultar a nadie ni admitir rectificaciones o consejos.

Así nos va...
Hola,

Según este artículo está hablando de la factura electrónica, como aún no hay reglamento no me preocuparé. Cuando lo haya ya no serán artículos periodísticos (que a veces hablan de oídas) y entonces veremos los requisitos con certeza, y sobre todo los plazos que todo parece indicar que hasta 2027 tenemos tiempo.

De todas maneras primero está Verifactu, y eso facilitará (al menos un poco) el paso/uso de la factura electrónica, pues quién ya esté aplicando Verifactu On line, el paso a la factura electrónica le pillará (al menos a mi) con más experiencia en ciertos procesos.

>>...de las facturas inmediatas
No sé que son las facturas inmediatas, pero quizás con lo que intuyo que quieres decir, con Verifactu On line ya se debe aplicar.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278516#p278516 Sat, 22 Mar 2025 05:17:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278516#p278516
<![CDATA[FiveWin para Harbour/xHarbour :: Re: España: Normativa sancionadora sistemas informáticos :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278749#p278749
Pues a ponerse las pilas ...

https://www.boe.es/boe/dias/2025/04/02/ ... 5-6600.pdf]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278749#p278749 Wed, 02 Apr 2025 05:43:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278749#p278749
<![CDATA[FiveWin para Harbour/xHarbour :: Re: España: Normativa sancionadora sistemas informáticos :: Reply by VictorCasajuana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278750#p278750 ]]> no_email@example.com (VictorCasajuana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278750#p278750 Wed, 02 Apr 2025 06:00:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278750#p278750 <![CDATA[FiveWin para Harbour/xHarbour :: Re: España: Normativa sancionadora sistemas informáticos :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278757#p278757
Yo ya en fase de pruebas puliendo detalles, ahora a por las consultas a la AEAT. ;)

Por cierto, ante una desgracia informática, la consulta a la AEAT del último registro enviado te salva 'el culo'.

Moltes gràcies Quim,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278757#p278757 Wed, 02 Apr 2025 13:08:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40705&p=278757#p278757
<![CDATA[FiveWin para Harbour/xHarbour :: Exportar a Excel :: Author jbrita]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278628#p278628 necesito de su ayuda, genero un informe por excel 2007 y funciona bien, luego en otro computador hay un excel plus 2019 y se cae, este es error

Error occurred at: 27-03-2025, 09:52:23
Error description: Error excel.application:WORKBOOKS:ADD:WORKSHEETS/3 DISP_E_MEMBERNOTFOUND: _NAME
Args:
[ 1] = C

Stack Calls
===========
Called from: => TOLEAUTO:_NAME( 0 )
Called from: C:\SYSTEMA\BUS\PRG\winges25.prg => EXPOR( 286 )
Called from: C:\SYSTEMA\BUS\PRG\winges25.prg => (b)EXPORTARTODOS( 193 )
Called from: C:\SYSTEMA\BUS\PRG\msgrun.prg => (b)MSGRUN( 39 )
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG( 87 )

alguna ayuda
Saludos]]>
no_email@example.com (jbrita) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278628#p278628 Thu, 27 Mar 2025 07:24:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278628#p278628
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278629#p278629

Code: Select all | Expand

   winges25.prg => EXPOR( 286 )
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278629#p278629 Thu, 27 Mar 2025 08:12:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278629#p278629
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by jbrita]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278632#p278632
oSheet:name:=AllTrim(cConvenio:HojaExcel) //286


saludos]]>
no_email@example.com (jbrita) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278632#p278632 Thu, 27 Mar 2025 08:42:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278632#p278632
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278634#p278634
jbrita wrote: Thu Mar 27, 2025 2:42 pm esa es la linea

oSheet:name:=AllTrim(cConvenio:HojaExcel) //286


saludos
NAME Ó _NAME?

Mira se ayuda,

https://www.fivetechsoft.com/forums/vie ... hp?t=32781

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278634#p278634 Thu, 27 Mar 2025 09:11:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278634#p278634
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278637#p278637
//::oSheet := ::oBook:Worksheets(1)
//nFormat := ::oBook:Get("FileFormat")
//::oBook:saveAS( cFileXls, nFormat )
//::oExcel:Quit()

y como dice el amigo @jbrita con versiones anteriores no hay problema
Saludos]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278637#p278637 Thu, 27 Mar 2025 10:50:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278637#p278637
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278638#p278638 SALUDOS !!!]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278638#p278638 Thu, 27 Mar 2025 10:57:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278638#p278638 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278641#p278641

Code: Select all | Expand

// C:\FWH\SAMPLES\EXCELDBF.PRG

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL Archivo1, Archivo2
   LOCAL _cExe := "Excel.exe", _nKill := 2, lOk

   lOk := EstaRodandoKillExe( _cExe, _nKill )

   IF( lOk )
      // NADA A FAZER
   ELSE // FORCA SE NAO FUNCIONAR

      WaitRun( "CMD /C TASKKILL.EXE /IM Excel.exe /F", 0 )

   ENDIF

   Archivo1 := "C:\TMP\CUSTOMER.DBF"

   XLS2DBF( Archivo1 )

RETURN NIL

FUNCTION XLS2DBF( cDbfName )

   // Purpose: convert an Excel spreadsheet to a dBase III+ table
   // but does not leave Excel open
   LOCAL oExcel
   LOCAL oWorkBook, oSheet, oError

   TRY
      oExcel := TOleAuto():New( "Excel.Application" )

   CATCH

      TRY
         oExcel := CreateObject( "Excel.Application" )

      CATCH oError

         Alert( "ERROR! Excel not avialable. [" + Ole2TxtError()+ "]" + oError:description )

         RETURN NIL
      END

   END

   oWorkbook = oExcel:WorkBooks:Open( cDbfName )

   oSheet = oExcel:ActiveSheet

   oSheet:SaveAs( "C:\TMP\CUSTOMER.CSV",  6 ) // Segundo parâmetro informa o tipo de saída
   oSheet:SaveAs( "C:\TMP\CUSTOMER.XLS", 56 ) // Segundo parâmetro informa o tipo de saída

   oWorkBook:Close( .F. )

   oExcel:Quit()

   oSheet    := NIL
   oWorkBook := NIL
   oExcel    := NIL

RETURN  NIL
/*
* Verificar se um Exe est  sendo executado e podendo at‚ derruba-lo
* Parametros: _cExe, _nKill
* Retorno: Retorno - .t. se estiver rodando
*
* Autor: toya
*/
// Is the executable running? - 27/03/2025 - Thanks: Alessandro/Toya.
FUNCTION EstaRodandoKillExe( _cExe, _nKill )

   LOCAL Retorno := .F.
   LOCAL oScriptObj
   LOCAL oWmiService
   LOCAL oListaProcess
   LOCAL oProcessos

   hb_default( @_nKill, 0 )

   oScriptObj    := CREATEOBJECT( "wbemScripting.SwbemLocator" )
   oWmiService   := oScriptObj:ConnectServer()
   oListaProcess := oWmiService:ExecQuery( "select * from Win32_Process where Name='" + _cExe + "'" )

   FOR EACH oProcessos in oListaProcess

      Retorno := .T.

      IF _nKill == 2

         oProcessos:Terminate() // mata o _cEXE

      ENDIF

   NEXT

RETURN( Retorno )

FUNCTION hb_default( xVar, xValue ) // Only xHarbour

   IF ValType( xVar ) != ValType( xValue )

      xVar := xValue

   ENDIF

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278641#p278641 Thu, 27 Mar 2025 12:52:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278641#p278641
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278642#p278642 ya no tengo la pc office 2019,
pero funciona en ms office 2021

a ver si @jbrita pude probar con ms office 2019

gracias !!]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278642#p278642 Thu, 27 Mar 2025 13:26:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278642#p278642
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278648#p278648

Code: Select all | Expand


/*
 *  TExcelScript():New()
 */
METHOD New() CLASS TExcelScript

/*
  ::oExcel := TOleAuto():New("Excel.Application")
  ::aExcelCols := {}

  ::oClip:=TClipBoard():New()
  ::oClip:Clear()
*/
	IF ( ::oExcel := win_oleCreateObject( "Excel.Application" ) ) != NIL
		::lOk := .T.
	ELSE
		ALERT( "Error: MS Excel not available. [" + win_oleErrorText()+ "]" )
	ENDIF

RETURN( Self )

jbrita wrote: Thu Mar 27, 2025 1:24 pm Hola colegas
necesito de su ayuda, genero un informe por excel 2007 y funciona bien, luego en otro computador hay un excel plus 2019 y se cae, este es error

Error occurred at: 27-03-2025, 09:52:23
Error description: Error excel.application:WORKBOOKS:ADD:WORKSHEETS/3 DISP_E_MEMBERNOTFOUND: _NAME
Args:
[ 1] = C

Stack Calls
===========
Called from: => TOLEAUTO:_NAME( 0 )
Called from: C:\SYSTEMA\BUS\PRG\winges25.prg => EXPOR( 286 )
Called from: C:\SYSTEMA\BUS\PRG\winges25.prg => (b)EXPORTARTODOS( 193 )
Called from: C:\SYSTEMA\BUS\PRG\msgrun.prg => (b)MSGRUN( 39 )
Called from: .\source\classes\DIALOG.PRG => (b)TDIALOG:TDIALOG( 87 )

alguna ayuda
Saludos
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278648#p278648 Thu, 27 Mar 2025 17:17:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278648#p278648
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278649#p278649 El segundo renombra una hoja.

Code: Select all | Expand


/*
 *  TExcelScript():HowSheet()
*/

METHOD HowSheet() CLASS TExcelScript
	LOCAL nSheets := ::oExcel:Sheets:Count()
	LOCAL i
	::aSheets := {}
	FOR i := 1 TO nSheets
		 aadd( ::aSheets , ::oExcel:Sheets:Item( i ):Name )
	NEXT
RETURN ( Nil )

METHOD NameSheet(cSheet,cName)        INLINE ::oExcel:Sheets(cSheet):Name := cName

jbrita wrote: Thu Mar 27, 2025 2:42 pm esa es la linea

oSheet:name:=AllTrim(cConvenio:HojaExcel) //286


saludos
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278649#p278649 Thu, 27 Mar 2025 17:26:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278649#p278649
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278684#p278684 y don descargo la tExcel? :shock: :shock: :shock: :shock:
gracias !]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278684#p278684 Sat, 29 Mar 2025 12:32:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278684#p278684
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278692#p278692
sysctrl2 wrote: Sat Mar 29, 2025 6:32 pm Interesante Victor,
y don descargo la tExcel? :shock: :shock: :shock: :shock:
gracias !
Mi querido amigo César, mira se és esta:

Download completo, aqui:

https://mega.nz/file/kA0jDY4L#vhdRY5LU8 ... 85mTZdF_b0

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278692#p278692 Sun, 30 Mar 2025 10:20:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278692#p278692
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278713#p278713 vamos a probar.]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278713#p278713 Mon, 31 Mar 2025 11:20:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278713#p278713 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278726#p278726
https://github.com/Vikthor-Thomas/Harbo ... EXCELS.prg
sysctrl2 wrote: Sat Mar 29, 2025 6:32 pm Interesante Victor,
y don descargo la tExcel? :shock: :shock: :shock: :shock:
gracias !
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278726#p278726 Mon, 31 Mar 2025 18:42:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278726#p278726
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278737#p278737
Vikthor wrote: Tue Apr 01, 2025 12:42 am La última versión de la clase TExcelS la puedes descargar del siguiente enlace.

https://github.com/Vikthor-Thomas/Harbo ... EXCELS.prg
sysctrl2 wrote: Sat Mar 29, 2025 6:32 pm Interesante Victor,
y don descargo la tExcel? :shock: :shock: :shock: :shock:
gracias !
Buenos días Vikthor, ¿dónde puedo conseguir ejemplos sencillos para probar esta excelente clase que creaste?

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278737#p278737 Tue, 01 Apr 2025 07:49:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278737#p278737
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278743#p278743
karinha wrote: Tue Apr 01, 2025 1:49 pm
Vikthor wrote: Tue Apr 01, 2025 12:42 am La última versión de la clase TExcelS la puedes descargar del siguiente enlace.

https://github.com/Vikthor-Thomas/Harbo ... EXCELS.prg
sysctrl2 wrote: Sat Mar 29, 2025 6:32 pm Interesante Victor,
y don descargo la tExcel? :shock: :shock: :shock: :shock:
gracias !
Buenos días Vikthor, ¿dónde puedo conseguir ejemplos sencillos para probar esta excelente clase que creaste?

Regards, saludos.
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278743#p278743 Tue, 01 Apr 2025 11:55:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278743#p278743
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278744#p278744 no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278744#p278744 Tue, 01 Apr 2025 12:40:54 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278744#p278744 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Exportar a Excel :: Reply by jbrita]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278782#p278782 no_email@example.com (jbrita) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278782#p278782 Thu, 03 Apr 2025 17:44:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45572&p=278782#p278782 <![CDATA[FiveWin para Harbour/xHarbour :: Color en un item de RADIO :: Author Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278783#p278783 * Opcion 1
* Opcion 2
* Opcion 3

Image
https://uploadnow.io/f/2sMPsC7]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278783#p278783 Thu, 03 Apr 2025 20:10:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278783#p278783
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color en un item de RADIO :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278784#p278784
Solo funciona sin uso de temas :!:

Code: Select all | Expand

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oDlg, oRadMenu, oBrush
   local nOption := 2

   DEFINE DIALOG oDlg RESOURCE "Radios"

   REDEFINE RADIO oRadMenu VAR nOption ID 110, 120, 130, 140, 150 OF oDlg ;
      ON CHANGE MsgBeep()

   REDEFINE BUTTON ID 100 OF oDlg ACTION oRadMenu:GoNext() ;
      WHEN nOption == 3

   REDEFINE BUTTON ID 102 OF oDlg ACTION oRadMenu:GoPrev()

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRadMenu:aItems[ 1 ]:SetColor( CLR_GREEN, RGB( 240, 240, 240 ) )

return nil

//----------------------------------------------------------------------------//
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278784#p278784 Thu, 03 Apr 2025 23:08:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278784#p278784
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color en un item de RADIO :: Reply by Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278786#p278786 Funciona Perfecto...
GRacias]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278786#p278786 Fri, 04 Apr 2025 04:54:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45593&p=278786#p278786
<![CDATA[FiveWin para Harbour/xHarbour :: Se pierden los datos de Impresora :: Author VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278788#p278788 Estoy teniendo este problema
Primero imprimo sobre una impresora de tickets (Todo Bien)
Después quiero imprimir sobre una impresora de ancho normal y
me sigue tomando el ancho de la impresora de tickets.

Para Los Tickets utilizo PRINT
Para la impresora de ancho normal, estoy usando REPORT

Alguna sugerencia?
Gracias por su tirmpo.
Saludos.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278788#p278788 Fri, 04 Apr 2025 10:16:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278788#p278788
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Se pierden los datos de Impresora :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278789#p278789
Gracias.

Regards, saludos]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278789#p278789 Fri, 04 Apr 2025 10:30:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278789#p278789
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Se pierden los datos de Impresora :: Reply by VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278790#p278790

Code: Select all | Expand

	cPrint := RETORNA_SYSP("IMPRESORA_CODIGOS")
	PRINT oPrn TO cPrint
		IF Empty( oPrn:hDC )
			MsgStop("Impresora de Etiquetas NO se Encuentra Lista","Alto..")
			ENDPRINT
			RETURN .T.
		ENDIF			
		Select "MICODE"
		DbGoTop()
		DO WHILE !Eof()				
			Ren_ := .1
			PAGE
				oPrn:CmSay(Ren_,3.5,Dtoc(MICODE->FENT1),aLetras[15],,,,2)				
				Ren_+=0.4
				cCadena := MICODE->ID				
				c_Code128(Ren_+=0.2,2,cCadena,oPrn,"C",,.T.,.04,.8)
				oPrn:CmSay(Ren_+=0.8,3.5,cCadena,aLetras[19],,,,2)
				Ren_+=0.5
				oPrn:CmSay(Ren_,3.5,AllTrim(MICODE->MODELO)+"   "+AllTrim(MICODE->TALLA),aLetras[15],,,,1)
				Ren_+=0.4
				oPrn:CmSay(Ren_,3.5,AllTrim(MICODE->COLOR),aLetras[15],,,,1)
			ENDPAGE	
			Select "MICODE"
			DbSkip()		
		ENDDO	
	ENDPRINT
Imprimo unos tickets con un codigo de barras

En la segunda impresion:

Code: Select all | Expand

	REPORT 	oReporte Title "Entrada : "+ENTRADAG->ID,"Fecha : "+Dtoc(ENTRADAG->FECHA),"Marca : "+AllTrim(ENTRADAG->NOMBRE)+"  "+IIF(!ENTRADAG->APLICA,">> ENTRADA SIN APLICAR AL INVENTARIO <<","") Left ;
 				Header AllTrim(EMPRESA->EMPRESA),"Sistema De Administracion","" Center ;
            Footer "Pagina # "+str(oReporte:nPage,3)+" -- "+"Fecha :"+Dtoc(Date())+" Hora : "+Time();            
            Font aLetras[31],aLetras[33],aLetras[52];
            Caption "Reportes Del Sistema de Administracion" Preview              
            Column Title "#"  			Data nRen__++ SIZE 4 PICTURE "999" SHADOW
				Column Title "Modelo"  		Data (cCrea)->MODELO SIZE 8	SHADOW
				Column Title "Color"  		Data (cCrea)->COLOR	SIZE 20	SHADOW
				FOR J := 1 TO LEN(bTallas)
					cDet := "(cCrea)->TALLA"+AllTrim(Str(J))
					cHea := '"'+AllTrim(bTallas[J])+'"'
					Column Title &cHea Data &cDet SIZE 8 TOTAL	SHADOW
				NEXT				
				Column Title "Total"  		Data (cCrea)->TOTAL	SIZE 6 TOTAL	SHADOW
  	ENDREPORT
	oReporte:cGrandTotal := "Totales ... "
	oReporte:lBoxOnTotal := .T.
	oReporte:lShadow := .T.
 	oReporte:lAutoLand := .F.
  	Activate Report oReporte ON STARTLINE AEval( oReporte:aColumns, { | o | o:lShadow := ! o:lShadow } )
Si primero imprimo el reporte y despues los tickets <== Todo bien
Pero si primero imprimo los tickets y despues el reporte, se descuadra el reporte.

Saludos.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278790#p278790 Fri, 04 Apr 2025 10:44:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278790#p278790
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Se pierden los datos de Impresora :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278791#p278791 saludos !!!

Code: Select all | Expand

SetPrintDefault( cToPrinter )
PRINTER ::oPrn PREVIEW NAME 'SysCtrl ERP Report'
]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278791#p278791 Fri, 04 Apr 2025 10:46:14 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278791#p278791
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Se pierden los datos de Impresora :: Reply by VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278792#p278792

Code: Select all | Expand

	cPrint := RETORNA_SYSP("IMPRESORA_REPORTES")	
	PRINT oPrn TO cPrint		
	ENDPRINT
Puse eso antes de generar el Reporte
Y listo, imprimo los tickets y después el reporte y todo bien

Saludos.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278792#p278792 Fri, 04 Apr 2025 11:02:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278792#p278792
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Se pierden los datos de Impresora :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278793#p278793

Code: Select all | Expand

// C:\FWH\SAMPLES\IMPVARIA.PRG

#include "FiveWin.ch"
#include "Objects.ch"
#include "report.ch"

#define RGB_BLACK      RGB(   0,  0,  0 )
#define RGB_RED        RGB( 255,  0,  0 )
#define RGB_GREEN      RGB(   0,255,  0 )
#define RGB_BLUE       RGB(   0,  0,255 )
#define RGB_CYAN       RGB(   0,255,255 )
#define RGB_YELLOW     RGB( 255,255,  0 )
#define RGB_MAGENTA    RGB( 255,  0,255 )
#define RGB_WHITE      RGB( 255,255,255 )
#define FW_DONTCARE    0
#define FW_THIN        100
#define FW_EXTRALIGHT  200
#define FW_LIGHT       300
#define FW_NORMAL      400
#define FW_MEDIUM      500
#define FW_SEMIBOLD    600
#define FW_BOLD        700
#define FW_EXTRABOLD   800
#define FW_HEAVY       900
#define DMPAPER_A4       9

STATIC oReport

FUNCTION Main()

   LOCAL oPrn, oPrint, oFnt, cPrinter := ""
   LOCAL oDlg, oBrw
   LOCAL aPrn := {}
   LOCAL cDef, i := 1

   SET _3DLOOK ON

   #ifdef __HARBOUR__  // GetPrinters() and GetDefaultPrinter() do not work in Harbour

      aPrn := aGetPrinters ()

      cDef := DefaultPrinter()

   #else // Harbour

      aPrn := GetPrinters ()

      cDef := GetDefaultPrinter()

   #endif

   IF Empty ( aPrn )

      MsgAlert ( "No Printers found" )

      RETURN NIL

   ENDIF

   DEFINE DIALOG oDlg FROM 2, 2 TO 21, 50 TITLE "Available Printers"

   @ 1, 2 LISTBOX oBrw FIELDS aPrn[ i ] ;
      HEADERS "Printer Array" ;
      FIELDSIZES 200 ;
      OF oDlg ;
      SIZE 100, 100

   oBrw:bGoTop    = { || i := 1 }
   oBrw:bGoBottom = { || i := Eval( oBrw:bLogicLen ) }
   oBrw:bSkip     = { | nWant, nOld | nOld := i, i += nWant, ;
      i := Max( 1, Min( i, Eval( oBrw:bLogicLen ) ) ), ;
      i - nOld }
   oBrw:bLogicLen = { || Len( aPrn ) }
   oBrw:cAlias    = "Array"                // Just put something

   @ 7.8, 2 SAY "Default printer: " + cDef

   @ 1, 20 BUTTON "Print (&FW)" OF oDlg ACTION TestCopias ( aPrn[i] )

   @ 2, 20 BUTTON "Print (&xH)" OF oDlg ACTION Test2 ( aPrn[i] )

   @ 3, 20 BUTTON "Print (&RP)" OF oDlg ACTION TestRPT ( aPrn[i] )

   @ 4, 20 BUTTON "&End       " OF oDlg ACTION( oDlg:End() )

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

FUNCTION TestCopias( cPrn )  // Imprimir varias copias

   LOCAL nI, nCopias := 2

   // SetCopies
   FOR nI := 1 TO nCopias

      TestPrint( cPrn )

   NEXT

RETURN NIL

FUNCTION TestPrint( cPrn )

   LOCAL oFnt, oPrint, aPrn
   LOCAL cText := "Este é um texto de teste para impressão"

   aPrn := GetPrinters()

   PRINT oPrint NAME "Formulario" TO ( cPrn )

   DEFINE FONT oFnt NAME "ARIAL" SIZE 0, -14 OF oPrint

   // oPrint:SetCopies ( 2 ) // Nao funciona

   oPrint:SetLandscape()

   // oPrint:Setup ()   // check the settings

   PAGE

      oPrint:CmSay ( 1, 1, cText, oFnt )

   ENDPAGE

   ENDPRINT

   oFnt:End()

RETURN NIL

FUNCTION Test2 ( cPrn )

   LOCAL oPrinter
   LOCAL aFonts, cFont, nFont

   oPrinter           := Win32Prn():new( cPrn )      // Create printer object and configure print job
   oPrinter:landscape := .F.
   oPrinter:formType  := DMPAPER_A4
   oPrinter:copies    := 2  // <--- 2 copies !!

   IF ! oPrinter:create()                       // Create device context
      Alert( "Cannot create device context" )
      QUIT
   ENDIF

   IF ! oPrinter:startDoc( "xHarbour test page" )   // Create print job
      Alert( "Cannot create document" )
      QUIT
   ENDIF

   oPrinter:textOut( "Text in default font" )       // Text in fixed font
   oPrinter:bold( FW_EXTRABOLD )
   oPrinter:textOut( oPrinter:fontName )
   oPrinter:bold( FW_NORMAL )
   oPrinter:newLine()

   aFonts := oPrinter:getFonts()
   nFont  := AScan( aFonts, ;
      {|a| "ARIAL" $ Upper( a[1] ) } )
   cFont  := aFonts[nFont,1]

   oPrinter:setFont( cFont )                       // Text in proportional font
   oPrinter:textOut( "Text in Arial font" )
   oPrinter:bold( FW_EXTRABOLD )
   oPrinter:textOut( oPrinter:fontName )
   oPrinter:bold( FW_NORMAL )
   oPrinter:newLine()

   oPrinter:setColor( RGB_YELLOW, RGB_BLUE )    // Colored text
   oPrinter:textOut( "Yellow on Blue" )
   oPrinter:newLine()

   oPrinter:setPen( PS_DASH, 5, RGB_GREEN )    // Draw colored line across page

   oPrinter:line( oPrinter:posX, ;
   oPrinter:posY, ;
   oPrinter:rightMargin, ;
   oPrinter:posY  )

   oPrinter:endDoc()       // Send output to printer
   oPrinter:destroy()      // Release GDI device context

RETURN NIL

FUNCTION DefaultPrinter()

   LOCAL nPrn, nRet, sGetDefaultPrinter

   nRet := PrinterSetUp()

   nPrn := PrnGetName()

   IF( nRet # 0 )

      SetDefaultPrinter( PRNGETNAME() )

      sGetDefaultPrinter := GetDefaultPrinter()

      // ? PrnStatus( sGetDefaultPrinter )

      IF PrnStatus( sGetDefaultPrinter ) = 4096

         // Verifica se SPOOLER esta desligado e tenta liga-lo
         MsgRun( sGetDefaultPrinter +": "+isprint( GetDefaultPrinter() ) + ;
                         " ou Spooler Desligado.", "Status da Impressora", ;
                 {|| WinExec( "NET START SPOOLER", 7 ) } )

      ENDIF

      //? GetPrinter()

   ELSE

      MsgAlert ( "No Printers found" )

      RETURN( .F. )

   ENDIF

RETURN( sGetDefaultPrinter ) // NIL

FUNCTION TESTRPT()

   LOCAL oFont1, oFont2, aPrn, oPrn

   DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-10
   DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-10 BOLD

   USE Customer

   INDEX ON Customer->Last TO Customer
   SET INDEX TO Customer
   GO TOP

   aPrn := GetPrinters()

   IF Empty( aPrn ) // Empty( oPrn:hDC )
      MsgStop( "Nenhuma Impressora Encontrada", "Nenhuma Impressora Encontrada" )
      RETURN NIL
   ENDIF

   PRINTER oPrn PREVIEW MODAL // PARA TESTAR A IMPRESSORA ANTES DE IMPRIMIR

   IF EMPTY( oPrn:hDC ) // MODIFICADO EM: 05/05/2015 - Quebrou na Gilmaria.
      MsgInfo( "ALGUMA COISA OCORREU DE ERRADO COM A IMPRESSORA.", "LIGUE A IMPRESSORA." )
      oPrn:End()
      RETURN( .F. )
   ENDIF

   oPrn:End()

   REPORT oReport ;
      TITLE "*** LISTADO DE PRUEBA ***","",OemtoAnsi("FiveTech Software"),"" ;
      FONT oFont1, oFont2 ;
      HEADER "Fecha: "+dtoc(date()),"Hora:  "+time() ;
      FOOTER OemtoAnsi("P gina: ")+str(oReport:nPage,3) ;
      PREVIEW   // TO PRINTER

      oReport:oDevice:lPrvModal := .T. 
      oReport:oDevice:SetPage(9) //-> Formato A4

      COLUMN TITLE "ST" ;
          DATA Customer->State

      COLUMN TITLE "City" ;
          DATA Customer->City

      COLUMN TITLE "First Name","Last Name" ;
          DATA Customer->First, Customer->Last

      COLUMN TITLE "   Salary" ;
          DATA Customer->Salary ;
          PICTURE "9,999,999" ;
          SIZE 9 RIGHT ;
          TOTAL

      END REPORT

   ACTIVATE REPORT oReport ON STARTPAGE Datos()

RETURN NIL

Function Datos()

     local cText

     cText := "Ancho hoja    : "+str(oReport:nWidth)+CRLF
     cText += "Ancho listado : "+str(oReport:nRptWidth)+CRLF
     cText += "Margen Izquier: "+str(oReport:nLeftMargin)+CRLF
     cText += "Margen Derecho: "+str(oReport:nRightMargin)+CRLF
     cText += "Ancho del Font: "+str(oReport:aFont[1]:nWidth)+CRLF
     cText += "Alto del Font:  "+str(oReport:aFont[1]:nHeight)+CRLF
     cText += "Ancho Standard: "+str(oReport:nSeparator)+CRLF
     cText += "Ancho columna1: "+str(oReport:aColumns[1]:nWidth)+CRLF
     cText += "Ancho columna2: "+str(oReport:aColumns[2]:nWidth)+CRLF

RETURN NIL

// FIM
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278793#p278793 Fri, 04 Apr 2025 11:35:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45595&p=278793#p278793
<![CDATA[FiveWin para Harbour/xHarbour :: FWH Zebra QR ejemplo :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278796#p278796
Seríais tan amables de construir este ejemplo en vuestro PC y compartir aqui el resutado ?

muchas gracias!

Code: Select all | Expand

#include "fivewin.ch"

REQUEST FWZEBRA  // required for barcodes

function Main()

   local oPrn, cText := "Texto a QR"

   PRINT oPrn
   PAGE
   @ 2,2 PRINT TO oPrn TEXT cText AS BARCODE TYPE "QR" SIZE 2,2 INCHES
   ENDPAGE
   ENDPRINT

return nil
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278796#p278796 Fri, 04 Apr 2025 12:37:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278796#p278796
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278799#p278799
Funciona perfectamente.

Pide nombre de archivo y lo guarda como PDF]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278799#p278799 Fri, 04 Apr 2025 13:25:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278799#p278799
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by cpheraclio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278801#p278801
Solicita nombre del fichero y se crea correctamente, se lee bien desde lector de QR.

Saludos]]>
no_email@example.com (cpheraclio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278801#p278801 Fri, 04 Apr 2025 13:50:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278801#p278801
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278804#p278804 Image]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278804#p278804 Fri, 04 Apr 2025 15:01:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278804#p278804 <![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278806#p278806 ]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278806#p278806 Fri, 04 Apr 2025 16:48:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278806#p278806 <![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278822#p278822
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278822#p278822 Sat, 05 Apr 2025 10:11:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278822#p278822
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FWH Zebra QR ejemplo :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278824#p278824 Edición Windows Server 2022 Standard
Versión 21H2
Instalado el ‎04/‎02/‎2023
Compilación del sistema operativo 20348.3328

https://hymplus.com/forofw/ayuda_antonio.pdf]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278824#p278824 Sat, 05 Apr 2025 11:03:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45598&p=278824#p278824
<![CDATA[FiveWin para Harbour/xHarbour :: Error con edición en Pelles C en una nueva portátil Dell :: Author nanoespinoza]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278727#p278727
Estoy con un problema con Pelles C V12.00.2 en una nueva portátil Dell; descargue Pelles C desde la web de Pelle Orinius, pero al momento de editar mi archivo .RES e intentar grabar lo modificado, sale un error de que el archivo no existe: "Error writing to file - the disk mught be full", evidentemente el disco no está lleno y al revisar el archivo que estaba editando, resultado que se ha borrado.

He intentado de todo, desactivé mi Antivirus ESET, lo volví a instalar, igual con Pelles C, le cambié de nombre al archivo, he reiniciado la máquina un sinfín de veces, pero, el error se mantiene con ese archivo .RES.

Image

Sí alguien puede ayudarme con esto, se lo agradeceré mucho.

Saludos cordiales

Fernando Espinoza A.]]>
no_email@example.com (nanoespinoza) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278727#p278727 Mon, 31 Mar 2025 21:14:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278727#p278727
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278728#p278728
Primero, el hecho de que el archivo desaparezca sugiere que Pelles C podría estar intentando sobrescribirlo o manejarlo de manera incorrecta, posiblemente debido a permisos, configuración del entorno o un fallo interno del programa. Aquí tienes un enfoque sistemático para solucionar el problema:

Verifica los permisos del archivo y la carpeta:
Haz clic derecho en la carpeta donde está guardado el archivo .RES, selecciona "Propiedades" y ve a la pestaña "Seguridad".
Asegúrate de que tu usuario tenga permisos completos (lectura, escritura, modificación). Si no los tienes, haz clic en "Editar" y otórgalos.

Intenta guardar el archivo en una ubicación diferente, como el Escritorio o una carpeta en "Documentos", para descartar restricciones de la carpeta original.

Ejecuta Pelles C como administrador:
A veces, los programas necesitan privilegios elevados para escribir archivos en ciertas ubicaciones. Haz clic derecho en el ejecutable de Pelles C (o su acceso directo) y selecciona "Ejecutar como administrador". Luego intenta editar y guardar el archivo .RES nuevamente.

Comprueba si el archivo está en uso o bloqueado:
Es posible que otro proceso esté interfiriendo. Antes de editar el archivo, asegúrate de que no esté abierto en otro programa o que Pelles C no haya dejado una instancia "fantasma" en memoria.
Reinicia la laptop y abre solo Pelles C para probar. Si sigue fallando, usa el "Administrador de tareas" (Ctrl+Shift+Esc) para verificar que no haya procesos de Pelles C ejecutándose en segundo plano.

Revisa el estado del disco:
Aunque dices que el disco no está lleno, podría haber un problema con el sistema de archivos. Abre una ventana de comandos (cmd) como administrador y ejecuta:
chkdsk C: /f
Esto verificará y reparará errores en el disco. Si pide reiniciar, hazlo y prueba de nuevo después.

Crea un nuevo archivo .RES desde cero:
Dado que el archivo original se borra, podría estar corrupto o mal formado. En Pelles C, crea un nuevo archivo .RES con un nombre diferente, haz un cambio simple y guarda. Si esto funciona, el problema podría estar en el archivo específico que estabas editando.

Compatibilidad con Windows:
Pelles C V12.00.2 es relativamente nuevo, pero tu laptop Dell también lo es, y podría haber un conflicto con el sistema operativo (¿Windows 11, tal vez?). Haz clic derecho en el ejecutable de Pelles C, ve a "Propiedades" > "Compatibilidad" y prueba configurarlo para ejecutarse en modo de compatibilidad con Windows 10 o una versión anterior. Aplica los cambios y prueba.

Reinstalación limpia y actualización:
Ya reinstalaste Pelles C, pero asegúrate de eliminar todos los restos antes de hacerlo de nuevo. Borra manualmente la carpeta de instalación (normalmente en C:\Program Files\PellesC o similar) después de desinstalarlo. Luego descarga la versión más reciente desde el sitio oficial de Pelle Orinius y reinstala.

Prueba en otra máquina (si es posible):
Si tienes acceso a otra computadora, instala Pelles C allí y prueba editar un archivo .RES. Esto ayudará a determinar si el problema es específico de tu laptop Dell o del programa en sí.
Dado que mencionas que el error persiste solo con ese archivo .RES, es probable que el archivo esté dañado o que Pelles C tenga un problema específico al manejarlo. Si después de probar lo anterior el inconveniente sigue, te sugiero intentar lo siguiente como solución alternativa: abre el archivo .RES en un editor de texto (como Notepad++), copia su contenido, crea un nuevo archivo .RES en Pelles C y pega el contenido ahí. Guarda con un nombre diferente y verifica si el error desaparece.

Si nada de esto funciona, podrías contactar al soporte de Pelles C o buscar en foros específicos de desarrollo (como Stack Overflow) con detalles adicionales del error. ¿Puedes compartir más información, como el sistema operativo de tu laptop o si el error ocurre con otros tipos de archivos (.c, .h, etc.)? Eso podría darme más pistas para ayudarte. ¡Espero que esto te sirva!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278728#p278728 Mon, 31 Mar 2025 22:18:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278728#p278728
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278736#p278736
https://answers.microsoft.com/en-us/win ... 1f24276948

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278736#p278736 Tue, 01 Apr 2025 07:46:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278736#p278736
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278759#p278759
saludos]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278759#p278759 Wed, 02 Apr 2025 16:03:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278759#p278759
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278773#p278773
Claro que puede leer los .RC

Pero lo mejor es que el .DLL de tus recursos los podes guardar como .RES y luego enlazarlo como un .PRG mas]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278773#p278773 Thu, 03 Apr 2025 05:58:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278773#p278773
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by nanoespinoza]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278774#p278774
nanoespinoza wrote: Tue Apr 01, 2025 3:14 am Estimados todos:

Estoy con un problema con Pelles C V12.00.2 en una nueva portátil Dell; descargue Pelles C desde la web de Pelle Orinius, pero al momento de editar mi archivo .RES e intentar grabar lo modificado, sale un error de que el archivo no existe: "Error writing to file - the disk mught be full", evidentemente el disco no está lleno y al revisar el archivo que estaba editando, resultado que se ha borrado.

He intentado de todo, desactivé mi Antivirus ESET, lo volví a instalar, igual con Pelles C, le cambié de nombre al archivo, he reiniciado la máquina un sinfín de veces, pero, el error se mantiene con ese archivo .RES.

Image

Sí alguien puede ayudarme con esto, se lo agradeceré mucho.

Saludos cordiales

Fernando Espinoza A.
Estimados todos:

Bueno, me estoy rindiendo en esta pelea con Pelles C, anoche vi que han lanzado una versión 13 de prueba, la bajé, la probé con estos resultados:

1) En el archivo .RES donde tengo problemas, ahora al intentar grabar no me borra el archivo, pero muestra un nuevo mensaje de error, indicando que hubo problemas para grabar el archivo y no hay forme de grabar los cambios realizados.

2) Con un archivo .RES que tenía de respaldo, viejito, con menos data, me permitió grabar sin problema.

Para no estancarme en esto les consulto: ¿Algún otro editor de recursos .RES que me puedan recomendar?

Saludos

Fernando Espinoza A.]]>
no_email@example.com (nanoespinoza) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278774#p278774 Thu, 03 Apr 2025 08:12:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278774#p278774
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278775#p278775
16 bits:

https://mega.nz/file/4dVF3ALB#OBUkXoLwM ... WCM2ksEbZM

32 bits

https://mega.nz/file/hEtlnQoZ#lUKQlfgyM ... SWOCaql74U

Emulador para ejecutar workshop.exe de 16 bits en Windows de 64 bits:

https://fivewin.com.br/index.php?/topic ... ent-291687

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278775#p278775 Thu, 03 Apr 2025 08:22:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278775#p278775
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278778#p278778 http://www.smorgasbordet.com/pellesc/900/setup.exe]]> no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278778#p278778 Thu, 03 Apr 2025 11:33:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278778#p278778 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Error con edición en Pelles C en una nueva portátil Dell :: Reply by nanoespinoza]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278831#p278831
Willi Quintana wrote: Thu Apr 03, 2025 5:33 pm MI estimado, esa esta version:
http://www.smorgasbordet.com/pellesc/900/setup.exe
Estimada Willi:

Probada esta versión, es inferior a las que había probado en estos días, pero, el resultado es el mismo. Lamentablemente, al momento de grabar los cambios en el .res borra el archivo que se está editando.

No parecer ser un virus, ya que otros archivos .res, si se pueden modificar y grabar sin problema. Seguiré probando, hasta hallar la solución.

Saludos

Fernando Espinoza A.]]>
no_email@example.com (nanoespinoza) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278831#p278831 Sat, 05 Apr 2025 18:29:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45586&p=278831#p278831
<![CDATA[FiveWin para Harbour/xHarbour :: Curiosidad ultima version de harbour y BCC 7.70 :: Author quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278787#p278787

Code: Select all | Expand

 Start Length Name Class
 0001:00401000 0001238C8H _TEXT                  CODE
 0002:00525000 0000350D0H _DATA                  DATA
 0003:0055A0D0 00000F694H _BSS                   BSS
 0004:00000000 0000000A4H _TLS                   TLS
Esto ocurre en proyectos con puro harbour utilizando hbmk2
En proyectos FWH construidos con makefile esto no ocurre

Como digo es una simple curiosidad ya que no afecta para nada a los exe construidos, alguien más le ha pasado ?]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278787#p278787 Fri, 04 Apr 2025 05:12:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278787#p278787
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curiosidad ultima version de harbour y BCC 7.70 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278797#p278797
El archivo null.map que mencionas parece ser un archivo de mapa generado por el enlazador (linker) durante el proceso de compilación con Harbour 3.2.0dev (r2502110321) y BCC 7.70 al usar hbmk2. Estos archivos .map suelen contener información sobre las secciones de memoria del ejecutable resultante, como las que indicas (_TEXT, _DATA, _BSS, _TLS), que corresponden al código, datos inicializados, datos no inicializados y datos específicos de subprocesos, respectivamente. Su presencia no afecta el funcionamiento del ejecutable, como bien notas, pero su aparición repentina tras la actualización puede ser una peculiaridad del entorno o una configuración implícita en la nueva versión de Harbour o en cómo hbmk2 interactúa con el enlazador de BCC.

En proyectos con hbmk2, este comportamiento podría estar relacionado con cómo el script de construcción invoca al enlazador de Borland (BCC), que por defecto puede estar generando este archivo de mapa incluso si no se especifica explícitamente. En contraste, tus proyectos con FWH que usan makefile no muestran este archivo, probablemente porque el proceso de enlace está configurado de manera diferente, omitiendo la generación del archivo de mapa o redirigiéndolo a otro nombre o ubicación.

Aquí hay algunas posibles razones y pasos para investigar o resolver esta "curiosidad":

Cambio en Harbour o hbmk2: La versión específica de Harbour 3.2.0dev (r2502110321) podría haber introducido un ajuste en hbmk2 que activa la generación de archivos de mapa por defecto al usar BCC 7.70. Esto no parece estar documentado como un cambio importante, pero podría ser un efecto secundario de alguna actualización en el manejo de opciones del enlazador.

Configuración del enlazador de BCC: El enlazador de Borland (ilink32.exe o similar) genera archivos .map si se le pasa la opción -M (o si esta se activa implícitamente). El nombre null.map sugiere que no se especificó un nombre explícito para el archivo de mapa, y el enlazador usa un valor predeterminado (null). Puedes verificar esto ejecutando hbmk2 con la opción -trace para inspeccionar los comandos exactos que se pasan al enlazador.

Diferencia entre hbmk2 y makefiles: En tus proyectos FWH con makefile, es probable que el proceso de enlace esté configurado para no generar el archivo .map (por ejemplo, omitiendo la opción -M) o para nombrarlo de acuerdo con el proyecto (como <nombre>.map). Con hbmk2, si no se especifica una opción explícita para controlar esto, el comportamiento por defecto del enlazador podría ser el culpable.

¿Qué puedes hacer?
Confirmar el origen: Ejecuta tu comando hbmk2 con -trace (por ejemplo, hbmk2 tu_proyecto.hbp -trace) y revisa la salida para ver si el enlazador está recibiendo una instrucción que genera el archivo .map. Busca algo como -M o una opción similar en la línea de comando del enlazador.

Desactivar la generación del archivo: Si no necesitas el archivo .map, puedes intentar pasarle una opción al enlazador a través de hbmk2. Por ejemplo, agrega -ldflag=-M- a tu comando o archivo .hbp para intentar desactivar la generación del mapa (aunque la sintaxis exacta depende del enlazador de BCC). Consulta la documentación de ilink32.exe para confirmar las opciones disponibles.

Especificar un nombre personalizado: Si prefieres que el archivo .map tenga un nombre útil en lugar de null.map, puedes usar la opción -map en hbmk2 para definirlo explícitamente (por ejemplo, -map=mi_proyecto.map).

Revisar cambios en Harbour: Dado que esto comenzó tras actualizar a r2502110321, podrías revisar el registro de cambios (ChangeLog) de Harbour en el repositorio oficial para ver si hay menciones sobre modificaciones en hbmk2 o en el soporte para BCC que expliquen este comportamiento.

¿A alguien más le ha pasado?

No hay reportes específicos y masivos sobre este fenómeno con Harbour 3.2.0dev (r2502110321) y BCC 7.70 en la comunidad, pero es posible que otros usuarios de BCC y hbmk2 hayan notado algo similar y no lo hayan considerado un problema digno de mención, especialmente porque, como dices, no afecta el resultado final. La aparición de null.map parece más una curiosidad técnica que un error grave.

Si decides investigarlo más a fondo y encuentras la causa exacta (por ejemplo, una opción predeterminada en hbmk2), podrías compartirlo con la comunidad de Harbour para documentarlo. Por ahora, si no te molesta su presencia, puedes ignorarlo sin preocupaciones, ya que no tiene impacto funcional.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278797#p278797 Fri, 04 Apr 2025 12:40:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278797#p278797
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curiosidad ultima version de harbour y BCC 7.70 :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278836#p278836

La respuesta correcta es añadir el flag -map al fichero de proyecto hbp

Code: Select all | Expand

#-inc enable incremental build mode
-n -q0 -static -map
Si no se especifica map, se crea por defecto

De todas formas, con las respuestas siempre se aprende, por ejemplo, es una buena práctica incluir en la llamada hbmk2 -trace

Así podemos comprobar exactamente lo que está haciendo entre bambalinas la super utilidad hbmk2 de harbour

Gracias por la ayuda, curiosidad satisfecha !]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278836#p278836 Sun, 06 Apr 2025 02:24:36 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45594&p=278836#p278836
<![CDATA[FiveWin para Harbour/xHarbour :: GetSecret() :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278843#p278843
https://www.hamor.ro/distr_ext/Doc/xHb/ ... _f.en.html

Code: Select all | Expand

// The example shows a typical scenario for GetSecret().
// The user must enter a password which is not displayed on
// the screen

   PROCEDURE Main
      LOCAL cPassword := Space(20)
      CLS
      SET CONFIRM ON

      cPassWord := ;
        GetSecret( cPassword, 10, 10, .T., "Enter your password: ")

      IF cPassWord <> "xHarbour"
         Alert( "Access denied" )
         QUIT
      ENDIF

      Alert( "Access granted" )
   RETURN
Source: ct\getsecrt.prg
LIB: xhb.lib
DLL: xhbdll.dll

xHarbour Comercial?

C:\XHBCOM\dll

3/09/2023 16:49 2.922.496 xHBDll.dll
1 arquivo(s) 2.922.496 bytes

Gracias.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278843#p278843 Sun, 06 Apr 2025 10:00:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278843#p278843
<![CDATA[FiveWin para Harbour/xHarbour :: Re: GetSecret() :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278844#p278844 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278844#p278844 Sun, 06 Apr 2025 10:21:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278844#p278844 <![CDATA[FiveWin para Harbour/xHarbour :: Re: GetSecret() :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278846#p278846
Antonio Linares wrote: Sun Apr 06, 2025 4:21 pm Entiendo que no quieres que se muestre nada, pero que es lo que verá el usuario, una caja de diálogo ?
No sé la respuesta Maestro. Vi este ejemplo en Internet y me pareció muy interesante. Tal vez Enrico pueda descubrir qué hace esta función en el xHarbour comercial y trasladarla al xHarbour normal.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278846#p278846 Sun, 06 Apr 2025 10:29:35 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278846#p278846
<![CDATA[FiveWin para Harbour/xHarbour :: Re: GetSecret() :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278847#p278847

Code: Select all | Expand

   snh := getsecret( SPACE( 11 ), 5, 5, .T., "Digite a senha:" )
	 
   alert( snh )
Creo que solo funciona en modo consola y tiene fallas, según tengo entendido.

Gracias.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278847#p278847 Sun, 06 Apr 2025 10:41:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278847#p278847
<![CDATA[FiveWin para Harbour/xHarbour :: Re: GetSecret() :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278849#p278849 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278849#p278849 Sun, 06 Apr 2025 10:55:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278849#p278849 <![CDATA[FiveWin para Harbour/xHarbour :: Re: GetSecret() :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278851#p278851
Antonio Linares wrote: Sun Apr 06, 2025 4:55 pm Basicamente lo que se hace es capturar los eventos de teclado pero al menos podriamos mostrar un diálogo que diga "Identifíquese" ó similar aunque no se muestren controles :-)
Lo entendí. Si siguieras la lógica del modo consola, solo necesitarías crear un diálogo completamente transparente. No le veo mucha utilidad a este comando. Fue solo curiosidad, nunca había visto este comando. Gracias, maestro.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278851#p278851 Sun, 06 Apr 2025 11:04:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45608&p=278851#p278851
<![CDATA[FiveWin para Harbour/xHarbour :: emoticons e smiles en un get son posibles? :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278845#p278845
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278845#p278845 Sun, 06 Apr 2025 10:22:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278845#p278845
<![CDATA[FiveWin para Harbour/xHarbour :: Re: emoticons e smiles en un get son posibles? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278850#p278850
Puedes mostrar emojis si usas una fuente que los soporte, como Segoe UI Emoji o Segoe UI Symbol y tu texto está codificado como Unicode, pero no se verán con colores.

Para verlos con colores tendrás que usar un control RichEdit.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278850#p278850 Sun, 06 Apr 2025 10:58:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278850#p278850
<![CDATA[FiveWin para Harbour/xHarbour :: Re: emoticons e smiles en un get son posibles? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278853#p278853
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278853#p278853 Sun, 06 Apr 2025 11:07:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278853#p278853
<![CDATA[FiveWin para Harbour/xHarbour :: Re: emoticons e smiles en un get son posibles? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278854#p278854
Pasos básicos:
Asegúrate de que el control soporte Unicode:
El control RichEdit debe ser de una versión compatible (como RichEdit 3.0 o superior), ya que las versiones antiguas no manejan bien los caracteres Unicode necesarios para los emojis.
En Windows, esto suele implicar usar la clase RICHEDIT50W (en lugar de la antigua RICHEDIT).

Inserta los emojis como texto Unicode:
Los emojis son caracteres Unicode, representados por códigos específicos (por ejemplo, el emoji "😊" es U+1F60A).
Puedes insertarlos directamente como texto en el control, ya sea escribiendo el carácter (si tu teclado lo permite) o usando su código Unicode en el código fuente.

Ejemplo en diferentes lenguajes:
C++ (WinAPI):
cpp
HWND richEdit = CreateWindowEx(0, MSFTEDIT_CLASS, L"",
ES_MULTILINE | WS_VISIBLE | WS_CHILD | WS_BORDER,
0, 0, 200, 100, hwndParent, NULL, hInstance, NULL);
SendMessage(richEdit, EM_SETTEXTMODE, TM_PLAINTEXT | TM_RICHEDIT, 0);
SetWindowText(richEdit, L"¡Hola! 😊👍"); // Emoji como texto Unicode

Aquí, L"😊👍" usa la codificación UTF-16 (wide characters) que Windows soporta nativamente.
Delphi:
delphi
RichEdit1.Text := '¡Hola! 😊👍';
Solo asegúrate de que el proyecto esté configurado para Unicode (lo cual es predeterminado en versiones modernas de Delphi).

C# (Windows Forms):
csharp
richTextBox1.Text = "¡Hola! 😊👍";
En .NET, el control RichTextBox soporta Unicode de forma nativa, así que simplemente asigna el texto con emojis.
Usar códigos Unicode explícitos (si no puedes escribir el emoji directamente):

Si estás generando el texto dinámicamente o no puedes escribir emojis directamente en el código, usa sus valores Unicode. Por ejemplo:
En C++: L"\uD83D\uDE0A" (para "😊").
En C#: "Hola " + char.ConvertFromUtf32(0x1F60A) + " mundo".

Consideraciones adicionales:
Fuente: Asegúrate de que la fuente usada en el RichEdit soporte emojis (como Segoe UI Emoji en Windows). Puedes configurarla con SendMessage(richEdit, WM_SETFONT, ...) en WinAPI o la propiedad Font en entornos como .NET o Delphi.
Codificación: Si copias y pegas emojis desde una fuente externa, verifica que el archivo fuente del programa esté guardado en UTF-8 o UTF-16 para evitar problemas de codificación.
Soporte del sistema operativo: Los emojis se renderizan bien en Windows 10 y 11. En versiones más antiguas (como Windows 7), puede que necesites instalar fuentes adicionales o que no se muestren correctamente.

Ejemplo práctico (C#):
csharp
richTextBox1.Font = new Font("Segoe UI Emoji", 12);
richTextBox1.Text = "¡Probando emojis! 😊🚀🌟";]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278854#p278854 Sun, 06 Apr 2025 11:23:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278854#p278854
<![CDATA[FiveWin para Harbour/xHarbour :: Re: emoticons e smiles en un get son posibles? :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278862#p278862 En los says, msginfo, etc. si es posible, pero en los gets, como bien sabes, todas las aplicaciones para incluirlo en un campo de tipo input ( get en harbour/fw ) usan un boton para que el usuario seleccione el emoji que desea, imagino que será para evitar tener que validar/analizar lo que se ha introducido y buscar las cadenas unicode que dan lugar al emoji
Tengo que hacer alguna prueba y te comento]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278862#p278862 Mon, 07 Apr 2025 06:23:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278862#p278862
<![CDATA[FiveWin para Harbour/xHarbour :: Re: emoticons e smiles en un get son posibles? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278863#p278863
cnavarro wrote: Mon Apr 07, 2025 12:23 pm Estimado Joao
En los says, msginfo, etc. si es posible, pero en los gets, como bien sabes, todas las aplicaciones para incluirlo en un campo de tipo input ( get en harbour/fw ) usan un boton para que el usuario seleccione el emoji que desea, imagino que será para evitar tener que validar/analizar lo que se ha introducido y buscar las cadenas unicode que dan lugar al emoji
Tengo que hacer alguna prueba y te comento
Gracias amados maestro.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278863#p278863 Mon, 07 Apr 2025 07:09:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45609&p=278863#p278863
<![CDATA[FiveWin para Harbour/xHarbour :: ¿Cómo detener los códigos de error de outlook.exe? :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278868#p278868
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278868#p278868 Mon, 07 Apr 2025 10:36:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278868#p278868
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿Cómo detener los códigos de error de outlook.exe? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278869#p278869
Para detener los códigos de error relacionados con Outlook.exe y advertir al usuario sobre qué hacer para resolverlos, puedes seguir un enfoque sistemático basado en las causas comunes de estos errores, como archivos corruptos, complementos problemáticos o configuraciones incorrectas. A continuación, te detallo los pasos que puedes recomendar al usuario de manera clara y práctica:
Iniciar Outlook en modo seguro
Explica al usuario que inicie Outlook en modo seguro para identificar si el problema está relacionado con complementos. Puede hacerlo abriendo el cuadro "Ejecutar" (tecla Windows + R), escribiendo outlook.exe /safe y presionando Enter.
Si Outlook funciona sin errores en modo seguro, sugiere que desactive los complementos uno por uno desde el menú Archivo > Opciones > Complementos, seleccionando "Complementos COM" y haciendo clic en "Ir" para desactivarlos. Luego, reinicia Outlook normalmente para verificar si el problema se resuelve.
Reparar el archivo de datos de Outlook
Indica que los errores pueden deberse a un archivo PST o OST corrupto. Recomienda usar la herramienta ScanPST.exe, que viene incluida con Outlook.
Pasos:
a. Cierra Outlook.
b. Busca ScanPST.exe en la carpeta de instalación de Office (por ejemplo, C:\Program Files\Microsoft Office\root\OfficeXX, donde "XX" es la versión).
c. Abre la herramienta, selecciona el archivo PST/OST (normalmente en C:\Users\NombreUsuario\Documents\Archivos de Outlook), y haz clic en "Iniciar" para escanear y reparar errores.
d. Reinicia Outlook tras la reparación.
Advierte que si el archivo está muy dañado, podría necesitar una herramienta de terceros o recrear el perfil.
Reparar la instalación de Office
Si los pasos anteriores no funcionan, sugiere reparar la instalación de Office desde el Panel de Control:
a. Ve a Panel de Control > Programas y características.
b. Selecciona Microsoft Office, haz clic en "Cambiar" y elige "Reparación rápida" (o "Reparación en línea" si la primera falla).
c. Una vez completado, reinicia el equipo y abre Outlook.
Actualizar Outlook y Windows
Aconseja verificar que tanto Outlook como Windows estén actualizados, ya que algunos errores se corrigen con parches recientes.
En Outlook, ve a Archivo > Cuenta de Office > Opciones de actualización > Actualizar ahora. Para Windows, ve a Configuración > Actualización y seguridad > Windows Update.
Crear un nuevo perfil de Outlook
Si el error persiste, recomienda crear un nuevo perfil:
a. Abre el Panel de Control y selecciona "Correo" (o "Mail").
b. Haz clic en "Mostrar perfiles", luego en "Agregar" para crear uno nuevo.
c. Configura la cuenta de correo y prueba usarlo como predeterminado.
Esto evita problemas con perfiles corruptos sin afectar los datos almacenados en el servidor.
Advertencia al usuario
Incluye un mensaje claro como:
"Si Outlook muestra un código de error, anótalo (por ejemplo, 0x8004010F o 'Outlook.exe ha detectado un problema'). Prueba los pasos anteriores en orden. Si el problema sigue, revisa el mensaje exacto y busca ayuda específica en la comunidad de Microsoft o con soporte técnico, ya que podría deberse a un conflicto de software o un archivo dañado."
Estos pasos cubren las soluciones más comunes para errores de Outlook.exe, como bloqueos, mensajes de "no responde" o problemas de inicio, y empoderan al usuario para resolverlos de forma autónoma. Si el error es específico (por ejemplo, un código concreto), pídele al usuario que lo comparta para dar una solución más detallada.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278869#p278869 Mon, 07 Apr 2025 11:02:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278869#p278869
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ¿Cómo detener los códigos de error de outlook.exe? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278870#p278870

Code: Select all | Expand

   //  0 Indica que a biblioteca foi inicializada corretamente.
   IF lRet = 0 

      IF FILE( "PRONTO.wav" )

         SndPlaySound( "PRONTO.wav", 0 )

      ENDIF

      // SE FOR O TESTADOR DO CTI, NAO ENTRA AQUI. NAO PODE GRAVAR, POIS
      // NFECOD2 NAO EXISTE AINDA, E SOMENTE UM TESTE DO ENVIADOR JUMA!
      IF DeOndeVem != "TESTADOR"

         // GRAVACAO DOS ENVIOS AQUI EM: EMAILENV.DBF - TUDO OK, GRAVA!

         SELECT( DBEMAILENV ) // Gravar o Email/Xml enviado 19/03/2025 Joao

         APPEND BLANK

         RLOCK()

         REPLACE EMAILENV->CODC      WITH NFECOD2
         REPLACE EMAILENV->CONTATO   WITH cSubject+" - PARA: "+ ALLTRIM( cPara )
         REPLACE EMAILENV->DATAENVIO WITH DATE()
         REPLACE EMAILENV->HORAENVIO WITH TIME()

         COMMIT  // vai que...
         UNLOCK

      ENDIF

      MsgWait( "MENSAGEM ENVIADA COM SUCESSO!", "Aguarde Um Momento Por Favor", 3.5 )

   // -5 Indica que não foi possível localizar o arquivo INI informado
   ELSEIF lRet = -5

      MsgInfo( "Não foi possível localizar o arquivo INI.", "Error" )

   // -6 Indica que não foi possível encontrar o diretório do arquivo INI.
   ELSEIF lRet = -6

      MsgInfo( "Não foi possível localizar o diretório do arquivo INI.", "Error" )

   // -10 Indica que houve falhas na execução do método.
   ELSEIF lRet = -10

      MsgInfo( "Houve falha na execução do Envio do Email.", "Error" )

   ELSE

      IF DeOndeVem != "TESTADOR"

         SELECT( DBEMAILENV ) // Gravar o Email/Xml enviado

         APPEND BLANK

         RLOCK()

         REPLACE EMAILENV->CODC WITH NFECOD2
         REPLACE EMAILENV->CONTATO WITH cSubject+ ;
             OemToAnsi( " - NÇO ENVIADO" )       + ;
                        " - PARA: "              + ;
                        ALLTRIM( cPara )         + " - FALHA "  // Destinatario
         REPLACE EMAILENV->DATAENVIO WITH DATE()
         REPLACE EMAILENV->HORAENVIO WITH TIME()

         COMMIT  // vai que...
         UNLOCK

      ENDIF

      MsgStop( "Falha ao Tentar Enviar E-mail Para o Cliente.", ;
               "Falha ao Tentar Enviar E-mail Para o Cliente." )

   ENDIF
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278870#p278870 Mon, 07 Apr 2025 11:42:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45611&p=278870#p278870
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Trabajar Wrapper Java desde C :: Reply by albeiroval]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278865#p278865 https://www.jaspersoft.com/products/jas ... -community
https://community.jaspersoft.com/]]>
no_email@example.com (albeiroval) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278865#p278865 Mon, 07 Apr 2025 07:28:02 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278865#p278865
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Trabajar Wrapper Java desde C :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278867#p278867 no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278867#p278867 Mon, 07 Apr 2025 09:56:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278867#p278867 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Trabajar Wrapper Java desde C :: Reply by admsoporte]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278894#p278894 no_email@example.com (admsoporte) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278894#p278894 Tue, 08 Apr 2025 11:17:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45467&p=278894#p278894 <![CDATA[FiveWin para Harbour/xHarbour :: Abrir db-Combo Automatico :: Author VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278829#p278829 Saludando todos

Estoy ocupando un DbCombo y necesito hacer algo que me pidieron
Que en la lectura del combo, al llevar 3 letras/numero tecleados
el combo se abra automáticamente

Se podrá??

Saludos a todos]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278829#p278829 Sat, 05 Apr 2025 13:03:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278829#p278829
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Abrir db-Combo Automatico :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278833#p278833
oDbCombo:bKeyChar := { || If( Len( oDbCombo:cSearchKey ) == 3, oDbCombo:Open(),) }]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278833#p278833 Sun, 06 Apr 2025 00:12:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278833#p278833
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Abrir db-Combo Automatico :: Reply by VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278895#p278895
Asi lo manejo y puse lo que me dijiste, pero no funciona

Code: Select all | Expand

REDEFINE DBCOMBO  oGet[02] Var oDbf:NOMBRE ID 102 OF oDlg1 ALIAS "MARCAS" ItemField "DESCRIPCION" ListField "DESCRIPCION" UPDATE 
	oGet[02]:oFont := aLetras[03]
	oGet[02]:bKeyChar := { || If( Len( oGet[02]:cSearchKey ) == 3, oGet[02]:Open(),) }
Saludos.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278895#p278895 Tue, 08 Apr 2025 11:20:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45605&p=278895#p278895
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by nanoespinoza]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278549#p278549
cnavarro wrote: Wed Feb 15, 2023 5:40 pm
ruben Dario wrote:Saludos al forum,
Lo descargue el me genera un error que no esta el archivo .fvl . este archivo lo crea el sistema o falta, xq no lo crea
La instalación es sencilla:
1.- https://bitbucket.org/fivetech/fivewin- ... ivedit.zip
2.- Descomprime en esa carpeta ( por si se han actualizado las DLLs )
https://bitbucket.org/fivetech/fivewin- ... E_DLLS.zip
3.- Descargar la ultima actualización del ejecutable
https://bitbucket.org/fivetech/fivewin- ... ivedit.exe

y copiarlo en la carpeta donde tuvieras ya instalado fivedit
Estimado Cristóbal.

Estoy con un problema para instalar Fivedit en una nueva portátil Dell, me sale un error luego de copiar los archivos previos ("La ejecución de código no puede continuar porque no se encontró MSVCR100.dll. Este problema se puede solucionar reinstalando el programa").

Intento descargar los archivos de instalación, desde los enlaces previos y aparecen ya deshabilitados, por favor, indicarme de donde los puedo descargar.

A su vez, también tengo un problema con Pelles C V12 en la nueva portátil; descargue el programa desde la web de Pelle Orinius, pero al momento de grabar, sale un error de que el archivo no existe y al revisar el archivo que estaba editado, resultado que se ha borrado, lo intenté varias veces reiniciando la máquina, pero se repite el mismo borrado del archivo .RES en edición; no sé si será algún virus o que, pero no le hallo solución.

Saludos cordiales

Fernando Espinoza A.]]>
no_email@example.com (nanoespinoza) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278549#p278549 Mon, 24 Mar 2025 20:47:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278549#p278549
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278550#p278550
> no se encontró MSVCR100.dll

https://www.microsoft.com/en-us/downloa ... x?id=26999]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278550#p278550 Mon, 24 Mar 2025 22:00:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278550#p278550
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by nanoespinoza]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278551#p278551
Perfecto, resuelto el problema con Fivedit al instalar el archivo sugerido; ahora, podrían darme una mano con el tema del Pelles C y ese raro comportamiento.

Saludos

Fernando Espinoza A.]]>
no_email@example.com (nanoespinoza) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278551#p278551 Mon, 24 Mar 2025 22:32:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278551#p278551
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278552#p278552
Posiblemente se trate de un falso positivo.

Desactiva el antivirus y mira si con eso se corrige el problema. Tan pronto como el fichero de recursos se vaya modificando lo más probable es que desaparezca el error y puedas reactivar el antivirus.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278552#p278552 Tue, 25 Mar 2025 00:56:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278552#p278552
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278590#p278590 Los enlaces a bitbucket.org están rotos.

cnavarro wrote: Sun Feb 12, 2023 3:37 am Hola Leandro
Actualiza a la última versión de FivEdit
https://bitbucket.org/fivetech/fivewin- ... ivedit.exe ( 31/01/2023 )
Prueba a descomprimir este fichero en la carpeta de instalación de FivEdit y me dices si se solucionó el problema
https://bitbucket.org/fivetech/fivewin- ... E_DLLS.zip
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278590#p278590 Wed, 26 Mar 2025 13:46:04 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278590#p278590
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278591#p278591 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278591#p278591 Wed, 26 Mar 2025 14:46:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278591#p278591 <![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278741#p278741
cnavarro wrote: Wed Mar 26, 2025 8:46 pm Si, ya me he dado cuenta, estoy con ello, lo anunciaré en breve
Excelente!!]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278741#p278741 Tue, 01 Apr 2025 08:56:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278741#p278741
<![CDATA[FiveWin para Harbour/xHarbour :: Re: fivedit en equipo nuevo - SOLUCIONADO :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278903#p278903 viewtopic.php?t=45614]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278903#p278903 Tue, 08 Apr 2025 16:32:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=42781&p=278903#p278903 <![CDATA[FiveWin para Harbour/xHarbour :: Donde descargar FiveEdit completo y ultima version :: Author admsoporte]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278896#p278896
las direcciones que he encontrado en el foro no funcionan

Saludos]]>
no_email@example.com (admsoporte) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278896#p278896 Tue, 08 Apr 2025 11:46:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278896#p278896
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Donde descargar FiveEdit completo y ultima version :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278902#p278902 viewtopic.php?t=45614]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278902#p278902 Tue, 08 Apr 2025 16:31:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278902#p278902 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Donde descargar FiveEdit completo y ultima version SOLUCIONADO :: Reply by admsoporte]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278906#p278906
Saludos desde Mexico :D]]>
no_email@example.com (admsoporte) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278906#p278906 Tue, 08 Apr 2025 17:49:37 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45613&p=278906#p278906
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278855#p278855 El que usa HDBC no se arrepiente y me da alas para seguir con la labor
Animaros!!!]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278855#p278855 Sun, 06 Apr 2025 13:31:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278855#p278855
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by ramirezosvaldo2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278871#p278871
Buen dia,

Hey te acuerdas del Curso, dejamos pendientes por ver y como siempre
es un placer ver todo lo que has echo.

Saludos
Osvaldo Ramirez]]>
no_email@example.com (ramirezosvaldo2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278871#p278871 Mon, 07 Apr 2025 20:19:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278871#p278871
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278893#p278893
Hace un par de años que utilizo THDO con MariaDB y SQLite en algún desarrollo y he tenido 0 problemas, va como un reloj suizo + un ferrari

La unica pena -para mi- es no haber probado los sistemas de Manu mucho antes

Sus productos son garantia de calidad, Enhorabuena !]]>
no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278893#p278893 Tue, 08 Apr 2025 10:46:26 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278893#p278893
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by lubin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278898#p278898
Yo soy Usuario del Eagle1 con MYSQL que adquiri hace muchos años y luego me lo renovaste y actualizaste,, y aun sigo trabajando al 100% lo que me tienta a ver esta nueva de alternativa.

Mis consulta es :

1.Que tan dificil seria una migracion de Eagle1 a esta version HDBC o que cosas deberia de tener en cuenta.

2. Que diferencias hay teniendo presente que utilizo basicamente solo MySQL

3. Alguna referencia que es HDBC o HBO ,, son solo siglas del producto o tienen un significado especial

Muchas gracias

Saludos
Lubin Azahuanche]]>
no_email@example.com (lubin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278898#p278898 Tue, 08 Apr 2025 13:04:58 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278898#p278898
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by lubin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278899#p278899
Yo soy Usuario del Eagle1 con MYSQL que adquiri hace muchos años y luego me lo renovaste y actualizaste,, y aun sigo trabajando al 100% lo que me tienta a ver esta nueva de alternativa.

Mis consulta es :

1.Que tan dificil seria una migracion de Eagle1 a esta version HDBC o que cosas deberia de tener en cuenta.

2. Que diferencias hay teniendo presente que utilizo basicamente solo MySQL

3. Alguna referencia que es HDBC o HBO ,, son solo siglas del producto o tienen un significado especial

Muchas gracias

Saludos
Lubin Azahuanche]]>
no_email@example.com (lubin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278899#p278899 Tue, 08 Apr 2025 13:05:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278899#p278899
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278905#p278905 Es una lib perfecta y muy simples de usar-la. la qualidade del projecto de Manu es muy adimiravel.

Lo tieno ahora iniciado lo uso de HDBC.

Sobre Lubin,
La diferencia de HDO y HDBC.
HDO tiene sido criado con language C y Harbour. super pontente y tiene suporte a MySQL/MariaDB/ODBC/SQLite/SQLCipher y lo HDORDD.

HDBC es una nueva herramienta com base en todos los conhecimento de Manu en Eagle1 + HDO + RDDPRO que tiene suporte a
SQLite/SQLCipher/PostgreSQL y escrita ahora C++ moderna!

La idea de Manu es portar todos los dados pero para eso necessitamos de persona interessada.
Se no hay persona que apoie lo projecto no vale la pena seguir con los demais driver.

Pero se tiver-mos mais usuarios la idea es aggregar SQL Server, Firebird, ODBC, MySQL/MariadB todo en la HDBC.

Manu es una persona y profissinal admiravel, su dedicacion ao projecto es fantastica.
seguramiente se tiver outros banco de dados necessario, Manu se proponhe a hacer-lo tambien.

No tieno usado Eagle1 no lo sei cual dificil seria una migracion, pero aseguro que HDO es muy simples e rapido!]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278905#p278905 Tue, 08 Apr 2025 17:06:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278905#p278905
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by csincuir]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278913#p278913 Al igual que Lubin, yo he utilizado Eagle1 con MySQL desde sus primeras versiones y algunas veces Condor1 para trabajar con MSSql.
Por todo lo desarrollado con Eagle1 no hice la migración a HDO, y ahora con HDBC, aun no hay soporte para MySQL, que es lo que uso casi en un 100% en mis desarrollos.

Entonces, como pregunta de Lubin en su primer punto "Que tan difícil seria una migración de Eagle1 a esta versión HDBC..."?

Saludos cordiales.

Carlos]]>
no_email@example.com (csincuir) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278913#p278913 Wed, 09 Apr 2025 06:07:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278913#p278913
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by ramirezosvaldo2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278915#p278915
Yo tambien soy seguidor de Manu,

https://forum.modharbour.app/viewtopic.php?f=23&t=140

Y que bueno que volvio, esperemos que podamos retomar lo pendiente del curso.

Saludos
Osvaldo Ramirez]]>
no_email@example.com (ramirezosvaldo2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278915#p278915 Wed, 09 Apr 2025 08:27:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278915#p278915
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278916#p278916
Muchísimas gracias por sus amables palabras, ¡me reconfortan enormemente!

Para poner en contexto, Eagle1 es una librería que contiene una serie de clases especializadas en el acceso a MySQL, desarrollada en PRG utilizando wrappers en C.

HDO representa un avance significativo con respecto a Eagle1. Está desarrollada íntegramente en C estándar, incorporando un sistema de herencia propio basado en estructuras C. Además, incluye clases de utilidad adicionales implementadas en PRG que heredan de HDO. A diferencia de una librería especializada en una única base de datos, HDO permite trabajar con diversas bases de datos utilizando el mismo código fuente. Pero... ¿qué es HDBC?

HDBC es mi nueva creación, que consolida todos los años de estudio y la experiencia adquirida en el desarrollo de mis clases anteriores.

A continuación, enumero sus principales características:

Está desarrollada desde cero en C++, aplicando el paradigma de Programación Orientada a Objetos (POO).
Las clases para Harbour también están implementadas en C, utilizando su API correspondiente. Por lo tanto, se puede afirmar que está desarrollada en C/C++ al 100%.
Esta base C/C++ le confiere robustez, seguridad y velocidad.
Utiliza sentencias preparadas en el servidor, lo que implica las siguientes ventajas:
Rendimiento optimizado: La consulta SQL se analiza, compila y optimiza una única vez en el servidor de la base de datos, incluso para ejecuciones múltiples con diferentes parámetros. Esto reduce la sobrecarga de procesamiento en cada ejecución posterior, resultando en una mayor velocidad para consultas repetitivas.
Seguridad reforzada: Al separar la estructura de la consulta de los datos, las sentencias preparadas mitigan eficazmente el riesgo de ataques de inyección SQL. Los valores de los parámetros se envían al servidor de forma independiente y se tratan como datos, no como código ejecutable. Esto impide la inserción de código SQL malicioso a través de las entradas.
Tráfico de red reducido: En ejecuciones repetidas de la misma consulta, solo es necesario transmitir los parámetros, en lugar de la consulta SQL completa. Esto disminuye la cantidad de datos transferidos entre la aplicación y el servidor de la base de datos, mejorando la eficiencia de la red.
Código simplificado: El uso de marcadores de posición para los parámetros en las sentencias preparadas hace que el código sea más limpio y legible. Además, la gestión del escape y la validación de datos se delega al controlador de la base de datos, simplificando el desarrollo de la aplicación.
Reutilización de planes de ejecución: El servidor de la base de datos puede almacenar en caché los planes de ejecución de las sentencias preparadas. Esto permite que las ejecuciones posteriores de la misma sentencia sean aún más rápidas, al reutilizar el plan optimizado previamente. En resumen, las sentencias preparadas son cruciales para desarrollar aplicaciones de bases de datos seguras y de alto rendimiento, optimizando la eficiencia, la seguridad y la mantenibilidad.
Aglutina todos los años de estudio al respecto y la experiencia que he adquirido.
Su optimización es tal que podría servir como base para la creación de clases en PRG.
En consecuencia, aunque HDBC no es directamente compatible con Eagle1 o HDO, se podrían desarrollar clases para facilitar dicha compatibilidad.

Espero que sea de vuestro interés!!!

Saludos...]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278916#p278916 Wed, 09 Apr 2025 09:54:08 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278916#p278916
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by lubin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278919#p278919
Un saludo maestro, buena la explicación, y sin duda interesante proyecto HDBC por las características que mencionas mas tu experiencia en ello , y pienso que la implementación en las Db de Mysql seria muy atractivo para muchos de nosotros.

Trato de entender que también existe HDO también de tu autoria ? ... y tiene soporte actualizado para MySql y FW , la pregunta seria:

Si en mi caso solo voy a usar MYSQL seria suficiente tener el HDO? o es acaso que el HDBC me aportaría mayor operatividad y seguridad en MySQL ( independiente que tenga soporte para otros motores de DB ).

un abrazo
Lubin]]>
no_email@example.com (lubin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278919#p278919 Wed, 09 Apr 2025 12:14:12 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278919#p278919
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by russimicro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278921#p278921
Uso eagle1 con xharbour... y mysql... que tan pronto se tendría versión para xharbour y mysql / mariadb

Gracias
JONSSON RUSSI]]>
no_email@example.com (russimicro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278921#p278921 Wed, 09 Apr 2025 17:56:01 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278921#p278921
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278930#p278930 ¡Espero que estés muy bien! <
Quería comentarte que HDO funciona perfectamente con MySQL, pero HDBC todavía no. <
Mi intención es desarrollar un driver para HDBC, aunque esto dependerá del interés de los compañeros.
En su momento empecé con PostgreSQL debido al interés que había, pero al final creo que ese interés no fue suficiente. Por otro lado, HDBC es un intento de integrar C++ orientado a objetos con el API de Harbour, y he comprobado que es posible. Además, esta integración facilita considerablemente las cosas, mejora el rendimiento y aporta una mayor robustez a los programas desarrollados con HDBC.<

¡Quedo atento a cualquier comentario o sugerencia!]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278930#p278930 Thu, 10 Apr 2025 11:31:41 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278930#p278930
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Presentamos HDBC – La Mejor Conexión a Bases de Datos para Harbour :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278932#p278932
russimicro wrote: Wed Apr 09, 2025 11:56 pm Buena noche..

Uso eagle1 con xharbour... y mysql... que tan pronto se tendría versión para xharbour y mysql / mariadb

Gracias
JONSSON RUSSI
Hola Jonsson
De momento sólo funciona con Harbour... la portación también a xHarbour solo dependerá del interés!!!

Saludos]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278932#p278932 Thu, 10 Apr 2025 11:33:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45492&p=278932#p278932
<![CDATA[FiveWin para Harbour/xHarbour :: ButtonBmp() Bordes? :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278929#p278929
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278929#p278929 Thu, 10 Apr 2025 11:27:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278929#p278929
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ButtonBmp() Bordes? :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278934#p278934 Saludos]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278934#p278934 Thu, 10 Apr 2025 12:06:52 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278934#p278934 <![CDATA[FiveWin para Harbour/xHarbour :: Re: ButtonBmp() Bordes? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278936#p278936
https://imgur.com/7K9B4Im

Image

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278936#p278936 Thu, 10 Apr 2025 12:32:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45617&p=278936#p278936
<![CDATA[FiveWin para Harbour/xHarbour :: ENDPAGE( 0 ) :: Author karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278918#p278918

Code: Select all | Expand

   Called from:  => ENDPAGE( 0 )
   Called from: PRINTER.prg => PAGEEND( 0 )
   Called from: LIMPJARD.prg => IMPRIMIR_ESCOPOS_LIMP( 4391 )
   Called from: LIMPJARD.prg => PEGA_DADOS_LIMP_IMPRESSAO( 2851 )
   Called from: LIMPJARD.prg => (b)IMP_TIPO_IMPRESSAO_LIMPEZA( 1227 )
   Called from: WINORCAM.prg => MAIN( 1281 )
Gracias, tks.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278918#p278918 Wed, 09 Apr 2025 10:11:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278918#p278918
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278920#p278920 no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278920#p278920 Wed, 09 Apr 2025 16:20:10 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278920#p278920 <![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278922#p278922 Comprueba que los PAGE ... ENDPAGE están sincronizados, puede ser que tengas algún ENDPAGE que sobre]]> no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278922#p278922 Wed, 09 Apr 2025 18:14:34 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278922#p278922 <![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278926#p278926

Code: Select all | Expand

// IMPRESSAO DOS PRODUTOS DA LIMPEZA DE JARDIM
FUNCTION IMPRIMIR_ESCOPOS_LIMP( DeOndePartiu, oDlgBtn )

   LOCAL oPrn, nMargin, nWidth, nColWidth, nRow, nCol, oImage
   LOCAL XDATALISTA, cAlias, cMemoria
   LOCAL oFont, oFontLogo, oFontDivi, oFontList, oFontCurs, oPen1, oPen2, ;
      oPen3, oFontSubl, ResLinha, ResColuna, cProposta, nLinha, nColuna, ;
      oFontBold, nTotalParc := 0.00, nTotalGeral := 0.00, nTotalProdu
   LOCAL nPulaLinha, oFontMin, oFontSub2, nPagina, oFontRua, nItem
   LOCAL cSublin, cImpSub, cFile // := "C:\ORCAMPDF\CHAMADO.PDF"

   PRIVATE WE1, WE2, WE3, LARGEXTEN2
   PUBLIC nValorVenda

   STOR SPAC( 70 ) TO WE1, WE2, WE3

   cFile := "C:\ORCAMPDF\" + "ORCAM" + ALLTRIM( nProposta ) + ".PDF"

   XDATALISTA := "São Paulo" + ", " + LTRIM( STR( DAY( DATE() ) ) )  + ;
                 " de "             + OemToAnsi( CMONTH( DATE() ) )  + ;
                 " de "             + LTRIM( STR( YEAR( DATE() ) ) ) + "."

   HB_GCALL( .F. ) // PARA LIMPAR A MEMORIA

   LCHDIR( cDirPleno )
   SET DEFAULT TO

   aPrn := GetPrinters()  // 02/08/2017 Teste para ver se avisa erro.

   IF Empty( aPrn ) // Empty( oPrn:hDC )
      MsgStop( "Nenhuma Impressora Encontrada", "Nenhuma Impressora Encontrada" )
      RETURN NIL
   ENDIF

   PRINTER oPrn PREVIEW MODAL // PARA TESTAR A IMPRESSORA ANTES DE IMPRIMIR

   IF EMPTY( oPrn:hDC ) // MODIFICADO EM: 05/05/2015 - Quebrou na Gilmaria.
      MsgInfo( "ALGUMA COISA OCORREU DE ERRADO COM A IMPRESSORA.", "LIGUE A IMPRESSORA." )
      oPrn:End()
      RETURN( .F. )
   ENDIF

   oPrn:End()

   IF .NOT. NETERR()

      SELECT( DBRECOMPOS )

   ELSE

      MsgInfo( "ERRO DE REDE. Verifique!", "Confirma " )

      LIBERA_TUDO()

      RETURN NIL

   ENDIF

   cProposta := nProposta  // PARA O INDICE TEMPORARIO TEM QUE SER ASSIM.

   INDEX ON PROPOCOD TAG 04 TO ORCATEMP FOR ( .NOT. EOF() ) .AND. ;
      ( DBRECOMPOS )->PROPOCOD >= cProposta                 .AND. ;
      ( DBRECOMPOS )->PROPOCOD <= cProposta MEMORY // TEMPORARY

   GO TOP

   IF EOF()

      MsgStop( OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ), ;
               OemToAnsi( "Nenhuma Proposta Localizada Para ImpressÆo" ) )

      RETURN NIL

   ENDIF

   cAlias := ALIAS()

   oImage := ".\LOGO.jpg"  // tem que estar na pasta do plenoind

   IF DeOndePartiu = "DIRETONAIMP"         // DIRETO NA IMPRESSORA

      PRINT oPrn NAME "LIMPEZA_JARDIM"     // DIRETO NA IMP.

   ELSEIF DeOndePartiu = "COMPREVIEWFIVE"  // COM PREVIEW(Visualizacao)

      PRINT oPrn NAME "LIMPEZA_JARDIM" PREVIEW MODAL

   ELSEIF DeOndePartiu = "COMPREVIEWPDF"   // GERAR O ARQUIVO PDF.

      PRINT oPrn PREVIEW

   ENDIF

   DEFINE FONT oFontRua  NAME "Courier New" SIZE 0, - 10                OF oPrn
   DEFINE FONT oFontMin  NAME "Courier New" SIZE 0, - 10 BOLD           OF oPrn
   DEFINE FONT oFont     NAME "Courier New" SIZE 0, - 12                OF oPrn
   DEFINE FONT oFontBold NAME "Courier New" SIZE 0, - 12 BOLD           OF oPrn
   DEFINE FONT oFontSubl NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn
   DEFINE FONT oFontSub2 NAME "Courier New" SIZE 0, - 12 BOLD UnderLine OF oPrn

   //-> Caneta do Preview
   DEFINE PEN oPen1 WIDTH 4 COLOR CLR_BROWN OF oPrn
   DEFINE PEN oPen2 WIDTH 2 COLOR CLR_BROWN OF oPrn
   DEFINE PEN oPen3 WIDTH 5 COLOR CLR_BLACK OF oPrn
 
   oPrn:SetPage( 9 )   //-> A4 //9
   oPrn:SetPortrait()  //-> Vertical(Retrato)

   //- Como Imprimir em Centimetros sem errar e em qualquer Impressora
   ResLinha  := oPrn:nLogPixely()/2.54
   ResColuna := oPrn:nLogPixelx()/2.54

   nMargin   := Int( 0.1 * oPrn:nHorzRes() )
   nWidth    := 8 * nMargin
   nColWidth := Int( ( nWidth - nMargin ) / 2 )
   nPagina   := 1

   PAGE

   nRow      :=   1.50  // Linha
   nCol      := 650.00  // Coluna do Logo.jpg

   @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

   nLinha  := 1.00
   nColuna := 18.00

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                        ;
      OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, ,    ;
      CLR_BLACK, , PAD_CENTER )

   nLinha  := 3.00  // era 2.50

   IF LEN( ALLTRIM( nProposta ) ) = 1
      nColuna := 4.35
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 2
      nColuna := 4.45
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 3
      nColuna := 4.55
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 4 // OK
      nColuna := 4.65
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 5 // OK
      nColuna := 4.75
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 6 // OK
      nColuna := 4.85   // 5.00 -.15
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 7 // OK
      nColuna := 4.95
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 8 // OK
      nColuna := 5.05
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 9 // OK
      nColuna := 5.15
   ELSEIF LEN( ALLTRIM( nProposta ) ) = 10 // OK
      nColuna := 5.25
   ELSE
      nColuna := 5.35
   ENDIF

   oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                    ;
      "Orçamento Nº.: " + ALLTRIM( nProposta ), oFont, ,                 ;
      CLR_BLACK, , PAD_CENTER )

   oPrn:cmSay( nLinha, 19.00, "" + XDATALISTA, oFontRua, , CLR_BLACK, , PAD_RIGHT )

   nLinha  := nLinha += 0.80

   IF LEN( ALLTRIM( STR( nClienCod ) ) ) = 1
      nColuna := 7.48    // 7.50
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 2
      nColuna := 7.58   // 7.60
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 3
      nColuna := 7.68  // 7.70
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 4 // OK
      nColuna := 7.78   // 7.80
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 5
      nColuna := 7.83   // 7.85
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 6
      nColuna := 7.93  // 7.95
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 7
      nColuna := 8.03  // 8.05
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 8
      nColuna := 8.13  // 8.15
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 9
      nColuna := 8.23  // 8.25
   ELSEIF LEN( ALLTRIM( STR( nClienCod ) ) ) = 10
      nColuna := 8.33  // 8.35
   ENDIF

   oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                    ;
      + "CÓD.: " + ALLTRIM( STR( nClienCod ) ) + " - " + ClienPropo,     ;
      oFontRua, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna :=  6.40 // 6.55

   oPrn:Say( nLinha * ResLinha,  nColuna * ResColuna,                    ;
      + EnderPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna :=  5.15  // 5.30

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
      "BAIRRO: " + BairrPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )

   nColuna := nColuna += 6.50  // 5.05

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
      "CIDADE: " + CidadPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )

   nColuna := nColuna +=   4.50

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
      "UF: " + UFdaPropo, oFontRua, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.60
   nColuna :=  2.85   // 2.95

   oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                    ;
      "Att.: ", oFontRua, , CLR_BLACK, , PAD_CENTER )

   nColuna := 7.10

   oPrn:Say(  nLinha * ResLinha, nColuna * ResColuna,                    ;
      + cContatoCli, oFontRua, , CLR_BLACK, , PAD_CENTER )

   cOrcamento  := "REF.: " // + cTPSerNome  // NOME DO SERVICO

   nLinha := nLinha += 1.00
   nColuna :=  2.95 // "REF.:"   // 3.10

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
      + cOrcamento, oFontBold, , CLR_BLACK, , PAD_CENTER )

   nColuna :=  7.70  // 7.70

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
      + cTPSerNome, oFontBold, , CLR_BLACK, , PAD_CENTER )

   cSublin := "REF.: " + ALLTRIM( cTPSerNome ) // TIRAR BRANCOS P/ENCAIXAR
   cImpSub := LEN( cSublin ) + 1.2              // PARA SUBLINHADO.

   nLinha  := nLinha += 0.05 // Tiro os Brancos e Encaixo embaixo o SUBLINHADO
   nColuna := 2.20  // - 2.35 -.15

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
      REPLICATE( "_", cImpSub ), oFontBold , , CLR_BLACK, , PAD_LEFT )

   cConforme1 := "Conforme solicitação segue proposta abaixo:                                            "

   nLinha  := nLinha += 0.80
   nColuna := 13.20  // -.15

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
      + cConforme1, oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.80
   nColuna :=  5.35

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
      + "01. ESCOPO DOS TRABALHOS:", oFontSub2, , CLR_BLACK, , PAD_CENTER )

   // PODAS AQUI
   nLinha  := nLinha += 0.60
   nColuna := 10.05  // 10.15 -.10

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
      + cPodas1, oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna := 10.05

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
      + cPodas2, oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna := 10.05

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
      + cPodas3, oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna := 10.05

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
      + cPodas4, oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.50
   nColuna := 10.05

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
      + cPodas5, oFont, , CLR_BLACK, , PAD_CENTER )

   IF .NOT. EMPTY( cPodas6 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas6, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas7 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas7, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas8 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas8, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas9 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas9, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas10 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas10, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas11 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas11, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas12 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas12, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas13 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas13, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas14 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas14, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas15 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas15, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas16 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas16, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas17 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas17, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas18 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas18, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas19 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas19, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas20 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas20, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas21 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas21, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas22 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas22, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas23 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas23, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas24 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas24, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas25 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas25, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas26 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas26, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas27 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas27, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas28 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas28, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas29 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas29, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas30 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas30, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cPodas31 )

      nLinha  := nLinha += 0.50
      nColuna := 10.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
         + cPodas31, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF nLinha >= 23.00 // PARA AS OBSERVACOES

      nLinha  := 27.00
      nColuna := 10.50

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
         oFontMin, , CLR_GREEN, , PAD_CENTER )

      ENDPAGE

      PAGE  // NOVA PAGINA

      // oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
      @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

      ++nPagina

      nLinha  := 1.00
      nColuna := 18.00 // 17.50

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                        ;
         OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, ,    ;
         CLR_BLACK, , PAD_CENTER )

      nLinha  := 3.00  // 23 Linhas

   ELSE

      nLinha := nLinha += 0.70 // MUDEI EM: 23/09/2021 - Joao.

   ENDIF

   nTotalProdu := 0.00

   GO TOP

   WHILE( .NOT. EOF() )

      SYSREFRESH()

      nTotalProdu := nTotalProdu + ( cAlias )->VRVENDA *  ;
                                   ( cAlias )->PRODUQTDE

      SKIP

   ENDDO

   IF( nTotalProdu ) > 0.00
      lLigaProduto := .T.
   ENDIF

   GO TOP

   IF lLigaProduto // := .F.   // STATIC NO INICIO DO MODULO

      IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.

         nColuna :=  2.10  // 3.20

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "C¢digo:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  5.05 // 5.84

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Produto:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 11.90

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 13.20  // 13.10

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Qtd:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 15.30

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Valor Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 18.70  // 18.30

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Total:" ), oFont,, CLR_BLACK,, PAD_CENTER )

      ELSE // COURIR NEW 10 - 07/10/2021 - Joao

         nColuna :=  3.25

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "C¢digo:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  5.84 // 5.84

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Produto:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 11.75

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 13.20

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Qtd:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 15.30

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Valor Un:" ), oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna := 18.70

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + OemToAnsi( "Total:" ), oFont,, CLR_BLACK,, PAD_CENTER )

      ENDIF

      nLinha  := nLinha += 0.60  // LINHA DOS PRODUTOS

   ENDIF

   GO TOP

   WHILE( .NOT. EOF() )

      SYSREFRESH()

      IF ( cAlias )->PRODUNOME = SPACE( 30 )  // NAO MOSTRA O PRODUTO

         SKIP

         LOOP

      ENDIF

      IF lImpFonte12 // := .T. // COURIER NEW 12

         nColuna :=   2.50 // 3.35

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
                   + ( cAlias )->PRODUCOD, oFont,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  7.80 // 8.00 - Estava oFontRua

         // ESCOPO DOS TRABALHOS AQUI. PRODUTOS DA LIMPEZA
         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ( cAlias )->PRODUNOME, oFont, , CLR_BLACK, , PAD_CENTER )

         nColuna :=  13.00  // 12.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
             + ( cAlias )->PRODUUNID, oFont, , CLR_BLACK, , PAD_CENTER )

         nColuna :=  13.70

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->PRODUQTDE, "@ 99999" ) ),             ;
            oFont,, CLR_BLACK,, PAD_RIGHT  )

         nColuna := 16.40  // 16.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->VRVENDA, "@E 99,999.99" ) ),          ;
            oFont,, CLR_BLACK,, PAD_RIGHT  )

         nColuna := 19.50   // 19.05

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->VRTOTAL, "@E 9,999,999.99" ) ),       ;
            oFont,, CLR_BLACK,, PAD_RIGHT  )

      ELSE // COURIER NEW 10

         nColuna :=   3.40 // 3.35

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
                   + ( cAlias )->PRODUCOD, oFontRua,, CLR_BLACK,, PAD_CENTER )

         nColuna :=  8.00

         // ESCOPO DOS TRABALHOS AQUI. PRODUTOS DA LIMPEZA
         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ( cAlias )->PRODUNOME, oFontRua, , CLR_BLACK, , PAD_CENTER )

         nColuna :=  12.50  // 12.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
             + ( cAlias )->PRODUUNID, oFontRua, , CLR_BLACK, , PAD_CENTER )

         nColuna :=  13.70

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->PRODUQTDE, "@ 99999" ) ),             ;
            oFontRua,, CLR_BLACK,, PAD_RIGHT  )

         nColuna := 16.30

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->VRVENDA, "@E 99,999.99" ) ),          ;
            oFontRua,, CLR_BLACK,, PAD_RIGHT  )

         nColuna := 19.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
            + ALLTRIM( TRANS( ( cAlias )->VRTOTAL, "@E 9,999,999.99" ) ),       ;
            oFontRua,, CLR_BLACK,, PAD_RIGHT  )

      ENDIF // FIM DA COURIER NEW 10

      SKIP

      IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS

         nLinha  := 27.00
         nColuna := 10.50

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
            + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
            oFontMin, , CLR_GREEN, , PAD_CENTER )

         ENDPAGE

         PAGE  // NOVA PAGINA

         // CONFIGURACAO ESTA EM: AMBLOGO.DBF
         // oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
         @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

         ++nPagina

         nLinha  := 1.00
         nColuna := 18.00   // 18.00

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                     ;
            OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, , ;
            CLR_BLACK, , PAD_CENTER )

         nLinha  := 3.00

      ENDIF

      nLinha  := nLinha += 0.50

   ENDDO

   cProdutos := "Produtos:    "

   IF lLigaProduto // := .F.   // SE TIVER PRODUTOS

      IF nLinha # 3.00

         nLinha  := nLinha += 0.40

      ENDIF

      nColuna := 4.00

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + cProdutos, oFont, , CLR_BLACK, , PAD_CENTER )

      nColuna := 4.70   // 4.60

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         REPLICATE( ".", 046 ), oFont, , CLR_BLACK, , PAD_LEFT )

      nColuna := 15.56

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + " ", oFont, , CLR_BLACK, , PAD_CENTER )

      nColuna := 19.50

      IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nTotalProdu, "@E 9,999,999.99" ) ),            ;
            oFont, , CLR_BLACK, , PAD_RIGHT  )

      ELSE

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nTotalProdu, "@E 9,999,999.99" ) ),            ;
            oFontRua, , CLR_BLACK, , PAD_RIGHT  )

      ENDIF

   ENDIF

   cMaoObra := "Mão de Obra: "

   IF( nVrUnSer ) > 0.00

      nLinha  := nLinha += 0.50
      nColuna := 4.00

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cMaoObra, oFont, , CLR_BLACK, , PAD_CENTER )

      nColuna := 5.45

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         REPLICATE( ".", 043 ), oFont, , CLR_BLACK, , PAD_LEFT )

      nColuna := 15.56

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + " ", oFont, , CLR_BLACK, , PAD_CENTER )

      nColuna := 19.50

      IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nVrUnSer, "@E 9,999,999.99" ) ),               ;
            oFont, , CLR_BLACK, , PAD_RIGHT  )

      ELSE

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nVrUnSer, "@E 9,999,999.99" ) ),               ;
            oFontRua, , CLR_BLACK, , PAD_RIGHT  )

      ENDIF

   ENDIF

   IF nDesconto > 0.00

      nLinha  := nLinha += 0.50
      nColuna := 3.60

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + OemToAnsi( "Desconto: " ), oFont, , CLR_BLACK, , PAD_CENTER )

      nColuna := 4.65

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         REPLICATE( ".", 046 ), oFont, , CLR_BLACK, , PAD_LEFT )

      nColuna := 19.50

      IF lImpFonte12 // := .T. // COURIER NEW 12 - 07/10/2021 Implementei.

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nDesconto, "@E 999,999.99" ) ),                ;
            oFont, , CLR_BLACK, , PAD_RIGHT  )

      ELSE

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( TRANS( nDesconto, "@E 999,999.99" ) ),                ;
            oFontRua, , CLR_BLACK, , PAD_RIGHT  )

      ENDIF

      nValorTotal := 0.00
      nDesconto   := 0.00  // INCLUIDO EM: 04/09/2019
      nTotalNfe   := 0.00

      GO TOP

      WHILE( .NOT. EOF() )

         SYSREFRESH()

         nDesconto := nDesconto + VRDESCONTO

         SKIP

      ENDDO

      GO TOP

      WHILE( .NOT. EOF() )

         SYSREFRESH()

         nTotalNfe := nTotalNfe + ( cAlias )->VRVENDA   * ;
                                  ( cAlias )->PRODUQTDE + ;
                                  ( cAlias )->VRUNSER

         SKIP

      ENDDO

      nValorTotal := nTotalNfe - nDesconto   // - nDesconto // somente se a Fernanda disser que sim

   ENDIF

   nLinha  := nLinha += 1.00
   nColuna := 3.45

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + OemToAnsi( "02. TOTAL:" ), oFontSub2, , CLR_BLACK, , PAD_CENTER )

   nVal   := nValorTotal   // lDin

   EXTENSO( nVal, 50, WE1, WE2, WE3 )

   nLinha  := nLinha += 0.70
   nColuna := 3.60  // 3.75

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + OemToAnsi( "R$ " ), oFont, , CLR_BLACK, , PAD_CENTER )

   nColuna := nColuna += 0.60

   IF WE2 # SPACE( 50 )

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + ALLTRIM( TRANS( nValorTotal, "@E 999,999,999.99" ) ) + " (" +     ;
         ALLTRIM( WE1 ), oFont, , CLR_BLACK, , PAD_LEFT )

      IF WE2 # SPACE( 50 )

         nLinha  := nLinha  += 0.50
         nColuna := nColuna += 2.60

         IF WE3 = SPACE( 50 )

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
               + ALLTRIM( WE2 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )

         ELSE

            oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                ;
               + ALLTRIM( WE2 ), oFont, , CLR_BLACK, , PAD_LEFT )

         ENDIF

      ENDIF

      IF WE3 # SPACE( 50 )

         nLinha  := nLinha  += 0.50
         nColuna := nColuna += 2.60

         oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                   ;
            + ALLTRIM( WE3 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )

      ENDIF

   ELSE // - < QUE 50 CARACTERES.

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + ALLTRIM( TRANS( nValorTotal, "@E 999,999,999.99" ) ) + " (" +     ;
         ALLTRIM( WE1 ) + ").", oFont, , CLR_BLACK, , PAD_LEFT )

   ENDIF

   IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS

      nLinha  := 27.00
      nColuna := 10.50

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
         oFontMin, , CLR_GREEN, , PAD_CENTER )

      ENDPAGE

      PAGE  // NOVA PAGINA

      // CONFIGURACAO ESTA EM: AMBLOGO.DBF
      // oPrn:SayImage( nLinLogo, nColLogo, "LOGO.JPG", nLargLogo, nAltLogo )
      @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

      ++nPagina

      nLinha  := 1.00
      nColuna := 18.00   // 18.00

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, ,  ;
         CLR_BLACK, , PAD_CENTER )

      nLinha  := 3.00

   ENDIF

   IF nLinha # 3.00

      nLinha  := nLinha += 0.80

   ENDIF

   nColuna := 5.61

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + OemToAnsi( "03. CONDIیES DE PAGAMENTO:" ),                          ;
      oFontSub2, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.60
   nColuna :=  3.20

   // cCondPagto pode alterar no dialogo, Lucia pediu edicao - OK
   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + cCondPagto, oFont, , CLR_BLACK, , PAD_LEFT )

   // OBSERVACOES AQUI - DEPENDENDO DO TAMANHO DO TEXTO FICA NA MESMA PAG. Joao
   IF .NOT. EMPTY( cObserva1 )

      nLinha  := nLinha += 0.80
      nColuna :=  4.075 // 4.15

      // ter opcao de alterar
      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + OemToAnsi( "04. OBSERVAۂO:" ),                                   ;
         oFontSub2, , CLR_BLACK, , PAD_CENTER )

      nLinha  := nLinha += 0.60
      nColuna := 10.95 // 11.05  -.10

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva1, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva2 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95 //10.55

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva2, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva3 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva3, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva4 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva4, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva5 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva5, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva6 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva6, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva7 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva7, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva8 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva8, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva9 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva9, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva10 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva10, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva11 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva11, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva12 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva12, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva13 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva13, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF nLinha >= 23.00 // PARA AS OBSERVACOES

      nLinha  := 27.00
      nColuna := 10.50

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
         oFontMin, , CLR_GREEN, , PAD_CENTER )

      ENDPAGE

      PAGE  // NOVA PAGINA

      @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

      ++nPagina

      nLinha  := 1.00
      nColuna := 18.00   // 18.00

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, ,  ;
         CLR_BLACK, , PAD_CENTER )

      nLinha  := 3.00

   ENDIF

   IF nLinha # 3.00

      nLinha  := nLinha += 0.50

   ENDIF

   IF .NOT. EMPTY( cObserva14 )

      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva14, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva15 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva15, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF .NOT. EMPTY( cObserva16 )

      nLinha  := nLinha += 0.50
      nColuna := 10.95   // 11.05

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cObserva16, oFont, , CLR_BLACK, , PAD_CENTER )

   ENDIF

   IF nLinha >= 23.00 // PARA AS OBSERVACOES/ ACHO QUE ENTRARA NO WHILE DOS PRODUTOS

      nLinha  := 27.00
      nColuna := 10.50

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
         + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
         oFontMin, , CLR_GREEN, , PAD_CENTER )

      ENDPAGE

      PAGE  // NOVA PAGINA

      @  nLinLogo, nColLogo PRINT TO oPrn IMAGE "LOGO.JPG" SIZE nLargLogo, nAltLogo LASTROW nRow

      ++nPagina

      nLinha  := 1.00
      nColuna := 18.00

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         OemToAnsi( "P g.: " + ALLTRIM( STRZERO( nPagina, 2 ) ) ), oFont, ,  ;
         CLR_BLACK, , PAD_CENTER )

      nLinha  := 3.00

   ENDIF

   IF nLinha # 3.00

      nLinha  := nLinha += 1.00

   ENDIF
   // INCLUIDO EM: 24/09/2021 VALIDADE DA PROPOSTA. Leda pediu.
   IF .NOT. EMPTY( cValidade ) // Lucia ajudou a melhorar.

      nColuna := 4.88

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + OemToAnsi( "05. PRAZO DE VALIDADE" ),                             ;
         oFontSub2, , CLR_BLACK, , PAD_CENTER )

      nLinha  := nLinha += 0.60
      nColuna :=  9.60  // 9.70

      oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                      ;
         + cValidade, oFont, , CLR_BLACK, , PAD_CENTER )

      nLinha  := nLinha += 1.00

   ENDIF

   nColuna := 12.90

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + OemToAnsi( "Sem mais,                                                                           " ), ;
      oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.80
   nColuna :=  4.80 // 2.90

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna, + cAssinaProp,          ;
      oFontBold, , CLR_BLACK, , PAD_CENTER )

   nLinha  := nLinha += 0.80
   nColuna :=   7.20 // 5.20

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                         ;
      + SUBST( WNOMEEMPRESA, 1, 20 ) + SPACE( 19 ),                          ;
      oFont, , CLR_BLACK, , PAD_CENTER )

   nLinha  := 27.00
   nColuna := 10.50

   oPrn:Say( nLinha * ResLinha, nColuna * ResColuna,                  ;
      + OemToAnsi( "Rua Fl¢rio, 271 Ch cara Mafalda-SÆo Paulo-SP CEP: 03372-050 Tel: 2674-3173 www.ambienty.com.br" ), ;
      oFontMin, , CLR_GREEN, , PAD_CENTER )

   // Called from: PRINTER.prg => PAGEEND( 0 )  // 64 bits MEMORIA
   ENDPAGE

   ENDPRINT

   IF DeOndePartiu = "COMPREVIEWPDF"

      oDlgBtn:End()

      FWSavePreviewToPDF( oPrn, "LIMPEZA.PDF", .F. )

      PDF_SALVO_EM_ORCAMPDF()  // ESTA EM FUNCOES.PRG 23/11/2020 Joao

      HTMLVIEW( "C:\ORCAMPDF\LIMPEZA.PDF" )

   ENDIF

   oFont:End()
   oFontBold:End()
   oFontSubl:End()
   oFontMin:End()
   oFontSub2:End()
   oFontRua:End()

   oPen1:End()
   oPen2:End()
   oPen3:End()

   lFechaJan    := .F.
   lFechaWin    := .F.
   lLigaProduto := .F.

   OrdDestroy( "ORCATEMP" )

   lLigaProduto := .F.

RETURN NIL
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278926#p278926 Thu, 10 Apr 2025 07:43:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278926#p278926
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278943#p278943
gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278943#p278943 Fri, 11 Apr 2025 09:52:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278943#p278943
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278944#p278944 IMP_TIPO_IMPRESSAO_LIMPEZA( 1227 ) esa linea que hace?
Y esta otra? PEGA_DADOS_LIMP_IMPRESSAO( 2851 )
Porque esas funciones son las que te estan dando el error y en el prg que pasaste no se llaman en ningun lado]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278944#p278944 Fri, 11 Apr 2025 09:59:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278944#p278944
<![CDATA[FiveWin para Harbour/xHarbour :: Re: ENDPAGE( 0 ) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278946#p278946
cmsoft wrote: Fri Apr 11, 2025 3:59 pm A mi mas me da idea de que es, como bien dice Cristobal, un ENDPRINT que no tiene el PRINT
IMP_TIPO_IMPRESSAO_LIMPEZA( 1227 ) esa linea que hace?
Y esta otra? PEGA_DADOS_LIMP_IMPRESSAO( 2851 )
Porque esas funciones son las que te estan dando el error y en el prg que pasaste no se llaman en ningun lado
IMP_TIPO_IMPRESSAO_LIMPEZA (1227) ¿qué es esta línea? -> Donde eliges el TIPO DE IMPRESIÓN.
¿Y este otro? PEGA_DADOS_LIMP_IMPRESSAO( 2851 ) -> OBTENER DATOS DEL CLIENTE.

Mira que publiqué el INFORME COMPLETO arriba, por favor échale un vistazo, puede que me haya perdido algo que no puedo ver, ¿de acuerdo?

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278946#p278946 Fri, 11 Apr 2025 11:08:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45616&p=278946#p278946
<![CDATA[FiveWin para Harbour/xHarbour :: Consulta sobre XBrowser :: Author jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278658#p278658
Tengo una consulta o sugerencia sobre xbrowser.
Concretamente de la generación de la excel.

¿ Es posible usar el título del xbrowser como el Encabezado de la excel ?]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278658#p278658 Fri, 28 Mar 2025 06:16:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278658#p278658
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278668#p278668

Code: Select all | Expand

// C:\FWH\SAMPLES\OSCARXLS.PRG

#include 'FiveWin.ch'
#include 'xBrowse.ch'

FUNCTION Main()

   LOCAL oWnd, oBar, oBrw, nTotal := 0
   /*
   A. American format: "999,999,999.99"
   E. European format: "999.999.999,99"
   I. Indian   format: "99,99,999.99"
   */

   FwNumFormat( 'E', .T. )  // European Format

   IF FILE( "TESTXLS.DBF" )

      DELETEFILE( "TESTXLS.DBF" )

   ENDIF

   dbCreate( "TESTXLS", { { "DESCRIP", "C", 010, 000 }, ;
                          { "VALOR1 ", "N", 010, 001 }, ;
                          { "VALOR2 ", "N", 010, 002 }, ;
                          { "VALOR3 ", "N", 010, 003 }, ;
                          { "VALOR4 ", "N", 010, 004 }, ;
                          { "VALOR5 ", "N", 010, 005 } } )

   USE TESTXLS NEW ALIAS TESTXLS
   GO TOP

   FOR nTotal = 1 TO 33

      APPEND BLANK

      REPLACE DESCRIP WITH "Linea " + StrZero( nTotal, 2 )

      REPLACE VALOR1 WITH 99999 * nTotal / 777
      REPLACE VALOR2 WITH 99999 * nTotal / 777
      REPLACE VALOR3 WITH 99999 * nTotal / 777
      REPLACE VALOR4 WITH 99999 * nTotal / 777
      REPLACE VALOR5 WITH 99999 * nTotal / 777

      COMMIT

   NEXT

   GO TOP

   DEFINE WINDOW oWnd

   DEFINE BUTTONBAR oBar OF oWnd SIZE 80, 32 2007

   DEFINE BUTTON OF oBar PROMPT 'Para &Excel'         ;
      ACTION MsgMeter( {| oMeter, oText, oDlg, lEnd | ;
      Export2Excel( oBrw, oMeter, oText, oDlg, @lEnd ) } )

   DEFINE BUTTON OF oBar PROMPT '&Salida' ACTION( WndMain():End() )

   SET MESSAGE OF oWnd TO '' 2007

   @ 0, 0 XBROWSE oBrw OF oWnd ALIAS 'TESTXLS' AUTOCOLS CELL LINES

   oBrw:aCols[ 2 ]:bFooter = {|| Transform( Field->VALOR1, "@E 9.999.999,99" ) }
   oBrw:aCols[ 3 ]:bFooter = {|| Transform( Field->VALOR2, "@E 9.999.999,99" ) }
   oBrw:aCols[ 4 ]:bFooter = {|| Transform( Field->VALOR3, "@E 9.999.999,99" ) }
   oBrw:aCols[ 5 ]:bFooter = {|| Transform( Field->VALOR4, "@E 9.999.999,99" ) }
   oBrw:aCols[ 6 ]:bFooter = {|| Transform( Field->VALOR5, "@E 9.999.999,99" ) }

   oBrw:MakeTotals()
   oBrw:refresh()

   oBrw:CreateFromCode()

   oWnd:oClient      := oBrw

   ACTIVATE WINDOW oWnd MAXIMIZED

   CLOSE DATA

RETURN NIL

STATIC FUNCTION Export2Excel( oBrw, oMeter, oText, oDlg, lEnd )

   oBrw:ToExcel( {| n, t | oMeter:nTotal := t, ;
                           oMeter:Set( n ),    ;
   oText:SetText( Str( n ) + '/' + Str( t ) ), ;
   oDlg:Update(), .T. } )

RETURN NIL

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278668#p278668 Fri, 28 Mar 2025 12:16:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278668#p278668
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by JoseAlvarez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278676#p278676
jose_murugosa wrote: Fri Mar 28, 2025 12:16 pm Un saludo, gente del foro.

Tengo una consulta o sugerencia sobre xbrowser.
Concretamente de la generación de la excel.

¿ Es posible usar el título del xbrowser como el Encabezado de la excel ?
Hola José.
No se si será lo que buscas.

Code: Select all | Expand

local oBrw
local aTitCols

   aTitCols := { "Kardex", "Descripcion", "codeArtic", "FechaMov", "Doc", "cantMov", "Razon Social", "Tipo Mov", "Exist", "Exist_K", "Status"}

   XBrowser aKardex TITLE "Kardex" ;
   Setup ( oBrw:cHeaders   := aTitCols)
]]>
no_email@example.com (JoseAlvarez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278676#p278676 Fri, 28 Mar 2025 16:01:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278676#p278676
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278704#p278704 Si es posible que al presionar el botón para generar una excel que EN LA EXCEL coloque una primera línea con el título 'Listado de ventas de xfecha' y debajo de ese título entonces si poner los titulos de las columnas que yo haya establecido para el browse.

Espero esté más claro ahora.]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278704#p278704 Mon, 31 Mar 2025 03:15:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278704#p278704
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278717#p278717 no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278717#p278717 Mon, 31 Mar 2025 12:34:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278717#p278717 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278738#p278738
cnavarro wrote: Mon Mar 31, 2025 6:34 pm Jose, no se contempla actualmente esa posibilidad, pero se intentará implementar para futuras versiones
Gracias por tu respuesta Cristóbal,
Me parece que sería como la frutilla de la torta para xbrowse, porque permitiría sacar reportes simples con un título.
Ojalá se pueda implementar en una próxima versión.]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278738#p278738 Tue, 01 Apr 2025 08:51:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278738#p278738
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Consulta sobre XBrowser :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278956#p278956
No se con cuantos registros los han probado, tengo algunos casos con 500,000 registros para exportar, pero con este ejemplo, cerca de los 140,000 sale este error: Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: PASTE
Uso el ultimo FW con Bcc77 y el ultimo xHb, la maquina tiene 32gb de RAM, alguna idea ??

Aqui el error completo

pplication
===========
Path and name: D:\Fwh\Fwh2501\samples\oscarxlsx.exe (32 bits)
Size: 4,240,896 bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)
FiveWin version: FWH 25.01
C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 2 mins 0 secs
Error occurred at: 04/12/25, 04:45:09
Error description: Error Excel.Application:ACTIVESHEET/3 DISP_E_MEMBERNOTFOUND: PASTE
Args:

Stack Calls
===========
Called from: => TOLEAUTO:PASTE( 0 )
Called from: .\source\classes\xbrowse.prg => TXBROWSE:TOEXCEL( 11119 )
Called from: oscarxlsx.prg => EXPORT2EXCEL( 89 )
Called from: oscarxlsx.prg => (b)MAIN( 57 )
Called from: .\source\function\msgmeter.prg => (b)MSGMETER( 28 )
Called from: .\source\classes\dialog.prg => (b)TDIALOG:TDIALOG( 101 )
Called from: => TDIALOG:DISPLAY( 0 )
Called from: .\source\classes\dialog.prg => TDIALOG:HANDLEEVENT( 1234 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
Called from: .\source\function\msgmeter.prg => MSGMETER( 31 )
Called from: oscarxlsx.prg => (b)MAIN( 57 )
Called from: .\source\classes\btnbmp.prg => TBTNBMP:CLICK( 816 )
Called from: .\source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 1103 )
Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1867 )
Called from: .\source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 2145 )
Called from: .\source\classes\window.prg => _FWH( 1008 )
Called from: => WINRUN( 0 )
Called from: .\source\classes\window.prg => TWINDOW:ACTIVATE( 1137 )
Called from: oscarxlsx.prg => MAIN( 78 )]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278956#p278956 Sat, 12 Apr 2025 04:36:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45576&p=278956#p278956
<![CDATA[FiveWin para Harbour/xHarbour :: Petición para hacer compatible EasyReport con Harupdf :: Author leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278823#p278823
Como dice el encabezado queremos hacer la petición para que se le de una mirada a la clase del Easy Report y hacer algunas mejoras, esta solicitud la hacemos por que algunos de nuestros clientes, nos han reportado que los pdfs salen en blanco, generalmente es por problemas de configuración o de instalación en sus Windows, esos pdfs se requieren aquí en Colombia para la generación de los archivos soporte de las facturas electrónicas.

Por otro lado a nosotros nos ha servido demasiado el EasyReport y lo usamos en la generación de casi todos los reportes de nuestra aplicación, entendemos que muy pocos usuarios de la comunidad lo usan, pero si todos nuestros usuarios, usan esa herramienta.

Hay varias solicitudes de ajuste, pero la primordial en este momento es que se desvincule la generación de los pdfs de los componentes del Windows y que se generen mediante harupdf o otra clase de fwh.

Hace unos meses cuando estaba de moda en la comunidad usar harupdf, incluimos la instrucción al inicio de la aplicación.

Code: Select all | Expand

//ACTIVAMOS LAS FUNCIONES DE HARUPDF
TPrinter():lUseHaruPDF := .t.
Pero de esta manera se generan los pdfs en blanco.

Gracias de antemano si nos pueden dar una manita y solucionar ese y otros problemas que tiene el EasyReport]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278823#p278823 Sat, 05 Apr 2025 10:58:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278823#p278823
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278828#p278828
Puedes proporcionar un pequeño ejemplo para probar aqui y que salga en blanco ?

gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278828#p278828 Sat, 05 Apr 2025 12:22:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278828#p278828
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278900#p278900
Pues intentamos con el siguiente código, pero sale un error que no pudimos corregir, asumo que ha cambiado mucho el código desde la ultima vez que lo intentamos, dejo este pequeño ejemplo para ver si encontramos la solución al error.

C:\fwh64_2501\samples\leandro5.prg

Code: Select all | Expand

#include "fivewin.ch"
#include "easyrep.ch"

REQUEST FWHARU   // required for using HaruPdf

function Main()

LOCAL oVRD
LOCAL nSeite := 0
LOCAL nIdx := 0
LOCAL I := 0
LOCAL nRg := 0
Local aCust := {}

USE CUSTOMER
aCust    := FW_DbfToArray()

TPrinter():lUseHaruPDF := .t.

EASYREPORT oVRD NAME "erep01\states.vrd" TO "Microsoft Print to PDF" PREVIEW (.F.) FILE "erep01.pdf" 

	PRINTAREA 1 OF oVRD   ;
		ITEMIDS    { 101, 102 } ;
		ITEMVALUES { "Report with array", DToC(  Date() )  }

	PRINTAREA 2 OF oVRD;
		ITEMIDS    { 100 } ;
		ITEMVALUES { "Anyone have a sample how i can relationate 2 arrays (masterdata/detail) and pass to fastreport?" }

	PRINTAREA 7 OF oVRD
	
	FOR I := 1 TO 20
		PRINTAREA 4 OF oVRD   ;
			ITEMIDS    { 102, 103, 104, 105 } ;
			ITEMVALUES { aCust[I][2], aCust[I][3], aCust[I][4], aCust[I][5] }
			
		nRg++	
		IF oVRD:nNextRow > oVRD:nPageBreak
			PAGEBREAK oVRD
		ENDIF		

	NEXT

	PRINTAREA 6 OF oVRD

	PRINTAREA 5 OF oVRD ITEMIDS { 100 } ITEMVALUES { "Numero de registros "+cvaltochar(nRg) }
oVRD:End()

return nil
el error

Code: Select all | Expand

Application
===========
   Path and name: C:\fwh64_2501\samples\leandro5.exe (64 bits)
   Size: 6,721,024 bytes
   Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250219)
   FiveWin  version: FWH 25.01
   C compiler version: LLVM/Clang C 5.0.2 (64-bit)
   Windows 8 64 Bits, version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 04/08/25, 16:53:27
   Error description: Warning BASE/1004  Message not found: FWPDF:SETCOPIES

Stack Calls
===========
   Called from: source\rtl\tobject.prg => FWPDF:ERROR( 0 )
   Called from: source\rtl\tobject.prg => FWPDF:MSGNOTFOUND( 0 )
   Called from: source\rtl\tobject.prg => FWPDF:SETCOPIES( 0 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:NEW( 356 )
   Called from: leandro5.prg => MAIN( 20 )

System
======
   Hardware memory: 32510 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 1
      1 ,                                                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   FWPDF:ERROR
     Param   1:    C    "Message not found"
     Param   2:    C    "FWPDF"
     Param   3:    C    "SETCOPIES"
     Param   4:    N    1004
     Local   1:    U    
     Local   2:    O    Class: FWPDF
     Local   3:    N    13
   FWPDF:MSGNOTFOUND
     Param   1:    C    "SETCOPIES"
     Param   2:    O    Class: FWPDF
   FWPDF:SETCOPIES
     Param   1:    N    1
   FW_EREPORT:NEW
     Param   1:    C    "erep01\states.vrd"
     Param   2:    L    .F.
     Param   3:    C    "Microsoft Print to PDF"
     Param   4:    U    
     Param   5:    L    .F.
     Param   6:    L    .F.
     Param   7:    L    .F.
     Param   8:    L    .F.
     Param   9:    C    ""
     Param  10:    L    .F.
     Param  11:    N    1
     Param  12:    L    .F.
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    C    ""
     Param  17:    L    .F.
     Param  18:    U    
     Param  19:    C    "erep01.pdf"
     Local   1:    O    Class: FW_EREPORT
     Local   2:    U    
     Local   3:    U    
     Local   4:    U    
     Local   5:    O    Class: TFONT
     Local   6:    O    Class: TFONT
     Local   7:    U    
     Local   8:    A    Len:   24
     Local   9:    A    Len:    3
     Local  10:    A    Len:    3
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    N    0
   MAIN
     Local   1:    U    
     Local   2:    N    0
     Local   3:    N    0
     Local   4:    N    0
     Local   5:    N    0
     Local   6:    A    Len:  500

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

  1: => CUSTOMER                           RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
          1          500      .F.   .F.

     Indexes in use                        TagName

     Relations in use

Classes in use:
===============
     1 ERROR
     2 HASHENTRY
     3 HBCLASS
     4 HBOBJECT
     5 TPRINTER
     6 FW_EREPORT
     7 TEXSTRUCT
     8 TFONT
     9 TWINDOW
    10 TDIALOG
    11 TBRUSH
    12 TCONTROL
    13 TSAY
    14 TBUTTON
    15 TREG32
    16 TRECT
    17 TPDF
    18 FWPDF

Memory Analysis
===============
      749 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes

]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278900#p278900 Tue, 08 Apr 2025 16:01:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278900#p278900
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278938#p278938
Ahi lo que se puede hacer es añadir el método SetCopies( nCopies ) a la Clase FWPDF y ver como continúa

Se puede implementar de momento como VIRTUAL]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278938#p278938 Thu, 10 Apr 2025 16:29:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278938#p278938
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278939#p278939
y nos puedes ayudar con eso... por que el tema de la modificación de las clases no se me da.
Se puede implementar de momento como VIRTUAL
Es mas, no tengo ni idea que te refieres con esto.

Si eres un poco mas especifico ayudo en lo que se pueda, desde mi conocimiento, al menos haciendo pruebas :oops:]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278939#p278939 Thu, 10 Apr 2025 17:29:40 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278939#p278939
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278940#p278940 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278940#p278940 Thu, 10 Apr 2025 21:49:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278940#p278940 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278945#p278945
Implementado, te envío librerias para xHarbour 64 y Borland ?
Si porfa. :D]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278945#p278945 Fri, 11 Apr 2025 10:40:20 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278945#p278945
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278952#p278952 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278952#p278952 Fri, 11 Apr 2025 14:43:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278952#p278952 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278959#p278959

Code: Select all | Expand

Application
===========
   Path and name: C:\fwh64_2501\samples\leandro5.exe (64 bits)
   Size: 6,702,592 bytes
   Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250219)
   FiveWin  version: FWH 25.01
   C compiler version: LLVM/Clang C 5.0.2 (64-bit)
   Windows 8 64 Bits, version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 04/12/25, 10:32:53
   Error description: Warning BASE/1004  Message not found: FWPDF:HDCOUT

Stack Calls
===========
   Called from: source\rtl\tobject.prg => FWPDF:ERROR( 0 )
   Called from: source\rtl\tobject.prg => FWPDF:MSGNOTFOUND( 0 )
   Called from: source\rtl\tobject.prg => FWPDF:HDCOUT( 0 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:SAY( 805 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:PRINTITEM( 951 )
   Called from: .\source\classes\esreport.prg => (b)FW_EREPORT:PRINTITEMLIST( 1332 )
   Called from:  => AEVAL( 0 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:PRINTITEMLIST( 1332 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:AREASTART2( 756 )
   Called from: .\source\classes\esreport.prg => FW_EREPORT:AREASTART( 639 )
   Called from: leandro5.prg => MAIN( 24 )

System
======
   Hardware memory: 32510 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 1
      1 ,                                                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   FWPDF:ERROR
     Param   1:    C    "Message not found"
     Param   2:    C    "FWPDF"
     Param   3:    C    "HDCOUT"
     Param   4:    N    1004
     Local   1:    U    
     Local   2:    O    Class: FWPDF
     Local   3:    N    13
   FWPDF:MSGNOTFOUND
     Param   1:    C    "HDCOUT"
     Local   1:    O    Class: FWPDF
   FWPDF:HDCOUT
   FW_EREPORT:SAY
     Param   1:    N    36.8504
     Param   2:    N    82.2047
     Param   3:    C    "Report with array"
     Param   4:    A    Len:    3
     Param   5:    N    155.9055
     Param   6:    N    10485760
     Param   7:    N    1
     Param   8:    N    0
     Local   1:    O    Class: FW_EREPORT
     Local   2:    U    
     Local   3:    A    Len:    3
   FW_EREPORT:PRINTITEM
     Param   1:    N    1
     Param   2:    N    101
     Param   3:    C    "Report with array"
     Param   4:    N    0
     Local   1:    L    .F.
     Local   2:    N    0
     Local   3:    O    Class: FW_EREPORT
     Local   4:    N    0
     Local   5:    A    Len:    3
     Local   6:    U    
     Local   7:    N    29
     Local   8:    U    
     Local   9:    N    13
     Local  10:    U    
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    U    
     Local  16:    U    
     Local  17:    U    
     Local  18:    U    
     Local  19:    U    
     Local  20:    C    "Customer   "
     Local  21:    U    
     Local  22:    U    
     Local  23:    U    
     Local  24:    L    .F.
     Local  25:    C    "400"
     Local  26:    C    "TEXT|Customer   |101|1|1|1|3|9|55|7|8|1|2|1|0|0||0||||||||||||||0|0.20"
     Local  27:    O    Class: FWER_ITEM
     Local  28:    N    10
     Local  29:    N    10
     Local  30:    L    .F.
     Local  31:    N    1
   (b)FW_EREPORT:PRINTITEMLIST
     Param   1:    N    101
     Param   2:    N    1
   AEVAL
     Param   1:    A    Len:    2
     Param   2:    B    {|| ... }
   FW_EREPORT:PRINTITEMLIST
     Param   1:    N    1
     Param   2:    A    Len:    2
     Param   3:    A    Len:    2
     Local   1:    U    
     Local   2:    O    Class: FW_EREPORT
   FW_EREPORT:AREASTART2
     Param   1:    N    1
     Param   2:    L    .T.
     Param   3:    A    Len:    2
     Param   4:    A    Len:    2
     Param   5:    L    .F.
     Local   1:    O    Class: FW_EREPORT
     Local   2:    N    10
     Local   3:    N    10
     Local   4:    L    .F.
   FW_EREPORT:AREASTART
     Param   1:    N    1
     Param   2:    U    
     Param   3:    A    Len:    2
     Param   4:    A    Len:    2
     Param   5:    L    .F.
     Local   1:    O    Class: FW_EREPORT
     Local   2:    N    1
     Local   3:    N    1
     Local   4:    N    1
     Local   5:    N    0
     Local   6:    N    0
   MAIN
     Local   1:    O    Class: FW_EREPORT
     Local   2:    N    0
     Local   3:    N    0
     Local   4:    N    0
     Local   5:    N    0
     Local   6:    A    Len:  500

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

  1: => CUSTOMER                           RddName: DBFNTX
     ==============================
     RecNo    RecCount    BOF   EOF
          1          500      .F.   .F.

     Indexes in use                        TagName

     Relations in use

Classes in use:
===============
     1 ERROR
     2 HASHENTRY
     3 HBCLASS
     4 HBOBJECT
     5 TPRINTER
     6 FW_EREPORT
     7 TEXSTRUCT
     8 TFONT
     9 TWINDOW
    10 TDIALOG
    11 TBRUSH
    12 TCONTROL
    13 TSAY
    14 TBUTTON
    15 TREG32
    16 TRECT
    17 TPDF
    18 FWPDF
    19 FWER_ITEM

Memory Analysis
===============
      745 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes

]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278959#p278959 Sat, 12 Apr 2025 09:34:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278959#p278959
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278961#p278961
Esto llegó a funcionar anteriormente ??]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278961#p278961 Sat, 12 Apr 2025 10:40:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278961#p278961
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Petición para hacer compatible EasyReport con Harupdf :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278963#p278963 por eso la solicitud para que se pueda usar desde Easy Report.]]> no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278963#p278963 Sat, 12 Apr 2025 11:16:17 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45604&p=278963#p278963 <![CDATA[FiveWin para Harbour/xHarbour :: oFTP:Directory() no devuelve los archivos que existem :: Author Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278977#p278977
Me conecto a un FTP y trato de obtener el listado de los archivos, pero siempre me devuelve en blanco, pero la carpeta tiene 13 archivos y los veo con Filezilla, ojo si hace la conexion, pero no lista nada, que puede ser, alguna ayuda ??

oInternet := TInternet():New()
IF oInternet == NIL
MsgStop("No se pudo inicializar TInternet().", "Error")
RETURN NIL
ENDIF

// Añadir FTP_PASSIVE_MODE es crucial
oFTP := tFtp():New( "ftp.ejemplo.net", oInternet, "user", "clave", 134217728 )
IF oFTP == NIL .OR. oFTP:hFTP == NIL
MsgStop( "No se pudo conectar al servidor FTP.", "Error de Conexión" )
oInternet:End()
RETURN NIL
ENDIF

aFiles := oFTP:Directory( )

aqui el aFiles no lo llena con los datos de los archivos, no lo uso hace tiempo, pero antes si funcionaba, no se que ha cambiado.
Gracias]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278977#p278977 Mon, 14 Apr 2025 06:44:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278977#p278977
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278978#p278978
Intenta así

Code: Select all | Expand

#include "FiveWin.ch"
*
function Main()
   aFiles:={}
   cusuario:="user"
   cpassword:="pass"
   cftpsite:="dominio.com"
   
        oCon:=Turl():New("ftp://"+cusuario+":"+cpassword+"@"+cftpsite)
        oFTP:= TIpClientFtp():New(oCon, .f.)
        oFTP:open()
        aFiles:=oFtp:ListFiles("data\*.*")
        If Len(aFiles)=0
          msgstop("No se pudo","Acceso FTP")
        Else
          xBrowse(aFiles)
        endif
        oftp:close()
Return nil
]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278978#p278978 Mon, 14 Apr 2025 08:29:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278978#p278978
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278979#p278979
En esta linea: aFiles:=oFtp:ListFiles("*.*")
Me da este error (abajo adjunto), mientras reviso el foro (ya empece antes de escribir pero aun no encuentro nada) voy a revisar la clase de Javier Lloris creo que por ahi esta el camino ... tendras idea de como solucionarlo ?? trabajo con xHarbour y si estan enlazadas las librerias RTL y TIP de xHarbour ... gracias

Application
===========
Path and name: D:\Fwh\Fwh2501\samples\ftpdir03.exe (32 bits)
Size: 4,266,496 bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)
FiveWin version: FWH 25.01
C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 04/14/25, 12:06:00
Error description: Error BASE/3012 Argument error: INETSENDALL
Args:
[ 1] = U
[ 2] = C PASV

[ 3] = N 6

Stack Calls
===========
Called from: => INETSENDALL( 0 )
Called from: source\tip\client.prg => TIPCLIENTFTP:INETSENDALL( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:PASV( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LIST( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LISTFILES( 0 )
Called from: ftpdir03.prg => MAIN( 9 )]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278979#p278979 Mon, 14 Apr 2025 11:34:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278979#p278979
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278980#p278980
En esta linea: aFiles:=oFtp:ListFiles("*.*")
Me da este error (abajo adjunto), mientras reviso el foro (ya empece antes de escribir pero aun no encuentro nada) voy a revisar la clase de Javier Lloris creo que por ahi esta el camino ... tendras idea de como solucionarlo ?? trabajo con xHarbour y si estan enlazadas las librerias RTL y TIP de xHarbour ... gracias

Application
===========
Path and name: D:\Fwh\Fwh2501\samples\ftpdir03.exe (32 bits)
Size: 4,266,496 bytes
Compiler version: xHarbour 1.3.1 Intl. (SimpLex) (Build 20250226)
FiveWin version: FWH 25.01
C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
Windows 11 64 Bits, version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 04/14/25, 12:06:00
Error description: Error BASE/3012 Argument error: INETSENDALL
Args:
[ 1] = U
[ 2] = C PASV

[ 3] = N 6

Stack Calls
===========
Called from: => INETSENDALL( 0 )
Called from: source\tip\client.prg => TIPCLIENTFTP:INETSENDALL( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:PASV( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LIST( 0 )
Called from: source\tip\ftpcln.prg => TIPCLIENTFTP:LISTFILES( 0 )
Called from: ftpdir03.prg => MAIN( 9 )]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278980#p278980 Mon, 14 Apr 2025 11:34:11 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278980#p278980
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by acuellar]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278981#p278981
Utilizo MSVC22/BCC74 con Harbour x64]]>
no_email@example.com (acuellar) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278981#p278981 Mon, 14 Apr 2025 12:59:07 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278981#p278981
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278982#p278982 no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278982#p278982 Mon, 14 Apr 2025 13:32:50 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278982#p278982 <![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278987#p278987
https://www.hamor.ro/distr_ext/Doc/xHb/ ... _f.en.html

http://www.pctoledo.com.br/forum/viewto ... =4&t=13656

https://github.com/harbour/core/blob/ma ... ftpcli.prg

https://github.com/harbour/core/blob/ma ... mtpcli.prg

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278987#p278987 Tue, 15 Apr 2025 06:43:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278987#p278987
<![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278989#p278989 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278989#p278989 Tue, 15 Apr 2025 08:59:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278989#p278989 <![CDATA[FiveWin para Harbour/xHarbour :: Re: oFTP:Directory() no devuelve los archivos que existem :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278991#p278991
Gracias Carlos, pero me pasa con los 3 proveedores mas grandes aqui Movistar, Claro y Win, cubren el 90% (aprox) de las instalaciones ... ademas Filezilla si me deja y una prueba con Chilkat tambien.

Joao gracias por los links revisare 1x1 a ver si encuentro luz ...]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278991#p278991 Tue, 15 Apr 2025 15:42:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45621&p=278991#p278991
<![CDATA[FiveWin para Harbour/xHarbour :: Fivedit - Descarga :: Author cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278901#p278901 A partir de ahora, la descarga se podrá realizar en la siguiente url

https://github.com/cristobalnavarro/Tes ... ivedit.zip

Por favor informen de los problemas que puedan encontrar
Es posible que el explorador les indique "Descarga sospechosa", ignoren dicho mensaje debido a que el .zip contiene ficheros .exe y .dll
Saludos]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278901#p278901 Tue, 08 Apr 2025 16:30:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278901#p278901
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Fivedit - Descarga :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278992#p278992
¿ Hay algún manual de FivEdit ? ¿ Algún foro ?
cnavarro wrote: Tue Apr 08, 2025 10:30 pm Hola,
A partir de ahora, la descarga se podrá realizar en la siguiente url

https://github.com/cristobalnavarro/Tes ... ivedit.zip

Por favor informen de los problemas que puedan encontrar
Es posible que el explorador les indique "Descarga sospechosa", ignoren dicho mensaje debido a que el .zip contiene ficheros .exe y .dll
Saludos
]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278992#p278992 Tue, 15 Apr 2025 17:42:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45614&p=278992#p278992
<![CDATA[FiveLinux / FiveDroid (Android) :: Creando libreria de fivelinux :: Author ruben Dario]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278463#p278463
Uso linux ubuntu 24.04.02 lts
uso esta version fivelinux_20130323.zip

al crear las librarias me da este error

Code: Select all | Expand

      |   ^~~~~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30:
/usr/include/glib-2.0/glib/gtypes.h:580:8: note: declared here
  580 | struct _GTimeVal
      |        ^~~~~~~~~
source/winapi/printers.c:3:10: fatal error: libgnomeprint/gnome-print.h: No existe el archivo o el directorio
    3 | #include <libgnomeprint/gnome-print.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:97: objc/printers.o] Error 1

]]>
no_email@example.com (ruben Dario) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278463#p278463 Wed, 19 Mar 2025 14:37:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278463#p278463
<![CDATA[FiveLinux / FiveDroid (Android) :: Re: Creando libreria de fivelinux :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278465#p278465 Paso 1: Verifica tu versión de Ubuntu
Primero, verifica la versión de Ubuntu que estás usando ejecutando este comando en la terminal:
bash
lsb_release -a
Esto te dirá la versión exacta (por ejemplo, 20.04, 22.04, etc.). Si estás usando una versión moderna (16.04 o superior), libgnomeprint no estará disponible en los repositorios oficiales.
Paso 2: Intenta instalar desde repositorios antiguos (si aplica)
Si estás usando una versión antigua de Ubuntu (como 12.04 o 14.04) o estás dispuesto a agregar repositorios antiguos, puedes intentar instalarla directamente. Por ejemplo:
Agrega un repositorio antiguo a tu archivo /etc/apt/sources.list. Abre el archivo con un editor como nano:
bash
sudo nano /etc/apt/sources.list
Añade esta línea al final del archivo (esto apunta a los repositorios de Ubuntu 14.04 Trusty):
bash
deb http://old-releases.ubuntu.com/ubuntu trusty main universe
Actualiza la lista de paquetes:
bash
sudo apt-get update
Intenta instalar libgnomeprint:
bash
sudo apt-get install libgnomeprint2.2-0
Nota: El paquete exacto puede variar (por ejemplo, libgnomeprint2.2-0 o libgnomeprint-2-2).
Advertencia: Usar repositorios antiguos puede romper tu sistema si no tienes cuidado, ya que los paquetes no están mantenidos y podrían entrar en conflicto con versiones más nuevas de otras bibliotecas.
Paso 3: Descarga e instala manualmente el paquete
Si no quieres modificar los repositorios o usas una versión moderna de Ubuntu, puedes descargar manualmente los archivos .deb de una versión anterior e instalarlos. Aquí tienes cómo hacerlo:
Busca el paquete en un repositorio antiguo, como old-releases.ubuntu.com. Por ejemplo, para Ubuntu 14.04 (Trusty):
Paquete: libgnomeprint2.2-0
URL: http://old-releases.ubuntu.com/ubuntu/p ... nomeprint/
Descarga el paquete adecuado para tu arquitectura (por ejemplo, amd64 o i386). Usa wget:
bash
wget http://old-releases.ubuntu.com/ubuntu/p ... _amd64.deb
Instala el paquete con dpkg:
bash
sudo dpkg -i libgnomeprint2.2-0_2.18.8-3ubuntu1_amd64.deb
Si hay dependencias faltantes, usa este comando para resolverlas:
bash
sudo apt-get install -f
Paso 4: Alternativa con dependencias relacionadas
Algunas aplicaciones que requieren libgnomeprint podrían funcionar con bibliotecas relacionadas o versiones más nuevas. Por ejemplo:
Instala libgnomeprintui2.2-0 o libgnomecups1.0-1 si tu software las menciona como dependencias:
bash
sudo apt-get install libgnomeprintui2.2-0 libgnomecups1.0-1
Si no están disponibles, repite el proceso de descarga manual.
Paso 5: Considera soluciones específicas para tu software
Si estás instalando libgnomeprint para un programa específico (como Stata), revisa la documentación oficial del software. Por ejemplo:
Para Stata en Ubuntu 16.04 o superior, los usuarios han reportado éxito descargando libgnomeprint-2-2.so.0 manualmente y colocándolo en /usr/lib o creando enlaces simbólicos a bibliotecas compatibles.
Nota final
Dado que libgnomeprint es obsoleta, la mejor solución a largo plazo es actualizar el software que depende de ella a una versión que use bibliotecas modernas (como libgtk o cairo). Si necesitas más ayuda con un caso específico, indícame qué software estás intentando usar y la versión de Ubuntu, ¡y te ayudaré a ajustar la solución!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278465#p278465 Wed, 19 Mar 2025 15:31:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=12&t=45550&p=278465#p278465
<![CDATA[mod_harbour :: Re: UT v2.0 - Proyecto Open Souce :: Reply by Carles]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278501#p278501
UT a estado actualizado a la última version Harbour con las libreiras actualizadas de curl y ssl

https://carles9000.github.io/

C.]]>
no_email@example.com (Carles) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278501#p278501 Fri, 21 Mar 2025 10:42:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278501#p278501
<![CDATA[mod_harbour :: Re: UT v2.0 - Proyecto Open Souce :: Reply by asesormix]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278555#p278555 Saludos.]]> no_email@example.com (asesormix) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278555#p278555 Tue, 25 Mar 2025 06:47:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=278555#p278555 <![CDATA[All products support :: Debug :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45545&p=278435#p278435 Grazie per l'aiuto]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45545&p=278435#p278435 Tue, 18 Mar 2025 14:05:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45545&p=278435#p278435 <![CDATA[All products support :: Re: Ricarico costo prodotti :: Reply by chiaiese]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=278760#p278760 sembra evidente che ci sia un errore di calcolo.
Se il ricarico è 1.95 su 0.55 allora la percentuale si calcola facendo 1.95/0.55*100=354,54545454...
più decimali mantieni nel risultato e più il calcolo è preciso, con due soli decimali il calcolo inverso risulterà arrotondato

Roberto]]>
no_email@example.com (chiaiese) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=278760#p278760 Wed, 02 Apr 2025 16:31:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=278760#p278760
<![CDATA[All products support :: Novo livro - MySql para Desenvolvedores Clipper com Fivewin for Harbour :: Author vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=21&t=45596&p=278794#p278794 Vimos anunciar o lançamento do nosso novo livro - MySql para Desenvolvedores Clipper com Fivewin for Harbour, onde apresentamos em detalhes como migrar de forma rápida e extremamente fácil, aplicações DBF para MySql/MariaDb com Fivewin for Harbour (FWH). Com os exemplos apresentados no livro, você perceberá que pode passar a utilizar em seus sistemas um dos mais populares e eficiente bancos de dados do mundo, utilizando praticamente toda a experiência adquirida nos muito anos desenvolvendo com DBFs.

Além disso, abordamos ainda:
  • Como migrar tabelas dbf para o mysql, garantir integridade referencial, atomicidade e o uso de triggers;
  • instalação e configuração do VSCODE(Visual Studio Code) para editar, compilar e gerenciar projetos com FWH;
  • Utilização do IDE do Pelles C para criar janelas visualmente e utilizar em seus sistemas;
  • Integração do FWH com as bibliotecas disponibilizadas pelo Portal ACBr para geração de NFCe, NFe, CTe e MDFe.
O livro tem quase 200 páginas, e seu custo é de apenas R$ 145,00(Cento e quarenta e cinco Reais) para pagamentos por Pix para 01.716.341/0001-20 (Informe seu número de celular/Whatsapp na mensagem do pix que entraremos em contato para combinar o envio) . Você também pode adquiri-lo pelo ML através deste https://produto.mercadolivre.com.br/MLB ... arbour-_JM. Em ambos os casos com frete grátis!

Imprimimos uma tiragem limitadíssima e dificilmente faremos uma reimpressão, então garanta logo o seu ;)]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=21&t=45596&p=278794#p278794 Fri, 04 Apr 2025 12:01:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=21&t=45596&p=278794#p278794
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278492#p278492
https://github.com/FiveTechSoft/harbour ... our_builds

Please check.]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278492#p278492 Fri, 21 Mar 2025 04:40:30 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278492#p278492
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278520#p278520
Enrico Maria Giordano wrote: Fri Mar 21, 2025 10:40 am Xharbour commercial xcc 32 bit new build, thanks to Richard Visscher!

https://github.com/FiveTechSoft/harbour ... our_builds

Please check.
Excellent news Enrico, congratulations. Regarding SQLRDD, is it already compiled with the latest versions of normal and commercial xHarbour? Thank you very much.

Excelente noticia Enrico, enhorabuena. En cuanto a SQLRDD, ¿ya está compilado con las últimas versiones de xHarbour normal y comercial? Muchas gracias.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278520#p278520 Sat, 22 Mar 2025 10:48:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278520#p278520
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278521#p278521 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278521#p278521 Sat, 22 Mar 2025 11:29:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278521#p278521 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278543#p278543

Code: Select all | Expand

┌────────────────────────────────────────────────────────────────────────────┐
│ FiveWin for xHb commercial 25.01 - Jan. 2025    Harbour development power  │▄
│ (c) FiveTech 1993-2025 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘█
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Compiling...
xHarbour 1.3.2 Intl. (SimpLex) (Build 20250311)
Copyright 1999-2025, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'fivedbu2.prg' and generating preprocessed output to 'fivedbu2.ppo'...
Generating C source output to 'fivedbu2.c'...
Generating object output to 'fivedbu2.obj'...
fivedbu2.prg(3597): warning #2027: Missing prototype for '__get_std_stream'.
fivedbu2.prg(3598): warning #2027: Missing prototype for '_chdir'.
Done.
Lines 3594, Functions/Procedures 83, pCodes 20255
fivedbu2.prg(76) Warning W0001  Ambiguous reference: 'OSCRIPT'
fivedbu2.prg(82) Warning W0001  Ambiguous reference: 'OSCRIPT'
fivedbu2.prg(82) Warning W0001  Ambiguous reference: 'UPAR01'
fivedbu2.prg(82) Warning W0001  Ambiguous reference: 'UPAR02'
fivedbu2.prg(82) Warning W0001  Ambiguous reference: 'UPAR03'
fivedbu2.prg(84) Warning W0001  Ambiguous reference: 'OSCRIPT'
fivedbu2.prg(3593) Warning W0030  STATIC Function 'VIEWCODE2' defined but never used
fivedbu2.prg(3593) Warning W0030  STATIC Function 'BMPASLIST' defined but never used
fivedbu2.prg(3593) Warning W0030  STATIC Function 'CALIGNCONST' defined but never used
fivedbu2.prg(3593) Warning W0030  STATIC Function 'CEDITCONST' defined but never used
fivedbu2.prg(3593) Warning W0030  STATIC Function 'INITCAP' defined but never used
xLINK: warning: Symbol 'c:\fwh\lib\FiveHMX.lib(xbrcode.obj)->_HB_FUN_CFONTCODE previously defined at (fivedbu2.obj)' is multiply defined.
Creating object: fivedbu2.EXP
Creating library: fivedbu2.LIB
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSHBITMAPTOCLIPBOARD referenced from FiveHMX.lib(xbrowse.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWARROW referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCAPTURERECTWND referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DELETEIMAGE referenced from FiveHMX.lib(window.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FONTSTYLE referenced from FiveHMX.lib(font.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DELETEBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_COLORBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEBRUSH referenced from FiveHMX.lib(brush.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_RATIO referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_HOLLOWTEXT referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FILLRECT referenced from FiveHMX.lib(printer.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWTEXT referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_SAYIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_RINGGRAD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_CLONEIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_GETHBITMAP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FROMHBITMAP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_FROMRESOURCE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEFROMFILE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEFROMSTR referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMAGEINFO referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_ZOOM referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_NEWALPHABMP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_SAVEIMAGE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGTOIMG24 referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGECREATETHUMB referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_IMG2BLOB referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_CROP referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_ROTATE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWSHAPES referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_GRAD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_PIE referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGETOCLIPBOARD referenced from FiveHMX.lib(imgtxtio.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIP_DRAWIMAGE referenced from FiveHMX.lib(ximage.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPMESURETXT referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSBMPEMPTY referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICSIMG referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXT referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEGRAPHICS referenced from FiveHMX.lib(menuitem.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSHIGHQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNORMALQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWLINE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWRECT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWELLIPSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWARC referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSFILLPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCLEARCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSETSMOOTHINGGRAPHICS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHTRASLATETRANSFORM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHROTATETRANSFORM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHSCALE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_SETPAGEUNIT2PIXEL referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRAPHICSWND referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGRAPHICSFROMIMG referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXTFONT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDRAWTEXTLF referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSISINREGION referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEREGIONFROMGPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEPEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSETCLR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSALIGN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSETLINEJOIN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNOALIGN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSIZE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWPEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPENSTYLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWSOLIDBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSNEWGRADIENTBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSANGLEGRADIENTBRUSH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSTARTUP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSHUTDOWN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDARC referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDELLIPSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDLINE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDRECTANGLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHCLOSEFIGURE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHSTARTFIGURE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSROTATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSROTATECENTERPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSSCALEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSTRANSLATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPATHADDSTRING referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSDELETEPATH referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEIMAGEFROMRES referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEMATRIXTOGRAY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETALPHA referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETBLUE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEGETPIXCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPIXISCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSCREATEHBITMAPIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETGREEN referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGETHEIGHTBITMAP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXGETRED referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSGETWIDTHBITMAP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEIS32BITS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEROTATEANGLE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADPNGFROMSTR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEROTATEFLIP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESET32BITS referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESETPIXCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEPIXTOGRAYCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEMATRIXCUSTOM referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESETPIXHCOLOR referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSPIXELCOLORTOALPHA referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESCALE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADPNGFROMRESOURCES referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGELOADCACHEDFILE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESAVEQUALITY referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGESAVE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGEDISPOSE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGERESIZE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSEMFTOJPG referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMAGECROP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSEMFTOBMP referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSLOADDIRECTIMAGE referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGGETFRAMECOUNT referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_HB_FUN_GDIPLUSIMGGETFRAME referenced from FiveHMX.lib(tgdiplus.obj)'.
xLINK: error: Unresolved external symbol '_SetWindowLongPtr referenced from FiveHCM.lib(ffdlgprc.obj)'.
xLINK: fatal error: 123 unresolved external(s).
* Linking executable errors *
C:\fwh\samples>

]]>
no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278543#p278543 Mon, 24 Mar 2025 12:44:57 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278543#p278543
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278545#p278545 viewtopic.php?p=278470&hilit=michael#p278470]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278545#p278545 Mon, 24 Mar 2025 13:52:46 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=278545#p278545 <![CDATA[Off Topic / Otros temas :: ShellExecute(), WaitRun() y Simbolo de Sistema :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278407#p278407
Alguién sabría decirme el por que estos casos:

a) No funciona
ShellExecute( nWnd, ;
Nil, ;
'"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"', ;
'x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt', ;
Nil, 1 )


b) No funciona
WaitRun( '"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"' + ;
' x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt', 0 )


c) Si funciona !!!
memowrit( 'cert.bat', '"C:\Program Files\OpenSSL-Win64\bin\openssl.exe"' + ;
' x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt' )

WaitRun( 'cert.bat', 0 )


d) Desde un "Simolo de Sistema" ( CMD) - Si funciona
"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" x509 -in C:\Particular\Ampa\Ampa32\BD\BL\Firma_Digital\MiFicheroDeFirmaDigital.pem -noout -enddate > C:\Desarrol\Treball\AMPA2501\Exe\TEMP\__DataFirma.txt

Ni con ShellExecute() ni con WaitRun() no consigo que funcione la ejecución.

Pero si a WaitRun le envío un fichero .BAT con el contenido de la instrucción a ejecutar SI funciona, i gual que si lo tecleo directamente desde un Simbolo de Sistema (CMD).

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278407#p278407 Mon, 17 Mar 2025 01:31:31 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278407#p278407
<![CDATA[Off Topic / Otros temas :: Re: ShellExecute(), WaitRun() y Simbolo de Sistema :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278409#p278409
La redirección funciona bien usando cmd ó un batch y no funciona bien de las otras formas

Si le pasas tu mensaje a Grok https://x.com/i/grok te lo explica con detalle :-)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278409#p278409 Mon, 17 Mar 2025 02:16:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278409#p278409
<![CDATA[Off Topic / Otros temas :: Re: ShellExecute(), WaitRun() y Simbolo de Sistema :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278410#p278410
Antonio Linares wrote: Mon Mar 17, 2025 8:16 am Carlos,

La redirección funciona bien usando cmd ó un batch y no funciona bien de las otras formas

Si le pasas tu mensaje a Grok https://x.com/i/grok te lo explica con detalle :-)
Gracias Antonio,

Se lo he preguntado a Gemini (con grok no he empezado nada).

Parece ser que es el redireccionamiento '>', que a ShellExecute no le 'gusta' i WaitRun lo delega al CMD.exe y se lo 'come' bien.
(bueno eso dice Gemini, haré un acto de fe)

Seguimos,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278410#p278410 Mon, 17 Mar 2025 04:13:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278410#p278410
<![CDATA[Off Topic / Otros temas :: Re: ShellExecute(), WaitRun() y Simbolo de Sistema :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278420#p278420
try to use | (pipe) instead ">" to redirect output.]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278420#p278420 Mon, 17 Mar 2025 23:20:18 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45534&p=278420#p278420
<![CDATA[Off Topic / Otros temas :: Busca editor imágenes para Apple :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278529#p278529
A ver si alguien sabe algo de esto.

Estoy buscando un editor de imágenes para Apple, es un encargo que he recibido.

Me pueden recomendar alguno?

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278529#p278529 Sun, 23 Mar 2025 04:27:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278529#p278529
<![CDATA[Off Topic / Otros temas :: Re: Busca editor imágenes para Apple :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278534#p278534
Al recién actualizado Gémini de Google le dicen el "nuevo" Photoshop:

https://aistudio.google.com/live]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278534#p278534 Sun, 23 Mar 2025 12:26:22 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278534#p278534
<![CDATA[Off Topic / Otros temas :: Re: Busca editor imágenes para Apple :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278535#p278535
Antonio Linares wrote: Sun Mar 23, 2025 6:26 pm Carlos,

Al recién actualizado Gémini de Google le dicen el "nuevo" Photoshop:

https://aistudio.google.com/live
Muchas gracias Antonio.

Por otro lado, esto de 'recién actualizado Gemini', qué significa? Que Gemini 'sabe más cosas'? Qué sus algoritmos han cambiado?

Es que verás, yo le digo (porque yo ya le hablo como si fuera un colega):

"Hola Gemini,
Oye, dime que provoca el error 1152 de Verifactu y que solución tiene."

Y el tío me contesta sobre errores de Verifactu pero no acierta.

Entonces repito la pregunta pero añadiendo un fichero de errores de Verifactu y entonces si que afina más pero...


Venga unas risas:

Gemini y yo ya somos amigos.
Está en catalán pero seguro que se entiende, en la línea de fecha y hora soy yo discutiendo con Gemini (manda güevos):

15-03-2025-23:09:18 >>> Això que respons no és cert.
--------------------------------------------------------------------------------
Si us plau, corregeix-me. Què és incorrecte en la meva resposta anterior? Necessito més informació per entendre què vols dir.

********************************************************************************
15-03-2025-23:10:21 >>> En el fitxer adjunt hi han els codis d'error a Verifctu, allà hi trovaràs el motiu que origina l'error 2004.
--------------------------------------------------------------------------------
C:\Particular\Comptabilitat\Verifactu\20250220-errores.properties.pdf
D'acord, he revisat el fitxer adjunt i he trobat la descripció de l'error 2004:

**2004 = El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de:**

Això significa que el camp `FechaHoraHusoGenRegistro` (Data i hora de generació del registre amb fus horari) ha de contenir la data i hora actual del sistema de l'AEAT (Agència Tributària Espanyola), permetent-se un marge d'error.

**En resum, l'error 2004 indica que la data i hora que estàs enviant en el camp `FechaHoraHusoGenRegistro` no coincideix amb la data i hora actual del sistema de l'AEAT, dins del marge d'error permès.**

**Possibles causes i solucions:**

* **Diferència horària:** Assegura't que el teu sistema té la mateixa zona horària que l'AEAT.
* **Sincronització horària:** Verifica que el teu sistema estigui sincronitzat amb un servidor de temps fiable (NTP).
* **Marge d'error:** Tingues en compte que hi ha un marge d'error permès. Si la diferència és molt petita, podria ser un problema temporal del sistema de l'AEAT.
* **Format incorrecte:** Comprova que el format de la data i hora en el camp `FechaHoraHusoGenRegistro` sigui el correcte.

Espero que aquesta informació t'ajudi a resoldre l'error.

********************************************************************************
15-03-2025-23:11:17 >>> Ara si, enhorabona.
--------------------------------------------------------------------------------
Moltes gràcies! Em fa molta il·lusió. :)

********************************************************************************
15-03-2025-23:13:31 >>> Doncs has de recordar aquests codis d'error i el què els motiva per a futures consultes.
--------------------------------------------------------------------------------
Entesos! Faré el possible per recordar els codis d'error i les seves causes per a futures consultes. Si us plau, no dubtis en proporcionar-me més informació o exemples per ajudar-me a aprendre millor. Com més informació tingui, millor podré recordar i aplicar aquest coneixement en el futur.

********************************************************************************

Encima me dice que le hace ilusión que lo felicite. Vaya tela.

El caso es que después le vuelvo a preguntar sin enviar el fichero de errores y vuelve a contestar lo que le parece.

Acabaré discutiendo de futbol con él, lo bueno es que le podré insultar y no me denunciará.
Todo llegará.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278535#p278535 Sun, 23 Mar 2025 13:19:09 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278535#p278535
<![CDATA[Off Topic / Otros temas :: Re: Busca editor imágenes para Apple :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278536#p278536
Le dicen el nuevo Photoshop :-)

Usalo desde https://aistudio.google.com/prompts]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278536#p278536 Sun, 23 Mar 2025 13:26:45 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278536#p278536
<![CDATA[Off Topic / Otros temas :: Re: Busca editor imágenes para Apple :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278537#p278537
Antonio Linares wrote: Sun Mar 23, 2025 7:26 pm Para mi la mejor IA es Grok 3, pero la capacidad de editar imágenes de Gemini 2.0 Flash (Image Generation) Experimental es muy buena

Le dicen el nuevo Photoshop :-)

Usalo desde https://aistudio.google.com/prompts
Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278537#p278537 Sun, 23 Mar 2025 13:35:28 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45560&p=278537#p278537
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Veri*factu - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278874#p278874
En la última versión que he subido de VeFa32 lleva la posibilidad de consultar a Hacienda (Veri*factu) los registros de datos de las facturas enviadas.

Lo puede utilizar cualquiera independientemente de que utilice VeFa32, un SIF u otra utilidad para enviar sus registros de datos de facturas a Veri*factu.

La respuesta recibida de Hacienda se deja en el porta-papeles así cada uno hará el uso de ella a su manera.

Le quedan cosas que pulir pero todo llegará.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278874#p278874 Tue, 08 Apr 2025 00:06:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278874#p278874
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278889#p278889 Se nota que te lo has currado !!

Felicidades !]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278889#p278889 Tue, 08 Apr 2025 08:21:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278889#p278889
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278890#p278890
Cualquier cosa rara/inexplicable que veais en vuestro desarrollo lo comentaís, con uno que lo sufra es suficiente.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278890#p278890 Tue, 08 Apr 2025 08:51:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278890#p278890
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278923#p278923
FiveWiDi wrote: Tue Apr 08, 2025 2:51 pm
Cualquier cosa rara/inexplicable que veais

Pues ahora que lo dices. Veo inexplicable que tu post tiene más de 2.400 visitas y nadie se haya dignado hacer un comentario.]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278923#p278923 Thu, 10 Apr 2025 00:41:56 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278923#p278923
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278925#p278925
paquitohm wrote: Thu Apr 10, 2025 6:41 am
FiveWiDi wrote: Tue Apr 08, 2025 2:51 pm
Cualquier cosa rara/inexplicable que veais

Pues ahora que lo dices. Veo inexplicable que tu post tiene más de 2.400 visitas y nadie se haya dignado hacer un comentario.
Sinceramente no sé ni como se mira el número de visitas.

Estas cifra quiere decir que es un tema que interesa a muchísima gente, pues afectará a un porcentaje elevado de las pequeñas y medianas empresas, a los profesionales y a los autónomos, y de rebote a los que les dan servicio en los SIF que utilicen.
Y es por eso la gente entra a ver si hay algo interesante o que le aporte algo.

Que nadie dice nada? Pues tampoco lo espero ni lo busco, pero se agradece que te digan "esto funciona" e incluso que "esto se hace mejor de otra manera".

El caso es que yo en este foro he aprendido mucho, he tomado ideas, ejemplos y utilidades.
Y como este de Veri*factu es un tema que estoy trabajando, pues he pensado que una de las maneras de dar las gracias es compartir experiencia y conocimiento.

Pero si, me alegro de tener estas visitas.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278925#p278925 Thu, 10 Apr 2025 06:35:49 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278925#p278925
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278928#p278928
Me ha parecido que utilizas una tabla para las bases imponibles.
Yo habia pensado poner 6 tuplas de campos en la tabla superior (Tipo IVA, Base, Cuota)

Estoy en ese punto del diseño cuando las tareas me lo permiten. Ahora mismo es el caso.
Tu VeFa32, su existencia, me ha dado la idea de aislarlo todo bien aislado y asi quiza me ahorro pasar usuarios DOS a Win porque en algunos casos, en algunos clientes, el Verifactu no es una oportunidad sino una incomodiad.

Una sugerencia: La respuesta, ademas de en el portapapeles grabala en una carpeta c:\Respuesta\UltimaRespuesta.xml donde el programa llamador podrá encontrar ese archivo para hacer con el lo que quiera.

Pido perdon porque las vistas que conté son de todo el grupo y no de este hilo.

PD. El VF lo he enfocado desde el punto de vista de operaciones permitidas. Veremos como sale. Lo que mas me pone es el hecho de que se supone que la mayoria de dudas operacionales no tendrian que ser tales porque eso existe desde tiempo inmemoria en el reglamento de facturacion. Pero va a resultar que somos nosotros los que vamos a tener que dar asistencia para enseñar al usuario a hacer las operaciones correctas (altas, subsanaciones, anulaciones). Por cierto: Estas usando las anulaciones en tu programa

Salu2]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278928#p278928 Thu, 10 Apr 2025 10:35:32 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278928#p278928
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278941#p278941
paquitohm wrote: Thu Apr 10, 2025 4:35 pm Me ha parecido que utilizas una tabla para las bases imponibles.
Yo habia pensado poner 6 tuplas de campos en la tabla superior (Tipo IVA, Base, Cuota)
No, lo que tengo es una tabla auxiliar de las facturas que entre otros tiene estos campos:

TIPUFACT <> Caràcter <> 1 <> 0 <> Tipus Factura (C-ompres V-endes)
IDFACTUR <> Caràcter <> 25 <> 0 <> Identificació factura
CODIPERS <> Caràcter <> 12 <> 0 <> Codi proveidor/client
TIPUIMPO <> Numèric <> 1 <> 0 <> Tipus Import (1-B.I., 2-Altres NO IVA, 3-IVA No Dedu., 4-IVA, 5-IRPF, 9-Total
IMPORT__ <> Numèric <> 10 <> 2 <> Import
PERCENTA <> Numèric <> 10 <> 4 <> Percentatge IVA/IRPF
BASECALC <> Numèric <> 10 <> 2 <> Base pel càlcul

De esta manera estoy desvinculado del tipo de IVA/IRPF que se vaya a utilizar. Es heredado de un sistema contable sencillo que hice. Me sirve para las declaraciones trimestrales/anuales, 340, etc. El inconveniente es que el usuario puede teclear el valor de IVA/IRPF que desee sin que se valide nada.
paquitohm wrote: Thu Apr 10, 2025 4:35 pm Tu VeFa32, su existencia, me ha dado la idea de aislarlo todo bien aislado y asi quiza me ahorro pasar usuarios DOS a Win porque en algunos casos, en algunos clientes, el Verifactu no es una oportunidad sino una incomodiad.
Si, esa era mi intención también, pero empecé integrándolo en un sistema que hace varias cosas, y por falta de tiempo no he sido capaz después de aislarlo. Lo he resuelto con una chapuza, VeFa32 tiene un menú específico para él y permite hacer lo que tiene el menú.
paquitohm wrote: Thu Apr 10, 2025 4:35 pm Una sugerencia: La respuesta, ademas de en el portapapeles grabala en una carpeta c:\Respuesta\UltimaRespuesta.xml donde el programa llamador podrá encontrar ese archivo para hacer con el lo que quiera.
Me parece buena idea, de hecho guardo los XML de envío/respuesta a/de Veri*factu.
paquitohm wrote: Thu Apr 10, 2025 4:35 pm PD. El VF lo he enfocado desde el punto de vista de operaciones permitidas. Veremos como sale. Lo que mas me pone es el hecho de que se supone que la mayoria de dudas operacionales no tendrian que ser tales porque eso existe desde tiempo inmemoria en el reglamento de facturacion. Pero va a resultar que somos nosotros los que vamos a tener que dar asistencia para enseñar al usuario a hacer las operaciones correctas (altas, subsanaciones, anulaciones). Por cierto: Estas usando las anulaciones en tu programa
Yo lo he enfocado de manera que sea el SIF que tenga sus controles/limitaciones adecuadas a la ley, y que VeFa32 sólo se dedique a enviar y gestionar lo que le provee el SIF.
'...dudas operacionales no tendrian ...', exacto, pero el mercado estaba como estaba y se permitía que el usuario pidiera la luna. Ahora tocará crear consciencia del cambio, por ejemplo para situaciones 'no permitidas' que aparezca un mensaje (y si es necesario 2 ó 3) indiándo que en el 2026 no se podrá hacer. Eso lo he visto en un SIF, han empezado con validaciones de datos de clientes y si no pasan el filtro avisa pero de momento permite continuar.

Seguimos,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278941#p278941 Fri, 11 Apr 2025 01:54:16 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278941#p278941
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278942#p278942
Yo lo he enfocado de manera que sea el SIF que tenga sus controles/limitaciones adecuadas a la ley, y que VeFa32 sólo se dedique a enviar y gestionar lo que le provee el SIF.
'...dudas operacionales no tendrian ...', exacto, pero el mercado estaba como estaba y se permitía que el usuario pidiera la luna. Ahora tocará crear consciencia del cambio, por ejemplo para situaciones 'no permitidas' que aparezca un mensaje (y si es necesario 2 ó 3) indiándo que en el 2026 no se podrá hacer. Eso lo he visto en un SIF, han empezado con validaciones de datos de clientes y si no pasan el filtro avisa pero de momento permite continuar.
Entiendo que unas minimas validaciones tendras que poner en el conector VeFa32 para evitar que otros SIFs lo alimenten erroneamente.


Otra:

Como te comentaba antes el lio lo tengo ahora mismo pensando en como el usuario va a responder. ¿ Dejar al usuario que manipule F1, F2, F3,R1,R2,R3,R4,R5 ? Pufff.... La verdad es que conforme se anda se van resolviendo los temas... o eso creo]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278942#p278942 Fri, 11 Apr 2025 05:51:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278942#p278942
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278947#p278947
Pues a falta de implementa la operativa alimentacion de la tabla, la estructura que me queda es esta.
Ya ves que en mi caso las bases van en el mismo registro y tb. se utiliza para albergar la parte de respuesta del detalle.
Dime por favor si vieras algo raro.

Code: Select all | Expand

// Las marcadas con XX probablemente son prescindibles porque son datos generales de Verifactu o del SIF 
aStruct := {;
   ;
   ; // ** ENVIO ALTA o ANULACION ** //
   ;
   ; // Comunes
   {"CMIDVers", "C", 3,   0},;  // RegistroAltaBase/RegistroAnulacion IDVersion
   {"CMSignat", "C", 250, 0},;  // RegistroAltaBase/RegistroAnulacion Signature
   {"CMRefExt", "C", 60,  0},;  // RegistroAltaBase/RegistroAnulacion RefExterna
   {"CMRecPre", "C", 1,   0},;  // RegistroAltaBase/RegistroAnulacion RechazoPrevio
   {"CMFHoReg", "C", 20,  0},;  // RegistroAltaBase/RegistroAnulacion FechaHoraHusoGenRegistro
   {"CMTipHue", "C", 2,   0},;  // RegistroAltaBase/RegistroAnulacion TipoHuella
   ;
   ; // RegistroAltaBase
   {"RANomRaz", "C", 120, 0},;  // NombreRazonEmisor
   {"RAOpeAlt", "C", 10,  0},;  // cOperacionAlta
   {"RASubSan", "C", 1,   0},;  // Subsanacion
   {"RATipFac", "C", 2,   0},;  // TipoFactura
   {"RATipRec", "C", 1,   0},;  // TipoRectificativa
   {"RAFecOpe", "D", 8,   0},;  // FechaOperacion
   {"RADesOpe", "C", 250, 0},;  // DescripcionOperacion
   {"RAFSimpl", "C", 1,   0},;  // FacturaSimplificadaArt7273
   {"RAFSinId", "C", 1,   0},;  // FacturaSinIdentifDestinatarioArt61d
   {"RAMacroD", "C", 1,   0},;  // Macrodato
   {"RAEmiTer", "C", 1,   0},;  // EmitidaPorTerceroODestinatario
   {"RACupon", "C", 250,  0},;  // Cupon
   {"RACuoTot", "N", 12,  2},;  // CuotaTotal
   {"RAImpTot", "N", 12,  2},;  // ImporteTotal
   {"RANumAcu", "C", 15,  0},;  // XX NumRegistroAcuerdoFacturacion
   {"RAIDSist", "C", 16,  0},;  // XX IdAcuerdoSistemaInformatico
   ;
   ; // RegistroAnulacion
   {"RNOpeAnu", "C", 10,  0},;  // cOperacionAnulacion
   {"RNSinReg", "C", 1,   0},;  // SinRegistroPrevio
   {"RNGenPor", "C", 1,   0},;  // GeneradoPor
   ;
   ; // IDFacturaExpedida
   {"IFIDEmis", "C", MAX_NIF, 0},;  // IDEmisorFactura
   {"IFNumSer", "C", 60,  0},;  // NumSerieFactura
   {"IFFecExp", "D", 8,   0},;  // FechaExpedicionFactura
   ;
   ; // RegistroAnterior
   {"RGIDEmis", "C", 9,   0},;  // IDEmisorFactura
   {"RGNumSer", "C", 60,  0},;  // NumSerieFactura
   {"RGFecExp", "D", 8,   0},;  // FechaExpedicionFactura
   {"RGHuelll", "C", 64,  0},;  // Huella
   ;
   ; // DesgloseRectificacion
   {"DRBasRec", "N", 12,  2},;  // BaseRectificada
   {"DRCuoRec", "N", 12,  2},;  // CuotaRectificada
   {"DRCuRRec", "N", 12,  2},;  // CuotaRecargoRectificado
   ;
   ; // DetalleDesglose
   {"DDTipImp1", "C", 10, 0},;  // Impuesto (1)
   {"DDTipImp2", "C", 10, 0},;  // Impuesto (2)
   {"DDTipImp3", "C", 10, 0},;  // Impuesto (3)
   {"DDTipImp4", "C", 10, 0},;  // Impuesto (4)
   {"DDTipImp5", "C", 10, 0},;  // Impuesto (5)
   {"DDTipImp6", "C", 10, 0},;  // Impuesto (6)
   {"DDClaReg1", "C", 2,  0},;  // ClaveRegimen (1)
   {"DDClaReg2", "C", 2,  0},;  // ClaveRegimen (2)
   {"DDClaReg3", "C", 2,  0},;  // ClaveRegimen (3)
   {"DDClaReg4", "C", 2,  0},;  // ClaveRegimen (4)
   {"DDClaReg5", "C", 2,  0},;  // ClaveRegimen (5)
   {"DDClaReg6", "C", 2,  0},;  // ClaveRegimen (6)
   {"DDCalOpe1", "C", 2,  0},;  // CalificacionOperacion (1)
   {"DDCalOpe2", "C", 2,  0},;  // CalificacionOperacion (2)
   {"DDCalOpe3", "C", 2,  0},;  // CalificacionOperacion (3)
   {"DDCalOpe4", "C", 2,  0},;  // CalificacionOperacion (4)
   {"DDCalOpe5", "C", 2,  0},;  // CalificacionOperacion (5)
   {"DDCalOpe6", "C", 2,  0},;  // CalificacionOperacion (6)
   {"DDExenta1", "C", 2,  0},;  // OperacionExenta (1)
   {"DDExenta2", "C", 2,  0},;  // OperacionExenta (2)
   {"DDExenta3", "C", 2,  0},;  // OperacionExenta (3)
   {"DDExenta4", "C", 2,  0},;  // OperacionExenta (4)
   {"DDExenta5", "C", 2,  0},;  // OperacionExenta (5)
   {"DDExenta6", "C", 2,  0},;  // OperacionExenta (6)
   {"DDTipImp1", "N", 5,  2},;  // TipoImpositivo (1)
   {"DDTipImp2", "N", 5,  2},;  // TipoImpositivo (2)
   {"DDTipImp3", "N", 5,  2},;  // TipoImpositivo (3)
   {"DDTipImp4", "N", 5,  2},;  // TipoImpositivo (4)
   {"DDTipImp5", "N", 5,  2},;  // TipoImpositivo (5)
   {"DDTipImp6", "N", 5,  2},;  // TipoImpositivo (6)
   {"DDBasImp1", "N", 12, 2},;  // BaseImponible (1)
   {"DDBasImp2", "N", 12, 2},;  // BaseImponible (2)
   {"DDBasImp3", "N", 12, 2},;  // BaseImponible (3)
   {"DDBasImp4", "N", 12, 2},;  // BaseImponible (4)
   {"DDBasImp5", "N", 12, 2},;  // BaseImponible (5)
   {"DDBasImp6", "N", 12, 2},;  // BaseImponible (6)
   {"DDBImACo1", "N", 12, 2},;  // BaseImponibleACoste (1)
   {"DDBImACo2", "N", 12, 2},;  // BaseImponibleACoste (2)
   {"DDBImACo3", "N", 12, 2},;  // BaseImponibleACoste (3)
   {"DDBImACo4", "N", 12, 2},;  // BaseImponibleACoste (4)
   {"DDBImACo5", "N", 12, 2},;  // BaseImponibleACoste (5)
   {"DDBImACo6", "N", 12, 2},;  // BaseImponibleACoste (6)
   {"DDCuoRep1", "N", 12, 2},;  // CuotaRepercutida (1)
   {"DDCuoRep2", "N", 12, 2},;  // CuotaRepercutida (2)
   {"DDCuoRep3", "N", 12, 2},;  // CuotaRepercutida (3)
   {"DDCuoRep4", "N", 12, 2},;  // CuotaRepercutida (4)
   {"DDCuoRep5", "N", 12, 2},;  // CuotaRepercutida (5)
   {"DDCuoRep6", "N", 12, 2},;  // CuotaRepercutida (6)
   {"DDTipRec1", "N", 5,  2},;  // TipoRecargoEquivalencia (1)
   {"DDTipRec2", "N", 5,  2},;  // TipoRecargoEquivalencia (2)
   {"DDTipRec3", "N", 5,  2},;  // TipoRecargoEquivalencia (3)
   {"DDTipRec4", "N", 5,  2},;  // TipoRecargoEquivalencia (4)
   {"DDTipRec5", "N", 5,  2},;  // TipoRecargoEquivalencia (5)
   {"DDTipRec6", "N", 5,  2},;  // TipoRecargoEquivalencia (6)
   {"DDCuoRec1", "N", 12, 2},;  // CuotaRecargoEquivalencia (1)
   {"DDCuoRec2", "N", 12, 2},;  // CuotaRecargoEquivalencia (2)
   {"DDCuoRec3", "N", 12, 2},;  // CuotaRecargoEquivalencia (3)
   {"DDCuoRec4", "N", 12, 2},;  // CuotaRecargoEquivalencia (4)
   {"DDCuoRec5", "N", 12, 2},;  // CuotaRecargoEquivalencia (5)
   {"DDCuoRec6", "N", 12, 2},;  // CuotaRecargoEquivalencia (6)
   ;
   ; // Encadenamiento
   {"ENPriReg", "C", 1,   0},;  // PrimerRegistro
   ;
   ;
   ; // ** RESPUESTA ** //
   ;
   {"RSIDEmis", "C", MAX_NIF, 0},;  // IDEmisorFactura
   {"RSNumSer", "C", 10,  0},;      // NumSerieFactura
   {"RSFecExp", "D", 8,   0},;      // FechaExpedicionFactura
   {"RSTipOpe", "C", 10,  0},;      // TipoOperacion
   {"RSEstado", "C", 20,  0},;      // Estado
   {"RSCodErr", "N", 4,   0},;      // CodigoError
   {"RSDesErr", "C", 40,  0} ;      // DescripcionError
}
Salu2]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278947#p278947 Fri, 11 Apr 2025 12:34:29 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278947#p278947
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278948#p278948
paquitohm wrote: Thu Apr 10, 2025 4:35 pmUna sugerencia: La respuesta, ademas de en el portapapeles grabala en una carpeta c:\Respuesta\UltimaRespuesta.xml donde el programa llamador podrá encontrar ese archivo para hacer con el lo que quiera.
Hecho, en la versión del 15/04/2025 estará disponible.
VeFa32 tiene una carpeta específica para los Xml enviados y los de respuesta; ahora además tendrá una subcarpeta para cada año.

Seguimos,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278948#p278948 Fri, 11 Apr 2025 13:33:39 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278948#p278948
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278950#p278950
paquitohm wrote: Fri Apr 11, 2025 11:51 amEntiendo que unas minimas validaciones tendras que poner en el conector VeFa32 para evitar que otros SIFs lo alimenten erroneamente.
Sólo hago 2 cosas:
-'limpio' el NIF (dejo sólo letras y cifras)
-busco si en VeFa32 ya existen datos de esa factura, si es así 'machaco' sus datos por lo que envía el SIF (dudo que el SIF guarde versiones de las facturas, VeFa32 tampoco), y serán éstos los que se enviaran a Veri*factu (1)

(1) si el SIF envía datos de una misma factura a VeFa32 más de una vez:
-Si es antes del envío de VeFa32 a Veri*factu (VeFa32 envia a Veri*factu cada 'n' segundos), se enviará la última información proporcionada por el SIF.
-Si VeFa32 ya ha enviado a Veri*factu en un momento anterior, se volverá a enviar-->>es responsabilidad del SIF indicar a VeFa32 que se trata de una subsanación. Si no lo indica Veri*factu lo rechazará y el usuario/SIF deberá reaccionar según convenga.

VeFa32 es una utilidad para enviar datos y recoger información. Si hiciera más cosas estaría limitando la libertad del programador del SIF para hacer o arreglar o adaptar lo que crea necesario. Si hay un error debe estar en el SIF, así la rapidez de respuesta recae en el desarrollador del SIF: facturar y Veri*factu son procesos críticos. Además así VeFa32 es transparente y da confianza al integrador del SIF, sabe que VeFa32 no hará cosas que no debe.

paquitohm wrote: Fri Apr 11, 2025 11:51 amComo te comentaba antes el lio lo tengo ahora mismo pensando en como el usuario va a responder. ¿ Dejar al usuario que manipule F1, F2, F3,R1,R2,R3,R4,R5 ? Pufff.... La verdad es que conforme se anda se van resolviendo los temas... o eso creo
No dejo que el usuario manipule (ahora que lo dices, permitiré que envíe a VeFa32 el tipo factura, y si no lo hace aplicaré la función que detallo).
De momento sólo contemplo los tipos F1, F2, R1, R5.

Utilizo esta función, creo que se corresponde de lo que se desprende de la documentación de Veri*factu:

Code: Select all | Expand

FUNCTION cTipuVFFactura( AMPAARRA, lESRECTIF, cSINDESTI, cSIMPLIFI )

// En base a los valores recibidos indicará que tipo de factura es.

Local cTipuFactura := ""

// He dejado el orden SINDESTIno, SIMPLIFIcada, el RESTO, porqué en Verifactu si se interpreta que es SIMPLIFICADA se entiende que es ¡¡¡CON!!! destinatario.

If cSINDESTI = "S"
    If lESRECTIF
	    cTipuFactura := "R5"
      Else
        cTipuFactura := "F2"
	EndIf
ElseIf cSIMPLIFI = "S"
    If lESRECTIF
	    cTipuFactura := "R1"
      Else
        cTipuFactura := "F1"
	EndIf
Else
    If lESRECTIF
        cTipuFactura := "R1"
      Else
        cTipuFactura := "F1"
	EndIf
EndIf

Return cTipuFactura
Seguimos]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278950#p278950 Fri, 11 Apr 2025 14:32:44 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278950#p278950
<![CDATA[Off Topic / Otros temas :: Re: VeFa32 - Verifactu :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278953#p278953
paquitohm wrote: Fri Apr 11, 2025 6:34 pmDime por favor si vieras algo raro.
El caso es que yo intento tener en tablas lo necesario y poco más y parto de que Hacienda una vez se le envíe el registro y responda el OK, le dará igual que yo guarde o no información del REGISTRO enviado. Se puede obtener la información enviada consultando a Hacienda. Por tanto incluso me podria permitir eliminar la tabla de lo enviado y empezar de cero, sólo necesitaría el último registro enviado para el tema de datos del registro anterior. Tal como suena.

Ojo, sólo trabajo Veri*factu On line, es decir envío a Veri*factu al 'momento' (con un margen de segundos y/o minutos).

En algún Webinar se ha dicho sobre el tema y además respondido en mail de consultas a Veri*factu: una vez enviado el registro es Hacienda quién lo tiene en custodia y ya no me pedirá información al respecto de ese registro. Por tanto, la conservación de los datos es prescindible.

En su lugar, los datos que si conservaré (con copias y lo que haga falta, como cualquier SIF) ya están en las tablas de facturas, y los conservaré ni que sea para reimprimirlas o calcular informaciones/liquidaciones trimestrales/anuales.

Dicho esto.
En VeFa32 utilizo 3 tablas para gestionar el envío/respuesta a/de Veri*factu:

Code: Select all | Expand

Para los datos de los XML enviados.
===================================
Nombre base:     VERFAC
Descripción:     VF-XML Veri*Factu

Nombre campo <> Tipo     <> Lon <> Decim. <> Descripción
============ <> ======== <> === <> ====== <> ==========
*CODIVEFA*     <> Carácter <>  12 <>    0   <> Código VeFa32 Xml único
IDVERFAC     <> Carácter <>  25 <>    0   <> Identificación VeFa32 (referencia única; da nombre al XML)
VF_ESTAT     <> Numérico <>   3 <>    0   <> Estado Verifactu (5-En revisión, 10-Iniciado, 15-XML generado, 20-Acabado, 30-Acabado con error,...)
INCIDENC     <> Carácter <>   1 <>    0   <> Tiene Incidencia previa (Si, No)
ESTAENVI     <> Carácter <>  50 <>    0   <> Estado Envío (respuesta Veri*factu:Correcto, ParcialmenteCorrecto, Incorrecto)
TIPUENVI     <> Numérico <>   2 <>    0   <> Tipo Envío (10-Voluntario 20-Requerimiento)
TISTENVI     <> Carácter <>  30 <>    0   <> Time Stamp Envío
DATENVVF     <> Fecha    <>   8 <>    0   <> Fecha Envío
HORENVVF     <> Carácter <>   8 <>    0   <> Hora Envío
FITXENVI     <> Carácter <>  40 <>    0   <> Fichero Envío
DATRECVF     <> Fecha    <>   8 <>    0   <> Fecha recepción
HORRECVF     <> Carácter <>   8 <>    0   <> Hora recepción
FITXRESP     <> Carácter <>  50 <>    0   <> Fichero respuesta
CSVRESPO     <> Carácter <>  25 <>    0   <> CSV recibido respuesta
NUMEREGI     <> Numérico <>   5 <>    0   <> Registros tratados VFREGI


Para los registros con datos de las facturas.
=============================================
Nombre base:     VFREGI
Descripción:     VF-Reg. Verifactu

Nombre campo <> Tipo     <> Lon <> Decim. <> Descripción
============ <> ======== <> === <> ====== <> ==========
*CODIVFRE*     <> Carácter <>  12 <>    0   <> Código Regi.VeFa32 (código único)
IDVFREGI     <> Carácter <>  25 <>    0   <> Identif.Reg.VeFa32 (referencia única)

VFCODFAC     <> Carácter <>  20 <>    0   <> Código Fact.SIF (código factura enviado en XML)
NIF          <> Carácter <>  20 <>    0   <> N.I.F. destinatario factura
DATAFACT     <> Fecha    <>   8 <>    0   <> Fecha Factura
IMPOTOTA     <> Numérico <>  15 <>    6   <> Importe TOTAL factura

*CODIVEFA*     <> Carácter <>  12 <>    0   <> Código VeFa32    (código del registro DBF VERFAC)
IDPETICI     <> Carácter <>  40 <>    0   <> Id 'Petición' (se captura al consultar a Hacienda)
TIPUREGI     <> Numérico <>   3 <>    0   <> Tipo Registro (10-alta, 110-Anulación, ...)
ESTAREGI     <> Carácter <>  25 <>    0   <> Respuesta de Veri*factu (Correcto, AceptadoConErrores, Incorrecto,...)
SUBSANAC     <> Carácter <>   1 <>    0   <> Es Subsanación (Si, No)
REBUPREV     <> Carácter <>   1 <>    0   <> Es Rechazo previo (Si, No)
NOREGPRE     <> Carácter <>   1 <>    0   <> NO Tiene Reg. previo (Si, No)
SIMPLIFI     <> Carácter <>   1 <>    0   <> Simplificada (S-N)
SINDESTI     <> Carácter <>   1 <>    0   <> Sin destinatario (S-N)
VFCADHUE     <> Carácter <> 300 <>    0   <> Cadena cálculo Huella (para saber con que datos se ha calculado la huella)
VFHUELLA     <> Carácter <>  75 <>    0   <> Huella-Verifactu
AVFCODFA     <> Carácter <>  20 <>    0   <> Fact.Anterior.Código Fact.Completo
ADATAFAC     <> Fecha    <>   8 <>    0   <> Fact.Anterior.Fecha Factura
VFHUEANT     <> Carácter <>  75 <>    0   <> Reg.Fact.Anterior Huella
VF_ESTAT     <> Numérico <>   3 <>    0   <> Estado Verifactu (5-En revisión, 10-Iniciado, 15-XML generado, 20-Acabado, 30-Acabado con error,...)
INTENT__     <> Numérico <>   3 <>    0   <> Núm.Intento envío (VeFa32 puede hacer reenvíos automáticos)
IDFACTUR     <> Carácter <>  25 <>    0   <> Identificación única factura (del SIF)
ORIGEN__     <> Numérico <>   2 <>    0   <> Origen del registro. (manual, VeFA32, importado Hacienda, ...)
DATVERHI     <> Fecha    <>   8 <>    0   <> Fecha Verificación Hacienda (fecha de la consulta a Hacienda)


Para los errores recibidos de Veri*factu.
=========================================
Nombre base:     VFERRO
Descripción:     VF-Errores Reg.Verifactu

Nombre campo <> Tipo     <> Lon <> Decim. <> Descripción
============ <> ======== <> === <> ====== <> ==========
*CODIVEFA*     <> Carácter <>  12 <>    0   <> Código envío VeFa32
*CODIVFRE*     <> Carácter <>  12 <>    0   <> Código Registro VeFa32
VFCODFAC     <> Carácter <>  20 <>    0   <> Código Factura SIF
CODIERRO     <> Carácter <>  12 <>    0   <> Código Error
DESCERRO     <> Carácter <> 250 <>    0   <> Descr.Error

Los campos entre asteriscos permiten vincular las tablas entre si.

El resto de información que no esté en estas tablas estará a piñon o calculada en el XML (por ejemplo IDVERSION o tipo factura), o estará en las de facturas (por ejemplo si es rectificativa, los tipos IVA/IRPF, bases de cálculo, cuotas IVA/IRPF, etc).

Se debe tener en cuenta que si se modifica una factura ya enviada a Veri*factu, se debe generar un registro y enviarlo a Veri*factu.

Code: Select all | Expand

// Las marcadas con XX probablemente son prescindibles porque son datos generales de Verifactu o del SIF 
aStruct := {;
   ;
   ; // ** ENVIO ALTA o ANULACION ** //
   ;
   ; // Comunes
   No lo guardo {"CMIDVers", "C", 3,   0},;  // RegistroAltaBase/RegistroAnulacion IDVersion
   No lo guardo {"CMSignat", "C", 250, 0},;  // RegistroAltaBase/RegistroAnulacion Signature
   {"CMRefExt", "C", 60,  0},;  // RegistroAltaBase/RegistroAnulacion RefExterna
   {"CMRecPre", "C", 1,   0},;  // RegistroAltaBase/RegistroAnulacion RechazoPrevio
   Lo cojo de la factura {"CMFHoReg", "C", 20,  0},;  // RegistroAltaBase/RegistroAnulacion FechaHoraHusoGenRegistro
   No lo guardo {"CMTipHue", "C", 2,   0},;  // RegistroAltaBase/RegistroAnulacion TipoHuella
   ;
   ; // RegistroAltaBase
   Está en el sistema {"RANomRaz", "C", 120, 0},;  // NombreRazonEmisor
   ¿? {"RAOpeAlt", "C", 10,  0},;  // cOperacionAlta
   {"RASubSan", "C", 1,   0},;  // Subsanacion
   Lo calculo {"RATipFac", "C", 2,   0},;  // TipoFactura
   Está en factura {"RATipRec", "C", 1,   0},;  // TipoRectificativa
   ¿? {"RAFecOpe", "D", 8,   0},;  // FechaOperacion
   La pongo a piñon {"RADesOpe", "C", 250, 0},;  // DescripcionOperacion
   {"RAFSimpl", "C", 1,   0},;  // FacturaSimplificadaArt7273
   {"RAFSinId", "C", 1,   0},;  // FacturaSinIdentifDestinatarioArt61d
   Lo pongo a piñon {"RAMacroD", "C", 1,   0},;  // Macrodato
   No lo contemplo {"RAEmiTer", "C", 1,   0},;  // EmitidaPorTerceroODestinatario
   Lo pongo a piñon{"RACupon", "C", 250,  0},;  // Cupon
   {"RACuoTot", "N", 12,  2},;  // CuotaTotal
   {"RAImpTot", "N", 12,  2},;  // ImporteTotal
   No lo contemplo {"RANumAcu", "C", 15,  0},;  // XX NumRegistroAcuerdoFacturacion
   No lo contemplo{"RAIDSist", "C", 16,  0},;  // XX IdAcuerdoSistemaInformatico
   ;
   ; // RegistroAnulacion
   ¿? {"RNOpeAnu", "C", 10,  0},;  // cOperacionAnulacion
   {"RNSinReg", "C", 1,   0},;  // SinRegistroPrevio
   {"RNGenPor", "C", 1,   0},;  // GeneradoPor
   ;
   ; // IDFacturaExpedida
   Está en el sistema {"IFIDEmis", "C", MAX_NIF, 0},;  // IDEmisorFactura
   {"IFNumSer", "C", 60,  0},;  // NumSerieFactura
   {"IFFecExp", "D", 8,   0},;  // FechaExpedicionFactura
   ;
   ; // RegistroAnterior
   Está en el sistema {"RGIDEmis", "C", 9,   0},;  // IDEmisorFactura
   {"RGNumSer", "C", 60,  0},;  // NumSerieFactura
   {"RGFecExp", "D", 8,   0},;  // FechaExpedicionFactura
   {"RGHuelll", "C", 64,  0},;  // Huella
   ;
   ; // DesgloseRectificacion
   Hoy por hoy sólo permito rectificativas por diferencia
   No permito rectificativas por substitución
   No lo contemplo {"DRBasRec", "N", 12,  2},;  // BaseRectificada
   No lo contemplo {"DRCuoRec", "N", 12,  2},;  // CuotaRectificada
   No lo contemplo {"DRCuRRec", "N", 12,  2},;  // CuotaRecargoRectificado
   ;
   ; // DetalleDesglose
   Lo tengo en facturas
   {"DDTipImp1", "C", 10, 0},;  // Impuesto (1)
   {"DDTipImp2", "C", 10, 0},;  // Impuesto (2)
   {"DDTipImp3", "C", 10, 0},;  // Impuesto (3)
   {"DDTipImp4", "C", 10, 0},;  // Impuesto (4)
   {"DDTipImp5", "C", 10, 0},;  // Impuesto (5)
   {"DDTipImp6", "C", 10, 0},;  // Impuesto (6)
   {"DDClaReg1", "C", 2,  0},;  // ClaveRegimen (1)
   {"DDClaReg2", "C", 2,  0},;  // ClaveRegimen (2)
   {"DDClaReg3", "C", 2,  0},;  // ClaveRegimen (3)
   {"DDClaReg4", "C", 2,  0},;  // ClaveRegimen (4)
   {"DDClaReg5", "C", 2,  0},;  // ClaveRegimen (5)
   {"DDClaReg6", "C", 2,  0},;  // ClaveRegimen (6)
   {"DDCalOpe1", "C", 2,  0},;  // CalificacionOperacion (1)
   {"DDCalOpe2", "C", 2,  0},;  // CalificacionOperacion (2)
   {"DDCalOpe3", "C", 2,  0},;  // CalificacionOperacion (3)
   {"DDCalOpe4", "C", 2,  0},;  // CalificacionOperacion (4)
   {"DDCalOpe5", "C", 2,  0},;  // CalificacionOperacion (5)
   {"DDCalOpe6", "C", 2,  0},;  // CalificacionOperacion (6)
   {"DDExenta1", "C", 2,  0},;  // OperacionExenta (1)
   {"DDExenta2", "C", 2,  0},;  // OperacionExenta (2)
   {"DDExenta3", "C", 2,  0},;  // OperacionExenta (3)
   {"DDExenta4", "C", 2,  0},;  // OperacionExenta (4)
   {"DDExenta5", "C", 2,  0},;  // OperacionExenta (5)
   {"DDExenta6", "C", 2,  0},;  // OperacionExenta (6)
   {"DDTipImp1", "N", 5,  2},;  // TipoImpositivo (1)
   {"DDTipImp2", "N", 5,  2},;  // TipoImpositivo (2)
   {"DDTipImp3", "N", 5,  2},;  // TipoImpositivo (3)
   {"DDTipImp4", "N", 5,  2},;  // TipoImpositivo (4)
   {"DDTipImp5", "N", 5,  2},;  // TipoImpositivo (5)
   {"DDTipImp6", "N", 5,  2},;  // TipoImpositivo (6)
   {"DDBasImp1", "N", 12, 2},;  // BaseImponible (1)
   {"DDBasImp2", "N", 12, 2},;  // BaseImponible (2)
   {"DDBasImp3", "N", 12, 2},;  // BaseImponible (3)
   {"DDBasImp4", "N", 12, 2},;  // BaseImponible (4)
   {"DDBasImp5", "N", 12, 2},;  // BaseImponible (5)
   {"DDBasImp6", "N", 12, 2},;  // BaseImponible (6)
   {"DDBImACo1", "N", 12, 2},;  // BaseImponibleACoste (1)
   {"DDBImACo2", "N", 12, 2},;  // BaseImponibleACoste (2)
   {"DDBImACo3", "N", 12, 2},;  // BaseImponibleACoste (3)
   {"DDBImACo4", "N", 12, 2},;  // BaseImponibleACoste (4)
   {"DDBImACo5", "N", 12, 2},;  // BaseImponibleACoste (5)
   {"DDBImACo6", "N", 12, 2},;  // BaseImponibleACoste (6)
   {"DDCuoRep1", "N", 12, 2},;  // CuotaRepercutida (1)
   {"DDCuoRep2", "N", 12, 2},;  // CuotaRepercutida (2)
   {"DDCuoRep3", "N", 12, 2},;  // CuotaRepercutida (3)
   {"DDCuoRep4", "N", 12, 2},;  // CuotaRepercutida (4)
   {"DDCuoRep5", "N", 12, 2},;  // CuotaRepercutida (5)
   {"DDCuoRep6", "N", 12, 2},;  // CuotaRepercutida (6)
   {"DDTipRec1", "N", 5,  2},;  // TipoRecargoEquivalencia (1)
   {"DDTipRec2", "N", 5,  2},;  // TipoRecargoEquivalencia (2)
   {"DDTipRec3", "N", 5,  2},;  // TipoRecargoEquivalencia (3)
   {"DDTipRec4", "N", 5,  2},;  // TipoRecargoEquivalencia (4)
   {"DDTipRec5", "N", 5,  2},;  // TipoRecargoEquivalencia (5)
   {"DDTipRec6", "N", 5,  2},;  // TipoRecargoEquivalencia (6)
   {"DDCuoRec1", "N", 12, 2},;  // CuotaRecargoEquivalencia (1)
   {"DDCuoRec2", "N", 12, 2},;  // CuotaRecargoEquivalencia (2)
   {"DDCuoRec3", "N", 12, 2},;  // CuotaRecargoEquivalencia (3)
   {"DDCuoRec4", "N", 12, 2},;  // CuotaRecargoEquivalencia (4)
   {"DDCuoRec5", "N", 12, 2},;  // CuotaRecargoEquivalencia (5)
   {"DDCuoRec6", "N", 12, 2},;  // CuotaRecargoEquivalencia (6)
   ;
   ; // Encadenamiento
   Lo calculo al momento de generar el XML.
   {"ENPriReg", "C", 1,   0},;  // PrimerRegistro
   ;
   ;
   ; // ** RESPUESTA ** //
   ;
   Prefiero capturar la Referencia Externa que se corresponderá a un registro enviado.
    {"RSIDEmis", "C", MAX_NIF, 0},;  // IDEmisorFactura
   {"RSNumSer", "C", 10,  0},;      // NumSerieFactura
   {"RSFecExp", "D", 8,   0},;      // FechaExpedicionFactura
   {"RSTipOpe", "C", 10,  0},;      // TipoOperacion
   {"RSEstado", "C", 20,  0},;      // Estado

   No es correcto, puede haber más de un error por factura en la respuesta (en teoría).
   {"RSCodErr", "N", 4,   0},;      // CodigoError
   {"RSDesErr", "C", 40,  0} ;      // DescripcionError
}
Lo que para ti es una estructura de muchos campos, para mi es VFREGI + las tablas con datos de facturas.

Después cuando se genera el XML se crea un registro en VERFAC y se vincula a los registros VFREGI que contiene el XML.

Cuando Veri*factu responde se actualiza VERFAC, VFREGI y si es el caso VFERRO.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278953#p278953 Fri, 11 Apr 2025 16:50:43 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45519&p=278953#p278953
<![CDATA[Artificial Intelligence :: Re: Breve introducción a la IA :: Reply by Verhoven]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45458&p=278441#p278441 Me los he visto los 5 vídeos y son extraordinarios, se puede aprender mucho y sacar algunas conclusiones.
Pero lo que me parece una perla son los consejos que da al final del último vídeo, el quinto.
Creo que muy bien los podrían grabar y poner a todos los estudiantes, me refiero a los minutos entre el 1:48:51 y 2:00:43; son una joya.

Muchas Gracias Victor.]]>
no_email@example.com (Verhoven) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45458&p=278441#p278441 Tue, 18 Mar 2025 16:09:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45458&p=278441#p278441
<![CDATA[Artificial Intelligence examples :: Ubuntu with Ollama :: Author Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45567&p=278583#p278583 I have significantly expanded the Document tool. Now in the TreeView, there is a search function with filter, and in the Content area there is a marking function. There is also a quick full-text search across the entire topic area. With just one click, I can generate a PDF from the Content area. Videos can now be embedded as well. Particularly for documentation, such as housebuilding, videos are becoming increasingly important. Additionally, there is linking with a QR code.
Here you can see, for example, the notes that I made during the installation of Ubuntu PCs for local AI applications. I have not yet worked with Ubuntu, but it is very exciting and amazing to see what this local AI can do out of the box.

Best regards,
Otto

Image

Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45567&p=278583#p278583 Wed, 26 Mar 2025 11:57:53 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45567&p=278583#p278583
<![CDATA[Artificial Intelligence examples :: Class TMCPServer for Harbour/xHarbour :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278680#p278680
Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you’re building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need.
tmcpserver.prg

Code: Select all | Expand

/**
 * MCP.prg - Model Context Protocol Implementation in Harbour
 * Based on the Python MCP SDK
 */

 #include "FiveWin.ch"

 /**
  * Main MCP server class
  */
 CREATE CLASS TMCPServer
    VAR cName        // Server name
    VAR aResources   // Resource collection
    VAR aTools       // Tools collection
    VAR aPrompts     // Template collection
    VAR oContext     // Application context
    
    METHOD New(cName)
    METHOD AddResource(cPattern, bCallback)
    METHOD AddTool(cName, cDescription, bCallback)
    METHOD AddPrompt(cName, cDescription, bCallback)
    METHOD CallTool(hParams) 
    METHOD GetPrompt(hParams) 
    METHOD Run()
    METHOD Initialize()
    METHOD HandleMessage(cMessage)
    METHOD ListPrompts() 
    METHOD ListResources()
    METHOD ListTools()
    METHOD ReadResource(hParams) 
    METHOD RespondJSON(hResponse)
 ENDCLASS
 
 METHOD New(cName) CLASS TMCPServer
    ::cName := cName
    ::aResources := {}
    ::aTools := {}
    ::aPrompts := {}
    ::oContext := TMCPContext():New()
    RETURN Self
 
 /**
  * Registers a resource with a URI pattern
  */
 METHOD AddResource(cPattern, bCallback) CLASS TMCPServer
    LOCAL oResource
    
    oResource := TMCPResource():New(cPattern, bCallback)
    AAdd(::aResources, oResource)
    
    RETURN oResource
 
 /**
  * Registers a tool that can be invoked by the LLM
  */
 METHOD AddTool(cName, cDescription, bCallback) CLASS TMCPServer
    LOCAL oTool
    
    oTool := TMCPTool():New(cName, cDescription, bCallback)
    AAdd(::aTools, oTool)
    
    RETURN oTool
 
 /**
  * Registers a prompt for interaction with the LLM
  */
 METHOD AddPrompt(cName, cDescription, bCallback) CLASS TMCPServer
    LOCAL oPrompt
    
    oPrompt := TMCPPrompt():New(cName, cDescription, bCallback)
    AAdd(::aPrompts, oPrompt)
    
    RETURN oPrompt
 
 /**
 * Executes a tool with the specified parameters
 * 
 * @param hParams Call parameters including the tool name
 * @return Result of the tool execution
 */
 METHOD CallTool(hParams) CLASS TMCPServer
     LOCAL cToolName, i, oTool, xResult, hError := {=>}
     
     // Get the name of the tool to execute
     cToolName := hParams["name"]
     
     // Find the tool in the collection
     oTool := NIL
     FOR i := 1 TO Len(::aTools)
        IF ::aTools[i]:cName == cToolName
           oTool := ::aTools[i]
           EXIT
        ENDIF
     NEXT
     
     // Check if the tool exists
     IF oTool == NIL
        // Tool not found
        hError["code"] := -32602
        hError["message"] := "Tool not found: " + cToolName
        RETURN hError
     ENDIF
     
     // Execute the tool with the provided parameters
     BEGIN SEQUENCE WITH {|oErr| hError := ErrorHandler(oErr) }
        xResult := oTool:Execute(hParams["params"])
     RECOVER
        // Error during execution was handled by ErrorHandler
        RETURN hError
     END SEQUENCE
     
     RETURN xResult
 
 /**
 * Gets a template based on the provided name
 * 
 * @param hParams Parameters including the template name
 * @return Template content or error message
 */
 METHOD GetPrompt(hParams) CLASS TMCPServer
     LOCAL cPromptName, i, oPrompt, xResult, hError := {=>}
     
     // Get the name of the requested template
     cPromptName := hParams["name"]
     
     // Find the template in the collection
     oPrompt := NIL
     FOR i := 1 TO Len(::aPrompts)
        IF ::aPrompts[i]:cName == cPromptName
           oPrompt := ::aPrompts[i]
           EXIT
        ENDIF
     NEXT
     
     // Verify if the template was found
     IF oPrompt == NIL
        // Template not found
        hError["code"] := -32602
        hError["message"] := "Template not found: " + cPromptName
        RETURN hError
     ENDIF
     
     // Execute the template callback with the parameters
     BEGIN SEQUENCE WITH {|oErr| hError := ErrorHandler(oErr) }
        xResult := oPrompt:Execute(hParams["params"])
     RECOVER
        // Error during template processing was handled by ErrorHandler
        RETURN hError
     END SEQUENCE
     
     RETURN xResult
 
 /**
  * Initializes the server and sends capabilities
  */
 METHOD Initialize() CLASS TMCPServer
    LOCAL hCapabilities, hResponse
    
    // Define server capabilities
    hCapabilities := {=>}
    hCapabilities["prompts"] := {=>}
    hCapabilities["prompts"]["listChanged"] := .T.
    
    hCapabilities["resources"] := {=>}
    hCapabilities["resources"]["subscribe"] := .T.
    hCapabilities["resources"]["listChanged"] := .T.
    
    hCapabilities["tools"] := {=>}
    hCapabilities["tools"]["listChanged"] := .T.
    
    // Create initialization response
    hResponse := {=>}
    hResponse["jsonrpc"] := "2.0"
    hResponse["id"] := "init"
    hResponse["result"] := {=>}
    hResponse["result"]["name"] := ::cName
    hResponse["result"]["version"] := "1.0.0"
    hResponse["result"]["capabilities"] := hCapabilities
    
    RETURN ::RespondJSON(hResponse)
 
 /**
  * Handles an incoming MCP protocol message
  */
 METHOD HandleMessage(cMessage) CLASS TMCPServer
    LOCAL hMessage, cMethod, xResult, hResponse
    
    hMessage := hb_jsonDecode(cMessage)
    cMethod := hMessage["method"]
    
    // Process based on the requested method
    DO CASE
       CASE cMethod == "initialize"
          RETURN ::Initialize()
          
       CASE cMethod == "list_tools"
          xResult := ::ListTools()
          
       CASE cMethod == "list_resources"
          xResult := ::ListResources()
          
       CASE cMethod == "list_prompts"
          xResult := ::ListPrompts()
          
       CASE cMethod == "call_tool"
          xResult := ::CallTool(hMessage["params"])
          
       CASE cMethod == "read_resource"
          xResult := ::ReadResource(hMessage["params"])
          
       CASE cMethod == "get_prompt"
          xResult := ::GetPrompt(hMessage["params"])
          
       OTHERWISE
          // Unknown method
          hResponse := {=>}
          hResponse["jsonrpc"] := "2.0"
          hResponse["id"] := hMessage["id"]
          hResponse["error"] := {=>}
          hResponse["error"]["code"] := -32601
          hResponse["error"]["message"] := "Method not supported: " + cMethod
          RETURN ::RespondJSON(hResponse)
    ENDCASE
    
    // Build successful response
    hResponse := {=>}
    hResponse["jsonrpc"] := "2.0"
    hResponse["id"] := hMessage["id"]
    hResponse["result"] := xResult
    
    RETURN ::RespondJSON(hResponse)
 
 /**
 * Returns the list of available templates
 */
 METHOD ListPrompts() CLASS TMCPServer
     LOCAL aPrompts := {}, i, hPrompt
     
     // Convert each template to the format expected by the protocol
     FOR i := 1 TO Len(::aPrompts)
        hPrompt := {=>}
        hPrompt["name"] := ::aPrompts[i]:cName
        hPrompt["description"] := ::aPrompts[i]:cDescription
        
        AAdd(aPrompts, hPrompt)
     NEXT
     
     RETURN aPrompts   
 
 /**
 * Returns the list of available resources
 */
 METHOD ListResources() CLASS TMCPServer
     LOCAL aResources := {}, i, hResource
     
     // Convert each resource to the format expected by the protocol
     FOR i := 1 TO Len(::aResources)
        hResource := {=>}
        hResource["pattern"] := ::aResources[i]:cPattern
        
        AAdd(aResources, hResource)
     NEXT
     
     RETURN aResources   
 
 /**
  * Returns the list of available tools
  */
  METHOD ListTools() CLASS TMCPServer
     LOCAL aTools := {}, i, hTool
     
     // Convert each tool to the format expected by the protocol
     FOR i := 1 TO Len(::aTools)
        hTool := {=>}
        hTool["name"] := ::aTools[i]:cName
        hTool["description"] := ::aTools[i]:cDescription
        
        AAdd(aTools, hTool)
     NEXT
     
     RETURN aTools
 
 /**
 * Reads a resource according to the provided URI
 * 
 * @param hParams Parameters including the resource URI to read
 * @return Resource content or error message
 */
 METHOD ReadResource(hParams) CLASS TMCPServer
     LOCAL cUri, i, oResource, xResult, hError := {=>}
     
     // Get the URI of the resource to read
     cUri := hParams["uri"]
     
     // Find a resource that matches the URI
     oResource := NIL
     FOR i := 1 TO Len(::aResources)
        IF ::aResources[i]:Match(cUri)
           oResource := ::aResources[i]
           EXIT
        ENDIF
     NEXT
     
     // Verify if a matching resource was found
     IF oResource == NIL
        // Resource not found
        hError["code"] := -32602
        hError["message"] := "Resource not found for URI: " + cUri
        RETURN hError
     ENDIF
     
     // Execute the resource callback with the URI
     BEGIN SEQUENCE WITH {|oErr| hError := ErrorHandler(oErr) }
        xResult := oResource:Execute(cUri)
     RECOVER
        // Error during resource reading was handled by ErrorHandler
        RETURN hError
     END SEQUENCE
     
     RETURN xResult
 
 /**
  * Sends a JSON response
  */
 METHOD RespondJSON(hResponse) CLASS TMCPServer
    LOCAL cResponse := hb_jsonEncode(hResponse)
    ? "Content-Length: " + AllTrim(Str(Len(cResponse)))
    ? ""
    ? cResponse
    RETURN NIL
 
 /**
  * Runs the server in main mode
  */
 METHOD Run() CLASS TMCPServer
    LOCAL cLine, nContentLength, cMessage
    
    // Main read/write loop via stdio
    DO WHILE .T.
       nContentLength := 0
       
       // Read headers
       DO WHILE .T.
          cLine := FReadLine( 0 )
          IF Empty(cLine)
             EXIT
          ENDIF
          
          IF "Content-Length:" $ cLine
             nContentLength := Val(SubStr(cLine, At(":", cLine) + 1))
          ENDIF
          
          IF cLine == ""
             EXIT
          ENDIF
       ENDDO
       
       // Read message body
       IF nContentLength > 0
          cMessage := Space(nContentLength)
          FRead(0, @cMessage, nContentLength)
          
          // Process message
          ::HandleMessage(cMessage)
       ENDIF
    ENDDO
    
    RETURN NIL
 
 /**
  * Class to represent an MCP resource
  */
 CREATE CLASS TMCPResource
    VAR cPattern      // URI pattern
    VAR bCallback     // Callback function
    
    METHOD New(cPattern, bCallback)
    METHOD Match(cUri)
    METHOD Execute(cUri)
 ENDCLASS
 
 METHOD New(cPattern, bCallback) CLASS TMCPResource
    ::cPattern := cPattern
    ::bCallback := bCallback
    RETURN Self
 
 METHOD Match(cUri) CLASS TMCPResource
    LOCAL aPatternParts, aUriParts, i, cPatternPart, cUriPart
    LOCAL lMatch := .T.
    LOCAL cPatternCopy, cUriCopy
     
    // Normalize slashes and spaces
    cPatternCopy := StrTran(::cPattern, "\", "/")
    cUriCopy := StrTran(cUri, "\", "/")
     
    // If patterns are exactly the same, they match
    IF cPatternCopy == cUriCopy
       RETURN .T.
    ENDIF
     
    // Split the pattern and URI into parts separated by "/"
    aPatternParts := hb_ATokens(cPatternCopy, "/")
    aUriParts := hb_ATokens(cUriCopy, "/")
     
    // If they have different number of parts, they don't match
    // (unless the pattern ends with "/**" for wildcard matching)
    IF Len(aPatternParts) != Len(aUriParts) .AND. ;
       !(Len(aPatternParts) > 0 .AND. aPatternParts[Len(aPatternParts)] == "**")
       RETURN .F.
    ENDIF
     
    // Go through all parts and check for matches
    FOR i := 1 TO Min(Len(aPatternParts), Len(aUriParts))
       cPatternPart := aPatternParts[i]
       cUriPart := aUriParts[i]
        
       // Case 1: Exact match
       IF cPatternPart == cUriPart
          LOOP
       ENDIF
        
       // Case 2: Parameter with format {param}
       IF Left(cPatternPart, 1) == "{" .AND. Right(cPatternPart, 1) == "}"
          // It's a parameter, always matches
          LOOP
       ENDIF
        
       // Case 3: Simple wildcard "*"
       IF cPatternPart == "*"
          // Simple wildcard, matches any part
          LOOP
       ENDIF
        
       // Case 4: Recursive wildcard "**"
       IF cPatternPart == "**"
          // Recursive wildcard, matches the rest of the URI
          RETURN .T.
       ENDIF
        
       // If we get here, there's no match
       lMatch := .F.
       // EXIT
    NEXT
     
    RETURN lMatch
 
 METHOD Execute(cUri) CLASS TMCPResource
    LOCAL aPatternParts, aUriParts, i, cPatternPart, cUriPart
    LOCAL hParams := {=>}  // Hash to store extracted parameters
    LOCAL cPatternCopy, cUriCopy, cParamName
    LOCAL xResult, hInfo := {=>}, hError := {=>}
     
    // Normalize slashes
    cPatternCopy := StrTran(::cPattern, "\", "/")
    cUriCopy := StrTran(cUri, "\", "/")
     
    // Split the pattern and URI into parts separated by "/"
    aPatternParts := hb_ATokens(cPatternCopy, "/")
    aUriParts := hb_ATokens(cUriCopy, "/")
     
    // Extract parameters according to matching parts
    FOR i := 1 TO Min(Len(aPatternParts), Len(aUriParts))
       cPatternPart := aPatternParts[i]
       cUriPart := aUriParts[i]
        
       // If it's a parameter with format {param}
       IF Left(cPatternPart, 1) == "{" .AND. Right(cPatternPart, 1) == "}"
          // Extract parameter name without the braces
          cParamName := SubStr(cPatternPart, 2, Len(cPatternPart) - 2)
           
          // Store parameter value in the hash
          hParams[cParamName] := cUriPart
       ENDIF
    NEXT
     
    // Prepare information object for the callback
    hInfo["uri"] := cUri
    hInfo["pattern"] := ::cPattern
    hInfo["params"] := hParams
     
    // Handle possible errors during callback execution
    BEGIN SEQUENCE WITH {|oErr| hError := ErrorHandler(oErr) }
       // Execute the callback with the collected information
       xResult := Eval(::bCallback, hInfo)
    RECOVER
       // Error was handled by ErrorHandler
       RETURN hError
    END SEQUENCE
     
    RETURN xResult
 
 /**
  * Class to represent an MCP tool
  */
 CREATE CLASS TMCPTool
    VAR cName         // Name
    VAR cDescription  // Description
    VAR bCallback     // Callback function
    
    METHOD New(cName, cDescription, bCallback)
    METHOD Execute(hParams)
 ENDCLASS
 
 METHOD New(cName, cDescription, bCallback) CLASS TMCPTool
    ::cName := cName
    ::cDescription := cDescription
    ::bCallback := bCallback
    RETURN Self
 
 METHOD Execute(hParams) CLASS TMCPTool
    // Execute the callback with the provided parameters
    RETURN Eval(::bCallback, hParams)
 
 /**
  * Class to represent an MCP prompt
  */
 CREATE CLASS TMCPPrompt
    VAR cName         // Name
    VAR cDescription  // Description
    VAR bCallback     // Callback function
    
    METHOD New(cName, cDescription, bCallback)
    METHOD Execute(hParams)
 ENDCLASS
 
 METHOD New(cName, cDescription, bCallback) CLASS TMCPPrompt
    ::cName := cName
    ::cDescription := cDescription
    ::bCallback := bCallback
    RETURN Self
 
 METHOD Execute(hParams) CLASS TMCPPrompt
    // Execute the callback with the provided parameters
    RETURN Eval(::bCallback, hParams)
 
 /**
  * Class to handle execution context
  */
 CREATE CLASS TMCPContext
    VAR hLifespanContext  // Lifespan context
    
    METHOD New()
    METHOD SetLifespanContext(hContext)
    METHOD GetLifespanContext()
 ENDCLASS
 
 METHOD New() CLASS TMCPContext
    ::hLifespanContext := {=>}
    RETURN Self
 
 METHOD SetLifespanContext(hContext) CLASS TMCPContext
    ::hLifespanContext := hContext
    RETURN NIL
 
 METHOD GetLifespanContext() CLASS TMCPContext
    RETURN ::hLifespanContext
 
 /**
  * Error handler function for MCP operations
  */
 FUNCTION ErrorHandler(oError)
    LOCAL hError := {=>}
    
    hError["code"] := -32603
    hError["message"] := "Error during execution: " + ;
                         IIf(ValType(oError) == "C", oError, ;
                            IIf(ValType(oError) == "O" .AND. HB_ISOBJECT(oError) .AND. ;
                                __objHasMsg(oError, "Operation"), ;
                                oError:Operation(), "Unknown error"))
    
    RETURN hError

function CreateMCPServer( cName)
    LOCAL oServer := TMCPServer():New(cName)
    
    // Initialize the server
    oServer:Initialize()
    
    RETURN oServer

/**
 * FReadLine() - Reads a line from a file or standard input
 *
 * @param nHandle  File handle (0 for stdin, 1 for stdout, 2 for stderr)
 * @param nMaxLen  Maximum length to read (default is 4096)
 * @param cEOL     End of line character(s) (default is CRLF or LF)
 * @return cLine   Line read from the file/stdin
 */
 FUNCTION FReadLine(nHandle, nMaxLen, cEOL)
    LOCAL cChar, cLine := "", nByte
    LOCAL lCR := .F.
    
    // Default values
    nHandle := IIf(nHandle == NIL, 0, nHandle)
    nMaxLen := IIf(nMaxLen == NIL, 4096, nMaxLen)
    cEOL    := IIf(cEOL == NIL, hb_OSNewLine(), cEOL)
    
    // Read one byte at a time until EOL or max length
    DO WHILE Len(cLine) < nMaxLen
       // Allocate space for a single character
       cChar := Space(1)
       
       // Read a single byte
       nByte := FRead(nHandle, @cChar, 1)
       
       // EOF or error
       IF nByte <= 0
          IF Empty(cLine)
             RETURN NIL  // Return NIL on EOF with no data read
          ELSE
             EXIT  // Return whatever was read if EOF after some data
          ENDIF
       ENDIF
       
       // Handle different EOL sequences
       IF cChar == Chr(13) // CR (Carriage Return)
          lCR := .T.
          // Don't add CR to result string, wait to see if LF follows
       ELSEIF cChar == Chr(10) // LF (Line Feed)
          IF lCR
             // If we just saw a CR, this is a CRLF sequence
             EXIT  // End of line found (CRLF)
          ELSE
             // Just a LF without CR
             EXIT  // End of line found (LF only)
          ENDIF
       ELSE
          // Add any pending CR if not followed by LF
          IF lCR
             cLine += Chr(13)
             lCR := .F.
          ENDIF
          // Add the character to the result
          cLine += cChar
       ENDIF
    ENDDO
    
    RETURN cLine    
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278680#p278680 Sat, 29 Mar 2025 02:44:21 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278680#p278680
<![CDATA[Artificial Intelligence examples :: Re: Class TMCPServer for Harbour/xHarbour :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278685#p278685
https://github.com/modelcontextprotocol ... filesystem

https://github.com/modelcontextprotocol/servers]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278685#p278685 Sat, 29 Mar 2025 13:21:51 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278685#p278685
<![CDATA[Artificial Intelligence examples :: Re: Class TMCPServer for Harbour/xHarbour :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278686#p278686
ollama run gemma3

>>> dime si esta petición "crea un directorio c:\temp" puede aplicarse a alguna de estas categorias: "filesystem", "mysql", "gdrive", "github", "web", "programacion". Dime la categoria solamente, sin explicaciones

filesystem]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278686#p278686 Sat, 29 Mar 2025 13:36:27 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45579&p=278686#p278686
<![CDATA[Artificial Intelligence examples :: Class TOllama with Agents! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278748#p278748

Code: Select all | Expand

#include "FiveWin.ch"
#include "hbcurl.ch"

// Activar depuración (comentar esta línea para desactivarla)
#define DEBUG

FUNCTION Main()
   local oLlama, oAgent
   
   oLlama = TOLlama():New()
   
   // Agente para mostrar la hora
   oAgent = TAgent():New( "time", { {"get_time", {|hParams| GetCurrentTime(hParams)} } } )
   AAdd( oLlama:aAgents, oAgent )
   
   // Agente para filesystem con múltiples tools
   oAgent = TAgent():New( "filesystem", { ;
      {"create_folder", {|hParams| CreateFolder(hParams)} },;
      {"create_file",   {|hParams| CreateFile(hParams)} },;
      {"modify_file",   {|hParams| ModifyFile(hParams)} } } )
   AAdd( oLlama:aAgents, oAgent )
   
   #ifdef DEBUG
      ? "DEBUG: Probando 'What time is it?'"
   #endif
   fw_memoEdit( oLlama:Send( "What time is it?" ) )
   #ifdef DEBUG
      ? "DEBUG: Probando 'Create a folder named test'"
   #endif
   fw_memoEdit( oLlama:Send( "Create a folder named 'test'" ) )
   #ifdef DEBUG
      ? "DEBUG: Probando 'Create a file called test.txt'"
   #endif
   fw_memoEdit( oLlama:Send( "Create a file called 'test.txt'" ) )
   #ifdef DEBUG
      ? "DEBUG: Probando 'Modify the file test.txt with content Hello World'"
   #endif
   fw_memoEdit( oLlama:Send( "Modify the file test.txt with content Hello World" ) )
   
   oLlama:End()
   
return nil

FUNCTION GetCurrentTime( hParams )
   local cTime := Time()
return "The current time is " + cTime  // No necesita parámetros, pero acepta hParams por consistencia

FUNCTION CreateFolder( hParams )
   local cFolder
   if hb_HHasKey( hParams, "folder_name" ) .and. ! Empty( hParams[ "folder_name" ] )
      cFolder = hParams[ "folder_name" ]
      DirMake( cFolder )
      return "Folder '" + cFolder + "' created successfully"
   endif
return "Failed to create folder: no name specified"

FUNCTION CreateFile( hParams )
   local cFile
   if hb_HHasKey( hParams, "filename" ) .and. ! Empty( hParams[ "filename" ] )
      cFile = hParams[ "filename" ]
      hb_MemoWrit( cFile, "" )
      return "File '" + cFile + "' created successfully"
   endif
return "Failed to create file: no name specified"

FUNCTION ModifyFile( hParams )
   local cFile, cContent
   if hb_HHasKey( hParams, "filename" ) .and. ! Empty( hParams[ "filename" ] ) .and. ;
      hb_HHasKey( hParams, "content" ) .and. ! Empty( hParams[ "content" ] )
      cFile = hParams[ "filename" ]
      cContent = hParams[ "content" ]
      hb_MemoWrit( cFile, cContent )
      return "File '" + cFile + "' modified with content: " + cContent
   endif
return "Failed to modify file: missing file name or content"

CLASS TOLlama
   DATA   cModel
   DATA   cPrompt
   DATA   cResponse
   DATA   cUrl
   DATA   hCurl
   DATA   nError INIT 0
   DATA   nHttpCode INIT 0
   DATA   aAgents INIT {}

   METHOD New( cModel )
   METHOD Send( cPrompt, cImageFileName, bWriteFunction )
   METHOD GetPromptCategory( cPrompt )
   METHOD GetToolName( cPrompt, oAgent )
   METHOD End()
   METHOD GetValue()
ENDCLASS

METHOD New( cModel ) CLASS TOLlama
   DEFAULT cModel := "gemma3"
   ::cModel = cModel
   ::cUrl = "http://localhost:11434/api/chat"
   ::hCurl = curl_easy_init()
return Self

METHOD GetPromptCategory( cPrompt ) CLASS TOLlama
   local cJson, hRequest := { => }, hMessage := { => }
   local cCategoryResponse, hResponse
   local nError, cCategories, nI, nJ

   cCategories = ""
   if ! Empty( ::aAgents )
      for nI = 1 to Len( ::aAgents )
         cCategories += "'" + ::aAgents[ nI ]:cCategory + "'"
         if nI < Len( ::aAgents )
            cCategories += ", "
         endif
      next
   else
      cCategories = "'general'"
   endif

   curl_easy_reset( ::hCurl )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, { "Content-Type: application/json" } )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, '' )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )

   hRequest[ "model" ]       = ::cModel
   hMessage[ "role" ]        = "user"
   hMessage[ "content" ]     = "Classify this prompt: '" + cPrompt + "' into one of these categories: " + ;
                              cCategories + ". Respond with only the category name."
   hRequest[ "messages" ]    = { hMessage }
   hRequest[ "stream" ]      = .F.
   hRequest[ "temperature" ] = 0.5

   cJson = hb_jsonEncode( hRequest )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )
   
   nError = curl_easy_perform( ::hCurl )
   if nError == HB_CURLE_OK
      cCategoryResponse = curl_easy_dl_buff_get( ::hCurl )
      hb_jsonDecode( cCategoryResponse, @hResponse )
      #ifdef DEBUG
         ? "DEBUG: Categoría devuelta por IA:", hResponse[ "message" ][ "content" ]
      #endif
      return hResponse[ "message" ][ "content" ]
   endif
   #ifdef DEBUG
      ? "DEBUG: Error en GetPromptCategory:", nError
   #endif
return nil

METHOD GetToolName( cPrompt, oAgent ) CLASS TOLlama
   local cJson, hRequest := { => }, hMessage := { => }
   local cToolResponse, hResponse, hToolInfo
   local nError, cTools := "", nI

   if ! Empty( oAgent:aTools )
      for nI = 1 to Len( oAgent:aTools )
         cTools += "'" + oAgent:aTools[ nI ][ 1 ] + "'"
         if nI < Len( oAgent:aTools )
            cTools += ", "
         endif
      next
   endif

   curl_easy_reset( ::hCurl )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, { "Content-Type: application/json" } )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, '' )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )

   hRequest[ "model" ]       = ::cModel
   hMessage[ "role" ]        = "user"
   hMessage[ "content" ]     = "Given this prompt: '" + cPrompt + "' and category '" + oAgent:cCategory + "', " + ;
                              "select the appropriate tool from: " + cTools + " and extract any relevant parameters. " + ;
                              "Respond with a JSON object containing 'tool' (the tool name) and 'params' (a hash of parameters)."
   hRequest[ "messages" ]    = { hMessage }
   hRequest[ "stream" ]      = .F.
   hRequest[ "temperature" ] = 0.5

   cJson = hb_jsonEncode( hRequest )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )
   
   nError = curl_easy_perform( ::hCurl )
   if nError == HB_CURLE_OK
      cToolResponse = curl_easy_dl_buff_get( ::hCurl )
      hb_jsonDecode( cToolResponse, @hResponse )
      #ifdef DEBUG
         ? "DEBUG: Respuesta cruda de IA:", cToolResponse
         ? "DEBUG: hResponse tras decodificar:", hb_jsonEncode( hResponse )
         ? "DEBUG: Contenido de hResponse[ 'message' ][ 'content' ]:", hResponse[ "message" ][ "content" ]
      #endif
      hResponse[ "message" ][ "content" ] = SubStr( hResponse[ "message" ][ "content" ], 9 )
      hResponse[ "message" ][ "content" ] = SubStr( hResponse[ "message" ][ "content" ], 1, Len( hResponse[ "message" ][ "content" ] ) - 3 )
      hb_jsonDecode( hResponse[ "message" ][ "content" ], @hToolInfo )
      #ifdef DEBUG
         ? "DEBUG: hToolInfo tras procesar:", hb_jsonEncode( hToolInfo )
         ? "DEBUG: Tipo de hToolInfo:", ValType( hToolInfo )
         if ValType( hToolInfo ) == "H"
            ? "DEBUG: Claves en hToolInfo:", hb_HKeys( hToolInfo )
         endif
      #endif
      return hToolInfo
   endif
   #ifdef DEBUG
      ? "DEBUG: Error en GetToolName:", nError
   #endif
return nil

METHOD Send( cPrompt, cImageFileName, bWriteFunction ) CLASS TOLlama 
   local aHeaders, cJson, hRequest := { => }, hMessage := { => }
   local cBase64Image
   local oAgent, cToolResult, nI, hToolInfo, cToolName, nTool
   local cCategory

   if ! Empty( cPrompt )
      ::cPrompt = cPrompt
   endif   

   if ! Empty( ::aAgents )
      cCategory = ::GetPromptCategory( cPrompt )
      #ifdef DEBUG
         ? "DEBUG: Categoría obtenida (sin limpiar):", cCategory
      #endif
      cCategory = AllTrim( StrTran( StrTran( cCategory, Chr(13), "" ), Chr(10), "" ) )
      #ifdef DEBUG
         ? "DEBUG: Categoría obtenida (limpia):", cCategory
      #endif
      if ! Empty( cCategory )
         for nI = 1 to Len( ::aAgents )
            oAgent = ::aAgents[ nI ]
            #ifdef DEBUG
               ? "DEBUG: Comparando categoría del agente:", oAgent:cCategory, "con categoría obtenida:", cCategory
               ? "DEBUG: Longitud de oAgent:cCategory:", Len( oAgent:cCategory ), "Longitud de cCategory:", Len( cCategory )
               ? "DEBUG: oAgent:cCategory en hex:", hb_StrToHex( oAgent:cCategory )
               ? "DEBUG: cCategory en hex:", hb_StrToHex( cCategory )
               ? "DEBUG: Lower(oAgent:cCategory):", Lower( oAgent:cCategory ), "Lower(cCategory):", Lower( cCategory )
            #endif
            if Lower( AllTrim( oAgent:cCategory ) ) == Lower( AllTrim( cCategory ) )
               #ifdef DEBUG
                  ? "DEBUG: ¡Coincidencia encontrada para categoría!"
               #endif
               if ! Empty( oAgent:aTools )
                  hToolInfo = ::GetToolName( cPrompt, oAgent )
                  #ifdef DEBUG
                     ? "DEBUG: hToolInfo recibido:", hb_jsonEncode( hToolInfo )
                  #endif
                  if ValType( hToolInfo ) == "H" .and. hb_HHasKey( hToolInfo, "tool" )
                     cToolName = AllTrim( StrTran( StrTran( hToolInfo[ "tool" ], Chr(13), "" ), Chr(10), "" ) )
                     #ifdef DEBUG
                        ? "DEBUG: Tool obtenida (limpia):", cToolName
                        ? "DEBUG: Parámetros extraídos:", hb_jsonEncode( hToolInfo[ "params" ] )
                     #endif
                     if ! Empty( cToolName )
                        nTool = 0
                        for nJ = 1 to Len( oAgent:aTools )
                           #ifdef DEBUG
                              ? "DEBUG: Comparando tool del agente:", oAgent:aTools[ nJ ][ 1 ], "con tool obtenida:", cToolName
                              ? "DEBUG: Longitud de oAgent:aTools[", nJ, "][1]:", Len( oAgent:aTools[ nJ ][ 1 ] ), "Longitud de cToolName:", Len( cToolName )
                              ? "DEBUG: oAgent:aTools[", nI, "][1] en hex:", hb_StrToHex( oAgent:aTools[ nJ ][ 1 ] )
                              ? "DEBUG: cToolName en hex:", hb_StrToHex( cToolName )
                              ? "DEBUG: Lower(oAgent:aTools[", nJ, "][1]):", Lower( oAgent:aTools[ nJ ][ 1 ] ), "Lower(cToolName):", Lower( cToolName )
                           #endif
                           if Lower( AllTrim( oAgent:aTools[ nJ ][ 1 ] ) ) == Lower( AllTrim( cToolName ) )
                              nTool = nJ
                              #ifdef DEBUG
                                 ? "DEBUG: ¡Coincidencia encontrada para tool!"
                              #endif
                              exit
                           endif
                        next
                        if nTool > 0
                           cToolResult = Eval( oAgent:aTools[ nTool ][ 2 ], hToolInfo[ "params" ] )
                           #ifdef DEBUG
                              ? "DEBUG: Resultado de la tool:", cToolResult
                           #endif
                           ::cResponse = hb_jsonEncode( { "message" => { "content" => cToolResult }, "done" => .T. } )
                           return ::cResponse
                        else
                           #ifdef DEBUG
                              ? "DEBUG: Tool '" + cToolName + "' no encontrada en el agente '" + oAgent:cCategory + "'"
                           #endif
                           ::cResponse = hb_jsonEncode( { "message" => { "content" => "Tool not found" }, "done" => .T. } )
                           return ::cResponse
                        endif
                     else
                        #ifdef DEBUG
                           ? "DEBUG: No se obtuvo nombre de tool válido"
                        #endif
                        ::cResponse = hb_jsonEncode( { "message" => { "content" => "No tool selected" }, "done" => .T. } )
                        return ::cResponse
                     endif
                  else
                     #ifdef DEBUG
                        ? "DEBUG: Respuesta de GetToolName no válida o sin 'tool'. Tipo:", ValType( hToolInfo )
                        if ValType( hToolInfo ) == "H"
                           ? "DEBUG: Claves en hToolInfo:", hb_HKeys( hToolInfo )
                        endif
                     #endif
                     ::cResponse = hb_jsonEncode( { "message" => { "content" => "Invalid tool response" }, "done" => .T. } )
                     return ::cResponse
                  endif
               else
                  #ifdef DEBUG
                     ? "DEBUG: El agente '" + oAgent:cCategory + "' no tiene tools"
                  #endif
                  ::cResponse = hb_jsonEncode( { "message" => { "content" => "No tools available" }, "done" => .T. } )
                  return ::cResponse
               endif
            else
               #ifdef DEBUG
                  ? "DEBUG: No hay coincidencia entre '" + Lower( AllTrim( oAgent:cCategory ) ) + "' y '" + Lower( AllTrim( cCategory ) ) + "'"
               #endif
            endif
         next
         #ifdef DEBUG
            ? "DEBUG: No se encontró agente para la categoría '" + cCategory + "'"
         #endif
         ::cResponse = hb_jsonEncode( { "message" => { "content" => "Agent not found" }, "done" => .T. } )
         return ::cResponse
      else
         #ifdef DEBUG
            ? "DEBUG: No se obtuvo categoría válida"
         #endif
      endif
   else
      #ifdef DEBUG
         ? "DEBUG: No hay agentes definidos"
      #endif
   endif

   #ifdef DEBUG
      ? "DEBUG: Llamando a la API de Ollama"
   #endif
   curl_easy_reset( ::hCurl )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl )
   aHeaders := { "Content-Type: application/json" }
   curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, aHeaders )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, '' )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )

   hRequest[ "model" ]       = ::cModel
   hMessage[ "role" ]        = "user"
   hMessage[ "content" ]     = ::cPrompt
   hRequest[ "messages" ]    = { hMessage }
   hRequest[ "temperature" ] = 0.5

   if ! Empty( cImageFileName )
      if File( cImageFileName )
         cBase64Image = hb_base64Encode( memoRead( cImageFileName ) )
         hMessage[ "images" ] = { cBase64Image }
      else
         MsgAlert( "Image " + cImageFileName + " not found" )
         return nil
      endif
   endif

   if bWriteFunction != nil
      hRequest[ "stream" ] = .T.
      curl_easy_setopt( ::hCurl, HB_CURLOPT_WRITEFUNCTION, bWriteFunction )
   else
      hRequest[ "stream" ] = .F.
      curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   endif

   cJson = hb_jsonEncode( hRequest )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )
   
   ::nError = curl_easy_perform( ::hCurl )
   curl_easy_getinfo( ::hCurl, HB_CURLINFO_RESPONSE_CODE, @::nHttpCode )

   if ::nError == HB_CURLE_OK
      if bWriteFunction == nil
         ::cResponse = curl_easy_dl_buff_get( ::hCurl )
      endif
   else
      ::cResponse = "Error code " + Str( ::nError )
   endif
return ::cResponse

METHOD End() CLASS TOLlama
   curl_easy_cleanup( ::hCurl )
   ::hCurl = nil
return nil

METHOD GetValue() CLASS TOLlama
   local hResponse, uValue  
   hb_jsonDecode( ::cResponse, @hResponse )
   TRY 
      uValue = hResponse[ "message" ][ "content" ]
   CATCH
      uValue = hResponse[ "error" ][ "message" ]
   END   
return uValue

CLASS TAgent 
   DATA cCategory
   DATA aTools
   METHOD New( cCategory, aTools )
ENDCLASS      

METHOD New( cCategory, aTools ) CLASS TAgent
   ::cCategory = cCategory
   ::aTools = aTools
return Self
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278748#p278748 Wed, 02 Apr 2025 03:59:13 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278748#p278748
<![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by chiaiese]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278758#p278758 I tested this class and to make it work for me I had to rename some parameter names as this:

Code: Select all | Expand

FUNCTION CreateFolder( hParams )
   local cFolder
   if hb_HHasKey( hParams, "folder_name" ) .and. ! Empty( hParams[ "folder_name" ] )
      cFolder = hParams[ "folder_name" ]
      DirMake( cFolder )
      return "Folder '" + cFolder + "' created successfully"
   endif
return "Failed to create folder: no name specified"

FUNCTION CreateFile( hParams )
   local cFile
   if hb_HHasKey( hParams, "filename" ) .and. ! Empty( hParams[ "filename" ] )
      cFile = hParams[ "filename" ]
      hb_MemoWrit( cFile, "" )
      return "File '" + cFile + "' created successfully"
   endif
return "Failed to create file: no name specified"

FUNCTION ModifyFile( hParams )
   local cFile, cContent
   if hb_HHasKey( hParams, "filename" ) .and. ! Empty( hParams[ "filename" ] ) .and. ;
      hb_HHasKey( hParams, "content" ) .and. ! Empty( hParams[ "content" ] )
      cFile = hParams[ "filename" ]
      cContent = hParams[ "content" ]
      hb_MemoWrit( cFile, cContent )
      return "File '" + cFile + "' modified with content: " + cContent
   endif
return "Failed to modify file: missing file name or content"
does it mean that parameter names the AI generates could be different from one machine to another?
Roberto]]>
no_email@example.com (chiaiese) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278758#p278758 Wed, 02 Apr 2025 16:01:38 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278758#p278758
<![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278761#p278761
many thanks!

Are you using Gemma3 too ?

We should use a good quality LLM and also low temperature]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278761#p278761 Wed, 02 Apr 2025 22:18:48 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278761#p278761
<![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by chiaiese]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278777#p278777 yes, I'm using "gemma3" model with Ollama version 0.6.3

maybe we have to instruct Ollama on JSON parameter names too... :-)]]>
no_email@example.com (chiaiese) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278777#p278777 Thu, 03 Apr 2025 11:19:55 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278777#p278777
<![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by chiaiese]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278779#p278779

Code: Select all | Expand

   hMessage[ "content" ]     = "Given this prompt: '" + cPrompt + "' and category '" + oAgent:cCategory + "', " + ;
                              "select the appropriate tool from: " + cTools + " and extract any relevant parameters. " + ;
                              "Respond with a JSON object containing 'tool' (the tool name) and 'params' (a hash of parameters)."+;
			      "Name the parameters as 'Folder_Name' for folders, as 'File_Name' for file names and as 'Content' for file content."
and Ollama answered correctly respecting also the capitalization.
Of course the Prompt should be standardized to respect the fields that we expect to be returned.]]>
no_email@example.com (chiaiese) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278779#p278779 Thu, 03 Apr 2025 11:50:14 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278779#p278779
<![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278780#p278780 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278780#p278780 Thu, 03 Apr 2025 12:25:33 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278780#p278780 <![CDATA[Artificial Intelligence examples :: Re: Class TOllama with Agents! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278808#p278808 https://github.com/naldodj/naldodj-hb-ai-agents]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278808#p278808 Fri, 04 Apr 2025 23:27:59 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45590&p=278808#p278808 <![CDATA[latest AI news :: New Surf agent :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45561&p=278544#p278544 https://surf.e2b.dev/

Open source, can be installed on your pc :!:]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45561&p=278544#p278544 Mon, 24 Mar 2025 13:42:19 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45561&p=278544#p278544
<![CDATA[latest AI news :: AI life circle... :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45591&p=278753#p278753 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45591&p=278753#p278753 Wed, 02 Apr 2025 06:36:05 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45591&p=278753#p278753 <![CDATA[latest AI news :: MCP revolution :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278729#p278729 https://github.com/modelcontextprotocol/servers
https://github.com/punkpeye/awesome-mcp-servers

https://www.reddit.com/r/mcp/
Model Context Protocol (MCP)
The Model Context Protocol is an open standard that enables developers to build secure, two-way connections between their data sources and AI-powered tools
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278729#p278729 Mon, 31 Mar 2025 23:19:15 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278729#p278729
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278730#p278730
https://openai.github.io/openai-agents-python/mcp/]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278730#p278730 Mon, 31 Mar 2025 23:57:23 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278730#p278730
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278732#p278732 https://github.com/OpenAgentPlatform/Dive

Dive is an open-source MCP Host Desktop Application that seamlessly integrates with any LLMs supporting function calling capabilities]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278732#p278732 Tue, 01 Apr 2025 02:12:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278732#p278732
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278734#p278734
/tools

Code: Select all | Expand

```xml
<tools>
    {"type": "function", "function": {"name":"echo","description":"A simple echo tool to verify if the MCP server is working properly. It returns a characteristic response containing the input message.","parameters":{"type":"object","required":["message"],"properties":{"delayMs":{"type":"number","description":"Optional delay in milliseconds before responding"},"message":{"type":"string","description":"Message to be echoed back"}}}}}
    {"type": "function", "function": {"name":"read_file","description":"Read the complete contents of a file from the file system. Handles various text encodings and provides detailed error messages if the file cannot be read. Use this tool when you need to examine the contents of a single file. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"read_multiple_files","description":"Read the contents of multiple files simultaneously. This is more efficient than reading files one by one when you need to analyze or compare multiple files. Each file's content is returned with its path as a reference. Failed reads for individual files won't stop the entire operation. Only works within allowed directories.","parameters":{"type":"object","required":["paths"],"properties":{"paths":{"type":"array","description":""}}}}}
    {"type": "function", "function": {"name":"write_file","description":"Create a new file or completely overwrite an existing file with new content. Use with caution as it will overwrite existing files without warning. Handles text content with proper encoding. Only works within allowed directories.","parameters":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","description":""},"content":{"type":"string","description":"Content to write to the file"}}}}}
    {"type": "function", "function": {"name":"edit_file","description":"Edit an existing file by appending or prepending text. Handles various text encodings and provides detailed error messages if the file cannot be edited. Only works within allowed directories.","parameters":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","description":""},"content":{"type":"string","description":"Content to edit into the file"}}}}}
    {"type": "function", "function": {"name":"delete_file","description":"Delete a file from the file system. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"create_directory","description":"Create a new directory in the file system. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"delete_directory","description":"Delete a directory from the file system. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"list_files","description":"List all files and directories in a given directory. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"move_file","description":"Move a file from one location to another. Only works within allowed directories.","parameters":{"type":"object","required":["srcPath","destPath"],"properties":{"srcPath":{"type":"string","description":"Source path of the file"},"destPath":{"type":"string","description":"Destination path of the file"}}}}}
    {"type": "function", "function": {"name":"copy_file","description":"Copy a file to a new location. Only works within allowed directories.","parameters":{"type":"object","required":["srcPath","destPath"],"properties":{"srcPath":{"type":"string","description":"Source path of the file"},"destPath":{"type":"string","description":"Destination path of the file"}}}}}
    {"type": "function", "function": {"name":"get_file_info","description":"Retrieve detailed metadata about a file or directory. Returns comprehensive information including size, creation time, last modified time, permissions, and type. This tool is perfect for understanding file characteristics without reading the actual content. Only works within allowed directories.","parameters":{"type":"object","required":["path"],"properties":{"path":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"list_allowed_directories","description":"Returns the list of directories that this server is allowed to access. Use this to understand which directories are available before trying to access files.","parameters":{"type":"object","required":[],"properties":{}}}}
    {"type": "function", "function": {"name":"puppeteer_navigate","description":"Navigate to a URL","parameters":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":""}}}}}
    {"type": "function", "function": {"name":"puppeteer_screenshot","description":"Take a screenshot of the current page or a specific element","parameters":{"type":"object","required":["name"],"properties":{"height":{"type":"number","description":"Height in pixels (default: 600)"},"name":{"type":"string","description":"Name for the screenshot"},"selector":{"type":"string","description":"CSS selector for element to screenshot"},"width":{"type":"number","description":"Width in pixels (default: 800)"}}}}}
    {"type": "function", "function": {"name":"puppeteer_click","description":"Click an element on the page","parameters":{"type":"object","required":["selector"],"properties":{"selector":{"type":"string","description":"CSS selector for element to click"}}}}}
    {"type": "function", "function": {"name":"puppeteer_fill","description":"Fill out an input field","parameters":{"type":"object","required":["selector","value"],"properties":{"selector":{"type":"string","description":"CSS selector for input field"},"value":{"type":"string","description":"Value to fill"}}}}}
    {"type": "function", "function": {"name":"puppeteer_select","description":"Select an element on the page with Select tag","parameters":{"type":"object","required":["selector","value"],"properties":{"selector":{"type":"string","description":"CSS selector for element to select"},"value":{"type":"string","description":"Value to select"}}}}}
    {"type": "function", "function": {"name":"puppeteer_execute_script","description":"Execute a JavaScript script in the context of the current page","parameters":{"type":"object","required":["script"],"properties":{"script":{"type":"string","description":"JavaScript code to execute"}}}}}
    {"type": "function", "function": {"name":"execute_shell_command","description":"Execute a shell command on the server. Only works within allowed directories.","parameters":{"type":"object","required":["command"],"properties":{"command":{"type":"string","description":"Shell command to execute"}}}}}
</pre>
/schema

Code: Select all | Expand

{
  "schema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      },
      "arguments": {
        "type": "object"
      }
    },
    "required": ["name", "arguments"],
    "additionalProperties": false
  }
}
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278734#p278734 Tue, 01 Apr 2025 06:56:06 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278734#p278734
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278746#p278746 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278746#p278746 Tue, 01 Apr 2025 14:19:25 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278746#p278746 <![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278755#p278755
https://youtu.be/iS25RFups4A?si=S2k6xd1B7QFt-ZIy]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278755#p278755 Wed, 02 Apr 2025 10:50:24 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278755#p278755
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278798#p278798
https://youtu.be/gkX_sc6Jrig?si=Cb54gCi90fe3svZK

Code: Select all | Expand

from praisonaiagents import Agent, MCP
import gradio as gr

def search_airbnb(query):
    agent = Agent (
    instructions="""Ayuda a reservar apartamentos en Airbnb.""",
    llm="ollama/gemma3",
    tools=MCP("npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt")
)
    result = agent.start(query)
    return f"## Resultados de la búsqueda de Airbnb \n\n{result}"

demo = gr.Interface(
    fn=search_airbnb,
    inputs=gr.Textbox(placeholder="Quiero reservar un apartamento en Bogotá por 2 noches...."),
    outputs=gr.Markdown(),
    title="MCP - LOCAL OLLAMA - Asistente de reservas de Airbnb",
    description="Introduce tus requisitos de reserva a continuación.:"
)

if __name__ == "__main__":
    demo.launch()
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278798#p278798 Fri, 04 Apr 2025 13:09:03 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278798#p278798
<![CDATA[latest AI news :: Re: MCP revolution :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278812#p278812 https://github.com/github/github-mcp-server]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278812#p278812 Sat, 05 Apr 2025 00:44:53 -0600 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45587&p=278812#p278812