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.
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
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