Consulta de Funcky

Post Reply
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Consulta de Funcky

Post by Jairo Centeno »

Hola estimados,

Tengo un trial de Funcky 6.0 para xBase++, necesito saber si funciona con Fwh.

Saludos desde Nicaragua, C.A.
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Si, funciona, Funcky pra Xbase++ va por OLE, es un componente COM que se puede utilizar perfectamente con FWH
Saludos
R.F.
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Gracias Maestro,

Tiene algún ejemplo para saber cómo utilizar el control?

Saludos
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

No es un control, es un Componente COM y se accesa por OLE.

En general el manual de funcky es muy explicito.

Lee mi articulo:

http://google.blogspot.com/2005/03/its- ... again.html
Saludos
R.F.
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Gracias René,

Leí tu artículo y en realidad resuntó sencillo, eso es lo importante de tener el correo de el que sabe.

Si no es mucha molestia, de casualidad tienes algún ejemplo de utilización de List & Label?

Saludos.
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Hola René,

En realidad creí que al ver tu ejemplo me iba a funcionar, pero no fué así, me aperece el siguiente error:

Error description: Error TOleAuto/-1 Unknown error: TOLEAUTO:NEW

No tengo ningún archivo Funcky.ocx, sólo Funcky60.dll

El ejecutable que descarqué de tu blog funciona perfectamente.

Saludos.
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Jairo:

2 cosillas, el EXE esta construido con la version completa de funcky, por lo que si te falla algun componente es que estas tratando de invocar algun elemento de funcky que no esta en la version de evaluacion.

Utiliza la clase TOleAUTO nativa de xHarbour, si estas trabajando con Harbour igual tendras que agregar la TOLE por fuera.

El componente funcky lo tienes que registrar en tu ordenador para que pueda funcionar.

Esto se hace asi:

copia estos archivos a la carpeta windows\system32

FUNCky60.DLL, FUNCky60.TLB y FUNCky60.Dep

Luego "registra" desde ms-dos el componente tecleando esto:

RegSvr32 \Windows\System32\FUNCky60.DLL


Y listo , deberas registrar Funcky en cada uno de los computadores donde vayas a ejecutar el programa.
Saludos
R.F.
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Post by JoseLuis »

Hola René
Una preguntita sobre el error "Error description: Error TOleAuto/-1 Unknown error: TOLEAUTO:NEW "
Yo compilo con xharbour y a mi me sale éste error en algunas aplicaciones, no te entiendo qué quieres decir con utilizar la clase TOleAuto nativa de xHarbour; yo entiendo que al compilar con xHarbour, éste utiliza sus propias clases.

Me puedes aclarar ésto a ver si soy capaz de continuar con éste tema ?

Saludos

Jose Luis
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Probé utilizando FunckyLt.dll y funcionó, con la salvedad de que esa versión es muy limitada.

Ahora estoy tratando de probar List & Label 12, lo he intentado utilizando Ole y también Activex, pero no ha funcionado.

Alguna sugerencia?

Saludos.
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Post by JoseLuis »

Hola Jairo

Un amigo mio compró list & label, y lo dejó por imposible, no pudo ponerlo en marcha, él pretendía general códigos de barras en formato PDF417, que parece ser que list & label los genera, pero se volvió majareta y no lo consiguíó, ya que todo viene en inglés y principalmente en alemán.

Saludos

Jose Luis
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Ya pude desplegar el diseñador de List & Label con Activex:

oActiveX = TActiveX():New( oWnd, "L12.List-Label12_Ctrl_32.1" )
oActiveX:Do("LlDefineLayout", oWnd:hWnd, "Design List", LL_PROJECT_LIST,"simple.lst")

Esta muy interesante.

Saludos.
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Post by JoseLuis »

Intento crear una aplicación con éstad dos líneas, y me da el siguiente error:
Error description: Error BASE/1003 Variable does not exist: LL_PROJECT_LIST

La verdad es que yo nunca he trabajado con activex , si me puedes mandar una parte de codigo para ver como funciona el tema te lo agradezco.

Un saludo

Jose Luis
Jairo Centeno
Posts: 13
Joined: Thu Mar 08, 2007 6:04 pm
Location: Zaragoza, España

