No Clipper era Assim e na Minigui?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Ricardo Mauricio
Usuário Nível 1
Usuário Nível 1
Mensagens: 17
Registrado em: 24 Nov 2009 09:09
Localização: Londrina

No Clipper era Assim e na Minigui?

Mensagem por Ricardo Mauricio »

Ola Gente
Depois de muito ler a respeito de Harbour e da Minigui decidi então tentar migrar alguns de meus aplicativos, mas é claro que no decorrer do percurso surgiu algumas duvidas, então estou aqui para pedir a ajuda de vcs colegas.

Bem Antes no clipper guando eu queiria colocar o nome do meu cliente na tela era assim.

Código: Selecionar todos

*------------------------------------------------------------------------------*
 LOCAL bMostra     := { || DEVPOS( 4,23 ), DEVOUT( LEFT(Cliente->NOME,40), 'N/W' ) }

  mHide(); EVAL( bTela ); mShow()
  
    @  4,15 GET nCodigo  PICTURE '99999-9'COLOR 'N/W,W+/B,,,W+/B';
                         VALID( Contrato->(DBSEEK(nCodigo)), IF(Contrato->(!FOUND()), ALERTA('NAO CADASTRADO,           VERIFIQUE',{'Pressione ENTER'}),EVAL(bMostra)),Contrato->(FOUND())) 
    READ
*------------------------------------------------------------------------------*

E agora com a Minigui como é que eu posso fazer para colocar na tela o nome do cliente ja que esta amarrado en outro DBF ?

STATIC PROCEDURE Nuevo()
*------------------------------------------------------------------------------*
    DEFINE WINDOW Pricipal      ;
           AT 0,0                         ;
           WIDTH 800          	      ;
	   HEIGHT 600       	     ;
	   TITLE 'Cadastro'           ;
	   MODAL   			;
	   NOSIZE CURSOR NIL     ;
	   FONT 'ARIAL' SIZE 12

        @  10,  10 FRAME FRAME_1 WIDTH 780 HEIGHT 550

        @  20,  23 LABEL LABEL_1 VALUE 'Cod. do Cliente:' WIDTH  150 BOLD
        @  20, 150 TEXTBOX nCodido WIDTH 75 NUMERIC MAXLENGTH 6 ON ENTER ( Cadastro->(DBSEEK(Vist_Nova.nCodigo.Value)), IF(Cadastro->(!FOUND()), MsgExclamation('Não Encontrado'),cNome := Cliente->NOME),Cadastro->(FOUND()))

        @  20, 323 LABEL LABEL_2 VALUE cNome WIDTH  150 BOLD

    END WINDOW

    CENTER WINDOW Principal
    ACTIVATE WINDOW Principal

RETURN
Bem assim eu consigo pelo menos entrar no DBF e achar o nome do cliente so não sei como eu posso retornar e colocar o nome na tela novamente. Ja quebrei a cabeça. :%

Sei que para alguns de vcs deve ser coisa simples para pra mim que to começando aiaiai uiuiui



---
Nota da Moderação (Maligno):
A presente mensagem foi editada para a inserção das tags de indentação de código. Se ler o código alheio já é uma coisa extremamente aborrecida e difícil, sem a indentação fica muito pior. Indentando, pode-se notar agora, melhora muito. Portanto, por favor, futuramente, quando for postar código e/ou estruturas e/ou scripts, mesmo que em menor tamanho, use essas tags de identação. Aliás, isso já incentiva um pouco mais pessoas a ler o código e, assim, crescem suas chances de ter seu problema resolvido. Ou seja, você também ganha.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: No Clipper era Assim e na Minigui?

Mensagem por Toledo »

Tenta assim:

Principal.cNome.value := Cliente->NOME

"Principal" é o nome da janela (Window) onde a label "cNome" está.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Ricardo Mauricio
Usuário Nível 1
Usuário Nível 1
Mensagens: 17
Registrado em: 24 Nov 2009 09:09
Localização: Londrina

Re: No Clipper era Assim e na Minigui?

Mensagem por Ricardo Mauricio »

Obrigado caro colega

Foi so mudar e pronto

@ 20, 150 TEXTBOX nCod_Imo WIDTH 75 NUMERIC MAXLENGTH 6 ON LOSTFOCUS ( Cadastro->(DBSEEK(Vist_Nova.nCodigo.Value)), IF(Imovel->(!FOUND()), MsgExclamation('Não Encontrado'),Vist_Nova.Label_2.Value := Cliente->NOME),Cadastro->(FOUND()))

@ 20, 250 LABEL LABEL_2 FONT 'ARIAL' SIZE 12 BOLD WIDTH 230 FONTCOLOR {255,0,0}

Agora ta uma beleza
Muito Obrigado
Ricardo Mauricio
Usuário Nível 1
Usuário Nível 1
Mensagens: 17
Registrado em: 24 Nov 2009 09:09
Localização: Londrina

Re: No Clipper era Assim e na Minigui?

Mensagem por Ricardo Mauricio »

Caro Colega
Quero me desculpar pelo meu importunio, mas que falta faz um manual em portugues detalhado.
Apesar de achar o Projeto HMG do Roberto Lopes Otimo, poderi vir com um manual em portugues. ou uns exemplos melhores. ja que não veem aqui estou.

Agora apareceu outra duvida para variar.

Antes no clipper quando eu queria dentro de um browse achar os itens eu usando a primeira letra e o browse ia para todos os itens que começavam com a letra que eu queria. Era uma beleza.

Código: Selecionar todos

CASE UPPER( CHR( nTecla ) ) $ 'ABCDEFGHIJLMNOPQRSTUVWXYZ0123456789'
            DBSEEK( UPPER( CHR( nTecla ) ) )
            IF FOUND()
             Estabilize( oTab )
            ELSE
             DBGOTOP(); oTab:REFRESHALL()
             ALERTA( 'Busca Finalizada, nao ha Itens' )
            ENDIF
e agora o que eu uso neste Define Browse da minigui.

Código: Selecionar todos

        @ 156,100 BROWSE Browse_1		 ;
	  	  WIDTH 200  		         ;
		  HEIGHT 210 		         ;
		  HEADERS { 'Comodos' }          ;
		  WIDTHS { 200 }		 ;
                  WORKAREA Comodos	         ;
		  FIELDS { 'Comodos->COMODO' }   ;
                  ON CHANGE  Vist_Nova.Control_1.Value := Comodos->COMODO ;
                  ON DBLCLICK (	Vist_Nova.cComodo.Value:= Comodos->COMODO, If(!BloquearRegistro(),Vist_Nova.Browse_2.SetFocus,Nil) )

alias se alguem tiver um manual melhor para me fornecer eu agradeceria.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: No Clipper era Assim e na Minigui?

Mensagem por Toledo »

Ricardo, dê uma olhada no exemplo que está na mensagem abaixo:

https://pctoledo.org/forum/viewto ... 528#p13528

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Ricardo Mauricio
Usuário Nível 1
Usuário Nível 1
Mensagens: 17
Registrado em: 24 Nov 2009 09:09
Localização: Londrina

Re: No Clipper era Assim e na Minigui?

Mensagem por Ricardo Mauricio »

Colega Toledo

A Dica que vc deu é otima, tenho certeza que eu a usarei em outro modulo do meu sistema. Obrigado

Mas o que eu mesmo queria é procurar o item dentro do browse sem ter que usar um TextBox.

Apenas teclar uma letra e o browse ir para os item que começam qua a letra que teclei sem usar (Enter ou Mouse), como o meu sistema em clipper faz.

Desde ja agradeço todos
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: No Clipper era Assim e na Minigui?

Mensagem por rochinha »

Amiguinho,

Force o foco para ficar no TextBox e esconda-o da vista do usuário usando algum parametro HIDE do controle.

Como não acompanho a MiniGUI não sei como funciona o controle Browse nela, mas analise o código do mesmo e verifique a estrutura de controle de eventos de teclado, como setas e coloque mais um IF/CASE para verificar se teclas com letras estão sendo pressionadas.

Código: Selecionar todos

...
   if Asc(nTecla) >= 65 .and Asc(nTecla) <= 127
      ... // rotina de pesquisa
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder