FoxPro/Visual FoxPro - Copiar archivo a Disco Duro

   
Vista:
Imágen de perfil de Jaime Javier Ortiz

Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 19/11/2010 16:30:07
Hola apreciad@s programador@s:

Les agradezco su valiosa ayuda porque siempre me sacan de dudas.

Tengo el siguiente codigo:

Desde un boton de un formulario creo un cursor MICURSOR y en seguida le digo:

COPY TO "C\:MIARCHIVO.XLS" TYPE CSV

y creo el archivo de excel en el servidor donde se encuentra la aplicacion junto al ejecutable.

Mi dudas son las siguiente:
1. Como abro el explorador de windows desde visual foxpro
2. el archivo C\:MIARCHIVO.XLS me lo crea en el servidor de aplicaciones y yo no quiero eso.
3. Como hago para guardar este archivo (MIARCHIVO.XLS) en el disco duro de un usuario que este usando la aplicacion por la red???

Espero me haya hecho entender y de antemano GRACIAS Y SALUDOS
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

RE:Copiar archivo a Disco Duro

Publicado por andy (221 intervenciones) el 19/11/2010 22:42:51
Puedes utilizar la funcion GETDIR() con algo asi

copiar_a=getdir()
copiar_a=copiar_a+'MIARCHIVO.XLS'
COPY TO (copiar_a) TYPE CSV

La red tiene que esta "mapeada" para que GETDIR() la muestre
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
Imágen de perfil de Jaime Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Ortiz (62 intervenciones) el 22/11/2010 02:51:40
HOLA MI BUEN AMIGO ANDY:

PRIMERO QUE TODO GRACIAS POR ESCRIBIR Y POR TU SOLUCION, YA LO PROBE Y ME FUNCIONO COMO LO QUERIA.
MAÑANA LO VOY A PROBAR EN LA OFICINA A VER COMO SE COMPORTA CON EL USUARIO DE LA RED Y LUEGO TE COMENTO, TE PARECE??
TIENES ALGUN CORREO DONDE PUEDA ESCRIBIRTE?

SALUDOS Y MUCHAS GRACIAS NUEVAMENTE.
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 22/11/2010 11:37:54
Es mejor que use la función PUTFILE, que no sólo le permite elegir la ruta, además cambiar el nombre del archivo destino. O sea, funciona al estilo de 'Guardar como'

