indice com harbour/minigui
Moderador: Moderadores
indice com harbour/minigui
Transferiram minha pergunta para o grupo de harbour, mas eu gostaria de respostas do pessoal da Minigui, pois o problema está em usar a Minigui... em harbour o indice funciona normal.
Criar indices com palavras acentuadas, não ficam na ordem correta.
Já utilizo as linhas abaixo, mas não resolve.
REQUEST HB_CODEPAGE_PT850
HB_SETCODEPAGE( "PT850" )
Já usei também SET CODEPAGE TO PORTUGUESE e nada.
Está faltando algo??
Mauricio
Criar indices com palavras acentuadas, não ficam na ordem correta.
Já utilizo as linhas abaixo, mas não resolve.
REQUEST HB_CODEPAGE_PT850
HB_SETCODEPAGE( "PT850" )
Já usei também SET CODEPAGE TO PORTUGUESE e nada.
Está faltando algo??
Mauricio
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: indice com harbour/minigui
Eu tenho uma pequena agenda de consultas em Minigui e funciona a acentuação normalmente, e uso apenas no inico de minha app as seguintes linhas:
Unica coisa que vc tem que cuidar, são se por exemplo vc pegou alguns DBF com registros que era em clipper e quiz usar os mesmo em Minigui,nesse caso teria que ver se esta gravado como ANSI ou OEM. e fazer as devidas alterações para que funcione de um modo apenas na Minigui.
Código: Selecionar todos
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_SETCODEPAGE( "PT850" )Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: indice com harbour/minigui
Olá Leonardo,
Acho que é por aí que está o problema, veja se vc pode dar mais algumas dicas.
Os dados estão sendo digitados diretamente num programa em Minigui, gravo e atualizo um browse... a ordem não fica correta. Ex:
JOAQUIM
JOSÉ
JOÃO
O (letra o)
RITA
ZULMIRO
Ó (letra O com acento)
Se eu saio para o prompt do Dos e abro o DBF com dbase ou fox, a visualização das letras acentuadas são todas trocadas por simbolos.
Se no próprio dbase/fox eu digito as letras acentuadas no lugar dos simbolos e volto ao programa em Minigui, faço uma nova indexação aí ocorre o seguinte:
A ordem no browse fica correta, mas as letras acentuadas são trocadas por simbolos.
Zoc
Acho que é por aí que está o problema, veja se vc pode dar mais algumas dicas.
Os dados estão sendo digitados diretamente num programa em Minigui, gravo e atualizo um browse... a ordem não fica correta. Ex:
JOAQUIM
JOSÉ
JOÃO
O (letra o)
RITA
ZULMIRO
Ó (letra O com acento)
Se eu saio para o prompt do Dos e abro o DBF com dbase ou fox, a visualização das letras acentuadas são todas trocadas por simbolos.
Se no próprio dbase/fox eu digito as letras acentuadas no lugar dos simbolos e volto ao programa em Minigui, faço uma nova indexação aí ocorre o seguinte:
A ordem no browse fica correta, mas as letras acentuadas são trocadas por simbolos.
Zoc
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: indice com harbour/minigui
Na verdade teria que ver algum comando apra exibir eles da melhor forma possivel, agora não sei como fazer em Minigui, mas em Hwgui podemos colocar um SET apenas em um determinado FORM onde na verdade é definido pelo tido de FONT:
PREPARE FONT oFontBtn NAME "Arial" WIDTH 0 HEIGHT -14 charset 255 // aqui definido como 255
INIT DIALOG oFrm TITLE cTitulo CLIPPER FONT oFontBtn;
AT 0,0;
SIZE GETDESKTOPWIDTH(),GETDESKTOPHEIGHT()-28 ;
ICON oIcon ;
STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER
Você teria que dar uma olhada no help do Minigui, se tem algo parecido para poder definir na font do FORM.
PREPARE FONT oFontBtn NAME "Arial" WIDTH 0 HEIGHT -14 charset 255 // aqui definido como 255
INIT DIALOG oFrm TITLE cTitulo CLIPPER FONT oFontBtn;
AT 0,0;
SIZE GETDESKTOPWIDTH(),GETDESKTOPHEIGHT()-28 ;
ICON oIcon ;
STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER
Você teria que dar uma olhada no help do Minigui, se tem algo parecido para poder definir na font do FORM.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- momente
- Usuário Nível 3

- Mensagens: 496
- Registrado em: 03 Mar 2005 11:53
- Localização: São Carlos-SP
- Contato:
indice com harbour/minigui
Amigos,
Uma maneira que consegui resolver este problema, apesar de achar não ser a melhor para este caso foi a seguinte:
Valeu!
Uma maneira que consegui resolver este problema, apesar de achar não ser a melhor para este caso foi a seguinte:
Código: Selecionar todos
.
.
.
Index On RemoverAcentos(Titular) TAG TAG1
.
.
.
//================================================================//
// Funcao........: Remocao de acentos (formato ANSI)
// Programador...: Marcos Antonio Gambeta
// Contato.......: dicasdeprogramacao@yahoo.com.br
// Website.......: http://dicasprog.codigolivre.org.br
//================================================================//
// Linguagem.....: Harbour/xHarbour
// Bibliotecas...:
// Plataforma....: Windows
//================================================================//
Function RemoverAcentos ( cTexto )
// acento agudo
cTexto := StrTran( cTexto, "á", "a" )
cTexto := StrTran( cTexto, "é", "e" )
cTexto := StrTran( cTexto, "í", "i" )
cTexto := StrTran( cTexto, "ó", "o" )
cTexto := StrTran( cTexto, "ú", "u" )
cTexto := StrTran( cTexto, "Á", "A" )
cTexto := StrTran( cTexto, "É", "E" )
cTexto := StrTran( cTexto, "Í", "I" )
cTexto := StrTran( cTexto, "Ó", "O" )
cTexto := StrTran( cTexto, "Ú", "U" )
// acento circunflexo
cTexto := StrTran( cTexto, "â", "a" )
cTexto := StrTran( cTexto, "ê", "e" )
cTexto := StrTran( cTexto, "î", "i" )
cTexto := StrTran( cTexto, "ô", "o" )
cTexto := StrTran( cTexto, "û", "u" )
cTexto := StrTran( cTexto, "Â", "A" )
cTexto := StrTran( cTexto, "Ê", "E" )
cTexto := StrTran( cTexto, "Î", "I" )
cTexto := StrTran( cTexto, "Ô", "O" )
cTexto := StrTran( cTexto, "Û", "U" )
// til
cTexto := StrTran( cTexto, "ã", "a" )
cTexto := StrTran( cTexto, "õ", "o" )
cTexto := StrTran( cTexto, "Ã", "A" )
cTexto := StrTran( cTexto, "Õ", "O" )
// ce-cedilha
cTexto := StrTran( cTexto, "ç", "c" )
cTexto := StrTran( cTexto, "Ç", "C" )
// trema
cTexto := StrTran( cTexto, "ü", "u" )
cTexto := StrTran( cTexto, "Ü", "U" )
// crase
cTexto := StrTran( cTexto, "à", "a" )
cTexto := StrTran( cTexto, "è", "e" )
cTexto := StrTran( cTexto, "ì", "i" )
cTexto := StrTran( cTexto, "ò", "o" )
cTexto := StrTran( cTexto, "ù", "u" )
cTexto := StrTran( cTexto, "À", "A" )
cTexto := StrTran( cTexto, "È", "E" )
cTexto := StrTran( cTexto, "Ì", "I" )
cTexto := StrTran( cTexto, "Ò", "O" )
cTexto := StrTran( cTexto, "Ù", "U" )
Return cTexto
Valeu!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: indice com harbour/minigui
Rogério até entendo que resolve, mas vai concordar comigo que esse tipo de limitação nos devemos deixar lá com o Clipper neh !!! mas mesmo assim esta valendo tudo que for para contribuir é bem vindo !
Bom final de semana para vc !!!
Bom final de semana para vc !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: indice com harbour/minigui
Mauricio, apesar de você estar usando estes comandos com a MiniGui, na verdade eles são do Harbour, por isto eles podem ser usados com outras libs gráficas (para Harbour), como Fivewin, HwGui, xHGTK, etc. Então, como estes comandos tem como base o Harbour, o seu tópico será movido novamente para a seção [x]Harbour.
Eu tenho um programa desenvolvido em MiniGui, que também estava com este mesmo problema de indexação fora de ordem com palavras com acento. A única forma encontrada foi realmente a utilização de uma função identica a que o Rogério postou ai em cima, na chave de indexação.
Por exemplo:
INDEX ON RemoverAcentos(Nome) TAG Nome TO ALUNOS
Abraços,
Eu tenho um programa desenvolvido em MiniGui, que também estava com este mesmo problema de indexação fora de ordem com palavras com acento. A única forma encontrada foi realmente a utilização de uma função identica a que o Rogério postou ai em cima, na chave de indexação.
Por exemplo:
INDEX ON RemoverAcentos(Nome) TAG Nome TO ALUNOS
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
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
- momente
- Usuário Nível 3

- Mensagens: 496
- Registrado em: 03 Mar 2005 11:53
- Localização: São Carlos-SP
- Contato:
Re: indice com harbour/minigui
Amigo Leonardo,
Eu disse que não era a melhor maneira, concordo plena mente com vc, mas tentei algumas coisas e não deram certo, então, para conseguir resolver rapidamente fiz isto.
Estou acompanhando o tópico para aprender a melhor maneira.
valeu!
Eu disse que não era a melhor maneira, concordo plena mente com vc, mas tentei algumas coisas e não deram certo, então, para conseguir resolver rapidamente fiz isto.
Estou acompanhando o tópico para aprender a melhor maneira.
valeu!
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
