;** RE_0030 ********************************************************************
;*  Emissao de Envelopes Clientes/Fornecedores                                 *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/04/2003 por Karen Lauar Nery
;Ultima Alteracao: 25/10/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 13/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 17/12/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes                 
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 26/06/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Selecoes
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 16/10/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Sem compras
;Ultima Alteracao: 18/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Data Cadastro
;Ultima Alteracao: 01/03/2009 por Cleber Alves
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 27/08/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes BUG
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas               
;Ultima Alteracao: 19/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substitui‡Æo Editor novo arquivo por FileWrite
;Ultima Alteracao: 17/12/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes na proc "ConfOpcoes" onde havia erro de sintaxe

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  End
  Down
  Moveto [Codigo]

  SetaCorRegistro("Editando")
  While True

  TECLA="F1=Tabelas"
  AguardaTeclasPadrao()

    If RetVal=-33
    Then Echo Normal
         Echo Off
         ShowPopup " Fun‡”es " CENTERED
          "~I~mprimir [F6]  ": " Selecionar/Imprimir etiqueta     " :"F6",
          "~L~impar   [F5]  ": " Limpar a lista corrente          " :"F5",
          "~S~ele‡„o  [F4]  ": " Selecionar dados                 " :"F4",
          "~C~ancelar       ": " Cancelar a Opera‡„o              " : "CANCELAR"
         EndMenu
         To MenuVar
         Echo Off
         If MenuVar="CANCELAR" or MenuVar="Esc"
            Then Loop
        EndIf                                         
        RetVal=MenuVar
  EndIf

  Switch
      Case RetVal="F3": SemFicha()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F5":
           ConfGeral("Confirma a exclus„o dos registro desta relac„o ?")
           If OK="S"
               Then Limpar()
           EndIf
           QuitLoop
      Case RetVal="F4":
           Del
           Selecao()
           QuitLoop
      Case RetVal="F6":

           Echo Normal
           Echo Off

           ShowPopup " Op‡”es " CENTERED
               "~R~emetente                     " : " Imprime endere‡o do Remetente"                :"Remetente",
               "Destinat rio endere‡o ~F~atura  " : " Imprime endere‡o de Fatura do destinat rio"   :"Fatura",
               "Destinat rio endere‡o ~C~obran‡a" : " Imprime endere‡o de Cobran‡a do destinat rio" :"Cobranca",
               "~C~ancela"                        : " N„o Imprimir no Momento"                      :"Cancela"
           EndMenu
           To OpEnd

           echo off

           If Not Retval Or OpEnd="Cancela" or OpEnd="Esc"
              Then QuitLoop
           EndIf

           ConfOpcoes("Ler")

           Del
           Do_It!
           If Not IsEmpty("Re_0010")
              Then DISPOSITIVO()
                   If OK=""
                      Then Coeditkey
                           QuitLoop
                   EndIf
                   If Not Imprimir()
                      Then Coeditkey
                           QuitLoop
                   EndIf
                   ASP1=""
                   ASP2=""
                   ARQIMP = DIREPORT+"Envelope.TXT"
                   Fim=False
                   Switch
                         Case OK="A": ARQIMP = DIREPORT+ARQUIVO+".TXT"
                         Case OK="V": ASP1="\""
                                      ASP2="\""
                   EndSwitch
                   Deleta_Arquivo(ARQIMP)
                   AGUARDE("Imprimindo")
                   OPCAO=OK

                   ClearAll
                   View "End_Cob"
                   View "Re_0010"
                   scan
                      i=1
                      While True
                            If (i>=VSDGLINHAS)
                               Then QuitLoop
                               Else Print File ARQIMP ASP1+ASP2+"\n"
                                    i=i+1
                            EndIf
                      EndWhile

                      PEND=[Endereco]
                      PBAI=[Bairro  ]
                      PCEP=[CEP     ]
                      PCID=[Cidade  ]
                      PUF =[UF      ]

                      If OpEnd="Cobranca"
                         Then Moveto "End_Cob"
                              Moveto [Codigo]
                              Locate [Re_0010->Codigo]
                              If RetVal
                                 Then If Not IsBlank([Endereco de Cobranca]) And
                                         [Endereco de Cobranca]<>"O MESMO"
                                         Then PEND=[Endereco de Cobranca]
                                              PBAI=[Bairro de Cobranca  ]
                                              PCEP=[CEP de Cobranca     ]
                                              PCID=[Cidade de Cobranca  ]
                                              PUF =[UF de Cobranca      ]
                                      EndIf
                              EndIf
                              Moveto "Re_0010"
                      EndIf

                      If OpEnd="Cobranca" Or
                         OpEnd="Fatura"
                         Then Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS  )+" "+ASP2+"\n"
                              Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS  )+"AT.: "+Format("W35,AL",[Contato]) +ASP2+"\n"
                         Else Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS  )+"REMETENTE: "+ASP2+"\n"
                              Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS+1)+"    "+Format("W35,AL",[Contato]) +ASP2+"\n"
                      EndIf
                      Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS+5)+Format("W35,AL",[Razao Social])+ASP2+"\n"
                      Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS+5)+Format("W35,AL",PEND)+ASP2+"\n"
                      Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS+5)+Format("W35,AL",PCEP+"  "+PBAI)+ASP2+"\n"
                      Print File ARQIMP ASP1+Spaces(VSDGCOLUNAS+5)+Format("W35,AL",PCID+"/"+PUF)+ASP2+"\n"
                      Print File ARQIMP ASP1+"\f"+ASP2+"\n"
                      If OPCAO="I"
                         Then If OPPAUSA="S"
                                 Then ConfGeral("Prepare o Envelope, continuar a impress„o !")
                                      If OK<>"S"
                                         Then Fim=True
                                              QuitLoop
                                      EndIf
                                      ImpriArq(ARQIMP)
                                      Deleta_Arquivo(ARQIMP)
                              EndIf

                      EndIf
                   EndScan
                   ClearAll

                   If Not Fim
                      Then If OK="V"
                              Then Tabela=Cria_Temp(PrivDir())
                                   {Tools} {Copy} {Table} {Rm_tx250} TypeIn Tabela Enter ClearAll
                                   {Tools} {ExportImport} {Import} {ASCII} {AppendDelimited} TypeIn ARQIMP Enter
                                   TypeIn Tabela Enter ClearAll
                                   OPCAOPAG="Todas"
                                   IMPRIREL(Tabela,"R")
                                   Deleta_Arquivo(ARQIMP)
                                   Delete Tabela
                              Else If OPCAO="I" 
                                      then ImpriArq(ARQIMP)
                                   EndIf
                                   Mensagem("Impress„o Concluida !")                                   
                           EndIf
                   EndIf

                   CoEdit "RE_0010"
                   PickForm "1"
           EndIf
           QuitLoop

      Case RetVal="F1":
           If Field()="Codigo"
              Then If Not CONSULTAF1()
                      Then Loop
                   EndIf   
           EndIf
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
             PAGINA("Re_0010","MR")
             If EDITAR="S"
                Then CHAVE=0
                     UnLockRecord
                Else If EXCLUIR="S"
                        Then If QuerExcluir("")
                                Then DEL
                                Else UnLockRecord
                             EndIf
                        Else QuitLoop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
           QuitLoop
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case RetVal="ENTER":
           If IsBlank([])
              Then Loop
           EndIf
           []=Alinh()
           CODIGO=[]
           Echo Normal
           Del
           Locate CODIGO
           Echo Off
           If Retval
              Then Mensagem("Codigo j  relacionado !")
              Else CHAVE=1
                   End Down
                   [Codigo]=CODIGO
           EndIf
           QuitLoop
    EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina Limpar Registros                                                     *
;*******************************************************************************
Proc Limpar()
Aguarde("Aguarde, Excluindo registros")
Do_It!
Empty("RE_0010")
CoEditKey
PickForm "1"
EndProc

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona1()
ClearAll

{Ask} {Destinat}
Moveto [Codigo                 ] Check
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Inativo]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If VSDGOPDT=2
	 Then Moveto [Data_Cadastro] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
EndIf

Do_It!
ClearAll

wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona2()
ClearAll

Seleciona1()
wc=0

View "DestInfo"
CoEdit "Answer"
Scan
  cliok=false
  Moveto "DestInfo"
  Moveto [Codigo]
  Locate [Answer->Codigo]
  If RetVal
     Then If Not IsBlank([Data de Nascimento])
             Then datai=DateVal(StrVal(Month([Data de Nascimento]))+"/"+StrVal(Day([Data de Nascimento]))+"/"+StrVal(Year(VSDGDTINI)))
                  dataf=DateVal(StrVal(Month([Data de Nascimento]))+"/"+StrVal(Day([Data de Nascimento]))+"/"+StrVal(Year(VSDGDTFIM)))
                  If Datai>=VSDGDTINI And Dataf<=VSDGDTFIM
                     Then cliok=true
                  EndIf
          EndIf
  EndIf
  Moveto "Answer"     
  If not cliok
     Then [Codigo]=""
  EndIf   
EndScan
Do_It!
ClearAll

{Ask}{Answer} Check
Moveto [Codigo] TypeIn "Not Blank"
Do_It!
ClearAll
wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona3()
ClearAll

SetDir "\\Sistemas\\Vendas"
Tabela2=Cria_Temp(PrivDir())
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     Then Delete "Answer" EndIf
  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
    Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo                 ] Check
          Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
          Moveto [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Do_It!
          ClearAll
  EndIf
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela2)
     Then Add "Answer" Tabela2
     Else Rename "Answer" Tabela2
  EndIf
EndWhile
ClearAll

SetDir "\\Sistemas\\Cadastro"
{Ask} {Destinat}
Moveto [Codigo                 ] Check Example "cli"
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Inativo]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If Not IsBlank(VSDGSITUACAO)
   Then Moveto [Situacao do Cliente] TypeIn "~VSDGNOMSITUACAO.."
EndIf
{Ask} TypeIn Tabela2 Enter
Moveto [Codigo                 ] Example "cli"
Do_It!
ClearAll

Delete Tabela2
wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina para Selecionar Registros                                            *
;*******************************************************************************
Proc Seleciona4()
ClearAll

SetDir "\\Sistemas\\Vendas"
Tabela2=Cria_Temp(PrivDir())
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     Then Delete "Answer" EndIf
  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC")
    Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo                 ] Check
          Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
          Moveto [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Codigo do Representante] TypeIn "~VSDGREPRESEN.."
          Do_It!
          ClearAll
  EndIf
  If Not IsTable("Answer") Then Loop EndIf
  If IsTable(Tabela2)
     Then Add "Answer" Tabela2
     Else Rename "Answer" Tabela2
  EndIf
EndWhile
ClearAll


SetDir "\\Sistemas\\Cadastro"
{Ask} {Destinat}
Moveto [Codigo                 ] Check
Moveto [Tipo                   ] TypeIn "~VSDGTIPO"
Moveto [Cidade                 ] TypeIn CIDADE
Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
Moveto [Codigo Atividade       ] TypeIn "~VSDGATIVIDADE.."
Moveto [Inativo]
Switch
  Case VSDGSTATUS="1": TypeIn "N"
  Case VSDGSTATUS="2": TypeIn "S"
EndSwitch
If Not IsBlank(VSDGSITUACAO)
   Then Moveto [Situacao do Cliente] TypeIn "~VSDGNOMSITUACAO.."
EndIf
Do_It!
ClearAll

{Ask} TypeIn Tabela2 Enter
Moveto [Codigo                 ] Example "cli"
{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Codigo                 ] Example "cli"
Do_It!
ClearAll

Delete Tabela2
wc=NRecords("Answer")
EndProc    ; (Seleciona)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(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: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            ;** Selecao **
            Case Campo="TG_TIPO"           : Campo="NO"
            Case Campo="TG_STATUS"         : Campo="TG_TIPO"
            Case Campo="TG_SITUACAO"       : Campo="TG_STATUS"
            Case Campo="TG_REPRESEN"       : Campo="TG_SITUACAO"
            Case Campo="TG_AREA"           : Campo="TG_REPRESEN"
            Case Campo="TG_ATIVIDADE"      : Campo="TG_AREA"
            Case Campo="TG_CIDADE"         : Campo="TG_ATIVIDADE"
            Case Campo="TG_OPDT"           : Campo="TG_CIDADE"
            Case Campo="TG_DTINI"          : Campo="TG_OPDT"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"
            Case Campo="TG_QUANTIDADE"     :
                 If VSDGTIPO="C"
                    Then Campo="TG_OPDT"
                    Else Campo="TG_STATUS"
                 EndIf
            ;** Imprimir **
            Case Campo="TG_LINHAS"     : Campo="NO"
            Case Campo="TG_COLUNAS"    : Campo="TG_LINHAS"
            Case Campo="TG_OPPAUSA"    : Campo="TG_COLUNAS"
            Case Campo="YES" Or Campo="NO" :
                 If OP_SHOW="S"
                    Then Campo="TG_TIPO"
                    Else Campo="TG_LINHAS"
                 EndIf
          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
                    ;** Selecao **
                    Case Campo="TG_TIPO" : 
                         VSDGTIPO=ControlValue("TG_TIPO")
                         If Not IsBlank(VSDGTIPO)
                            Then Switch
                                   Case VSDGTIPO="C": VSDGNOMTIPO="CLIENTES"
                                   Case VSDGTIPO="F": VSDGNOMTIPO="FORNECEDORES"
                                 EndSwitch
                                 Campo="TG_STATUS"
                         EndIf
                    Case Campo="TG_STATUS"   :  
                         If VSDGTIPO="F"
                            Then VSDGREPRESEN =""
                                 VSDGNOMREPR  =""
                                 VSDGATIVIDADE=""
                                 VSDGNOMATIV  =""
                                 VSDGAREA     =""
                                 VSDGNOMAREA  =""
                                 VSDGCIDADE   =""
                                 VSDG_OPDT    =4
                                 VSDGDTINI   =BlankDate()
                                 VSDGDTFIM   =BlankDate()
                                 VSDGSITUACAO=""
                                 VSDGNOMSITUACAO=""
                                 Campo="TG_QUANTIDADE"
                            Else Campo="TG_SITUACAO"
                         EndIf
                    Case Campo="TG_SITUACAO"    : Campo="TG_REPRESEN"
                        VSDGSITUACAO=ControlValue("TG_SITUACAO")
                        Switch
                          Case VSDGSITUACAO="B": VSDGNOMSITUACAO="BOM"
                          Case VSDGSITUACAO="R": VSDGNOMSITUACAO="REGULAR"
                          Case VSDGSITUACAO="P": VSDGNOMSITUACAO="PESSIMO"
                          Case VSDGSITUACAO="E": VSDGNOMSITUACAO="RECADASTRO"
                          Case VSDGSITUACAO="" : VSDGNOMSITUACAO="TODOS"
                        EndSwitch
                    Case Campo="TG_REPRESEN" : Campo="TG_AREA"
                    Case Campo="TG_AREA"     : Campo="TG_ATIVIDADE"
                    Case Campo="TG_ATIVIDADE": Campo="TG_CIDADE"
                    Case Campo="TG_CIDADE"   : Campo="TG_OPDT"
                         If Upper(VSDGCIDADE)="TODAS"
                            Then CIDADE=""
                            Else CIDADE=VSDGCIDADE
                         EndIf
                    Case Campo="TG_OPDT"  : Campo="TG_DTINI"
                         VSDGOPDT=ControlValue("TG_OPDT")
                         If VSDGOPDT=5 Then Campo="TG_QUANTIDADE" EndIf
                    Case Campo="TG_DTINI"   : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"   : Campo="TG_QUANTIDADE"
                    Case Campo="TG_QUANTIDADE"  :
                         VSDGQUANTIDADE=ControlValue("TG_QUANTIDADE")
                         If Not Isblank(VSDGQUANTIDADE)
                            Then Campo="YES"
                         EndIf

                    ;** Imprimir **
                    Case Campo="TG_LINHAS"     :
                        VSDGLINHAS=ControlValue("TG_LINHAS")
                        If IsBlank(VSDGLINHAS)
                           Then VSDGLINHAS=0
                        EndIf
                        Campo="TG_COLUNAS"
                    Case Campo="TG_COLUNAS"    :
                        VSDGCOLUNAS=ControlValue("TG_COLUNAS")
                        If IsBlank(VSDGCOLUNAS)
                           Then VSDGCOLUNAS=0
                        EndIf
                        Campo="TG_OPPAUSA"
                    Case Campo="TG_OPPAUSA"    :
                        Campo="YES"

                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_TIPO":
     MSG_CAMPO="Informe C -> Cliente, F -> Fornecedor"
  Case Campo="TG_SITUACAO":
     MSG_CAMPO="Informe(B=Bom  R=Regular  P=Pessimo  E=Recadastro  Em Branco=Todos)"
  Case Campo="TG_OPDT" :
     MSG_CAMPO="Selecione o op‡„o desejada !"
     TECLA    ="=Selecionar  "
  Case Campo="TG_QUANTIDADE":
     MSG_CAMPO="Informe a quantidade de repeti‡„o do Envelope"
  Case Campo="TG_LINHAS":
     MSG_CAMPO="Digite o n§ de linhas a saltar para que se inicie a impressÆo"
  Case Campo="TG_COLUNAS":
     MSG_CAMPO="Digite o n§ de colunas a saltar para que se inicie a impressÆo"
  Case Campo="TG_OPPAUSA":
     MSG_CAMPO="Defina a op‡„o"
     TECLA="Barra de Espa‡o=Marca/Desmarca  "
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Filtrar Registros                                                    *
;*******************************************************************************
Proc Selecao()
LimpAguarde()
Do_It!
ClearAll
Echo Normal
Echo Off

VSDGTIPO     =""
VSDGNOMTIPO  =""
VSDGREPRESEN =""
VSDGNOMREPR  =""
VSDGATIVIDADE=""
VSDGNOMATIV  =""
VSDGAREA     =""
VSDGNOMAREA  =""
VSDGCIDADE   =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()
VSDGSTATUS   =""
VSDGOPDT     =5
VSDGSITUACAO =""

OP_SHOW="S"
ShowDialog "Sele‡„o de Registros a Incluir" Proc "SD_Dialog"
Trigger "OPEN","ARRIVE"
Key "F1","ENTER","ESC","TAB",
    -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
 @ 01,01 Height 21 Width 70

  Label  @ 00,00 "Tipo" For "TG_TIPO"
  Accept @ 01,01 Width 04 "A1"  Picture "C,F, " Tag "TG_TIPO" To VSDGTIPO
  Accept @ 01,06 Width 16 "A13" Picture "!*!" Tag "TG_NOMTIPO" To VSDGNOMTIPO

  Label  @ 00,34 "Status"  For "TG_STATUS"
  Accept @ 01,35 Width 04 "A1"  Picture "1,2,3" Tag "TG_STATUS" To VSDGSTATUS
  Accept @ 01,40 Width 23 "A12" Picture "!*!" Tag "TG_NOMSTATUS" To VSDGNOMSTATUS

  Label  @ 02,00 "Situacao do Cliente" For "TG_SITUACAO"
  Accept @ 03,01 Width 04 "A1"  Picture "B,R,P" Tag "TG_SITUACAO"  To VSDGSITUACAO
  Accept @ 03,06 Width 23 "A12" Picture "!*!" Tag "TG_NOMSITUACAO" To VSDGNOMSITUACAO

  Label  @ 04,00 "Representante"  For "TG_REPRESEN"
  Accept @ 05,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN"   To VSDGREPRESEN
  Accept @ 05,09 Width 33 "A30" Picture "!*!" Tag "TG_NOMREPR" To VSDGNOMREPR

  Label  @ 06,00 "Area"  For "TG_AREA"
  Accept @ 07,01 Width 07 "A2"  Picture "#*#" Tag "TG_AREA"  To VSDGAREA
  Accept @ 07,09 Width 33 "A30" Picture "!*!" Tag "TG_NOMAREA" To VSDGNOMAREA

  Label  @ 08,00 "Atividade"  For "TG_ATIVIDADE"
  Accept @ 09,01 Width 07 "A4"  Picture "#*#" Tag "TG_ATIVIDADE"  To VSDGATIVIDADE
  Accept @ 09,09 Width 22 "A20" Picture "!*!" Tag "TG_NOMATIV" To VSDGNOMATIV

  Label  @ 08,34 "Cidade"  For "TG_CIDADE"
  Accept @ 09,35 Width 23 "A20"  Picture "!*!" Tag "TG_CIDADE"  To VSDGCIDADE

  Label  @ 10,00 "Op‡”es de Datas: "  For "TG_OPDT"
  RadioButtons @ 11,01 Height 2 Width 65
   "~A~nivers rio",
   "Ca~d~astro",
   "~C~om Compras",
   "~S~em Compras",
   "~I~gnorar"
   Tag "TG_OPDT"
   To VSDGOPDT

  Label  @ 14,00 "Per¡odo Referente" For "TG_DTINI"
  Label  @ 15,00 "de" For "TG_DTINI"
  Accept @ 15,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
  Label  @ 15,17 "at‚" For "TG_DTFIM"
  Accept @ 15,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

  Label  @ 14,39 "Quantidade" For "TG_QUANTIDADE"
  Accept @ 15,40 Width 10 "S"  Tag "TG_QUANTIDADE" To VSDGQUANTIDADE

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

EndDialog
If Not RetVal Or Not Usuario_Vendedor()
   Then ClearAll
        CoEdit "RE_0010"
        PickForm "1"
        ;PickForm "F"
        Return
EndIf        
   
LimpaRodape(0)
Aguarde("Aguarde, Selecionando registros")
wc=0
Switch
  Case VSDGOPDT=1: Seleciona2()
  Case VSDGOPDT=3: Seleciona3()
  Case VSDGOPDT=4: Seleciona4()
  OtherWise      : Seleciona1()
EndSwitch
If wc=0
   Then Mensagem("N„o existe registro conforme sele‡„o !")
   Else

  {Ask} {Answer} 
  Moveto [Codigo                 ] Example "a1"
  {Ask} {Re_0010} TypeIn "Fast Delete"
  Moveto [Codigo                 ] Example "a1"
  Do_It!
  ClearAll
  
  View "Re_0010"
  CoEdit "Answer"
  Scan
    Moveto "Re_0010"
    End Down
    [Codigo    ]=[Answer->Codigo]
    [Quantidade]=VSDGQUANTIDADE
    Moveto "Answer"
  EndScan
  Do_It!
  ClearAll
EndIf

CoEdit "RE_0010"
PickForm "1"
;PickForm "F"
EndProc

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc Imprimir()
LimpaRodape(0)

While True

  OP_SHOW="I"
  ShowDialog " Imprimir " Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
    -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
  @ 01,01 Height 09 Width 43

   Label  @ 00,00 "Linhas"  For "TG_LINHAS"
   Accept @ 01,01 Width 7 "S"  Tag "TG_LINHAS" To VSDGLINHAS

   Label  @ 00,10 "Colunas"  For "TG_COLUNAS"
   Accept @ 01,11 Width 7 "S"  Tag "TG_COLUNAS" To VSDGCOLUNAS

   CheckBoxes @ 03,00 Height 1 Width 40 Tag "TG_OPPAUSA"
   TG_OPPAUSA[1] to CheckTG_OPPAUSA[1]

   Pushbutton @ 05,00 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
   Pushbutton @ 05,12 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal
     Then Return False

  EndIf
  ConfOpcoes("Gravar")

  If CheckTG_OPPAUSA[1]
     Then OPPAUSA="S"
     Else OPPAUSA="N"
  EndIf

  Return True

EndWhile
ClearAll

EndProc ;(Imprimir)

;************************************************************************
;* ROTINA PARA LIMPAR AGUARDE                                           *
;************************************************************************
Proc LimpAguarde2L()
@ 23,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 23,0,23,79
@ 24,0 ?? Fill(" ",80)
PaintCanvas Attribute 31 24,0,24,79
EndProc ; (LimpAguarde2L)

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao,arq

Switch
  Case Opcao="Ler":
       If OpEnd="Remetente"
          Then If IsFile("CFG_030R.sc")
                   Then Play "CFG_030R"
               EndIf
          Else If IsFile("CFG_030D.sc")
                   Then Play "CFG_030D"
               EndIf
       EndIf
  Case Opcao="Gravar":
       If OpEnd="Remetente"
         Then arq="CFG_030R.sc"
         Else arq="CFG_030D.sc"
       EndIf

       FileWrite        arq From ";****** Variaveis de Configura‡„o Linhas e Colunas Envelopes"+"\n"
       FileWrite Append arq From "VSDGLINHAS = "+ StrVal(VSDGLINHAS) +"\n"
       FileWrite Append arq From "VSDGCOLUNAS= "+ StrVal(VSDGCOLUNAS)+"\n"
EndSwitch
EndProc ;ConfOpcoes

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

VSDGOPRELCODALFDIG   =""
VSDGNOMOPRELCODALFDIG=""
VSDGOPRELLISTCAD     =""
VSDGNOMOPRELLISTCAD  =""
VSDGLINHAS           =""
VSDGCOLUNAS          =""
CIDADE               =""
VSDGQUANTIDADE       =1

Array TG_OPPAUSA[1]
TG_OPPAUSA[1]="Pausa na impress„o de cada envelope"

Array CheckTG_OPPAUSA[ArraySize(TG_OPPAUSA)]
CheckTG_OPPAUSA[1]=False

CoEdit "Re_0010"
PickForm "1"
While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
