Siga-nos no Facebook Siga-nos no Instagram Siga-nos no LinkedIn Venha estudar Protheus
 
Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  Field Service

Enviar para a impressoraImprimir   

Subject Orçamento Field
Mensagem do Enviar e-mail Abrir o Perfil do usu�rio RA_SOUZA RA_SOUZA em 16/06/2010 as 10:25 hs
Local: SP   Membro desde: 07/02/2007  Postagem: 9
Pessoal,
Será tem alguém que poderia me disponibilizar um modelo do orçamento do field que seja mais apresentavel do que o padrão do sistema. Alguem possui isso? E se possuir poderia me disponibilizar?

Mensagem do Enviar e-mail Abrir o Perfil do usu�rio PAULO2002 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

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum