Página 4 de 4 PrimerPrimer 1 2 3 4
Resultados 31 al 39 de 39

Tema: Desde Excel a ListView o CmTable

  1. #31
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    796
    Última visita
    Ayer a las 12:00

    Agradecimientos
     
    Recibidos
    440
    Enviados
    362

    Citaciones y menciones
     
    Mentioned
    77 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    13 Post(s)
    Poder de Reputación
    37
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    Hola @Socavi,

    A ver si con éste ejemplo te aclaras más
    Supón que tienes una hoja de cálculo como la que adjunto en la imagen, y quieres traspasar los datos a un fichero, que se llama en éste caso FICHERO.DAT, lo primero es que en tu Form, has de insertar con ExcelControl, que se llame CmExcel1, el código para traspasar los datos, que supongo que irá en un ButtomControl, (un botón), sería así:

    COBOL Código:
    1.  ENVIRONMENT     DIVISION.
    2.  INPUT-OUTPUT    SECTION.
    3.  FILE-CONTROL.
    4.      SELECT OPTIONAL FICHERO
    5.             ASSIGN TO "FICHERO.DAT"
    6.             ORGANIZATION IS INDEXED
    7.             ACCESS MODE  IS DYNAMIC
    8.             FILE STATUS  IS STFIC
    9.             LOCK         IS AUTOMATIC WITH LOCK ON RECORD.
    10.  DATA            DIVISION.
    11.  FILE          SECTION.
    12.  FD  FICHERO IS GLOBAL
    13.      LABEL RECORD IS STANDARD
    14.      DATA  RECORD IS REG_FIC.
    15.  01  REG_FIC.
    16.      03  FICCP          PIC 9(05).
    17.      03  FICPOB         PIC X(30).
    18.      03  FICPRO         PIC X(20).
    19.      03  FICPAI         PIC X(20).
    20.  WORKING-STORAGE SECTION.
    21.  01  ESTILO         PIC S9(5) COMP-5.
    22.  01  RETORNO            PIC S9(5) COMP-5.
    23.  01  LIN                PIC  9(9) COMP-5.
    24.  01  STFIC          PIC XX.
    25.  PROCEDURE       DIVISION.
    26. *
    27.  INICIO.
    28.      OPEN I-O FICHERO.
    29.      INITIALIZE REG_FIC.
    30.  
    31.      INVOKE CmExcel1 "OpenBook"    *> <------ Abrimos la Hoja de cálculo
    32.             USING "Ruta_y_Nombre_Mi_Fichero-Excel.xls"
    33.                   1                *> <------ Aquí el número de hoja que queremos abrir
    34.             RETURNING RETORNO
    35.      END-INVOKE.
    36.  
    37.  
    38.      IF RETORNO NOT = 0
    39.         ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
    40.         INVOKE POW-SELF "DisplayMessage"
    41.                USING "*Error: No exsite la hoja de cálculo ..."
    42.                      "ERROR"
    43.                      ESTILO
    44.         END-INVOKE
    45.         CLOSE FICHERO
    46.         INVOKE POW-SELF "CloseForm"
    47.         EXIT PROGRAM
    48.      END-IF.
    49.  
    50.      MOVE 2 TO LIN.                *> <------ Empezamos en la linea 2, porque suponemos que la 1 contiene el encabezado de las celdas
    51.      PERFORM WITH NO LIMIT
    52.  
    53. *
    54. * Como en PWV, no hay ninguna función, que nos indique el final de los datos en una hoja de cálculo
    55. * vamos a suponer que si la celda nnn:1, vale 0 o está en blanco, hemos llegado al final de la hoja
    56. *
    57. * y empezamos a traspasar los datos, leemos las celdas, y las pasamos directamente a los campos del
    58. * fichero que a continuación grabaremos
    59. *
    60.              MOVE "Numeric" (LIN 1) OF CmExcel1 TO FICCP
    61.  
    62.              IF FICCP = 0
    63.                 EXIT PERFORM
    64.              END-IF
    65.  
    66.              MOVE "Text"    (LIN 2) OF CmExcel1 TO FICPOB
    67.              MOVE "Text"    (LIN 3) OF CmExcel1 TO FICPRO
    68.              MOVE "Text"    (LIN 4) OF CmExcel1 TO FICPAI
    69.  
    70.              WRITE REG_FIC         *> <----- Grabamos los datos en el fichero
    71.                    INVALID KEY     *> <----- Si da error, los regrabamos, por si acaso
    72.                            REWRITE REG_FIC
    73.                                    INVALID KEY     *> Si da error, informamos del número de FILE-STATUS
    74.                                            ADD POW-DMICONERROR POW-DMOK GIVING ESTILO
    75.                                            INVOKE POW-SELF "DisplayMessage"
    76.                                                   USING "Error al Grabar ..."
    77.                                                         STFIC
    78.                                                         ESTILO
    79.                                            END-INVOKE
    80.                            END-REWRITE
    81.              END-WRITE
    82.  
    83.              ADD 1 TO LIN
    84.  
    85.      END-PERFORM.
    86.  
    87.      ADD POW-DMICONINFORMATION POW-DMOK GIVING ESTILO.
    88.  
    89.      INVOKE POW-SELF "DisplayMessage"
    90.             USING "Fin del traspaso ..."
    91.                   " ¡ Atención ... !"
    92.                   ESTILO
    93.      END-INVOKE.
    94.  
    95.      INVOKE CmExcel1 "CloseBook".
    96.      CLOSE FICHERO.

    En éste caso, cuando llegue a la línea 17 de la hoja de cálculo, el programa terminará.

    Un saludo.-
    Imagem Anexada Imagem Anexada

    0 Not allowed!

  2. #32
      Junior
    S

    Registrado
    febrero de 2015
    Ubicación
    Esplugues De Llobregat (b
    Edad
    80
    Mensajes
    78
    Última visita
    08.02.2024

    Agradecimientos
     
    Recibidos
    18
    Enviados
    53

    Citaciones y menciones
     
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    11

    Predeterminado

    Buenas tardes Josber: He modificado los campos correspondientes de acuerdo con los ficheros, he compilado y no detecta errores, pero al iniciar el programa y presionar el BT de realizar el traspaso, me da un solo error
    " The EXCEL Open command cannot be executed"
    . deduzco que se trata de una sola instrucción
    COBOL Código:
    1.  
    2.  INVOKE CmExcel1 "OpenBook"    *> <------ Abrimos la Hoja de cálculo
    3.              USING "C:\ESCRITORIO\2852.XLS"
    4. *            USING "Ruta_y_Nombre_Mi_Fichero-Excel.xls"
    5.                   1                *> <------ Aquí el número de hoja que queremos abrir
    6.             RETURNING RETORNO
    7.      END-INVOKE.

    Lo adjunto porque a mi me parece correcto, pero tal vez no lo es, espero impaciente tus indicaciones. Muchas gracias.

    0 Not allowed!

  3. #33
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    796
    Última visita
    Ayer a las 12:00

    Agradecimientos
     
    Recibidos
    440
    Enviados
    362

    Citaciones y menciones
     
    Mentioned
    77 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    13 Post(s)
    Poder de Reputación
    37
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    Sí, es una sola instrucción. No lo sé seguro @Socavi, porque yo lo tengo siempre instalado pero, creo que tienes que tener instaladas las librerías de Excel, o sea, si no el paquete de Office, sí al menos lo que era el antiguo visor de Excel, no sé seguro si es así, a ver si @Kuk @Nitzer o alguien un poco más versado, puede aclararlo.

    Un salu2.-

    0 Not allowed!

  4. #34
      Junior
    S

    Registrado
    febrero de 2015
    Ubicación
    Esplugues De Llobregat (b
    Edad
    80
    Mensajes
    78
    Última visita
    08.02.2024

    Agradecimientos
     
    Recibidos
    18
    Enviados
    53

    Citaciones y menciones
     
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    11

    Predeterminado

    tengo el paquete de Office, bueno haber si podemos solucionrlo.

    0 Not allowed!

  5. #35
      Senior
    Avatar de fastpho

    Registrado
    diciembre de 2016
    Ubicación
    Mendoza
    Edad
    53
    Mensajes
    326
    Última visita
    18.04.2024

    Agradecimientos
     
    Recibidos
    226
    Enviados
    209

    Citaciones y menciones
     
    Mentioned
    49 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    15 Post(s)
    Poder de Reputación
    21
    Innovación / Point Value: 0 Concurso: Primer puesto / Point Value: 0

    Predeterminado

    Cita Iniciado por Socavi Ver Mensaje
    Buenas tardes Josber: He modificado los campos correspondientes de acuerdo con los ficheros, he compilado y no detecta errores, pero al iniciar el programa y presionar el BT de realizar el traspaso, me da un solo error
    " The EXCEL Open command cannot be executed". deduzco que se trata de una sola instrucción
    COBOL Código:
    1.  
    2.  INVOKE CmExcel1 "OpenBook"    *> <------ Abrimos la Hoja de cálculo
    3.              USING "C:\ESCRITORIO\2852.XLS"
    4. *            USING "Ruta_y_Nombre_Mi_Fichero-Excel.xls"
    5.                   1                *> <------ Aquí el número de hoja que queremos abrir
    6.             RETURNING RETORNO
    7.      END-INVOKE.

    Lo adjunto porque a mi me parece correcto, pero tal vez no lo es, espero impaciente tus indicaciones. Muchas gracias.
    Hola @Socavi seguramente de error por que no existe la carpeta o directorio en tu disco duro C:\ESCRITORIO\...
    Si queres hacer referencia a un archivo que esta ubicado en el
    CODE Código:
    1. escritorio
    de Windows esta mal la direccion y dara el error
    CODE Código:
    1. The EXCEL Open command cannot be executed
    Si es asi genera un directorio o carpeta con algun nombre Eje : "Datos" y copia el archivo en la carpeta y las lineas serian
    COBOL Código:
    1.     INVOKE CmExcel1 "OpenBook"    *> <------ Abrimos la Hoja de cálculo
    2.              USING "C:\Datos\2852.XLS"
    3.                   1                *> <------ Aquí el número de hoja que queremos abrir
    4.             RETURNING RETORNO
    5.      END-INVOKE.

    Esto debe funcionar
    Saludos...

    0 Not allowed!

  6. #36
      Junior
    S

    Registrado
    febrero de 2015
    Ubicación
    Esplugues De Llobregat (b
    Edad
    80
    Mensajes
    78
    Última visita
    08.02.2024

    Agradecimientos
     
    Recibidos
    18
    Enviados
    53

    Citaciones y menciones
     
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    11

    Predeterminado

    Muchas gracias fastpho, siguiendo tu sugerencia, he abierto la carpeta DATOS y en esta ocasión el programa ha respondido con "fin del traspaso" perfecto !!!

    0 Not allowed!

  7. #37
      Junior
    S

    Registrado
    febrero de 2015
    Ubicación
    Esplugues De Llobregat (b
    Edad
    80
    Mensajes
    78
    Última visita
    08.02.2024

    Agradecimientos
     
    Recibidos
    18
    Enviados
    53

    Citaciones y menciones
     
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    11

    Predeterminado

    Pero la sorpresa ha sido grande pues me he dado cuenta de que he sido muy optimista ya que a pesar de haber salido el letrero de que se habia realizado el traspaso, no era cierto, unicamente a localizado el fichero, sin haber traspasado ningún dato, es decir que hemos dado un pasito, pero lo mas esencial que serían pasar los datos del Excel al programa, no se ha realizado.

    Desde ese momento estoy intentando encontrar el motivo por el cual no se realiza la funcion deseada y solicito de nuevo ayuda al colega que me la pueda prestar. Saludos cordiales.-

    0 Not allowed!

  8. #38
      Super Moderador
    Avatar de Josber

    Registrado
    febrero de 2015
    Ubicación
    Alicante
    Mensajes
    796
    Última visita
    Ayer a las 12:00

    Agradecimientos
     
    Recibidos
    440
    Enviados
    362

    Citaciones y menciones
     
    Mentioned
    77 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    13 Post(s)
    Poder de Reputación
    37
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Socavi, si no es muy grande la hoja de cálculo, quiero decir, si son menos de 100 ó 200 registros, pon después del
    COBOL Código:
    1. ADD 1 TO LIN
    un
    COBOL Código:
    1. DISPLAY STFIC
    o como se llame el FILE-TATUS de tu fichero a ver que te pone, si no es 00, haces una captura de pantalla y la pasas por aquí, que veamos qué número es para saber que pasa

    Un salu2.-

    - - - Updated - - -

    @Socavi, si no es muy grande la hoja de cálculo, quiero decir, si son menos de 100 ó 200 registros, pon después del
    COBOL Código:
    1. ADD 1 TO LIN
    un
    COBOL Código:
    1. DISPLAY STFIC
    o como se llame el FILE-TATUS de tu fichero a ver que te pone, si no es 00, haces una captura de pantalla y la pasas por aquí, que veamos qué número es para saber que pasa

    Un salu2.-

    0 Not allowed!

  9. #39
      Junior
    S

    Registrado
    febrero de 2015
    Ubicación
    Esplugues De Llobregat (b
    Edad
    80
    Mensajes
    78
    Última visita
    08.02.2024

    Agradecimientos
     
    Recibidos
    18
    Enviados
    53

    Citaciones y menciones
     
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    11

    Predeterminado

    Muchas gracias por vuestra ayuda, sin vuestras indicaciones no hubiera podido culminar con éxito mi objetivo.

    Ahora me queda la tarea de ir pasando datos, que confieso la satisfacción que produce comprobar que se realizan con éxito. Muchas grascias!!!

    0 Not allowed!

Página 4 de 4 PrimerPrimer 1 2 3 4

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Información] Traspaso de Excel a ListView
    Por Socavi en el foro Fujitsu COBOL
    Respuestas: 16
    Último Mensaje: 07.04.2020, 19:39
  2. [Sintaxis] Modificar altura de una fila en CmTable
    Por Begoguay en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 6
    Último Mensaje: 29.05.2019, 20:00
  3. [Sintaxis] Programación CmTable
    Por jmeza en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 6
    Último Mensaje: 13.12.2018, 13:51
  4. [Sintaxis] Destacar una celda en un Cmtable
    Por Breew en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 3
    Último Mensaje: 14.09.2017, 23:20
  5. [Aporte] Crear un ListView
    Por Kuk en el foro Cocina PowerCOBOL V3L10
    Respuestas: 1
    Último Mensaje: 19.12.2015, 21:10

Etiquetas para este Tema

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •