USANDO DTOS

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

conde
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 07 Jul 2004 19:20

USANDO DTOS

Mensagem por conde »

OLA AMIGOS BOM DIA A TODOS , ALGUEM QUE ME DIGA PORQUE MEU RELATORIO GERA OS ARQUIVOS DE INDICE MAS NAO IMPRIME , GRATO A QUEM ME SOCORRER., ALIAS PORQUE NAO CONSIGO USAR " [ ] ".

USE CAD1 NEW
index on obra to cad1ind1
USE CAD2 NEW
index on obra to cad2ind1
INDEX ON NUMERO TO Cad2IND2
INDEX ON left(DTOS(PAGAMENTO),6)TO CAD2IND3
CLOSE ALL
set date to british
set century on
USE CAD1 NEW
SET INDEX TO CAD1IND1
USE CAD2 NEW
SET INDEX TO CAD2IND1
SET INDEX TO CAD2IND2
SET INDEX TO CAD2IND3 (DTOS(PAGAMENTO))
set relation to cad2->obra into cad1
V_MESANO=SPACE(6)
V_VPAGO =0
V_SOMA=0
V_SOMA+=VPAGO
SET COLOR TO "R+"
BORDA=CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)
CLEAR
@ 3,1,24,79 BOX BORDA
@ 1,1,24,79 BOX BORDA
@ 2,10 SAY "NOME DO CLIENTE - RELATORIO DE FATURAS PAGAS"
@ 18,20 SAY "DIGITE O MES E ANO:";
GET V_MESANO PICT "@R 99/9999" VALID !EMPTY(V_MESANO)
READ
CL=66
V_MES=LEFT(V_MESANO,2)
V_ANO=RIGHT(V_MESANO,4)
V_ANOMES=V_ANO+V_MES
DBSETORDER(3)
SEEK V_ANOMES
DO WHILE !EOF()
IF V_ANOMES !=LEFT(DTOS(PAGAMENTO),6)
EXIT
ENDIF
SET PRINTER ON
SET DEVICE TO PRINTER
??chr(13)
??chr(15)
if cl>60
CL=1
@ CL,50
@ cl,30 say " NOME DO CLIENTE."
CL=CL+2
@ CL,1 SAY " LISTAGEM DE PAGAS "
@ CL,50 SAY DATE()
@ CL,70 SAY TIME()
CL=CL+2
@ CL,1 SAY "OBRA"
@ CL,12 SAY "EMPRESA"
@ CL,61 SAY "NUMERO"
@ CL,70 SAY "VALOR"
@ CL,82 SAY "EMISSAO"
@ CL,98 SAY "VENCIMENTO"
@ CL,112 SAY "PAGAMENTO"
@ CL,125 SAY "VLR PAGO"
CL=CL+1
ENDIF
DBSELECTAREA (1)
@ CL,12 SAY CAD1->EMPRESA
@ CL,1 SAY CAD1->OBRA
DBSELECTAREA (2)
@ CL,61 SAY CAD2->NUMERO
@ CL,66 SAY CAD2->VALOR
@ CL,82 SAY CAD2->EMISSAO
@ CL,98 SAY CAD2->VENCIMENTO
@ CL,112 SAY CAD2->PAGAMENTO
@ CL,123 SAY CAD2->VPAGO
cl=cl+1
skip
ENDDO
@ CL,1 SAY REPLICATE ("-",133)
CL=CL+1
@ CL,40 SAY "TOTAL =>"
@ CL,63 SAY V_SOMA
EJECT
CLEAR
SET PRINT OFF
SET DEVICE TO SCREEN
RETURN :(
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Código: Selecionar todos


// Configuraçao do Ambiente
SET DATE TO BRIT 
SET CENTURY ON
SET DELE ON
SET SCOREBOARD OFF

// Reindexação
USE CAD1 ALIAS CAD1 NEW 
index on obra to cad1ind1 
USE CAD2 ALIAS CAD2 NEW
index on OBRA    to cad2ind1 
INDEX ON NUMERO  TO Cad2IND2 
INDEX ON DTOS(PAGAMENTO)TO CAD2IND3
dbcloseall()

// Abertura
USE CAD1 ALIAS CAD1 NEW 
SET INDEX TO CAD1IND1 
USE CAD2 ALIAS CAD2 NEW 
SET INDEX TO CAD2IND1,CAD2IND2,CAD2IND3 

// Variaveis e tela de entrada de dados
V_MESANO=SPACE(6) 
V_VPAGO =0 
V_SOMA=0 
V_SOMA+=VPAGO 
SET COLOR TO "R+" 
BORDA=CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177)+CHR(177) 
CLEAR 
@ 3,1,24,79 BOX BORDA 
@ 1,1,24,79 BOX BORDA 
@ 2,10 SAY "NOME DO CLIENTE - RELATORIO DE FATURAS PAGAS" 
@ 18,20 SAY "DIGITE O MES E ANO:"; 
GET V_MESANO PICT "@R 99/9999" VALID !EMPTY(V_MESANO) 
READ

