[RESOLVIDO] Problema com lote no recebimento

Discussão em 'EMS , HCM e Totvs 11' iniciado por Rogerio, Maio 10, 2010.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Rogério,

    Não é desta maneira, tem que trabalhar com HANDLES, neste caso ainda vc está acionando o BT-SAV de Salvar, me mande sua rotina, deixa eu ver como ela está e te dar uma dica.
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Eu havia pensando em colocar a criação do lote dentro da trigger do choose do botao que eu estou criando e depois chamar o botao padrao de incluir da datasul. esse codigo tá dentro da UPC.

    Código:
    IF c-objeto = 'b06in367.w' AND p-ind-event = 'initialize' THEN
    DO :
        CREATE BUTTON h-botao
            ASSIGN NAME = "bt-aux":U
                   FRAME = p-wgh-frame
                   WIDTH = 4
                   HEIGHT = 1.25
                   ROW = 8.17
                  /* LABEL = "teste"*/
                   COLUMN = 80.43
                   SENSITIVE = TRUE
                   VISIBLE = TRUE
                   triggers:
                        ON CHOOSE 
                        
                        DO:
                            APPLY 'choose' TO bt-sav IN FRAME f-main.
                            RETURN.
                        END.
                   end triggers.              
    END. 
  3. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Cara estou chamando a UPC no RE2001 e RE2001b assim tá funcionando, consigo colocar o numero do lote e a data de validade, o que naum estou conseguindo fazer agora é chamar o evento choose do bt-sav, eis os codigos... aproveitando como eu faço para carregar imagem up e sensitive no botao que estou criando!!!

    UPC
    Código:
    def input param p-ind-event        as char          no-undo.
    def input param p-ind-object       as char          no-undo.
    def input param p-wgh-object       as handle        no-undo.
    def input param p-wgh-frame        as widget-handle no-undo.
    def input param p-cod-table        as char          no-undo.
    def input param p-row-table        as rowid         no-undo.
    def var c-objeto as char no-undo.
    DEF NEW GLOBAL SHARED VAR p-botao       as widget-handle        no-undo.
    DEF NEW GLOBAL SHARED VAR p-lote       as widget-handle        no-undo.
    DEF NEW GLOBAL SHARED VAR p-data       as widget-handle        no-undo.
    DEF NEW GLOBAL SHARED VAR p-frame       as widget-handle        no-undo.
    
    def var h_frame as widget-handle no-undo.
    def var frame1 as widget-handle no-undo.
    
    DEF VAR h-botao AS WIDGET-HANDLE NO-UNDO.
    assign c-objeto = entry(num-entries(p-wgh-object:private-data, "~/"), p-wgh-object:private-data, "~/").
    
    /* IF p-ind-object = "CONTAINER" OR p-ind-event = 'initialize' OR c-objeto = 'b06in367.w' THEN */
    /* message "EVENTO" p-ind-event skip                                                           */
    /*         "OBJETO" p-ind-object skip                                                          */
    /*         "NOME OBJ" c-objeto skip                                                            */
    /*         "FRAME" p-wgh-frame skip                                                            */
    /*         "TABELA" p-cod-table skip                                                           */
    /*         "ROWID" string(p-row-table) view-as alert-box.                                      */
    
    IF p-ind-object = "CONTAINER" THEN
    DO :
        ASSIGN h_Frame = p-wgh-frame:FIRST-CHILD.
        ASSIGN h_Frame = h_Frame:FIRST-CHILD.
        DO WHILE h_Frame <> ?:
            IF h_frame:TYPE <> "field-group" then
            DO:              
                IF h_frame:NAME = "Panel-Frame" THEN
                DO:
                    ASSIGN frame1 = h_frame:FIRST-CHILD.
                    ASSIGN frame1 = frame1:FIRST-CHILD.
                    DO WHILE Frame1 <> ?:
                        IF frame1:NAME = "bt-sav" THEN
                            ASSIGN p-botao = frame1.
                        ASSIGN p-frame = p-wgh-frame.
                        ASSIGN frame1 = frame1:NEXT-SIBLING.
                    END.
                END.
            END.
            ASSIGN h_Frame = h_Frame:NEXT-SIBLING.
        END.
    END.
    
    
    IF c-objeto = 'b06in367.w' AND p-ind-event = 'before-initialize' THEN
    DO :
    
    
        /*************/
        ASSIGN h_Frame = p-wgh-frame:FIRST-CHILD.
        ASSIGN h_Frame = h_Frame:FIRST-CHILD.
        DO WHILE h_Frame <> ?:
            
            IF h_frame:TYPE = "fill-in" then
            DO:    
                    IF h_frame:NAME = 'c-lote' THEN
                        ASSIGN p-lote = h_frame.
                    IF h_FRAME:NAME = 'da-dt-vali-lote' THEN
                        ASSIGN p-data = h_frame.
                    ASSIGN p-frame = p-wgh-frame.
            END.
            ASSIGN h_Frame = h_Frame:NEXT-SIBLING.
        END.
        /************/
        CREATE BUTTON h-botao
            ASSIGN NAME = "bt-aux":U
                   FRAME = p-wgh-frame
                   WIDTH = 4
                   HEIGHT = 1.25
                   ROW = 8.17
                  /* LABEL = "teste"*/
                   COLUMN = 80.43
                   SENSITIVE = TRUE
                   VISIBLE = TRUE
                   triggers:
                        on choose persistent run teste.p (INPUT p-botao,p-lote,p-data,p-frame).
                   end triggers.            
    END. 
    
    
    
    teste.p
    Código:
    DEF INPUT PARAM p-botao AS WIDGET-HANDLE.
    DEF INPUT PARAM p-lote AS WIDGET-HANDLE.
    DEF INPUT PARAM p-data AS WIDGET-HANDLE.
    DEF INPUT PARAM p-frame AS WIDGET-HANDLE.
    
    p-lote:SCREEN-VALUE = '111'.
    p-data:SCREEN-VALUE = '31/12/2099'.
    
    APPLY 'choose' TO p-botao.
    
  4. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Rogério,

    Neste final de semana eu completo a rotina para você... ok? Hoje estou um pouco agarrado e provavelmente nao vou ter um tempo para faze-lo.
  5. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    OK Eduardo fico no aguardo.
  6. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Exemplo de UPC para RE2001A - Gerar Lote Aleatório

    Rogério,


    Segue em anexo um exemplo de como:

    01) Ao clicar no botão INCLUIR da pasta ESTOQUE sugerir LOTE/DATA VALIDADE quando o ITEM é de Controle de Estoque por LOTE.

    Espero tê-lo ajudado e caso sua empresa precise de Free-Lance estamos aqui para aceitar serviços a serem feitos em horários alternativos (a noite e finais de semana).

    Arquivos Anexados:

Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página