Relatórios em rede

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

PITERGALDIANO
Usuário Nível 2
Usuário Nível 2
Mensagens: 91
Registrado em: 28 Nov 2003 08:48

Relatórios em rede

Mensagem por PITERGALDIANO »

Pessoal estou com a seguinte dúvida

tenho um banco de dados fluxo.dbf que controla a movimentação financeira de uma empresa, este programa roda em rede e no prg eu uso um set filter para filtrar somente o que o usuário querer, o problema é o seguinte:

Se dois usuários ao mesmo tempo emitir dois relatórios diferentes, como o clipper encara isso?
Piter Galdiano
Programador Clipper
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Companheiro... Não há com o que se preocupar...
Partindo do princípio de que o controle de abertura multi usuária dos DBF's esteja correto, da mesma forma que o Clipper controla a área de memória quando vc usa um SELECT ARQ por exemplo ele tbm vai controlar um SET FILTER TO... ou seja, tudo é feito na memoria RAM da máquina ou em aqruivos temporários tbm criados pelo Clipper que são "invisíveis" ao usuário.
Portanto, como eu disse no início, não há com que se preocupar...
Aproveitando o gancho.... Posso dar um conselho ?? Evite usar o SET FILTER procure outras soluções mais rápidas, principalmente em ambientes multi usuários... Use arqs temporários para seleção de registros... é muito mais tranquilo de ler e indexar... Ok ??
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amigunho

Aproveitando também o gancho

Se voce gera os arquivos antes de imprimir deve levar em consideração que o mesmo não pode ter nomes identicos, exemplo:

SET ALTERNATE TO ARQUIVO.TXT
... linhas do relatorio
SET ALTERNATE TO

No exemplo acima se um usuario for enviar o relatorio de Contas a receber em uma maquina e outro enviar o relatorio de Estoque usando o mesm arquivo o que voce obterá é uma salada de dados, tipo:

Cliente A tem 15 peças no estoque para pagar.

Neste caso use técnicas de geração dinamica de arquivos:

Eu costumo usar o timer para obter o nome do arquivo, desta forma eles nunca se repetem, exemplo:

arquivo := "_TMP"+substr(time(),6,3)+".TXT"
SET ALTERNATE TO &(arquivo)
... linhas do relatorio
SET ALTERNATE TO

Para imprimir use:

SET PRINTER TO &(arquivo)

Ou

!COPY /B &(arquivo) LPT1

Ou se sua impressora estiver em rede
!COPY /B &(arquivo) \\MAQUINA\EPSONLX

O comando acima força até para impressoras NonDOS e USB( nem todas )

@braços :?)
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Amiguinho...

É claro que a preocupação de arqs com o mesmo nome existe e quando eu trabalho em ambiente multi usuário o nome do arq temporário é sempre o nome do usuario no login da maquina ou do próprio sistema se existir... ou seja... logo no inicio do programa eu uso o "NETNAME()" ou solicito o nome do usuário... Ok ??
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Amiguinhos

só para completar :


Eu gero o arquivo antes de imprimir.

Este arquivo é gerado EM UMA PASTA LOCAL NO MICRO USUÁRIO SOLICITANTE.

Assim podemos ter o mesmo nome de arquivo .
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Responder