Page 1 of 1
Consulta de Funcky
Posted: Thu Mar 08, 2007 8:58 pm
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.
Posted: Fri Mar 09, 2007 1:05 am
by R.F.
Si, funciona, Funcky pra Xbase++ va por OLE, es un componente COM que se puede utilizar perfectamente con FWH
Posted: Fri Mar 09, 2007 4:49 pm
by Jairo Centeno
Gracias Maestro,
Tiene algún ejemplo para saber cómo utilizar el control?
Saludos
Posted: Fri Mar 09, 2007 4:56 pm
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
Posted: Fri Mar 09, 2007 6:28 pm
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.
Posted: Mon Mar 12, 2007 3:31 pm
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.
Posted: Mon Mar 12, 2007 4:46 pm
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.
Posted: Tue Mar 13, 2007 7:47 am
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
Posted: Tue Mar 13, 2007 4:03 pm
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.
Posted: Tue Mar 13, 2007 6:14 pm
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
Posted: Wed Mar 14, 2007 1:29 am
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.
Posted: Wed Mar 14, 2007 11:51 am
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
Posted: Wed Mar 14, 2007 3:55 pm
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
Posted: Thu Mar 15, 2007 7:56 am
by JoseLuis
Hola Jairo
Lo he probado y es fantástico.
Estaba atascado, y me das pistas para continuar
Gracias y saludos
Joe Luis
Posted: Fri Sep 26, 2008 12:28 pm
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.