PREGUNTAS CONTESTADAS - FoxPro/Visual FoxPro

 Hay un total de 1456 Preguntas.<<  >> 

    Pregunta:  13583 - VISUAL FOXPRO PARA UNIX
Autor:  DOUGLAS CRUZ COTO ALVARENGA
Existe una version de visual fox o cualquier otro lenguaje de programación orientada a objetos para UNIX?
  Respuesta:  wences
Evidentemente si , C y C++, es un lenguaje orientado a objetos de toda la vida ... si lo que querias preguntar era visual ... Visual Age de IBM , tiene versiones para JAva , Windows , etc ...

Espero te sirva..

    Pregunta:  13598 - ¿CÓMO SABER SI UN ARCHIVO EXISTE DESDE VISUALFOXPRO?
Autor:  Nora González Cárdenas
Hola! Mi programa tiene una opción de convertir una tabla de foxpro a una hoja de cálculo de excel, eso sí lo hace, pero quiero saber qué condición le puedo poner antes para que valide si de verdad existe esa tabla de foxpro que quiero convertir, o sea:

¿existe la tabla?
si sí entonces
conviértela a excel
si no manda un mensaje de error

pero no sé que condición pueda ser para verificar si existe en el subdirectorio correspondiente.

Gracias!
  Respuesta:  AGUSTIN NUNCIO
usa la funcion FILE()

Tabla = mitabla.dbf
if FILE(&tabla)
convierte
else
mensaje error
endif
  Respuesta:  Richard Silva M.
Hola Nora:

Prueba con el comando File, con el cual determinas si existe un archivo en disco. En tu caso sería algo así:

If File(lcTabla)
SendToExcel()
Else
=Messagebox('La tabla no existe.',16,' Error !!')
EndIf

Donde lcTabla representa la tabla que vas a convertir. Asegúrate de incluir las extensiones adecuadas en el archivo buscado. Consulta la ayuda en el comando File para obtener información acerca de PATH.

Saludos desde Venezuela...
  Respuesta:  Douglas Cruz Coto Alvarenga
Nora, no se si entendi mal pero si lo que necesitas es preguntar por la existencia física de un archivo dentro de un directorio, solo debes utilizar la funcion de fox como en el ejemplo.

IF FILE("CUALQUIER.DBF")
** Entonces copiar a excel
Else
** Archivo no existe
ENDIF

Si la tabla la tienes en un directorio especifico, especifica la ruta correspondiente y listo.

Espero te sirva mi colaboración.
  Respuesta:  wences
Lo mejor que puedes hacer es crear un control de errores (on error) y con algo parecido a esto pero en lugar de crearlo sacas un mensaje ...

esto en el programa :

if !used(m.nomes)
use &nombre2 in 57 shared
endif
select &nomes

esto en el control de errores:

case gnerror=1 and gcprog='CONFIRMA.BOTONES.CONFIRMAR.CLICK' and gnlineno=11
** Creamos Historico de Facturas
select lineasf
copy structure to '.\historia\'+m.nomes with cdx
use '.\historia\'+m.nomes in 57 shared

gnerror es el codigo de error ... gcprog es donde lo da , gnlineno la linea ..

Echale un ojo al on error y algun ejemplo que aparece ....
Espero te sirva ...

    Pregunta:  13649 - COMO CABIAR EL ICONO A MI EJECUTABLE
Autor:  sebastian garfunkel
hola:
quisiera saber como hago para cambiarle el icono a mi ejecutable, yo lo que hice es ir a informacion del proyecto y desde ahi le cambie el icono y cuando ejecuto mi programa sale con el icono que yo le puse pero cuando voy al explorador de windows mi ejecutable sale con el icono del zorro.
yo quiero que desde el explorador de windows se vea el icono que yo le puse al archivo ejecutable
  Respuesta:  Joan Duran
debes colocar el siguiente codigo en tu ejecutable
_screen.icon=ruta donde esta el icono
  Respuesta:  Alberto Amarilla
Bueno, lo que podrias haces es en tu .prg principal incluir la sgte. linea:

_SCREEN.ICON = "ExeIcono.ico"
  Respuesta:  Antonio Estrada
Los ficheros de iconos pueden guardar información de varios formatos. Si el que utilizas es de 32x32, cuando tenga que aparecer en 16x16, aparecerá el icono por defecto (el zorrito). Para evitar esto tienes que utilizar una herramienta (ax-icons va muy bien) que sepa almacenar todos los formatos necesarios (16x16 16 colores, 32x32 16 colores y 32x32 16 mill, con estos va bien)

Espero que te sirva
  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Tal vez tu problema sea del window porque de la manera que lo has hecho con el explorador tiene que tener el mismo icono.
  Respuesta:  wences
Si realmente es un ejecutable .exe , y en el explorador no lo ves correctamente ( aunque si, si lo haces a traves de las carpetas) , la unica opcion que tienes es cambiar en el regedit el icono por defecto para los exe de vfp ... mira en el foro de foxpro una respuesta sobre los iconos app ... te dara una idea ...

Espero te sirva...

    Pregunta:  13651 - AUMENTAR MESES EN UNA FECHA
Autor:  mauricio lavilla
Amigos programadores , tengo un problema con un procedimiento de fechas, lo que quiero hacer es muy simple pero no me doy cuenta de cómo hacerlo, paso a explicarles:
Lo que quiero es sumar (por ej. 1 meses) a una determinada fecha que tengo dentro de un registro.
Supongamos que la variable fecha_ini = 01/01/2001
Sumando dos meses tendría que quedar en 01/02/2001. (tengo que sumar meses no dias)
Si es que se puede agradeceria su ayuda.
Saludos.
  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola
Esta vez quise almpliar mi respuesta anterior que de todos modos no era la correcta. Ahora espero que esta te sirva.
Para realizar un contador de meses debes escribir lo siguiente:

Fecha=MONTH(DATE())
IF FECHA>=3 "Este numero equivale al mes de Marzo"
"Aqui tienes que escribir el mensaje"
ENDIF

Aunque tambien puedes hacer que sume tanto los dias, los meses como asi tambien los años:

Var1=DAY(DATE())
Var2=MONT(DATE())
Var3=YEAR(DATE())

En este caso las variables hacen referencia al Dia, Mes y Año actual, pero, tambien podrias poner por ej. en Var1=1, Var2=2, Var3=2000;
es decir, 01/02/2000.

Si tienes dudas preguntame, ok?
  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola
En ese caso tienes que usar la variable de mes que no recuerdo muy bien como es pero puede ser cMonth o algo asi. Debes saber que los formatos de fechas tienen variables tanto para dia,mes y año, y pueden ser numericos o de tipo caracter.
La sentencias seria algo asi:
fecha_ini=01/01/2001
fecha_ini=fecha_ini+1
IF DATE()>=fecha_ini
"Aqui debes escribir el mensaje o una funcion que quieras ejecutar"
QUIT
ENDIF

Espero que te sirva de ayuda y me escribas
  Respuesta:  Douglas Cruz Coto Alvarenga
Mauricio, para resolver tu problema auxiliate de la funcion gomonth() del mismo fox, por ejemplo.

fecha_ini = 01/01/2001, para sumar dos meses seria..
fecha_ini = gomonth(fecha_ini,2) dando el resultado 01/03/2001

si quieres restar solo dale el parametro en negativo
gomonth(fecha_ini,-2)
  Respuesta:  wences
Si puedes trabajar con campos fecha y operar con ellos , el truco consiste en transformar a caracteres con dtoc y ctod , month , year ...ejemplo:

m.nomes=str(month(fecha1),2,0)
m.nomes=padl(alltrim(m.nomes),2,'0')
m.nomes=m.nomes+str(year(fecha1),4,0)
m.nomes='hs'+alltrim(m.nomes)
m.nombre2='.\historia\'+alltrim(m.nomes)

aqui se trabaja con una fecha y se saca un nombre con mes y año para una nueva tabla ( nombre del destino) ...evidentemente si puede sacar el mes de una fecha lo podre sumar y volver a poner ... otro ejemplo:

m.nomes=str(month(date())-1,2,0)
m.nomes=padl(alltrim(m.nomes),2,'0')
if val(m.nomes)=0
m.nomes='12'+str(year(date())-1,4,0)
else
m.nomes=m.nomes+str(year(date()),4,0)
endif
m.nomes='fa'+alltrim(m.nomes)
m.nombre2='.\historia\'+alltrim(m.nomes)

como ves se resta uno al mes de la fecha y se trabaja con ella ...

Espero te sirva ...

    Pregunta:  13708 - ERROR DE ESTADO FISCAL: 8228 HEX. EN IMP. EPSON LX-300F
Autor:  Gringo Tony
Estoy trabajando con la Impresora Fiscal Epson LX-300F.
En este momento hemos logrado que la impresora, facture, pero de repente comenzo a dar un error: imprime todo incluidos los items de una factura A y luego da error de estado fiscal: 8228 hex. (Estamos usando la OCX para windows que bajamos de la pagina de Epson).
Hemos probado de todo y no le encontramos solución, creo, no estoy seguro, que el problema comenzo luego de tirar un reporte por fechas o cierre Z.
Tiren una mano muchachos que el 24/05/01 tenemos que largar con la facturación. Gracias
  Respuesta:  Miguel Natividad
Es posible que el driver de LX300 no sea compatible con tu windows... creo que hay otro driver compatible FX, no recuerdo el numero... sorry.

    Pregunta:  13822 - INCOMPATIBILIDAD CON VFP60 EN W MILENIUM
