Temp-Table x Handle

517 views
Skip to first unread message

Eduardo Batista Leite

unread,
Mar 27, 2006, 6:57:03 AM3/27/06
to progre...@googlegroups.com
Estou tendo uma dificuldade para desenvolver um programa de EPC onde o tipo/valor repassado para o meu programa é uma temp-table:handle, ou seja:

a) No programa CE0405.I5 é criado um registro na tabela TT-EPC com os seguintes valores:

/* permite ler e validar campos da tt-ge-mov */
create tt-epc.
assign tt-epc.cod-event = "Update-fields"
tt-epc.cod-parameter = "tt-ge-mov(handle)".

&if PROVERSION >= "9" &then
assign tt-epc.val-parameter = string(temp-table tt-ge-mov:handle).
&endif

{include/i-epc201.i "Update-fields"}


b) O meu programa de UOC (epc-ce0403rp.p) necessita ler a tabela tt-ge-mov, acontece que como foi passado um valor para a tt-epc de handle da temp-table, neste programa não tenho idéia de como transformar a tabela no handle passado e conseguir ler os dados.



{include/i-epc200.i epc-re0403rp}

DEF INPUT PARAM p-ind-event AS CHAR NO-UNDO.
DEF INPUT-OUTPUT PARAM TABLE FOR tt-epc.


FIND tt-epc

WHERE tt-epc.cod-parameter = "tt-ge-mov(handle)" NO-ERROR.



DEFINE TEMP-TABLE tt-ge-mov ...

FIELD ....

FIELD....



FOR EACH tt-ge-mov NO-LOCK:



END.

Você saberia dizer-me como fazer esta transformação e assim poder conseguir ler os dados gerados na tabela temporária do ce0403?


Yahoo! Search
Dê uma espiadinha e saiba tudo sobre o Big Brother Brasil.

Jônatas Gardin

unread,
Mar 27, 2006, 12:38:30 PM3/27/06
to Progre...@googlegroups.com
Olá Eduardo
 
Não consigo imaginar como a Datasul poderia pegar essa temp-table de volta mas, para ler a temp-table, é o seguinte:
{include/i-epc200.i epc-re0403rp}

DEF INPUT PARAM p-ind-event AS CHAR NO-UNDO.
DEF INPUT-OUTPUT PARAM TABLE FOR tt-epc.
 
FIND tt-epc
  WHERE tt-epc.cod-parameter = "tt-ge-mov(handle)" NO-ERROR.
 
DEFINE VARIABLE tth AS HANDLE.
DEFINE VARIABLE fld AS HANDLE.
DEFINE VARIABLE qh AS HANDLE.
 
CREATE TEMP-TABLE tth.
tth:CREATE-LIKE (widget-handle(tt-epc.val-parameter).
 
CREATE QUERY qh.
 
qh:SET-BUFFERS(tth:DEFAULT-BUFFER-HANDLE).
qh:QUERY-PREPARE("for each " + tth:NAME ) .
qh:QUERY-OPEN().
 
DEFINE VARIABLE i AS INTEGER    NO-UNDO.
 
REPEAT WITH DOWN:
    qh:GET-NEXT().
    IF qh:QUERY-OFF-END THEN LEAVE.
    DO i = 1 TO  tth:DEFAULT-BUFFER-HANDLE:NUM-FIELDS WITH DOWN:
        fld = tth:DEFAULT-BUFFER-HANDLE:BUFFER-FIELD(i).
        DISPLAY fld:BUFFER-VALUE() FORMAT "X(20)" LABEL "My loop".
    END.
END.
 
qh:QUERY-CLOSE().
tth:DEFAULT-BUFFER-HANDLE:BUFFER-RELEASE().
DELETE OBJECT tth.
DELETE OBJECT qh.
Abraços
 
Jônatas Gardin

Eduardo Batista Leite

unread,
Mar 28, 2006, 8:09:14 AM3/28/06
to Progre...@googlegroups.com
Jônatas,
 
Efetuei as alterações necessárias para adaptar a minha necessidade e foi exatamente isto que eu precisava, muito obrigado pela ajuda.
 
Precisando é so mandar, no que for possível estaremos pronto a ajudar.
 
 
Att.
 
 
Eduardo Leite

Jônatas Gardin <jon...@jonatasgardin.com> escreveu:

Yahoo! Search
Dê uma espiadinha e saiba tudo sobre o Big Brother Brasil.

Jônatas Gardin

unread,
Mar 28, 2006, 8:17:30 AM3/28/06
to Progre...@googlegroups.com
Beleza Eduardo.
 
Neste ponto da UPC você tem alguma necessidade de retornar a temp-table ao Datasul? Ou você só está listando mesmo?
 
Digo isso porque a Datasul teria que prover algum artifício para que essa temp-table fosse alterada pela UPC e depois retornada ao programa principal. Atualmente eu acho que não exista nada parecido com isso para esse tipo de UPC.

Eduardo Batista Leite

unread,
Mar 28, 2006, 9:53:28 AM3/28/06
to Progre...@googlegroups.com
Jônatas,
 
A minha necessidade refere-se somente a pegar os dados da tabela temporária e gerar novas informações, como dividir em Material, MOI, Variáveis, Depreciação e Outros o valor total de uma certa conta, não sendo necessário retornar para o programa da Datasul os valores.
 
Também acredito que ela não deva tratar, onde somente são enviados para validação.
 
Obrigado mais uma vez pela ajuda.

Jônatas Gardin <jon...@jonatasgardin.com> escreveu:

Yahoo! Messenger com voz - Instale agora e faça ligações de graça.
Reply all
Reply to author
Forward
0 new messages