VASCON
-
Posts
233 -
Joined
-
Last visited
Posts posted by VASCON
-
-
Vejam se podem me ajudar, por favor:
Tenho que imprimir um relatório grande que dividi em várias funções. Abaixo está a declaração de variáveis, a definição de impressora, fontes, etc. (apenas o que interessa para a questão)
Logo depois tenho uma das funções.
Quando mando imprimir dá erro dizendo que não encontra a variável oPrn, pois ela foi declarada como local. Se declaro como estatica dá erro em: oPrn:nVertRes()
Estou usando a FW24
Grato
Nilson
**======================= Jato de Tinta =============================================================
Function GENRE2()
Local oPrn, oFont, oFont1
Local nRowStep, nColStep
Local nRow := 0, numpagina := 0
Local qtdcolunas := 80 // quantidade de colunas
Local qtdlinhas := 60 // quantidade de linhas
Local numlinha := 0 // contador de linhas por pagina
M->K:=PAG:=AB:=AD:=0
MASO:=SOMA1:=SOMA2:=SOMA3:=SOMA4:=0
SUBSOMA1:=SUBSOMA2:=SUBSOMA3:=SUBSOMA4:=0
TOTA1:=SOMA1:=SOMA2:=SOMA3:=SOMA4:=SOMA5:=SOMA6:=SOMA7:=SOMA8:=SOMA9:=SOMA10:=0
SOMA11:=SOMA12:=SOMA13:=SOMA14:=SOMA18:=0
SOMAA:=SOMAB:=SOMAC:=SOMAD:=SOMAE:=SOMAF:=SOMAG:=SOMAH:=0
MASO=0.01
TOTA1:=SOMA1:=0
MASO=0.01
SAMO=0
PAGINA=1
CONTA=0
PRINT oPrn PREVIEW
if Empty( oPrn:hDC )
msginfo("Impressora não esta preparada, verifique !!!","Mensagem de Alerta")
return nil
endif
DEFINE FONT oFont NAME "Arial" SIZE 0, -12 OF oPrn
DEFINE FONT oFont1 NAME "Arial" SIZE 0, -09 OF oPrn
nRowStep = oPrn:nVertRes() / qtdlinhas
nColStep = oPrn:nHorzRes() / qtdcolunas
PAGE
PAGE:=0
numpagina := 0
numlinha++
nRow += nRowStep
STATIC FUNCTION DOFISJ()
oPrn:Say(nRow, 000*nColStep, "|",oFont1)
oPrn:Say(nRow, 001*nColStep, TAPE,oFont1)
oPrn:Say(nRow, 011*nColStep, "|",oFont1)
oPrn:Say(nRow, 012*nColStep, COT,oFont1)
oPrn:Say(nRow, 016*nColStep, "|",oFont1)
oPrn:Say(nRow, 017*nColStep, ALLTRIM(CRECO),oFont1)
oPrn:Say(nRow, 020*nColStep, ALLTRIM(CRESU),oFont1)
oPrn:Say(nRow, 022*nColStep, "|",oFont1)
oPrn:Say(nRow, 024*nColStep, ALLTRIM(DONU),oFont1)
oPrn:Say(nRow, 032*nColStep, "|",oFont1)
oPrn:Say(nRow, 033*nColStep, DOCTO,oFont1)
oPrn:Say(nRow, 043*nColStep, "|",oFont1)
oPrn:Say(nRow, 045*nColStep, INSCE,oFont1)
oPrn:Say(nRow, 059*nColStep, "|",oFont1)
oPrn:Say(nRow, 061*nColStep, TADO ,oFont1)
oPrn:Say(nRow, 064*nColStep, "|",oFont1)
oPrn:Say(nRow, 066*nColStep, ALLTRIM(TRANSFORM(RALO, "@E 999,999,999.99"),oFont),,39,,,1)
oPrn:Say(nRow, 080*nColStep, "|",oFont1)
oPrn:Say(nRow, 082*nColStep, " ",oFont1)
oPrn:Say(nRow, 086*nColStep, "|",oFont1)
oPrn:Say(nRow, 087*nColStep, TODE,oFont1)
oPrn:Say(nRow, 093*nColStep, "|",oFont1)
RETURN(.T.)
-
Vejam se podem me ajudar, por favor:
Tenho que imprimir um relatório grande que dividi em várias funções. Abaixo está a declaração de variáveis, a definição de impressora, fontes, etc. (apenas o que interessa para a questão)
Logo depois tenho uma das funções.
Quando mando imprimir dá erro dizendo que não encontra a variável oPrn, pois ela foi declarada como local. Se declaro como estatica dá erro em: oPrn:nVertRes()
Estou usando a FW24
Grato
Nilson
**======================= Jato de Tinta =============================================================
Function GENRE2()
Local oPrn, oFont, oFont1
Local nRowStep, nColStep
Local nRow := 0, numpagina := 0
Local qtdcolunas := 80 // quantidade de colunas
Local qtdlinhas := 60 // quantidade de linhas
Local numlinha := 0 // contador de linhas por pagina
M->K:=PAG:=AB:=AD:=0
MASO:=SOMA1:=SOMA2:=SOMA3:=SOMA4:=0
SUBSOMA1:=SUBSOMA2:=SUBSOMA3:=SUBSOMA4:=0
TOTA1:=SOMA1:=SOMA2:=SOMA3:=SOMA4:=SOMA5:=SOMA6:=SOMA7:=SOMA8:=SOMA9:=SOMA10:=0
SOMA11:=SOMA12:=SOMA13:=SOMA14:=SOMA18:=0
SOMAA:=SOMAB:=SOMAC:=SOMAD:=SOMAE:=SOMAF:=SOMAG:=SOMAH:=0
MASO=0.01
TOTA1:=SOMA1:=0
MASO=0.01
SAMO=0
PAGINA=1
CONTA=0
PRINT oPrn PREVIEW
if Empty( oPrn:hDC )
msginfo("Impressora não esta preparada, verifique !!!","Mensagem de Alerta")
return nil
endif
DEFINE FONT oFont NAME "Arial" SIZE 0, -12 OF oPrn
DEFINE FONT oFont1 NAME "Arial" SIZE 0, -09 OF oPrn
nRowStep = oPrn:nVertRes() / qtdlinhas
nColStep = oPrn:nHorzRes() / qtdcolunas
PAGE
PAGE:=0
numpagina := 0
numlinha++
nRow += nRowStep
STATIC FUNCTION DOFISJ()
oPrn:Say(nRow, 000*nColStep, "|",oFont1)
oPrn:Say(nRow, 001*nColStep, TAPE,oFont1)
oPrn:Say(nRow, 011*nColStep, "|",oFont1)
oPrn:Say(nRow, 012*nColStep, COT,oFont1)
oPrn:Say(nRow, 016*nColStep, "|",oFont1)
oPrn:Say(nRow, 017*nColStep, ALLTRIM(CRECO),oFont1)
oPrn:Say(nRow, 020*nColStep, ALLTRIM(CRESU),oFont1)
oPrn:Say(nRow, 022*nColStep, "|",oFont1)
oPrn:Say(nRow, 024*nColStep, ALLTRIM(DONU),oFont1)
oPrn:Say(nRow, 032*nColStep, "|",oFont1)
oPrn:Say(nRow, 033*nColStep, DOCTO,oFont1)
oPrn:Say(nRow, 043*nColStep, "|",oFont1)
oPrn:Say(nRow, 045*nColStep, INSCE,oFont1)
oPrn:Say(nRow, 059*nColStep, "|",oFont1)
oPrn:Say(nRow, 061*nColStep, TADO ,oFont1)
oPrn:Say(nRow, 064*nColStep, "|",oFont1)
oPrn:Say(nRow, 066*nColStep, ALLTRIM(TRANSFORM(RALO, "@E 999,999,999.99"),oFont),,39,,,1)
oPrn:Say(nRow, 080*nColStep, "|",oFont1)
oPrn:Say(nRow, 082*nColStep, " ",oFont1)
oPrn:Say(nRow, 086*nColStep, "|",oFont1)
oPrn:Say(nRow, 087*nColStep, TODE,oFont1)
oPrn:Say(nRow, 093*nColStep, "|",oFont1)
RETURN(.T.)
-
Luiz Augusto:
Muito obrigado. Funcionou!
Ficou 10
Grato
NILSON
-
PESSOAL, BOM DIA!
COMO FAÇO PARA CRIAR UMA CAIXA DE DIALOGO, COM ROLAGEM DE CURSOR NA VERTICAL.
NÃO SERIA LISTBOX NEM TBROUSE, APENAS UMA CAIXA ONDE MOSTRARIA INFORMAÇÕES NECESSÃRIAS, MAS QUE PERMITISSE UMA ROLAGEM VERTICAL, OU SEJA, A INFORMAÇÕES ROLARIAM DENTRO DESSA CAIXA.
GRATO PELA ATENÇÃO
NILSON
-
PESSOAL, BOM DIA!
COMO FAÇO PARA CRIAR UMA CAIXA DE DIALOGO, COM ROLAGEM DE CURSOR NA VERTICAL.
NÃO SERIA LISTBOX NEM TBROUSE, APENAS UMA CAIXA ONDE MOSTRARIA INFORMAÇÕES NECESSÃRIAS, MAS QUE PERMITISSE UMA ROLAGEM VERTICAL, OU SEJA, A INFORMAÇÕES ROLARIAM DENTRO DESSA CAIXA.
GRATO PELA ATENÇÃO
NILSON
-
BOM DIA PESSOAL!
Pela experiencia de vocês, o que torna o programa mais seguro e com melhor desempenho:
a) instalação do executável no servidor para ser chamado pelos usuários; ou
instalação do executável em cada usúário para buscar os dados no servidor.
abraços
NILSON
-
BOM DIA PESSOAL!
Pela experiencia de vocês, o que torna o programa mais seguro e com melhor desempenho:
a) instalação do executável no servidor para ser chamado pelos usuários; ou
instalação do executável em cada usúário para buscar os dados no servidor.
abraços
NILSON
-
BOM DIA PESSOAL!
Ve se voces podem me dar uma dica:
tenho um programa que o conjunto de informações nos DBF's gira em torno de 1 milhão de registros.
Roda em um servidor com mais 3 usuarios, sem qualquer problema. É só clicar em qualquer item do menu que abre rapidamente a caixa de diagolo correspondente. DETALHE: REDE COM FIOS.
Instalei o mesmo programa em um servidor com mais 6 usuarios, sem qualquer informação nos DBF's, portanto, vazio de tudo, no entanto, pra abrir qualquer caixa de dialogo está demorando muito. Isso sem manipular qualquer informação dos DBF's, simplesmente pra abrir a caixa de dialogo. DETALHE: REDE SEM FIOS.
PERGUNTA: Hà ALGUMA INFLUÊNCIA NO VELOCIDADE DO PROGRAMA QUANDO SE USE REDE COM FIOS E REDE SEM FIOS
Estou usando FW24
Abraço a todos.
NILSON
-
BOM DIA PESSOAL!
Ve se voces podem me dar uma dica:
tenho um programa que o conjunto de informações nos DBF's gira em torno de 1 milhão de registros.
Roda em um servidor com mais 3 usuarios, sem qualquer problema. É só clicar em qualquer item do menu que abre rapidamente a caixa de diagolo correspondente. DETALHE: REDE COM FIOS.
Instalei o mesmo programa em um servidor com mais 6 usuarios, sem qualquer informação nos DBF's, portanto, vazio de tudo, no entanto, pra abrir qualquer caixa de dialogo está demorando muito. Isso sem manipular qualquer informação dos DBF's, simplesmente pra abrir a caixa de dialogo. DETALHE: REDE SEM FIOS.
PERGUNTA: Hà ALGUMA INFLUÊNCIA NO VELOCIDADE DO PROGRAMA QUANDO SE USE REDE COM FIOS E REDE SEM FIOS
Estou usando FW24
Abraço a todos.
NILSON
-
Pessoal, mais uma ajuda
Porque ao chamar um atalho de um programa em rede, em algumas máquinas (todos XP), aparece aquele ActiveX (O Editor não pode ser verificado - Aviso de Segurança).
Como inibir isso?
Porque aparece somente em algumas maquinas?
NILSON
-
Pessoal, mais uma ajuda
Porque ao chamar um atalho de um programa em rede, em algumas máquinas (todos XP), aparece aquele ActiveX (O Editor não pode ser verificado - Aviso de Segurança).
Como inibir isso?
Porque aparece somente em algumas maquinas?
NILSON
-
Pessoal, boa tarde!
Gostaria que alguem me ajudasse no seguinte:
Porque a visualição no FiveWin Report em uma máquina aparece sem qualquer problema, e em outra não?
Exemplo: em uma máquina: 5.500,00; em outra .500,00 (quebrada)
Estou usando a FW24
Para melhor avaliação colei parte do PRG (abaixo)
Abraço a todos
NILSON
**----------------------- Jato de Tinta --------------------------------------------------------
STATIC FUNCTION JATINTA()
Local oPrn,a,oBrush,oFnt,oFnt2,oFnt3,oFnt4,oFnt5,oPen1
oSOMA:=oSOMA1:=oSOMA2:=oS0MA3:=mSOMA:=mSOMA1:=mSOMA2:=mSOMA3:=mCONTA:=0
PRINT oPrn PREVIEW
DEFINE FONT oFnt5 NAME "Arial" SIZE 0,-30 BOLD OF oPrn
DEFINE FONT oFnt NAME "Arial" SIZE 0,-12 BOLD OF oPrn
DEFINE FONT oFnt1 NAME "Arial" SIZE 0,-10 BOLD OF oPrn
DEFINE FONT oFnt2 NAME "Arial" SIZE 0,-09 BOLD OF oPrn
DEFINE FONT oFnt3 NAME "Arial" SIZE 0,-08 BOLD OF oPrn
DEFINE FONT oFnt4 NAME "Arial" SIZE 0,-30 NESCAPEMENT 900
DEFINE FONT oFnt6 NAME "Arial" SIZE 0,-20 BOLD OF oPrn
DEFINE FONT oFnt7 NAME "Arial" SIZE 0,-25 NESCAPEMENT 900
DEFINE FONT oFnt8 NAME "Arial" SIZE 0,-50 NESCAPEMENT 900
DEFINE BRUSH oBrush COLOR 14671839
DEFINE PEN oPen1 WIDTH 3
PAGE
PAGE:=0
IF mLELE > mULMOV
M->mLELE:=mULMOV - 1
ENDIF
M->SALDO:="N"
SELECT LANC1
FINAL:=LASTREC()
WPASSO:=FINAL/500
oMeter:Set(0)
oMeter:nTotal = FINAL
SET SOFTSEEK ON
M->BA=0
K:=0
numpagina := 0
GOTO TOP
SEEK mTACO
DO WHILE .T.
IF K < 3
oPrn:SetFont(oFnt)
oPrn:cmSay(K,08, mCLI001, oFnt )
K=K+0.5
oPrn:cmSay(K,03, mCLI002+" "+mCLI003+" "+mCLI004+" "+mCLI005, oFnt )
K=K+0.5
oPrn:cmSay(K,08, "CNPJ:" + mCLI006,oFnt )
K=K+0.5
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:SetFont(oFnt2)
oPrn:cmSay(K,00.2,"EXTRATO DA CONTA NR.:",oFnt2)
oPrn:cmSay(K,04,mTACO,oFnt2)
oPrn:cmSay(K,06,mCOTA,oFnt2)
K=K+1
oPrn:cmSay(K,00.2,"DATA",oFnt2)
oPrn:cmSay(K,02.0,"|",oFnt2)
oPrn:cmSay(K,02.1,"DOCUMENTO",oFnt2)
oPrn:cmSay(K,04.2,"|",oFnt2)
oPrn:cmSay(K,04.3,"HISTORICO",oFnt2)
oPrn:cmSay(K,12.0,"|",oFnt2)
oPrn:cmSay(K,12.1,"DEBITO",oFnt2)
oPrn:cmSay(K,15.0,"|",oFnt2)
oPrn:cmSay(K,15.1,"CREDITO",oFnt2)
oPrn:cmSay(K,18.0,"|",oFnt2)
oPrn:cmSay(K,18.1,"SALDO",oFnt2)
K=K+1
ENDIF
IF CONTA < mTACO
SKIP(+1)
LOOP
ENDIF
IF CONTA = mTACO
IF DTOS(TAPE) < DTOS(mLELE)
M->mTADA:=TAPE
oTADA:Refresh()
M->mTITU:=DONU
oTITU:Refresh()
SKIP(+1)
LOOP
ENDIF
IF DTOS(TAPE) >= DTOS(mLELE) .AND. DTOS(TAPE) <= DTOS(mLILI)
oMeter:Set(nRecno+1)
M->mTADA:=TAPE
oTADA:Refresh()
M->mTITU:=DONU
oTITU:Refresh()
M->AB:=1
M->mDIAMES:=TAPE
mDOCPLI:=DONU
IF BA = 0
M->mSOMA=SALANT
M->BA = 1
ENDIF
M->mVALPLI:=RALO
M->mPAGPLI:=ALOR
M->mDESPLI:=COHIS
M->mSOMA1=mSOMA-RALO+ALOR
DBSETORDER(0)
IF RECLOCK(4)
REPLACE SALANT WITH mSOMA,SALPOS WITH mSOMA1
DBSETORDER(1)
COMMIT
UNLOCK
ENDIF
IF BA = 1
M->mSOMA:=SALPOS
ENDIF
oPrn:SetFont(oFnt2)
oPrn:cmSay(K,00.2,DTOC(mDIAMES),oFnt2)
oPrn:cmSay(K,02.0,"|",oFnt2)
oPrn:cmSay(K,02.1,mDOCPLI,oFnt2)
oPrn:cmSay(K,04.2,"|",oFnt2)
oPrn:cmSay(K,04.3,LEFT(mDESPLI,61),oFnt2)
oPrn:cmSay(K,12.0,"|",oFnt2)
oPrn:cmSay(K,13.5, ALLTRIM(TRANSFORM(mVALPLI, "@ZE 999,999.99"), oFnt2),,100,,,1)
oPrn:cmSay(K,15.0,"|",oFnt2)
oPrn:cmSay(K,16.5, ALLTRIM(TRANSFORM(mPAGPLI, "@ZE 999,999.99"), oFnt2),,100,,,1)
oPrn:cmSay(K,18.0,"|",oFnt2)
oPrn:cmSay(K,19.1, ALLTRIM(TRANSFORM(mSOMA1, "@ZE 999,999.99"), oFnt2),,100,,,1)
K=K+0.5
M->SALDO:="S"
SKIP(+1)
ENDIF
IF K >= 55
numpagina = numpagina + 1
oPrn:SetFont(oFnt)
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:cmSay(K,00.2,"N.A.N.V.",oFnt2)
oPrn:cmSay(K,16,"Pagina:",oFnt2)
oPrn:cmSay(K,18,Strzero(numpagina,6,0),oFnt2)
PAGE++
numlinha = 0
nRow := 0
ENDPAGE
PAGE
Endif
IF DTOS(TAPE) > DTOS(mLILI)
AZ:=1
Exit
ENDIF
ENDIF
IF CONTA > mTACO
AZ:=1
Exit
ENDIF
IF EOF()
AZ:=1
Exit
ENDIF
Enddo
IF AZ=1
numpagina = numpagina + 1
oPrn:SetFont(oFnt)
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:cmSay(K,00.2,"N.A.N.V.",oFnt2)
oPrn:cmSay(K,17.8,"Pagina:",oFnt2)
oPrn:cmSay(K,19.3,Strzero(numpagina,6,0),oFnt2)
PAGE++
numlinha = 0
nRow := 0
ENDPAGE
PAGE
Endif
SELECT NONA
IF SALDO = "S"
DBSETORDER(0)
IF RECLOCK(4)
REPLACE ULMOV WITH mDIAMES
DBSETORDER(1)
COMMIT
UNLOCK
ENDIF
ENDIF
ENDPAGE
ENDPRINT
oFnt5:End()
oFnt:End()
oFnt1:End()
oFnt2:End()
oFnt3:End()
oFnt4:End()
oFnt6:End()
oFnt7:End()
oFnt8:End()
SELECT LANC1
GOTO BOTTOM
SKIP -7
return NIL
-
Pessoal, boa tarde!
Gostaria que alguem me ajudasse no seguinte:
Porque a visualição no FiveWin Report em uma máquina aparece sem qualquer problema, e em outra não?
Exemplo: em uma máquina: 5.500,00; em outra .500,00 (quebrada)
Estou usando a FW24
Para melhor avaliação colei parte do PRG (abaixo)
Abraço a todos
NILSON
**----------------------- Jato de Tinta --------------------------------------------------------
STATIC FUNCTION JATINTA()
Local oPrn,a,oBrush,oFnt,oFnt2,oFnt3,oFnt4,oFnt5,oPen1
oSOMA:=oSOMA1:=oSOMA2:=oS0MA3:=mSOMA:=mSOMA1:=mSOMA2:=mSOMA3:=mCONTA:=0
PRINT oPrn PREVIEW
DEFINE FONT oFnt5 NAME "Arial" SIZE 0,-30 BOLD OF oPrn
DEFINE FONT oFnt NAME "Arial" SIZE 0,-12 BOLD OF oPrn
DEFINE FONT oFnt1 NAME "Arial" SIZE 0,-10 BOLD OF oPrn
DEFINE FONT oFnt2 NAME "Arial" SIZE 0,-09 BOLD OF oPrn
DEFINE FONT oFnt3 NAME "Arial" SIZE 0,-08 BOLD OF oPrn
DEFINE FONT oFnt4 NAME "Arial" SIZE 0,-30 NESCAPEMENT 900
DEFINE FONT oFnt6 NAME "Arial" SIZE 0,-20 BOLD OF oPrn
DEFINE FONT oFnt7 NAME "Arial" SIZE 0,-25 NESCAPEMENT 900
DEFINE FONT oFnt8 NAME "Arial" SIZE 0,-50 NESCAPEMENT 900
DEFINE BRUSH oBrush COLOR 14671839
DEFINE PEN oPen1 WIDTH 3
PAGE
PAGE:=0
IF mLELE > mULMOV
M->mLELE:=mULMOV - 1
ENDIF
M->SALDO:="N"
SELECT LANC1
FINAL:=LASTREC()
WPASSO:=FINAL/500
oMeter:Set(0)
oMeter:nTotal = FINAL
SET SOFTSEEK ON
M->BA=0
K:=0
numpagina := 0
GOTO TOP
SEEK mTACO
DO WHILE .T.
IF K < 3
oPrn:SetFont(oFnt)
oPrn:cmSay(K,08, mCLI001, oFnt )
K=K+0.5
oPrn:cmSay(K,03, mCLI002+" "+mCLI003+" "+mCLI004+" "+mCLI005, oFnt )
K=K+0.5
oPrn:cmSay(K,08, "CNPJ:" + mCLI006,oFnt )
K=K+0.5
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:SetFont(oFnt2)
oPrn:cmSay(K,00.2,"EXTRATO DA CONTA NR.:",oFnt2)
oPrn:cmSay(K,04,mTACO,oFnt2)
oPrn:cmSay(K,06,mCOTA,oFnt2)
K=K+1
oPrn:cmSay(K,00.2,"DATA",oFnt2)
oPrn:cmSay(K,02.0,"|",oFnt2)
oPrn:cmSay(K,02.1,"DOCUMENTO",oFnt2)
oPrn:cmSay(K,04.2,"|",oFnt2)
oPrn:cmSay(K,04.3,"HISTORICO",oFnt2)
oPrn:cmSay(K,12.0,"|",oFnt2)
oPrn:cmSay(K,12.1,"DEBITO",oFnt2)
oPrn:cmSay(K,15.0,"|",oFnt2)
oPrn:cmSay(K,15.1,"CREDITO",oFnt2)
oPrn:cmSay(K,18.0,"|",oFnt2)
oPrn:cmSay(K,18.1,"SALDO",oFnt2)
K=K+1
ENDIF
IF CONTA < mTACO
SKIP(+1)
LOOP
ENDIF
IF CONTA = mTACO
IF DTOS(TAPE) < DTOS(mLELE)
M->mTADA:=TAPE
oTADA:Refresh()
M->mTITU:=DONU
oTITU:Refresh()
SKIP(+1)
LOOP
ENDIF
IF DTOS(TAPE) >= DTOS(mLELE) .AND. DTOS(TAPE) <= DTOS(mLILI)
oMeter:Set(nRecno+1)
M->mTADA:=TAPE
oTADA:Refresh()
M->mTITU:=DONU
oTITU:Refresh()
M->AB:=1
M->mDIAMES:=TAPE
mDOCPLI:=DONU
IF BA = 0
M->mSOMA=SALANT
M->BA = 1
ENDIF
M->mVALPLI:=RALO
M->mPAGPLI:=ALOR
M->mDESPLI:=COHIS
M->mSOMA1=mSOMA-RALO+ALOR
DBSETORDER(0)
IF RECLOCK(4)
REPLACE SALANT WITH mSOMA,SALPOS WITH mSOMA1
DBSETORDER(1)
COMMIT
UNLOCK
ENDIF
IF BA = 1
M->mSOMA:=SALPOS
ENDIF
oPrn:SetFont(oFnt2)
oPrn:cmSay(K,00.2,DTOC(mDIAMES),oFnt2)
oPrn:cmSay(K,02.0,"|",oFnt2)
oPrn:cmSay(K,02.1,mDOCPLI,oFnt2)
oPrn:cmSay(K,04.2,"|",oFnt2)
oPrn:cmSay(K,04.3,LEFT(mDESPLI,61),oFnt2)
oPrn:cmSay(K,12.0,"|",oFnt2)
oPrn:cmSay(K,13.5, ALLTRIM(TRANSFORM(mVALPLI, "@ZE 999,999.99"), oFnt2),,100,,,1)
oPrn:cmSay(K,15.0,"|",oFnt2)
oPrn:cmSay(K,16.5, ALLTRIM(TRANSFORM(mPAGPLI, "@ZE 999,999.99"), oFnt2),,100,,,1)
oPrn:cmSay(K,18.0,"|",oFnt2)
oPrn:cmSay(K,19.1, ALLTRIM(TRANSFORM(mSOMA1, "@ZE 999,999.99"), oFnt2),,100,,,1)
K=K+0.5
M->SALDO:="S"
SKIP(+1)
ENDIF
IF K >= 55
numpagina = numpagina + 1
oPrn:SetFont(oFnt)
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:cmSay(K,00.2,"N.A.N.V.",oFnt2)
oPrn:cmSay(K,16,"Pagina:",oFnt2)
oPrn:cmSay(K,18,Strzero(numpagina,6,0),oFnt2)
PAGE++
numlinha = 0
nRow := 0
ENDPAGE
PAGE
Endif
IF DTOS(TAPE) > DTOS(mLILI)
AZ:=1
Exit
ENDIF
ENDIF
IF CONTA > mTACO
AZ:=1
Exit
ENDIF
IF EOF()
AZ:=1
Exit
ENDIF
Enddo
IF AZ=1
numpagina = numpagina + 1
oPrn:SetFont(oFnt)
oPrn:cmSay(K,00.2, REPLICATE("-",230),oFnt2)
K=K+0.5
oPrn:cmSay(K,00.2,"N.A.N.V.",oFnt2)
oPrn:cmSay(K,17.8,"Pagina:",oFnt2)
oPrn:cmSay(K,19.3,Strzero(numpagina,6,0),oFnt2)
PAGE++
numlinha = 0
nRow := 0
ENDPAGE
PAGE
Endif
SELECT NONA
IF SALDO = "S"
DBSETORDER(0)
IF RECLOCK(4)
REPLACE ULMOV WITH mDIAMES
DBSETORDER(1)
COMMIT
UNLOCK
ENDIF
ENDIF
ENDPAGE
ENDPRINT
oFnt5:End()
oFnt:End()
oFnt1:End()
oFnt2:End()
oFnt3:End()
oFnt4:End()
oFnt6:End()
oFnt7:End()
oFnt8:End()
SELECT LANC1
GOTO BOTTOM
SKIP -7
return NIL
-
Pessoal:
Como faço para mostrar informações dentro de uma Caixa de Diálogo, sem utilizar LISTBOX ou TBROWSE.
Não haverá Get's; só mostrar registros de forma diferente do Listbox ou Tbrowse.
Na realidade a única dúvida é como fazer a rolagem das informaçoes dentro dessa caixa de diálogo
abraços
NILSON
-
Pessoal:
Como faço para mostrar informações dentro de uma Caixa de Diálogo, sem utilizar LISTBOX ou TBROWSE.
Não haverá Get's; só mostrar registros de forma diferente do Listbox ou Tbrowse.
Na realidade a única dúvida é como fazer a rolagem das informaçoes dentro dessa caixa de diálogo
abraços
NILSON
-
PESSOAL,
Tem como identificar, via sistema, se a saida para impressora é SERIAL ou USB ?
NILSON
-
PESSOAL,
Tem como identificar, via sistema, se a saida para impressora é SERIAL ou USB ?
NILSON
-
sambomb
Veja abaixo o porque o M->
Toda variavel que voce declarar com este sinal o compilador sempre a tratara como variavel de memoria dispensando o uso de declaracoes como memvar ou local.
Sempre que voce for usar esta variavel dentro de seu procedimento ou funcao sempre utilize o ( M-> ) na frente da mesma, pois assim sempre o compilador sabera que se trata de varivel de memoria.
Mas qual a vantagem disso, sempre que voce quiser apaga-las dê um release all que as mesmas são apagadas imediatamente ou na saida do procedimento onde ocorreu o primeiro uso da mesma ela será sempre apagada.
Mas elas possuem uma grande vantagem sobre as locais, pois a mesma são enxergadas em qualquer procedimento ou funcao chamadas apartir do procedimento ou funcao onde ocorreu o primeiro uso da mesma.
Pode se dizer que são quase a mesma coisa que variaveis Private, mas consomem menos memoria que as Private.
NILSON
-
personal / sambomb
Pra tirar qualquer dúvida lá vai o PRG inteiro
Vejam que no get de pesquisa (STATIC FUNCTION PEAUT()), com outro nome de variavel, acontece a mesma coisa.
Atenção para os detalhes:
Testei num NOTEBOOK e um computador normal. (ambos XP)
no NOTE -> o espaço liberado é maior
no computador normal -> espaço liberado é menor
no NOTE -> da DEL veio com o WINDOWS ORIGINAL
no computador normal -> WINDOWS PIRATEADO
Abs, grato
NILSON
#include "fivewin.ch"
#include "report.ch"
#include "ord.ch"
#Define CLR_LGRAY nRGB( 230, 230, 230 )
#Define CLR_LGREEN nRGB( 190, 215, 190 )
#Define CLR_CHOCOLATE nRGB( 040, 005, 080 )
#Define CLR_VERDEAGUA nRGB( 000, 128, 128 )
#Define CLR_CREME nRGB( 255, 255, 235 ) // Cream color
#Define CLR_AZULADITO nRGB( 255, 016, 008, 255, 016, 008, 255, 016 )
#Define CLR_BLANCO nRGB( 255, 255, 235 ) // ideal como fondo para escritura de texto
#Define CLR_HYEL nRGB( 240, 226, 159 )
#Define CLR_LYEL nRGB( 243, 243, 156 )
#Define CLR_AZUL_BRANCO nRGB( 040, 004, 090 )
#Define CLR_PRETO_AMARE nRgb(255,255,200)
** FUNÇÃO PARA MANUTENÇÃO DE CODIGOS FISCAIS ****************
Function MANFIS()
LOCAL oSaida, oIncluir, oExcluir, oCancelar, oImprimir, oEditar, oPesquisa
LOCAL nOrden:=1
LOCAL cOrden := { OemToAnsi("Codigo"),;
OemToAnsi("Nome")}
IF ACESSO=.F.
SENHA()
ENDIF
CLOSE DATABASES
SET DELETED ON
SET DATE BRITISH
IF NETUSE("CODFIS","COFIS1",.F.,10)
SET INDEX TO COFIS1,COFIS2
ELSE
MsgAlert("Arquivo não Disponivel - Aguarde !")
ENDIF
SELECT COFIS1
SET ORDER TO 1
DEFINE FONT oFont_cli NAME "MS SANS SERIF" SIZE 0,-15
DEFINE DIALOG oDlgPFIS from 09,3 to 36,99;
TITLE 'Manutenção de Codigos Fiscais';
COLOR CLR_BLACK, CLR_HGRAY
oDlgPFIS:LHELPICON := .F.
@0.001,0.3 to 13.0,53.7
@0.7,0.7 LISTBOX oBrw;
FIELDS COFUN,;
NOFUN + " " + NOFUN01;
HEADERS "CFOP",;
"DESCRIÇÃO";
COLOR CLR_BLACK,Rgb(255,255,235);
FIELDSIZES 60,850;
FONT oFont_cli;
OF oDlgPFIS;
SIZE 365,170
oBrw:ajustify:={.f.,.f.}
oBrw:bKeyDown := { | nKey | Ctrl_Teclas( nKey),;
IF ( nKey = VK_INSERT,( INTFIS(),oBrw:UpStable(),oBrw:SetFocus(),oBrw:Refresh() ), ;
IF ( nKey = VK_RETURN,( EDFIS(),oBrw:UpStable(),oBrw:SetFocus(),oBrw:Refresh() ), ;
IF ( nKey = VK_DELETE,( DEFIS(),oBrw:UpStable(),oBrw:SetFocus(),oBrw:Refresh() ), ;
IF ( nKey = VK_HOME,( dbgotop(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() ), ;
IF ( nKey = VK_END,( dbgobottom(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() ), ;
IF ( nKey = VK_ESCAPE,oDlgPFIS:End() , ) ) ) ) ) ) }
oBrw:UpStable()
oBrw:Refresh()
oBrw:SetFocus()
////COLOR CLR_BLACK, CLR_HGRAY;
//**************************************************************************************************************************
oBrw:nClrBackHead := CLR_HBLUE // Cor do Fundo do Cabe‡alho
oBrw:nClrBackFocus := CLR_AZUL_BRANCO // Cor do Cursor Em Cima do Ötem
oBrw:nClrForeHead := CLR_BLANCO // Cor nos Headers - Cabe‡alhos
//oBrw:nClrPane := { || IIF( ( oBrw:cAlias)->( OrdKeyNo()) %2 == 1 , CLR_LGREEN,CLR_LGRAY)}
//**************************************************************************************************************************
@16.0,00.7 BUTTON oIncluir PROMPT "&Incluir" OF oDlgPFIS SIZE 33,08 ACTION (INTFIS(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() )
@16.0,05.7 BUTTON oDados PROMPT "&Alterar" OF oDlgPFIS SIZE 33,08 ACTION (EDFIS(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() )
@16.0,10.7 BUTTON oExcluir PROMPT "E&xcluir" OF oDlgPFIS SIZE 33,08 ACTION (DEFIS(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() )
@16.0,15.7 BUTTON oInicio PROMPT "&Inicio" OF oDlgPFIS SIZE 33,08 ACTION (dbgotop(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() )
@16.0,20.7 BUTTON oFim PROMPT "&Fim" OF oDlgPFIS SIZE 33,08 ACTION (dbgobottom(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() )
@16.0,25.7 BUTTON oPesquisa PROMPT "&Pesquisa" OF oDlgPFIS SIZE 33,08 ACTION PEAUT()
@16.0,30.7 BUTTON oSaida PROMPT "&Sair" OF oDlgPFIS SIZE 33,08 ACTION (oDlgPFIS:End()) CANCEL
@13.95,41.5 SAY "Ordenar" SIZE 35,10
@13.95,41.5 COMBOBOX nOrden ITEMS cOrden SIZE 40, 70 OF oDlgPFIS ON CHANGE Orden(nOrden,oBrw)
ACTIVATE DIALOG oDlgPFIS CENTERED
RETURN(NIL)
*-------------------------------- Pesquisa de Codigo Fiscal -----------------------------------------------------
STATIC FUNCTION PEAUT()
SET SOFTSEEK ON
*IF MsgGet( "Buscar por", "Nome do Cliente",@mNOM ,"lupa.bmp" )
* SEEK UPPER(mNOM)
* oBrw:UpStable()
* oBrw:Refresh()
*ENDIF
M->oNOM:=mNOM:=SPACE(60)
DEFINE DIALOG oDlgPI from 4,05 to 08,80;
TITLE 'Pesquisa de Codigos Fiscais'
oDlgPI:LHELPICON := .F.
@00.5,01 SAY "Nome:"
@00.5,05 GET oNOM VAR mNOM OF oDlgPI PICT '@R' SIZE 245,12
@01.7,29.3 BUTTON oSaida PROMPT "&OK " OF oDlgPI SIZE 35,08 ACTION (PESCA(),oDlgPI:End(),oBrw:UpStable(),oBrw:Refresh(),oBrw:SetFocus() ) CANCEL
ACTIVATE DIALOG oDlgPI CENTERED
RETURN(NIL)
*----------------------------------------------------------------------------------------------------------------
STATIC FUNCTION PESCA()
SET ORDER TO 2
GOTO TOP
M->mNOM=RTRIM( Upper( mNOM ) )
SEEK mNOM
oBrw:UpStable()
oBrw:Refresh()
oBrw:SetFocus()
RETURN(.T.)
**------------------ Função que retorna a ordem --------------------------------------------------
STATIC FUNCTION Orden(nOrden,oBrw)
IF nOrden=1
SET ORDER TO 1
ELSE
SET ORDER TO 2
ENDIF
oBrw:GOTOP()
oBrw:UpStable()
oBrw:Refresh()
oBrw:SetFocus()
RETURN NIL
**------------ Inclusao de Registros -------------------------------------------------------------
STATIC Function INTFIS()
LOCAL TAP := { "0 - TRANSFERENCIA DE MERCADORIAS","1 - COMPRAS PARA COMERCIALIZACAO","2 - VENDAS DE MERCADORIAS"}
SET ORDER TO 1
M->oCOFUN:=mCOFUN:=SPACE(5)
M->oNOFUN:=mNOFUN:=SPACE(60)
M->oNOFUN01:=mNOFUN01:=SPACE(60)
M->oTAP:=mTAP:=SPACE(1)
AB=1
DEFINE DIALOG oDlgPLA from 15,12 to 23,102;
TITLE 'Inclusao de Codigos Fiscais';
COLOR CLR_BLACK, CLR_HGRAY
oDlgPLA:LHELPICON := .F.
@00,0.7 TO 03.0,50.3
@01,01 SAY "CODIGO:"
@01,05 GET oCOFUN VAR mCOFUN OF oDlgPLA SIZE 25,12 PICT "9.999" VALID VERCOF(mCOFUN)
@01,09 SAY "LINHA 1:"
@01,13 GET oNOFUN VAR mNOFUN OF oDlgPLA SIZE 245,12 PICT '@R'
@02,09 SAY "LINHA 2:"
@02,13 GET oNOFUN01 VAR mNOFUN01 OF oDlgPLA SIZE 245,12 PICT "@R"
@03.50,01 SAY "TIPO DE OPERACAO:"
@03.18,10 COMBOBOX mTAP ITEMS TAP OF oDlgPLA SIZE 140,40 VALID VEROP(mTAP)
@04.0,40.5 BUTTON "&Gravar" OF oDlgPLA SIZE 33,08 ACTION {||GRAVPLA(),oBrw:UpStable(),oBrw:refresh(),oBrw:SetFocus(),oDlgPLA:end()}
@04.0,45.5 BUTTON "&Sair" OF oDlgPLA SIZE 33,08 ACTION oDlgPLA:end() CANCEL
ACTIVATE DIALOG oDlgPLA CENTERED
RETURN .T.
**------------ Edicao de Registros ---------------------------------------------------------------
STATIC Function EDFIS()
LOCAL TAP := { "0 - TRANSFERENCIA DE MERCADORIAS","1 - COMPRAS PARA COMERCIALIZACAO","2 - VENDAS DE MERCADORIAS"}
SET ORDER TO 1
M->oCOFUN:=mCOFUN:=COFIS1->COFUN
M->oNOFUN:=mNOFUN:=COFIS1->NOFUN
M->oNOFUN01:=mNOFUN01:=COFIS1->NOFUN01
M->oTAP:=mTAP:=COFIS1->VENDA
AB=0
DEFINE DIALOG oDlgPLA from 15,12 to 23,102;
TITLE 'Alteracao de Codigos Fiscais';
COLOR CLR_BLACK, CLR_HGRAY
oDlgPLA:LHELPICON := .F.
@00,0.7 TO 03.0,50.3
@01,01 SAY "CODIGO:"
@01,05 SAY oCOFUN VAR mCOFUN OF oDlgPLA SIZE 25,12
@01,09 SAY "LINHA 1:"
@01,13 GET oNOFUN VAR mNOFUN OF oDlgPLA SIZE 245,12 PICT "@R"
@02,09 SAY "LINHA 2:"
@02,13 GET oNOFUN01 VAR mNOFUN01 OF oDlgPLA SIZE 245,12 PICT "@R"
@03.50,01 SAY "TIPO DE OPERACAO:"
@03.18,10 COMBOBOX mTAP ITEMS TAP OF oDlgPLA SIZE 140,40 VALID VEROP(mTAP)
@04.0,40.5 BUTTON "&Gravar" OF oDlgPLA SIZE 33,08 ACTION {||GRAVPLA(),oBrw:UpStable(),oBrw:refresh(),oBrw:SetFocus(),oDlgPLA:end()}
@04.0,45.5 BUTTON "&Sair" OF oDlgPLA SIZE 33,08 ACTION oDlgPLA:end() CANCEL
ACTIVATE DIALOG oDlgPLA CENTERED
RETURN .T.
**------------ Pesquisa de Codigos Fiscais -------------------------------------------------------
STATIC Function VERCOF()
SET ORDER TO 1
GOTO TOP
SEEK mCOFUN
IF COFUN=mCOFUN
TONE(300,3)
MsgInfo("Codigo ja Cadastrado! ","Atencao")
oDlgPLA:end()
oBrw:UpStable()
oBrw:Refresh()
oBrw:SetFocus()
ENDIF
RETURN .T.
**------------ Validação Tipo de Operação --------------------------------------------------------
STATIC FUNCTION VEROP(mTAP)
IF EMPTY(mTAP)
TONE(300,3)
MsgInfo("Campo vazio - preenchimento obrigatorio! ","Atencao")
RETURN .F.
ELSE
RETURN .T.
ENDIF
**------------ Gravacao de Registros -------------------------------------------------------------
STATIC Function GRAVPLA()
IF AB=1
APPEND BLANK
ENDIF
DBSETORDER(0)
IF RECLOCK(4)
REPLACE COFUN WITH mCOFUN,NOFUN WITH mNOFUN,NOFUN01 WITH mNOFUN01,VENDA WITH mTAP
DBSETORDER(1)
COMMIT
UNLOCK
ENDIF
oDlgPLA:UpDate()
oDlgPLA:SetFocus()
RETURN .T.
**------------ Exclusao de Registros -------------------------------------------------------------
STATIC Function DEFIS()
M->mCOFUN:=COFUN
IF MsgYesNo("Voce realmente deseja Excluir este Codigo !","Favor, confirme")
IF COFUN = mCOFUN
DBSETORDER(0)
IF RECLOCK(4)
DELETE
DBSETORDER(1)
UNLOCK
ENDIF
IF EOF()
SKIP(-1)
ENDIF
oBrw:UpStable()
oBrw:Refresh()
oBrw:SetFocus()
RETURN NIL
ENDIF
ELSE
RETURN NIL
ENDIF
-
PESSOAL,
Todas as respostas tendem a considerar que o problema estaria na máscara e no tamanho do SIZE para permitir a vizualização.
Antes de todas essas respostas já tinha feito os mais diversos testes. Garanto que nada tem a ver com tipo de máscara ou tamanho do SIZE para permitir vizualização.
Não sei o que é. Quando, e se descobrir, informo.
Grato pela atenção
NILSON
-
Marcelo,
Também não funciona.
E digo mais: se digitar somente numeros preenche os 60 espaços. Se digitar letras vai permitir digitar apenas 53 catacteres.
E não tem nada a ver com máscara.
Grato
NILSON
-
PESSOAL
Mudei a mascara para '@R' pois tenho que misturar caracteres maisculos e minisculos. Não resolveu.
E digo mais; se uso o programa num NOTEBOOK dá o mesmo problema, só que a possibilidade de inserção de caracter é maior do que num computador normal.
Se não fui claro:
Num computador normal -> dos 60 espaços consigo inserir 50 caracteres
Num NOTEBOOK -> dos 60 espaços consigo inserir 55 caracteres
Durma com um barulho desse
Grato
NILSON
-
**------------ Inclusao de Registros -------------------------------------------------------------
STATIC Function INTFIS()
LOCAL TAP := { "0 - TRANSFERENCIA DE MERCADORIAS","1 - COMPRAS PARA COMERCIALIZACAO","2 - VENDAS DE MERCADORIAS"}
SET ORDER TO 1
oCOFUN:=mCOFUN:=SPACE(5)
oNOFUN:=mNOFUN:=SPACE(60)
oNOFUN01:=mNOFUN01:=SPACE(60)
M->oTAP:=mTAP:=SPACE(1)
AB=1
DEFINE DIALOG oDlgPLA from 15,12 to 23,102;
TITLE 'Inclusao de Codigos Fiscais';
COLOR CLR_BLACK, CLR_HGRAY
oDlgPLA:LHELPICON := .F.
@00,0.7 TO 03.0,50.3
@01,01 SAY "CODIGO:"
@01,05 GET oCOFUN VAR mCOFUN OF oDlgPLA SIZE 25,12 PICT "9.999" VALID VERCOF(mCOFUN)
@01,09 SAY "LINHA 1:"
@01,13 GET oNOFUN VAR mNOFUN OF oDlgPLA SIZE 245,12 PICT "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
@02,09 SAY "LINHA 2:"
@02,13 GET oNOFUN01 VAR mNOFUN01 OF oDlgPLA SIZE 245,12 PICT "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
@03.50,01 SAY "TIPO DE OPERACAO:"
@03.18,10 COMBOBOX mTAP ITEMS TAP OF oDlgPLA SIZE 140,40 VALID VEROP(mTAP)
@04.0,40.5 BUTTON "&Gravar" OF oDlgPLA SIZE 33,08 ACTION {||GRAVPLA(),oBrw:UpStable(),oBrw:refresh(),oBrw:SetFocus(),oDlgPLA:end()}
@04.0,45.5 BUTTON "&Sair" OF oDlgPLA SIZE 33,08 ACTION oDlgPLA:end() CANCEL
ACTIVATE DIALOG oDlgPLA CENTERED
RETURN .T.
-
PESSOAL:
Criei uma variavel com 60 espaços.
Na digitação somente esta permitindo 53 caracteres.
Como resolver isso.
ABS
NILSON
RELATÓRIOS ESPECIAIS
in Programação
Posted