/******************** STATEMENTS********************************** ** ** DEFINE TEMP-TABLE nome-temp-table ** E uma tabela volatil e que so existira ** em tempo de processamento, entretanto ** e superior ao antigo DEF WORKFILE por ** que realiza swap no disco rigido, tor- ** nando sua capacidade de armazenamento ** de dados ilimitada. ** ** FIELD (DEFINE TEMP-TABLE...) ** Serve para definir cada um dos campos ** da tabela volatil. ** ** INDEX nome-index IS PRIMARY (DEFINE TEMP-TABLE...) ** Faz parte da sintaxe da definicao da ** TEMP-TABLE e sua utilidade e definir ** os indices. ** ** VALIDATE(situacao verdade, "mensagem de erro") ** E uma funcao que se destina a validar ** uma determinada expressao e retornar ** uma mensagem caso a expressao nao ** seja igual a true. ** ** CAN-DO("substrings aceitas", string-a-ser-testada) ** Verifica em uma string se compoe pelo ** menos uma das substrings listadas. ** ** **********************************************************************/ Código: DEF VAR op-rel AS CHAR FORMAT "X(1)" INITIAL "1". DEFINE TEMP-TABLE view-cust-order FIELD tt-cust-num LIKE customer.cust-num LABEL "Codigo" FIELD tt-cust-name LIKE customer.name LABEL "Nome" FIELD tt-cust-bal LIKE customer.balance LABEL "Balance" FIELD tt-order LIKE order.order-num LABEL "Pedidos" INDEX cod-cli IS PRIMARY tt-cust-num ASCENDING INDEX cust-name tt-cust-name. FOR EACH customer: FOR EACH order OF customer: CREATE view-cust-order. ASSIGN tt-cust-num = customer.cust-num tt-cust-name = customer.name tt-cust-bal = customer.balance tt-order = order.order-num. END. END. UPDATE "1 - Pedidos do Cliente" SKIP(1) "2 - Clientes" SKIP(1) op-rel LABEL "Opcao" VALIDATE(CAN-DO("1,2", OP-REL) /* op-rel = "1" or op-rel = "2" */, "Opcao invalida") WITH CENTERED SIDE-LABEL ROW 4 TITLE "Escolha o Relatorio:". HIDE ALL. IF op-rel = "1" THEN FOR EACH view-cust-order BREAK BY view-cust-order.tt-cust-num: IF FIRST-OF(tt-cust-num) THEN DISPLAY view-cust-order.tt-cust-num view-cust-order.tt-cust-name WITH CENTERED. DISPLAY tt-order. END. ELSE FOR EACH view-cust-order BREAK BY view-cust-order.tt-cust-name: IF FIRST-OF(view-cust-order.tt-cust-name) THEN DISP view-cust-order.tt-cust-name WITH CENTERED. END.
Não. Temp-table é uma tabela temporária em disco. Work-table, que antes era chamada de workfile, é uma tabela temporaria em memória.
Tudo bem me expressei mal... a Progress pediu para parar de utilizar workfile e utilizar temp-table. Qualquer dúvida veja no ABL Handbook.