Página 1 de 1

Ajuda com Formularios

Enviado: 27 Jul 2011 07:02
por gilsonpaulo
Ola a todos, estou com uma duvida.

Estou pegando os dados de um browse que esta no form p_grupo e p_subgru.

Código: Selecionar todos

#include <hmg.ch>

Function produto

 
  select 1
  use cadsbg shared alias cadsbg
  set index to indsbg,inddsbg
  set order to 1

  select 2
  use cadgru shared alias cadgru
  set index to indgru,inddgru
  set order to 1

  select 3
  use cadmer shared alias cadmer
  set index to indmer,indred,nommer,ind221
  set order to 1

  select cadmer
  set relation to substr(codmer,1,2) into cadsbg,to substr(codmer,1,4) into cadsbg

  Load Window Produto
  produto_controle_inicial()
  Produto.Center
  Produto.Activate

Return
********************************************************************************
Function produto_controle_inicial
                                      
*  produto.txt_codigo.Value            := transform(cadmer->codmer,'@R AA-99-9999')
*  produto.txt_grupo.Value             := cadgru->desgru
*  produto.txt_subgrupo.Value          := cadsbg->dessbg
*  produto.txt_descricao.Value         := cadmer->desmer
*  produto.txt_complemento.Value       := cadmer->desmer1
*  produto.txt_codigo.Enabled          := .f.
*  produto.txt_grupo.Enabled           := .f.
*  produto.txt_subgrupo.Enabled        := .f.
*  produto.txt_descricao.Enabled       := .f.
*  produto.txt_complemento.Enabled     := .f.

Return  
********************************************************************************
Function produto_controle_habilita

  
Return  
********************************************************************************
Function produto_txt_cod_grupo_onlostfocus

  select cadgru
  go top
  seek produto.txt_cod_grupo.Value
  if !found() .or. empty(produto.txt_cod_grupo.Value) 
    set order to 2
    Declare window p_grupo
    load window p_grupo
    p_grupo.center
    p_grupo.activate
    p_grupo.browse_pgrupo.Setfocus
  endif

Return      
********************************************************************************
Function p_grupo_browse_pgrupo_ondblclick

  cadgru->(dbgoto(p_grupo.browse_pgrupo.Value))
  produto.txt_cod_grupo.Value     :=  codgru
  produto.txt_des_grupo.Value     :=  desgru
  p_grupo.release

Return
********************************************************************************
Function produto_txt_cod_subgrupo_onlostfocus

  select cadsbg
  go top
  set order to 2
  set filter to codsbg = produto.txt_cod_grupo.Value
  declare window p_subgru
  load window p_subgru
  p_subgru.center
  p_subgru.activate
  p_subgru.browse_psubgru.Setfocus
  cadsbg->(dbgoto(p_subgru.browse_psubgru.Value))
  
Return      
********************************************************************************
Function p_subgru_browse_psubgru_ondblclick

  cadsbg->(dbgoto(p_subgru.browse_psubgru.Value))
  produto.txt_cod_subgrupo.Value     :=  codsbg
  produto.txt_des_subgrupo.Value     :=  dessbg
  p_subgru.release
  
Return 
********************************************************************************
Function produto_btn_grupo_sair_action

  close cadgru
  close cadsbg
  close cadmer
  produto.release
  
Return  
********************************************************************************
Os textbox do formulario produtos são preenchido corretamente mas quando dou um release em um dos formularios p_grupo ou p_subgrupo ocorre este erro.

Código: Selecionar todos

Date:27/07/2011 Time: 06:57:37
Error: HMG 3.0.35 (2010.06.20)
Control: browse_pgrupo Of p_grupo Not defined. Program Terminated
Called from DOMETHOD(7440)
Called from PRODUTO_TXT_COD_GRUPO_ONLOSTFOCUS(62)
Called from (b)PRODUTO(38)
Called from _DOCONTROLEVENTPROCEDURE(5262)
Called from EVENTS(1543)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(4903)
Called from DOMETHOD(7366)
Called from PRODUTO(27)
Called from (b)MAIN(16)
Called from _DOCONTROLEVENTPROCEDURE(5262)
Called from EVENTS(1389)
Called from _DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(4853)
Called from DOMETHOD(7366)
Called from MAIN(19) 

Código: Selecionar todos

