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: 3110
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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 246
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: 7135
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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 783
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 B7, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart, Python + FASTAPI , Android Kotlin
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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