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
Como paso un codigo de VB 10 a FWH
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Como paso un codigo de VB 10 a FWH
Estimado Jorge,
El soporte de objetos OLE es algo propio de Harbour no de FWH.
Desde donde se puede descargar FusionClass ?
El soporte de objetos OLE es algo propio de Harbour no de FWH.
Desde donde se puede descargar FusionClass ?
-
- Posts: 155
- Joined: Fri Oct 21, 2005 6:35 pm
Re: Como paso un codigo de VB 10 a FWH
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.
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.
Re: Como paso un codigo de VB 10 a FWH
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:
### 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.
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
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
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
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code