FoxPro/Visual FoxPro - Ayuda con Comando Replace

 
Vista:

Ayuda con Comando Replace

Publicado por xn (4 intervenciones) el 19/09/2010 04:16:49
Hola, les quiero pedir un gran favor, usando el comando REPLACE en el siguiente codigo.


CLEAR
USE dtb.dbc
@3,37 say 'ADICIONES'
@6,15 say 'Primer Nombre: ' get NOMBRE1 defa ' ' size 1,15
READ
@8,15 say 'Segundo Nombre: ' get NOMBRE2 defa ' ' size 1,15
READ
@10,15 say 'Primer Apellido: ' get APELLIDO1 defa ' ' size 1,15
READ
@12,15 say 'Segundo Apellido: ' get APELLIDO2 defa ' ' size 1,15
READ
@14,15 say 'Identidad: ' get IDENTIDAD defa 0 pict '9999999999999'
READ
@16,15 say 'Sexo:' get SEXO defa ' ' size 1,2
READ
@18,15 say 'Telefono: ' get TELEFONO defa 0 pict '9999999'
READ
@20,15 say 'Celular: ' get CELULAR defa 0 pict '99999999'
READ
@22,15 say 'Materias :' get MATERIA1 defa ' ' size 1,15
READ
@22,45 get MATERIA2 defa ' ' size 1,15
READ
@22,65 get MATERIA3 defa ' ' size 1,15
READ
@24,15 say 'Modalidad: ' get MODALIDAD defa ' ' size 1,7
READ
@26,15 say 'Jornada: ' get JORNADA defa ' ' size 1,15
READ
@28,15 say 'Hora de Entrada: ' get HORAENTRA defa ' ' size 1,5
READ
@30,15 say 'Hora de Salida: ' get HORASALE defa ' ' size 1,5
READ
@32,15 say 'Numero de Aula: ' get NUMEROAULA defa ' ' size 1,5
READ
@34,15 say 'Observaciones: ' get OBSERVA defa ' ' size 1,90
READ

REPLACE NOMBRE1 WITH nombre1
REPLACE NOMBRE2 WITH nombre2
REPLACE APELLIDO1 WITH apellido1
REPLACE APELLIDO2 WITH apellido2
REPLACE IDENTIDAD WITH identidad
REPLACE SEXO WITH sexo
REPLACE TELEFONO WITH telefono
REPLACE CELULAR WITH celular
REPLACE MATERIA1 WITH materia1
REPLACE MATERIA2 WITH materia2
REPLACE MATERIA3 WITH materia3
REPLACE MODALIDAD WITH modalidad
REPLACE JORNADA WITH jornada
REPLACE HORAENTRA WITH horaentra
REPLACE HORASALE WITH horasale
REPLACE NUMEROAULA WITH numeroaula
REPLACE OBSERVA WITH observa

A la hora de ejecutar me aparece que no se puede encontrar la Variable "NOMBRE1" y eso paso con el resto de las variables que hay, mi pregunta es, que error estoy cometiendo? y como puedo solucionarlo?
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ayuda con Comando Replace

Publicado por Jose Maria Merchan (10 intervenciones) el 19/09/2010 04:38:21
Lo 1º que veo es que intentas abrir una base de datos, pero no una tabla. Además no deberias usar variables con el mismo nombre de los campos de la tabla a tratar, ya que el Xbase (FoxPro,Clipper, etc) no distingue mayúsculas de minúsculas. Aparte de esto, ¿Estás usando Foxpro 2.6 o Visual Foxpro?

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Comando Replace

Publicado por xn (4 intervenciones) el 19/09/2010 05:11:20
Ok, intentare de esa manera y uso el Visual FoxPro 9.0, gracias por el consejo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Comando Replace

Publicado por xx (378 intervenciones) el 19/09/2010 04:41:35
Bueno lo primero que se nota es que las variables se confunden con los campos debes agregarles a por ejemplo NOMBRE1 es un campo entonces para editarlo con el GET deberias renombrarlo como _NOMBRE1 u otra nomenclatura quedando asi:

_nombre1=NOMBRE1
@3,37 say 'ADICIONES'
@6,15 say 'Primer Nombre: ' get _nombre1 defa ' ' size 1,15
READ

o informate sobre GATHER y SCATHER.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Comando Replace

Publicado por xn (4 intervenciones) el 19/09/2010 05:12:10
OK, gracias ahora lo intentare.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Comando Replace