copiar= putfile( 'C:\', 'MiArchivo.XLS', 'XLS')
if !empty(copiar)
copiar= ["] + alltrim(copiar) + ["]
copy to (copiar) type XLS
endif

Nota: ¿porqué poner el nombre del archivo entrecomillado antes del copy? En ocasiones, VFP se confunde con nombres largos de archivo, o que tienen espacios en blanco en medio. Prueba a hacer un COPY TO hacia una carpeta MIS DOCUMENTOS y lo entendereis.

Saludos.
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 22/11/2010 15:19:08
Hola Juan M Cruz, recibe un cordial y un gran agradecimeinto por tu valiosa ayuda.

Esa era la idea, esa era la solucion que yo queria. Era con putfile. Hombre la verdad que te agradezco muchissisisisisisismo.

Ahora tengo esta inquietud, si me podrias ayudar, por fa...
Esto me funciona correctamente(el putfile), y me abre el explorador de windows del Servidor windows server 2008 desde cualquier estacion de trabajo donde tengo instalado el ejecutable de la aplicacion.
y yo no quiero esto, lo que quiero es que cuando le ejecute las instrucciones que tu me diste, se abra el explorador de windows de la estacion de trabajo del usuario de la red y no del servidor donde esta instalada do el ejecutable, me hago entender?????

Es decir, para ser mas claro, que esta linea que tu me diste
(copiar=putfile( 'C:\', 'MiArchivo.XLS', 'XLS')) copie o guarde en la unidad 'C'
del equipo del usuario de la red que esta ejecutando el ejecutable que se encuentra en el servidor y no en la unidad 'C' del servidor.

Espero me haya hecho entender o me acabé de confundir??? jejejejejeje

Saludos hombre, gracias y un gran abrazo.
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 22/11/2010 18:16:29
No importa dónde esté tu EXE y lo mandes a ejecutar, cualquier referencia C: siempre se referirá a tu equipo local, nunca al del servidor. Excepto que trabajases en una ventana de control remoto en el servidor mismo, posibilidad bastante lejana y retorcida.

Eso ha sido así siempre, creo.
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 22/11/2010 18:31:45
Creo que ya entendí, tu subdirectorio por defecto está en algun recurso del servidor.

El Putfile puede aceptar en el nombre de archivo como argumento (el segundo argumento) tanto el nombre como la ruta, así puedes cambiar la ruta con la que se abre inicialmente la ventana de diálogo.

copiar= putfile( 'GUARDAR COMO:', 'C:\MiArchivo.XLS', 'XLS')
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 22/11/2010 22:30:53
HOLA JUANMA, LA VERDAD QUE TU TIENES MUCHA IDEA DE LO QUE YO QUIERO. LA SOLUCION QUE ME ACABAS DE ENVIAR SIGUE HACIENDO LO QUE YO QUIERO PERO ME SIGUE ABRIENDO LA UNIDAD 'C' DEL SERVIDOR.
QUIERO COMENTARTE QUE YO ACCESO AL SERVIDOR DESDE MI ESTACION DE TRABAJO ASI:
CLIC EN INICIO--->TODOS LOS PROGRAMAS--->ACCESORIOS--->CONEXION A ESCRITORIO REMOTO, AQUI LE DIGITO LA DIRECCION IP DEL SERVIDOR, 192.168.0.34, ME LOGUEO Y ENTRO A LA APLICACION DE VISUAL FOXPRO.
UNA VES EN LA APLICACION DESDE UN BOTON COLOCO EL CODIGO QUE TU ME ENVIASTE Y ME ABRE LA UNIDAD C DEL SERVIDOR Y NO LA DE MI EQUIPO O DE MI ESTACION DE TRABAJO.
¿¿ES POSIBLE DE ESTA MANERA HACE UN PUTFILE A MI PROPI EQUIPO Y GUARDAR O COPIAR EL ARCHIVO EN MI DISCO DURO???
ESOTY SIENDO CLARO O ME GUSTARIA QUE ME ENVIES TU EMAIL PARA ENVIARTE UN DIBUJO DE LO QUE YO NECESITO, PORQUE QUIERO MOSTRARTE GRAFICAMENTE MI SITUACION, CREO QUE SI LOGRO EXPLICARTE MEJOR Y HACERME ENTENDER MAS TU ME VAS A YUDAR D ELA MEJOR MANERA, CIERTO?

Mi correo es: jaimejaviero@hotmail.com

SALUDOS Y ESPERO ME CONTINUES AYUDANDO CON ESTO QUE DEBO TERMINAR AHORA.
GRACIAS POR TU AMABILIDAD Y PACIENCIA
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 23/11/2010 10:32:39
Entiendo, tal y como sospeché estás haciendo un escritorio remoto.

¿Hay alguna razón en particular por la que necesitas hacer esto? ¿Distancia física, seguridad... etc? Bueno, cualquiera que sea la razón, vamos a dejarla así, tendrás tus motivos.

En realidad, tu servidor 'desconoce' la existencia de tu equipo local, así que no tiene cómo saber que tú quieres poner los archivos destino en tu propio disco. Para él, todo se hace a SU nivel local.

Como tampoco puedes resolverlo diciendo que el nombre por defecto es 172.26.0.33 (suponiendo que ésta fuera tu direcion IP), tu servidor debería tener mapeados los discos duros de los PC clientes, para que puedas decirle que apunte a W: Y:, Z, etc... suponiendo que así mapeas desde el servidor hacia los discos de los clientes.

Escenario complicado. Lo otro que puedes hacer es centralizar en el servidor una carpeta donde los usuarios puedan poner sus documentos (cosa recomendable, por cuestiones de backup y centralización)

No se me ocurre otra cosa por ahora...

Viendo la dirección IP de tu servidor, veo que se trata de una red local ¿En realidad es necesario que hagas un remoto?
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 23/11/2010 10:41:25
Acabo de encontrar un 'truco' para que desde un remoto tu servidor pueda ver y escribir en tu disco local.

En la ventana de Conexion a Escritorio Remoto, dale al botón de OPCIONES >> y se ven las opciones avanzadas. En la pestaña de RECURSOS LOCALES ve a la sección DISPOSITIVOS Y RECURSOS LOCALES y luego el botón MAS... y activas la casilla de selección de tu disco C:

De ese modo, cuando quieras hacer el PUTFILE en tu programa en sesión remota, no te da por defecto el disco de tu equipo, pero puedes verlo en la lista de DISPOSITIVOS DE ALMACENAMIENTO y seleccionarlo.

Eso sí, la sesión remota te pedirá que tu usuario tenga derechos de escritura y todo eso. Aquí lo tengo fácil porque mi administrador de red me lo da todo hecho, en tu caso deberás apañarte con la seguridad de red y tu administrador.

Saludos.
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 23/11/2010 14:50:00
Hola mi buen amigo Juanma, creo que tu tienes el derecho de saber las respuestas de estas preguntas, no faltaba mas hombre

¿Hay alguna razón en particular por la que necesitas hacer esto? ¿Distancia física, seguridad... etc?
La razon es porque el programa que estoy haciendo es de pedidos y los vendedores se encuentran fuera de la oficina,
en algunos lugares especificos de la ciudad y desde alla deben realizar sus pedidos por medio del programa.
El programa esta alojado en el servidor de la oficina principal y los vendedores deben accesarlo desde su sitio de trabajo, es
claro Juanma o necesitas mas claridad? con gusta te comento lo que necesites saber.

veo que se trata de una red local ¿En realidad es necesario que hagas un remoto?
Si, es una red de area local, pero los vendedores estan fuera de la oficina principal, iclusive en otras ciudades,
ellos se comunican a traves de internet por medio de una VPN a traves de un tunel, segun me comenta el administrador de la red.
y accesan el servidor donde se encuentra la aplicacion que estoy desarrollando y la cual tu me estas ayudando a resolver la
situacion de que cada vendedor descargue su archivo de pedidos a su propio disco duro.

Voy a probar la solucion que me acabas de brindar y luego te comento como me fue, te parece?

Recibe un saludo muy especial de agradecimiento y un fuerte abrazo.
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 23/11/2010 15:16:52
Hola Juanma, ¡¡¡EXELENTE!!! acabo de probar la solucion que me diste y cambie las opciones de unidad de disco por la ventana de Conexion a Escritorio Remoto y me FUNCIONO!!!!!, me deja ver la unidad C de mi equipo y tambien toda la estructura del servidor, pero solo la primera vez, cuando me volvi a conectar por Conexion a escritorio remoto me aparece por defecto esta direccion:
\\tsclient\c, la cual es la direccion de mi equipo, esto me parece buenisimo porque va directamente a la unidad C del equipo local.

Pero de igual manera si me encuentro con unvendedor curioso va a poder explorar todas las unidades del servidor y esto no puede ser, !! ES PELIGROSO¡¡ no te parece???

Voy hablar con el administrador de la red y le voy a plantear la solucion y los riesgos a ver el que me dice, luego te estaré comentando a respecto.

Por ahora tu has hecho que yo pueda cumpir aqui en mi trabajo y pueda entregar la parte del trabajo que me corresponde, ahora que el administrador que me de su opinion.

Saludos y seguinmos en contacto.

Un gran abrazo.
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 23/11/2010 20:55:13
Hola mi buen Amigo Juanma, recibe un cordial saludo.
Quiero comentarte algo que se me ocurre y tu me diras si es posible o no hacerlo:
Cuando le escribo el comando:
copiar= putfile( 'c:\', 'Pedidos.XLS', 'XLS')
el me abre el servidor por defecto, cierto?

Como la direccion que me abre la aplicacion cuando yo le doy el ptfile es la del servidor, el me muestra esta direccion
que es supuestamente la direccion del usuario cliente de le estacion de trabajo y lo ubica en C.
\\tsclient\c
Se puede colocar esta direccion por defecto para que la abra cuando le doy la instruccion de:
copiar= putfile( 'c:\', 'Pedidos.XLS', 'XLS')

Con "\\tsclient\c" supuestamente me abriria el equipo donde esta ubicado el vendedor y podria grabar dierectamente
en su dico duro en la unidad C, cierto, o estoy equivocado???

Esto es posible o no es posible???

Agradezco tu buena voluntad en ayudarme.

Saludos.

Nota: Juanma, tu en que lugar... de la Mancha.... jejejejeje te encuentras???
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:Copiar archivo a Disco Duro

Publicado por Juanma Cruz (508 intervenciones) el 24/11/2010 13:09:06
Creo que Putfile sólo acepta las unidades mapeadas, he probado a hacerlo del modo \\estacion\c y... no me ha funcionado.

Personalmente, yo hubiera elegido que cada vendedor ejecute en forma local la aplicación de pedidos, y usar la VPN para el tráfico de datos hacia el servidor. Te ahorrarías muchos dolores de cabeza. No quiero imaginarme a 10 vendedores -por decir algo- simultaneamente haciendo sesión remota en el servidor...

PD/ En Madrid. :)
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 24/11/2010 18:27:47
Hola Juanma, que bueno leer tus consejos, la verdad me han servido muchisimo.
Estoy de acuerdo contigo, me parece mejor que cada vendedor ejecute la aplicacion de forma local.
Sabes cual es la dificulta segun me comenta el administardor de sistemas?

Que se requiere licencia para acceder al servidor de windows server 2008.
Sin licencia estariamos actuando "moralmente" mal, que opinas de esto?

Pero con el peligro que existe de que los vendedore puedan accesar las unidades o el explorador del servidor, esto no se va a poder hacer. Sera que nos saltamos el "moralmente" jejejejeje y le instalamos a cada vendedor el archivo ejecutable??

Una pregunta mas Juanma:
En caso de instalar en cada equipo de los vendedores la aplicacion de pedidos, ¿que carpeta debo copiar aparte del ejecutable?

Gracias y recibe un saludo muy especial.

Saludos desde Cali Colombia- cuando vengas por aca a la orden, estoy para servirte.

Espero seguir comunicandome contigo, si no es por este medio porque otro medio lo podemos hacer????
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:Copiar archivo a Disco Duro

Publicado por Jose Casalino (94 intervenciones) el 21/12/2010 21:03:47
Hola , dime si pudiste solucionar tu problema para que lo compartas con todos.
En caso de que no te doy esta alternativa (algo rebuscada pero funcional)

Yo hice la siguiente prueba:
en mi pc comparti una carpeta por ejemplo cajas y digamos que mi pc se llama psistema yo desde una consola remota en mi servidor abrir una sesion de consola DOS y puse :

dir \\psistema\cajas y me devolvio el contenido de mi carpeta cajas en mi C

ahora no se si tu aplicacion puedas pedir el nombre de la pc al vendedor (algo facil de conseguir para el vendedor) y en tu programa dejalo tal como esta (que grabe en el C del servidor) y solo adiciona una linea que diga

!copy c:\"nombre del archivo" \\psistema\cajas

A mi me funciono.
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
Imágen de perfil de Jaime Javier Ortiz

RE:Copiar archivo a Disco Duro

Publicado por Jaime Javier Ortiz (62 intervenciones) el 21/12/2010 22:45:41
Hola JOSE, que alegria me dio saber que alguien mas me pueda ayudar a solucionar mi problema que aun no he resuelto.
No he podido hacer que desde mi programa de visual foxpro el vendedor no tenga acceso al explorador del servidor y esto es ...!!!fatal¡¡¡¡
Cuando le coloco esta linea: !copy c:\"nombre del archivo" \\psistema\cajas
mi programa de foxpro no me la reconoce y me saca error.
Otra cosa, cuando comentas esto, " (que grabe en el C del servidor)" eso es lo que no quiero, que grabe en C del servidor, quiero que grabe directamente en el comptador del vendedor, me hago entender?
No quiero que el vendedor tenga acceso al explorador del servidor desde la conexion remota.

Te agradezco muchisimo y si hay algo que no entendi y que tu me quisiste enseñar por favor repitemelo mas claranmente que estoy dispuesto a aprender para solucionar este priblema.

Saludos:

Jaime O

NOTA, si puedes enviarme alguna explicacion donde yo pueda entender mejor lo puedes hacer a mi correo jaimejaviero@hotmail.com

disculpa por mi torpeza, jejejejeje
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