Jump to content
Fivewin Brasil

VASCON

Membros
  • Posts

    233
  • Joined

  • Last visited

Everything posted by VASCON

  1. ANTECIPADAMENTE GRATO PELA ATENÇÃO. ATÉ O PRESENTE MOMENTO, ESTAVA USANDO OS RECURSOS ABAIXO PARA A IMPRESSÃO DE RELATÓRIOS/FORMULÁRIOS COM FORMATOS ESPECIAIS: CANTOS ARREDONDADOS, CAIXAS, LINHAS NAS HORIZONTAIS, ETC). PORÉM, ESTOU PRECISANDO IMPRIMIR COM FUNDO ASSOMBREADO E NÃO ESTOU CONSEGUINDO. QUAL A SAID? EXISTE ALGUM RECURSO NOVO? ESTOU A FW 7.09 NILSON #DEFINE VAZIA 0 #DEFINE SOMBRA 1 /* Dibujamos una Caja en Cms nArriba,nIzq,nAbajo,nDerecha := Coordenadas en Centimetros oPrn := Objeto Printer oBrush := Objeto Brush para Caja Rellena nTipo := Tipo de Caja (0-Vacia) (1-Rellena) oPen := Objeto oPen para Caja Vacia */ Static Func CAIXA(nArriba,nIzq,nAbajo,nDerecha,oPrn,nTipo,oBrush,oPen) Local xCor := {} , yCor := {} // Pasamos coordenadas de cms a pixel xCor := oPrn:Cmtr2Pix(nArriba,nIzq) yCor := oPrn:Cmtr2Pix(nAbajo,nDerecha) DO CASE CASE nTipo == 0 // Caja Vacia oPrn:Box(xCor[1],xCor[2],yCor[1],yCor[2],oPen) CASE nTipo == 1 // Caja rellena oPrn:FillRect({xCor[1],xCor[2],yCor[1],yCor[2]},oBrush) ENDCASE return NIL /* Lineas en Cms nArriba,nIzq,nAbajo,nDerecha := Coordenadas en Centimetros oPrn := Objeto Printer oPen := Objeto oPen para Linea */ Static Func Linea(nArriba,nIzq,nAbajo,nDerecha,oPrn,oPen) Local xCor := {} , yCor := {} xCor := oPrn:Cmtr2Pix(nArriba,nIzq) yCor := oPrn:Cmtr2Pix(nAbajo,nDerecha) oPrn:Line(xCor[1],xCor[2],yCor[1],yCor[2],oPen) return NIL /* Pos mas de lo mismo en Cms 2ºRev. 02-02-2000 nArriba := Fila nIzq := nCol nAncho := Ancho del Bitmap expresados en cms nAlto := Alto del Bitmap Expresados en cms xBitmap := Fichero BMP oPrn := Objeto Printer */ Func SayBitmap(nArriba,nIzq,nAncho,nAlto,xBitmap,oPrn) Local xCor := {} LOCAL nPixWidth, nPixHeight xCor := oPrn:Cmtr2Pix(nArriba,nIzq) // Pasamos nAncho y nAlto a Pulgadas // Haber si los americamos estos se pasan de una vez al Sistema Metrico // y tiran las Pulgadas con las Pulgas XD nAncho := nAncho/2.54 nAlto := nAlto /2.54 nPixWidth := INT(oPrn:nLogPixelY()*nAncho) nPixHeight := INT(oPrn:nLogPixelX()*nAlto) oPrn:SayBitmap(xCor[1],xCor[2],xBitmap,nPixWidth ,nPixHeight) RETURN NIL
  2. 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.)
  3. 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.)
  4. Luiz Augusto: Muito obrigado. Funcionou! Ficou 10 Grato NILSON
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. VASCON

    ActiveX

    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
  12. VASCON

    ActiveX

    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
  13. 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
  14. 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
  15. 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
  16. 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
  17. PESSOAL, Tem como identificar, via sistema, se a saida para impressora é SERIAL ou USB ? NILSON
  18. PESSOAL, Tem como identificar, via sistema, se a saida para impressora é SERIAL ou USB ? NILSON
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. **------------ 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.
  25. PESSOAL: Criei uma variavel com 60 espaços. Na digitação somente esta permitindo 53 caracteres. Como resolver isso. ABS NILSON
×
×
  • Create New...