DEFINE WINDOW TEMPLATE AT 179 , 340 WIDTH 595 HEIGHT 280 VIRTUAL WIDTH Nil VIRTUAL HEIGHT Nil TITLE "Pesquisa de Grupos" ICON NIL MODAL CURSOR NIL ON INIT Nil ON RELEASE Nil ON INTERACTIVECLOSE Nil ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ON SIZE Nil ON PAINT Nil BACKCOLOR Nil ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ON HSCROLLBOX Nil ON VSCROLLBOX Nil

    DEFINE BROWSE browse_pgrupo
        ROW    5
        COL    5
        WIDTH  575
        HEIGHT 235
        VALUE 0
        WIDTHS {60,495}
        HEADERS {'Codigo','descrição'}
        WORKAREA cadgru
        FIELDS {'codgru','desgru'}
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP "Selecione o Grupo"
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONDBLCLICK p_grupo_browse_pgrupo_ondblclick()
        ALLOWEDIT .F.
        ALLOWAPPEND .F.
        ONHEADCLICK Nil
        ALLOWDELETE .F.
        HELPID Nil
        VALID Nil
        VALIDMESSAGES Nil
        LOCK .F.
        VSCROLLBAR .T.
        DYNAMICBACKCOLOR Nil
        DYNAMICFORECOLOR Nil
        INPUTMASK Nil
        FORMAT Nil
        WHEN Nil
        INPUTITEMS Nil
        DISPLAYITEMS Nil
        BACKCOLOR NIL
        FONTCOLOR NIL
        IMAGE Nil
        JUSTIFY Nil
        NOLINES .F.
        READONLYFIELDS Nil
        HEADERIMAGES Nil
    END BROWSE

END WINDOW

Código: Selecionar todos

DEFINE WINDOW TEMPLATE AT 196 , 328 WIDTH 595 HEIGHT 280 VIRTUAL WIDTH Nil VIRTUAL HEIGHT Nil TITLE "Pesquisa de Subgrupos" ICON NIL MODAL CURSOR NIL ON INIT Nil ON RELEASE Nil ON INTERACTIVECLOSE Nil ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ON SIZE Nil ON PAINT Nil BACKCOLOR Nil ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ON HSCROLLBOX Nil ON VSCROLLBOX Nil

    DEFINE BROWSE browse_psubgru
        ROW    5
        COL    5
        WIDTH  575
        HEIGHT 235
        VALUE 0
        WIDTHS {60,495}
        HEADERS {'Codigo','Descricao'}
        WORKAREA cadsbg
        FIELDS {'codsbg','dessbg'}
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP ""
        ONCHANGE Nil
        ONGOTFOCUS Nil
        ONLOSTFOCUS Nil
        FONTBOLD .F.
        FONTITALIC .F.
        FONTUNDERLINE .F.
        FONTSTRIKEOUT .F.
        ONDBLCLICK p_subgru_browse_psubgru_ondblclick()
        ALLOWEDIT .F.
        ALLOWAPPEND .F.
        ONHEADCLICK Nil
        ALLOWDELETE .F.
        HELPID Nil
        VALID Nil
        VALIDMESSAGES Nil
        LOCK .F.
        VSCROLLBAR .T.
        DYNAMICBACKCOLOR Nil
        DYNAMICFORECOLOR Nil
        INPUTMASK Nil
        FORMAT Nil
        WHEN Nil
        INPUTITEMS Nil
        DISPLAYITEMS Nil
        BACKCOLOR NIL
        FONTCOLOR NIL
        IMAGE Nil
        JUSTIFY Nil
        NOLINES .F.
        READONLYFIELDS Nil
        HEADERIMAGES Nil
    END BROWSE

END WINDOW
Desde ja agradeço qualquer ajuda.

Ajuda com Formularios

Enviado: 27 Jul 2011 08:47
por Toledo
Olá Gilson, basta você colocar a linha 62 do seu código (p_grupo.browse_pgrupo.Setfocus) antes de p_grupo.center (linha 60)... e também as linhas 86 (p_subgru.browse_psubgru.Setfocus) e 87 (cadsbg->(dbgoto(p_subgru.browse_psubgru.Value))) antes de p_subgru.center (linha 84).

Abraços,

Ajuda com Formularios

Enviado: 27 Jul 2011 10:28
por gilsonpaulo
Obrigadão Toledo, deu certinho.

Abraços.