;** Rc_4204 ********************************************************************
;*  Rela‡Æo de Notas por Transportador x Conhecimento - Relat¢rio              *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 10/04/2013 por Bruno Carvalho
;Ultima Alteracao: 12/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo relacionamento nota de entrada
;Ultima Alteracao: 15/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 16/04/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novos filtros
;Ultima Alteracao: 27/05/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes VSDGREDESPACHO
;Ultima Alteracao: 07/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes 2 modelos de relatorios/controle
;Ultima Alteracao: 13/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novo nome ContFrtC
;Ultima Alteracao: 18/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes                         
;Ultima Alteracao: 19/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes                         
;Ultima Alteracao: 01/07/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout relatorio 2 e sort
;Ultima Alteracao: 08/07/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Valor Nota Fiscal_2 nÆo exibir nota repitida
;Ultima Alteracao: 27/10/2016 por Rafael Matos
;Motivo Alteracao: Ajustes Layout para padroniza‡Æo
;Ultima Alteracao: 10/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog       
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT            
;Ultima Alteracao: 15/02/2017 por Rafael Matos
;Motivo Alteracao: InclusÆo VSDGOPRELATORIO="3" NF SEM CTR Sol. 28244         
;Ultima Alteracao: 22/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_FRETE_INC, modelo relatorio
;Ultima Alteracao: 27/03/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes peso bruto
;Ultima Alteracao: 04/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes script nÆo estava atualizado com altera‡Æo de 15/02/2017 por Rafael Matos
;Ultima Alteracao: 09/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes seleciona2()
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 07/02/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ padronizar "TG_CIDADE" e "TG_ESTADO"
;Ultima Alteracao: 08/02/2020 por Bruno Carvalho
;Motivo Alteracao: Comentado processo onde controle de frete referente … 01/2020 nÆo estavam sendo exibidos **Valor Frete Cotado=Blank 
;Ultima Alteracao: 13/04/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado AjustarCTR()

;*******************************************************************************
;* Rotina p/ ajuste de dados                                                   *
;*******************************************************************************
Proc AjustarCTR()
private ctr, s1, s2


return

; em testes tinha que verificar valor outras bota no frete

debug

if isempty(Tabela)
   then return
endif   

Aguarde("Ajustando dados")

ctr="?"

; rotina para resolver problema de um CTR com varias notas, no relatorio duplicava os valores referentes a CTR

Sort Tabela on "Codigo da Empresa","CT_Codigo do Documento","CT_Numero do Documento","CT_Serie do Documento"
Editkey
scan
  s1=[CT_Codigo do Documento]+[CT_Numero do Documento]+[CT_Serie do Documento]
  if isblank(s1)
     then loop
  endif   

  s2=[Codigo da Empresa]+[CT_Codigo do Documento]+[CT_Numero do Documento]+[CT_Serie do Documento]

  if s2<>ctr
     then
           ctr=[Codigo da Empresa]+[CT_Codigo do Documento]+[CT_Numero do Documento]+[CT_Serie do Documento]
     else 
           [Valor Documento]=BlankNum()
  endif
endscan
Do_It!
ClearAll

endproc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona1()
ClearAll
  
