Como paso un codigo de VB 10 a FWH

Como paso un codigo de VB 10 a FWH

Postby Jorge Jaurena » Fri Jun 07, 2024 6: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
Jorge Jaurena
 
Posts: 155
Joined: Fri Oct 21, 2005 6:35 pm

Re: Como paso un codigo de VB 10 a FWH

Postby Antonio Linares » Fri Jun 07, 2024 6: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Como paso un codigo de VB 10 a FWH

Postby Jorge Jaurena » Fri Jun 07, 2024 8: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.
Jorge Jaurena
 
Posts: 155
Joined: Fri Oct 21, 2005 6:35 pm

Re: Como paso un codigo de VB 10 a FWH

Postby Compuin » Fri Jun 14, 2024 3: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: Select all  Expand view
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 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Adolfredo Martinez and 26 guests