Página 1 de 1

Relatorio em Tela no WIN 2000

Enviado: 31 Mai 2005 13:26
por jpalma
Tenho um sistema rodando em uma rede com WIN 98, porem meu cliente susbstituiui o computador que estava como servidor e instalou o WIN XP.
Quando o servidor era com WIN 98 os relatórios eram visualizados corretamente, porem agora com o WIN XP eles aparecem em branco.
Efetuei tambem o seguinte teste, coloquei o servidor com o WIN 98 e o WIN XP como estação de trabalho e o relatório voltou a funcionar.
Porem meu cliente quer utilizar o computador novo, que esta com o WIN XP, como servidor.

Segue abaixo a rotina que utilizo.


Grato desde ja pela ajuda.


==============================
PRINCIPAL()

PRIVATE PORTA1,ESTACAO1 := GETENV("ESTACAO")
PRIVATE cArqTemp := ESTACAO1+'.TXT'

SET PRINTER TO &cArqTemp
SET DEVICE TO PRINT

SELECT("CAD_PRO")

WHILE !EOF()
@ PROW()+1,1 SAY COD_PRO
@ PROW(),10 SAY DESCRI
@ PROW(),45 SAY SALDO
@ PROW(),59 SAY QUA_PRO PICT '999999'
END

SET DEVICE TO SCREEN

IMPRE_TELA(135,0,0,24,79)



********************************************************
// ROTINA PARA IMPRESSAO EM TELA
********************************************************

FUNCTION IMPRE_TELA(nTamLin,Lin1,Col1,Lin2,Col2)


LOCAL cAlias := ALIAS()
LOCAL nOrdem := INDEXORD()
LOCAL nI := 1
PRIVATE nLinMenu := 1
PRIVATE cArqPrn2 := SUBSTR(cArqTemp,1,AT(".",cArqTemp))+"#"+SUBSTR(cArqTemp,AT(".",cArqTemp)+2,2)
PRIVATE nQuantReg := 0
PRIVATE nUltPos := 0
PRIVATE nMargEsq := 0

//cArqPrn2 := 'MICRO1'

//DELETE FILE &cArqPrn2.DBF

MENSAGEMN("Aguarde o processamento")
cArq := cArqPrn2
aEstr := {{"LINHA","C",nTamLin+1,0}}
DBCREATE("&cArqPrn2",aEstr)
USE &cArqPrn2 ALIAS PRN2 EXCLUSIVE NEW
APPEND FROM &cArqTemp SDF
nQuantReg := LASTREC()
IF nQuantReg == 0
nQuantReg := 1
ENDIF
DBGOTOP()
JANELA(Lin1,Col1,Lin2,Col2)
//@ nLinMenu+1,120 SAY CHR(30)
//@ 22,120 SAY CHR(31)

IF nTamLin < 72
DECLARE EDITAR[1]
EDITAR[1] := "SUBS(LINHA,nMargEsq)"
ELSE
IF (INT(nTamLin/40) == nTamLin/40,nNumCol := nTamLin/40,nNumCol := INT(nTamLin/40)+1 )
DECLARE EDITAR[nNumCol]
DO WHILE nI < nNumCol
nNumMat := (nI*40)-38
EDITAR[nI] := "SUBS(LINHA,"+STR(nNumMat,3)+",120)"
nI ++
ENDDO
nNumMat := (nI*40)-38
EDITAR[nI] := "SUBS(LINHA,"+STR(nNumMat,3)+")+SPACE("+STR((nNumCol*40)-nTamLin,2)+")"
ENDIF
KEYBOARD CHR(65)
nUltPos := nLinMenu
//MENSAGEMN("Tecle <ESC> para sair ou <ALT>+<I> para imprimir")
//SETCOLOR(COR(4)+","+COR(7))
SETCOLOR('W+/B')
DBEDIT(LIN1+1,COL1+1,LIN2-1,COL2-1,EDITAR,"FUNIMP","","","","")
CLOSE PRN2
/*
WHILE .T.
IF FERASE(cArqTemp) == 0
EXIT
ENDIF
ENDDO
WHILE .T.
IF FERASE(cArqPrn2) == 0
EXIT
ENDIF
ENDDO
*/
RETURN NIL
//SELECT(cALIAS)
//DBSETORDER(nORDEM)

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

FUNCTION FUNIMP()
IF LASTKEY() == 27
RETURN 0
ELSEIF LASTKEY() == 1
DBGOTOP()
ELSEIF LASTKEY() == 6
DBGOBOTTOM()
ELSEIF LASTKEY() == 279
BEEP()
IF PERGUNTA("Deseja imprimir o relatorio ?") == "S"
SET CONSOLE OFF
TYPE &cArqTemp TO PRINTER
SET CONSOLE ON
ENDIF
ENDIF
COR("BOX DA JANELA DE DIALOGO")
//@ nUltPos+1,128 SAY " "
//nUltPos := nLinMenu+(((RECNO()*100)/nQuantReg)/(100/(20-(nLinMenu+1))))
//IF RECNO() == 1
// nUltPos := nLinMenu+1
//ENDIF
//@ nUltPos+1,128 SAY CHR(4)
//SETCOLOR(COR(4)+","+COR(7))
RETURN 1

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

FUNCTION FUNCFG(nPARAM)
LOCAL cCOR,nCFG
IF LASTKEY()=13
RETURN 1
ELSEIF LASTKEY()=27
RETURN 0
ELSEIF nPARAM == 1
KEYBOARD CHR(30)
ELSEIF nPARAM == 2
KEYBOARD CHR(31)
ENDIF
cCOR := SETCOLOR()
COR("MENU")
FOR nCFG = 1 TO LEN(MENU_CFG)
@ 09+nCFG,34 SAY " "
NEXT
SETCOLOR(cCOR)
RETURN 2

Relatorio em tela WIN 2000 - Alguem pode me ajudar ?

Enviado: 01 Jun 2005 13:19
por jpalma
Alguem tem uma dica ?


sds