Post by Jairo Centeno »

Hola JoseLuis,

Incluye la linea #xtranslate LL_PROJECT_LIST => 2, o bien, utiliza directamente el valor.

En "C:\Archivos de programa\combit\LL12\Programmable Samples and Declarations\Alaska Xbase++" se encuentra cmbtll12.ch

#include "FiveWin.ch"
#include "cmbtll12.ch"
Global oActiveX, oWnd, hJob, nRet

Function Main()
Local cEvents := ""
LOCAL aField, aType, aLen, aDec, sName
LOCAL FldType, FldContent, DateBuffer, lExpr, I:=1, bAsField:=.T.

USE ARTICLE NEW
GO TOP

aField := Array( ARTICLE->(FCount()) )
aType := Array( ARTICLE->(FCount()) )
aLen := Array( ARTICLE->(FCount()) )
aDec := Array( ARTICLE->(FCount()) )
sname := "article.lst"

DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"

oActiveX = TActiveX():New( oWnd, "L12.List-Label12_Ctrl_32.1" )

oWnd:oClient = oActiveX // To fill the entire window surface

//US: Read field info from database
AFields( aField, aType, aLen, aDec )

//US: open List & Label job, retrieve job handle
hJob := 1

//US: Enable multiple table lines
oActiveX:Do( "LlSetOption", LL_OPTION_MULTIPLETABLELINES, 1)

//US: clear DLL-internal field buffer
oActiveX:Do( "LlDefineFieldStart" )

// US: Define Fields

FOR I = 1 to ARTICLE->(Fcount())

DateBuffer = Replicate(chr(0), 255)

DO CASE
CASE aType == "N"
FldType=LL_NUMERIC
FldContent=Str( FieldGet(i) )
CASE aType == "D"
FldType=LL_DATE

//US: Convert to Julian Date
//US: Create function tree
lExpr = oActiveX:Do("LlExprParse", "CTOD( FieldGet(i) )", .F. )

//US: Evaluate expression
oActiveX:Do("LlExprEvaluate", lExpr, @DateBuffer )

//US: Free expression
oActiveX:Do("LlExprFree", lExpr )
FldContent = DateBuffer

CASE aType == "L"
FldType=LL_BOOLEAN
if FieldGet(i) = .F.
FldContent="FALSE"
else
FldContent="TRUE" endif

CASE aType == "C"
FldType=LL_TEXT
FldContent=Trim(FieldGet(i))

// US: for article number generate EAN128-barcode
if i=1
DO CASE

// US: Distinguish between field and variable declaration
CASE bAsField==.F.
oActiveX:Do("LlDefineVariableExt", "ARTICLENO_EAN128", Trim(FieldGet(i)), LL_BARCODE_EAN128 )

CASE bAsField==.T.
oActiveX:Do("LlDefineFieldExt", "ARTICLENO_EAN128", Trim(FieldGet(i)), LL_BARCODE_EAN128 )

END CASE
endif

CASE aType == "M"
FldType=LL_TEXT
FldContent=FieldGet(i)

END CASE

//US: pass data to List & Label

DO CASE
CASE bAsField==.F.

oActiveX:Do("LlDefineVariableExt", aField, FldContent, FldType )
CASE bAsField==.T.

oActiveX:Do("LlDefineFieldExt",aField, FldContent, FldType )
END CASE

NEXT I

// US: start designer
oActiveX:Do("LlSetPrinterDefaultsDir",hJob,"C:\Windows\Temp")
oActiveX:Do("LlDefineLayout",oWnd:hWnd,"Designer",LL_PROJECT_LIST, "article.lst")

ACTIVATE WINDOW oWnd VALID ( dbCloseArea(),.t. )

Return
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Post by JoseLuis »

Hola Jairo

Lo he probado y es fantástico.

Estaba atascado, y me das pistas para continuar

Gracias y saludos

Joe Luis
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Post by Mike Serra »

Hola Jairo, he estado probando tu ejemplo y me funciona perfectamente, en tu ejemplo, ¿Sabrías invocar la vista preeliminar directamente, en vez del diseñador?

Muchas Gracias.
Post Reply