Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Directorio por defecto en GetFileName (https://www.cobolforo.es/showthread.php?t=838)

Breew 20 de abril de 2018 23:22

Directorio por defecto en GetFileName
 
Hola.

Tengo un problemilla con el "GetFileName" .

Mi intencion es poder escoger diferentes ficheros de un directorio en concreto, pero
si por alguna circustancia escojo un fichero de un directorio diferente, cuando vuelvo a abrir
el programa, se me posiciona en el ultimo directorio, y no en el que quiero por defecto.
Código COBOL:
  1.       MOVE ALL SPACE TO EXCELSHEET-NAME.
  2.       MOVE "C:\remesas" TO EXCELSHEET-NAME.
  3.  
  4.       INVOKE POW-SELF "GetFileName" USING EXCELSHEET-NAME "Por favor, escoge fichero" "XLS(EXCEL book)|*.XLS" POW-CDOPEN RETURNING ReturnValue.

Seguramente no lo estoy usando bien.

Saludos.

Kuk 22 de abril de 2018 14:48

Breew, tienes que incluir la opción POW-CDNOCHANGEDIR:

Del manual de Power:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 Filename           PIC X(256).
  5.  01 FileMask           PIC X(30).
  6.  01 FileStyle          PIC S9(9) COMP-5.
  7.  01 ReturnValue  PIC S9(9) COMP-5.
  8.  
  9.  PROCEDURE       DIVISION.
  10.  
  11. * Specify the types of files to list
  12.      MOVE "All files|*.*|Text files|*.txt" TO FileMask
  13.  
  14. * Specify the File Open dialog.
  15. * (Change this to POW-CDSAVE if you need
  16. * the File Save Dialog.)
  17.      ADD POW-CDOPEN TO FileStyle
  18.  
  19. * Specify the behavior required if the
  20. * user changes the current directory when
  21. * browsing for a file to open.    
  22.      ADD POW-CDNOCHANGEDIR TO FileStyle *> ESTE ES !!!
  23.  
  24.      INVOKE MainForm "GetFileName"
  25.        USING FileName
  26.             "Title Displayed in Title Bar"
  27.                  FileMask
  28.                  FileStyle
  29.        RETURNING ReturnValue

Breew 29 de abril de 2018 13:17

Hola.
No acaba de funcionar del todo.
En la barra de navegacion, aparece siempre el ultimo directorio que se ha entrado.
En cambio en la barra que hay a la derecha del nombre si que aparece siempre el mismo directorio.

Lo ideal seria que la trayectoria quede fijada en la barra superior.

Gracias.

Kuk 29 de abril de 2018 18:32

Breew, haz un pantallazo y cuélgalo aquí, no me estoy enterando ;)

Breew 29 de abril de 2018 19:01

1 Archivos Adjunto(s)
Hola.

El programa abre una hoja de calculo excel, normalmente en c:\doser\rafel\bancos
pero ocasionalmente, voy a remesas.
Lo que quiero hacer es que siempre se posicione en el directorio c:\doser\rafel\bancos.
Con la solucion que me has dado anteriormente, si que se fija el directorio en la ventana inferior, en cambio abre la superior.

Gracias.

Kuk 29 de abril de 2018 23:41

Breew, yo creo que te estás haciendo un lío. En el combo donde dice "c:\doser\rafel\bancos" te debería aparecer la lista de extensiones de ficheros que quieres abrir, es decir el "filemask".

Código COBOL:
  1.     MOVE "All files|*.*|Text files|*.txt" TO FileMask
Código COBOL:
  1.      INVOKE MainForm "GetFileName"
  2.        USING FileName
  3.             "Title Displayed in Title Bar"
  4.                  FileMask *>  <===============================
  5.                  FileStyle
  6.        RETURNING ReturnValue

Revisa tu código y me cuentas. Estarás haciendo un MOVE donde no es. ;)

Breew 1 de mayo de 2018 09:17

Hola Kuk.
Efectivamente, estaba el move mal puesto.

El caso es que no consigo fijar el directorio que quiero que abra por defecto.

Me gustaria que siempre se posicione en c:\doser\rafel.
Al principio se abre alli, pero si por algun instante abro otro fichero en otro directorio, siempre se posiciona en el ultimo directorio activo.
Se puede cambiar?

Saludos

Kuk 1 de mayo de 2018 20:33

Breew, la función GetFilename invoca WinAPI, y parece ser que la última no deja hacerlo: OpenFile function (Windows)

Por internetes hablan de mejor usar los Dialog que hay en otros entornos, cosa de la que no disponemos en Power por defecto.

Puedes buscar alguna OCX como alternativa, que permita indicarle el directorio por defecto.

Dasije 1 de mayo de 2018 20:42

Hace unos años me pasó un caso parecido, necesitaba fijar una ruta fija para examinar y seleccionar imagenes al abrir el dialogo de abrir archivos cuando ejecutaba la función GetFileName.

Finalmente no recuerdo porque tuve que hacerme una libreria en C++, no sé si era por limitaciones de estructura de datos al llamar a la función GetOpenFileName de Windows o imcompátibilidad de variables char (no recibía el valor).


La franja horaria es GMT +2. Ahora son las 04:44.

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