Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina PowerCOBOL (https://www.cobolforo.es/forumdisplay.php?f=24)
-   -   [PowerCOBOL v3] Um Cobol diferente (https://www.cobolforo.es/showthread.php?t=326)

Eslopes 12 de febrero de 2016 02:01

Um Cobol diferente
 
Olá,

eu estava vendo uma revista muito antiga que anunciava um produto para o Apple ][, um montador de listas. Uma espécie primitiva de banco de dados. Funcionava assim:

Cria-se uma nova lista
Adiciona-se colunas de tipos diversos (string, data, numero) nesta lista
Permite-se criar entrada de dados, consultas e relatórios

Pensei...dá para fazer em Cobol

Código COBOL:
  1. fd fileList.
  2. 01 recordList.
  3.      03 listID         pic 9(12).
  4.      03 listName    pic x(256).
  5.  
  6. fd stringType.
  7. 01stringRecord.
  8.     03 stringID        pic 9(12).
  9.     03 stringValue    pic x(256).
  10.     03 stringSize     pic 9(03).
  11.  
  12. fd dateType.
  13. 01 dateTimeRecord.
  14.      03 dateID         pic 9(12).
  15.      03 dateValue    pic 9(08).
  16.      03 timeValue.
  17.           05 hourValue pic 99.
  18.           05 minuteValue pic 99.
  19.           05 secondValue pic 99.
  20.           05 milisecondValue pic 9(04).
  21.  
  22. fd listRow.
  23. 01 recordRow.
  24.      03 rowID          pic 9(12).
  25.      03 listID           pic 9(12).
  26.  
  27. fd rowColumns.
  28. 01 recordRowColumns.
  29.     03 recordRowColumnKEY.
  30.           05 rowID           pic 9(12).
  31.           05 columnID      pic 9(12).
  32.      03 columnName pic x(64).
  33.      03 columnType   pic x.    *> (I)nteger, (S)tring, (D)ateTime, (C)urrency etc
  34.      03 columnOrder pic 9(03).

Com a estrutura acima poderíamos criar quantas listas quiséssemos. Cada lista poderia ter quantas colunas quiséssemos e na ordem que quiséssemos.

Poderíamos criar índices para cada coluna:

Código COBOL:
  1. fd indexes.
  2. 01 recordIndex.
  3.      03 indexID          pic 9(12).
  4.      03 indexName     pic x(64).
  5.  
  6. fd indexedColumn.
  7. 01 indexedColumnRecord.
  8.      03 indexedColumnID pic 9(12).
  9.      03 rowID                  pic 9(12).
  10.      03 columnID             pic 9(12).
  11.      03 recordRowColumnKEY.
  12.           05 rowID           pic 9(12).
  13.           05 columnID      pic 9(12).
  14.      03 indexValue         pic x(256). *> alternaste key muito ineficiente, mas funciona.

Para a parte do formulário dinâmico, o exemplo da progress bar em PowerCOBOL 3.0 pode ser adaptado para criar um formulário inteiro. Imaginem a possibilidade de se criar toda a entrada de dados num único dia, ao invés de gastar semanas.

Consultas e relatórios também seriam fáceis de serem criados.

Acho que vou gastar algum tempo nisto. Se funcionar a contento, publico aqui no foro.

Se näo conseguir tempo para criar este exemplo, pelo menos a idéia está lançada :)

Saludos, Emerson

Kuk 20 de octubre de 2021 12:59

@Eslopes, has podido completar esto al final?

Fito 20 de octubre de 2021 16:35

holaaa:

Muy interesante el tema.

Saludos.

Fito...

Kuk 20 de octubre de 2021 20:18

@Fito, nuestro amigo @Eslopes es un verdadero maestro la verdad. La de cosas que ha aportado, fíjate en la parte de Cobol OO Object-Oriented COBOL - COBOL Foro

Los ejemplos que he puesto son de él :bien::beber::hi:

CKTECH 24 de octubre de 2021 21:29

Se ve interesante . Hay que probarlo.


La franja horaria es GMT +2. Ahora son las 14:45.

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