FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como paso un codigo de VB 10 a FWH
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Como paso un codigo de VB 10 a FWH
Posted: Fri Jun 07, 2024 06:39 PM

Hola.

Al no poder hacer funcionar algunos metodos de una clase existente en una dll decidi encarar el problema de otra forma.

Escribi un peque帽o codigo en VB 10 usando los metodos que no me funcionan en FWH y resulto que en VB 10 andan perfecto.

Como no se como hacer funcionar esto en FWH (probe mil maneras), copio el codigo en VB 10 que funciona bien y quizas alguien me pueda dar alguna pista de como se traduce esto a FWH.

Desde ya muchas gracias.

Jorge Jaurena

Imports FusionClass

Module Module1

Sub Main()

    Dim c_Fusion As New FusionClass.Fusion()

    Dim IpFusion As String

    Dim Status As String

    Dim SubStatus As String

    Dim Tipo

    Dim NroTurno

    Dim InfoTurno

    Dim Ret As Boolean



    Status = ""

    SubStatus = ""

    IpFusion = "192.168.0.44"



    c_Fusion.Connection(IpFusion)

    Ret = c_Fusion.ConnectionStatus()

    If Ret Then

        Console.WriteLine("CONECTADO")

    Else

        Console.WriteLine("NO CONECTADO")

    End If



    c_Fusion.PumpStatus(Int("2"), Status, SubStatus)

    Console.WriteLine(Status)



    Tipo = "S"

    NroTurno = "217"

    InfoTurno = ""



    Ret = c_Fusion.PeriodSalesByGrade(Tipo, NroTurno, "", InfoTurno)

    If Ret Then

        Console.WriteLine(InfoTurno)

    End If

End Sub

End Module

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como paso un codigo de VB 10 a FWH
Posted: Fri Jun 07, 2024 06:57 PM

Estimado Jorge,

El soporte de objetos OLE es algo propio de Harbour no de FWH.

Desde donde se puede descargar FusionClass ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Como paso un codigo de VB 10 a FWH
Posted: Fri Jun 07, 2024 08:32 PM

Hola Antonio, disculpa que siga con el mismo tema pero no quiero escribir todo de vuelta en VB10 porque lo mas importante ya lo tengo andando bien en FWH y es solo agregar 2 o 3 cosas mas que son las del problema donde debo recibir respuesta en el parametro del metodo.

No es una dll que se pueda descargar, te la paso al mail.

Y tampoco se puede probar si no se hace con conexion real al controlador de surtidores, yo hago pruebas en un cliente directamente.

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Como paso un codigo de VB 10 a FWH
Posted: Fri Jun 14, 2024 03:37 PM
Hola,

Puedes probar con ChatGPT. He resuelto este tipo de problemas de conversion de codigo con el.

Aca te pongo un ejemeplo

Para convertir el c贸digo VB.NET a FiveWin/Harbour Imports FusionClass, necesitas adaptar las llamadas a m茅todos y el manejo de tipos de datos seg煤n las convenciones de FiveWin/Harbour. Aqu铆 tienes una aproximaci贸n de c贸mo podr铆as hacerlo:
Code (fw): Select all Collapse
xBase
#include 'FUSION.CH'

PROCEDURE Main()

聽 聽LOCAL c_Fusion, IpFusion, Status, SubStatus, Tipo, NroTurno, InfoTurno, Ret

聽 聽Status := ""
聽 聽SubStatus := ""
聽 聽IpFusion := "192.168.0.44"

聽 聽c_Fusion := Fusion():new()
聽 聽c_Fusion:Connection(IpFusion)
聽 聽Ret := c_Fusion:ConnectionStatus()

聽 聽IF Ret
聽 聽 聽 ? "CONECTADO"
聽 聽ELSE
聽 聽 聽 ? "NO CONECTADO"
聽 聽ENDIF

聽 聽c_Fusion:PumpStatus(2, @Status, @SubStatus)
聽 聽? Status

聽 聽Tipo := "S"
聽 聽NroTurno := "217"
聽 聽InfoTurno := ""

聽 聽Ret := c_Fusion:PeriodSalesByGrade(Tipo, NroTurno, "", @InfoTurno)
聽 聽
聽 聽IF Ret
聽 聽 聽 ? InfoTurno
聽 聽ENDIF

RETURN
### Explicaci贸n:

1. **Inclusi贸n de biblioteca (`#include 'FUSION.CH'`)**:
- Aseg煤rate de incluir el archivo de definici贸n de clases (`FUSION.CH`) que contiene las definiciones de las clases y m茅todos que quieres utilizar desde FusionClass.

2. **Definici贸n de variables locales (`LOCAL ...`)**:
- Define todas las variables locales al principio del procedimiento `Main`.

3. **Creaci贸n de objeto Fusion (`c_Fusion := Fusion():new()`)**:
- En FiveWin/Harbour, se crea un objeto usando `:<class name>():new()` para llamar al constructor.

4. **Llamadas a m茅todos (`:MethodName(...)`)**:
- Para llamar a m茅todos de un objeto, se utiliza el operador `:` seguido del nombre del m茅todo y los par谩metros.

5. **Paso de par谩metros por referencia (`@Variable`)**:
- En Harbour, para pasar par谩metros por referencia, se utiliza `@` antes del nombre de la variable. Esto se usa para los par谩metros `Status`, `SubStatus`, y `InfoTurno` en las llamadas a m茅todos.

6. **Verificaci贸n de retorno (`IF Ret ... ENDIF`)**:
- Se utiliza para verificar el valor de retorno de los m茅todos que devuelven un resultado booleano, como `ConnectionStatus` y `PeriodSalesByGrade`.

### Notas adicionales:

- Aseg煤rate de ajustar cualquier otro detalle dependiente del entorno espec铆fico de Harbour y FiveWin que est茅s utilizando, como manejo de errores o configuraciones adicionales del entorno de desarrollo.
- La sintaxis y la forma de manejar los objetos y m茅todos pueden variar dependiendo de la versi贸n y configuraci贸n de Harbour que est茅s utilizando, as铆 que verifica la documentaci贸n espec铆fica de tu entorno.

Este c贸digo adaptado deber铆a proporcionarte una base s贸lida para comenzar a trabajar con la biblioteca FusionClass en FiveWin/Harbour.

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Continue the discussion