Hola,
Tengo un fichero ".HBP" con una serie de PRG que forman parte de la aplicación.
CONMENU.PRG
CONMAAS.PRG
CONMACO.PRG
CONMACU.PRG
CONMAEM.PRG
CONLIAS.PRG
CONLIEX.PRG
CONBASS.PRG
CONACSA.PRG
Tengo un fichero ".HBC" con estos datos
incpaths=
libpaths=
libs=
gt=
mt=no
instpaths=
Y he realizado una serie de modificaciones sobre la clase REPORT.PRG la cual la tengo en el directorio de origen \HMG.3.4.4\SOURCE\REPORT.
Hasta hay todo correcto, pero el otro dia vi que compañeros incluian estas lineas en sus programas
#include "hmg.ch"
#include "I_REPORT.CH"
#include "H_REPORT.PRG"
#include "_dbf.ch"
Lo que me daba a entender que yo podía incorporar mi clase REPORT modificada en el programa desde mi directoria de trabajo, sin tener que modificar la original y de esta forma tener siempre una copia sin necesidad de estropear.
Lo he probado y efectivamente funciona, pero me ocurre una cosa.
1/ Lo incorporo solo en el 3er. PRG de la lista del fichero ".HBP", concretamente "CONMACO.PRG" y me lo asume el resto de la aplicación. Todos los programas asumen la clase DO REPORT modificada, sin necesidad de ponerles el include en los otros ".PRG" ... ¿Eso es así...?
2/Hice lo mismo, pero en esta caso de el 1er. PROGRAMA, y en este caso me da un error en tiempo real.
Se me muestra una ventana que dice:
PROGRAM ERROR
ERROR BASE/1108 argument error: HB_UAT
Called from HB_UAT(0)
Called From EASYREPORT(169)
y la linea en cuestion es esta .
ctitle1:=HMG_LOWER(HB_USUBSTR(ctitle,HB_UAT('|',ctitle)+1))+'...'
¿Porque me da error en el 1er PRG de la lista, que casualmente es el 1er. PRG que se compila..?
¿Tiene que ver en algo el orden...?
Y porque si lo pongo los INCLUDE solo en un PRG (en CONMACO.PRG), me lo asumen el resto de PRG ..?
Es normal..?
Muchas gracias a todos..
COMPILANDO - UNA CURIOSIDAD
Moderator: Rathinagiri
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
COMPILANDO - UNA CURIOSIDAD
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
Re: COMPILANDO - UNA CURIOSIDAD
Si tu revisas \HMG\3.4.4\INCLUDE\hmg.ch, hace un #include "minigui.ch".
Y si revisas minigui.ch, hace un #include de todos los archivos que necesita de \HMG\3.4.4\INCLUDE\
incluyendo "i_report.ch" por lo tanto ya no tienes que hacerlo tu.
Si modificaste "i_report.ch" y "H_REPORT.PRG", cambiales de nombre e incluyelos en tu prg.
#include "hmg.ch"
#include "MI_I_REPORT.CH"
#include "MI_H_REPORT.PRG"
Y si revisas minigui.ch, hace un #include de todos los archivos que necesita de \HMG\3.4.4\INCLUDE\
incluyendo "i_report.ch" por lo tanto ya no tienes que hacerlo tu.
Si modificaste "i_report.ch" y "H_REPORT.PRG", cambiales de nombre e incluyelos en tu prg.
#include "hmg.ch"
#include "MI_I_REPORT.CH"
#include "MI_H_REPORT.PRG"
Andrés González López
Desde Guadalajara, Jalisco. México.
Desde Guadalajara, Jalisco. México.
- mustafa
- Posts: 1159
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: COMPILANDO - UNA CURIOSIDAD
Hola amigo José Manuel (Salinetas24)
Personalmente trabajo de la siguiente manera:
el el 1º Prg que llamaremos Main.prg
pongo todos los Prg y Ch que voy ha utilizar
ejemplo:
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
#include "Apoyo_1.prg"
#include "Calcul_Nif.prg"
#include "Factur.Prg"
Function Main
......... etc etc.
seria lo mismo que poner:
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
SET PROCEDURE TO "Apoyo_1.prg"
SET PROCEDURE TO "Calcul_Nif.prg"
SET PROCEDURE TO "Factur.Prg"
y tengo un fichero bat que se llama build.344.bat para compilar
y coloco el nombre del 1º Prg que en mi caso se llama Main.prg
y dentro del fichero bat pongo :
@ECHO OFF
call c:\hmg.3.4.4\build.bat main %*
Saludos amigos
Mustafa
Personalmente trabajo de la siguiente manera:
el el 1º Prg que llamaremos Main.prg
pongo todos los Prg y Ch que voy ha utilizar
ejemplo:
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
#include "Apoyo_1.prg"
#include "Calcul_Nif.prg"
#include "Factur.Prg"
Function Main
......... etc etc.
seria lo mismo que poner:
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
SET PROCEDURE TO "Apoyo_1.prg"
SET PROCEDURE TO "Calcul_Nif.prg"
SET PROCEDURE TO "Factur.Prg"
y tengo un fichero bat que se llama build.344.bat para compilar
y coloco el nombre del 1º Prg que en mi caso se llama Main.prg
y dentro del fichero bat pongo :
@ECHO OFF
call c:\hmg.3.4.4\build.bat main %*
Saludos amigos
Mustafa
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: COMPILANDO - UNA CURIOSIDAD
Hola amigos y gracias por contestar.
Igual no me he explicado bien.
Yo no tengo problemas con la compilación. Pero como digo he visto programadores que modifican una clase de HMG y posteriormente la ponen en su PRG como yo indico. Yo lo he hecho y en principio funciona, pero de una forma muy rara. Si lo Incluyo en el "Main" me da el error que puse en mi anterior mensaje, pero sin embargo si pongo el include en otro ".PRG" en mi caso en "CONMACO.PRG" no pasa nada y me lo asume. Lo gracioso es que en el resto de los ".PRG" también me asumen la nueva clase sin necesidad de nombrarla, sin necesidad de hacerles el include..., ni de ponerla.¿?¿?
Y lo mejor de todo, al que le he visto hacer eso es a ti amigo Jordi.., jajaja
Mirate es enlace Mustafa, el otro día revisando lo vi y me llamo la atención. No me había fijado. Lo probé y funciona, bueno .., a mi me funciona con las salvedades que digo.
http://www.hmgforum.com/viewtopic.php?f=24&t=5684
verás que hay un ".ZIP" tuyo, algo como REPORT_SELECTIVO, que realiza unas mejoras sobre la Clase REPORT que yo habia modificado (por cierto ahora la tengo mucho mejor), colgare un prg_ejemplo en el otro LINK que tenemos entre los tres, el de LASTKEY.., jajaja
No se.., simplemente digo que el comportamiento del compilador en este caso es raro..
Venga., unas cervezas frequitas
Igual no me he explicado bien.
Yo no tengo problemas con la compilación. Pero como digo he visto programadores que modifican una clase de HMG y posteriormente la ponen en su PRG como yo indico. Yo lo he hecho y en principio funciona, pero de una forma muy rara. Si lo Incluyo en el "Main" me da el error que puse en mi anterior mensaje, pero sin embargo si pongo el include en otro ".PRG" en mi caso en "CONMACO.PRG" no pasa nada y me lo asume. Lo gracioso es que en el resto de los ".PRG" también me asumen la nueva clase sin necesidad de nombrarla, sin necesidad de hacerles el include..., ni de ponerla.¿?¿?
Y lo mejor de todo, al que le he visto hacer eso es a ti amigo Jordi.., jajaja
Mirate es enlace Mustafa, el otro día revisando lo vi y me llamo la atención. No me había fijado. Lo probé y funciona, bueno .., a mi me funciona con las salvedades que digo.
http://www.hmgforum.com/viewtopic.php?f=24&t=5684
verás que hay un ".ZIP" tuyo, algo como REPORT_SELECTIVO, que realiza unas mejoras sobre la Clase REPORT que yo habia modificado (por cierto ahora la tengo mucho mejor), colgare un prg_ejemplo en el otro LINK que tenemos entre los tres, el de LASTKEY.., jajaja
No se.., simplemente digo que el comportamiento del compilador en este caso es raro..
Venga., unas cervezas frequitas
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- mustafa
- Posts: 1159
- Joined: Fri Mar 20, 2009 11:38 am
- DBs Used: DBF
- Location: Alicante - Spain
- Contact:
Re: COMPILANDO - UNA CURIOSIDAD
Hola Nanu
Como te dije
el el primero pongo todos los Prg y Ch que voy ha utiliza
mediante #include
1º Prg
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
#include "Apoyo_1.prg"
#include "Calcul_Nif.prg"
etc.etc.
y en cada Prg solo #include "hmg.ch"
2º Apoyo_1.prg contenido
#include "hmg.ch"
*------------------------------------------------------------*
Function Apoyox_1()
*------------------------------------------------------------*
etc...etc..
3º Calcul_Nif.prg contenido
#include "hmg.ch"
*---------------------------------------------------------*
Function Calcul_Nif()
*---------------------------------------------------------*
etc. etc.
Pongo el primer PRG en el fichero build.344.bat
et voilà se fabricó el Main.Exe
Como dice Salinetas24
"es que en el resto de los ".PRG" también me asumen la nueva clase sin necesidad de nombrarla"
No tengo idea, pero ami me funciona
Saludos
Mustafa
Como te dije
el el primero pongo todos los Prg y Ch que voy ha utiliza
mediante #include
1º Prg
#include "hmg.ch"
#include "hmg_BoxLetterShow.ch"
#include "Apoyo_1.prg"
#include "Calcul_Nif.prg"
etc.etc.
y en cada Prg solo #include "hmg.ch"
2º Apoyo_1.prg contenido
#include "hmg.ch"
*------------------------------------------------------------*
Function Apoyox_1()
*------------------------------------------------------------*
etc...etc..
3º Calcul_Nif.prg contenido
#include "hmg.ch"
*---------------------------------------------------------*
Function Calcul_Nif()
*---------------------------------------------------------*
etc. etc.
Pongo el primer PRG en el fichero build.344.bat
et voilà se fabricó el Main.Exe
Como dice Salinetas24
"es que en el resto de los ".PRG" también me asumen la nueva clase sin necesidad de nombrarla"
No tengo idea, pero ami me funciona
Saludos
Mustafa
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: COMPILANDO - UNA CURIOSIDAD
Jajajaja gracies amic.
Seguire inventigando..
Seguire inventigando..
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.
- SALINETAS24
- Posts: 667
- Joined: Tue Feb 27, 2018 3:06 am
- DBs Used: DBF
- Contact:
Re: COMPILANDO - UNA CURIOSIDAD
Ya lo tengo.
Como yo para compilar utilizo el fichero ".hbp" donde pongo todos los ".prg" que lleva la aplicación, entonces en el 1er ".PRG" en mi caso "CONMENU.PRG" pongo
#include "hmg.ch"
#include "I_REPORT.CH"
Por raro que parezca el include "I_REPORT.CH" no lo pongo en ningun ".PRG" más y me asume el nuevo.
y en el ".hbp" pongo
CONMENU.PRG
CONMAAS.PRG
CONMACO.PRG
CONMACU.PRG
CONMAEM.PRG
CONLIAS.PRG
CONLIEX.PRG
CONBASS.PRG
CONACSA.PRG
"H_REPORT.CH" <--- Esta linea
Y me asume la nueva clase en todos los ".PRG"
Mola
Como yo para compilar utilizo el fichero ".hbp" donde pongo todos los ".prg" que lleva la aplicación, entonces en el 1er ".PRG" en mi caso "CONMENU.PRG" pongo
#include "hmg.ch"
#include "I_REPORT.CH"
Por raro que parezca el include "I_REPORT.CH" no lo pongo en ningun ".PRG" más y me asume el nuevo.
y en el ".hbp" pongo
CONMENU.PRG
CONMAAS.PRG
CONMACO.PRG
CONMACU.PRG
CONMAEM.PRG
CONLIAS.PRG
CONLIEX.PRG
CONBASS.PRG
CONACSA.PRG
"H_REPORT.CH" <--- Esta linea
Y me asume la nueva clase en todos los ".PRG"
Mola
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no.