Autor:  Alex Oliva Olazábal
Necesito solucionar mi problema de aplicación como a continuacón lo explico :

Estaba trabajando con Sistema Operativo Windows ’98 y una aplicación en Visual FoxPro 6.00 con ambas aplicaciones no tenía incoveniencias.

Al cambiar de Sistema Operativo windows ‘98 a Windows Me. Con sólo accesar al Visual FoxPro ya me estan saliendo errores como los detallo.

1.Microsoft Visual Fro
Error Fatal codigo de exepción = c0000006

2.VFP6 provocó un error en VFP60.EXE
VFP6 se cerrará si continuan los problemas pruebe de nuevo después de reiniciar.

3.VFP6 provocó un Error en VFP6ESN.DLL
VFP6 se cerrará.

4.Microsoft Visual FoxPro
Error Fatal 104 al intentar notificar el error 104

5.VFP60 provocó un error en KERNEL32.DLL
VFP6 se cerrará.
Si continuan los problemas pruebe de nuevo después de reiniciar el equipo

6.Error del programa
Código de error 104 desconocido

Agradecería se sirvan enviarme los pasos que tengo que hacer para solucionar mi problema.Muchas gracias por su atención.

Atentamente
  Respuesta:  wences
Empieza por probar todos los pasos normales , en principio no existe ninguna incompatibilidad que yo conozca ...

1- Si tenias el fichero de recursos (foxuser.dbf y fpt ) borralos , intenta volver a entrar ....Busca si hubiese mas en el disco, no solo en el directorio de VFP ...

2- Si no consiges que funcione correctamente ahora , prueba a buscar en el regedit las llamadas a VFP6 , puede que alguna este deteriorada ...o este realizando llamadas a sitios incorrectos ...

3- Si persisten los problemas enviame un correo a [email protected] dandome mas detalles ... quizas pueda ayudarte...

Espero te sirva...

    Pregunta:  13839 - DESFACE DE HOJAS DE PAPEL CONTINUO EN IMPRESORA EPSON FX880
Autor:  Raymundo Eduardo Bautista Reyes
Estimados colegas, por medio de la presente les pedimos su ayuda dado que
estamos realizando una aplicación que requiere imprimir notas de venta de forma
continua, el tamaño del papel es de 6.5" por 4" , nos predetermina margenes
superior a 0.17", y 0.51 para izquierdo y derecho considerando las guias del
carro, la impresora a utilizar es una Epson fx880 y lo que hace es que despues
de alinear la primera nota esta se imprime bien pero las consecuentes se van
moviendo poco a poco y no inician en el mismo lugar que la primera dando como
resultado una mala presentación de las notas.

¿Que podemos hacer para corregirlo?
  Respuesta:  carlos
A mi me pasa algo similiar cuando utilizo el controlador generico/solo texto para imprimir en impresoras EPSON o PANASONIC de matriz de punto. Luego de años de ver a mis usuarios/clientes maldiciendo la aplicaciòn, encontrè algo que me ha dado resultado. Al menos en los ultimos dos meses no me han reportado errores, no sè en el futuro. Lo que hice (bueno, no se si sea su caso), es que como yo tengo la impresora conectada a un puerto paralelo, voy al BIOS del computador y busco el puerto paralelo lpt1, y le configuro la opcion EPP (enhanced parallel port) y listo. Incluso, ahora que lo recuerdo un cliente me decìa que las hojas se le corrìan a medida que se imprimìa cuando se utilizaba la impresora en modo local (es decir, la impresora estaba conectada directamente al PC a traves del puerto LPT1), pero cuando su compañera en otra oficina imprimìa en red a esta misma impresora, todo salia bien. Gracias por recordàrmelo. Espero le sirva.
  Respuesta:  wences
Comprueba los parametros de configuracion de la impresora , puede que tengas un salto para el corte ,etc ...

Comprueba tambien el tamaño definido en el informe esta correcto y el tamaño del papel tambien ... comprueba tambien que en la linea de impresion tienes un noeject para que no salte ...

Espero te sirva...

    Pregunta:  13856 - ¿CóMO SE USAN LOS COMMANDO INSERT INTO
Autor:  JOSE ROLANDO QUINTERO PAZ
Hola!!
Me gustaria saber si alguine puede ayudarme, el problema que tengo es que he creado varios sistemas que hasta ahora no los he usado en redes porque tengo una sola maquina y no tuve oportunidad de hacerlo en otro lado. Los commando que uso para actualizar las tablas son el APPEND BLANK y REPLA; por ejemplo:

SELECT ALUMNOS
APPAND BLANK
REPLA ALUMNOS.LEGAJO WITH THISFORM.TXTLEGAJO.VALUE
REPLA ALUMNOS.APELLIDO WITH THISFORM.TXTAPELLIDO.VALUE
REPLA ALUMNOS.NOMBRE WITH THISFORM.TXTNOMBRE.VALUE

La pregunta es: ¿como reemplazo esta misma sentencia usando INSERT INTO para grabar los registros?

Desde ya muchas gracias
  Respuesta:  Joan Duran
bueno amigo yo en particular lo utilizo de la siguiente manera
diseño mi formulario a los text en la propiedad ControlSourcer le asigno el campo con una variable de memoria ejemplo m.campo_tabla ojo cuando es para una tabla sola tabla luego en un comando inserto el siguiente codigo:
insert Into Nombre_tabla from memvar y funciona
cuando tengo que cargar varias tablas con el mismo formulario utilizo el:
replace tabla.campo with text o variable
espero que te funcione amigo y suerte
  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola
Ampliando mi pregunta y respondiendo a wenseslao o algo asi, les agradezco por la ayuda, pero, la razon de querer utilizar INSERT INTO en lugar de APPEND BLANK y REPLACE es porque segun un autor del libro que tengo un tal ENRIQUE IGLESIAS, dice que la utilizacion del APPEND BLANK y REPLACE relentiza la actualizacion de registros en red, es decir lo que yo quiero es ademas saber como se usa y en que casos es mas conveniente. El ejemplo que me dieron esta exactamente igual en el manual del programador aunque yo quieria que me representen los mismos campos que yo habia escrito como ejemplo utilizando APPEND BLANK y REPLACE.

Desde ya gracias
  Respuesta:  wences
1 -Antes de nada , no se porque quieres cambiar el append balnk y el replace por el insert into , puesto que funcionan exactamente igual en red ... solo tienes que bloquear y desbloquear ...

2- Yo jamas uso el value sino una variable de memoria en el controlsource , con lo cual no necesito hacer raplace sino , gather memvar y guarda cada variable de meoria en el campo correspondiente , es decir , el nombre del campo coindice con la variable de memoria (siempre que puedo claro esta )...me ahorro nucho tiempo sobre todo de escribir ...

3- Si realmente quieres usar el Insert into , tienes que o bien usar una matriz con los valores o usar variables de memoria como en el caso 2 o escribir algo como lo de abajo ... donde fnombre y eexprecion serian los nombres de campo y los valores a asignar , por orden para que coincidan cada uno con su valor ...

INSERT INTO nombre_dbf [(fnombre1 [, fnombre2, ...])]
VALUES (eExpresión1 [, eExpresión2, ...])

–o bien–

INSERT INTO nombre_dbf FROM ARRAY NombreMatriz | FROM MEMVAR

Espero te sirva ....

    Pregunta:  13858 - GRID LENTOS EN SERVIDORES NT
Autor:  selman lopez
He hecho una aplicacion en VFP6.0, le he instalado en un servidor NT4.0 los formularios con los que tengo problemas son en los que he usado GRID en cascada (Tablas relacionadas de una a varias) numero de grid utilizados en estos formularios 3.

Problema:
es que se vuelve lento cuando posiciono el puntero en el primer grid, la informacion que debe aparecer en el segundo grid se tarda demaciado mas de un minuto y asi sucesivamente cuando me ubico con el punte en algun registro del segundo grid, las tablas estan relacionadas tanto en el entorno de datos del formulario como en el contenedor de bases de datos, no me explico lo lento ya que los registros en las tablas son como 2350, las he filtrado, estan relacionadas he revisado todo y no encuentro cual es el problema.

Alguien me de alguna sugerencia al respecto gracias de antemano
  Respuesta:  wences
No conozco tu caso concreto , este tipo de problemas pueden deberse a muchas causas , entre otras los filtros son a veces demasiado lentos ... mi recomendacion es que si puedes trabajes con cursores , seleccionando la informacion con el select , no directamente con la tabla , salvo claro esta no puedas evitarlo ...

Si la informacion es solo eso informacion , donde no puedes tocar nada , ni modificar usa siempre cursores ...

Espero te sirva ...

    Pregunta:  13870 - CODIGO DE BARRAS
Autor:  heber RAMOS CRUZ
QUIERO IMPRIMIR UN CODIGO DE BARRAS MEDIANTE LA IMPRESORA EPSON DFX-8500 Y VFP.. ALGUIEN SABE O TIENE UN EJEMPLO DE COMO HACERLO..
  Respuesta:  selman lopez
Tienes que ocupar los found de codigos de barras, en donde tu tienes que ponerle el found adecuado a lo que quieras convertir a codigo de barras, yo lo hice en una aplicacion de inventarios, consigue algunos found y me funciono.
  Respuesta:  wences
Me imagino que sera igual que cualquier impresora ... te envio un programa y unas fuentes , con eso y un poco de paciencia deberias sacarlo ...

Descargar.

|<  <<  58 59 60 61 62 63 64 65 66 67 68  >>  >|