Como Iniciar em xHarbour

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

Moderador: Moderadores

Spitzer
Usuário Nível 2
Usuário Nível 2
Mensagens: 60
Registrado em: 15 Ago 2003 04:56
Localização: Nova Fátima - PR

Como Iniciar em xHarbour

Mensagem por Spitzer »

Olá!

Não sou novato por aqui, já fui um razoável frequentador quando desenvolvia em Clipper 5.2e.
Mas há alguns anos deixei a programação de lado, inclusive em outras linguagens que eu utilizava na empresa onde trabalhava.
Engraçado o que 4 ou 5 anos de ausência faz com a cabeça da gente!
Revirando a net hoje à procura de algo sobre xHarbour, vi palavras, termos e frases que faziam parte do meu cotidiano e hoje não sei direito do que se trata...
Claro que a idade contribui com o grau de amnésia! hehehhehe
Papo furado! Vamos ao que interessa!

Adquiri uma loja e pretendo eu mesmo desenvolver o software para controle de estoque, contas a pagar e a receber, caixa, controle bancário, enfim...
A princípio, pensei no xHarbour Open Source , porque posso utilizar algumas velhas rotinas minhas em Cliper 5.2e.
E só hoje vi tanta coisa a respeito de xHarbour que me deixou mais perdido ainda!
Então as perguntas:

1. Qual a mais recente versão do xHarbour? Onde pego?
2. Qual compilador utilizo? Li sobre hbmake, xdev...
3. O xHarbour por si só gera telas gráficas ou obrigatoriamente preciso de uma lib? Se precisar de uma lib, não vou perguntar qual, porque aí cada um tem sua preferência, mas me digam quais as mais difundidas para o xHarbour.
4. Onde há um tutorial para configuração, compilação, instalação e primeiros passos do xHarbour?
5. Existe algum programa demo para análise e aprendizado? Um que tenha uma inclusão, alteração, exclusão, consulta e relatório.

Quanto ao item 5, porque estou pedindo exemplos se tenho rotinas prontas pra isto em Clipper?
Vi que o projeto xHarbour adicionou novos e sofisticados recursos à linguagem xBase, então, é bem provável que existem rotinas muito mais eficientes, dinâmicas, criativas e objetivas que as minhas.

Era isto!

Desde já, obrigado!
Abraços,
Ademir Spitzer
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Como Iniciar em xHarbour

Mensagem por alaminojunior »

1. Existe por exemplo a versão 1.2.1 para BCC 5.5.1 no site http://www.xharbour.org. Se trata da última versão estável do mesmo.
2. Você pode baixar o Borland Compiler 5.5.1 e compilar com hbmake. Mais fácil e terá muitos exemplos. O xDev é uma IDE interessantíssima para a edição do código. Para compilação ainda não posso dizer nada.
3. Ele vai gerar aplicativos console como era no Clipper. Para obter uma aparência Windows no sistema, precisará sim de bibliotecas gráficas. As mais difundidas e com muitos exemplos de uso são GTWVW, GTWVT, HWGUI e MINIGUI.
4. Neste fórum mesmo, usando a busca você encontrará muita coisa.

Para os relatórios você pode continuar usando o mesmo recurso comum no Clipper como Set Device to ... Set Printer to ... ou, direcionar a impressão para arquivos e usar funções como PrintFileRaw() para poder imprimir em impressoras USB, etc ... Além da classe Win32Prn, mas nesse caso demanda um pouco de estudo.

Enfim, meta as caras e de acordo com o que precisar, utilize o recurso de busca do fórum ou exponha as dúvidas.
Abraço.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Re: Como Iniciar em xHarbour

Mensagem por billy1943 »

Faço como minhas as palavras do Ademir Spitzer;

Se algum programador Clipper que migrou para o Xharbour, quiser me mandar algum sistema (pode ser simples), que tenha as rotinas de cadastramento (inclusão, alteração e exclusão) de clientes, fornecedores,produtos, etc. e de emissão de relatórios desses mesmos cadastros, dentro de um menu caprichado, ficaria bem agradecido. Pode ter certeza de que o utilizarei para puro aprendizado.

Já peguei alguns que aproximam-se do acima, mas tinha erros, não compilava, etc.

Agradeceria muito também a indicação de onde possa baixar estes programas que possam dar-me um início concreto que como se programa em Xharbour (gostaria do Xharbour em ambiente visual);

Isto porque, modéstia às favas, os meus sistemas em Clipper tem o máximo do capricho possível, e não é porque passaria a usar o XHarbour que aceitaria telas pobres, objetos ridículos e operação redundante.

Os meus sistemas em Clipper são rápidos, resolvem, não tem nenhuma "frescura", mas a gente tem de modernizar-se...

Se alguém possa fazer esta gentileza, fica deste já o meu sincero agradecimento.

Fica abaixo o meu e-mail se quem quiser mandar-me o material diretamente.

agua.nova@hotmail.com
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como Iniciar em xHarbour

Mensagem por sygecom »

Buenas,
Algumas coisas já foram respondidas pelo colega Alamino, mas vou responder todas mesmo assim.
Antes de baixar qualquer coisa, leia o post até o fim.
Spitzer escreveu: 1. Qual a mais recente versão do xHarbour? Onde pego?
A mais recente versão do xHarbour hoje é a 1.2.1 que pode ser baixada do aqui
2. Qual compilador utilizo? Li sobre hbmake, xdev...
Eu usei por muito tempo o Hbmake, que vinha junto com o xharbour até a versão 1.0.0, nessa versão do link da pergunta 1 não vem mais o Hbmake mas vem o xBuild é bom também, mas achei meio complicado no começo, bom se serve como dica use o Hbmake para começar, porem use ele com a versão 1.0.0 do instalador abaixo, quando você se sentir mais seguro pode atualizar e migrar para outros make.
3. O xHarbour por si só gera telas gráficas ou obrigatoriamente preciso de uma lib? Se precisar de uma lib, não vou perguntar qual, porque aí cada um tem sua preferência, mas me digam quais as mais difundidas para o xHarbour.
O xHarbour por si só até gera telas gráficas, porem o trabalho que o pessoal teve em gerar LIB para janelas Grafica xHarbour você teria o mesmo, é anos de trabalho, ou seja seria a mesma coisa que pegar os fontes da Hwgui(LIB GRAFICA) e compilar junto com seu aplicativo....
As mais usadas são.:
Open source.: Hwgui, Minigui e xHgtk
Comerciais.: Fivewin, Xailer e VXH
4. Onde há um tutorial para configuração, compilação, instalação e primeiros passos do xHarbour?
Um tutorial oficial não tem, mas a comunidade se ajuda bastante, veja algumas dicas nos links abaixo:
http://www.sqllib.com.br/v4/index.php?a ... ourInstall
http://www.sqllib.com.br/v4/index.php?a ... andInstall
http://www.sqllib.com.br/v4/index.php?a ... asMigracao
http://f1.grp.yahoofs.com/v1/EFJCTJ1dwg ... arbour.pdf
Esse ultimo link não sei se vai dar certo, mas se não der se cadastre no grupo do planetaharbour do yahoo e em arquivos procure por migracao clipper-xharbour.pdf
5. Existe algum programa demo para análise e aprendizado? Um que tenha uma inclusão, alteração, exclusão, consulta e relatório.
A idéia inicial do xharbour é manter 100% de compatibilidade com o clipper ou seja suas tela de clipper devem e podem ser compiladas com xharbour, mas para telas visuais gráficas ai muda um pouco e no link abaixo você vai encontrar varios exemplos.
http://www.4shared.com/dir/9103314/4c5c ... aring.html

Agora se serve como indicação comece pela versão 1.0.0 e use o instalador do link abaixo, que vai lhe ajudar no começo, depois que pegar bem a pratica ai pode atualizar o xharbour e outras LIB.
http://www.4shared.com/file/rUleMdD4/hw ... rbour.html
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Re: Como Iniciar em xHarbour

Mensagem por jelias »

Amiguinhos,
billy1943 escreveu:Agradeceria muito também a indicação de onde possa baixar estes programas que possam dar-me um início concreto que como se programa em Xharbour (gostaria do Xharbour em ambiente visual);
No site abaixo você pode encontrar exemplos de sistemas em xHarbour.
http://www.4shared.com/dir/9103314/4c5c ... aring.html

Neste você pode contrar um exemplo em xHarbour + HWgui, uma excelente lib gráfica. Feito com muito capricho pelo amigo Leonardo.
http://www.4shared.com/file/88136385/a2 ... rbour.html

Além dos link acima você pode também para fins de estudo dar uma olhada em um projeto que o colega Leonardo disponibilizou no Google Code:
http://code.google.com/p/scm/
Esse projeto acima compila 100% em Hwgui + xHarbour ou Harbour.

O colega Alamino já passou os caminhos de onde baixar para começar.
Aqui podemos encontrar um guia de referência e um manual.
Se quiser baixar:
http://www.xharbour.com/xhdn/referenceguide/
http://www.sendspace.com/pro/dl/xit7ed

Qualquer dúvida é só postar.

Sds,
Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Como Iniciar em xHarbour

Mensagem por alxsts »

Olá!

Parabéns Leo e JElias pela aula sensacional. Estou "migrando-me" e muito me ajudaram.

É muito ruim sair da condição de senior em uma ferramenta e, drásticamente, cair na condição de aprendiz em outra...

Agora as perguntas que não calam (desvio de assunto? Talvez...)

É verdade que o xHarbour está com o desenvolvimento parado e que o caminho seria o Harbour?
[]´s
Alexandre Santos (AlxSts)
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

Re: Como Iniciar em xHarbour

Mensagem por jelias »

Olá Amiguinho,

O que tenho lido sobre este assunto é que o xHarbour não está recebendo atualizações constantes e que alguns membros de sua equipe foram para o Harbour como é o caso do Przmek considerado por muitos como o cérebro do projeto. Na minha opnião é sempre importante dominar as duas opções e deixar seus sistemas compatível com ambas as versões e fazer seus próprios testes para que você mesmo possa decidir qual o melhor segundo suas necessidades.
Devemos sempre aguardar pois o xHarbour pode se recuperar. rs
Hoje estou usando o xHarbour 1.0.0 + BCC 5.5.1 + DBFCDX. Já estou planejando uma mudança para Harbour 2.0 + Hwgui + MSVC + SQLRDD + Postgresql.

Pode baixar o Harbour aqui viewtopic.php?f=4&t=9859
MSCV aqui http://www.microsoft.com/Express/VC;

Como este assunto já foi amplamento discutido aqui, irei colocar baixo alguns tópicos para que você possa entender melhor.
viewtopic.php?f=4&t=9859
viewtopic.php?f=4&t=9150

Espero ter colaborado!

Saudações,
Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Como Iniciar em xHarbour

Mensagem por sygecom »

Olá Alexandre,
Apenas complementando o que o colega Jelias falou, antes mesmo do Harbour disparar com inovações, o xharbour na versão 1.0.0 em 2007 já para mim estava muito boa e estável, apenas uso a versão 1.2.1 para poder usar LIB mais atualizadas como SQLRDD que uso com Postgresql, então particularmente falando o xHarbour é para mim ainda uma ótima opção, porem como o colega Jelias falou temos que acompanhar as evoluções e manter nossos aplicativos compatível com outros compiladores e outras versões, no meu caso é 100% compatível com Harbour + MSVC.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Como Iniciar em xHarbour

Mensagem por alxsts »

Olá!

Muito obrigado amigos.
[]´s
Alexandre Santos (AlxSts)
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Re: Como Iniciar em xHarbour

Mensagem por gilsonpaulo »

Seque uns exemplos:

Código: Selecionar todos

function cliente()

select 1
use clientes shared alias clientes new
if neterr()
	MsgBox1("ERRO NA ABERTURA DO BANCO, CLIENTES")
	close all
	return
endif
set index to clientes
go top

select 2
use remoto shared alias remoto new
if neterr()
	MsgBox1("ERRO NA ABERTURA DO BANCO, REMOTO")
	close all
	return
endif
go top

telcliente=savescreen(00,00,31,97)

@ 00,00 say "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" color "15/1"
@ 01,00 say "³                                                                                                ³" color "15/1"
@ 01,35 say "CADASTRO DE CLIENTES" color "14/1"
@ 02,00 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" color "15/1"
@ 03,00 say "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³" color "15/1"
//				 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
@ 04,00 say "³³ Bloqueado.: : Tipo Pessoa J/F.: : Data Cadastro.:          : Cadastrado Por.:               :³³" color "15/1"
@ 05,00 say "³³ Codigo.:     : Cliente.:                                                                    :³³" color "15/1"
@ 06,00 say "³³ Endereco.:                                                    : Numero.:    : Cep.:         :³³" color "15/1"
@ 07,00 say "³³ Bairro...:                              : Cidade.:                              : UF.:  :    ³³" color "15/1"
@ 08,00 say "³³ Cpf/Cnpj.:                  : Insc/Rg.:                    : Contato.:                      :³³" color "15/1"
@ 09,00 say "³³ Fone.....:             : Fax.:             : Celular.:             :                        :³³" color "15/1"
@ 10,00 say "³³ Data Nascimento.:          : Ultimo Servico.:          : Ultima Compra.:          :          ³³" color "15/1"
@ 11,00 say "³³                                                                                              ³³" color "15/1"
@ 12,00 say "³³                                                                                              ³³" color "15/1"
@ 13,00 say "³³                                                                                              ³³" color "15/1"
@ 14,00 say "³³                                                                                              ³³" color "15/1"
@ 15,00 say "³³                                                                                              ³³" color "15/1"
@ 16,00 say "³³                                                                                              ³³" color "15/1"
@ 17,00 say "³³                                                                                              ³³" color "15/1"
@ 18,00 say "³³                                                                                              ³³" color "15/1"
@ 19,00 say "³³                                                                                              ³³" color "15/1"
@ 20,00 say "³³                                                                                              ³³" color "15/1"
@ 21,00 say "³³                                                                                              ³³" color "15/1"
@ 22,00 say "³³                                                                                              ³³" color "15/1"
@ 23,00 say "³³                                                                                              ³³" color "15/1"
@ 24,00 say "³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ³" color "15/1"
@ 25,00 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" color "15/1"
@ 26,00 say "³ Opcoes....:[Incluir] [Alterar] [Excluir]                                                       ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 26,14 say "I" color "14/1"
@ 26,24 say "A" color "14/1"
@ 26,34 say "E" color "14/1"
@ 27,00 say "³ Consultas.:[Conferencia] [A Receber] [Gerar TxT]                                               ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 27,17 say "F" color "14/1"
@ 27,34 say "B" color "14/1"
@ 27,47 say "X" color "14/1"
@ 28,00 say "³ Relatorios:[Acerto]                                                                            ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 28,17 say "R" color "14/1"
@ 29,00 say "³ Ordena Por:[Codigo] [Nome] [NC Pesquisa Por Nome]                                              ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 29,14 say "C" color "14/1"
@ 29,23 say "N" color "14/1"
@ 29,30 say "NC" color "14/1"
@ 30,00 say "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" color "15/1"
@ 31,00 say replicate(" ",97) color "0/15"
@ 31,80 say rodape2 color "0/15"

select clientes

do while .t.

	set cursor off
	setcolor("14/1,15/1")
	
	@ 04,14 say clibloq
	@ 04,34 say clitippes
	@ 04,52 say clidatcad picture "@K 99/99/9999"
	@ 04,80 say clicadpor
	@ 05,11 say clicodigo
	@ 05,27 say clidescli
	@ 06,13 say cliendcli
	@ 06,75 say clinumero
	@ 06,86 say clicep picture "@R 99999-999"
	@ 07,13 say clibairro
	@ 07,53 say clicidade
	@ 07,89 say cliuf
	if clitippes = "F"
		@ 08,13 say clicpf picture "@R 999.999.999-99"
	else
		@ 08,13 say clicnpj picture "@R 99.999.999/9999-99"
	endif
	@ 08,42 say cliinsc
	@ 08,73 say clicontato
	@ 09,13 say clifone picture "@R (99)9999-9999"
	@ 09,33 say clifax picture "@R (99)9999-9999"
	@ 09,57 say clicelular picture "@R (99)9999-9999"
	@ 10,20 say clidatnasc picture "@K 99/99/9999"
	@ 10,48 say cliultserv picture "@K 99/99/9999"
	@ 10,75 say cliultcomp picture "@K 99/99/9999"

	ik = 0

	ik = inkey(0)

	if ik=27
		exit
	elseif ik=5
		skip -1
		ik = 0
	elseif ik=24 
      skip 
		ik = 0
	elseif ik = 6
		go bottom
	elseif ik = 1
		go top
	elseif ik = 105 .or. ik = 73
		telinccli=savescreen(00,00,31,97)
		inccli()
		restscreen(00,00,31,97,telinccli)
	elseif ik = 69 .or. ik = 101
		op = MsgBox2("CONFIRMA EXCLUSÇO DO CLIENTE?" )
		do case
			case op = 1	
			select clientes
			if rlock()
				delete
				skip 
				dbcommit()
				unlock
			else
				MsgBox1("NÇO CONSEGUI EXCLUIR O REGISTRO, TENTE NOVAMENTE")
			endif
		endcase
	elseif ik = 65 .or. ik = 97
		if .not. empty(clidescli)
			altcli()
		endif
	elseif ik = 82 .or. ik = 114
		if .not. empty(clidescli)
			remoto()
		endif					
  	else
		tone(300)
	endif

	if eof()
		skip -1
	endif

	if bof()
		go top
	endif
enddo	

select 1
use
select 2
use
close
restscreen(00,00,31,97,telcliente)
return(nil)
*******************************************************************************
static procedure inccli()

local	iclibloq:=space(01),iclitippes:=space(01),iclicadpor:=space(15),iclicodigo:=space(05),;
		iclidescli:=space(68),icliendcli:=space(52),iclinumero:=space(04),iclicep:=space(08),;
		iclibairro:=space(30),iclicidade:=space(30),icliuf:=space(02),iclicpf:=space(11),;
		iclicnpj:=space(14),icliinsc:=space(20),iclicontato:=space(22),iclifone:=space(10),;
		iclifax:=space(10),iclicelular:=space(10),iclidatnasc:=ctod("00.00.00")

@ 00,00 say "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" color "15/1"
@ 01,00 say "³                                                                                                ³" color "15/1"
@ 01,35 say "CADASTRO DE CLIENTES" color "14/1"
@ 02,00 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" color "15/1"
@ 03,00 say "³ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿³" color "15/1"
//				 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567
@ 04,00 say "³³ Bloqueado.: : Tipo Pessoa J/F.: : Data Cadastro.:          : Cadastrado Por.:               :³³" color "15/1"
@ 05,00 say "³³ Codigo.:     : Cliente.:                                                                    :³³" color "15/1"
@ 06,00 say "³³ Endereco.:                                                    : Numero.:    : Cep.:         :³³" color "15/1"
@ 07,00 say "³³ Bairro...:                              : Cidade.:                              : UF.:  :    ³³" color "15/1"
@ 08,00 say "³³ Cpf/Cnpj.:                  : Insc/Rg.:                    : Contato.:                      :³³" color "15/1"
@ 09,00 say "³³ Fone.....:             : Fax.:             : Celular.:             :                        :³³" color "15/1"
@ 10,00 say "³³ Data Nascimento.:          : Ultimo Servico.:          : Ultima Compra.:          :          ³³" color "15/1"
@ 11,00 say "³³                                                                                              ³³" color "15/1"
@ 12,00 say "³³                                                                                              ³³" color "15/1"
@ 13,00 say "³³                                                                                              ³³" color "15/1"
@ 14,00 say "³³                                                                                              ³³" color "15/1"
@ 15,00 say "³³                                                                                              ³³" color "15/1"
@ 16,00 say "³³                                                                                              ³³" color "15/1"
@ 17,00 say "³³                                                                                              ³³" color "15/1"
@ 18,00 say "³³                                                                                              ³³" color "15/1"
@ 19,00 say "³³                                                                                              ³³" color "15/1"
@ 20,00 say "³³                                                                                              ³³" color "15/1"
@ 21,00 say "³³                                                                                              ³³" color "15/1"
@ 22,00 say "³³                                                                                              ³³" color "15/1"
@ 23,00 say "³³                                                                                              ³³" color "15/1"
@ 24,00 say "³ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ³" color "15/1"
@ 25,00 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´" color "15/1"
@ 26,00 say "³ Opcoes....:[Incluir] [Alterar] [Excluir]                                                       ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 26,14 say "I" color "14/1"
@ 26,24 say "A" color "14/1"
@ 26,34 say "E" color "14/1"
@ 27,00 say "³ Consultas.:[Conferencia] [A Receber] [Gerar TxT]                                               ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 27,17 say "F" color "14/1"
@ 27,34 say "B" color "14/1"
@ 27,47 say "X" color "14/1"
@ 28,00 say "³ Relatorios:[Acerto]                                                                            ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 28,17 say "R" color "14/1"
@ 29,00 say "³ Ordena Por:[Codigo] [Nome] [NC Pesquisa Por Nome]                                              ³" color "15/1"
//				 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
@ 29,14 say "C" color "14/1"
@ 29,23 say "N" color "14/1"
@ 29,30 say "NC" color "14/1"
@ 30,00 say "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" color "15/1"
@ 31,00 say replicate(" ",97) color "0/15"
@ 31,80 say rodape2 color "0/15"

do while .t.

	setcolor("10/1,10/1")
	
	iclibloq="N"
	
	@ 04,14 say iclibloq picture "@!KX" //valid(iclibloq$"SN")
	@ 04,34 get iclitippes picture "@!KX" valid(iclitippes$"JF")
	set cursor on
	read	
	set cursor off
	if lastkey() == 27
		return
	endif	
	@ 04,52 say date() picture "@K 99/99/9999"
	@ 04,80 say funcionario
	select clientes
   set order to 6
   go top
   bus = 0
   do while .t.
	   bus++
      seek strzero(bus,5,0)
      if .not. found()
      	iclicodigo = bus
      	exit
      endif
   enddo
	@ 05,11 say iclicodigo picture "@K 99999"
	@ 05,27 get iclidescli picture "@!KX" valid !empty(iclidescli)
	@ 06,13 get icliendcli picture "@!KX" 
	@ 06,75 get iclinumero picture "@!K"
	@ 06,86 get iclicep picture "@R 99999-999"
	@ 07,13 get iclibairro picture "@!KX" 
	@ 07,53 get iclicidade picture "@!KX" 
	@ 07,89 get icliuf picture "@!KX" 
	if iclitippes = "F"
		@ 08,13 get iclicpf picture "@R 999.999.999-99"
	else
		@ 08,13 get iclicnpj picture "@R 99.999.999/9999-99"
	endif
	@ 08,42 get icliinsc picture "@!KX" 
	@ 08,73 get iclicontato picture "@!KX" 
	@ 09,13 get iclifone picture "@R (99)9999-9999"
	@ 09,33 get iclifax picture "@R (99)9999-9999"
	@ 09,57 get iclicelular picture "@R (99)9999-9999"
	@ 10,20 get iclidatnasc picture "@K 99/99/9999"
	set cursor on
	read
	set cursor off
	if lastkey() == 27
		return
	endif

   op=MsgBox2( "CONFIRMA CADASTRO?" )
  	do case 
  		case op=1
			clientes->(dbappend())
			if neterr()
				op=MsgBox1("NAO FOI POSSIVEL GRAVAR O REGISTRO","TENTE NOVAMENTE")
				do case
					case op=1
						loop
				endcase		
			else
				if rlock()
					clientes->clibloq:=		iclibloq
					clientes->clitippes:=	iclitippes
					clientes->clidatcad:=	date()
					clientes->clicadpor:=	funcionario
					clientes->clicodigo:=	strzero(iclicodigo,5,0)
					clientes->clidescli:=	iclidescli
					clientes->cliendcli:=	icliendcli
					clientes->clinumero:=	padl(rtrim(iclinumero),4," ")
					clientes->clicep:=		iclicep
					clientes->clibairro:=	iclibairro
					clientes->clicidade:=	iclicidade
					clientes->cliuf:=			icliuf
					if iclitippes = "F"
						clientes->clicpf:=	iclicpf
					else
						clientes->clicnpj:=	iclicnpj
					endif
					clientes->cliinsc:=		icliinsc
					clientes->clicontato:=	iclicontato
					clientes->clifone:=		iclifone
					clientes->clifax:=		iclifax
					clientes->clicelular:=	iclicelular
					clientes->clidatnasc:=	iclidatnasc						
					dbcommit()
   	         unlock
				endif
			endif
		case op=2
			exit
	endcase			
exit
enddo
*******************************************************************************
static procedure altcli()

local	aclibloq:=clibloq,aclitippes:=clitippes,aclicadpor:=clicadpor,aclicodigo:=clicodigo,;
		aclidescli:=clidescli,acliendcli:=cliendcli,aclinumero:=clinumero,aclicep:=clicep,;
		aclibairro:=clibairro,aclicidade:=clicidade,acliuf:=cliuf,aclicpf:=clicpf,;
		aclicnpj:=clicnpj,acliinsc:=cliinsc,aclicontato:=clicontato,aclifone:=clifone,;
		aclifax:=clifax,aclicelular:=clicelular,aclidatnasc:=clidatnasc

do while .t.

	setcolor("10/1,10/1")
	
// 04,14 say aclibloq picture "@!KX" //valid(aclibloq$"SN")
// 04,34 say aclitippes picture "@!KX" //valid(aclitippes$"JF")

/* 04,52 say date() picture "@K 99/99/9999"
   04,80 say funcionario
	select clientes
   set order to 6
   go top
   bus = 0
   do while .t.
	   bus++
      seek strzero(bus,5,0)
      if .not. found()
      	iclicodigo = bus
      	exit
      endif
   enddo
*/
	@ 05,11 say aclicodigo picture "@K 99999"
	@ 05,27 get aclidescli picture "@!KX" valid !empty(aclidescli)
	@ 06,13 get acliendcli picture "@!KX" 
	@ 06,75 get aclinumero picture "@!K"
	@ 06,86 get aclicep picture "@R 99999-999"
	@ 07,13 get aclibairro picture "@!KX" 
	@ 07,53 get aclicidade picture "@!KX" 
	@ 07,89 get acliuf picture "@!KX" 
	if aclitippes = "F"
		@ 08,13 get aclicpf picture "@R 999.999.999-99"
	else
		@ 08,13 get aclicnpj picture "@R 99.999.999/9999-99"
	endif
	@ 08,42 get acliinsc picture "@!KX" 
	@ 08,73 get aclicontato picture "@!KX" 
	@ 09,13 get aclifone picture "@R (99)9999-9999"
	@ 09,33 get aclifax picture "@R (99)9999-9999"
	@ 09,57 get aclicelular picture "@R (99)9999-9999"
	@ 10,20 get aclidatnasc picture "@K 99/99/9999"
	set cursor on
	read
	set cursor off
	if lastkey() == 27
		return
	endif

	op2=MsgBox2( "CONFIRMA ALTERAۂO DO CADASTRO DO CLIENTE?" )
		if op2 = 1
			if rlock()
//		clientes->clibloq:=		aclibloq
//		clientes->clitippes:=	aclitippes
//		clientes->clidatcad:=	date()
//		clientes->clicadpor:=	funcionario
//		clientes->clicodigo:=	strzero(aclicodigo,5,0)
				clientes->clidescli:=	aclidescli
				clientes->cliendcli:=	acliendcli
				clientes->clinumero:=	padl(rtrim(aclinumero),4," ")
				clientes->clicep:=		aclicep
				clientes->clibairro:=	aclibairro
				clientes->clicidade:=	aclicidade
				clientes->cliuf:=			acliuf
				if clitippes = "F"
					clientes->clicpf:=	aclicpf
				else
					clientes->clicnpj:=	aclicnpj
				endif
				clientes->cliinsc:=		acliinsc
				clientes->clicontato:=	aclicontato
				clientes->clifone:=		aclifone
				clientes->clifax:=		aclifax
				clientes->clicelular:=	aclicelular
				clientes->clidatnasc:=	aclidatnasc						
				dbcommit()
      	   unlock
			endif
		else
			exit
		endif
	exit
enddo
*******************************************************************************
function remoto()

local vet1[5],vet2[5],vet3[5]	

telrem=savescreen(02,39,29,97)

setcolor("15/1,1/15")	
@ 02,39 clear to 29,97
@ 02,39 to 29,97
@ 04,39 say "Ã"
@ 04,97 say "´"
@ 27,39 say "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´"
//				  01234567890123456789012345678901234567890
@ 28,40 say  "[Incluir] [Excluir] [Alterar] [Esc -> Retorna]"
@ 28,41 say "I" color("14/1")
@ 28,51 say "E" color("14/1")
@ 28,61 say "A" color("14/1")
@ 28,71 say "ESC" color("14/1")

select remoto
set filter to codcli = clientes->clicodigo
go top

do while .t.
	select remoto
	
	vet1[1]="tipacesso"
	vet1[2]="estacao"
	vet1[3]="codacesso"
	vet1[4]="senha"
	
	vet3[1]="TIPO ACESSO"
	vet3[2]="ESTACAO"
	vet3[3]="CODIGO"
	vet3[4]="SENHA"

	dbedit(03,40,26,96,vet1,"sairem","",vet3)
	set filter to
	exit
enddo
restscreen(02,39,29,97,telrem)
select clientes
return
*******************************************************************************
function sairem()

if lastkey() = 27
	return(0)
endif	

Código: Selecionar todos

/******************************************************************************  
 * Sistema .....: GS INFORMATICA
 * Programa ....:   
 * Autor .......: Gilson Paulo Schuck  
 * Sintese .....: 
 * Data ........: 28/9/2009 às 19:31:36  
 * Revisado em .: 28/9/2009 às 19:31:36  
 ******************************************************************************/  
#include 'common.ch'  
#include 'sqllib.ch'

request sqllib
request mysql
request HB_LANG_PT
request dbfcdx
//request HB_GT_WIN


function main()
HB_LANGSELECT( 'PT' )
set epoch to 1960
set scoreboard off
set date british
set century on
set deleted on
set softseek on
set wrap on
setblink(.f.)
set message to 31
clear screen

/*SQL CONNECT ON "mysql.onda.com.br" ;
     DATABASE "";
     USER "";
     PASSWORD "";
     OPTIONS SQL_NO_WARNING;
     LIB "MySQL"


SQL CONNECT ON "localhost" ;
     DATABASE "eleitor";             	
     USER "root";
     PASSWORD "";
     OPTIONS SQL_NO_WARNING;
     LIB "MySQL"
*/
SQL CONNECT ON "gilsonpaulo.no-ip.org";
     DATABASE "";             	
     USER "root";
     PASSWORD "";
     OPTIONS SQL_NO_WARNING;
     LIB "MySQL"

rddsetdefault("dbfcdx")

*************************************************************************************************

public 	funcionario:=space(15),psenha:=space(1),pindu:=space(1),pcusto:=SPACE(1),pcadcli:=space(1),;
			firma:="GS INFORMATICA - COMERCIO E SERVIÇOS"
public	rodape1:=" ³ ESC - Sair ³ GS INFORMATICA ³ (41) 3672-4071 / (41) 8802-3828 ³",;
			rodape2:="³ ESC - Retorna ³"

*************************************************************************************************

 	Setup()
	IF SQLErrorNO() > 0
		MsgBox1("BASE DE DADOS OFF-LINE","VERIFIQUE O SERVIDOR")
	endif
	arquivos()
	acesso()
   Desktop()
	menu_p()

*************************************************************************************************
function menu_p()
do while .t.
set color to "0/15,0/3"
@ 00,00 say replicate(" ",98)
@ 00,85 say netname()

@ 00,00 prompt " Cadastro "
@ 00,10 prompt " Usuarios "


menu to menu_p

    if lastkey() = 27
        op = Msgbox2("FINALIZAR O SISTEMA.")
           do case
              case op = 1
                  set color to 7/0
                  clear screen
                  commit
   					close databases
   					close all
   					//sql disconnect all
   					setcolor( '' )
   					clear screen
   					setcolor( "GR+/N" )
   					@ 01,10 say "GS Informatica"
   					@ 02,10 say "Quatro Barras - Pr (41) 8802-3828 / (41) 3672-4071"
   					setcolor("")
   					@ row()+2, col() say ""
   					quit
                  exit
               endcase
     endif


do case
   case menu_p = 1
		menu1()
   case menu_p = 2

   case menu_p = 3

   case menu_p = 4

   case menu_p = 6


endcase
enddo        

return nil

*************************************************************************************************
FUNCTION Setup()
   SetDefaultWindowSize()  // e a outra função é chamada aqui.
   WvW_SetMainCoord( .T. )
   WvW_SetPaintRefresh( 100 )
   WvW_SetVertCaret( .F. )
   WvW_SetAltF4Close( .F. )
   WvW_SetMouseMove( .F. )
   WvW_SetDefLineSpacing( 0 )
   WvW_SetMaxBMcache( 20 )
   WvW_SetLineSpacing( 0, 0 )
   WvW_SetPointer( 0, 1 )
//   WvW_SetTitle(, "ITUPAVA LAR CONSTRUۂO & CONSTRUۂO" )
   WvW_Maximize(0)
	WvW_sbcreate()
	WvW_NoClose()
   RETURN (.T.)
*************************************************************************************************
FUNCTION SetDefaultWindowSize()
LOCAL Result:= .T.
Local ScreenWidth
SetMode(32,98)
  IF Result
     screenWidth := Wvw_GetScreenWidth()
     DO CASE
        CASE  screenWidth >=1024
          Result:= Wvw_SetFont(,'Terminal',20,10)
        CASE  screenWidth >= 800
          Result:= Wvw_SetFont(,'Terminal',16,-8)
        OTHERWISE
          Result:= Wvw_SetFont(,'Terminal',12,6)
     ENDCASE
     IF Result
        Wvw_SetCodePage(,255)
        CLS
     ENDIF
  ENDIF
RETURN(Result)
*************************************************************************************************
function acesso()

i=0
i1=0
sen=""
psw=0
psenha=space(1)
pindu = space(1)
pcusto = space(1)

save screen to anh

select 1
use cadfun shared alias cadfun new
if neterr()
	MsgBox1("ERRO DE ABERTURA DO BANCO DE USUARIOS")
	return
endif
set index to cadfun
go top

do while .t.

set color to N/W
@ 12,25 say "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" color "n/w"
@ 13,25 say "³                       ³" color "n/w"
@ 14,25 say "³ Nome.:               :³" color "n/w"
@ 15,25 say "³                       ³" color "n/w"
@ 16,25 say "³ Senha:  * * * * * *   ³" color "n/w"
@ 17,25 say "³                       ³" color "n/w"
@ 18,25 say "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" color "n/w"

	tn=1200

	funcionario = SPACE(15)

	setcolor("R/W,R/W")
	@ 14,33 get funcionario picture "@! XXXXXXXXXXXXXXX"
	set cursor on
	read
	set cursor off
	if lastkey() = 27
		loop
	endif


	go top
	seek funcionario
	if .not. found()
		tone(1000,2)
		loop
	endif


	set color to W/R,W/R

	sen=""
	i=0
	i1 = 0
	psw=" "


 	do while len(sen)<6
		setcolor("W/W,W/W")
		psw = space(1)
		i1=i1+2
		@ 16,33+i1-1 get psw picture "@K! X"
		read
		if lastkey() = 27
			set cursor on
			quit
			exit
		endif

		sen=sen+psw
		//setcolor("W/R,W/R")
  		@ 16,33+i1 say CHR(2) color "R/W" //CHR(2)
		tone(tn,2)
		tn = tn - 200
	enddo
	tone(2000,5)
	tone(1500,5)
	restore screen from anh
   exit
enddo
select cadfun
unlock
select 1
use
set confirm on
setcolor("W/N,N/W")
return
*************************************************************************************************
function arquivos()

if !index("cadfun.cdx")
	Msg("INDEXANDO BANCO DE DADOS","CADFUN")	
	select 1
	use cadfun exclusive alias cadfun new
	index on login tag login to cadfun
	pack
endif

if !index("clientes.cdx")
	Msg("INDEXANDO BANCO DE DADOS","CLIENTES")
	select 2
	use clientes exclusive alias clientes new
	index on clibloq tag clibloq to clientes
	index on clitippes tag clitippes to clientes
	index on clidescli tag clidescli to clientes
	index on clicpf tag clicpf to clientes
	index on clicnpj tag clicnpj to clientes
	index on clicodigo tag clicodigo to clientes
	pack
endif

select 1
use
select 2
use
close all
Spitzer
Usuário Nível 2
Usuário Nível 2
Mensagens: 60
Registrado em: 15 Ago 2003 04:56
Localização: Nova Fátima - PR

Re: Como Iniciar em xHarbour

Mensagem por Spitzer »

Oi, pessoal!

Eu sabia que havia colocado as dúvidas no lugar certo, pois a comunidade continua como sempre foi: ativa, participativa, e com muito boa vontade!
Parabéns e obrigado pelas prontas respostas, links e exemplos postados! Tudo será avaliado ainda neste final de semana!

Mas parece que estou querendo migrar para uma linguagem que já está condenada! hehehehehehehhehe
Assim não dá! Assim não dá! rsrsrsrssrs

É sério? O projeto xHarbour está parado?
Nestas alturas vejo que o ideal é o Harbour, como foi citado em um ou outro post deste assunto.
Ou, melhor ainda, manter o sistema compatível tanto com xHarbour quanto com Harbour.

As últimas perguntas, então, pessoal:
1. xHarbour e Harbour são 100% compatíveis entre si? Hoje, posso compilar o mesmo sistema tanto em xHarbour quanto em Harbour sem modificar nada?
2. As libs externas pro xHarbour servem também pro Harbour?
3. Quais as diferenças (as mais importantes ou gritantes, claro!) entre xHarbour e Harbour?
4. Para o Harbour há literatura, discussões e exemplos na mesma proporção que para o xHarbour pela Net afora? Até o momento nunca havia procurado algo sobre Harbour.

Obrigado!
Abraços,
Ademir Spitzer
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Como Iniciar em xHarbour

Mensagem por rochinha »

Amiguinho,

O Harbour nasceu open-source e continua crescendo assim mas não tinha ferramentas de apoio, já o xHarbour nasceu comercialmente, ou seja voce até poderia conseguir o source e binários livremente, mas as ferramentas de auxilio eram ou são pagas.

1. xHarbour e Harbour são 100% compatíveis entre si? Hoje, posso compilar o mesmo sistema tanto em xHarbour quanto em Harbour sem modificar nada?
Não. em se tratando de comandos e funções existentes no Clipper, sim, mas as funções e bibliotecas extendidas possuem diferenças.
2. As libs externas pro xHarbour servem também pro Harbour?
Não. nem mesmo as bibliotecas de uma mesma vertente podem ser usadas, com resalvas, pois o compilador possui alterações em sua caracteristica que pode modificar o código portátil, para se ter uma idéia de todas as versões de Harbour que surgiu é possivel enccontrar o compilador que gera código para java, outra para .net e nas versões atuais nem um nem outro, ou se gera não tem suporte.
3. Quais as diferenças (as mais importantes ou gritantes, claro!) entre xHarbour e Harbour?.
Depende. Se voce avaliar as ultimas versões de cada notará que um ou outro tem um recurso interessante que o outro ainda não tem. portanto vai da necessidade que voce deseja para sua aplicação, se voce planeja acesso a dados DBF, não irá se preocupar com NETIO, LetoDB, etc. Caso deseje usar em sua aplicação terá de pender para o lado que a ferramenta que lhe chama a atenção proporciona.
4. Para o Harbour há literatura, discussões e exemplos na mesma proporção que para o xHarbour pela Net afora? Até o momento nunca havia procurado algo sobre Harbour.
Sim. mas sinceramente voce encontra os exemplos de uso nos sources dos projetos, não há melhor recurso do que código pronto para testes.

Recentemente converti uma aplicação em SUMMER para Harbour para suportar em modo console tratamento de XML, envio de Email e acesso a WebServices(ainda em curso). Tive problemas para consumar o fato rapidamente porque o SUMMER permitia a geração do executável mesmo tendo IFs e DO.WHILE sem fechamento.

Hoje o aplicativo consegue abrir mais tabelas do que antes e tem um trabalho mais aprimorado.

Ainda uso para o trabalho, mesmo para produção de meu sistema 4Windows, a velha janela do DOS e o tão velho EDIT, poucas vezes o NOTEPAD e quanto a coisa aperta o NOTEPAD++.

Para compilar uso um .BAT, gosto de ter o controle do que eu estou manipulando.

Se usar o Borland C++ como compilador o mesmo será util nas duas vertentes.

Não existe esta de pegar um código Clipper e compilar no Harbour e achar que o mesmo vai rodar, pois durante anos usamos bibliotecas de terceiro que não fazem parte do mundo Harbour, com poucas excessões como VisualLIB, SIX e CATools.

O melhor é começar o código do zero, criando a aplicação mais básica, deste a SETagem do ambiente, menu de acesso, rotina de tratamento de tabela e impressão. Tendo tudo isto usando o básico e compatível é hora de partir para o avançado de cada opção.

Em suma, o que voce deve fazer é criar seu ambiente de trabalho contendo os ultimos builds de cada vertente e ir testando.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder