Page 1 of 1

Problemas al compilar mi clase en harbour

Posted: Sun Apr 22, 2007 5:34 pm
by lubin
Buenas Tardes

estoy compilando todas mis funciones que usaba en FW/16 bits con CLipper hacia Harbour , sin problemas, hasta que decidi compilar una Clase que desarrolle para guardar las variables globales del sistema en un objeto. que compilaba sin error en Clipper, pero en harbour me da el mensaje de error siguiente :

Harbour Compiler Alpha build 44.0 (Flex)
Copyright 1999-2004, http://www.harbour-project.org/
Compiling 'lkdatsys.prg' and generating preprocessed output to 'lkdatsys.ppo'...

lkdatsys.prg(14) Error E0030 Syntax error: "parse error at '('"
lkdatsys.prg(75) Error E0030 Syntax error: "parse error at '('"
lkdatsys.prg(76) Error E0030 Syntax error: "parse error at '_CARGACIA'"
lkdatsys.prg(78 ) Error E0030 Syntax error: "parse error at 'endif'"
lkdatsys.prg(81) Error E0010 'Class "KDAT_SYS" not declared for method: NEW(W_D
RIVE,W_INSTALAR,W_BASEDIR,W_ID_SYS,W_NOMSYS,W_MODSYS,W_VERSYS,W_AUTOR1,W_AUTOR2)
'
lkdatsys.prg(81) Warning W0007 Function 'KDAT_SYS' does not end with RETURN statement
lkdatsys.prg(92) Error E0030 Syntax error: "parse error at 'W_DRIVE'"
lkdatsys.prg(145) Error E0010 'Class "KDAT_SYS" not declared for method: CARGACIA(cl_IDCIA,cl_EMPRESA,cl_DEFA) '
7 errors

No code generated




Aparentemente me falta definir algun include o definicion
Agradecere alguna indicacion

Lubin

Re: Problemas al compilar mi clase en harbour

Posted: Sun Apr 22, 2007 6:19 pm
by lubin
Holas con todos, les comento ...

Yo mismo me respondo, resulta que la clase comienza asi :
CLASS KDAT_SYS()

Con clipper no sale error pero para evitar ese error retire los () asi:
CLASS KDAT_SYS
Si se resolvio el problema


Pero a su vez me salio error de Variable, este es el resultado de la compilacion:


Harbour Compiler Alpha build 44.0 (Flex)
Copyright 1999-2004, http://www.harbour-project.org/
Compiling 'lkdatsys.prg' and generating preprocessed output to 'lkdatsys.ppo'...

lkdatsys.prg(86) Error E0030 Syntax error: "parse error at 'W_DRIVE'"
1 error

No code generated


He visto la linea a la que se hace referencia y corresponde al siguiente fragnmento de uno de los Metodos creados :

METHOD NEW(W_DRIVE,W_INSTALAR,W_BASEDIR,W_ID_SYS,W_NOMSYS,W_MODSYS,W_VERSYS,W_AUTOR1,W_AUTOR2) CLASS KDAT_SYS

*Valor Default si no se especifca parametros
DEFAULT W_DRIVE := CURDRIVE() ,; <<<===--- ESTA ES LA LINEA 86
W_INSTALAR:= .F. ,;
W_BASEDIR := "SIGERCON" ,;
W_ID_SYS := "SigerconX" ,;
W_NOMSYS := "Sis.SGCx" ,;
W_MODSYS := "ModuloX" ,;
W_VERSYS := "Milenium" ,;
W_AUTOR1 := "Lubin Azahuanche" ,;
W_AUTOR2 := ""
*====================================================================================
* Definicion de Variables de Valores Globales del Sistema
::SYS_ID_SYS := W_ID_SYS && ID del sistema.......y continua..


Sera acaso que DEFAULT no se puede usar en harbour, pues si lo pongo como comentario "*" .. me compila normalmente..


Agradecere alguna indicacion

Lubin
[/quote]

Re: Problemas al compilar mi clase en harbour

Posted: Mon Apr 23, 2007 2:57 pm
by lubin
Buenos Dias

Sigo con problemas con mi CLASE...

Les comentare que finalmente, mientras tanto puse asteriscos en la zona de defincion de DEFAULT para al menos compìlar y ejecutar mi sistema ,
finalmente compilo sin errores usando del Verce....

Pero al momento de ejecutarlo sale un error de Ejecucion como si estuviera mal definido o indefinido la Clase (y seguro que es asi..., algo falta definir)

Error Description Error Base/1040 Class: NIL has not exported Method SYS_PATHEXE

Y el SYS_PATHEXE es una variable DATA de la Clase la cual se carga la RUTA del sistema. Esta definicion y variable funcionaba correctamente en Clipper.

Por Favor, existe alguna consideracion especial para crear una Clase en Harbour.????

Un Ultimo Comentario: Para entendernos mejor les explicare que hace esta CLASE: me permite crear un objteto general que definir y guardar diferentes Variables del Sistema Ejemplo : Ruta de Bases de datos, Indices,Archivos BMP, Imagenes , etc que seran usados por el sistema, asi como parametros de control como Password, Usuario Activo, u otros valores Standar.

Actualmente lo uso asi:

oMysDatos:=KDAT_SYS():NEW(archi_cfg)

y luego las variable la paso como parametro por todos los modulos del sistema ...

MANTE_CLIENTE(oMysDatos,XCD_CLI,XNM_CLI)


finalmente cuando necesito un dato de la clase la llamo asi:

XPATH_IMAGEN:= oMysDatos:SYS_PATHBMP

y asi cargo la ruta donde estan las imagenes... asi en un oMysDatos tengo todos los valores a la mano del Sistema.


Les Agradecere cometarios

Lubin

lubin.am@speedy.com.pe