RDD LETO Sem Mistério
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
O tópico é sobre como usar o letodb...
Sua insatisfação não tem nada a ver, em está denegrindo a ferramenta que muitos estão usando.
Quanto ao xHarbour a turma já sabe muito bem minha opinião, mataram a galinha dos ovos de ouro.
O Antonio, e alguns brasileiros... aproveitadores...Quanto pagou para usar o SQLRDD ? está satisfeito ? então beleza! está usando o VXH ? que bom!
Porém todos estão migrando para o Harbour e o próprio pessoal do Harbour 4 apenas estão fazendo algo, e não sabemos quanto tempo mais eles irão tocar o barco, para o pessoal do xHarbour, copiar quase tudo, para depois vender.
Não estou indicando nada que a pessoa não possa testar antes, avaliar, etc, e ainda sou tratado dessa forma.
Saudações,
Itamar M. Lins Jr.
Sua insatisfação não tem nada a ver, em está denegrindo a ferramenta que muitos estão usando.
Quanto ao xHarbour a turma já sabe muito bem minha opinião, mataram a galinha dos ovos de ouro.
O Antonio, e alguns brasileiros... aproveitadores...Quanto pagou para usar o SQLRDD ? está satisfeito ? então beleza! está usando o VXH ? que bom!
Porém todos estão migrando para o Harbour e o próprio pessoal do Harbour 4 apenas estão fazendo algo, e não sabemos quanto tempo mais eles irão tocar o barco, para o pessoal do xHarbour, copiar quase tudo, para depois vender.
Não estou indicando nada que a pessoa não possa testar antes, avaliar, etc, e ainda sou tratado dessa forma.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RDD LETO Sem Mistério
Amiguinhos,
Em toda e qualquer discussão, às vezes nossos ânimos se elevam com facilidade, pois estamos defendendo nossas ferramentas.
Mas vejamos que estamos defendendo e brigando por algo intangível, ou seja, idéias.
Portanto deixemos de lado toda e qualquer diferença e voltemos ao que realmente interessa.
Eu não uso o LetoDB, apesar de achar o nome muito bonito, mas na prática, não fiz uso. Mas o assunto me interessa pois para colocar algo em produção preciso saber de quem já usa, o que fez, como fez e a avaliação.
Toquemos os tópicos com perguntas relacionadas ao mesmo afim de aprofundar nossos conhecimentos.
Postem as dúvidas sobre o mesmo e se possível exemplos(sou do tempo que livros de programação vinham recheados de exemplos práticos). Precisamos testar para avaliar.
Não vou pedir desculpas a ninguém e nem mesmo chamar a atenção também. Somos profissionais, somos mestres, mas somos também aprendizes.
Queremos ver neste tópico, informações, vantagens e criticas sobre LetoDB.
Valeu!
Em toda e qualquer discussão, às vezes nossos ânimos se elevam com facilidade, pois estamos defendendo nossas ferramentas.
Mas vejamos que estamos defendendo e brigando por algo intangível, ou seja, idéias.
Portanto deixemos de lado toda e qualquer diferença e voltemos ao que realmente interessa.
Eu não uso o LetoDB, apesar de achar o nome muito bonito, mas na prática, não fiz uso. Mas o assunto me interessa pois para colocar algo em produção preciso saber de quem já usa, o que fez, como fez e a avaliação.
Toquemos os tópicos com perguntas relacionadas ao mesmo afim de aprofundar nossos conhecimentos.
Postem as dúvidas sobre o mesmo e se possível exemplos(sou do tempo que livros de programação vinham recheados de exemplos práticos). Precisamos testar para avaliar.
Não vou pedir desculpas a ninguém e nem mesmo chamar a atenção também. Somos profissionais, somos mestres, mas somos também aprendizes.
Queremos ver neste tópico, informações, vantagens e criticas sobre LetoDB.
Valeu!
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
RDD LETO Sem Mistério
Bom dia ! Após tentar usar o LetoDB a um tempo atras e não conseguir fazer oque queria, tinha deixado ele de lado, mais a uns dias atras tive que fazer um modulo de cotação online, pegue um codigo do qual eu já tinha em xharbour 99.70 com gtwvw e mudei para harbour e fiz algumas mudança na maneira de tratar os dados mesmo sendo em DBF e boa consegui rodar a unica coisa que está me dando um trabalho mais já desisti foi de fazer a tela fica maximizada mais isso e coisa da Gtwvw que também não pretendo mudar a curto prazo.
caso alguém queira dar uma olha, segue o link para baixar o executável.
Tá mais rápido do que o acesso normal, a unica coisa que não funcionar e trabalhar na mesma pasta do sistema, ou seja, ou acesso o DBF pelo LetoDB ou pelo DBFCDX ao mesmo tempo não funciona.
http://www.4shared.com/file/v2wW_Bwm/cotacao_local.html
Qq duvida me avise.
Frazato
frazato@ibest.com.br
caso alguém queira dar uma olha, segue o link para baixar o executável.
Tá mais rápido do que o acesso normal, a unica coisa que não funcionar e trabalhar na mesma pasta do sistema, ou seja, ou acesso o DBF pelo LetoDB ou pelo DBFCDX ao mesmo tempo não funciona.
http://www.4shared.com/file/v2wW_Bwm/cotacao_local.html
Qq duvida me avise.
Frazato
frazato@ibest.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Ola!
Testou com essa variável ?
Saudações,
Itamar M. Lins Jr.
Testou com essa variável ?
Irei testar isso em breve... estava funcionando depois parou, agora eu não sei.Share_Tables = 0 - if 0 (default, this mode server was the only from the
start of a letodb project), the letodb opens all
tables in an exclusive mode, what allows to increase
the speed. If 1 (new mode, added since June 11, 2009),
tables are opened in the same mode as client
applications opens them, exclusive or shared, what
allows the letodb to work in coexistence with other
types of applications.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Bom dia! fiz um teste rápido e funciona, mais vou testar melhor, só que não tinha esta opção em meu arquivo de configuração do Leto, cara isso ira me resolver vários problemas, pois não preciso ficar sincronizando dados mais, gostei mesmo, obrigado.
Frazato
Frazato
RDD LETO Sem Mistério
Ola Pessoal...
eu tb to mexendo no letodb...
Essa para o Itamar...
em algum lugar eu vi uma implementação que vc, acho, fez no errorsys.prg para letodb, no caso da perda de conexão de rede.
ou se alguem ai tiver esse codigo poderia mandar pra mim ou postar aqui para os demais colegas..
atenciosamente,
JC
eu tb to mexendo no letodb...
Essa para o Itamar...
em algum lugar eu vi uma implementação que vc, acho, fez no errorsys.prg para letodb, no caso da perda de conexão de rede.
ou se alguem ai tiver esse codigo poderia mandar pra mim ou postar aqui para os demais colegas..
atenciosamente,
JC
Copiar Arquivo do Servidor para o Cliente usando o LetoDB
Tem alguma função no letodb que copie um arquivo do servidor para o cliente(computador local)???
ou alguem tem uma ideia de como executar essa copia via letodb??
Atenciosamente,
JC
ou alguem tem uma ideia de como executar essa copia via letodb??
Atenciosamente,
JC
RDD LETO Sem Mistério
Ola Pessoal...
eu precisava essa função pra copiar o executavel do Servidor para o pc do Cliente.
estudando cheguei a essa função.. funciona blz
--------------------------------------------------------------------------
FUNC letoFileCopy(cFile,cNew) // leto_FileRead( cFile, nStart, nLen, @cBuf )
local nH,nLenFile,tm,xx,cBuf
nLenFile:=Leto_FileSize(cFile) ; nH:=fCreate(cNew,FC_NORMAL) ; xx:=0
while xx<nLenFile
cBuf:=Space(2048)
if (tm:=Leto_FileRead(cFile,xx,2048,@cBuf))>0 ; xx+=tm ; fWrite(nH,cBuf) ; end
end
fClose(nH)
return xx==nLenFile
--------------------------------------------------------------------------
eu precisava essa função pra copiar o executavel do Servidor para o pc do Cliente.
estudando cheguei a essa função.. funciona blz
--------------------------------------------------------------------------
FUNC letoFileCopy(cFile,cNew) // leto_FileRead( cFile, nStart, nLen, @cBuf )
local nH,nLenFile,tm,xx,cBuf
nLenFile:=Leto_FileSize(cFile) ; nH:=fCreate(cNew,FC_NORMAL) ; xx:=0
while xx<nLenFile
cBuf:=Space(2048)
if (tm:=Leto_FileRead(cFile,xx,2048,@cBuf))>0 ; xx+=tm ; fWrite(nH,cBuf) ; end
end
fClose(nH)
return xx==nLenFile
--------------------------------------------------------------------------
RDD LETO Sem Mistério
Amiguinhos,
Não estou conseguindo atualizar o LETODB. Por gentileza, se alguém puder me dar uma força. Segue informações de como estou fazendo:
Na pasta do LETODB estou clicando com o botão direito do mouse e em CVS Obter Módulo..., que está configurada assim:
ABA MÓDULO
CVSROOT :pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb
PROTOCOLO: Servidor de Senha
PARÂMETROS DO PROTOCOLO:
SERVIDOR: letodb.cvs.sourceforge.net
PORTA:
PASTA DO REPOSITÓRIO: /cvsroot/letodb checkout -r rel-1-mt letodb
NOME DE USUÁRIO: anonymous
MÓDULO: letodb
ABA REVISÃO
Marquei
(x) Escolher Marcador ou Ramo
Nome do ramo ou marcador: rel-1-mt
Recebo como retorno:
Erro, operação do cvs falhou:
E abre uma tela onde me pede senha:
Já digitei de tudo.
Aproveitando a mensagem, quero compartilhar com os amigos que consegui rodar o LETODB em um cliente com a ajuda do Basso e do Leonardo Machado, depois de apanhar bastante. Por falta de conhecimento, deixei escapar um detalhe importante na configuração do servidor e por isso gostaria de compartilhar aqui os detalhes:
-Minha estrutura de rede é composta por um servidor usando Windows Server 2008 Enterprise. Estações Windows´XP e Windows 7.
- Após a instalação do LETODB no servidor, seguindo os passos já apresentados no tópico, não conseguia estabelecer conexão com o servidor. O fato é que é necessário liberar no Firewall a porta :2812 usada pelo LETODB. Para tanto, irei deixar este link aos interessados nos detalhes destes procedimentos de configuração.
http://www.maxsistem.com.br/ajuda/index ... erver-2008
Sei que muitos já devem saber disso, mais como esbarrei neste detalhe, penso ser prudente compartilhar com os colegas.
Após várias tentativas sem sucesso, enfim obtive sucesso e fui aos testes. Uma grande motivação, foi a busca de reduzir o tempo de um relatório de vendas que é muito usado em análise no dia-a-dia de trabalho. Este relatório lista todos os itens, de forma acumulada por período. Fiz um teste com este cenário em uma mesma estação.
Vendas de Produtos 01/01/2013 à 30/03/2013 -> DBF/CDX: 480-segundos Terminal Service: 4-segundos LETODB: 86-segundos
Vendas de Produtos 01/01/2012 á 31/12/2013 -> DBF/CDX: 1.746-segundos Terminal Service: 11-segundos LETODB: 303-segundos
LETODB foi muito mais rápido que DBF/CDX nativo, entretanto teve grande diferença para o Terminal Service. Como pode haver algum detalhe relacionado ao código, deixo abaixo o mesmo para apreciação dos colegas.
Sds,
Júlio.
Não estou conseguindo atualizar o LETODB. Por gentileza, se alguém puder me dar uma força. Segue informações de como estou fazendo:
Na pasta do LETODB estou clicando com o botão direito do mouse e em CVS Obter Módulo..., que está configurada assim:
ABA MÓDULO
CVSROOT :pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb
PROTOCOLO: Servidor de Senha
PARÂMETROS DO PROTOCOLO:
SERVIDOR: letodb.cvs.sourceforge.net
PORTA:
PASTA DO REPOSITÓRIO: /cvsroot/letodb checkout -r rel-1-mt letodb
NOME DE USUÁRIO: anonymous
MÓDULO: letodb
ABA REVISÃO
Marquei
(x) Escolher Marcador ou Ramo
Nome do ramo ou marcador: rel-1-mt
Recebo como retorno:
Erro, operação do cvs falhou:
E abre uma tela onde me pede senha:
Já digitei de tudo.
Aproveitando a mensagem, quero compartilhar com os amigos que consegui rodar o LETODB em um cliente com a ajuda do Basso e do Leonardo Machado, depois de apanhar bastante. Por falta de conhecimento, deixei escapar um detalhe importante na configuração do servidor e por isso gostaria de compartilhar aqui os detalhes:
-Minha estrutura de rede é composta por um servidor usando Windows Server 2008 Enterprise. Estações Windows´XP e Windows 7.
- Após a instalação do LETODB no servidor, seguindo os passos já apresentados no tópico, não conseguia estabelecer conexão com o servidor. O fato é que é necessário liberar no Firewall a porta :2812 usada pelo LETODB. Para tanto, irei deixar este link aos interessados nos detalhes destes procedimentos de configuração.
http://www.maxsistem.com.br/ajuda/index ... erver-2008
Sei que muitos já devem saber disso, mais como esbarrei neste detalhe, penso ser prudente compartilhar com os colegas.
Após várias tentativas sem sucesso, enfim obtive sucesso e fui aos testes. Uma grande motivação, foi a busca de reduzir o tempo de um relatório de vendas que é muito usado em análise no dia-a-dia de trabalho. Este relatório lista todos os itens, de forma acumulada por período. Fiz um teste com este cenário em uma mesma estação.
Vendas de Produtos 01/01/2013 à 30/03/2013 -> DBF/CDX: 480-segundos Terminal Service: 4-segundos LETODB: 86-segundos
Vendas de Produtos 01/01/2012 á 31/12/2013 -> DBF/CDX: 1.746-segundos Terminal Service: 11-segundos LETODB: 303-segundos
LETODB foi muito mais rápido que DBF/CDX nativo, entretanto teve grande diferença para o Terminal Service. Como pode haver algum detalhe relacionado ao código, deixo abaixo o mesmo para apreciação dos colegas.
Código: Selecionar todos
#include "INKEY.CH"
#include "CLUBE.CH"
FUNCTION REL_VENDPR(aPhis)
local Atel:=savescreen(00,00,24,79)
local tyAp:=type("aPhis")
ABREARQ(,{"AL_SAIDA","AL_CLIEN","AL_VENDE","AL_SAISN","AL_CIDAD","AL_PEDSN","AL_ESTOQ","AL_PEDID","AL_ITPED","AL_ITPSN","AL_GRUPO"})
do whil .t.
rest screen from aw_tel_master
SETBLINK(.F.)
WIN3D("Informe o per¡odo",04,02,06,54,2,"9")
v_dat1=CTOD(" / / ")
v_dat2=CTOD(" / / ")
@ 05,03 say "Per¡odo de = " get v_dat1 pict"@D" VALID( v_dat1 != CTOD(" / / ") )
@ 05,33 say "At‚ = " get v_dat2 pict"@D" VALID( v_dat2 != CTOD(" / / ") )
read
if (LASTKEY()==27)
SETBLINK(.T.)
ABREARQ(,.F.)
RESTSCREEN(00,00,24,79,Atel)
retu
end
a1=time()
sele AL_SAIDA
DBSETORDER(2)
ORDSCOPE(0,DTOS(v_dat1))
ORDSCOPE(1,DTOS(v_dat2))
DBGOTOP()
sele AL_SAISN
DBSETORDER(6)
ORDSCOPE(0,DTOS(v_dat1))
ORDSCOPE(1,DTOS(v_dat2))
DBGOTOP()
sele AL_SAIDA
if EOF()
MENSAGEM("Aten‡Æo, nÆo foi econtrado dados neste per¡odo !!!",3)
loop
end
WIN3D("",10,02,12,46,2,"9"); @ 11,04 say "Gerando relatorio, Aguarde ..............."
vDados:={}
vRuim:={}
sele AL_SAIDA
bQua:=bVal:=0
@ 20,01 say a1
a2=time()
@ 20,15 say a2
do whil !EOF()
if ((AL_SAIDA->tiposa#"01" .and. AL_SAIDA->tiposa#"02") .or. cancel="*")
skip
loop
end
bSeek=ncarga+codped
sele AL_ITPED
DBSEEK(bSeek)
do whil (!EOF() .and. ncarga=AL_SAIDA->ncarga .and. codped=AL_SAIDA->codped)
if condic=" "
IF ASCAN(vDados, {|a| A[1] = AL_ITPED->codite })#0
vVar=ASCAN(vDados, {|a| A[1]=AL_ITPED->codite })
sele AL_ESTOQ
DBSETORDER(1)
DBSEEK(AL_ITPED->codite)
vDados[vVar][3]=(vDados[vVar][3]+AL_ITPED->quanti)
vDados[vVar][5]=(vDados[vVar][5]+(AL_ITPED->quanti*AL_ESTOQ->pesoun))
vDados[vVar][6]=(vDados[vVar][6]+AL_ITPED->pretot)
if AL_ITPED->pretot<=0
AADD(vRuim, AL_SAIDA->ncarga+AL_SAIDA->codped)
end
else
sele AL_ESTOQ
DBSETORDER(1)
DBSEEK(AL_ITPED->codite)
AADD(vDados, {AL_ITPED->codite,AL_ESTOQ->descri,AL_ITPED->quanti,0,(AL_ITPED->quanti*AL_ESTOQ->pesoun),AL_ITPED->pretot,AL_ESTOQ->codgru})
if AL_ITPED->pretot<=0
AADD(vRuim, AL_SAIDA->ncarga+AL_SAIDA->codped)
end
end
bQua=(bQua+AL_ITPED->quanti)
bVal=(bVal+AL_ITPED->pretot)
end
sele AL_ITPED
skip
end
sele AL_SAIDA
skip
end
sele AL_SAISN
do whil !EOF()
if ((AL_SAISN->tiposa#"01" .and. AL_SAISN->tiposa#"02") .or. cancel="*")
skip
loop
end
bSeek=ncarga+codped
sele AL_ITPSN
DBSEEK(bSeek)
do whil (!EOF() .and. ncarga=AL_SAISN->ncarga .and. codped=AL_SAISN->codped)
if condic=" "
IF ASCAN(vDados, {|a| A[1] = AL_ITPSN->codite })#0
vVar=ASCAN(vDados, {|a| A[1]=AL_ITPSN->codite })
sele AL_ESTOQ
DBSETORDER(1)
DBSEEK(AL_ITPSN->codite)
vDados[vVar][4]=(vDados[vVar][4]+AL_ITPSN->quanti)
vDados[vVar][5]=(vDados[vVar][5]+(AL_ITPSN->quanti*AL_ESTOQ->pesoun))
vDados[vVar][6]=(vDados[vVar][6]+AL_ITPSN->pretot)
if AL_ITPSN->pretot<=0
AADD(vRuim, AL_SAISN->ncarga+AL_SAISN->codped)
end
else
sele AL_ESTOQ
DBSETORDER(1)
DBSEEK(AL_ITPSN->codite)
AADD(vDados, {AL_ITPSN->codite,AL_ESTOQ->descri,0,AL_ITPSN->quanti,(AL_ITPSN->quanti*AL_ESTOQ->pesoun),AL_ITPSN->pretot,AL_ESTOQ->codgru})
if AL_ITPSN->pretot<=0
AADD(vRuim, AL_SAISN->ncarga+AL_SAISN->codped)
end
end
bQua=(bQua+AL_ITPSN->quanti)
bVal=(bVal+AL_ITPSN->pretot)
end
sele AL_ITPSN
skip
end
sele AL_SAISN
skip
end
a3=time()
@ 20,30 say time()
inkey(0)
vb_texto=" Periodo de "+DTOC(v_dat1)+" Ate "+DTOC(v_dat2)
Opc_Rel(08,50,22,75,1,Date())
if (trab_nkey==17 .or. trab_nkey==27 .or. trab_nkey==4)
restscreen(00,00,24,79,Atel)
loop
elseif (trab_nkey==1)
trab_impr:='I'
set print on
set devi to print
elseif (trab_nkey==2 .or. trab_nkey==3)
trab_impr:='V'; v_arqt=iif(trab_nkey==2,'.\textos\spool.prn',GERAREL())
set print to &v_arqt
set devi to print
end
v_tot1=0.00
v_tot2=0.00
v_tot3=0.00
v_tot4=0.00
v_tot5=0.00
v_tot6=0.00
v_tot7=0.00
v_tot8=0.00
x_tot1=0.00
x_tot2=0.00
x_tot3=0.00
x_tot4=0.00
x_tot5=0.00
x_tot6=0.00
x_tot7=0.00
l=99
p=1
oDados:=ASORT(vDados,,, {|x,y| x[7]+x[2] < y[7]+y[2]} )
vTotk=0 ; vTotr=0
for i:=1 to LEN(vDados)
vTotk=(vTotk+vDados[i][5])
vTotr=(vTotr+vDados[i][6])
next
vCont=1
cCodGrupo=""
do whil (LEN(oDados)>=vCont .and. inke()!=27)
if l>=58
Cabecalho("RELATORIO DE VENDAS/PRODUTO",130,p,'chr(15)','chr(14)+chr(15)')
@ 08,01 say "|"+vb_texto
@ 08,130 say "|"
@ 09,01 say "+-------------------------------------------+------+---------------------------------------------------------+-------------------+"
@ 10,01 say "| | | A N A L I S E D O Q U A D R O V E N D A S | VALORES (R$) |"
@ 11,01 say "| | +----------+----------+------------+---------------+------+-------------+-----+"
@ 12,01 say "| NOME DO PRODUTO |CODIGO|1a. Quin. |2a. Quin. | TOTAL | TOTAL (kg) | (%) | VENDAS | (%) |"
@ 13,01 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
p++
l=14
end
if VAL(oDados[vCont][1])=0
vCont++
if LEN(oDados)<vCont .or. l>=58
@ l,01 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
@ l+1,1 say "| VALOR TOTAL ====> | |"+TRANS(v_tot1,"999999.999")+"|"+TRANS(v_tot2,"999999.999")+"|"+TRANS(v_tot1+v_tot2,"99999999.999")+"|"+TRANS(v_tot4,"999999999999.999")+"| |"+TRANS(v_tot5,"@E 99,999,999.99")+"| |"
@ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
@ l+3,1 say "+"+REPL("=",128)+"+"
@ l+4,1 say "+------------------------------------+"
@ l+5,1 say "| Valor dos Cortes => "+TRANS(v_tot6,"@E 999,999.99")+" |"
@ l+6,1 say "| (%) dos Cortes => "+TRANS( (v_tot6/bVal)*100,"99.99")+" |"
@ l+7,1 say "+------------------------------------+"
end
loop
end
if cCodGrupo#oDados[vCont][7]
sele AL_GRUPO
DBSETORDER(1)
DBSEEK(oDados[vCont][7])
@ l,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
if trab_impr="I"
@ l+1,1 say CHR(27)+"E"+"| Grupo : "+oDados[vCont][7]+" - "+AL_GRUPO->descri
@ l+1,132 say "|"+CHR(27)+"F"
else
@ l+1,1 say "| Grupo : "+oDados[vCont][7]+" - "+AL_GRUPO->descri
@ l+1,130 say "|"
end
@ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
l=l+3
cCodGrupo=oDados[vCont][7]
end
@ l,01 say "|"+LEFT(oDados[vCont][2],43)+"|"+LEFT(oDados[vCont][1],6)+"|"+TRANS(oDados[vCont][3],"999999.999")+"|"+TRANS(oDados[vCont][4],"999999.999")+"|"+TRANS(oDados[vCont][3]+oDados[vCont][4],"99999999.999")+"|"+TRANS(oDados[vCont][5],"99999999999.999")+"| "+;
TRANS( ((oDados[vCont][3]+oDados[vCont][4])/bQua)*100,"99.99")+"|"+TRANS(oDados[vCont][6],"@E 99,999,999.99")+"|"+TRANS( (oDados[vCont][6]/bVal)*100,"99.99")+"|"
v_tot1=(v_tot1+oDados[vCont][3])
v_tot2=(v_tot2+oDados[vCont][4])
v_tot3=(v_tot3+0.00)
v_tot4=(v_tot4+oDados[vCont][5])
v_tot5=(v_tot5+oDados[vCont][6])
v_tot6=(v_tot6+0.00)
x_tot1=(x_tot1+oDados[vCont][3])
x_tot2=(x_tot2+oDados[vCont][4])
x_tot3=(x_tot3+0.00)
x_tot4=(x_tot4+oDados[vCont][5])
x_tot5=(x_tot5+oDados[vCont][6])
x_tot6=(x_tot6+0.00)
vCont++
l++
if LEN(oDados)<vCont .or. IIF(LEN(oDados)>=vCont,cCodGrupo#oDados[vCont][7],)
@ l,01 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
if trab_impr="I"
@ l+1,1 say CHR(27)+"E"+"| TOTAL VENDAS DO GRUPO ===> | |"+TRANS(x_tot1,"999999.999")+"|"+TRANS(x_tot2,"999999.999")+"|"+TRANS(x_tot1+x_tot2,"99999999.999")+"|"+TRANS(x_tot4,"99999999999.999")+"|"+TRANS(((x_tot4/vTotk)*100),"999.99")+"|"+TRANS(x_tot5,"@E 99,999,999.99")+"|"+TRANS(((x_tot5/vTotr)*100),"99.99")+"|"+CHR(27)+"F"
else
@ l+1,1 say "| TOTAL VENDAS DO GRUPO ===> | |"+TRANS(x_tot1,"999999.999")+"|"+TRANS(x_tot2,"999999.999")+"|"+TRANS(x_tot1+x_tot2,"99999999.999")+"|"+TRANS(x_tot4,"99999999999.999")+"|"+TRANS(((x_tot4/vTotk)*100),"999.99")+"|"+TRANS(x_tot5,"@E 99,999,999.99")+"|"+TRANS(((x_tot5/vTotr)*100),"99.99")+"|"
end
@ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
l=l+3
x_tot1=0.00
x_tot2=0.00
x_tot3=0.00
x_tot4=0.00
x_tot5=0.00
x_tot6=0.00
x_tot7=0.00
end
if LEN(oDados)<vCont
@ l,01 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
@ l+1,1 say "| VALOR TOTAL ====> | |"+TRANS(v_tot1,"999999.999")+"|"+TRANS(v_tot2,"999999.999")+"|"+TRANS(v_tot1+v_tot2,"99999999.999")+"|"+TRANS(v_tot4,"99999999999.999")+"| |"+TRANS(v_tot5,"@E 99,999,999.99")+"| |"
@ l+2,1 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
@ l+3,1 say "+"+REPL("=",128)+"+"
@ l+4,1 say "+------------------------------------+"
@ l+5,1 say "| Valor dos Cortes => "+TRANS(v_tot6,"@E 999,999.99")+" |"
@ l+6,1 say "| (%) dos Cortes => "+TRANS( (v_tot6/bVal)*100,"99.99")+" |"
@ l+7,1 say "+------------------------------------+"
elseif l>=58
@ l,01 say "+-------------------------------------------+------+----------+----------+------------+---------------+------+-------------+-----+"
@ l+1,1 say "+"+REPL("=",128)+"+"
end
end
if (trab_impr=='V'); set print to ; end
if (trab_impr=='I'); eject; end
set devi to screen
if (trab_nkey==3)
set print to
Rel_Video(subs(v_arqt,10))
Dele file &v_arqt
end
restscreen(00,00,24,79,Atel)
endd
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
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
RDD LETO Sem Mistério
Para o Julio e os demais:
O Letodb é uma boa opção sem dúvida, embora nada se compare a refazer tudo p/ usar o SQL (puro, não SQLRDD, uma das maiores atrocidades que já vi). Já se falou bastante das vantagens disso e não vou entrar em detalhes. Não discuto que o Letodb ajuda bem, funciona legal mas não é a solução definitiva que deveria ser tomada. Porém tem uma solução muito melhor que o LetoDB para quem não pode ir para uma solução melhor. E o Julio achou ela.
Se você acha que precisa do LetoDB, você deveria então usar o Terminal Service ou outra ferramenta (VNC, SSH em Linux, etc) para acessar a aplicação remotamente no servidor e não acessar o dbf remotamente principalmente direto. O LetoDB já ajuda bem na performance e confiabilidade mas não é a melhor solução. Fazer a aplicação rodar efetivamente no servidor e acessar o dbf direto será mais vantajoso que usar o LetoDB porque terá muito mais performance, terá pelo menos a mesma confiabilidade, diminuirá tráfego da rede, facilitará a administração de tudo, evitará concorrência real já que tudo terminará mais rápido e não precisará mudar nada no código, nem uma linha sequer.
Se você fizer isso e tiver qualuer problema com acesso aos arquivos, coisa que já deveria ser rara mesmo fazendo do jeito pior (acessando o dbf diretamente pela rede) você pode procurar por sérios problemas em sue programa. DBF acessado localmente, principalamente no Harbour que está bem mais livre de bugs para dar problema, é difícil a não ser que o programa colabore. DBF e principalmente seus índices tem que ser bem administrado pelo programador. SQL é mais automático, mas DBF exige entendimento do programador do que pode ou não fazer.
Já vi mais de 1000 terminais simultâneos acessando aplicação no servidor (Linux) e acessando o dbf direto pelas instâncias das aplicações rodando nele sem problemas e rapidamente. Escolher essa opção é revolucionário. Achava que muitas pessoas já tinham descoberto isso. Hoje um servidor de menos de 5 mil reais pode rodar centenas de instâncias de uma aplicação console acessando dbf. Um computador pouco ultrapassado roda dezenas.
O Letodb é uma boa opção sem dúvida, embora nada se compare a refazer tudo p/ usar o SQL (puro, não SQLRDD, uma das maiores atrocidades que já vi). Já se falou bastante das vantagens disso e não vou entrar em detalhes. Não discuto que o Letodb ajuda bem, funciona legal mas não é a solução definitiva que deveria ser tomada. Porém tem uma solução muito melhor que o LetoDB para quem não pode ir para uma solução melhor. E o Julio achou ela.
Se você acha que precisa do LetoDB, você deveria então usar o Terminal Service ou outra ferramenta (VNC, SSH em Linux, etc) para acessar a aplicação remotamente no servidor e não acessar o dbf remotamente principalmente direto. O LetoDB já ajuda bem na performance e confiabilidade mas não é a melhor solução. Fazer a aplicação rodar efetivamente no servidor e acessar o dbf direto será mais vantajoso que usar o LetoDB porque terá muito mais performance, terá pelo menos a mesma confiabilidade, diminuirá tráfego da rede, facilitará a administração de tudo, evitará concorrência real já que tudo terminará mais rápido e não precisará mudar nada no código, nem uma linha sequer.
Se você fizer isso e tiver qualuer problema com acesso aos arquivos, coisa que já deveria ser rara mesmo fazendo do jeito pior (acessando o dbf diretamente pela rede) você pode procurar por sérios problemas em sue programa. DBF acessado localmente, principalamente no Harbour que está bem mais livre de bugs para dar problema, é difícil a não ser que o programa colabore. DBF e principalmente seus índices tem que ser bem administrado pelo programador. SQL é mais automático, mas DBF exige entendimento do programador do que pode ou não fazer.
Já vi mais de 1000 terminais simultâneos acessando aplicação no servidor (Linux) e acessando o dbf direto pelas instâncias das aplicações rodando nele sem problemas e rapidamente. Escolher essa opção é revolucionário. Achava que muitas pessoas já tinham descoberto isso. Hoje um servidor de menos de 5 mil reais pode rodar centenas de instâncias de uma aplicação console acessando dbf. Um computador pouco ultrapassado roda dezenas.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Ola!
Muito bom seu post, eu usei LINUX lá da época do Conectiva Linux, estava naquele boom!
Não tem comparação uma aplicação harbour no linux via ssh usei muito tempo. Nunca me deu dor de cabeça, usava Conectiva+RaiserFs+SSH+Harbour.
Porém naquela época tinha problema de suporte com drive disso, drive daquilo que não rodava no linux
Impressão vixi! era o calcanhar de Aquiles do linux.
Via TS também é outra boa alternativa.
Outra causa que deixei de usar o linux foi o ECF, NFe e outras tantas que na época não tinha no Linux, hoje quem sabe já tem essas coisas com mais facilidade.
Porém o LETODB se encaixa no caso das bases não poderem rodar todas em um único servidor, ou em uma LAN (interna) com 20/30 maquinas.
No windows tem o problema das licenças do TS, que o Letodb resolve.
Empresas com CNPJ diferente, que precisa dos estoques, contas a receber, clientes, no próprio local, para posteriormente serem integrados via algum relatório...
É uma solução rápida, enquanto o programador procura outra melhor.
Isso p/ quem usa console ainda, pois tela gráfica no linux é mais complicado p/ quem usa [x]Hb.
Saudações,
Itamar M. Lins Jr.
Muito bom seu post, eu usei LINUX lá da época do Conectiva Linux, estava naquele boom!
Não tem comparação uma aplicação harbour no linux via ssh usei muito tempo. Nunca me deu dor de cabeça, usava Conectiva+RaiserFs+SSH+Harbour.
Porém naquela época tinha problema de suporte com drive disso, drive daquilo que não rodava no linux
Via TS também é outra boa alternativa.
Outra causa que deixei de usar o linux foi o ECF, NFe e outras tantas que na época não tinha no Linux, hoje quem sabe já tem essas coisas com mais facilidade.
Porém o LETODB se encaixa no caso das bases não poderem rodar todas em um único servidor, ou em uma LAN (interna) com 20/30 maquinas.
No windows tem o problema das licenças do TS, que o Letodb resolve.
Empresas com CNPJ diferente, que precisa dos estoques, contas a receber, clientes, no próprio local, para posteriormente serem integrados via algum relatório...
É uma solução rápida, enquanto o programador procura outra melhor.
Isso p/ quem usa console ainda, pois tela gráfica no linux é mais complicado p/ quem usa [x]Hb.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Boa tarde,
Segui as dicas dos companheiros para atualizar o leto aqui e está pedido senha no CVS.
Qual seria esta senha ou estou fazendo o procedimento de atualização errado ?
Obrigado,
Rossine.
Segui as dicas dos companheiros para atualizar o leto aqui e está pedido senha no CVS.
Qual seria esta senha ou estou fazendo o procedimento de atualização errado ?
Obrigado,
Rossine.
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Repassando msg do Alexander...
Hello,
thanks for the interest to LetoDb.
The current working repository is the Sourceforge CVS, rel-1-mt branch, it isn't outdated, the last update was today ( the information in the Sourceforge's letodb main page isn't correct - that's result of a bug in Sourceforge software ).
You may use the following console command to download it:
cvs checkout -r rel-1-mt -P letodb
The github repository is my personal, I use it for testing purposes.
Regards, Alexander.
I used
cvs -d:pserver:anonymous@letodb.cvs.sourceforge.net:/cvsroot/letodb checkout -r rel-1-mt letodb
and work fine
Regards
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Olá a Todos.
Estou fazendo um teste com a LETODB e felizmente conseguir gerar as libs, só que estou com dificuldade de saber qual e a ultima versão estável desta ferramenta para comparar com a que peguei, se puderem me dar um caminho agradeço.
Runner
Estou fazendo um teste com a LETODB e felizmente conseguir gerar as libs, só que estou com dificuldade de saber qual e a ultima versão estável desta ferramenta para comparar com a que peguei, se puderem me dar um caminho agradeço.
Runner
Harbour 3.2 + Minigui Extended 16 + xDev
RDD LETO Sem Mistério
Ola, Pessoal.
Consegui baixar a versão mais recente, só que agora quando executo o LETODB.EXE no arquivo de log aparace a seguinte mensagem :
LetoDB service has had some problems: 1063
Já fiz a instalação do serviço, com letodb.exe install e continua não inicializando o servidor, se alguém tiver alguma dica, por favor....
Consegui baixar a versão mais recente, só que agora quando executo o LETODB.EXE no arquivo de log aparace a seguinte mensagem :
LetoDB service has had some problems: 1063
Já fiz a instalação do serviço, com letodb.exe install e continua não inicializando o servidor, se alguém tiver alguma dica, por favor....
Harbour 3.2 + Minigui Extended 16 + xDev


