Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Activar pantalla de busqueda de Windows (https://www.cobolforo.es/showthread.php?t=42)

Kuk 26 de febrero de 2015 19:27

Josber, exacto! Es eso, hay que ponerlos todos juntos!!!

Hrmcobol 6 de agosto de 2015 14:46

Hola Amigos !!, Siguiendo con este tema del GetFileName, hay alguna manera de poder dirigir el comando, para que abra una carpeta en particular?

Saludos

Kuk 6 de agosto de 2015 18:24

Hrmcobol, creo que si le mueves la ruta antes a la variable donde te la devuelve, (si existe dicha ruta), se abre en ella.

Hrmcobol 6 de agosto de 2015 19:20

Yo también creía eso, pero no es así, o yo estoy haciendo al mal, siempre trae el ultimo path visitado, esto quiere decir que se debe poder cambiarlo. Seguiré investigando y te cuento.

Saludos

lumalma 22 de septiembre de 2016 11:09

Hola

Retomo este antiguo tema.

Cambio la carpeta actual mediante cbl_change_dir2 desde un form. Pero al hacer GetFileName en otro form no me lleva a la carpeta a la que he cambiado.
Alguien ha conseguido algun avance?

Gracias y saludos

Kuk 22 de septiembre de 2016 11:28

lumalma, dónde estás haciendo exactamente el cambio? En teoría, si es en un Form padre, cambiará también para los Form hijo pero no lo contrario.

Es decir, si haces el cambio en el MainForm, cambiaría para todos los hijos. Pero si lo haces en un Form hijo, creo que el MainForm quedará donde estaba.

lumalma 22 de septiembre de 2016 11:58

Hola Kuk

El cambio de carpeta lo hago en un proyecto externo en el que tengo todas las llamadas a rutinas "cbl_....". Pero no cambia.
Pero si guardo un fichero en una carpeta en otro form, esa carpeta se queda como la actual.
Espero haberme explicado mejor que antes.

Gracias y saludos

Kuk 22 de septiembre de 2016 13:24

lumalma, yo nunca he usado la rutina CBL para cambio de directorio actual. En general, no cambio nunca el directorio porque puede llevar a consecuencias graves. Siempre trabajo con directorios absolutos, es decir, indicando explícitamente la ruta exacta de cada fichero.

Si miras el PowerCOBOLReference.pdf, verás lo que se dice de la rutina de dialogo de ficheros "GetFileName" (página 294) :

Cita:

Folder Group
Whether the current folder is changed when the user changes folders.
POW-CDCHANGEDIR: (The default) Changes the current folder.
POW-CDNOCHANGEDIR: Does not change the current folder.
O sea que para que NO cambia de directorio, hay que indicarlo expresamente con POW-CDNOCHANGEDIR. En caso contrario, el directorio cambia (opción por defecto: POW-CDCHANGEDIR)

Si se trata de un proyecto externo, por narices debe ser una DLL por lo tanto con Form(s) hijo. Si es un ejecutable, peor aún, se trata de otro Thread (flujo) de ejecución.

La filosofía del asunto es, que yo sepa, la que he descrito en mi post anterior. Yo creo que es por eso que no te funciona.

Haz pruebas con ello en el MainForm y fíjate si el Form hijo sigue en el mismo directorio o no. Y haz lo contrario, cambiando el directorio en el Form hijo y comprueba dónde apunta el MainForm.

lumalma 22 de septiembre de 2016 16:23

Hola Kuk

Gracias por tus respuestas Kuk

Ya habia leido todo lo referente al metodo GetFileName.
Mi problema es que quiero guardar un archivo con unos datos y quiero que por defecto al hacer GetFileName me lleve a una carpeta concreta para indicar el nombre del archivo. Y no se me ocurre otra forma.

Saludos

Kuk 22 de septiembre de 2016 17:40

lumalma, acabo de probarlo. Efectivamente no funciona con GetFileName, pero funciona con GetFolderName.

Puedes crear tu propio dialogo "Guardar Archivo" con CmFolder y CmFile. O usa el GetFolderName.

También se puede cambiar la CurrentPath vía WinAPI, si te interesa.


La franja horaria es GMT +2. Ahora son las 00:20.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.