{Ask} {NotaC}
Moveto [Codigo da Empresa        ] Check
Moveto [Nome Fantasia Empresa    ] Check
Moveto [Codigo do Documento      ] Check
Moveto [Numero do Documento      ] Check
Moveto [Serie do Documento       ] Check
Moveto [Codigo                   ] Check
Moveto [Razao Social             ] Check 
Moveto [Cidade                   ] Check
Moveto [UF                       ] Check
Moveto [CEP                      ] Check
Moveto [Peso Bruto               ] Check 
Moveto [Data de Emissao          ] Check
Moveto [Codigo da Transportadora ] Check
Moveto [Nome Fantasia Transport  ] Check  
Moveto [Frete por Conta          ] Check
Moveto [Frete Incluso na Nota    ] Check
Moveto [Valor do Frete           ] Check
Moveto [Valor Nota Fiscal        ] Check

Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
Moveto [Codigo                   ] TypeIn "~VSDGDESTINAT.."
Moveto [Cidade                   ] TypeIn CIDADE
Moveto [UF                       ] TypeIn "~VSDGESTADO.."
Moveto [Codigo da Transportadora ] TypeIn "~VSDGTRANSP.."
Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
Moveto [Situacao                 ] TypeIn "Not C"
Switch
  Case VSDGFRETEINC="A" : Moveto [Frete Incluso na Nota    ] TypeIn "\"+\""
  Case VSDGFRETEINC="1" : Moveto [Frete por Conta          ] TypeIn "1"
  Case VSDGFRETEINC="2" : Moveto [Frete por Conta          ] TypeIn "2"
EndSwitch
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf
      
{Ask} {ContFrtC}
moveto [Numero do Lancamento     ] Check
Moveto [Codigo da Empresa        ] Example "CEmp"
Moveto [Numero do Documento      ] Example "NDoc"
Moveto [Serie do Documento       ] Example "SDoc"
Moveto [Codigo da Transportadora ] Check TypeIn "As CDTRedespacho"
Moveto [Nome Fantasia Transport  ] Check TypeIn "As NFTRedespacho"        
Moveto [Valor Frete Cotado       ] Check 
Moveto [CT_Codigo do Documento   ] Check 
Moveto [CT_Numero do Documento   ] Check
Moveto [CT_Serie do Documento    ] Check 
Moveto [Data do Documento        ] Check 
Moveto [Valor do Documento       ] Check 
Moveto [Redespacho               ] Check 
Moveto [Valor do Frete           ] Check        
Moveto [Valor Outra NF no Frete  ] Check        
{Ask} {Answer} Check
Moveto [Codigo da Empresa        ] Example "CEmp" TypeIn "!"
Moveto [Numero do Documento      ] Example "NDoc" TypeIn "!"
Moveto [Serie do Documento       ] Example "SDoc" TypeIn "!"
Do_It!                                                      
ClearAll

View Tabela
Edit "Answer"
Scan
  Moveto Tabela
  If [Data de Emissao]=BlankDate()
     Then End
     Else End Down
  EndIf    
  [Codigo da Empresa        ]=[Answer->Codigo da Empresa       ]
  [Nome Fantasia Empresa    ]=[Answer->Nome Fantasia Empresa   ]
  [Codigo do Documento      ]=[Answer->Codigo do Documento     ]
  [Numero do Documento      ]=[Answer->Numero do Documento     ]
  [Serie do Documento       ]=[Answer->Serie do Documento      ]
  [Codigo                   ]=[Answer->Codigo                  ]
  [Razao Social             ]=[Answer->Razao Social            ] 
  [Cidade                   ]=[Answer->Cidade                  ]
  [UF                       ]=[Answer->UF                      ]
  [CEP                      ]=[Answer->CEP                     ]
  [Peso Bruto               ]=[Answer->Peso Bruto              ] 
  [Data de Emissao          ]=[Answer->Data de Emissao         ]
  [Codigo da Transportadora ]=[Answer->Codigo da Transportadora]
  [Nome Fantasia Transport  ]=[Answer->Nome Fantasia Transport ]  
  [Frete por Conta          ]=[Answer->Frete por Conta         ]
  [Frete Incluso na Nota    ]=[Answer->Frete Incluso na Nota   ]
  [Valor do Frete           ]=[Answer->Valor Frete Cotado      ]
  [Valor Nota Fiscal        ]=[Answer->Valor Nota Fiscal       ]+
                              [Answer->Valor Outra NF no Frete ]       
  [Valor Nota Fiscal_2      ]=[Valor Nota Fiscal               ] 

  [Valor Outra NF no Frete  ]=[Answer->Valor Outra NF no Frete ]       

  [Numero do Lancamento     ]=[Answer->Numero do Lancamento    ]
  [Valor Frete Cotado       ]=[Answer->Valor Frete Cotado      ]
  [CT_Codigo do Documento   ]=[Answer->CT_Codigo do Documento  ]
  [CT_Numero do Documento   ]=[Answer->CT_Numero do Documento  ]
  [CT_Serie do Documento    ]=[Answer->CT_Serie do Documento   ]
  [Data do Documento        ]=[Answer->Data do Documento       ]
  [Valor do Documento       ]=[Answer->Valor do Documento      ]
  [Redespacho               ]=[Answer->Redespacho              ]

  If [Answer->Redespacho]="S"
     Then [Codigo da Transportadora ]=[Answer->CDTRedespacho           ]
          [Nome Fantasia Transport  ]=[Answer->NFTRedespacho           ] 
  Endif   

  Moveto "Answer"                                           
