Clipper On Line • Ver Tópico - Novo em Hmg

Novo em Hmg

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Novo em Hmg

Mensagempor marcospereira » 22 Out 2009 15:06

Não sabe? não indique-me samples que só são isso mesmo...exemplos de como iniciar nesta fantástica Hmg! tenho mais de 20 anos em programação, e boa parte delas em clipper, então, sou iniciante apenas em hmg!

1) A Hmg do Roberto Lopez ainda está valendo? ou ela foi descontinuada?
2) a Hmg roda no Windows 7 sem propblemas?
3) Este meu problema ai abaixo é feito com uso de forms e não em GRID ou Browse´s que vejo tanto em Hmg
4) Quase que consigo fazer tudo nela(hmg) apenas uma simples pesquisa como fazemos no clipper, pero, db2..etc..., infelizmente no hmg ainda não achei uma forma. alguem pode ajudar?
---------------------------------------------------------------------------------------------------------------------------------

#include "minigui.ch"

Procedure F_clie()

    SET DATE BRITI
    SET CENTURY ON

    RESTORE FROM SETUP.DAT ADDITIVE
    cTitulo = wMGA_SIST+[ - Cadastro de Clientes]

    DEFINE WINDOW Win_1 ;
        AT 0,0 ;
        WIDTH 800 ;
        HEIGHT 600 ;
        TITLE cTitulo ;
        ICON 'F_MENU.ICO' ;
        MODAL ;
        ON INIT    abrir_CLIENTES() ;
        ON RELEASE Fecha_CLIENTES()

        DEFINE TOOLBAR ToolBar_1 BUTTONSIZE 25,25 FLAT BORDER

            BUTTON NOVO ;
                PICTURE '.\BOTOES\pq_novo.bmp' ;
                TOOLTIP 'Cria Novo Registro' ;
                ACTION NovoCliente( DbGoBottom() , DbSkip(1) , if ( eof() , DbGoBottom() , Nil ) , Refresh() )

            BUTTON APAGA ;
                PICTURE '.\BOTOES\pq_dele.bmp' ;
                TOOLTIP 'Apaga Registro' ;
                ACTION ApagaCliente( Refresh() )

            BUTTON SAVE ;
                PICTURE '.\BOTOES\pq_salv.bmp' ;
                TOOLTIP 'Salvar dados do Registro' ;
                ACTION ( Save() , Refresh() )

            BUTTON UNDO ;
                PICTURE '.\BOTOES\PQ_desf.bmp' ;
                TOOLTIP 'Desfazer Alteracoes' ;
                ACTION ( Refresh() )

            BUTTON PESQUISA ;
                PICTURE '.\BOTOES\pq_pesq.bmp' ;
                TOOLTIP 'Pesquisar' ;
                ACTION PesquiCliente() SEPARATOR

            BUTTON CALCULADORA ;
                PICTURE '.\BOTOES\pq_calc.bmp' ;
                TOOLTIP 'Calculadora' ;
                ACTION ""

            BUTTON CALENDARIO ;
                PICTURE '.\BOTOES\pq_cale.bmp' ;
                TOOLTIP 'Calendario' ;
                ACTION ""

            BUTTON BLOCONOTA ;
                PICTURE '.\BOTOES\pq_npad.bmp' ;
                TOOLTIP 'Bloco de Notas' ;
                ACTION ""

            BUTTON MSWORD ;
                PICTURE '.\BOTOES\pq_word.bmp' ;
                TOOLTIP 'MicroSoft Word' ;
                ACTION ""

            BUTTON MSEXCEL ;
                PICTURE '.\BOTOES\pq_exce.bmp' ;
                TOOLTIP 'MicroSoft Excell' ;
                ACTION "" SEPARATOR

            BUTTON TOP ;
                PICTURE '.\BOTOES\pq_prim.bmp' ;
                TOOLTIP 'Primeiro Registro' ;
                ACTION ( DbGoTop() , Refresh() )

            BUTTON PREVIOUS ;
                PICTURE '.\BOTOES\pq_ante.bmp' ;
                TOOLTIP 'Registro Anterior' ;
                ACTION ( DbSkip(-1) , Refresh() )

            BUTTON NEXT ;
                PICTURE '.\BOTOES\pq_prox.bmp' ;
                TOOLTIP 'Proximo Registro' ;
                ACTION ( DbSkip(1) , if ( eof() , DbGoBottom() , Nil ) , Refresh() )

            BUTTON BOTTOM ;
                PICTURE '.\BOTOES\pq_ulti.bmp' ;
                TOOLTIP 'Ultimo Registro' ;
                ACTION ( DbGoBottom() , Refresh() ) SEPARATOR

            BUTTON AJUDA ;
                PICTURE '.\BOTOES\pq_help.bmp' ;
                TOOLTIP 'Sobre o sistema' ;
                ACTION ""

            BUTTON SAIR ;
                PICTURE '.\BOTOES\pq_sair.bmp' ;
                TOOLTIP 'Sair deste Cadastro' ;
                ACTION Win_1.release

        END TOOLBAR

        DEFINE TAB Tab_1 ;
            AT 50,4 ;
            WIDTH 780 ;
            HEIGHT 500

            PAGE 'Dados Pessoais'
           @ 50, 10 LABEL LABEL_1  VALUE 'Codigo:'

           @ 80, 10 LABEL LABEL_2  VALUE 'Nome'
           @ 80,410 LABEL LABEL_3  VALUE 'Telefone'

           @110, 10 LABEL LABEL_4  VALUE 'Data Nasc:'
           @110,410 LABEL LABEL_5  VALUE 'Casado:'

           @140, 10 LABEL LABEL_6  VALUE 'Endereco:'
           @140,410 LABEL LABEL_7  VALUE 'Bairro:'

           @170, 10 LABEL LABEL_8  VALUE 'Cpf:'
           @170,410 LABEL LABEL_9  VALUE 'RG:'

           @200, 10 LABEL LABEL_10 VALUE 'Profissao:'
           @200,410 LABEL LABEL_11 VALUE 'Fone Prof:'

           @230, 10 LABEL LABEL_12 VALUE 'Observacao:'

           @ 50,120 TEXTBOX TEXT_1;
               FIELD CLIENTES->CODIGO ;
               NUMERIC ;
               READONLY ;
               BACKCOLOR {255,255,0} ;
               MAXLENGTH 10

           @ 80,120 TEXTBOX TEXT_2;
               FIELD CLIENTES->NOME ;
               WIDTH 270 ;
               MAXLENGTH 40

           @ 80,500 TEXTBOX TEXT_3;
               FIELD CLIENTES->TELEFONE ;
               WIDTH 270 ;
               MAXLENGTH 40

                * SEMPRE RETORNA UMA DATA QUE NAO EH A DATA DE NASC.DO CLIENTE
                * SEI QUE TA ERRADO, O FORMATO DE DATA TEM SEMPRE QUE PASSAR
                * PELO DATEPICKER ????
           @ 110,120 DATEPICKER DATE_4 ;
               FIELD CLIENTES->DATANASC

                * NAO VALIDA QUANDO SE CLICA NELE! SOH QUANDO SE TECLA
                * BARRA DE ESPA‡O
           @ 110,500 CHECKBOX CHECK_5 ;
               CAPTION '' ;
               FIELD CLIENTES->CASADO

           @140,120 TEXTBOX TEXT_6;
               FIELD CLIENTES->ENDERECO ;
               WIDTH 270 ;
               MAXLENGTH 40

           @140,500 TEXTBOX TEXT_7;
               FIELD CLIENTES->BAIRRO ;
               WIDTH 270 ;
               MAXLENGTH 40

           @170,120 TEXTBOX TEXT_8 ;
               FIELD CLIENTES->CPF ;
               WIDTH 270 ;
               MAXLENGTH 14

           @170,500 TEXTBOX TEXT_9;
               FIELD CLIENTES->IDENTIDADE ;
               WIDTH 270 ;
               MAXLENGTH 40

           @200,120 TEXTBOX TEXT_10 ;
               FIELD CLIENTES->PROFISSAO ;
               WIDTH 270 ;
               MAXLENGTH 40

           @200,500 TEXTBOX TEXT_11;
               FIELD CLIENTES->FONETRAB ;
               WIDTH 270 ;
               MAXLENGTH 40

           @ 230,120 EDITBOX EDIT_12 ;
               FIELD CLIENTES->OBSERVACAO ;
               WIDTH 280 ;
               HEIGHT 100

            END PAGE

            PAGE 'Parcelas'
           @ 50,50 LABEL Pag2Label_2 VALUE 'Parcelas'
                * quero aqui as parcelas exatamente do cliente em foco
                * para um browse, pq GRID nao funciona a nao ser nos
                * samples, mas, tudo tem que ser feito pelos GRID que
                * sao disponibilizados em samples? se for assim prefiro
                * voltar par ao clipper, tentar no access ou sei la...
                * desisitir da esperan‡osa HMG do Roberto Lopez?
            END PAGE

            PAGE 'Foto'
           @ 50,50 LABEL Pag2Label_3 VALUE 'Foto'
                * obs: campo do arquivo com um tex_box para digitar o nr.
                *      da foto? ou tem como selecionar uma foto pela cam
                *      (nao funciona com oohg o exemplo) e jogar aqui como
                *      sendo um campo do arquivo(ex: como no Access que
                *      tem um campo picture?
            END PAGE

        END TAB

    END WINDOW

    Win_1.Text_1.SetFocus
    CENTER   WINDOW Win_1
    ACTIVATE WINDOW Win_1

Return Nil

*---------------------------------------------------------------------------
* atualiza aba
*---------------------------------------------------------------------------
Procedure Refresh

    Win_1.Text_1.Refresh
    Win_1.Text_2.Refresh
    Win_1.Text_3.Refresh
    Win_1.Date_4.Refresh
    Win_1.Check_5.Refresh
    Win_1.Text_6.Refresh
    Win_1.Text_7.Refresh
    Win_1.Text_8.Refresh
    Win_1.Text_9.Refresh
    Win_1.Text_10.Refresh
    Win_1.Text_11.Refresh
    Win_1.Edit_12.Refresh
    Win_1.Text_1.SetFocus

Return

*---------------------------------------------------------------------------
* salva dados
*---------------------------------------------------------------------------
Procedure Save

    Win_1.Text_1.Save
    Win_1.Text_2.Save
    Win_1.Text_3.Save
    Win_1.Date_4.Save
    Win_1.Check_5.Save
    Win_1.Text_6.Save
    Win_1.Text_7.Save
    Win_1.Text_8.Save
    Win_1.Text_9.Save
    Win_1.Text_10.Save
    Win_1.Text_11.Save
    Win_1.Edit_12.Save

Return

*------------------------------------------------------------------------------------------
* abre tabela
*------------------------------------------------------------------------------------------
Procedure Abrir_CLIENTES
    use CLIENTES alias CLIENTES SHARED NEW
    if !file("clientes1.ntx")
     index on codigo to clientes1
    endif
    if !file("clientes2.ntx")
     index on codigo to clientes2
    endif
    Select Clientes
    set index to clientes1,clientes2
    set order to 1
    set dele on
    go top
Return

*-------------------------------------------------------------------------------------------
* fecha tabela
*------------------------------------------------------------------------------------------
Procedure Fecha_CLIENTES
    USE
Return

*------------------------------------------------------------------------------------------
* inclui novo
*------------------------------------------------------------------------------------------
Procedure NovoCliente
Select Clientes
Clientes->(DbGoBottom())
Clientes->(DbSetOrder(1))
URD = CODIGO+1
if Rlock()
append blank
replace codigo with urd
Endif
Clientes->(DbGoBottom())
Refresh()
Return

*------------------------------------------------------------------------------------------
* apaga
*------------------------------------------------------------------------------------------
Procedure ApagaCliente
If MSGYesNo( "Confirma Exclusao deste Registro??" , cTitulo )
   DELETE
   DbGoTop()
   Refresh()
Endif
Return

*------------------------------------------------------------------------------*
Procedure PesquiCliente
*------------------------------------------------------------------------------*
local xVar := ""

Select Clientes
Clientes->(dbgotop())
Clientes->(DbSetOrder(2))

xvar = Inputbox('Pesquisa','Entre com Nome', xVar)

*if Clientes->(dbseek( Win_1.Text_2.value == xvar, .t. ))
if Clientes->(dbseek( Win_1.Text_2.value == xvar ))

* DA PAU! DIZ QUE O WHILE FOR NAO PODE SER REALIZADO  (TYPE OU ALGO ESTRANHO ... )
*Clientes->(dbSeek(Win_1.Text_2.Value))
*While for Clientes->NOME == xvar .and. !eof()
*end
*go top

* NAO RETORNA NADA e VOLTA PARA O PRIMEIRO REGISTRO
Select Clientes
Clientes->( Win_1.Text_2.Value := Recno() )
Win_1.Text_1.SetFocus

return

endif


Nota de Moderação:
por Maligno: A presente mensagem teve de ser editada para a inclusão das tags de indentação de código. Por favor, sempre que for postar código, utilize essas tags. Ler o código alheio nunca é fácil. Sem a devida indentação, se torna mais difícil ainda.

Nota de Moderação:
por Toledo: Nota da Moderação 2: O presente tópico foi movido da seção "HwGui", uma vez que seu conteúdo diverge do assunto daquela seção
marcospereira
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 22 Out 2009 14:00
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Novo em Hmg (sejam pacientes)

Mensagempor Itamar M. Lins Jr. » 22 Out 2009 20:56

Ola!
Forum errado a HMG não tem muito haver com a HWGUI.
1) A Hmg do Roberto Lopez ainda está valendo? ou ela foi descontinuada?
2) a Hmg roda no Windows 7 sem propblemas?
3) Este meu problema ai abaixo é feito com uso de forms e não em GRID ou Browse´s que vejo tanto em Hmg
4) Quase que consigo fazer tudo nela(hmg) apenas uma simples pesquisa como fazemos no clipper, pero, db2..etc..., infelizmente no hmg ainda não achei uma forma. alguem pode ajudar?

1) Valendo e muito e não foi descontinuada.
2) Provavelmente sim.
3)..
4) no forum oficial vai ter resposta.
Tem esse sitio aqui
http://hmglights.wordpress.com/
Esse aqui é o forum oficial.
http://www.hmgforum.com/

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Re: Novo em Hmg (sejam pacientes)

Mensagempor marcospereira » 23 Out 2009 15:48

obrigado quem respndeu! Realmente, a gente se confunde muito, HMG HWGUI, MING, etc...tudo parece ser tão inovador com os mesmos codigos que veneramos ainda(clipper), mas dificilmente eu vejo em empresas algo de concreto, por isso a necessidade de obter respostas praticas e sinceras, sem modismos exagerados ou pessoas passionais como se fossem católicos ferrenhos e catedráticos
marcospereira
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 4
Data de registro: 22 Out 2009 14:00
Cidade/Estado: Paraná
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Novo em Hmg (sejam pacientes)

Mensagempor Itamar M. Lins Jr. » 23 Out 2009 17:33

mas dificilmente eu vejo em empresas algo de concreto,


Não se deixe enganar, existem várias empresas trabalhando com xBase, inclusive a maior de todas da America Latina TOTVS. Existe muito marketing sobre diversas linguagens, mas o tempo que um programador Fivewin, Hwgui, Minigui resolve diversos tipos de problemas e com muita rapidez o pessoal "os disavisados" trocam de linguagem sem desenvolver nada de concreto.
A Minigui ja esteve muito tempo parada mas está melhorando muito ultimamente porque Roberto Lopez está se dedicando em resolver os problemas a mesma coisa com Hwgui, temos o Luis Basso que está resolvendo muitos problemas...
Quanto ao Harbour, está cheio de novidades. O programador xBase não tem mais que se queixar, o que não falta é opções.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro