Autor Tema: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox  (Leído 88560 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #60 : julio 16, 2008, 03:59:32 pm »
El código es el siguiente:

         SCAN
            IF no_correlativo=numcorr then
            replace cod_cel WITH codigocelula, nomb_anf WITH nombreanfi, ;
            apell_anf WITH apellidoanfi, direcc_cel WITH direccion, ;
            zona_cel WITH zona, dia_cel WITH diacelula, ;
            hora_cel WITH hora, nomb_colider WITH nombrecoli, ;
            apell_colider WITH apellidocoli, nomb_lidninios WITH nombrelidni, ;
            apell_lidninios WITH apellidolidni, am_pm WITH ampm, ;
            cod_coord WITH codigocoord, ;
            no_distrit WITH numdistrit, cod_cel WITH codigocelula, ;
            correlativo WITH var1, colonia WITH _colonia, calle_av_pje WITH CalleAvPje, ;
            nomb_depto WITH depto, nomb_munic WITH munic, telefono WITH _telefono, ;
            celular WITH _celular
            **UPDATE celula SET cod_cel=codigocelula, nomb_anf=nombreanfi, ;
            apell_anf=apellidoanfi, direcc_cel=direccion, ;
            zona_cel=zona, dia_cel=diacelula, ;
            hora_cel=hora, nomb_colider=nombrecoli, ;
            apell_colider=apellidocoli, nomb_lidninios=nombrelidni, ;
            apell_lidninios=apellidolidni, am_pm=ampm, ;
            cod_coord=codigocoord, ;
            no_distrit=numdistrit, cod_cel=codigocelula, ;
            correlativo=var1, colonia=_colonia, calle_av_pje=CalleAvPje, ;
            nomb_depto=depto, nomb_munic=munic, telefono=_telefono, ;
            celular=_celular WHERE no_correlativo=numcorr
            ENDIF
         ENDSCAN

El error está en el "replace". Antes de ponerle el "SCAN" usaba el "update" y no me daba problema (claro, tampoco era necesario utilizar el "IF"). Utilicé el "replace" porque, como me parece que me lo planteaste unos mensajes atrás, debido al "SCAN", cuando se ejecuta el "update", se sale del "SCAN" y aplica lo mismo a todo.

una pregunta que tabla estas barriendo con el SCAN ????? por que se supone que es otra tabla distinta que la de de CELULAR verdad????


en el segmento de codigo que has puesto ahi no seleccionas en nungun momento la tabla selular por eso te da eeror por que puede ser uqe no este habierta o no no la has seleccionado entonces deberias de hacer lo siguiente



Scan
   If no_correlativo=numcorr Then
   
      IF !USED('celular')
         USE 'celular'
      ENDIF
      
      Replace cod_cel With codigocelula, ;
         nomb_anf With nombreanfi, ;
         apell_anf With apellidoanfi, ;
         direcc_cel With direccion, ;
         zona_cel With zona, ;
         dia_cel With diacelula, ;
         hora_cel With hora, ;
         nomb_colider With nombrecoli, ;
         apell_colider With apellidocoli, ;
         nomb_lidninios With nombrelidni, ;
         apell_lidninios With apellidolidni, ;
         am_pm With ampm, ;
         cod_coord With codigocoord, ;
         no_distrit With numdistrit, ;
         cod_cel With codigocelula, ;
         correlativo With var1, ;
         colonia With _colonia, ;
         calle_av_pje With CalleAvPje, ;
         nomb_depto With depto, ;
         nomb_munic With munic, ;
         telefono With _telefono, ;
         celular With _celular ;
         FOR no_correlativo=numcorr
         
      **UPDATE celula SET cod_cel=codigocelula, ;
         nomb_anf=nombreanfi, ;
         apell_anf=apellidoanfi, ;
         direcc_cel=direccion, ;
         zona_cel=zona, ;
         dia_cel=diacelula, ;
         hora_cel=hora, ;
         nomb_colider=nombrecoli, ;
         apell_colider=apellidocoli, ;
         nomb_lidninios=nombrelidni, ;
         apell_lidninios=apellidolidni, ;
         am_pm=ampm, ;
         cod_coord=codigocoord, ;
         no_distrit=numdistrit, ;
         cod_cel=codigocelula, ;
         correlativo=var1, ;
         colonia=_colonia, ;
         calle_av_pje=CalleAvPje, ;
         nomb_depto=depto, ;
         nomb_munic=munic, ;
         telefono=_telefono, ;
         celular=_celular ;
         WHERE no_correlativo=numcorr
   Endif
        SELECT <'tabla o anterior al SCAN'>
Endscan


si te fijas le incorpore una FOR a la sentencia REPLACE por que si no el cambio siempre se lo hara al primer registro de la tabla celular y tome como referencia lo que tenias en el WHERE de las sentencio UPDATE

lo unico que tiene que regresar el foco a la tablo o cursor que estas barriendo con el SCAN...



Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #61 : julio 16, 2008, 04:17:31 pm »
una pregunta que tabla estas barriendo con el SCAN ????? por que se supone que es otra tabla distinta que la de de CELULAR verdad????


en el segmento de codigo que has puesto ahi no seleccionas en nungun momento la tabla selular por eso te da eeror por que puede ser uqe no este habierta o no no la has seleccionado



Antes del SCAN escribo "SELECT Celula"

Ahora, el error me da sólo cuando el código cambia. Ya lo intenté cambiar "a pie" y me muestra el error. Con ningún otro dato tengo problema, sólo con el codigo por ser, creo, llave primaria.

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #62 : julio 16, 2008, 04:30:08 pm »


Antes del SCAN escribo "SELECT Celula"

Ahora, el error me da sólo cuando el código cambia. Ya lo intenté cambiar "a pie" y me muestra el error. Con ningún otro dato tengo problema, sólo con el codigo por ser, creo, llave primaria.


UMmmmmm
bueno entonce sel problema es que el desencadenante que la tabla es la que te esta dando problemas quisas re repite o estas intentando cambiar algun campo primario y no te deja ahi el probelmas lo tenes en la bases de datos

mira la pase de datos y revisas los procedimentos almacenados

o abri la tabla desde fox y trata de modificar el registro en el que te da error directamente desde la tabal si te da el error definitibamente es la base la que te esta dando problemas...

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #63 : julio 16, 2008, 04:53:45 pm »

UMmmmmm
bueno entonce sel problema es que el desencadenante que la tabla es la que te esta dando problemas quisas re repite o estas intentando cambiar algun campo primario y no te deja ahi el probelmas lo tenes en la bases de datos

mira la pase de datos y revisas los procedimentos almacenados

o abri la tabla desde fox y trata de modificar el registro en el que te da error directamente desde la tabal si te da el error definitibamente es la base la que te esta dando problemas...

Ya modifiqué la tabla directamente desde Fox y me da el mismo error. Tengo entendido que una llave primaria puede ser modificada siempre y cuando no se repita.
Perdón mi ignorancia, pero no sé qué es exactamente el "desencadenador" ni cómo ver o a qué se refieren los procedimientos almacenados en Visual Fox. ¿Se refieren a que estén siendo referenciados algunos campos en otra tabla o qué?  :embarassed:  :sorry:

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #64 : julio 16, 2008, 05:11:49 pm »
solo una pregunta mira si el campo es auto incremental si es asi no se puede modificar...

otra seria si por caualidad ya existe un campo con el mismo valor para el caso si es cero mira que no exista el valor que estar queriendo almacenar esto podria ser que esta borrado borrado revisalo con el SET DELETE OFF para que te aparezcan los que estan marcados como borrados


con respecto a los desencadenadores son los famosos trigers, disparadores etc... es lo mismo esotos son y estos actuan cuando se crean reglas en las bases de datso por ejemplo cuendo creas relaciones en las bases de datos PADRE-HIJO y le pones unaregla por ejemplo no puede sistir un registro en la tabla hijo sino existe un regigros padre en la tabla padre

ahi se cre a un desencadenador que tu no lo controlas si se dispara cuando se hace cierta accion no es controlado a voluntad asino que se depara automaticamente cuando se realiza una deperminada accion por ejemplo cuendo la relacion es en cascada si actualizo uncamp llave en la tabla padre automaticamente cambia los registros que pertenecia a ese registro en tabla hijo...


y los procedimeintos almacenado son segmentos de de codigo qque pueden ser ejecutados por el usuario funcionan como las funcionas de la bases de datos las puedes mandar a llamar desde cualquier lado incluso dentro de un formulario claro siempre y cuendo tengas habierta la base de datso..


aqui hay una referencia
http://support.microsoft.com/kb/299820/es

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/respuestas/878844/store-procedure

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #65 : julio 23, 2008, 03:19:19 pm »
Hey, resolví el problemilla  ohyea: Había en el trigger un "return .F." que es adonde se detenía el programa y lo cambié por "return .T." y ya me funciona bien. ¡Gracias!

Tres preguntas concretas:

1. ¿Cómo hago para inhabilitar la escritura en un combobox a modo que al dar clic sobre él sólo pueda escoger una opción de la lista de items sin poder escribir nada?
2. ¿Cómo hago para que el valor que contenga una celda de un grid seleccionada por clic me sea mostrada por ejemplo en un messagebox al dar clic en otro botón después de seleccionar la celda?
3. ¿Cómo hago referencia a un textbox en blanco? Por ejemplo, si el textbox no contiene ningún dato que muestre un mensaje "Datos incompletos. Favor llenar todos los campos.", caso contrario, que proceda. Intenté con un textbox.value="" pero no me funcionó, ya que aunque tuviera datos, en el IF me evalúa solamente la primera condición y siempre me muestra el messagebox con el mensaje "Datos imcompletos" aunque el textbox tenga algo escrito dentro.

Desconectado ruiz

  • Sv Full Member
  • *
  • Mensajes: 729
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #66 : julio 23, 2008, 05:49:40 pm »
1.)

