Ver Mensaje Individual
  #1
Antiguo 12 de febrero de 2016, 02:01
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 20.09.2026 13:24
Posts Posts: 357
Likes enviados Enviados: 29
Likes recibidos Recibidos: 157

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
Eslopes is offline   Responder Con Cita