// Caso pressionar ESC
IF LASTKEY()==27
   CLEAR
   RETURN
ENDIF    

CL=66 
V_MES=LEFT(V_MESANO,2) 
V_ANO=RIGHT(V_MESANO,4) 
V_ANOMES=V_ANO+V_MES
DBSELECTAREA("CAD2") 
DBSETORDER(3)
DBGOTOP()
 
if !(dbseek(V_ANOMES))
  clear
  ? "Periodo Nao Encontrado"
  Return
Endif

SET_DEVICE TO PRINTER
SET PRINTER ON
devpos(0,0)  
nPag := 0 // Nro da Pagina
??chr(13) 
??chr(15)  

DO WHILE LEFT(DTOS(PAGAMENTO),6)==V_ANOMES .and. !EOF() 
   
   // Cabecalho
   if prow()>60 .or. nPag=0
        
        if nPag <> 0
            eject
        endif
        nPag++    
	
	@ prow()+1,50 
	@ prow(),30 say " NOME DO CLIENTE." 
	
	@ prow()+2,1 SAY " LISTAGEM DE PAGAS " 	
	@ prow(),50  SAY DATE() 
	@ prow(),70  SAY TIME() 
	@ prow(),90  SAY "Pagina:"+str(nPag,3)
	 
	@ prow()+2,1   SAY "OBRA" 
	@ prow()+2,12  SAY "EMPRESA" 
	@ prow()+2,61  SAY "NUMERO" 
	@ prow()+2,70  SAY "VALOR" 
	@ prow()+2,82  SAY "EMISSAO" 
	@ prow()+2,98  SAY "VENCIMENTO" 
	@ prow()+2,112 SAY "PAGAMENTO" 
	@ prow()+2,125 SAY "VLR PAGO" 
	
    ENDIF 

    // Detalhe do Relatório
    CAD1->(DBSEEK(CAD2->OBRA))
    @ prow()+1,1 SAY CAD1->OBRA
    @ prow(),12  SAY CAD1->EMPRESA  
    @ prow(),61  SAY CAD2->NUMERO 
    @ prow(),66  SAY CAD2->VALOR 
    @ prow(),82  SAY CAD2->EMISSAO 
    @ prow(),98  SAY CAD2->VENCIMENTO 
    @ prow(),112 SAY CAD2->PAGAMENTO 
    @ prow(),123 SAY CAD2->VPAGO 

    dbskip()
ENDDO 

// Totais
@ PROW()+1,1 SAY REPLICATE ("-",133) 
@ PROW(),40  SAY "TOTAL =>" 
@ PROW(),63  SAY V_SOMA 

EJECT 
CLEAR 

SET PRINT OFF 
SET DEVICE TO SCREEN 
RETURN 



________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Responder