Boa tarde!
Estou com um probleminha: Tenho um sistema q roda em Rede, ele fica no servidor, e nas estações eu mando gerar um determinado
relatorio, para ser impresso pelo Prwin39, numa impressora Lx300 q tb estar conectada no servidor Ok.
Qdo eu gero esse relatorio no servidor, como a base estar no servidor, o relatorio é gerado e impresso rapidamente, mas qdo estou no
terminal, e tb tem usuario utilizando o mesmo banco, a geração fica muito demorada, chega a irritar e não libera para impressão.
Já depois de gerado, o relatorio pelo Prwim é impresso rapidinho.
Eu preciso trabalhar com tres (3) estações e um Servidor, gerando comandas e imprimimdo automaticamente na Lx-300, mas a demora
na geração do relatorio nas estações é gde.
Gostaria de uma ajuda.
Tirei até a Rotina de impressão do sistema e criei um programa só para gerar e imprimir as comandas, para vê se ficava mais rápido,
mas até agora nada.
Vou postar o meu prg para vcs analizarem e ve se eu estou errando em alguma coisa.
Estou usando Windows XP
Clliper 5.2
RTlink
Código: Selecionar todos
**************************************************************************************************************************************
Use CadTab Inde CadTabCd Shared alias a_CadTab New
Use CadEqu Inde CadEquCd,CadEquDe Shared alias a_CadEqu New
Use EstEqu Inde EstEquCd,EstEquDm,EstEquCo,EstEquCb,EstEquCe,EstEquDt,EstEquTm Shared alias a_EstEqu New
Use MovEst Inde MovEstCd,MovEstDm,MovEstCo,MovEstCb,MovEstCe,MovEstSq Shared alias a_MovEst New
Use CadMat Inde CadMatCd,CadMatNo,cadMatIr,CadMatSt,CadMatTp Shared alias a_CadMat New
Select a_EstEqu
Set Orde To 7
Do while .t.
Mensagem('Tecle [ESC] para Retornar...')
Set Curs On
Save Scre To mSgEstEqu
Set Colo To /bg
@ 03,03 Clear To 19,76
Select a_MovEst
Set Orde To 6
Go Botto
wCodSeq:=CodSeq
wCodEqu:=CodEqu
wDatEnt:=DatEnt
Go Top
Set Orde To
Set Colo To w+/bg
@ 04,04 Say 'Codigo Seq.:'
@ 06,04 Say 'Codigo Equ.:'
Set Colo To &C_CorGet
@ 04,17 Get wCodSeq Pict '999999'
@ 06,17 Get wCodEqu Pict '99'
Read
Clea Gets
If LastKey() = 27
DbCloseAll()
Rest Scre From SgImpSai
Quit
Endif
Select a_CadEqu
Set Orde To 1
DbSeek(wCodEqu)
If Eof()
Som()
Mensagem('Equipe NÆo Cadastrada...Tecle [ENTER]')
Set Curs Off
Inkey(0)
Rest Scre From SgImpSai
Loop
Endif
wDesEqu:=DesEqu
Select a_MovEst
Go Top
wBak='ArqTem'+Substr(Time(),07,02)+'.Dbf'
Copy To &wBak For wCodEqu = CodEqu .and. wCodSeq = CodSeq
Use &wBak Exclusive Alias a_Bak New
Select a_Bak
Go Top
If Eof()
Som()
Mensagem('Arquivo Vazio... Tecle [ENTER]')
Set Curs Off
Inkey(0)
DbCloseArea()
Erase('&wBak')
Select a_EstEqu
Rest Scre From SgImpSai
Loop
Endif
wCt:=0
Count To wCt
Go Top
wConf:='.'
Do while !wConf$' ,C'
wConf:=' '
Set Inte Off
Mensagem('Tecle (C)ancelar ou [ENTER] Continua...')
Set Colo To w+/r
@ 23,42 Get wConf Pict '@!'
Read
Mensagem('')
Set Inte On
Set Colo To
Clea Gets
Enddo
If wConf # ' '
Mensagem('LISTAGEM ABORTADA...')
Set Curs Off
Inkey(1)
Som()
Quit
Endif
Set Curs Off
Set Colo To
If !Isprinter()
Som()
Mensagem('Ligue Impressora...')
Inkey(1)
Set Colo To
Endif
If !Isprinter()
Som()
Mensagem('LISTAGEM ABORTADA...')
Quit
Endif
Mensagem('Aguarde! Imprimindo Requisi‡„o Material...')
Set Curs Off
wBak1='ArqTem'+Substr(Time(),07,02)+'.Prn'
Set Devi To Prin
Set Printer To C:\Suporte\&wBak1
@ Prow(),00 Say Chr(27)+"P"+Chr(15)
wCont:=2
wCt:=1
Do while wCt <= wCont
@ Prow() ,000 Say ' '
@ Prow()+1,001 Say wEmp
@ Prow() ,105 Say 'Nro. da Saida .... :'
@ Prow() ,131 Say wCodSeq
@ Prow()+1,001 Say 'Codigo da Equipe ..:'
@ Prow() ,021 Say wCodEqu Pict '99'
@ Prow() ,022 Say '-'
@ Prow() ,023 Say wDesEqu
@ Prow() ,105 Say 'Emissao ...........:'
@ Prow() ,127 Say wDatEnt
@ Prow()+1,001 Say Replicate('-',136)
@ Prow()+1,001 Say 'No.'
@ Prow() ,005 Say 'Codigo'
@ Prow() ,021 Say 'Descricao Material'
@ Prow() ,083 Say 'Ird'
@ Prow() ,105 Say 'Qtde'
@ Prow() ,132 Say 'Custo'
@ Prow()+1,001 Say Replicate('-',136)
wl:=1
wi:=0
wc:=5
Do while !Eof()
wi:=wi+1
@ Prow()+wl,001 Say wi Pict '999'
@ Prow() ,005 Say CodMat
@ Prow() ,021 Say DesMat
@ Prow() ,083 Say CodBar
@ Prow() ,105 Say EstAtu Pict '9999'
@ Prow() ,129 Say CusMat Pict '@e 9,999.99'
wc:=wc+1
DbSkip()
Enddo
wl:=28-wc
@ Prow()+wl,001 Say Replicate('-',30)
@ Prow()+01,006 Say 'Assinatura Tecnico'
@ Prow()+05,000 Say ''
wCt:=wCt+1
Go Top
Enddo
Exit
EndDo
@ Prow(),00 Say Chr(27)+"P"+Chr(18)
Set Print Off
Set Console On
Set Print To
Set Devi To Scre
DbCloseAll()
Rest Scre From SgImpSai
Quit
