Variables PRIVATE no existen.
Moderator: Rathinagiri
- edufloriv
- Posts: 247
- Joined: Thu Nov 08, 2012 3:42 am
- DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
- Location: PERU
Variables PRIVATE no existen.
Saludos amigos,
Tengo un problema con unas variables private, como podrán ver lineas abajo al inicio del módulo declaro una variable llamada OH_MODO como private, esta variable la uso a lo largo del módulo para realizar las operaciones respectivas. Sin embargo, hay ocasiones, no siempre, en las que al tratar de cerrar el módulo me lanza ese error:
Error BASE/1003 No existe la variable: OH_MODO
Called from ORDENSALIR(315)
Called from (b)ORDENDECOMPRA(51)
He revisado todos los .prg del sistema con el crimson y ya he verificado que esta variable solo existe en este módulo. En realidad me esta ocurriendo lo mismo en otros módulos del sistema con algunas variables, pero entiendo que resolviendo este, resuelvo todos. No sé si a alguno de Ustedes le he pasado y a lo mejor ya lo resolvió, por lo que recurro a su inapreciable ayuda.
* ------------------------------------------------------ *
* SISTEMA : FARMACOM *
* PRG : NOTAS.PRG *
* CREADO : 15-10-2010 *
* ACTUALIZADO : *
* AUTOR : EDUARDO V. FLORES RIVAS *
* COMENTARIOS : MODULO PARA CONFECCION DE PEDIDOS. *
* ------------------------------------------------------ *
PROC OrdenDeCompra
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
PRIVATE OH_NUMERO := 0
PRIVATE OH_FECHA := ''
PRIVATE OH_CODPROV := ''
PRIVATE OH_NOMPROV := ''
PRIVATE OH_ARCHIVO := ''
PRIVATE OH_REGISTR := 0
PRIVATE OH_MODO := 'Nada' // <-- OJO CON ESTA VARIABLE
PRIVATE aDetaDatos := {}
PRIVATE aEstaticos := {}
PRIVATE aLineMem := {}
PRIVATE aMesAnualSlots := {}
PRIVATE cTmpOrdenC := 'c:\farmacom\ordenes\ordenc.dbf'
PRIVATE cTmpOrdenD := 'c:\farmacom\ordenes\ordend.dbf'
PRIVATE cBackupC := ''
PRIVATE cBackupD := ''
PRIVATE oPediArti , oPediProv , oPediMark
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
PrimosAbrir()
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE OrdenSalir()
....
*
* GRID DE DETALLES
*
@ 130 , 010 BROWSE BrwPedidos ;
WIDTH 980 ;
HEIGHT 530 ;
HEADERS {'Código','Artículo','Labo','Unids.','VVF','PVF','Dct.T.','Costo','Total','Bonif.','Dct.B','Dct.1','Dct.2','Dct.3','Dct.4'} ;
FIELDS { 'ODTMP->OD_ARTCOD' , 'ODTMP->OD_ARTNOM' , 'ODTMP->OD_LABCOD' , 'ODTMP->OD_UNIDS' , 'ODTMP->OD_VVF' , 'ODTMP->OD_PVF' , 'ODTMP->OD_DCTT' , 'ODTMP->OD_CSTUNI' , 'ODTMP->OD_CSTTTL' , 'ODTMP->OD_TEXTB' , 'ODTMP->OD_DCTB' , 'ODTMP->OD_DCT1' , 'ODTMP->OD_DCT2' , 'ODTMP->OD_DCT3' , 'ODTMP->OD_DCT4' } ;
WORKAREA ODTMP ;
WIDTHS { 60 , 250 , 50 , 60 , 80 , 80 , 70 , 80 , 90 , 50 , 50 , 50 , 50 , 50 , 50 } ;
JUSTIFY { BROWSE_JTFY_LEFT , BROWSE_JTFY_LEFT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT } ;
ON DBLCLICK OrdenEditItem()
...
END WINDOW
ACTIVATE WINDOW Win_Orden
PrimosCerrar()
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
...
Win_Orden.BrwPedidos.Refresh
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF SELECT('ODTMP') > 0 .AND. TYPE(OH_MODO) <> 'U' //<-- EL ERROR SALE EN ESTA LINEA (315)
IF ODTMP->(RECCOUNT()) > 0 .AND. OH_MODO='Crear'
IF MsgYesNo('¿ Desea cancelar la orden de compra actual ?')
OrdenBorrarTemps()
ENDIF
ELSE
OrdenBorrarTemps()
ENDIF
ENDIF
RETURN
De antemano mil gracias por su valioso tiempo.
NOTA : Si necesitan el módulo completo, solo háganmelo saber para enviarselos.
Tengo un problema con unas variables private, como podrán ver lineas abajo al inicio del módulo declaro una variable llamada OH_MODO como private, esta variable la uso a lo largo del módulo para realizar las operaciones respectivas. Sin embargo, hay ocasiones, no siempre, en las que al tratar de cerrar el módulo me lanza ese error:
Error BASE/1003 No existe la variable: OH_MODO
Called from ORDENSALIR(315)
Called from (b)ORDENDECOMPRA(51)
He revisado todos los .prg del sistema con el crimson y ya he verificado que esta variable solo existe en este módulo. En realidad me esta ocurriendo lo mismo en otros módulos del sistema con algunas variables, pero entiendo que resolviendo este, resuelvo todos. No sé si a alguno de Ustedes le he pasado y a lo mejor ya lo resolvió, por lo que recurro a su inapreciable ayuda.
* ------------------------------------------------------ *
* SISTEMA : FARMACOM *
* PRG : NOTAS.PRG *
* CREADO : 15-10-2010 *
* ACTUALIZADO : *
* AUTOR : EDUARDO V. FLORES RIVAS *
* COMENTARIOS : MODULO PARA CONFECCION DE PEDIDOS. *
* ------------------------------------------------------ *
PROC OrdenDeCompra
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
PRIVATE OH_NUMERO := 0
PRIVATE OH_FECHA := ''
PRIVATE OH_CODPROV := ''
PRIVATE OH_NOMPROV := ''
PRIVATE OH_ARCHIVO := ''
PRIVATE OH_REGISTR := 0
PRIVATE OH_MODO := 'Nada' // <-- OJO CON ESTA VARIABLE
PRIVATE aDetaDatos := {}
PRIVATE aEstaticos := {}
PRIVATE aLineMem := {}
PRIVATE aMesAnualSlots := {}
PRIVATE cTmpOrdenC := 'c:\farmacom\ordenes\ordenc.dbf'
PRIVATE cTmpOrdenD := 'c:\farmacom\ordenes\ordend.dbf'
PRIVATE cBackupC := ''
PRIVATE cBackupD := ''
PRIVATE oPediArti , oPediProv , oPediMark
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
PrimosAbrir()
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE OrdenSalir()
....
*
* GRID DE DETALLES
*
@ 130 , 010 BROWSE BrwPedidos ;
WIDTH 980 ;
HEIGHT 530 ;
HEADERS {'Código','Artículo','Labo','Unids.','VVF','PVF','Dct.T.','Costo','Total','Bonif.','Dct.B','Dct.1','Dct.2','Dct.3','Dct.4'} ;
FIELDS { 'ODTMP->OD_ARTCOD' , 'ODTMP->OD_ARTNOM' , 'ODTMP->OD_LABCOD' , 'ODTMP->OD_UNIDS' , 'ODTMP->OD_VVF' , 'ODTMP->OD_PVF' , 'ODTMP->OD_DCTT' , 'ODTMP->OD_CSTUNI' , 'ODTMP->OD_CSTTTL' , 'ODTMP->OD_TEXTB' , 'ODTMP->OD_DCTB' , 'ODTMP->OD_DCT1' , 'ODTMP->OD_DCT2' , 'ODTMP->OD_DCT3' , 'ODTMP->OD_DCT4' } ;
WORKAREA ODTMP ;
WIDTHS { 60 , 250 , 50 , 60 , 80 , 80 , 70 , 80 , 90 , 50 , 50 , 50 , 50 , 50 , 50 } ;
JUSTIFY { BROWSE_JTFY_LEFT , BROWSE_JTFY_LEFT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT , BROWSE_JTFY_RIGHT } ;
ON DBLCLICK OrdenEditItem()
...
END WINDOW
ACTIVATE WINDOW Win_Orden
PrimosCerrar()
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
...
Win_Orden.BrwPedidos.Refresh
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF SELECT('ODTMP') > 0 .AND. TYPE(OH_MODO) <> 'U' //<-- EL ERROR SALE EN ESTA LINEA (315)
IF ODTMP->(RECCOUNT()) > 0 .AND. OH_MODO='Crear'
IF MsgYesNo('¿ Desea cancelar la orden de compra actual ?')
OrdenBorrarTemps()
ENDIF
ELSE
OrdenBorrarTemps()
ENDIF
ENDIF
RETURN
De antemano mil gracias por su valioso tiempo.
NOTA : Si necesitan el módulo completo, solo háganmelo saber para enviarselos.
Eduardo Flores Rivas
LIMA - PERU
-
Javier Tovar
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: Variables PRIVATE no existen.
Hola edufloriv,
A mi me han pasado cosas semejantes y lo he resuelto de la siguiente manera, muchas de esas dependen en el lugar donde ponemos el código, por ejemplo yo lo pongo así:
Bueno, por lo que yo veo es que las variables PRIVATE están después de un IF, después el procedimiento "PrimosCerrar()" esta después del "ACTIVATE WINDOW Win_Orden", Creo que si quieres que se ejecute ese procedimiento al cerrar tu Form lo tienes que incluir en "ON RELEASE" de tu ventana. Y dicho procedimiento no se si ahí se encuentra también la variable que te manda error.
Y por favor utiliza el botón que dice "CODE" (aquí donde se escriben los Post) y utiliza Sangría en tu código para que sea más claro.
Saludos y espero que te ayude, y si no házmelo saber
A mi me han pasado cosas semejantes y lo he resuelto de la siguiente manera, muchas de esas dependen en el lugar donde ponemos el código, por ejemplo yo lo pongo así:
Code: Select all
#include <hmg.ch>
FUNCTION MAIN()
LOCAL nValor,....
PUBLIC nMin, nMax, nIncremento, nValor,.......
PRIVATE nValorIni
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
PrimosAbrir()
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE (OrdenSalir(), PrimosCerrar())
......
........
.......
END WINDOW
ACTIVATE WINDOW Win_Orden
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
...
Win_Orden.BrwPedidos.Refresh
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF SELECT('ODTMP') > 0 .AND. TYPE(OH_MODO) <> 'U' //<-- EL ERROR SALE EN ESTA LINEA (315)
IF ODTMP->(RECCOUNT()) > 0 .AND. OH_MODO='Crear'
IF MsgYesNo('¿ Desea cancelar la orden de compra actual ?')
OrdenBorrarTemps()
ENDIF
ELSE
OrdenBorrarTemps()
ENDIF
ENDIF
RETURN
Y por favor utiliza el botón que dice "CODE" (aquí donde se escriben los Post) y utiliza Sangría en tu código para que sea más claro.
Saludos y espero que te ayude, y si no házmelo saber
-
Javier Tovar
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: Variables PRIVATE no existen.
Hola ,
Otra pregunta: Hay en algún momento de tu código donde TYPE(OH_MODO) <> 'U' se cumpla?, que pueda tener el valor de "NIL",
o no será mejor utilizar VALTYPE() ?
Saludos
Otra pregunta: Hay en algún momento de tu código donde TYPE(OH_MODO) <> 'U' se cumpla?, que pueda tener el valor de "NIL",
o no será mejor utilizar VALTYPE() ?
Code: Select all
Examples
. These examples show the return values for several data types:
? VALTYPE(1) // Result: N
? VALTYPE("GOOB") // Result: C
? VALTYPE(NIL) // Result: U
? VALTYPE(array) // Result: A
? VALTYPE(block) // Result: B - edufloriv
- Posts: 247
- Joined: Thu Nov 08, 2012 3:42 am
- DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
- Location: PERU
Re: Variables PRIVATE no existen.
Hola amigos,
Antes que nada gracias por sus respuestas. Y bueno si, la proxima vez uso el botón 'CODE' creo que por eso no se ven las sangrias. Lo siento.
Como dice esgici, efectivamente podria resolverlo haciendola PUBLIC, ya se me habia pasado por la cabeza, pero lo lance al foro para ver si alguien mas habia experimentado este problemilla y un poco para encontrarle sentido al mismo.
Javier, en realidad con la linea donde puse TYPE(OH_MODO) trataba de resolver el problema, pues supuestamente cuando TYPE se aplica sobre una variable que no existe te devuelve 'U', el error originalmente me salia en la linea que sigue, donde si te fijas, también aparece OH_MODO.
Ok, dicho esto, en resumén voy a realizar lo siguiente:
1.- Voy a pasar las proc que estaban afuera (primosabrir(),primoscerrar()) a el INIT y RELEASE de la ventana.
2.- Con respecto a declarar primero las private antes de verificar si la ventana ya esta abierta, tengo un dilema, porque justamente lo puse asi porque me pasaba que si el usuario abria la primera vez, las private se declaraban, si abria una segunda vez esta misma ventana, teniendo abierta aun esta ventana, como la verficacion estaba después de la declaracion, las private se sobreescribian, la segunda llamada ya no se realizaba y la primera ventana abierta se maximiziba, pero luego, en alguno de los procesos, me lanzaba algún error que implicaba alguna de estas variables.
De todos modos, si Ustedes me dicen que la única solución es hacerla publica, pues lo hago, pero queria encontrar algo de lógica al problema.
Saludos a todos y muchas gracias por su valioso tiempo.
Antes que nada gracias por sus respuestas. Y bueno si, la proxima vez uso el botón 'CODE' creo que por eso no se ven las sangrias. Lo siento.
Como dice esgici, efectivamente podria resolverlo haciendola PUBLIC, ya se me habia pasado por la cabeza, pero lo lance al foro para ver si alguien mas habia experimentado este problemilla y un poco para encontrarle sentido al mismo.
Javier, en realidad con la linea donde puse TYPE(OH_MODO) trataba de resolver el problema, pues supuestamente cuando TYPE se aplica sobre una variable que no existe te devuelve 'U', el error originalmente me salia en la linea que sigue, donde si te fijas, también aparece OH_MODO.
Ok, dicho esto, en resumén voy a realizar lo siguiente:
1.- Voy a pasar las proc que estaban afuera (primosabrir(),primoscerrar()) a el INIT y RELEASE de la ventana.
2.- Con respecto a declarar primero las private antes de verificar si la ventana ya esta abierta, tengo un dilema, porque justamente lo puse asi porque me pasaba que si el usuario abria la primera vez, las private se declaraban, si abria una segunda vez esta misma ventana, teniendo abierta aun esta ventana, como la verficacion estaba después de la declaracion, las private se sobreescribian, la segunda llamada ya no se realizaba y la primera ventana abierta se maximiziba, pero luego, en alguno de los procesos, me lanzaba algún error que implicaba alguna de estas variables.
De todos modos, si Ustedes me dicen que la única solución es hacerla publica, pues lo hago, pero queria encontrar algo de lógica al problema.
Saludos a todos y muchas gracias por su valioso tiempo.
Eduardo Flores Rivas
LIMA - PERU
- edufloriv
- Posts: 247
- Joined: Thu Nov 08, 2012 3:42 am
- DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
- Location: PERU
Re: Variables PRIVATE no existen.
Hola de nuevo,
Olvide mencionar que ni en PrimosAbrir() ni en PrimosCerrar() existe la variable OH_MODO, ni siquiera se menciona.
Gracias de nuevo y saludos,
Olvide mencionar que ni en PrimosAbrir() ni en PrimosCerrar() existe la variable OH_MODO, ni siquiera se menciona.
Gracias de nuevo y saludos,
Eduardo Flores Rivas
LIMA - PERU
- luisvasquezcl
- Posts: 1263
- Joined: Thu Jul 31, 2008 3:23 am
- Location: Chile
- Contact:
Re: Variables PRIVATE no existen.
Hola Edufloriv,
Siempre debe tener en cuenta el ambito de visibilidad de la variable dependiendo de donde se defina.
Si define una variable como privada dentro de un procedimiento o función y la quiere utilizar fuera de él, no será visible.
p.e.
procedure proc1
private var1 := 10
proc2()
return
procedure proc2()
@10, 10 say var1
inkey(0)
return
en este caso la variable Var1 definida el el proc1 no podras verla en el proc2
Ahora en este caso. Si defines la variable a nivel de módulo sí podrás verla.
Private Var1 := 0
Proc1()
proc2()
return
Procedure proc1()
var1 := 10
return
procedure proc2()
alert( var1 )
return
Si necesitas ver el manual de clipper puedes verlo en la siguiente dirección:
http://www.itlnet.net/programming/progr ... /menu.html" onclick="window.open(this.href);return false;
Espero haber sido de ayuda.
Saludos cordiales,
Luis Vásquez.
Siempre debe tener en cuenta el ambito de visibilidad de la variable dependiendo de donde se defina.
Si define una variable como privada dentro de un procedimiento o función y la quiere utilizar fuera de él, no será visible.
p.e.
procedure proc1
private var1 := 10
proc2()
return
procedure proc2()
@10, 10 say var1
inkey(0)
return
en este caso la variable Var1 definida el el proc1 no podras verla en el proc2
Ahora en este caso. Si defines la variable a nivel de módulo sí podrás verla.
Private Var1 := 0
Proc1()
proc2()
return
Procedure proc1()
var1 := 10
return
procedure proc2()
alert( var1 )
return
Si necesitas ver el manual de clipper puedes verlo en la siguiente dirección:
http://www.itlnet.net/programming/progr ... /menu.html" onclick="window.open(this.href);return false;
Espero haber sido de ayuda.
Saludos cordiales,
Luis Vásquez.
-
Javier Tovar
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: Variables PRIVATE no existen.
Hola Luis Vazquez,
Como es definir a nivel de modulo y cuando no?
Ya vi el manual de Clipper que mencionas y no dan ejemplo al respecto (espero no equivocarme). Yo como las declaro están disponibles en todo el archivo *.PRG donde las defino. (Si estoy mal por favor aclarar esta duda).
Y si lo reconoce el valor.
Saludos.
Como es definir a nivel de modulo y cuando no?
Ya vi el manual de Clipper que mencionas y no dan ejemplo al respecto (espero no equivocarme). Yo como las declaro están disponibles en todo el archivo *.PRG donde las defino. (Si estoy mal por favor aclarar esta duda).
Code: Select all
FUNCTION MAIN()
LOCAL nValorIni:= 5
PRIVATE nValorFinal := 10
PUBLIC nValorMedio := 7.5
VerValor()
SET EXCLUSIVE OFF // Inactivar para poder Abrir sahred New
SET DELETE ON // Mostrar los Eliminados
........
RETURN NIL
PROCEDURE VerValor()
MSGBOX("ESTE ES EL VALOR DE UNA VARIABLE PRIVADA"+STR(nValorFinal))
RETURN NIL
Saludos.
-
Javier Tovar
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: Variables PRIVATE no existen.
Hola Luis Vázquez,
Si ya hice una prueba donde dice que no existe la variable Privada y es asi:
Saludos
Si ya hice una prueba donde dice que no existe la variable Privada y es asi:
Code: Select all
FUNCTION MAIN()
LOCAL nA := 12 <==== SOLO ES VISIBLE EN EL PROCEDIMIENTO DONDE SE DEFINIÓ.
PUBLIC nB := 24 <==== SON DECLARADAS A NIVEL DE APLICACIÓN, EN TODOS LOS *.PRG's DE NUESTRA APLICACIÓN.
PRIVATE nC := 36 <==== SON DECLARADAS A NIVEL DE MODULO, EN TODO EL *.PRG.
Dos()
Tres()
RETURN NIL
PROCEDURE Dos()
PRIVATE nD := 20 <==== SOLO ES VISIBLE EN EL PROCEDIMIENTO DONDE SE DEFINIÓ.
RETURN NIL
PROCEDURE Tres()
MsgBox(STR(nA)) <====== NO LA RECONOCE COMO VARIABLE
MsgBox(STR(nB)) <====== SI LA RECONOCE COMO VARIABLE
MsgBox(STR(nC)) <====== SI LA RECONOCE COMO VARIABLE
MsgBox(STR(nD)) <====== NO LA RECONOCE COMO VARIABLE
RETURN NIL- esgici
- Posts: 4543
- Joined: Wed Jul 30, 2008 9:17 pm
- DBs Used: DBF
- Location: iskenderun / Turkiye
- Contact:
Re: Variables PRIVATE no existen.
So, scope of variables declared as PRIVATE in the MAIN module is same as declared PUBLIC; none ".prg file wide".Doc wrote:The PRIVATE statement creates variables and arrays visible within the current and invoked procedures or user-defined functions.
As the result, problem of Eduardo will be solved by moving PRIVATE statements to the MAIN module.
Viva INTERNATIONAL HMG
Viva INTERNATIONAL HMG 