Publicado por es_binario (757 intervenciones) el 19/09/2010 05:56:09
Estas usando Foxpro 9, pero si ese codigo me recordo claramente a dbase III plus por alla en los años 89 y ahora estamos en el 2010??, me pregunto si la razon de usar ese codigo es por que tu cliente no tiene una interface grafica adecuada.

Yo personalmente te recomendaria que te pongas a estudiar forms. y progrmacion orientada a objetos para comenzar.

pero ahi te va una solucion. suponiendo que la tabla se llame alumnos

*// tambien no veo que declares las variables
LOCAL nombre1_, nombre2_, apellido1_, apellido2_, identidad_
LOCAL sexo_, telefono_, celular_, materia1_
...
...
..
ETC.

REPLACE ALUMNOS.NOMBRE1 WITH nombre1_
REPLACE ALUMNOS.NOMBRE2 WITH nombre2_
REPLACE ALUMNOS.APELLIDO1 WITH apellido1_
REPLACE ALUMNOS.APELLIDO2 WITH apellido2_
REPLACE ALUMNOS.IDENTIDAD WITH identidad_
REPLACE ALUMNOS.SEXO WITH sexo_
REPLACE ALUMNOS.TELEFONO WITH telefono_
REPLACE ALUMNOS.CELULAR WITH celular_
REPLACE ALUMNOS.MATERIA1 WITH materia1_
REPLACE ALUMNOS.MATERIA2 WITH materia2_
REPLACE ALUMNOS.MATERIA3 WITH materia3_
REPLACE ALUMNOS.MODALIDAD WITH modalidad_
REPLACE ALUMNOS.JORNADA WITH jornada_
REPLACE ALUMNOS.HORAENTRA WITH horaentra_
REPLACE ALUMNOS.HORASALE WITH horasale_
REPLACE ALUMNOS.NUMEROAULA WITH numeroaula_
REPLACE ALUMNOS.OBSERVA WITH observa_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ayuda con Comando Replace

Publicado por Juan286 (185 intervenciones) el 19/09/2010 07:05:09
Si efectivamente tu problema es que no abriste la tabla y ademas no declaras las las variables por eso el error de qie el NOMBRE1 no existe. Deberias usar una base datos y una tabla y crear un formulario.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ayuda con Comando Replace

Publicado por victor perez (278 intervenciones) el 20/09/2010 03:00:29
Hola,

Creo que en 2010, no contar con una interfase grafica es casi imposible. No creo que ese sea la necesidad de usar programacion tipo Clipper o DBase III.

En VisualFoxPro 9 y algunos antes se usan los Formularios y el lenguage dirigido a objetos.

En tu caso , debes crear un formulario, es tan sencillo como en DBASE III (si lo conociste) cuando se creaban las Pantallas.

Asignas los Labels (NOMBRES, NOMBRES2,APELLIDOS,APELLIDOS2, ETC) y al lado de cada uno le colocas un TextBox. En las propiedades del Texbox le colocas un nombre para identificarlo, usualmente usas txtNombre_del_campo para que te sea facil de recordar...El "txt" es por Texbox.

Ademas, en el controlsource le colocas una "m" y un "." seguido del mismo nombre que usas para llamar el campo en la TABLa. Asi sería por ejemplo, m.Nombre, m.Nombre2,m.apellidos, m.apellidos2 etc

Ordenas la Tabulacion para que cada campo se lea en el orden en que quieres que se introduzca la informacion. Si haces el formulario en orden y no te saltas ningun campo, el orden será tal como lo hiciste, pero si no, supon que se te olvidó un campo del formulario que debes insertar, lo haces y luego estableces el Orden de Tabulacion.

Eso es todo, colocas un boton grabar y haces un

Append Blank
Gather memvar

Y todos los datos del form pasaron a tu TABLA.

Luego puedes borrar los datos de los TextBox y puedes ingresar un nuevo registro.

Claro, la Base de Datos a usar debes abrirla y luego USar la TaBLA correspondiente. Esto se hace en el Form.Init . Abrela como un Alias y Shared, si usas ambiente multiusuario asi

Use TABLA_name in 0 Alias Alm_TABLA NAME

"Alm" es opcional pero te hace ser consistente que todos los "Alm" son alias.

Es igual que en cursores. Usualmente creo cursores anteponiendo un "_" al nombre. Asi se que todos los nombres con un "_" por delante son cursores.

Esto me lo enseño un amigo programador y me ha servido mucho.

Igual que los Nombres para los campos.

TXT TexboBox
CMB CombBox
MSK Contenedor
LST ListBox
Grd Grid

Etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar