Jump to content
Fivewin Brasil

Arquivo.HRB


gibaf

Recommended Posts

  • 3 years later...

Retomada do assunto....

Alguem usa, e pode nos ensinar como?

E que gostaria de colocar alguns módulos (Lançamentos, Cadastros, Consulta, Relatorios) como arquivo HRB e depois qdo o cliente pedisse alguma modificação, que no meu caso sempre pedem. enviaria para eles apenas este arquivo atualizado....

ALGUEM SE HABILITA????????

OBRIGADO!!!!!!!!!!

Em Cristo!

Rone - Itajubá(MG)id=red>

xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 7.12 + xDevStudio

A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)id=blue>

Link to comment
Share on other sites

Simples, gere um PRG normal e compile da forma que voce compila normalmente mas acrescente /gh ex:

xHarbour myProg /n /gh

No seu sistema, para executar este HRB faça o seguinte:

oScript := __hrbLoad( "myprog.hrb" )

__hrbDo( oScript,aPar[1],aPar[2],aPar[3],aPar[4],aPar[5],aPar[6],aPar[7],aParicon_smile_8ball.gif,aPar[9] )

__hrbUnload( oScript )

DETALHE: Sempre que o xHarbour atualizar a versao do PCode gerado dele voce terá que gerar o HRB novamente. Nao é sempre que a versão do xHarbour é atualizada que a versao do PCode muda, voce percebe isso quando no seu sistema voce manda executar o script e ele diz que a versao do PCode é invalida.

Abraço e boa sorte.

citação:

Retomada do assunto....

Alguem usa, e pode nos ensinar como?

E que gostaria de colocar alguns módulos (Lançamentos, Cadastros, Consulta, Relatorios) como arquivo HRB e depois qdo o cliente pedisse alguma modificação, que no meu caso sempre pedem. enviaria para eles apenas este arquivo atualizado....

ALGUEM SE HABILITA????????

OBRIGADO!!!!!!!!!!

Em Cristo!

Rone - Itajubá(MG)

id=red>

xHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 7.12 + xDevStudio

A pessoa que pensa que sabe alguma coisa, ainda não tem a sabedoria que precisa. (1 Cor 8, 2)id=blue>


id=quote>id=quote>

EMotta Sistemas

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 - xHARBOUR 1.2.1

Fivewin desde 2000

xHarbour desde 2002

Link to comment
Share on other sites

  • 6 years later...

Bom dia!!

Fiz o teste usando funções simples de alert() funciona, mais como faço para usar uma rotina de relatorio, onde as funções de telas, *.ch, e funções de perguntas estão em outro PRG, tenho que colocar todas as funções e *.ch dentro do mesmo prg pra compilar?

Frazato

Link to comment
Share on other sites

A idéia é criar um exe pequeno e um repositorio de fontes, quando precisar atualizar no cliente, atualiza o repositório, com outro nome, sem ninguem sair do sistema e configura aquele usuario tal que precisa da atualização para abrir o repositorio direcionado para o novo. Mas como colocar varios prg de dentro de um mesmo hrb ou outra forma é que não consegui ainda.

Link to comment
Share on other sites

 

__hrbDo( oScript,aPar[1],aPar[2],aPar[3],aPar[4],aPar[5],aPar[6],aPar[7],aPar[8],aPar[9] ) // para que serve essa linha? 

o load carrega na memoria o HRB, o HRBDO executa o HRB carregado com load. O primeiro parametro é o objeto retornado no load, os demais são parametros que vc passa pra funcao principal do HRB... e o UNLOAD descarregada da memória.

Link to comment
Share on other sites

Galera

 

segue como eu faco com os arquivos HRB.

 

1-Uma funcao para carregar todos os hrb

2-Uma funcao para descarregar todos o Hrb quando sair do sistema

3-No programa principal EXE,

Eu informo as funcoes que nao estao no HRB, para nao der erro , usando o comando DYNAMIC mais o nome da funcao 

DYNAMIC TPEDIDO,AFV075CON,AFV095,CAD085VIS

4 - Pode chamar normalmente qualquer  funcao dentro do hrb

So tem um problema, se tiver muito HRB , como eu tenho demora um pouco para carregar, mas vale o beneficio.

 


Function  LoadDlls()
   Local cPastaLocal :=oApp:oServerhrb +"user\"
    
    Local aFiles
    Local cFile 
    
   cPastaLocal :=oApp:oServerhrb +"public\"

    aFiles  := Directory( cPastaLocal+"*.hrb")
     
   aSort(aFiles,,,{|x,y|x[1] < y[1]})  // ordenar para sempre carregar os arquivos na mesma ordem

    For n := 1 To Len(aFiles)
       
        cFile :=cPastaLocal+aFiles[n][1]
     
       aAdd( ahDlls, __hrbLoad( cFile ) )  // guardar os arquivos numa array , para fechar quando for  sair do sistema
         
      Next
      
      
RETURN .T.
 

EXIT PROCEDURE UnloadDlls()
   LOCAL hDll

   FOR EACH hDll IN ahDlls
      __hrbUnload( hDll )
   NEXT
   
RETURN  .T.

Link to comment
Share on other sites

ola a todos...

 

demorei um tempinho para acessar o fivewin

 

eu uso ja a tempo, e tudo funcionando, perfeitamente..

 

se nao quizer colocar as funcoes genericas dentro do exe, pode fazer a chamada das funcoes por macro.

 

pode criar varios prgs num .hrb, sim, eu gero o .hrb com o xhb.exe... esse permite vc usar um arquivo.txt, listado todos os fontes, pra gerar um unico .hrb.

 

para ler um rhb, eu faco assim: __HrbLoad( fileHRB )

dae, eh so executar as funcoes... ao abrir o hrb o exe "testa" a funcao, e se a funcao estiver num outro hrb q ainda nao foi aberto, var dar error.log.. pra resolver isso, faz como disse acima, ou seja, executar por macro: &("RodaFuncao()")

 

para fechar o hrb, eu faco assim: __HrbUnLoad( fileHRB )

 

qquer coisa, estou a disposicao

 

Abracos.

Link to comment
Share on other sites

Ufa ! consegui fazer funcionar do jeito que eu queria( Até agora), de dentro do programa principal executar  crie uma funcao que executa 

 __HrbLoad( fileHRB )  e boa já era agora quero criar uma situação para trocar em tempo de execução uma rotina, tipo caso exista uma rotina/arquivo executa ao inves de usar o existente no arquivo.exe

Obrigado, vou lutando!!!!

Frazato

Link to comment
Share on other sites

Boa tarde!!!

Tenho um menu onde tenho as funções gerada no executável e gostaria de saber como vcs fazem pra chegar a existencia da mesma no arquivo HRB e executar apartir o HRB!

Como uso Gtwvw fiz da seguinte maneira:

1 - Crie um arquivo INI contendo as funções a serem usada pelo HRB

2- Carrego no inicio do sistema todos os HRB

3 - Quando vou montar os menus chego o INI e tendo a nova função não monto o menu, crio um novo menu com as atualizações ( Isso tá tosco ainda) e uso função com nome diferente no HRB, tipo cadcliente(), HRB_cadcliente()

a minha parte de usar o mesmo menu do sistema para executar a função do HRB da muito ruim, mais indo.

Gostaria de saber como vcs fazem ou uma outra maneira de pensar.

Mais já tá a meu contento.

Obrigado, 

Frazato

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...