PREGUNTAS CONTESTADAS - foxpro/visual foxpro

 Hay un total de 1456 Preguntas.<<  >> 

    Pregunta:  60526 - COMO CAMBIAR LA PROPIEDAD DE UN TEXT BOX EN TIEMPO DE EJEC.
Autor:  GUILLERMO BALDOMERO CASTRO
Quiero cambiar la propiedad del Text Box durante la ejecucion, para que el dato se muestre con la máscara de edición que defina en ese momento para el dato numérico. Estoy con V.F.P 6.0 Esto, porque si defino la propiedad Input mask p.ej 99,999.99 antes de ingresar el dato, aparecen en la casilla los signos de separacion de miles y decimal, y quiero que la casilla aparezca en blanco. Gracias por la ayuda.
  Respuesta:  Tony Rengifo del castillo
a ver si te sirve en el gofocus del textbox
this.inputmask="99,999.99"
espero ser de tu ayuda

    Pregunta:  60619 - EXPORTAR REPORTES A XLS DESDE FOXPRO 2.5
Autor:  LUPITA SEGURA
Hola:
necesito exportar un reporte generado en foxpro 2.5, he metido códigos investigados pero no genera la hoja excel, donde se especifica la ruta destino, cabe mencionar que soy nueva en el campo.

public xlapp, xlsheet &&var para manejo de excel
xlapp=createobjet('excel.application')
xlsheet=getobjet('','excel.sheet')
xlapp.application.visible=.T.
xlapp.workbooks.add()
xlsheet=xla.activesheet
  Respuesta:  Abraham Castillo
como yo lo hago es pasar la informacion a una base de datos temporal
y luego le cambio el nombre asi:

copy file base.dbf to nombre.xls

pudes preguntar la direccion donde quiere grabar el archivo, que nombre
le quiere poner, etc, etc,, espero que te ayude....

    Pregunta:  60662 - CONFIGURAR PAGINA LX300
Autor:  Ember Sanchez
Buenas noches programadores.
Bueno, les cuento mi problema: Desarrollé en VFP9 una factura, cuya longitud es de ½ carta, para imprimir en una impresora Epson LX-300; todo iba muy bien hasta que se implementó otro punto de pago, pues las facturas elaboradas en éste salen tamaño carta.
Configuré las propiedades del servidor para el tamaño de papel y nada. Borré la configuración de la impresora en el reporte y nada; lo único que me funciona es modificar el reporte, colocando la impresora de cada punto como predeterminada compilar y a cada estación colocar el .EXE que le corresponda. Sin embargo, cada vez que hago una actualización del programa y se me olvida este doble trabajo, uno de los puntos, el otro se desconfigura.
Pase entonces a realizar mi factura por SAY, pero cuando inicializo la impresora con ???chr(64) o chr(12) la hoja avanza casi dos páginas para empezar a imprimir.
Alguien me puede decir como:
1 Corregir el problema de mi reporte para que no se desconfigure el tamaño de papel.
o
2 Cual seria la secuencia ESC para que no avance tanto papel


Atentamente,
Ember
  Respuesta:  Alberto Sapoli
Estimado Ember. Te recomiendo que liberes del proyecto los formularios reportes (FRX) y los grabes en una carpeta predeterminada en la maquina de cada usuario. Cuando listes solo lee de dicha carpeta, asi los cambios que efectues en cada formulario reporte no afectara a los demas. Solo tienes que asegurate que no este dentro del proyecto.

    Pregunta:  60719 - SEPARAR NOMBRES COMPUESTOS
Autor:  abel martinez
Hola buenas tardes, necesito separar el campo nombre una base de datos DE VISUAL FOXPRO en apellido paterno, materno y nombre solo que tambien se encuentran nombres compuestos y de solo un apellido y nombre espero puedan ayudarme les dejo un ejemplo del tipo de nombres que exiten, gracias.

JARAMILLO DE LOS REYES JORGE LUIS
TORRES DE LOS ANGELES CYNTHIA NALLELY
ALVAREZ LOPEZ JULIO
  Respuesta:  ricardo soldini
mira es facil solo debes recorrer el campo nombre asignado los caracters a una variable para seprar las partes de nombre y cuando te encuentras con los espacios intermedios aplicas una funcion que evalue si lo que separaste es parte del apellido o nombre compuesto

ej suponiendo que nombre este compesto de apellido pat, materno, nombres
store spaces(30) to nombres, paterno, materno, nom_prov
posicion=1
for i = 1 to len(mombre)
if substr(nombre,i,1) != " "
nom_prov =nom_prov + substr(nombre,i,1)
else
if !compuesto(nom_prov)
do case
case posicion= 1
paterno=nom_prov
posicion=2
nom_prov=space(30)
case posicion=2
materno=nom_prov
posicion=3
nom_prov=sace(30)
OTHERWISE
NOMBRES=NOMBRES+NOM_PROV
NOM_PROV=SPACE(30)
ENDCASE
ELSE
NOM_PROV=NOM_PROV+" " && PARA QUE QUEDE EL APELLIDO
COMO ES EJ 'DEL SOLAR'
ENDIF


FUNCTION COMPUESTO(NOMB)
ES_COMP=.F.
DO CASE
CASE UPPER(ALLTRIM(NOMB))="DE"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="DEL"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="LAS"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="MC"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="O'"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="LA"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="LOS"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="LO"
ES_COMP=.T.
CASE UPPER(ALLTRIM(NOMB))="<lo que necesites"
ES_COMP=.T.
ENCASE
RETURN(ES_COMP)

    Pregunta:  60812 - CONSULTAS LENTAS
Autor:  Gabriela
Hola a todos, espero que alguien me pueda ayudar con esto. Tengo mi sistema con sus reportes y consultas para mostrar por pantalla, realizados usando vistas locales o consultas select - sql into cursor. hasta hace un tiempo todo bien, pero mis tablas ya tienen alrededor de 600.000 registros y las consultas son LENTISIMAS.....Probe con un formularia cambiar por seek, found(), do while, etc y cambió notablemente la rapidez, pero eso significaría un trabajo enorme de cambiar codigo y crear cantidad de indices. Justamente yo use vista u consultas por que tenía entendido que era lo mas rápido.
Mando un ejemplo para ver si alguien me puede ayudar a ver si estoy cometiendo algun error o hay alguna forma de optimizar este procedimiento

*hago consulta de entradas menos salidas del dia que estoy consultando

SELECT mov_stock.fecha_mov, mov_stock.id_proveed, mov_stock.cod_art,;
SUM(mov_stock.entrada_u - mov_stock.salida_u) AS EXISTE,;
SUM(mov_stock.entrada_k-mov_stock.salida_k) AS EXISTE_k;
FROM gestion!mov_stock ;
LEFT OUTER JOIN gestion!comprob ON mov_stock.cod_cpte = comprob.cod_cpte ;
WHERE Comprob.mov_stock = 1 ;
AND Comprob.afecta_ex = 1;
and mov_stock.id_proveed =mprovee;
AND mov_stock.fecha_mov =mFdesde ;
group by mov_stock.cod_art INTO CURSOR cierre

Agradeceré cualquier sugerencia o ayuda URGENTE!!!!
  Respuesta:  Javier Caballero
Gabriela, consulta: vos estas trabajando con dbf o algun motor de base de datos?
En ambos casos las vistas locales o remotas son lentas a partir de los 50mil registros +-.
Mi recomendacion es que utilices sentencias sql. Y si estas usando dbf, ya tendrias que ir pensando en migrar a algun motor de base de datos. Espero tus comentarios para buscar una solucion a tu problema.
Saludos
  Respuesta:  Gabriela Gonzalez
Gracias por responderme. En efecto estoy usando dbf, o sea la base propia de visual 7.0 que es la versión que utilizo. Por ahora lo que estoy haciendo es usar consultas solo para aquellos casos que utiliza pocas relaciones y filtros. Después estoy cambiando por los casicos seek, found(), do while, etc. De esta manera se han super agilizado los resultados de los informes. No se a que te referis con usar sentencias sql. Acaso el ejemplo de la consulta que puse en la pregunta no es una sentencia sql?
Saludos
Gracias

    Pregunta:  60829 - EDITAR EL CONFIG.FPW
Autor:  Alejandro Enríquez
Buenas noches ojala que me puedan ayudar, se puede configurar el archivo Config.fpw para que foxpro2.6 corra mas rapido? y desearía saber mas de que tentas cosas se le pueden incluir a este archivo para agilizar la labor de FoxPro2.6
  Respuesta:  erick teran
No se si este bien pero hasta donde yo se
solo se le modifican las lines=88
y buffer=88
y funciona bien con los sistemas en dos que manejamos aqui
suerte

    Pregunta:  60902 - ABRIR EXCEL 2007 DESDE VFP9
Autor:  Elsy Pitillo
Como se abre un libro u hoja de Excel 2007 desde VFP9?
con Excel 2003 o inferiores no he tenido problemas con el siguiente codigo:

loExcel=CREATEOBJECT("Excel.application")

WITH loExcel
.application.workbooks.open("c:alance.xls")
....
.application.visible = .t.
ENDWITH
WAIT "Presione Enter para Salir"
loexcel.quit()
STORE .null. to loexcel,lolibro

Pero con Excel 2007 no furula..!!
  Respuesta:  Mario Rodriguez
**** te mando una rutina con la que esporto mis bases de datos y le da formato a mi informaicón

**** este es el codigo:

*** variables a crear

*xc_basexlf = "vact" && nombre de la base
*xc_fxlf = "vacaciones"
*xc_nhoja = "reporte"
*xc_title = "Reporte de vacaciones"
*xc_datf1 = "Empleado: " + "RODRIGUEZ VAZQUEZ MARIO"
*xc_datf2 = "Fecha de ingreso: " + DTOC({^2002-09-11})
*xc_foot1 = "Reporte de vacaciones por empleado"

xc_datf3 = "Reporte al dia: " + DTOC(DATE())
xc_foot2 = "Creado desde "+ ccredit

#DEFINE xlAutomatic -4105
#DEFINE xlCenter -4108
#DEFINE xlLeft -4131
#DEFINE xlMedium -4138
#DEFINE xlNone -4142
#DEFINE xlPrintNoComments -4142
#DEFINE xlContinuous 1
#DEFINE xlDownThenOver 1
#DEFINE xlPaperLetter 1
#DEFINE xlLandscape 2
#DEFINE xlThin 2
#DEFINE xlThick 4
#DEFINE xlDiagonalDown 5
#DEFINE xlPaperLegal 5
#DEFINE xlDiagonalUp 6
#DEFINE xlEdgeLeft 7
#DEFINE xlEdgeTop 8
#DEFINE xlEdgeBottom 9
#DEFINE xlEdgeRight 10
#DEFINE xlInsideVertical 11
#DEFINE xlColorRojo 3
#DEFINE xlColorAzul

LOCAL num_fil

SELECT &xc_basexlf
GOTO top
num_fil = RECCOUNT()+7
num_col = fcount()

DO CASE && PARA DETERMINAR COLUMNAS COMBINADAS si hay muchos campos

CASE FCOUNT() < 27
cColu = ALLTRIM(CHR(64+FCOUNT()))
CASE BETWEEN(FCOUNT(),27,52)
cColu = CHR(65)+ALLTRIM(CHR(64+(FCOUNT()-26)))
CASE BETWEEN(FCOUNT(),53,78)
cColu = CHR(66)+ALLTRIM(CHR(64+(FCOUNT()-52)))
CASE BETWEEN(FCOUNT(),79,104)
cColu = CHR(67)+ALLTRIM(CHR(64+(FCOUNT()-78)))

OTHERWISE
cColu = "AZ"

ENDCASE

cFile = '"'+xc_fxlf + '.xls"'
cFilr = xc_fxlf + '.xls'
cFilo = '"'+xc_fxlf +'"'

IF FILE(&cFile ) = .t.
answer = MESSAGEBOX("El archivo "+ cFilr + " ya existe" + CHR(13)+;
"Pulse reintentar para eliminar el archivo actual," + CHR(13)+;
" o cancelar el proceso",21,ccredit + " Archvo existente")

DO case
CASE answer = 2
RETURN

CASE answer = 4
ERASE &cFilr
COPY TO &cFilr TYPE xl5
otherwise
RETURN

ENDCASE
else
COPY TO &cFilr TYPE xl5
ENDIF

***Ahora vamos a trabajar con una planilla ya creada. Creamos nuevamente el objeto Excel:
loExcel=CREATEOBJECT("Excel.application")
loExcel.APPLICATION.VISIBLE=.T.

**Abrimos el libro Excel que ya existe:
loExcel.APPLICATION.workbooks.OPEN(&cFilo)

**Cambiamos el nombre de la hoja activa:
loExcel.APPLICATION.activesheet.NAME = "Reporte"

**Hacemos referencia directamente a "Reporte", y ponemos valores en una celda y le damos formato:
loExcel.APPLICATION.Sheets("Reporte").Rows("1:5").Insert

**loExcel.APPLICATION.Sheets("Reporte").cells(1,1).NumberFormat = "0.00%"

XLSheet = loExcel.APPLICATION.ActiveSheet

* .LineStyle = xlContinuous
* .Weight = xlThin
* .ColorIndex = xlAutomatic


lcRango= "A1:"+ccolu+ALLTRIM(STR(num_fil))

range_s2 = "A7:"+ccolu++ALLTRIM(STR(num_fil))
range_s2r = '"'+range_s2+'"'

*range_s3 = "F7:S"+ALLTRIM(STR(num_fil))
*range_s3r = '"'+range_s3+'"'

WITH XLSheet.Range(&range_s2r)
.Font.Size= 9
.Interior.ColorIndex = 2 && 19 amarillo
.borders(4).LineStyle= 2
.borders(4).Weight = 1
.borders(4).Colorindex= 1
ENDWITH


loExcel.APPLICATION.Sheets("Reporte").cells(1,3).VALUE = xc_title
* .HorizontalAlignment=xlCenter &&Aliniar al centro *
* .VerticalAlignment=xlCenter
**** formato del encabezado principal
xc_titrg = '"c1:'+ccolu+'1"'
WITH XLSheet.Range(&xc_titrg )
.Merge
.Font.Bold=.t.
.Font.Size=16
.HorizontalAlignment=xlCenter
.Interior.ColorIndex = 20

ENDWITH

*** configurando encabezado **
xc_rhead = '"a6:'+ccolu+'6"'

WITH XLSheet.Range(&xc_rhead)
.borders(9).LineStyle= 3
.borders(9).Weight = 3
.borders(9).Colorindex= 1
.Font.Bold=.t.
.Font.Size= 9
.HorizontalAlignment=xlCenter
.Interior.ColorIndex = 15
ENDWITH

For i = 1 TO num_col
xc_headv = loExcel.APPLICATION.Sheets("Reporte").cells(6,i).VALUE
loExcel.APPLICATION.Sheets("Reporte").cells(6,i).VALUE = UPPER(ALLTRIM(xc_headv))
ENDFOR


range_sq = "A6:"+ccolu+ALLTRIM(STR(num_fil))
range_sqr = '"'+range_sq+'"'

WITH XLSheet.Range(&range_sqr).Borders(3)&&xlEdgeLeft
XLSheet.Columns().AutoFit
ENDWITH


*** .Interior.ColorIndex = 15 GRIS 10 VERDE 1 NEGRO 2 BLANCO 3 ROJO 4 VERDE CLARO
** 5 AZUL INTENSO 6 AMARILLO 7 FUISHA 8 CYAN 9 MARRON 11 AZUL FUERTE12 AMARILLO OBSCURO
** 13 MORADO 14 VERDE AZUL 16 GRIS 17 LILA 19 AMARILLO CLARO 20 AZUL

loExcel.APPLICATION.Sheets("Reporte").cells(2,4).VALUE = xc_datf1
**loExcel.APPLICATION.Sheets("Reporte").cells(1,1).NumberFormat = "#,##0.00"
loExcel.APPLICATION.Sheets("Reporte").cells(3,4).VALUE = xc_datf2
loExcel.APPLICATION.Sheets("Reporte").cells(4,4).VALUE = xc_datf3

LOCAL lcImagen, lcPlanilla, lo
*-- Selecciono imagen y nombre de planilla (xls)
lcImagen = MYPATH+"SALIDAGRAFICA.BMP" &&&GETPICT() obvio debes tener el archivo salidagrafica.bmp
*-- Selecciono la celda donde estará la posición de la imagen

loExcel.Cells(1,1).Select
loExcel.ActiveSheet.Pictures.Insert(lcImagen).Select
loExcel.Selection.ShapeRange.LockAspectRatio = 0
loExcel.Selection.ShapeRange.Height = 58 && pixeles
loExcel.Selection.ShapeRange.Width = 90 && pixeles

*** configurar area de impresion

with loExcel.APPLICATION.ActiveSheet.PageSetup
.TopMargin = 60
.BottomMargin = 80
.RightMargin = 30
.LeftMargin = 30
.LeftFooter = cempresa + " " + xc_foot1 + " - " + xc_foot2
.PrintHeadings = .f.
IF xc_land = .t. && esta variable la asigno cuando tengo muchos campos
.Orientation = xlLandscape
ENDIF
***.Orientation = xlLandscape
.PaperSize = xlPaperLetter
.PrintArea = lcRango

ENDWITH

loExcel.Cells(6,1).Select

loExcel.APPLICATION.activeworkbook.SAVE
**loExcel.APPLICATION.QUIT && las desactive para que el usuairo pueda ver archivo
**RELEASE loExcel

espero te sirva de algo
saludos : -
  Respuesta:  erick teran
select cliente
go bottom
declare INTEGER ShellExecute in shell32 INTEGER handle, STRING @ oper, ;
STRING @ ifile, STRING @ iparam, STRING @ ipath, INTEGER showcmd
lcFileName = cliente.imagen
=shellexecute(0,"open",lcFileName,"","c:",1)

con ese codigo abro imagenes
solo reemplaza el nombre del archivo por el que tu quieras
te abre cualquier archivo bueno ami me lo hace
sea de excel de word de acrobat etc etc
espero te sirva
suerte

    Pregunta:  60971 - DAÑO ESTRUCTURA TABLAS FOXPRO
Autor:  Alberto Sapolin
Favor alguien me puede indicar cómo evitar que la estructura de tablas dbf se dañen por el problema baja de energia eléctrica. Existe algun comando que pueda utilizar o algun manejador de base de datos que protega la estructura de las tablas dbf. Yo utilizaba Base de Datos (DBC) pero los pase a Libres. Disminuyo los problemas de indices, pero aun tengo problemas.
  Respuesta:  Javier Caballero
Este es uno de los motivos mas fuertes por lo que los DBF no son buenos para producciones de alto standart, te recomendaria una buana UPS, o migrar tu sistema a un motor de base de datos (MySQL o MS SQL)

Saludos,

JavierC
Asunción - Paraguay

    Pregunta:  60994 - PROBLEMAS CON ACTULIZACION DE VALORES DE UN FORMULARIO A OTR
Autor:  angel silva
buenas mi problema es el siguiente: yo tengo dos formularios, uno donde se introducen datos del producto y su cantidad, y en el segundo donde se procede a retirar cierta cantidad de ese producto. El detalle es q cuando se retira cierta cantidad de algun producto en el segundo formulario la cantidad restante se tiene que reflejar en el primer formulario como cantidad existente, pero eso no sucede, el primer formulario no se esta actualizando con el monto restante, simpre muestra la primera cantidad total introducida al principio.
espero puedan ayudarme con ete prioblema ya que es un trabajo para enseñar en la universidad pronto y no consigo como reparar eso..
gracias.
  Respuesta:  simon ottenwarde
eso es sensillo hacerlo solamente
desde el segundo formulario debe poner la siguiente intrucion en el botton para salvar datos y actualizar.

select svrarart
thisform.txtcanart.value=thisform.txtcanart.value-thisform.cantart.value
replace svrarart.canart with thisform.txtcanart.value
tableupdate(.t.)
thisform.refresh

    Pregunta:  61024 - ¿COMO CREO UN FORMULARIO CIRCULAR?
Autor:  Rebe Fortín
Hola a Todos! Resulta que estoy haciendo un pequeño programa pero deseo que el formulario sea en forma circular.. Hay alguna sugerencia? Por Favor..!! Les agradecer mucho!
  Respuesta:  Alejandro krawczuk
hola si estas trabajando con visual basic 6.0 existe un programa que se llama vb shaped form creator. es muy bueno yo lo uso siempre

|<  <<  127 128 129 130 131 132 133 134 135 136 137  >>  >|