Mensagem do
PAULO2002
em
05/09/2010
as
09:19
hs
Local:
sp
Membro desde:
11/08/2008
Postagem:
31
|
Souza utilize o codigo abaixo, altere para arma-lo em cima das tabelas do orcamento ok
implanto e customizo o modulo, se precisar mande mail para pauloborges2002@yahoo.com.br
Paulo
#INCLUDE "PROTHEUS.CH"
#DEFINE CHRCOMP If(aReturn[4]==1,15,18)
User Function IMPFICHA1()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Define Variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Local Titulo := "Ficha de Atendimento da O.S."
Local cDesc1 := "Este programa ira emitir as Fichas de Atendimento da OS conforme os "
Local cDesc2 := "parametros solicitados."
Local cDesc3 := ""
Local cString := "AB7"
Local lDic := .F.
Local lComp := .T.
Local lFiltro := .T.
Local wnrel := "IMPFICHA1"
Local nomeprog:= "IMPFICHA1"
Private Tamanho := "M"
Private Limite := 132
Private aOrdem := {}
Private cPerg := "ATR510"
Private aReturn := { "Zebrado", 1, "Administracao", 1, 2, 1, "",1 }
Private lEnd := .F.
Private m_pag := 1
Private nLastKey:= 0
Pergunte(cPerg,.F.)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Envia para a SetPrinter ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
wnrel:=Setprint(cString,wnrel,cPerg,@titulo,cDesc1,cDesc2,cDesc3,lDic,aOrdem,lComp,Tamanho,lFiltro)
If ( nLastKey==27 )
dbSelectarea(cString)
dbSetorder(1)
dbClearFilter()
Return
Endif
Setdefault(aReturn,cString)
If ( nLastKey==27 )
dbSelectarea(cString)
dbSetorder(1)
dbClearFilter()
return
Endif
RptStatus({|lEnd| ImpDet(@lEnd,wnRel,cString,nomeprog,Titulo)},Titulo)
Return(.T.)
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³IMPDET ³ Autor ³ Dennys Gastaldello ³ Data ³ 10/05 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri+.o ³Impressao do Atendimento da OS ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function ImpDet(lEnd,wnrel,cString,nomeprog,Titulo)
Local cbCont := 0 // Numero de Registros Processados
Local cbText := "" // Mensagem do Rodape
Local nCntFor := 0
Local nLoop := 0
Local aSimNao := { "Sim","Nao" }
@ 00,000 psay AvalImp(Limite)
dbSelectarea(cString)
SetRegua(LastRec())
dbSetOrder(1)
dbSeek(xFilial("AB7")+MV_PAR01,.T.)
nLin :=0
While ( !Eof() .And. xFilial("AB7") == AB7->AB7_FILIAL .And. MV_PAR02 >= substr(AB7->AB7_NUMOS,1,6) )
If lEnd
@ Prow()+1,001 psay "CANCELADO PELO OPERADOR"
Exit
EndIf
IF AB7->AB7_CODPRB = "000001"
dbSkip()
Loop
Endif
dbSelectArea("AB6")
dbSetOrder(1)
dbSeek(xFilial("AB6")+AB7->AB7_NUMOS)
IF AB6->AB6_X_TIPO <> "2"
AB7->(dbSkip())
Loop
Endif
dbSelectArea("SA1")
dbSetOrder(1)
MsSeek(xFilial("SA1")+AB6->AB6_CODCLI+AB6->AB6_LOJA)
dbselectarea("AAG")
dbsetorder(1)
MsSeek(xFilial("AAG")+AB7->AB7_CODPRB)
If ( Empty(AB7->AB7_NRCHAM) )
dbSelectArea("AB4")
dbSetOrder(1)
dbSeek(xFilial("AB4")+AB7->AB7_NUMORC)
dbSelectArea("AB2")
dbSetOrder(1)
dbSeek(xFilial("AB2")+AB4->AB4_NRCHAM)
Else
dbselectarea("AB2")
dbsetorder(1)
dbseek(xFilial("AB2")+AB7->AB7_NRCHAM)
Endif
dbselectarea("AB1")
dbsetorder(1)
MsSeek(xFilial("AB1")+AB2->AB2_NRCHAM)
dbselectarea("AB3")
dbsetorder(1)
MsSeek(xFilial("AB3")+AB7->AB7_NUMORC) //
dbselectarea("AA3")
dbsetorder(1)
dbseek(xfilial("AA3")+AB6->AB6_CODCLI+AB6->AB6_LOJA+AB2->AB2_CODPRO+AB2->AB2_NUMSER)
// *** DADOS DO CHAMADO ***
nLin := nLin + 3
@ nLin , 080 psay AB1->AB1_NRCHAM
nLin := nLin +1
@ nLin , 076 psay "O.S. : " + AB7->AB7_NUMOS + "/" + AB7->AB7_ITEM
// *** LOCAL DE ATENDIMENTO ***
nLin := nLin +2
@ nLin , 005 psay SA1->A1_COD + "-" + SA1->A1_LOJA + "-" + ALLTRIM(SA1->A1_NOME)
nLin := nLin +1
@ nLin , 007 psay ALLTRIM(AA3->AA3_X_END)
nLin := nLin +1
@ nLin , 004 psay ALLTRIM(AA3->AA3_X_MUN)
@ nLin , 031 psay AA3->AA3_X_EST
@ nLin , 047 psay ALLTRIM(AA3->AA3_X_BAIR)
@ nLin , 075 psay AA3->AA3_X_CEP Picture "@R 99999-999"
//** LOCAL DE COBRANCA **
nLin := nLin +1
@ nLin , 008 psay ALLTRIM(SA1->A1_END)
@ nLin , 070 psay substr(AB1->AB1_TEL,1,12)
// *** DADOS EMPRESA ***
nLin := nLin +1
If Len(Alltrim(SA1->A1_CGC)) > 11
@ nLin , 006 Psay SA1->A1_CGC Picture "@R 99.999.999/9999-99"
Else
@ nLin , 006 Psay SA1->A1_CGC Picture "@R 999.999.999-99"
EndIf
@ nLin , 057 psay SA1->A1_INSCR
// *** DATA E CONTATO ***
nLin := nLin +2
@ nLin , 008 psay DTOC(AB1->AB1_EMISSA)
@ nLin , 044 psay ALLTRIM(AB1->AB1_CONTAT)
// *** DADOS DO EQTO ***
nLin := nLin +1
@ nLin , 011 psay Substr(ALLTRIM(AB2->AB2_HADESC),1,19)
@ nLin , 034 psay AB2->AB2_NUMSER
@ nLin , 062 psay UPPER(ALLTRIM(AB1->AB1_ATEND))
nLin := nLin +1
@ nLin , 004 psay ALLTRIM(AAG->AAG_DESCRI)
@ nLin , 044 psay AB6->AB6_EMISSA
@ nLin , 057 psay "Contrato: " + ALLTRIM(X3Combo("AA3_X_STAT",AA3->AA3_X_STAT))
nLin := nLin +1
@ nLin , 012 psay AB1->AB1_X_TXV PICTURE "@E 999.99"
@ nLin , 052 psay AB1->AB1_X_HT PICTURE "@E 999.99"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Impressão do campo memo ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
nLin := nLin +5
cMemo := ALLTRIM(MSMM(AB2->AB2_MEMO))
nMemCount := MlCount( cMemo, 85 )
nMen := 0
If nMemCount > 0
nLin++
nMen++
For nLoop := 1 To nMemCount
cLinha := MemoLine( cMemo, 85, nLoop )
@ nLin,000 PSAY "" + cLinha
@ nLin,105 PSAY ""
nLin++
nMen++
Next nLoop
EndIf
//*** DEFEITO APARENTE ***
nLin := nLin +2
If !Empty(AA3->AA3_CONTRT)
dbSelectArea("AAH")
dbSetOrder(1)
dbSeek(xFilial("AAH")+AA3->AA3_CONTRT,.F.)
@ nLin , 000 psay "COBERTURA: "+GetAdvFVal("AAA","AAA_DESCRI",xFilial("AAA")+AAH->AAH_CODGRP,1)
Else
@ nLin , 000 psay "COBERTURA: BASE SEM CONTRATO"
EndIf
nLin := nLin + (30-nMen)
dbselectarea("AB7")
dbskip()
incregua()
Enddo
@ nLin , 002 psay "."
SetPrc(0,0)
dbselectarea(cString)
dbClearFilter()
set device to screen
SetPgEject(.F.)
If aReturn[5] == 1
Set Printer To
dbcommitAll()
ourspool(wnrel)
EndiF
MS_FLUSH()
Return
|
|