Ver Mensaje Individual
  #13
Antiguo 11 de junio de 2015, 23:02
Breew
Patrocinador del Foro
Última Actividad 09.05.2022 07:47
Posts Posts: 125
Likes enviados Enviados: 104
Likes recibidos Recibidos: 8

Hola.

He seguido tus instrucciones y he salvado el error, pero no me funciona, no encuentro el fallo.
Quizas no sepa bien como actua.
Mi intencion es que haga la seleccion por fechas , le indico una fecha minima y quisiera que se situara en ella. A partir de ella , me hiciera un avance al siguiente registro que cumpliera el mismo requisito.

Código COBOL:
  1.  
  2.  ENVIRONMENT     DIVISION.
  3.  DATA            DIVISION.
  4.  WORKING-STORAGE SECTION.
  5.  01  wl-codigo  pic x(010).
  6.  01  wl-condi   pic x(050).
  7.  01  FECHA.
  8.       02 AÑO        PIC X(4).
  9.       02 MES        PIC X(2).
  10.       02 DIA        PIC X(2).
  11.  01  FECHA-2       PIC X(10).
  12.  
  13.  PROCEDURE       DIVISION.
  14.      move spaces to wl-condi.
  15. *     move "Text" OF Cm-FECHA2 TO FECHA.
  16. *             STRING AÑO "/" MES "/" DIA DELIMITED BY SIZE
  17. *                into FECHA-2.
  18. *              MOVE FECHA-2 TO "Text" OF Cm-FECHA3.
  19. *     MOVE FECHA-2 TO WL-CODIGO.
  20. *     move wl-codigo  TO "Text" OF Cm-FECHA3.
  21. *     string "FECHA  >= '"      DELIMITED BY SIZE
  22. *             WL-CODIGO       DELIMITED BY SIZE
  23. *            "'"              DELIMITED BY SIZE
  24. *            into wl-condi.
  25.  
  26. *  aqui le meto la fecha a la fuerza para ver si chuta
  27.        move "FECHA > 2014/08/30" to wl-condi.
  28. *     end-string
  29.  
  30.      move SPACES   to "Condition" OF CmDb1
  31.      move wl-condi to "Condition" OF CmDb1    
  32.      
  33.      INVOKE CmDb1 "SelectRecords" RETURNING ReturnValue
  34.      if ReturnValue < zeros
  35.         INVOKE pow-self "DisplayMessage" USING "Atencion" "Codigo No Existe" 0
  36.                exit program.
  37.      INVOKE CmDb1 "ReadNextRecord" RETURNING ReturnValue
  38.      if ReturnValue = 1
  39.         move "FECHA"        of CmDb1 to "Text" OF Cm-FECHA
  40.         move "CLICODIGO"    of CmDb1 to "Text" OF Cm-Clicodigo
  41.         move "NOMBRE"       of CmDb1 to "Text" OF Cm-Nombre
  42.         move "TOTAL_FRA"    of CmDb1 to "Text" OF Cm-Total_fra
  43.         move "N_FACTURA"    of CmDb1 to "Text" OF Cm-n_factura
  44.         ELSE DISPLAY RETURNVALUE
  45.      end-if        

Se posiciona en una fecha erronea :-¿?
Y el avance de registro no funciona.

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  wl-codigo  pic x(010).
  5.  01  wl-condi   pic x(050).
  6.  PROCEDURE       DIVISION.
  7.  
  8.      INVOKE CmDb1 "ReadNextRecord" RETURNING ReturnValue
  9.      if ReturnValue = 1
  10.         move "FECHA"        of CmDb1 to "Text" OF Cm-FECHA
  11.         move "CLICODIGO"    of CmDb1 to "Text" OF Cm-Clicodigo
  12.         move "NOMBRE"       of CmDb1 to "Text" OF Cm-Nombre
  13.         move "TOTAL_FRA"    of CmDb1 to "Text" OF Cm-Total_fra
  14.         move "N_FACTURA"    of CmDb1 to "Text" OF Cm-n_factura
  15.      end-if    
Citación del post de Kuk Ver Mensaje
Breew, la propiedad "Text" en un CmText obtiene valor sobre 8 en numérico, no coge los guiones. Si en la tabla, el cahmpo de la fecha lo tienes definido como DATE, no va a funcionar. Porque, que to sepa, el tipo DATE en una tabla siempre lleva separadores, depende del formato. Por ejemplo el formato ISO es AAAA-MM-DD. Si le pones barras "/", va a dar error de formato.

Dicho esto, revisa el formato definido en la tabla. Y sea como sea que muestres las fechas en CmText, con STRING construye el formato de fecha esperado por la BBDD. Así no te dará error.
Breew is offline   Responder Con Cita