EndScan                                                      
Do_It!                                                      
ClearAll

AjustarCTR()

if VSDGCODMODELO="4B"    
   then
        Sort Tabela On "Codigo da Empresa","Numero do Documento","Serie do Documento","Redespacho"
        ClearAll
        
        cemp="***"
        ndoc="***"
        sdoc="***"
        Edit Tabela
        Scan
        
          If [Codigo da Empresa  ]=cemp and
             [Numero do Documento]=ndoc and
             [Serie do Documento ]=sdoc and
             [Redespacho         ]="S"
             Then [Valor Nota Fiscal_2]=BlankNum()
                  [Peso Bruto         ]=BlankNum()        
             Else cemp=[Codigo da Empresa  ] 
                  ndoc=[Numero do Documento] 
                  sdoc=[Serie do Documento ] 
          EndIf   
        
        EndScan
        Do_It!
        ClearAll
endif

EndProc ; (Seleciona1)

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona2()
ClearAll

{Ask} {\\Sistemas\\Estoque\\NotaEC}
Moveto [Codigo da Empresa        ] Example "CEmp"
Moveto [Numero Nota Original     ] Example "NDoc"
Moveto [Serie Nota Original      ] Example "SDoc"
Moveto [Codigo do Documento      ] TypeIn "CT.."
Moveto [Tipo do Documento        ] Check TypeIn "As CTCodigo do Documento"
Moveto [Numero do Documento      ] Check TypeIn "As CTNumero do Documento"
Moveto [Serie do Documento       ] Check TypeIn "As CTSerie do Documento"
Moveto [Data de Emissao          ] Check TypeIn "As Data do Documento"
Moveto [Valor Nota Fiscal        ] Check TypeIn "As Valor do Documento"

{Ask} {NotaC} Check
Moveto [Codigo da Empresa        ] Example "CEmp" TypeIn ", ~VSDGEMPRESA.."
Moveto [Numero do Documento      ] Example "NDoc"
Moveto [Serie do Documento       ] Example "SDoc"
Moveto [Codigo                   ] TypeIn "~VSDGDESTINAT.."
Moveto [Cidade                   ] TypeIn CIDADE
Moveto [UF                       ] TypeIn "~VSDGESTADO.."
Moveto [Codigo da Transportadora ] TypeIn "~VSDGTRANSP.."
Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
Moveto [Situacao                 ] TypeIn "Not C"
Switch
  Case VSDGFRETEINC="A" : Moveto [Frete Incluso na Nota    ] TypeIn "\"+\""
  Case VSDGFRETEINC="1" : Moveto [Frete por Conta          ] TypeIn "1"
  Case VSDGFRETEINC="2" : Moveto [Frete por Conta          ] TypeIn "2"
EndSwitch
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf

View Tabela
Edit "Answer"
Scan
  Moveto Tabela
  If [Data de Emissao]=BlankDate()
     Then End
     Else End Down
  EndIf    
  [Codigo da Empresa       ]=[Answer->Codigo da Empresa       ]
  [Nome Fantasia Empresa   ]=[Answer->Nome Fantasia Empresa   ]
  [Codigo do Documento     ]=[Answer->Codigo do Documento     ]
  [Numero do Documento     ]=[Answer->Numero do Documento     ]
  [Serie do Documento      ]=[Answer->Serie do Documento      ]
  [Codigo                  ]=[Answer->Codigo                  ]
  [Razao Social            ]=[Answer->Razao Social            ] 
  [Cidade                  ]=[Answer->Cidade                  ]
  [UF                      ]=[Answer->UF                      ]
  [CEP                     ]=[Answer->CEP                     ]
  [Peso Bruto              ]=[Answer->Peso Bruto              ] 
  [Data de Emissao         ]=[Answer->Data de Emissao         ]
  [Codigo da Transportadora]=[Answer->Codigo da Transportadora]
  [Nome Fantasia Transport ]=[Answer->Nome Fantasia Transport ]  
  [Frete por Conta         ]=[Answer->Frete por Conta         ]
  [Frete Incluso na Nota   ]=[Answer->Frete Incluso na Nota   ]
  [Valor do Frete          ]=[Answer->Valor do Frete          ]
  [Valor Nota Fiscal       ]=[Answer->Valor Nota Fiscal       ]
  [CT_Codigo do Documento  ]=[Answer->CTCodigo do Documento   ]
  [CT_Numero do Documento  ]=[Answer->CTNumero do Documento   ]
  [CT_Serie do Documento   ]=[Answer->CTSerie do Documento    ]
  [Data do Documento       ]=[Answer->Data do Documento       ]
  [Valor do Documento      ]=[Answer->Valor do Documento      ]

  Moveto "Answer"                                           
EndScan                                                      
Do_It!                                                      
ClearAll

AjustarCTR()

EndProc ; (Seleciona2)

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona3()
ClearAll

{Ask} {ContFrtC} Check
Moveto [CT_Numero do Documento   ] TypeIn "Blank"
Moveto [Codigo da Empresa        ] TypeIn "~VSDGEMPRESA.."
Moveto [Codigo                   ] TypeIn "~VSDGDESTINAT.."
Moveto [Cidade                   ] TypeIn CIDADE
Moveto [UF                       ] TypeIn "~VSDGESTADO.."
Moveto [Codigo da Transportadora ] TypeIn "~VSDGTRANSP.."
Moveto [Data de Emissao          ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
Do_It!
ClearAll

View Tabela
Edit "Answer"
Scan
  Moveto Tabela
  If [Data de Emissao]=BlankDate()
     Then End
     Else End Down
  EndIf
  [Numero do Lancamento     ]=[Answer->Numero do Lancamento    ]    
  [Codigo da Empresa        ]=[Answer->Codigo da Empresa       ]
  [Nome Fantasia Empresa    ]=[Answer->Nome Fantasia Empresa   ]
  [Codigo do Documento      ]=[Answer->Codigo do Documento     ]
  [Numero do Documento      ]=[Answer->Numero do Documento     ]
  [Serie do Documento       ]=[Answer->Serie do Documento      ]
  [Codigo                   ]=[Answer->Codigo                  ]
  [Razao Social             ]=[Answer->Razao Social            ] 
  [Cidade                   ]=[Answer->Cidade                  ]
  [UF                       ]=[Answer->UF                      ]
  [CEP                      ]=[Answer->CEP                     ]
  [Data de Emissao          ]=[Answer->Data de Emissao         ]
  [Codigo da Transportadora ]=[Answer->Codigo da Transportadora]
  [Nome Fantasia Transport  ]=[Answer->Nome Fantasia Transport ]  
  [Frete por Conta          ]=[Answer->Frete por Conta         ]
  [Valor Nota Fiscal        ]=[Answer->Valor Nota Fiscal       ]        

  Moveto "Answer"                                           
EndScan                                                      
Do_It!                                                      
ClearAll

EndProc ; (Seleciona3)

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
proc tit_VSDGFRETEINC()
switch          
  Case VSDGFRETEINC="1": VSDGNOMFRETEINC="REMETENTE (CIF)"
  Case VSDGFRETEINC="2": VSDGNOMFRETEINC="DESTINATARIO (FOB)"

  Case VSDGFRETEINC="A": VSDGNOMFRETEINC="FRETE COBRADO NA NOTA"
  otherwise            : VSDGNOMFRETEINC="TODOS FRETE CONTRATADO"
                         VSDGFRETEINC   ="B"  
endswitch          
endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog1(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: 
          Temp=False
          Switch
            Case Campo="TG_FRETE_INC":

              LimpaRodape(0)
            
              ShowPopup " Op‡äes de frete " CENTERED
               "~1~=Transporte contratado/Remetente   -CIF" : " Contrata‡Æo do Frete por conta do Remetente (CIF)   " : "1",
               "~2~=Transporte contratado/Destinat rio-FOB" : " Contrata‡Æo do Frete por conta do Destinat rio (FOB)" : "2",
               separator,
               "~A~  Frete cobrado na nota            "     : " Notas com frete incluso (cobrado)                   " : "A",
               "~B~  Todos com frete contratado       "     : " Notas com frete contratado                          " : "B",
                 Separator,
               "~C~ancelar                            "     : " Cancelar a Opera‡„o                                 " : "CANCELAR"
              EndMenu
               To MenuVar
               
              Switch
                Case MenuVar="CANCELAR" Or
                     MenuVar="Esc"          :

                otherwise                   : VSDGFRETEINC=Menuvar
                                              tit_VSDGFRETEINC()
              EndSwitch
              
            OtherWise               : Dialog_F1()
          EndSwitch

     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch      
            Case Campo="TG_EMPRESA"        : Campo="NO"
            Case Campo="TG_DESTINAT"       : Campo="TG_EMPRESA"
            Case Campo="TG_CIDADE"         : Campo="TG_DESTINAT"
            Case Campo="TG_ESTADO"         : Campo="TG_CIDADE"
            Case Campo="TG_TRANSP"         : Campo="TG_ESTADO"
            Case Campo="TG_DTINI"          : Campo="TG_TRANSP"             
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_FRETE_INC"      : Campo="TG_DTFIM"
            Case Campo="TG_CODMODELO"      : Campo="TG_FRETE_INC"
            Case Campo="YES" Or Campo="NO" : Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA"      : Campo="TG_DESTINAT"
                    Case Campo="TG_DESTINAT"     : Campo="TG_CIDADE"
                    Case Campo="TG_CIDADE"       :
                         If Upper(VSDGCIDADE)="TODAS"
                            Then CIDADE=""
                            Else CIDADE=VSDGCIDADE
                         EndIf
                         Campo="TG_ESTADO"
                    Case Campo="TG_ESTADO"       : Campo="TG_TRANSP"
                    Case Campo="TG_TRANSP"       : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"        : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"        : Campo="TG_FRETE_INC"
                    Case Campo="TG_FRETE_INC"    : Campo="TG_CODMODELO"
                         VSDGFRETEINC=ControlValue("TG_FRETE_INC")
                         tit_VSDGFRETEINC()

                    Case Campo="TG_CODMODELO" : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

Switch
  Case Campo="TG_FRETE_INC"    : MSG_CAMPO="Op‡äes de frete, [F1]Consultar Tabela"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("1A  Notas emitidas x controle frete cotado por Transportadora")
ModeloRelatoriosAdd("1B  Notas emitidas x controle frete cotado por Data de EmissÆo")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("2A  Notas emitidas x entradas de CTe por Transportadora")
ModeloRelatoriosAdd("2B  Notas emitidas x entradas de CTe por Data de EmissÆo")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("3A  Notas do controle frete sem CTe por Transportadora")
ModeloRelatoriosAdd("3B  Notas do controle frete sem CTe por Data de EmissÆo")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("4B  Notas emitidas x controle frete cotado por Redespacho/Data de EmissÆo")
ModeloRelatoriosAdd("Fim")

EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

VSDGFRETEINC  = ""
VSDGDTINI     = BlankDate()
VSDGDTFIM     = BlankDate()

ModeloRelatoriosCarregaLista()

While True                                         

  ShowDialog "Controle de fretes - notas emitidas x CTe" Proc "SD_Dialog1"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 06,12   Height 18 Width 72                                                            
                                                                                 
    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT"  To VSDGDESTINAT
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMDEST" To VSDGNOMDEST        
            
    Label  @ 04,00 "Cidade"  For "TG_CIDADE"
    Accept @ 05,01 Width 27 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

    Label  @ 04,27 "Estado"  For "TG_ESTADO"
    Accept @ 05,28 Width 06 "A2"  Picture "!*!" Tag "TG_ESTADO" To VSDGESTADO
    
    Label  @ 06,00 "Transportadora"  For "TG_TRANSP"
    Accept @ 07,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_TRANSP"    To VSDGTRANSP
    Accept @ 07,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTRANSP" To VSDGNOMTRANSP
    
    Label  @ 08,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 09,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 09,16 "at‚" For "TG_DTFIM"
    Accept @ 09,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM                         
                  
    Label  @ 00,35 "Op‡äes do Frete" For "TG_FRETE_INC"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2,A,B" Tag "TG_FRETE_INC" To VSDGFRETEINC
    Accept @ 01,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMFRETE_INC" To VSDGNOMFRETEINC
    
    Label  @ 11,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 12,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 12,06  Width 63 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO

    Pushbutton @ 14,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 14,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf
  if not ValidarModelosRelatorios() then loop endif         

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  Tabela=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Vendas\\RM_4204" Tabela
  Empty Tabela

  Aguarde("Aguarde, Selecionando Registros")

  Switch
    Case VSDGCODMODELO="1A" or
         VSDGCODMODELO="1B" :   Seleciona1()

    Case VSDGCODMODELO="2A" or
         VSDGCODMODELO="2B" :   Seleciona2()

    Case VSDGCODMODELO="3A" or
         VSDGCODMODELO="3B" :   Seleciona3() 

    Case VSDGCODMODELO="4B" :   Seleciona1()

  EndSwitch

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o Existem Registros a Processar")
     else
          AGUARDE("Aguarde, Gerando Relat¢rio")

          Switch
            Case VSDGCODMODELO="1A" :
                 Impressao_Orientacao="Paisagem"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "R"  Tabela "R"        

            Case VSDGCODMODELO="1B" : 
                 Impressao_Orientacao="Paisagem"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "1"  Tabela "R"        

            Case VSDGCODMODELO="2A" : 
                 Impressao_Orientacao="Paisagem"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "R"  Tabela "R"        

            Case VSDGCODMODELO="2B" : 
                 Impressao_Orientacao="Paisagem"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "1"  Tabela "R"        
        
            Case VSDGCODMODELO="3A" : 
                 Impressao_Orientacao="Retrato"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "2"  Tabela "R"        

            Case VSDGCODMODELO="3B" : 
                 Impressao_Orientacao="Retrato"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "3"  Tabela "R"        
                 
            Case VSDGCODMODELO="4B" : 
                 Impressao_Orientacao="Paisagem"
                 copyreport "\\base\\Sistemas\\Vendas\\rm_4204" "1"  Tabela "R"        

          EndSwitch
          IMPRIREL(Tabela,"R")
  EndIf

  Delete Tabela
  Delete "Answer"

EndWhile
ClearAll
