Ver Mensaje Individual
  #8
Antiguo 10 de mayo de 2022, 17:58
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Citación del post de Kuk Ver Mensaje
@Joseg,

MainForm -> EDIT PROCEDURE DIVISION -> NEW, renombra en PRC-CALC

Edita y pega esto:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 idx-1        pic 9(4) comp-5.
  5.  01 wsomamodelos pic 9(18) comp-5.
  6.  
  7.  LINKAGE SECTION.
  8.  01  LNK-DATOS.
  9.      05  LNK-INPUT    PIC X(3000).
  10.      05  filler redefines LNK-INPUT.
  11.          10  byte occurs 750 pic 9(8) comp-5.
  12.      05  LNK-OUTPUT   PIC 9(18).
  13.      
  14.  PROCEDURE       DIVISION USING LNK-DATOS.
  15.      
  16.      move 1 to idx-1
  17.      move function current-date(5:12) to LNK-OUTPUT
  18.      
  19.      perform until idx-1 > 750
  20.          add byte(idx-1) to wsomamodelos
  21.  
  22.          add 1 to idx-1
  23.      end-perform
  24.      
  25.      add wsomamodelos to LNK-OUTPUT
  26.      
  27.      display LNK-OUTPUT

Código del botón Nº1:
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  LNK-DATOS.
  5.      05  LNK-INPUT    PIC X(3000).    
  6.      05  LNK-OUTPUT   PIC 9(18).
  7.  
  8.  PROCEDURE       DIVISION.
  9.  
  10.       MOVE "Text" OF CmText1 TO LNK-INPUT
  11.  
  12.       perform 5 times *> PARA TEST RAPIDO
  13.           CALL "PRC-CALC" USING LNK-DATOS
  14.       end-perform
  15.      
  16.       MOVE LNK-OUTPUT TO "Text" OF CmText3  

Código del botón Nº2:
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  
  5.  01  LNK-DATOS.
  6.      05  LNK-INPUT    PIC X(3000).    
  7.      05  LNK-OUTPUT   PIC 9(18).
  8.  
  9.  PROCEDURE       DIVISION.
  10.  
  11.       MOVE "Text" OF CmText2 TO LNK-INPUT
  12.  
  13.       CALL "PRC-CALC" USING LNK-DATOS
  14.      
  15.       MOVE LNK-OUTPUT TO "Text" OF CmText4  
Gracias pela ajuda !!!

Entendo a ideia. Mas não posso usar.
Eu quero mais tarde validar o registo voltando a calcular o valor original tendo por base esta string "121-03-10;121-17-00;121-03-10;121-17-00;121-05-01;", para ver se o registo já existe.

Se a "primary key" não tivesse o limite de apenas 255 bytes (ficheiros ISAM), não tinha este problema. Simplesmente definia como chave única:
Código COBOL:
  1. 01 wmodelosori PIC X(3000).
e tinha o problema resolvido.
Mas como a String pode conter até 3000 bytes tenho que procurar outra solução.
Joseg is offline   Responder Con Cita