en la propiedad del combo style selecciona la opcion 2 Dropdown list y listo

2.)

en el evento click de la grid pone
      x_valor = this.value

x_valor la debes haver declarado antes y publicado o simple mente create una propiedad en el formularion si es asi entonces seria
    thisform.x_valor = this.value

y en el boton donde quieres que se muestre en el evento click pon esto
 
    messagebox(x_valor)  o messagebox(thisform.x_valor) segun sea el caso


3.)

para eso lo puedes hacer de varias formas segun tu creas comveniente
     if len(alltrim(thisform.textbox.value)) > 0
          messgebox('Datos incompleto....')
          thisform.textbox.setfocus
     endif

    o

    if empty(thisform.textbox.value)
          messgebox('Datos incompleto....')
          thisform.textbox.setfocus
    endif
   

esperote funcione....
   

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #67 : octubre 19, 2008, 03:57:51 pm »
¿Alguien podría decirme como almaceno en la memoria de la computadora el valor que se le asigne a una variable, a modo que cuando cierre Visual Fox y lo vuelva a abrir, el valor de la variable se mantenga y, si cambio el valor de la variable y vuelvo a cerrar y abrir Visual Fox, se haya almacenado el nuevo valor, sin necesidad de guardarlo en una Base de Datos? El dato que quiero almacenar es el valor contenido en un textbox dentro de un formulario, osea que:

mivariable=thisform.textbox.value

y, claro, sería un textbox con la propiedad Enabled=.T.

Lo que quiero es que al abrir nuevamente la aplicación se me muestre en el textbox el último valor asignado a esa variable.

Espero haberme dado a entender. ¡Muchas gracias!

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #68 : octubre 20, 2008, 08:51:59 am »
en este caso tendrias que ocupar el Regedit o bien un archivo *.txt o *.ini, quizas lo mas sencillo seria un lo del archivo en texto plano.
chekate estas funciones en la ayuda del fox.
STRTOFILE( )
 y
FILETOSTR()
 
espero te sirvan.
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #69 : octubre 22, 2008, 04:08:37 pm »
Ahora, he armando una base de datos para una tienda, pero, por ejemplo, para el caso de la tabla de los detalles de la factura, tengo los campos "cantidad", "descripción", "precio_unitario", "venta_total". ¿Cómo hago para que automáticamente me aparezca en el campo "venta_total" el resultado de la multiplicación de "cantidad" por "precio_unitario"? ¿Adónde especifico esa regla, restricción o lo que sea?

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • The Communiter-
  • ***
  • Mensajes: 1545
  • -] java Adict [-
    • Comunidad Bitcoin de Oriente
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #70 : octubre 22, 2008, 04:50:12 pm »
Citar
si te referis a insertar una columna que te gener el resultado automatico entonces se hace en el diseñador de tablas, pero tiene que ser un indice no importa si es normal el indice y luego en donde dice expresión pones "cantidad*precio_unitario

aunque en realidad nunca he probado esa función x_x asi que no aseguro que sirva, hace la prueba y nos contas XD
ERROR GARRAFAL
no es asi  :D
creo que no se puede =(
se podria pero en una consulta, pero en una tabla no  :phew:
« Última Modificación: octubre 22, 2008, 05:11:32 pm por kikeuntercio »
Miembro y co-fundador original de VampireTeam
Bitcoiner
CopyMaster en Finandy.com como: WillockSV

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #71 : octubre 25, 2008, 06:18:14 pm »
ERROR GARRAFAL
no es asi  :D
creo que no se puede =(
se podria pero en una consulta, pero en una tabla no  :phew:

Voy a probar con una consulta entonces o ya voy a ver cómo me las ingenio. ¡Gracias!

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #72 : diciembre 24, 2008, 11:05:43 am »
Estoy creando un programa en el que quiero tener una barra de herramientas con un botón nuevo, guardar, modificar, cancelar o eliminar, primero, anterior, siguiente, último registro. No quiero tener que colocar en cada formulario un botón para guardar los cambios por ejemplo, sino que cada uno de los botones de ésta barra de herramientas funcionen para todos los formularios.

No sé si en el evento click de cada botón tengo que hacer un Do Case y, dependiendo del formulario activo o abierto en ese momento, realizar determinados procedimientos. Aunque esa es la idea que tengo, no sé cómo plantearlo en el código o hacer referencia al formulario abierto. Espero puedan ayudarme.

Desconectado tekun

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3221
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #73 : diciembre 24, 2008, 11:13:31 am »
juepuya, si fuera en vb6 o vb.Net te diria como, pero en fox no se como x_x

pero te pregunto, no podes llamar al formulario activo!
en vb6 hacia algo así
 > frmMDI.ActiveForm.Nuevo
frmMDI; mi formulario mdi
ActiveForm; era una propiedad que tomaba una instancia del frm activo en el mdi
Nuevo; era el procedimiento "público" de cada formulario donde estaba el código respectivo a cada caso...

será que hay algo parecido en fox?

ya vendrán los master en fox a ayudarte no desesperes :)
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado gilanrodas

  • Sv Full Member
  • *
  • Mensajes: 527
  • What Would Jesus Do?
Re: ¡AYÚDENME PORFAVOR! Problemas con código en Visual Fox
« Respuesta #74 : diciembre 24, 2008, 11:22:53 am »
juepuya, si fuera en vb6 o vb.Net te diria como, pero en fox no se como x_x

pero te pregunto, no podes llamar al formulario activo!
en vb6 hacia algo así
 > frmMDI.ActiveForm.Nuevo
frmMDI; mi formulario mdi
ActiveForm; era una propiedad que tomaba una instancia del frm activo en el mdi
Nuevo; era el procedimiento "público" de cada formulario donde estaba el código respectivo a cada caso...

será que hay algo parecido en fox?

ya vendrán los master en fox a ayudarte no desesperes :)

Yo creo que ha de haber, pero no sé, jeje. Es que sólo tengo las bases de Fox, y nunca había trabajado con los botones de una barra de herramientas.