Tabela de Cidades e UF

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Tabela de Cidades e UF

Mensagem por asimoes »

Prezados,

Alguém teria alguma tabela de cidade + UF para popular 2 combos da hwgui, um é UF e outro Cidade, com todas as cidades referente a Uf selecionada.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tabela de Cidades e UF

Mensagem por alxsts »

Olá!

Uma pesquisa básica no Google mostra algumas opções. A mais atualizada que encontrei foi de 20/06/2016 e contem o script SQL Server para criar e dados para popular tabelas de País, Estados e Cidades do Brasil: SQL completo de todas as cidades e estados do Brasil.

Este post deveria estar na Seção de tabelas em geral
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Tabela de Cidades e UF

Mensagem por asimoes »

Alexandre,

Obrigado pela dica,

Acabei achando uma planilha excel do ibge, baixei e fiz um dbf, pode virar até uma hashtable
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela de Cidades e UF

Mensagem por JoséQuintas »

Não entendi.
Quer rotina ou informações?

https://github.com/JoseQuintas/sefazcla ... _cidade.ch
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
malcarli
Usuário Nível 3
Usuário Nível 3
Mensagens: 239
Registrado em: 20 Ago 2015 18:14
Localização: marilia/sp

Tabela de Cidades e UF

Mensagem por malcarli »

Boa tarde, estou mudando o meu sistema e irei trocar vários arquivos pelas chs da classe sefaz

Como faço por exemplo para carregar no nome do estado em um combo?

fiz assim mas não funcionou

Código: Selecionar todos

DEFINE COMBOBOX Cb_TransUf
               ROW    410
               COL    10
               WIDTH  200
               HEIGHT 110
               TOOLTIP     "Uf do Veículo"
            ITEMS   SEFAZ_UF[1]
            VALUE  1
        END COMBOBOX
obrigado
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Tabela de Cidades e UF

Mensagem por sygecom »

Post o exemplo completo para ver o que vem preenchido em: SEFAZ_UF[1]
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela de Cidades e UF

Mensagem por JoséQuintas »

O CH da Sefazclass define um array com cidades/países e UFs

Código: Selecionar todos

#define SEFAZ_CIDADE { ;
   { "EX", "000132 ", "AFEGANISTAO" }, ;
A partir daí, pode usar o array como quiser.
Por exemplo:

Código: Selecionar todos

FUNCTION IBGE( UF, Cidade )

   LOCAL aList := SEFAZ_CIDADE

   nPos := AScan( aList, { | e | e[ 1 ] == UF .AND. e[ 3 ] == Cidade } )
   cIbge := iif( nPos == 0, "", aList[ nPos, 2 ] )

   RETURN cIbge
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Tabela de Cidades e UF

Mensagem por Fernando queiroz »

resolvi assim

Código: Selecionar todos

#include "SEFAZ_CIDADE.CH"
#include "SEFAZ_UF.CH"

private aPAIS     	:= {}		 
private aUF     	:= {}
private aMunicipios	:= {}
o que já tem no cadastro ou em um novo cadastro, faz pequisa e carrega o combo

Código: Selecionar todos

		FOR EACH oPAIS IN SEFAZ_CIDADE
			IF oPAIS[1] == "EX"
				AAdd(aPAIS,oPAIS[3])
			ENDIF
		NEXT
		
		FOR EACH oUF IN SEFAZ_UF
			AAdd(aUF,oUF[1])
		NEXT
		
		FOR EACH oCIDADE IN SEFAZ_CIDADE
			IF oCIDADE[1] == mUF
				AAdd(aMunicipios,oCIDADE[3])
			ENDIF
		NEXT
na tela fiz assim

Código: Selecionar todos

   @ 78,376 SAY oLabel14 CAPTION "UF"  SIZE 20,24 
   @ 105,374 GET COMBOBOX oCombo2 VAR nCombo2 ;
        ITEMS aUF  ;
        SIZE 65,24  DISPLAYCOUNT 8 ;
		ON CHANGE {|| oCombo2_onChange( aUF[nCombo2] ),oCombo3:REFRESH() }
após a carga da tela executo

Código: Selecionar todos

	oCombo4:SetItem( Ascan(aPAIS,RTRIM(mPAIS) ) )	
	oCombo2:SetItem( Ascan(aUF,RTRIM(mUF) ) )	
	oCombo3:SetItem( Ascan(aMunicipios,RTRIM(mCIDADE) ) )
quando mudar a UF executo essa rotina

Código: Selecionar todos

***************************************
STATIC FUNCTION oCombo2_onChange( mUF )
***************************************
LOCAL oCIDADE
	DO WHILE .T.
		FOR nI := 1 TO Len(aMunicipios)
			hb_ADel( aMunicipios, nI, .T. )
		NEXT
		IF Len(aMunicipios) <= 0
			EXIT
		ENDIF
	ENDDO
	FOR EACH oCIDADE IN SEFAZ_CIDADE
		IF oCIDADE[1] == mUF
			AAdd(aMunicipios,oCIDADE[3])
		ENDIF
	NEXT
	ThisCAD:oCombo3:SetItem( Ascan(aMunicipios,RTRIM(mCIDADE) ) )
//	nCombo3 := 1
 RETURN( aMunicipios )
Editado pela última vez por JoséQuintas em 10 Dez 2019 15:49, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela de Cidades e UF

Mensagem por JoséQuintas »

Cuidado com isto:

Código: Selecionar todos

 FOR nI := 1 TO Len(aMunicipios)
   hb_ADel( aMunicipios, nI, .T. )
NEXT
Poderia ser assim:

Código: Selecionar todos

FOR nCont = Len( aMunicipios ) TO 1 STEP -1
   hb_ADel( aMunicipios, nI, .T. )
NEXT
Na prática:

{ "a", 'b', "c" }

nCont = 1 exclui o A, e o B passa a ser 1
nCont = 2 exclui o C e para, restando o B sem excluir

Mas na prática, se é pra limpar tudo:

Código: Selecionar todos

aMunicipios := {}
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Tabela de Cidades e UF

Mensagem por JoséQuintas »

Esqueci de dizer uma coisa importante:

array é passado automaticamente como referência... MAS.... NÃO É BEM ASSIM.


função( array )
função( @array )

Nos dois casos, se for uma rotina que ALTERA os elementos do array, os dois funcionam
Se a rotina fizer array := {}, só funciona do segundo modo.

O que imagino:
No primeiro caso, os elementos do array são passados por referência, então array := {} não tem mais vínculo com os elementos anteriores.
No segundo caso a variável é passada por referência, então qualquer alteração na variável faz efeito.

Talvez tenha usado o hb_ADel() porque teve esse imprevisto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder