;** RE_0010 ********************************************************************
;*  Emissao de Etiquetas Produtos - Modelo II                                  *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 09/10/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 02/03/2007 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao da etiqueta 46 e 47 Zebra
;Ultima Alteracao: 14/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao da etiqueta 48 Intermec code128
;Ultima Alteracao: 29/03/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Ordem Impressao
;Ultima Alteracao: 10/04/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao da etiqueta 49 Intermec ean13
;Ultima Alteracao: 14/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 30/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN 0185 ET_Z002B
;Ultima Alteracao: 04/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN Selecao requisicao
;Ultima Alteracao: 11/03/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TN Selecao requisicao item tipo P
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 26/06/2008 por Nikolas
;Motivo Alteracao: Inclusao Nova etiqueta numero 50 modamil
;Ultima Alteracao: 10/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes GDA Selecao Pedido
;Ultima Alteracao: 31/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Clientes 0003,0200
;Ultima Alteracao: 19/08/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Carol Distribuidora
;Ultima Alteracao: 03/10/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Uzze Buzze
;Ultima Alteracao: 18/01/2009 por Nikolas
;Motivo Alteracao: Inclusao Modelo Diobra 55
;Ultima Alteracao: 12/02/2009 por Nikolas
;Motivo Alteracao: Inclusao Modelo Lupus 56
;Ultima Alteracao: 17/02/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Relacao Inclusao Modelo Kaney 58
;Ultima Alteracao: 25/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Auditoria 59
;Ultima Alteracao: 27/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo Bali 60
;Ultima Alteracao: 08/04/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Modelo SIRI 61,62
;Ultima Alteracao: 17/07/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes QTD Pedido
;Ultima Alteracao: 24/08/2009 por Cleber Alves
;Motivo Alteracao: Inclusao do Modelo 63
;Ultima Alteracao: 09/09/2009 por Nikoas
;Motivo Alteracao: Inclusao do Modelo 64 (Bali II)
;Ultima Alteracao: 15/09/2009 por Nikoas
;Motivo Alteracao: Inclusao do Modelo 65 (Concretos Vico)
;Ultima Alteracao: 10/05/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 66 (Ecologica)
;Ultima Alteracao: 21/06/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 67 (Concretos Vico)
;Ultima Alteracao: 02/07/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes pegar pre‡o na tabela, inclusao modelo 36A
;Ultima Alteracao: 18/08/2010 por Bruno Carvalho
;Motivo Alteracao: Altera‡Æo Estrutura (Campo Concentrador), InclusÆo Modelo 36B
;Ultima Alteracao: 02/09/2010 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 36C
;Ultima Alteracao: 15/09/2010 por Karina Andrade
;Motivo Alteracao: Ajustes codigo cliente confec‡Æo
;Ultima Alteracao: 22/10/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao do Modelo 36R (Rolamentos Total)
;Ultima Alteracao: 22/11/2010 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 68 (Agel)
;Ultima Alteracao: 03/01/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 69 (Queops)
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 70 (XT5)
;Ultima Alteracao: 21/01/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 71 (Zuggy-Zi)
;Ultima Alteracao: 18/02/2011 por Bruno Carvalho
;Motivo Alteracao: Novo Layout para Visualiza‡Æo de Etiquetas
;Ultima Alteracao: 18/02/2011 por Bruno Carvalho
;Motivo Alteracao: Inclusao do Modelo 72 (Ozanam)
;Ultima Alteracao: 11/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes imprimir na ordem digitada
;Ultima Alteracao: 30/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Isabela Garcia Nova Codifica‡Æo
;Ultima Alteracao: 06/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao do Modelo 73 (PintaCor)
;Ultima Alteracao: 12/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novas fun‡äes para confec‡äes
;Ultima Alteracao: 26/05/2011 por Bruno Carvalho
;Motivo Alteracao: Modelo 74: Filtra CondPgto da Tabela de Pre‡o . Cliente 0293 (C¢pia Mod55)
;Ultima Alteracao: 13/06/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes no Modelo 63, para antigo modelo 36R (Substituido)
;Ultima Alteracao: 21/06/2011 por Karina Andrade
;Motivo Alteracao: Add Modelo 75, ajustes digita‡Æo Codigo do item
;Ultima Alteracao: 22/07/2011 por Karina Andrade
;Motivo Alteracao: Add Modelo 76 e 77, copia 75 - ajustes de tamanho e colunas
;Ultima Alteracao: 15/09/2011 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 78 (ModaMil)
;Ultima Alteracao: 16/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Modelo 56
;Ultima Alteracao: 19/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Modelo 56 e inclusao 79, etiqueta 79=56 com pre‡o
;Ultima Alteracao: 07/02/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 80
;Ultima Alteracao: 10/05/2012 por Karina Andrade
;Motivo Alteracao: Modelo 81(C¢pia Modelo 74)
;Ultima Alteracao: 15/05/2012 por Karina Andrade
;Motivo Alteracao: Alterado Modelo 81 reajustado, impressÆo por Script
;Ultima Alteracao: 18/05/2012 por Karina Andrade
;Motivo Alteracao: Add Modelo 82 "0222"
;Ultima Alteracao: 18/06/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Selecao() - add TG_MESANO para ET_Z001C
;Ultima Alteracao: 1/08/2012 por Kamila Gomes
;Motivo Alteracao: InclusÆo Sys_codigo_cliente para ET_z002B OAZ's
;Ultima Alteracao: 18/05/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 83 "0243"
;Ultima Alteracao: 10/08/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 84 "GDA"
;Ultima Alteracao: 15/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes CODIGO_CLIENTE "0243"
;Ultima Alteracao: 16/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar")
;Ultima Alteracao: 22/08/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes para Modelo 02 quando for empresa "0112"
;Ultima Alteracao: 21/09/2012 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 85 "Moreira & Silva"
;Ultima Alteracao: 25/09/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar")
;Ultima Alteracao: 02/10/2012 por Bruno Carvalho
;Motivo Alteracao: Ajustes ConfOpcoes("Gravar") e ao Carregar as Variaveis da Escolha da Op‡Æo da Etiqueta
;Ultima Alteracao: 05/10/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo p/ selecionar modelos preferenciais
;Ultima Alteracao: 08/10/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado Rotina p/ Leitura e Grava‡Æo do Arquivo me INI
;Ultima Alteracao: 09/10/2012 por Bruno Carvalho
;Motivo Alteracao: Alterado ET_Z014 p/ ET_Z014p onde o novo script ir  imprimir sem logomarca
;Ultima Alteracao: 28/12/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 44A #0294#
;Ultima Alteracao: 10/01/2013 por Bruno Carvalho
;Motivo Alteracao: Informado para o modelo 85 o codigo do usuario que o utiliza
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape()
;Ultima Alteracao: 18/02/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes SetaCorRegistro()
;Ultima Alteracao: 19/02/2013 por Bruno Carvalho
;Motivo Alteracao: Modelo "81" onde o houve altera‡äes/ajustes nessa rotina
;Ultima Alteracao: 27/02/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ utiliza‡Æo da Tabela de Pre‡o quando necess rio
;Ultima Alteracao: 05/03/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes p/ utiliza‡Æo da Tabela de Pre‡o quando necess rio,
;                  inclusÆo Modelo 86 "Moreira & Silva"
;Ultima Alteracao: 25/03/2013 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 59A [0217]
;Ultima Alteracao: 12/06/2013 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 87  [0286]
;Ultima Alteracao: 24/06/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes Modelo "59"
;Ultima Alteracao: 06/08/2013 por Karina Andrade
;Motivo Alteracao: Ajustes para impressÆo de requisi‡Æo,pedidos e documento Notai
;Ultima Alteracao: 13/08/2013 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 36D #0311# "C¢pia do Modelo 36A, alterado tamanho pre‡o e removido referˆncia"
;Ultima Alteracao: 28/08/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes quando utilizar a etiqueta "36C"
;Ultima Alteracao: 17/09/2013 por Karina Andrade
;Motivo Alteracao: Novo tamanho etiqueta="78" com 1 coluna para
;Ultima Alteracao: 31/10/2013 por Andrey Fillipe
;Motivo Alteracao: Add Modelo 88 #0226#
;Ultima Alteracao: 01/11/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado novo filtro "Notas de Entrada" e ajustado layout de sele‡Æo
;Ultima Alteracao: 06/11/2013 por Bruno Carvalho
;Motivo Alteracao: Ajsutes Modelo 88 p/ imprimir COD128 e EAN13 #0266#
;Ultima Alteracao: 06/11/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes e adiconado Modelo 88A #0266#
;Ultima Alteracao: 06/11/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado "Localiza‡Æo do Item"
;Ultima Alteracao: 12/11/2013 por Bruno Carvalho
;Motivo Alteracao: Cancelado a Etiqueta 88A, devido ao tamanho da etiqueta que o sensor nÆo est  identificando corretamente
;Ultima Alteracao: 12/11/2013 por Bruno Carvalho
;Motivo Alteracao: Add fun‡Æo F10 para calcular o numero de etiquetas a ser impressa
;Ultima Alteracao: 12/11/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 90 #0066#
;Ultima Alteracao: 13/11/2013 por Bruno Carvalho
;Motivo Alteracao: Modelo 88A adicionado e corrigido conforme os formatos da etiqueta
;Ultima Alteracao: 22/11/2013 por Bruno Carvalho
;Motivo Alteracao: Comentado a op‡Æo F10 para calcular o numero de etiquetas a ser impressa
;Ultima Alteracao: 02/12/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustado a op‡Æo F10 para calcular o numero de etiquetas a ser impressa
;Ultima Alteracao: 20/12/2013 por Andrey Fillipe
;Motivo Alteracao: Alterado no F7(Selecao) de quantidade para QtdConvertida
;Ultima Alteracao: 23/12/2013 por Andrey Fillipe
;Motivo Alteracao: Ajustes (tirei F10 e coloquei p/ mostrar quantidade de etiqueta no rodap‚)
;Ultima Alteracao: 30/01/2014 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 66A #0252#
;Ultima Alteracao: 28/02/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes Seleciona_Etiquetas()
;Ultima Alteracao: 05/05/2014 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 57 #0159#
;Ultima Alteracao: 10/06/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes na forma de Localizar o item
;Ultima Alteracao: 14/07/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes na forma de Localizar o item
;Ultima Alteracao: 25/03/2013 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 59B #0304#
;Ultima Alteracao: 27/08/2014 por Bruno Carvalho
;Motivo Alteracao: Adicionado rotina Recarrega() p/ recarregar itens conforme cadastro atual
;Ultima Alteracao: 30/09/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado Modelo 21 #0357# "ET_0357"
;Ultima Alteracao: 06/10/2014 por Andrey Fillipe
;Motivo Alteracao: Ajustes Quando consultar item voltar para o FORM que estava
;Ultima Alteracao: 14/10/2014 por Andrey Fillipe
;Motivo Alteracao: Ajustes quando for LOCALIZA_CODIGO="LOC_CODITE" Mover para [Codigo do Item]
;Ultima Alteracao: 20/03/2015 por Bruno Carvalho
;Motivo Alteracao: Ajustes MSG da proc Recarrega()
;Ultima Alteracao: 14/05/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 57A #0159#
;Ultima Alteracao: 19/05/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 57B #0159#
;Ultima Alteracao: 03/06/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 91 #0369#
;Ultima Alteracao: 16/06/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Modelo 92 #0227#
;Ultima Alteracao: 18/06/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 93 #0167#
;Ultima Alteracao: 18/06/2015 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 94 e 94A #0268#
;Ultima Alteracao: 19/06/2015 por Andrey Fillipe
;Motivo Alteracao: Ajustes Modelo 92 #0227#
;Ultima Alteracao: 10/09/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Modelo 95 #0322#
;Ultima Alteracao: 17/09/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Modelo 22 #0359# "ET_0359"
;Ultima Alteracao: 14/10/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Modelo 19 #0355# "ET_0355"
;Ultima Alteracao: 02/12/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Segunda Tabela de Preco e Segundo Valor na etiqueta Modelo 36C #0302#
;Ultima Alteracao: 25/01/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 19 #0299# "ET_0299"
;Ultima Alteracao: 23/03/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes no modelo "67", adicionado "PR:" no modelo da etiqueta no Report e removido os 0 a esquerda do codigo do item
;Ultima Alteracao: 28/03/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 36E #0274# "ET_Z002F"
;Ultima Alteracao: 29/03/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustado VSDGREFERENCIA p/ Aceitar letras e numeros "!*!" #0274#
;Ultima Alteracao: 11/05/2016 por Bruno Carvalho
;Motivo Alteracao: Inclusao ModoLocalizarItem()     
;Ultima Alteracao: 23/05/2016 por Kamila Gomes
;Motivo Alteracao: Ajuste campo Valor IPI por Unidade para Comissao Item
;Ultima Alteracao: 12/07/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo "67A" -> #0102#
;Ultima Alteracao: 25/07/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo inclui item inativado
;Ultima Alteracao: 06/08/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado processo padrÆo de modo de codigo de barras conforme as outras rotinas
;Ultima Alteracao: 27/08/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes op‡Æo de sele‡Æo F7, quando usa numero de requisi‡Æo
;Ultima Alteracao: 19/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 29/09/2016 por Bruno Carvalho
;Motivo Alteracao: Adiconado Modelo 88B #0226#
;Ultima Alteracao: 29/09/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes #0388# -> PegaCodigoRaiz()
;Ultima Alteracao: 18/10/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 96 #0345# - T‚rmica/Bematech
;Ultima Alteracao: 01/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: InclusÆo Modelo 49A [0171]
;Ultima Alteracao: 03/11/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 07/11/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 78B #0051# 
;Ultima Alteracao: 07/11/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ padroniza‡Æo do Array de Etiquetas -> ModeloRelatoriosAdd() 
;Ultima Alteracao: 03/12/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes #0390# -> PegaCodigoRaiz()
;Ultima Alteracao: 06/12/2016 por Bruno Carvalho
;Motivo Alteracao: Quando VSDGSIM_NAO="NAO", vari veis referente aos documentos estÆo sendo limpadas 
;Ultima Alteracao: 07/12/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 96A #0345# - T‚rmica/Bematech
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()
;Ultima Alteracao: 04/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes eliminar campo aliquotadeir
;Ultima Alteracao: 13/01/2017 por Rafael Matos
;Motivo Alteracao: Adicionado Modelo 97 #0383# - Zebra/Bematech
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes TG_REFERENCIA
;Ultima Alteracao: 31/01/2017 por Rafael Matos
;Motivo Alteracao: Adicionado Modelo 98 #0391# "ET_0391"
;Ultima Alteracao: 01/02/2017 por Rafael Matos
;Motivo Alteracao: Adicionado Modelo 99 #0392# "ET_0392"
;Ultima Alteracao: 22/02/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 22A #0359# "ET_Z359A"
;Ultima Alteracao: 22/02/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado "F2" para carregamento das simbologias para a impressora conforme cliente espec¡fico
;Ultima Alteracao: 07/04/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes #0396# -> PegaCodigoRaiz()
;Ultima Alteracao: 17/04/2017 por Kamila Gomes
;Motivo Alteracao: Nova Etiqueta ET_0396 Real Tecidos Modelo 100
;Ultima Alteracao: 24/04/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 101 #0388# "ET_Z388"
;Ultima Alteracao: 15/05/2017 por Bruno Carvalho  
;Motivo Alteracao: Adicionado Verifica_Data_Arquivo() -> Ser  carregado a simbologia diariamente quando impressora for BEMATECH 
;Ultima Alteracao: 15/05/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ otimiza‡Æo do processo de impressÆo de simbologia ao realizar o carregamento.
;Ultima Alteracao: 08/09/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes no modelo "44" p/ imprimir mˆs e ano -> Sol. 31474                                                                               
;Ultima Alteracao: 25/10/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes informar quantidade para sele‡Æo de documento
;Ultima Alteracao: 11/01/2018 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 102 #0226#
;Ultima Alteracao: 05/02/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 93A #0167#
;Ultima Alteracao: 09/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modelo SIRI 61,62
;Ultima Alteracao: 02/03/2018 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Adicionado modelo 22B "Et_0359B"
;Ultima Alteracao: 07/03/2018 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 103 #0408# *Simbologia
;Ultima Alteracao: 11/04/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "22C"
;Ultima Alteracao: 13/04/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 104
;Ultima Alteracao: 08/05/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 105
;Ultima Alteracao: 14/05/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado processo modo GRADE
;Ultima Alteracao: 22/05/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes vari vel qtd -> ChaveCdBar()
;Ultima Alteracao: 29/05/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes Form_Localizar() -> FORMU4 quando for confec‡Æo para ativar modo grade
;Ultima Alteracao: 14/06/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 106 manutex
;Ultima Alteracao: 05/07/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 107 
;Ultima Alteracao: 23/07/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelo 108 
;Ultima Alteracao: 14/08/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado Modelos "109" e "110" p/ 0359
;Ultima Alteracao: 20/08/2018 por Bruno Carvalho
;Motivo Alteracao: Add Modelo 111 #0408# *Simbologia *Copia do Modelo 103

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
Movcodit = 0

While True
  End
  Switch
    Case FORMU=3 : Down Down
    OtherWise    : If [Codigo do Item]<>"" Then Down EndIf
  EndSwitch

  Moveto [Quantidade] Re_0010_qtd=imagecsum()
  Form_Localizar()
  
  SetaCorRegistro("Editar")
  
  While True
  If LOCALIZA_CODIGO = "LOC_CODBAR"
     Then TECLA="Esc=Retornar  [F2]Ativar Modo  "
     Else TECLA="Esc=Retornar  "
  EndIf  
  BarraPadrao()
  
  Wait Field
   Message "Total de Etiquetas  "+StrVal(Re_0010_qtd)
    Until "ESC","ENTER",
          "HOME","UP","PGUP","DEL",
          -94,-33,-22, -18,
          "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",-68,-60
          -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -133, -134, -139, -140
  MSGCAMPO=""
  If Field()="Codigo do Item"    Or 
     Field()="Codigo Fornecedor" Or
     Field()="Referencia"        Or 
     Field()="Codigo de Barras"
     Then MSGCAMPO=LOCALIZAR_POR +", [F1]Consultar tabela            [F9]Alterar modo localizar"
  EndIf
  
  If Field()="Codigo de Barras"
     Then MSGCAMPO=LOCALIZAR_POR +", [F1]Consultar tabela [F2]Modo   [F9]Alterar modo localizar  "
  EndIf   

  If RetVal=-33
       Then If CARREGA_SIMBOLOGIA
               Then Echo Normal
                    Echo Off
                    ShowPopup " Fun‡”es " CENTERED
                     "F2  ~C~arrega Simbologia " : " Carrega Simbologia para a Impressora    " : "F2",
                     "F4  ~V~isualiza‡äes      " : " Definir diferente visualiza‡Æo de dados " : "F4",
                     "F5  ~L~impar             " : " Limpar lista de Itens                   " : "F5",
                     "F6  ~I~mprimir           " : " Imprimir etiquetas                      " : "F6",
                     "F7  ~S~ele‡„o            " : " Sele‡„o de Itens                        " : "F7",
                     "F8  ~T~abela de Pre‡o    " : " Informar a Tabela de Pre‡o              " : "F8",
                     "F9  ~A~ltera Localiza‡„o " : " Altera forma de localizar o item        " : "F9",
                     Separator,
                     "~C~ancelar               " : " Cancelar a Opera‡„o                     " : "CANCELAR"
                    EndMenu
                    To MenuVar
                    Echo Off
               Else Echo Normal
                    Echo Off
                    ShowPopup " Fun‡”es " CENTERED
                     "F2  ~M~odo Grade         " : " Ativa Modo Grade                        " : "F2",
                     Separator,
                     "F4  ~V~isualiza‡äes      " : " Definir diferente visualiza‡Æo de dados " : "F4",
                     "F5  ~L~impar             " : " Limpar lista de Itens                   " : "F5",
                     "F6  ~I~mprimir           " : " Imprimir etiquetas                      " : "F6",
                     "F7  ~S~ele‡„o            " : " Sele‡„o de Itens                        " : "F7",
                     "F8  ~T~abela de Pre‡o    " : " Informar a Tabela de Pre‡o              " : "F8",
                     "F9  ~A~ltera Localiza‡„o " : " Altera forma de localizar o item        " : "F9",
                     Separator,
                     "~C~ancelar               " : " Cancelar a Opera‡„o                     " : "CANCELAR"
                    EndMenu
                    To MenuVar
                    Echo Off
            EndIf
            If MenuVar="CANCELAR" or MenuVar="Esc"
                Then Loop
            EndIf
            RetVal=MenuVar
  EndIf

  Switch
    Case RetVal="F9"  :
         ModoLocalizarItem("SELECAO","","RE_0010")
         Form_Localizar()
    Case RetVal="F1":
         If Field()="Codigo do Item"    Or 
            Field()="Codigo Fornecedor" Or
            Field()="Referencia"        Or 
            Field()="Codigo de Barras"
            Then PickForm OPCAO_FORM_PADRAO
                 Moveto [Lookup_Item]
                 CONSULTAF1()
                 [Codigo do Item]=[]
                 []=""
                 Moveto [Codigo do Item]
                 Switch          
                   Case LOCALIZA_CODIGO="LOC_CODITE" :
                        Switch
                          Case FORMU = 1 : OPCAO_FORM_PADRAO = "F"
                          Case FORMU = 2 : OPCAO_FORM_PADRAO = "1"
                          Case FORMU = 3 : OPCAO_FORM_PADRAO = "2"
                          Case FORMU = 4 : OPCAO_FORM_PADRAO = "6"
                        EndSwitch
                 EndSwitch   
                 Form_Localizar()
         EndIf       
    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 Del
                  Limpar()
         EndIf
         QuitLoop
    Case RetVal="F7":
         Del
         If FORMU=2
            Then If Not IsAssigned(VSDGTABELA) Or
                    IsBlank(VSDGTABELA)
                    Then Mensagem("Selecione uma tabela de pre‡o ! ")
                         QuitLoop
                 EndIf
         EndIf
         Selecao()
         QuitLoop
    Case RetVal="F6":
         Del
         If Not IsEmpty("Re_0010")
            Then Imprimir()
         EndIf
         QuitLoop
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         While True
           PAGINA("Re_0010","MR")
           If EDITAR="S"
              Then CHAVE=0
                   Controla_EdicaoC()
              Else If EXCLUIR="S"
                      Then If QuerExcluir("")
                              Then DEL
                              Else UnLockRecord
                           EndIf
                      Else QuitLoop
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
    Case RetVal="F8":
         Del
         TabelaPreco()
         QuitLoop
    Case Retval="F2" Or RetVal=-60 : 
         If Not CARREGA_SIMBOLOGIA
            Then If SYS_CLIENTE_CONFEC = ""
                    Then Mensagem("Op‡„o p/ empresas de Confec‡„o !")
                         Loop
                    Else If FORMU<>4
                            Then Mensagem("Ativa o modo de visualiza‡Æo por referˆncia para prosseguir!")
                                 Loop 
                            Else While True 
                                   Play "RE_0010G"
                                   If CHAVEF=9 Then QuitLoop EndIf
                                 EndWhile  
                         EndIf   
                 EndIf   
            Else ;Processo de Simbologia
                 If IsFile(PrivDir()+"Simbol.ini") Then Deleta_Arquivo(PrivDir()+"Simbol.ini") EndIf
                 Carrega_Impressora("RECARREGAR")
         EndIf                   
    Case Retval="F4": 
         Del

        Echo Normal
        Echo Off
        ShowPopup " Fun‡”es " CENTERED
         "~1~ PadrÆo          " : " Visualizador padrÆo                         " : "VIS1",
         "~2~ Pre‡o           " : " Visualizador com pre‡o                      " : "VIS2",
         "~3~ Fabrica‡Æo      " : " Visualizador com data fabrica‡Æo            " : "VIS3",
         "~4~ Ref/Grade       " : " Visualizador com referˆncia/grade           " : "VIS4",
         Separator,
         "~C~ancelar          " : " Cancelar a Opera‡„o                         " : "CANCELAR"
        EndMenu
         To MenuVar

        echo off
        If MenuVar="CANCELAR" or MenuVar="Esc"
            Then QuitLoop
        EndIf
        RetVal=MenuVar
        LOCALIZA_CODIGO = "LOC_CODITE"
        Switch
          Case MenuVar="VIS1" : FORMU=1
                                OPCAO_FORM_PADRAO = "F"
          Case MenuVar="VIS2" : FORMU=2
                                OPCAO_FORM_PADRAO = "1"
          Case MenuVar="VIS3" : FORMU=3
                                OPCAO_FORM_PADRAO = "2"
          Case MenuVar="VIS4" : FORMU=4
                                OPCAO_FORM_PADRAO = "6"         
        EndSwitch
        QuitLoop
    Case Retval="ESC":
         CHAVE=9
         Del
         Return
    Case RetVal="ENTER": 
         If IsBlank([])Then Loop EndIf
         If FORMU=2
            Then If Not IsAssigned(VSDGTABELA) Or
                    IsBlank(VSDGTABELA)
                    Then Mensagem("Selecione uma tabela de pre‡o ! ")
                         Del
                         QuitLoop
                 EndIf
         EndIf      
         
         If LOCALIZA_CODIGO = "LOC_CODBAR"
            Then Del
                 Moveto [Codigo de Barras]
                 Mensagem("Modo de C¢digo de Barras Ativado!")
                 QuitLoop
         EndIf   
         
         CODIGO = []
         Del                                        
         PickForm OPCAO_FORM_PADRAO
         Moveto [Lookup_Item]
         LOC_RETORNO_CODITEM = True
         Ativa_Lookup()
         ModoLocalizarItem("LOCALIZAR",CODIGO,"")
         CODIGO = LOC_CODIGO_ITEM
         Form_Localizar()
         If CODIGO=""
            Then Mensagem("Item/Referˆncia n„o localizado !")
                 QuitLoop
         EndIf
         Locate CODIGO
         If Retval
            Then CHAVE=0
            Else CHAVE=1
                 End
                 Switch
                   Case FORMU=3 : Down Down
                   OtherWise    : If [Codigo do Item]<>"" Then Down EndIf
                 EndSwitch
                 [Lookup_Item   ]=CODIGO
                 [Codigo do Item]=CODIGO
                 UnLockRecord

                 echo normal
                 echo off
                 
                 GetRecord "\\sistemas\\estoque\\Itens" CODIGO To regitem
                 If RetVal
                    then if regitem["Inativo"]="S"
                            then Mensagem("InclusÆo nÆo permitida, item INATIVADO ! ")
                                 Del
                                 QuitLoop                            
                         endif
                         release vars regitem
                 endif           
                 
                 If LOCALIZA_CODIGO = "LOC_CODITE"
                    Then Moveto [Codigo do Item]
                 EndIf
                 
                 Locate CODIGO
                 If FORMU=2
                    Then coditem=CODIGO
                         If Not IsBlank([Codigo da Grade])
                            Then CodItem=PegaCodigoRaiz(CodItem)
                         EndIf
                         If SYS_CODIGO_CLIENTE="0239" Or
                            SYS_CODIGO_CLIENTE="0388" Or
                            SYS_CODIGO_CLIENTE="0171" Or
                            SYS_CODIGO_CLIENTE="0390" Or
                            SYS_CODIGO_CLIENTE="0396" Or
                            SYS_CODIGO_CLIENTE="0345" Or
                            SYS_CODIGO_CLIENTE="0419"
                            Then CodItem=PegaCodigoRaiz(CodItem)
                         EndIf

                         GetRecord "\\sistemas\\vendas\\Tbprite" VSDGTABELA, coditem To PRECO
                         If RetVal
                            Then PRECO = PRECO["Preco Unitario"]
                            Else PRECO = BlankNum()
                         EndIf

                         Moveto "Re_0010"
                         If IsBlank(PRECO)
                            Then Mensagem("Este Item esta sem pre‡o na tabela escolhida ! ")
                                 Del
                                 QuitLoop
                            Else [Preco Unitario]=PRECO
                         EndIf
                         Return
                 EndIf
         EndIf
         If Not IsLockRecord()
            Then Return
         EndIf
         Quitloop
    EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina Principal Emissao Nota Fiscal ou Romaneio                            *
;*******************************************************************************
Proc Carrega_Impressora(PARAM)
Private PARAM,ACHOU
CARREGA_IMPRESSORA = False
                        
If Not Verifica_Impressora() Or PARAM="RECARREGAR" 
   Then If IsFile(IMP_FILE)
           Then Deleta_Arquivo(IMP_FILE)
        EndIf
EndIf       

If Not IsAssigned(IMP_FILE) Or Not IsFile(IMP_FILE)
   Then MSGDISPOSITIVO="Etiqueta"
        DispositivoEtq()
        If OK="" 
           Then Return False
        EndIf     
        If OK<>"I" And OK<>""
           Then Mensagem("Apenas para Impress„o em Etiquetas!")
                If Isfile(PrivDir()+"ETQ_IMP.SC")
                   Then Deleta_Arquivo(PrivDir()+"ETQ_IMP.SC")
                EndIf  
                Return False
         EndIf 
         If Isfile(PrivDir()+"ETQ_IMP.SC")
            Then If Verifica_Impressora_Termica(PrivDir()+"ETQ_IMP.SC")
                    Then Copia_Arquivo(PrivDir()+"ETQ_IMP.SC "+IMP_FILE)
                    
                         LINHA =         GravaExpressao("NUMCOPIA","N",Strval(NUMCOPIA))
                         LINHA = LINHA + GravaExpressao("DISPOSITIVO_OPCAO","S",DISPOSITIVO_OPCAO)
                         LINHA = LINHA + GravaExpressao("VSDGIMPOPCAO","S",VSDGIMPOPCAO)        
                         LINHA = LINHA + GravaExpressao("Seta_Printer","S","")
                         FileWrite Append IMP_FILE From LINHA
                    
                         Variaveis_Impressao("Salvar")
                         CARREGA_IMPRESSORA = True
                    Else Mensagem("A escolha deve ser para uma impressora T‚rmica!")
                         Return False
                 EndIf        
            Else Return False
         EndIf
         If Not Verifica_Impressora_Termica(IMP_FILE)
            Then Mensagem("Erro ao localizar a impressora t‚rmica//Utilize a o‡„o para recarregar a impressora t‚rmica antes de prosseguir!")
                 Return False 
         EndIf
    Else Variaveis_Impressao("Carregar")
         CARREGA_IMPRESSORA = True
         If CARREGA_SIMBOLOGIA
            Then CARREGA_SIMBOLOGIA=False
                 Switch
                   Case TIPO_IMPRESSORA = "BEMATECH" : If Not Download_Simbologia("BEMATECH","",TAMANHO_SIMBOLOGIA)
                                                          Then Return False   
                                                       EndIf     
                   Case TIPO_IMPRESSORA = "ZEBRA"    : If Not Download_Simbologia("ZEBRA","",TAMANHO_SIMBOLOGIA)
                                                          Then Return False   
                                                       EndIf    
                 EndSwitch
         EndIf         
EndIf
Return True

EndProc ;Carrega_Impressora()

;*******************************************************************************
;* Rotina para Verificar Impressora Zebra                                      *
;*******************************************************************************
Proc Verifica_Impressora_Termica(PARAM)
Private PARAM,ACHOU,TIPO_IMPRESORA

TIPO_IMPRESORA=""

ACHOU = False
If IsAssigned(Varinner) Then Release Vars Varinner  EndIf                            
FileRead PARAM to Varinner
Pos=1
While True
  Posf=SearchFrom("\n",Varinner,Pos) 
  If Posf=0 Then QuitLoop EndIf
  Linha=Substr(Varinner,Pos,(Posf-Pos))
  If Search("ZEBRA",Upper(Linha)) > 0 Or Search("ZDESIG",Upper(Linha)) > 0
     Then TIPO_IMPRESORA = "ZEBRA"
          If Not CARREGA_SIMBOLOGIA  
             Then ACHOU=True    
             Else If Download_Simbologia(TIPO_IMPRESORA,"",TAMANHO_SIMBOLOGIA)
                     Then ACHOU=True  
                  EndIf
          EndIf
     Else If Search("BEM",Upper(Linha)) > 0
             Then TIPO_IMPRESORA = "BEMATECH"
                  If Not CARREGA_SIMBOLOGIA  
                     Then ACHOU=True    
                     Else If Download_Simbologia(TIPO_IMPRESORA,"",TAMANHO_SIMBOLOGIA)
                            Then ACHOU=True        
                          EndIf
                  EndIf  
          EndIf        
  EndIf
  If ACHOU Then QuitLoop EndIf   
  Pos=Posf+1
EndWhile    
If IsAssigned(Varinner) Then Release Vars Varinner  EndIf

If ACHOU
   Then Return True
   Else Return False
EndIf

EndProc ;Verifica_Impressora_Termica()

;*******************************************************************************
;* Rotina para Verificar Impressora                                            *
;*******************************************************************************
Proc Verifica_Impressora()
                         
If IsAssigned(IMP_FILE) And IsFile(IMP_FILE)
   Then Ler_Captura(IMP_FILE)                     
   Else If Not Isfile(PrivDir()+"ETQ_IMP.SC")
           Then Return False
        EndIf
        Ler_Captura(PrivDir()+"ETQ_IMP")
EndIf        
NUMCOPIA=1

Op_Disp  =False
Op_DispG =False
Op_DispI =True

If Not IsAssigned(MSGDISPOSITIVO) Or MSGDISPOSITIVO="" 
   Then MSGDISPOSITIVO="Selecionar Destino"
EndIf

Dispositivo=2
Return True

EndProc ;Verifica_Impressora()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog2(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"] =  27 :
          Temp=False
          Switch
            Case Campo="I_CONTADOR" : AcceptDialog
          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="I_CONTADOR" : AcceptDialog
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina para Digitar Quantidade                                              *
;*******************************************************************************
Proc DIGITA()
Moveto [Quantidade    ]
While True

  TECLA=" Esc=Retornar  "

  If CHAVE=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf

  Prompt TECLA
  SetaCorRegistro("Editando")
  Wait Field
       Until "ESC","ENTER","DEL","FIELDVIEW","F35"

  Switch
  Case Retval="ESC":
       If QuerDesfazer("")
          Then If CHAVE=1
                  Then Del
                  Else Undo
               EndIf
               CHAVE=9
               QuitLoop
       EndIf
  Case Retval="ENTER":
       Switch
         Case Field()="Quantidade":
              If IsBlank([])
                 Then []=1
              EndIf
              QuitLoop
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitar Dados Fabricacao                                        *
;*******************************************************************************
Proc DIGITA3()
Moveto [Data_Fabricacao]
While True

  TECLA=" Esc=Retornar  "

  If CHAVE=0
     Then TECLA=TECLA+"Del=Excluir  "
  EndIf

  Switch
   Case Field()="Data_Fabricacao": MSGCAMPO="Informe a data de fabrica‡Æo"
   Case Field()="Validade"       : MSGCAMPO="Informe a validade, campo LIVRE"
   Case Field()="Lote"           : MSGCAMPO="Informe o lote, campo LIVRE"
   Case Field()="Responsavel"    : MSGCAMPO="Informe a respons vel, campo LIVRE"
   OtherWise                     : MSGCAMPO=Field()
  EndSwitch

  Prompt TECLA

  Wait Field
    Message MSGCAMPO
       Until "ESC","ENTER","DEL","FIELDVIEW","F35"

  Switch
  Case Retval="ESC":
       Switch
         Case Field()="Data_Fabricacao":
           If QuerDesfazer("")
              Then If CHAVE=1
                      Then Del
                      Else Undo
                   EndIf
                   CHAVE=9
                   QuitLoop
           EndIf
         Case Field()="Validade"   : Moveto [Data_Fabricacao]
         Case Field()="Lote"       : Moveto [Validade]
         Case Field()="Responsavel": Moveto [Lote]
         Case Field()="Quantidade" : Moveto [Responsavel]
       EndSwitch
  Case Retval="ENTER":
       Switch
         Case Field()="Data_Fabricacao": Moveto [Validade]
         Case Field()="Validade"       : Moveto [Lote]
         Case Field()="Lote"           : Moveto [Responsavel]
         Case Field()="Responsavel"    : Moveto [Quantidade]
         Case Field()="Quantidade"     :
              If IsBlank([])
                 Then []=1
              EndIf
              QuitLoop
       EndSwitch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina Limpar Registros                                                     *
;*******************************************************************************
Proc Limpar()
Aguarde("Aguarde, Excluindo registros")
While RecordStatus("New")=False
  Del
EndWhile
EndProc

;*******************************************************************************
;* Rotina para a escolha da tabela de Pre‡o                                    *
;*******************************************************************************
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: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_TABELA" : Campo="NO"
            Case Campo= "YES" or Campo="NO":Campo="TG_TABELA"
          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_TABELA"                     :
                         If Not Isblank(VSDGTABELA)
                            Then Campo="YES"
                         EndIf
                    Case Campo="YES"      : AcceptDialog
                    Case Campo="NO"       : CancelDialog
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_TABELA" :
     MSG_CAMPO="Informe a tabela de pre‡o a ser utilizada"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina -Tela Selecionar Tabela                                              *
;*******************************************************************************
Proc TabelaPreco()
LimpAguarde()
Do_It!
ClearAll

Echo Normal
Echo Off
ClearAll

VSDGTABELA  = ""
OP_SHOW="T"
ShowDialog "Tabela de Pre‡o" Proc "SD_Dialog1"
Trigger "OPEN","ARRIVE"
Key "F1","ENTER","ESC","TAB",
    -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
 @ 09,53 Height 9 Width 72

 Label  @ 00,00 "Tabela"  For "TG_TABELA"
 Accept @ 01,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
 Accept @ 01,10 Width 24 "A45" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB
 
 @ 03,01 ?? "*Todos os itens da rela‡Æo ser„o atualizados"
 PaintCanvas Attribute 24 03,01,03,60
 
 Pushbutton @ 05,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
 Pushbutton @ 05,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

EndDialog
ClearAll

If RetVal
   Then {Ask} {Re_0010}
        Moveto [Preco Unitario  ] TypeIn "Changeto Blank"
        Do_It!
        ClearAll

       {Ask} {\\Sistemas\\Vendas\\Tbprite}
        Moveto [Codigo da Tabela] TypeIn "~VSDGTABELA.."
        Moveto [Codigo do Item  ] Example "CodI"
        Moveto [Preco Unitario  ] Example "Prec"
        {Ask} {Re_0010}
        Moveto [Codigo do Item  ] Example "CodI"
        Moveto [Preco Unitario  ] TypeIn "Changeto " Example "Prec"
        Do_It!
        ClearAll
EndIf

CoEdit "Re_0010"
PickForm "1"

EndProc  ;(Tabela Sele‡Æo)

;*******************************************************************************
;* Grava Etiquetas Selecionadas                                                *
;*******************************************************************************
Proc Grava_Etiquetas()

VSDGSELECAO = ""

Switch
  Case SELECAO="Preferencial" :
       If ArraySize(Array_Etiquetas) <  ArraySize(Array_OPEtiquetas)
          Then For wi From 1 To ArraySize(Array_Etiquetas)
                 If VSDGSELECAO = ""
                    Then VSDGSELECAO = VSDGSELECAO + RTrim(SubStr(Array_Etiquetas[wi],1,3))
                    Else VSDGSELECAO = VSDGSELECAO + "," + RTrim(SubStr(Array_Etiquetas[wi],1,3))
                 EndIf
               EndFor
       EndIf

  Case SELECAO="    Todos" :
       For wi From 1 To ArraySize(Array_Etiquetas)
          If SubStr(Array_Etiquetas[wi],73,1)="X"
             Then If VSDGSELECAO = ""
                     Then VSDGSELECAO = VSDGSELECAO + RTrim(SubStr(Array_Etiquetas[wi],1,3))
                     Else VSDGSELECAO = VSDGSELECAO + "," + RTrim(SubStr(Array_Etiquetas[wi],1,3))
                  EndIf
          EndIf
       EndFor
EndSwitch

EndProc ;Grava_Etiquetas()

;*******************************************************************************
;* Seleciona as Etiquetas                                                      *
;*******************************************************************************
Proc Seleciona_Etiquetas()

Switch
 Case VSDGSELECAO="" :
      Release Vars Array_Etiquetas
      Array Array_Etiquetas[ArraySize(Array_OpEtiquetas)]
      For wi From 1 To ArraySize(Array_Etiquetas)
        Array_Etiquetas[wi]=Array_OpEtiquetas[wi]
      EndFor
  OtherWise         :

      ; **** Verificando a quantidade de modelos selecionados ****************
      CONTVAR = 1
      VAR_AUX = VSDGSELECAO
      NVAR = Search(",",VAR_AUX)
      While NVAR > 0
        CONTVAR = CONTVAR + 1
        VAR_AUX = SubStr(VAR_AUX,NVAR+1,Len(VAR_AUX))
        NVAR = Search(",",VAR_AUX)
      EndWhile
      NVAR = CONTVAR

      ; **** Capturando o Modelo das Etiquetas *******************************
      Release Vars MODELO
      DynArray MODELO[]
      If NVAR > 0
         Then For wi From 1 To NVAR
                PosI=SearchFrom(",",VSDGSELECAO,1)
                If PosI=0
                   Then MODELO[wi]=SubStr(VSDGSELECAO,1,Len(VSDGSELECAO))
                        QuitLoop
                EndIf
                MODELO[wi]=SubStr(VSDGSELECAO,1,PosI-1)
                If wi <> NVAR
                   Then VSDGSELECAO = SubStr(VSDGSELECAO,PosI+1,Len(VSDGSELECAO))
                EndIf
              EndFor
      EndIf
      MODELO[NVAR]=VSDGSELECAO

      ; **** Selecionando as Etiquetas ***************************************
      SELECAO="Preferencial"
      CONT_ARRAY = 0
      Release Vars Array_Etiquetas
      Array Array_Etiquetas[NVAR]
      For wi From 1 To ArraySize(Array_OpEtiquetas)
        For wa From 1 To NVAR
          If RTrim(SubStr(Array_OpEtiquetas[wi],1,3))=MODELO[wa]
             Then CONT_ARRAY = CONT_ARRAY + 1
                  If CONT_ARRAY > ArraySize(Array_Etiquetas) Then QuitLoop EndIf
                  Array_Etiquetas[CONT_ARRAY]=SubStr(Array_OpEtiquetas[wi],1,72)
          EndIf
        EndFor
      EndFor
EndSwitch

EndProc ;Seleciona_Etiquetas()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""

If ((Disparo="EVENT" And Evento["Type"]="KEY" And Evento["KeyCode"] = 120) Or
    Disparo="SELECT" And Campo="TG_OPETIQUETA") And SELECAO="    Todos"
    Then INDICE=ControlValue("TG_OPETIQUETA")
         If SubStr(Array_Etiquetas[INDICE],1,10)<>Fill("-",10)
            Then If SubStr(Array_Etiquetas[INDICE],73,1)="X"
                    Then Array_Etiquetas[INDICE] = SubStr(Array_Etiquetas[INDICE],1,72)
                    Else Array_Etiquetas[INDICE] = Completa(SubStr(Array_Etiquetas[INDICE],1,71),71," ")+" X"
                 EndIf
         EndIf
EndIf

If (Disparo="ARRIVE" Or Disparo="SELECT") And Campo="TG_SELECAO"
   Then Switch
          Case SELECAO="    Todos" :
               CONT_ARRAY = 0
               For wi From 1 To ArraySize(Array_Etiquetas)
                 If SubStr(Array_Etiquetas[wi],73,1)="X"
                    Then CONT_ARRAY=CONT_ARRAY+1
                 EndIf
               EndFor

               If CONT_ARRAY<>0
                  Then SELECAO="Preferencial"
                       Release Vars Array_Temp
                       Array Array_Temp[CONT_ARRAY]
                       CONT_ARRAY = 0

                       For wi From 1 To ArraySize(Array_Etiquetas)
                        If SubStr(Array_Etiquetas[wi],73,1)="X"
                           Then CONT_ARRAY = CONT_ARRAY + 1
                                Array_Temp[CONT_ARRAY]=SubStr(Array_Etiquetas[wi],1,72)
                        EndIf
                       EndFor

                       Release Vars Array_Etiquetas
                       Array Array_Etiquetas[ArraySize(Array_Temp)]

                       For wi From 1 To ArraySize(Array_Temp)
                         Array_Etiquetas[wi]=Array_Temp[wi]
                       EndFor
               EndIf
               ; *** Vai p/ o topo da lista ***
               VSDGOPETIQUETA = 1
               Campo="TG_OPETIQUETA"
          Case SELECAO="Preferencial" :
               SELECAO="    Todos"

               For wi From 1 To ArraySize(Array_OpEtiquetas)
                 For wa From 1 To ArraySize(Array_Etiquetas)
                   If Rtrim(SubStr(Array_OpEtiquetas[wi],1,71)) = Rtrim(SubStr(Array_Etiquetas[wa],1,71))
                      Then Array_OpEtiquetas[wi]=Completa(SubStr(Array_OpEtiquetas[wi],1,72),72," ")+"X"
                           Loop
                   EndIf
                 EndFor
               EndFor

               Release Vars Array_Etiquetas
               Array Array_Etiquetas[ArraySize(Array_OpEtiquetas)]
               For wi From 1 to ArraySize(Array_Etiquetas)
                 Array_Etiquetas[wi]=Array_OpEtiquetas[wi]
               EndFor

               For wi From 1 to ArraySize(Array_OpEtiquetas)
                 Array_OpEtiquetas[wi]=SubStr(Array_OpEtiquetas[wi],1,72)
               EndFor

               Campo="TG_OPETIQUETA"
        EndSwitch
EndIf

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_SN_SELDOCTO"    : Campo="NO"
            Case Campo="TG_NREQ"           : Campo="TG_SN_SELDOCTO"
            Case Campo="TG_NPED"           : Campo="TG_NREQ"
            Case Campo="TG_NROM"           : Campo="TG_NPED"
            Case Campo="TG_NNE"            : Campo="TG_NROM"
            Case Campo="TG_EMPRESA"        : Campo="TG_SN_SELDOCTO"
            Case Campo="TG_TIPOEST"        : Campo="TG_EMPRESA"
            Case Campo="TG_FAMI"           : Campo="TG_TIPOEST"
            Case Campo="TG_GRP"            : Campo="TG_FAMI"
            Case Campo="TG_MARCA"          : Campo="TG_GRP"
            Case Campo="TG_REFERENCIA"     : Campo="TG_MARCA"
            Case Campo="TG_TABELA"         : Campo="TG_REFERENCIA"
            Case Campo="TG_CODIGOI"        : Campo="TG_TABELA"
            Case Campo="TG_CODIGOF"        : Campo="TG_CODIGOI"
            Case Campo="TG_MESANO"         : Campo="TG_CODIGOF"
            Case Campo="TG_OPCAO"          : 
                 If VSDGSIM_NAO="SIM"
                    then Campo="TG_SN_SELDOCTO"
                    else Campo="TG_MESANO"
                 endif   
            Case Campo="TG_QUANTIDADE"     : Campo="TG_OPCAO"
            

            ;** Imprimir **
            Case Campo="TG_SELECAO"        : Campo="TG_OPETIQUETA"
            Case Campo="TG_OPRELCODALFDIG" : Campo="TG_OPETIQUETA"
            Case Campo="TG_TABELA2"        : Campo="TG_OPETIQUETA"
            Case Campo="TG_TABELA3"        : Campo="TG_OPETIQUETA"
                 If RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"36C" And
                    RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"98"  And
                    RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"104"
                    Then VSDGTABELA3=""
                         VSDGNOMTAB3=""
                 EndIf 
            Case Campo="TG_OPETIQUETA"     : Campo="NO"
            Case Campo="YES" Or Campo="NO" :
                 If OP_SHOW="S"
                    Then Campo="TG_SN_SELDOCTO"
                    Else Campo="TG_OPETIQUETA"
                 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_SN_SELDOCTO":
                         If VSDGSIM_NAO="SIM"
                            Then Campo="TG_NREQ"
                            Else Campo="TG_EMPRESA"
                                 VSDGNREQ = ""
                                 VSDGNPED = ""
                                 VSDGNROM = ""
                                 VSDGNNE  = ""
                         EndIf

                    Case Campo="TG_NREQ"     :
                         VSDGNREQ=ControlValue("TG_NREQ")
                         If Not IsBlank(VSDGNREQ)
                            Then VSDGNREQ = AlinhM(VSDGNREQ,6)
                                 VSDGNPED = ""
                                 VSDGNROM = ""
                                 VSDGNNE  = ""
                                 Campo="TG_OPCAO"
                            Else Campo="TG_NPED"
                         EndIf
                    Case Campo="TG_NPED"     :
                         VSDGNPED=ControlValue("TG_NPED")
                         If Not IsBlank(VSDGNPED)
                            Then VSDGNPED = AlinhM(VSDGNPED,6)
                                 VSDGNREQ = ""
                                 VSDGNROM = ""
                                 VSDGNNE  = ""
                                 Campo="TG_OPCAO"
                            Else Campo="TG_NROM"
                         EndIf
                    Case Campo="TG_NROM":
                         VSDGNROM=ControlValue("TG_NROM")
                         If Not IsBlank(VSDGNROM)
                            Then VSDGNROM = AlinhM(VSDGNROM,6)
                                 VSDGNPED = ""
                                 VSDGNREQ = ""
                                 VSDGNNE  = ""
                                 Campo="TG_OPCAO"
                            Else Campo="TG_NNE"
                         EndIf
                    Case Campo="TG_NNE"         :
                         VSDGNNE=ControlValue("TG_NNE")
                         If Not IsBlank(VSDGNNE)
                            Then VSDGNNE=AlinhM(VSDGNNE,6)
                                 VSDGNROM = ""
                                 VSDGNPED = ""
                                 VSDGNREQ = ""
                                 Campo="TG_OPCAO"
                            Else Campo="TG_SN_SELDOCTO"
                         EndIf

                    Case Campo="TG_EMPRESA" :
                         If IsBlank(VSDGEMPRESA)
                            Then Fastmsg("Empresa nÆo selecionada !")
                            Else Campo="TG_TIPOEST"
                         EndIf
                    Case Campo="TG_TIPOEST"     : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"        : Campo="TG_GRP"
                    Case Campo="TG_GRP"         : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"       : Campo="TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"  : Campo="TG_TABELA"
                    Case Campo="TG_TABELA"      :
                         VSDGTABELA=ControlValue("TG_TABELA")
                         If Isblank(VSDGTABELA)
                            Then Campo="TG_CODIGOI"
                            Else VSDGTABELA=AlinhM(VSDGTABELA,5)
                            
                                 VSDGCODIGOI   =""
                                 VSDGCODIGOF   =""
                                 VSDGMESANO    =""
                                 VSDGOPCAO[1]  =false
                                 VSDGQUANTIDADE=1
                                 
                                 Campo="YES"
                         EndIf
                    Case Campo="TG_CODIGOI"     : Campo="TG_CODIGOF"
                    Case Campo="TG_CODIGOF"     : Campo="TG_MESANO"
                    Case Campo="TG_MESANO"      : Campo="TG_OPCAO"
                    Case Campo="TG_OPCAO"       : 
                         If VSDGOPCAO[1]
                            Then Campo="TG_QUANTIDADE"
                            Else VSDGQUANTIDADE=1 
                                 Campo="YES"
                         EndIf
                    
                    Case Campo="TG_QUANTIDADE"  :
                         VSDGQUANTIDADE=ControlValue("TG_QUANTIDADE")
                         If VSDGQUANTIDADE<=0
                            Then FastMsg("Valor inv lido !")
                            Else Campo="YES"
                         EndIf

                    ;** Imprimir **
                    Case Campo="TG_SELECAO"        : Campo=""
                    Case Campo="TG_OPETIQUETA"     : Campo="TG_OPRELCODALFDIG"
                    Case Campo="TG_OPRELCODALFDIG" : Campo="TG_TABELA2"
                    Case Campo="TG_TABELA2"        :
                         If Isblank(VSDGTABELA2)
                            Then VSDGTABELA2=""
                                 VSDGNOMTAB2=""
                         EndIf
                         If RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))="36C" Or 
                            RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))="98"  Or
                            RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))="104"
                            Then Campo="TG_TABELA3"
                            Else VSDGTABELA3=""
                                 VSDGNOMTAB3=""
                                 Campo="YES"
                         EndIf
                    Case Campo="TG_TABELA3"        :
                         If Isblank(VSDGTABELA3)
                            Then VSDGTABELA3=""
                                 VSDGNOMTAB3=""
                         EndIf
                         If RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"36C" And
                            RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"98"  And
                            RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))<>"104" 
                            Then VSDGTABELA3=""
                                 VSDGNOMTAB3=""
                                 Campo="YES"        
                            Else Campo="YES"
                         EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

Switch
  Case Campo="TG_OPETIQUETA":
       MSG_CAMPO="Selecione o op‡„o desejada !"
       If SELECAO="Preferencial"
          Then TECLA="=Selecionar"
          Else TECLA="=Selecionar  Barra de Espa‡o=Marca/Desmarca"
       EndIf
  Case Campo="TG_QUANTIDADE":
       MSG_CAMPO="Informe a quantidade de repeti‡„o da etiqueta"
  Case Campo="TG_TABELA" Or Campo="TG_TABELA2":
       MSG_CAMPO="Informe a tabela de pre‡o a ser utilizada"
  Case Campo="TG_OPCAO"   :
       MensagemCheckBoxes()
  Case Campo="TG_SN_SELDOCTO":
       MSG_CAMPO="Selecionar Documento ?"
  Case Campo="TG_NREQ":
       MSG_CAMPO="Informe o Lan‡amento de Requisi‡„o de entrada de produ‡„o"
  Case Campo="TG_NPED":
       MSG_CAMPO="Informe o Numero do Pedido"
  Case Campo="TG_NROM":
       MSG_CAMPO="Informe o N£mero da Ordem de Faturamento"
  Case Campo="TG_NNE" :
       MSG_CAMPO="Informe o N£mero do Lan‡amento de Entrada"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGEMPRESA     = ""
VSDGTIPOEST     = ""
VSDGSIM_NAO     = ""
VSDGNREQ        = ""
VSDGNPED        = ""
VSDGNROM        = ""
VSDGNNE         = ""
VSDGFAMI        = ""
VSDGGRP         = ""
VSDGMARCA       = ""
VSDGREFERENCIA  = ""
VSDGTABELA      = ""
VSDGCODIGOI     = ""
VSDGCODIGOF     = ""
VSDGMESANO      = ""
VSDGQUANTIDADE  = 1
OP_SHOW="S"

Array VSDGOPCAO[1]
VSDGOPCAO[1] = False

While True
  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 20 Width 72

    Label  @ 00,00 "Op‡„o" For "TG_SN_SELDOCTO"
    Accept @ 01,02 Width 06 "A3"  Picture "SIM,NAO" Tag "TG_SN_SELDOCTO" To VSDGSIM_NAO

    Label  @ 00,08 "Requisi‡„o"  For "TG_NREQ"
    Accept @ 01,09 Width 09 "A6"  Picture "#*#" Tag "TG_NREQ" To VSDGNREQ

    Label  @ 00,21 "Pedido"  For "TG_NPED"
    Accept @ 01,22 Width 09 "A6"  Picture "#*#" Tag "TG_NPED" To VSDGNPED

    Label  @ 00,34 "Faturamento"  For "TG_NROM"
    Accept @ 01,35 Width 09 "A6"  Picture "#*#" Tag "TG_NROM" To VSDGNROM

    Label  @ 00,47 "Entrada"  For "TG_NNE"
    Accept @ 01,48 Width 09 "A6"  Picture "#*#" Tag "TG_NNE" To VSDGNNE

    Label  @ 03,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 04,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 04,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 05,00 "Tipo do Estoque"  For "TG_TIPOEST"
    Accept @ 06,04 Width 04 "A1"  Picture "!" Tag "TG_TIPOEST" To VSDGTIPOEST
    Accept @ 06,09 Width 25 "A18"  Picture "!*!" Tag "TG_DESCTIPOEST" To VSDGDESCTIPOEST

    Label  @ 07,00 "Familia"  For "TG_FAMI"
    Accept @ 08,02 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI" To VSDGFAMI
    Accept @ 08,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 09,00 "Grupo"  For "TG_GRP"
    Accept @ 10,02 Width 06 "A3"  Picture "#*#" Tag "TG_GRP" To VSDGGRP
    Accept @ 10,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 11,00 "Marca"  For "TG_MARCA"
    Accept @ 12,02 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 12,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 13,00 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 14,01 Width 33 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA

    Label  @ 03,35 "Tabela"  For "TG_TABELA"
    Accept @ 04,36 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
    Accept @ 04,45 Width 24 "A25" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB

    Label  @ 05,35 "Faixa de C¢digo de" For "TG_CODIGOI"
    Accept @ 06,36 Width 13 "A10"  Picture "#*#" Tag "TG_CODIGOI" To VSDGCODIGOI
    Label  @ 06,49 "at‚" For "TG_CODIGOF"
    Accept @ 06,54 Width 13 "A10"  Picture "#*#" Tag "TG_CODIGOF" To VSDGCODIGOF

    Label  @ 07,35 "Mˆs/Ano"  For "TG_MESANO"
    Accept @ 08,36 Width 10 "A07"  Picture "##;.####" Tag "TG_MESANO"  To VSDGMESANO

    CheckBoxes @12,35 Height 1 Width 26 Tag "TG_OPCAO"
    "Informar Quantidade" to VSDGOPCAO[1]

    Label  @ 13,35 "Quantidade" For "TG_QUANTIDADE"
    Accept @ 14,36 Width 10 "S"  Tag "TG_QUANTIDADE" To VSDGQUANTIDADE

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

  EndDialog
  If RetVal
     Then If (VSDGNNE<>""  And (VSDGNROM<>"" Or VSDGNPED<>"" Or VSDGNREQ<>"")) Or
             (VSDGNROM<>"" And (VSDGNNE<>""  Or VSDGNPED<>"" Or VSDGNREQ<>"")) Or
             (VSDGNPED<>"" And (VSDGNROM<>"" Or VSDGNNE<>""  Or VSDGNREQ<>"")) Or
             (VSDGNREQ<>"" And (VSDGNROM<>"" Or VSDGNPED<>"" Or VSDGNNE<>""))
             Then Mensagem("Poder  efetuar a sele‡„o apenas com uma £nica op‡„o de documento !")
                  Loop
          EndIf

          If VSDGSIM_NAO="NAO"
             Then VSDGNREQ = ""
                  VSDGNPED = ""
                  VSDGNROM = ""
                  VSDGNNE  = ""
          EndIf  
          
          LimpaRodape(0)
          Aguarde("Aguarde, Selecionando registros")
          ClearAll
          If VSDGSIM_NAO="SIM"
             Then Switch
                   Case Not IsBlank(VSDGNREQ):
                    If SYS_CLIENTE_CONFEC <> ""
                       Then {Ask} {RqCabeca}
                            Moveto [Numero do Lancamento   ] Example "nlanc" TypeIn ", ~VSDGNREQ"
                            Moveto [Tipo de Movimento      ] TypeIn "E"
                            Moveto [Tipo de Operacao       ] TypeIn "P"
                            {Ask} {RqItem}
                            Moveto [Numero do Lancamento   ] Example "nlanc"
                            Moveto [Codigo do Item         ] Check
                            Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                            Do_It!
                            ClearAll
        
                            CoEdit "Answer"
                            Scan
                              If Not ISBlank([Codigo do Item])
                                 Then [Codigo do Item]=MudaCodigoPara([Codigo do Item],"P")
                              EndIf
                            EndScan
                            Do_It!
                            ClearAll
                       Else {Ask} {RqCabeca}
                            Moveto [Numero do Lancamento   ] Example "nlanc" TypeIn ", ~VSDGNREQ"
                            {Ask} {RqItem} Check
                            Moveto [Numero do Lancamento   ] Example "nlanc"
                            Do_It!
                            ClearAll
                     EndIf
                            
                   Case Not IsBlank(VSDGNPED):
                    {Ask} {\\Sistemas\\Vendas\\PedidoI}
                    Moveto [Numero do Pedido       ] TypeIn "~VSDGNPED"
                    Moveto [Codigo do Item         ] Check
                    Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                    Do_It!
                    ClearAll
                   Case Not IsBlank(VSDGNROM) :
                    {Ask} {\\Sistemas\\Vendas\\FaturaI}
                    Moveto [Numero da OF           ] TypeIn "~VSDGNROM.."
                    Moveto [Codigo do Item         ] Check
                    Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                    Do_It!
                    ClearAll
                   Case Not IsBlank(VSDGNNE) :
                    {Ask} {\\Sistemas\\Estoque\\NotaEI}
                    Moveto [Numero do Lancamento   ] TypeIn "~VSDGNNE.."
                    Moveto [Codigo do Item         ] Check
                    Moveto [Quantidade Convertida  ] TypeIn "Calc Sum as Quantidade"
                    Do_It!
                    ClearAll
                  EndSwitch

                  If VSDGOPCAO[1]
                     Then {Ask} {Answer}
                          Moveto [Quantidade] TypeIn "Changeto ~VSDGQUANTIDADE"
                          Do_It!
                          ClearAll
                  EndIf

             Else {Ask} {Itens}
                  Moveto [Codigo do Item         ] Check 
                  Switch 
                    Case VSDGCODIGOI=""  And VSDGCODIGOF<>""  : TypeIn "<=~VSDGCODIGOF"
                    Case VSDGCODIGOF=""  And VSDGCODIGOI<>""  : TypeIn ">=~VSDGCODIGOI"
                    Case VSDGCODIGOF<>"" And VSDGCODIGOI<>""  : TypeIn ">=~VSDGCODIGOI, <=~VSDGCODIGOF"
                  EndSwitch
                  Moveto [Tipo do Item           ]
                  Switch
                     Case VSDGTIPOEST = "1"       : TypeIn "E or M or O or A or S"
                     Case VSDGTIPOEST = "2"       : TypeIn "P or T"
                     Case Not IsBlank(VSDGTIPOEST): TypeIn "~VSDGTIPOEST"
                     OtherWise                    : TypeIn "Not C, Not D, Not F, Not G, Not H, Not I"
                  EndSwitch
                  Moveto [Codigo da Familia] TypeIn "~VSDGFAMI.."
                  Moveto [Codigo do Grupo  ] TypeIn "~VSDGGRP.."
                  Moveto [Codigo da Marca  ] TypeIn "~VSDGMARCA.."
                  Moveto [Referencia       ] TypeIn "~VSDGREFERENCIA.."
                  Moveto [Inativo          ] TypeIn "Not S"
                  Do_It!
                  ClearAll
          EndIf

          If IsEmpty("Answer")
             Then Mensagem("N„o exite registro conforme sele‡„o !")
             Else View "\\Sistemas\\Vendas\\Tbprite"
                  View "Re_0010"
                  CoEdit "Answer"
                  Scan
                    PRECO=BlankNum()
                    If VSDGTABELA<>""
                       Then Moveto "\\sistemas\\vendas\\Tbprite"
                            Moveto [Codigo da tabela]
                            Locate VSDGTABELA,[Answer->Codigo do Item]
                            If Retval
                               Then PRECO=[Preco Unitario]
                            EndIf
                    EndIf
                    Moveto "Re_0010"
                    End Down
                    [Lookup_Item       ]=[Answer->Codigo do Item]
                    [Codigo do Item    ]=[Answer->Codigo do Item]
                    Switch
                      Case Not ISBlank(VSDGNREQ):
                        [Quantidade    ]=[Answer->Quantidade    ]
                      Case Not ISBlank(VSDGNPED):
                        [Quantidade    ]=[Answer->Quantidade    ]
                      Case Not ISBlank(VSDGNROM):
                        [Quantidade    ]=[Answer->Quantidade    ]
                      Case Not ISBlank(VSDGNNE):
                        [Quantidade    ]=[Answer->Quantidade    ]
                      OtherWise:
                        [Quantidade    ]=VSDGQUANTIDADE
                    EndSwitch
                    If VSDGTABELA<>""        
                       Then [Preco Unitario    ]=PRECO
                    EndIf
                    UnLockRecord
                    Moveto "Answer"
                  EndScan
                  Do_It!
                  ClearAll
          EndIf
    Else ClearAll
         QuitLoop
  EndIf
  ClearAll
  QuitLoop

EndWhile

CoEdit "Re_0010"
If FORMU=1
	 Then PickForm OPCAO_FORM_PADRAO
	 Else PickForm "1"
EndIf
EndProc

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc Form_Localizar()

Switch
  Case FORMU=4                        : OPCAO_FORM_PADRAO = "6" 
                                        PickForm OPCAO_FORM_PADRAO
                                        Moveto [Codigo do Item]
  Case LOCALIZA_CODIGO = "LOC_CODITE" : PickForm OPCAO_FORM_PADRAO
                                        Moveto [Codigo do Item]
  Case LOCALIZA_CODIGO = "LOC_CODFOR" : PickForm "3"
                                        Moveto [Codigo Fornecedor]
  Case LOCALIZA_CODIGO = "LOC_CODREF" : PickForm "4"
                                        Moveto [Referencia]
  Case LOCALIZA_CODIGO = "LOC_CODBAR" : PickForm "5"
                                        Moveto [Codigo de Barras]
                                        ChaveCdBar()
EndSwitch

EndProc ;Form_Localizar()

;*******************************************************************************
;* Rotina para Entrada Rapida por Codigo de Barras                             *
;*******************************************************************************
Proc ChaveCdBar()
Private etiqok
qtd=0
Dados_Item=""
While True
  Item_Ins_Consulta=False
  
  MSGCAMPO=""
  If Not Ler_CDBarras(22,00) 
     Then QuitLoop
     Else If Dados_QTD<=0
             Then Mensagem("Quantidade tem que ser > ou = 1 !")
                  Moveto [Codigo de Barras]
                  Loop
             Else ANT_FIELD=Field()
                  LOC_RETORNO_CODITEM = True
                  Moveto [Lookup_Item]
                  Ativa_Lookup()
                  ModoLocalizarItem("LOCALIZAR",Dados_Item,"")
                  CODIGO = LOC_CODIGO_ITEM
                  If CODIGO=""
                     Then Mensagem("Item/Referˆncia n„o localizado !")
                          Moveto [Codigo de Barras]
                          Loop
                  EndIf
                  GetRecord "\\sistemas\\estoque\\Itens" CODIGO To REGITEM
                  If RetVal
                     Then If regitem["Inativo"]="S"
                             Then Mensagem("InclusÆo nÆo permitida, item INATIVADO ! ")
                                  Moveto [Codigo de Barras]
                                  Loop                            
                          Endif
                  Endif
                  Del
                  Locate CODIGO
                  If Retval
                     Then [Quantidade] = Dados_QTD + [Quantidade]
                     Else End Down
                          [Lookup_Item   ]=CODIGO
                          [Codigo do Item]=CODIGO
                          [Quantidade    ]=Dados_QTD
                          UnLockRecord
                  EndIf
                  qtd=qtd+Dados_QTD
                  End Down
                  Moveto [Codigo de Barras]
                  Loop
          EndIf
  EndIf
EndWhile

EndProc ;ChaveCdBar()

;*******************************************************************************
;* Atribui Pre‡o dos Itens                                                     *
;*******************************************************************************
Proc Atribuir_Precos()

If MODETIQ="49A"
   Then Return
EndIf   


{Ask} {Re_0010}
Moveto [Preco Unitario  ] TypeIn "Changeto Blank"
Do_It!
ClearAll

{Ask} {\\Sistemas\\Vendas\\Tbprite} Check
Moveto [Codigo da Tabela] TypeIn "~VSDGTABELA.."
Do_It!
ClearAll

If MODETIQ="36C" Or MODETIQ="91" Or MODETIQ="104"  
   Then View "Answer"
        CoEdit "Re_0010"
        Scan
          CodItem = PegaCodigoRaiz([Codigo do Item])
          Moveto "Answer"
          Moveto [Codigo do Item]
          Locate CodItem
          If Retval
             Then Valor = [Preco Unitario]
             Else Valor = 0
          EndIf
          Moveto "Re_0010"
          [Preco Unitario] = Valor
        EndScan
        Do_It!
        ClearAll
        Return
EndIf

{Ask} {Answer}
Moveto [Codigo do Item  ] Example "CodI"
Moveto [Preco Unitario  ] Example "Prec"
{Ask} {Re_0010}
Moveto [Codigo do Item  ] Example "CodI"
Moveto [Preco Unitario  ] TypeIn "Changeto " Example "Prec"
Do_It!
ClearAll

EndProc ;Atribuir_Precos()

;*******************************************************************************
;* Rotina Impressao                                                            *
;*******************************************************************************
Proc Imprimir()
LimpaRodape(0)
Do_It!
ClearAll

If Not IsAssigned(SELECAO) Then SELECAO="    Todos" EndIf

While True
  OP_SHOW="I"
  ShowDialog "Selecione o Modelo de Etiqueta" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE","SELECT"
  Key "ENTER","ESC","TAB", "F1"
    @ 01,01 Height 20 Width 80

    PickArray @2,01 Height 11 width 75
     Columns 1
      Array_Etiquetas
       Tag "TG_OPETIQUETA"
        To VSDGOPETIQUETA

    Label @ 00,00 "Modelos de Etiqueta"  For "TG_OPETIQUETA"
    Label @ 01,00 "Codigo  Col  Dimens„o/cm   Impressora          Descri‡„o                 P"  For "TG_OPETIQUETA"

    Label  @ 13,00 "Ordem" For "TG_OPRELCODALFDIG"
    Accept @ 14,01 Width 04 "A1"  Picture "1,2,3" Tag "TG_OPRELCODALFDIG" To VSDGOPRELCODALFDIG
    Accept @ 14,04 Width 12 "A10" Picture "!*!" Tag "TG_NOMOPRELCODALFDIG" To VSDGNOMOPRELCODALFDIG

    Label  @ 13,17 "Tabela" For "TG_TABELA2"
    Accept @ 14,18 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA2" To VSDGTABELA2
    Accept @ 14,25 Width 21 "A30" Picture "!*!" Tag "TG_NOMTAB2" To VSDGNOMTAB2

    Label  @ 13,47 "Tabela 2" For "TG_TABELA3"
    Accept @ 14,48 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA3" To VSDGTABELA3
    Accept @ 14,55 Width 21 "A30" Picture "!*!" Tag "TG_NOMTAB3" To VSDGNOMTAB3

    @ 15,63 ?? SELECAO
    Pushbutton @ 16,62 width 15 "~V~er Modelos"     OK    Tag "TG_SELECAO" To BottonValue

    Pushbutton @ 16,26 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 16,40 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf


  MODETIQ=RTrim(SubStr(Array_Etiquetas[VSDGOPETIQUETA],1,3))

  If MODETIQ="---"
     Then Mensagem("Modelo Inv lido !")
          Loop
  EndIf

  UTILIZA_PRECO=False
  If MODETIQ="36C" Or
     MODETIQ="91"  Or
     MODETIQ="60"  Or
     MODETIQ="61"  Or
     MODETIQ="64"  Or
     MODETIQ="75"  Or
     MODETIQ="79"  Or
     MODETIQ="81"  Or
     MODETIQ="88"  Or
     MODETIQ="88A" Or
     MODETIQ="96"  Or
     MODETIQ="88B" Or
     MODETIQ="44A" Or
     MODETIQ="68A" Or
     MODETIQ="59"  Or
     MODETIQ="59A" Or
     MODETIQ="59B" Or
     MODETIQ="36A" Or
     MODETIQ="36D" Or
     MODETIQ="37"  Or
     MODETIQ="70"  Or
     MODETIQ="74"  Or
     MODETIQ="76"  Or
     MODETIQ="77"  Or
     MODETIQ="38"  Or
     MODETIQ="87"  Or
     MODETIQ="18"  Or
     MODETIQ="21"  Or
     MODETIQ="22"  Or
     MODETIQ="22C" Or
     MODETIQ="100" Or
     MODETIQ="49A" Or
     MODETIQ="104" Or
     MODETIQ="101" Or
     MODETIQ="106" Or
     MODETIQ="107" Or
     MODETIQ="109" Or
     MODETIQ="110" 
     Then Switch
            Case Not IsAssigned(VSDGTABELA) And
                 Not IsAssigned(VSDGTABELA2)                    : Mensagem("Informar a tabela de pre‡o antes de prosseguir !")
                                                                  Loop
            Case Not IsAssigned(VSDGTABELA)  And VSDGTABELA2="" : Mensagem("Informar a tabela de pre‡o antes de prosseguir !")
                                                                  Loop
            Case Not IsAssigned(VSDGTABELA2) And VSDGTABELA=""  : Mensagem("Informar a tabela de pre‡o antes de prosseguir !")
                                                                  Loop
            OtherWise                                           : VSDGTABELA=VSDGTABELA2
                                                                  UTILIZA_PRECO=True
          EndSwitch
  EndIf

  If MODETIQ="36C" or MODETIQ="98" Or MODETIQ="104" 
     Then Switch
            Case Not IsAssigned(VSDGTABELA3) Or VSDGTABELA3="" : Mensagem("Informar a tabela de pre‡o 2 antes de prosseguir !")
                                                                 Loop
          EndSwitch
  EndIf

  If MODETIQ="85" Or MODETIQ="86" Or MODETIQ="95"
     Then
         Switch
            Case Not IsAssigned(VSDGTABELA) : UTILIZA_PRECO=False
            Case VSDGTABELA=""              : UTILIZA_PRECO=False
            OtherWise                       : UTILIZA_PRECO=True
         EndSwitch
  EndIf
  
  If MODETIQ="25"  Or  ;Play Et_z*
     MODETIQ="35"  Or
     MODETIQ="36"  Or
     MODETIQ="36A" Or
     MODETIQ="36B" Or
     MODETIQ="36C" Or
     MODETIQ="36D" Or
     MODETIQ="36E" Or
     MODETIQ="91"  Or
     MODETIQ="63"  Or ;Alterado para 63 (Antes 36R)
     MODETIQ="37"  Or
     MODETIQ="38"  Or
     MODETIQ="44A" Or
     MODETIQ="45"  Or
     MODETIQ="46"  Or
     MODETIQ="47"  Or
     MODETIQ="48"  Or
     MODETIQ="49"  Or
     MODETIQ="51"  Or
     MODETIQ="52"  Or
     MODETIQ="53"  Or
     MODETIQ="54"  Or
     MODETIQ="56"  Or
     MODETIQ="57"  Or
     MODETIQ="59"  Or
     MODETIQ="59A" Or
     MODETIQ="59B" Or
     MODETIQ="60"  Or
     MODETIQ="61"  Or
     MODETIQ="62"  Or
     MODETIQ="92"  Or
     MODETIQ="64"  Or
     MODETIQ="66"  Or
     MODETIQ="66A" Or
     MODETIQ="68"  Or
     MODETIQ="68A" Or
     MODETIQ="69"  Or
     MODETIQ="70"  Or
     MODETIQ="71"  Or
     MODETIQ="73"  Or
     MODETIQ="75"  Or
     MODETIQ="78"  Or
     MODETIQ="78A" Or
     MODETIQ="78B" Or
     MODETIQ="79"  Or
     MODETIQ="80"  Or
     MODETIQ="81"  Or
     MODETIQ="82"  Or
     MODETIQ="83"  Or
     MODETIQ="84"  Or
     MODETIQ="85"  Or
     MODETIQ="95"  Or
     MODETIQ="86"  Or
     MODETIQ="87"  Or
     MODETIQ="88"  Or
     MODETIQ="88A" Or
     MODETIQ="96"  Or
     MODETIQ="96A" Or
     MODETIQ="97"  Or
     MODETIQ="88B" Or
     MODETIQ="89"  Or
     MODETIQ="90"  Or
     MODETIQ="93"  Or
     MODETIQ="93A" Or
     MODETIQ="94"  Or
     MODETIQ="94A" Or
     MODETIQ="57A" Or
     MODETIQ="57B" Or
     MODETIQ="21"  Or
     MODETIQ="22"  Or
     MODETIQ="22A" Or
     MODETIQ="22B" Or
     MODETIQ="22C" Or
     MODETIQ="49A" Or
     MODETIQ="18"  Or
     MODETIQ="19"  Or
     MODETIQ="98"  Or
     MODETIQ="99"  Or
     MODETIQ="100" Or
     MODETIQ="101" Or
     MODETIQ="102" Or
     MODETIQ="103" Or
     MODETIQ="111" Or
     MODETIQ="104" Or
     MODETIQ="105" Or
     MODETIQ="106" Or
     MODETIQ="107" Or
     MODETIQ="108" Or 
     MODETIQ="109" Or
     MODETIQ="110"
     Then MSGDISPOSITIVO="Etiqueta"
          DispositivoEtq()
          If OK="" Then Loop EndIf                   

          AGUARDE("Aguarde, Gerando Relat¢rio")
          If UTILIZA_PRECO
             Then Atribuir_Precos()
          EndIf

          {Ask} {Re_0010} Check
          Do_It!
          ClearAll

          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo do Item"     EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Descricao do Item"  EndIf
          If VSDGOPRELCODALFDIG  = "3"
             Then Empty("Answer")
                  Add "Re_0010" "Answer"
          EndIf

          If MODETIQ="36"
             Then Switch ;Alterado Karina
                    Case SYS_CODIGO_CLIENTE="0320"  : Play "Et_z002B"
                    Case SYS_CLIENTE_CONFEC="0185" Or
                         SYS_CLIENTE_CONFEC="0243"  : Play "Et_Z002B"
                    OtherWise                       : Play "Et_Z002"
                  EndSwitch
          EndIf

          If MODETIQ="59"
             Then Moveto "Answer"
                  ClearImage
                  {Ask} {Answer}
                  Moveto [Comissao do Item] TypeIn "Changeto Blank"
                  Do_It!
                  ClearImage

                  View "\\Sistemas\\Vendas\\TbprIte"
                  Coedit "Answer"
                  Scan
                    Moveto "Answer"

                    PRECO=BlankNum()
                    Moveto "\\Sistemas\\Vendas\\TbprIte"
                    Moveto [Codigo da Tabela]
                    Locate "00003",[Answer->Codigo do Item]
                    If RetVal
                       Then PRECO=[Preco Unitario]
                    EndIf

                    Moveto "Answer"
                    [Comissao do Item]=PRECO
                  EndScan
                  Do_It!
                  Play "Et_Z001C"
          EndIf  
          
          Switch
            Case MODETIQ="96A": Etiqueta_Simbologia()
            Case MODETIQ="22A": Etiqueta_Simbologia()
          EndSwitch

          Switch
            Case MODETIQ="103": 
                 TAMANHO_SIMBOLOGIA="PP"
                 Play "Et_Z408" ;MODO: Retrato 
                                ;      Et_Z408A"     ;MODO: Paisagem sem Simbologia pois imagem nÆo imprime a 270§
            Case MODETIQ="111": Play "Et_Z408B"
            Case MODETIQ="25" : Play "Et_Cr"
            Case MODETIQ="35" : Play "Et_Z001"
            Case MODETIQ="36A": Play "Et_Z002C"
            Case MODETIQ="36B": Play "Et_Z002D"
            Case MODETIQ="36C": Play "Et_Z002E"
            Case MODETIQ="36D": Play "Et_Z311"
            Case MODETIQ="36E": Play "Et_Z002F"
            Case MODETIQ="91" : Play "Et_Z0369"
            Case MODETIQ="57A": Play "Et_0159"
            Case MODETIQ="93" : Play "Et_0167"
            Case MODETIQ="93A": Play "Et_0167A"
            Case MODETIQ="94" : Play "Et_0268"
            Case MODETIQ="94A": Play "Et_0268A"
            Case MODETIQ="57B": Play "Et_0159A"
            Case MODETIQ="44A": Play "Et_0294"
            Case MODETIQ="63" : Play "Et_Z002R"
            Case MODETIQ="37" : Play "Et_Z003"
            Case MODETIQ="38" : Play "Et_Z004"
            Case MODETIQ="45" : Play "Et_Z005"
            Case MODETIQ="46" : Play "Et_Z006"
            Case MODETIQ="47" : Play "Et_Z007"
            Case MODETIQ="48" : Play "Et_Z008"
            Case MODETIQ="49" : Play "Et_Z008B"
            Case MODETIQ="49A": Play "Et_Z171B"
            Case MODETIQ="51" : Play "Et_Z009A"
            Case MODETIQ="52" : Play "Et_Z009B"
            Case MODETIQ="53" : Play "Et_Z009C"
            Case MODETIQ="54" : Play "Et_E0204"
            Case MODETIQ="56" : Play "Et_Z001B"
            Case MODETIQ="57" : Play "Et_Z009D"
            Case MODETIQ="59A": Play "Et_Z001G"
            Case MODETIQ="59B": Play "Et_Z001H"
            Case MODETIQ="66" : Play "Et_Z012"
            Case MODETIQ="66A": Play "Et_Z012a"
            Case MODETIQ="68" : Play "Et_CB001"
            Case MODETIQ="82" : Play "Et_Z001F"
            Case MODETIQ="84" : Play "Et_Z014p"                                 ;VersÆo SEM impressÆo p/ Logo (** ET_Z014 c/ Logo)
            Case MODETIQ="85" : Play "Et_Z015"
            Case MODETIQ="95" : Play "Et_Z015A"
            Case MODETIQ="86" : Play "Et_Z016"
            Case MODETIQ="69" : Play "Et_CB002"
            Case MODETIQ="70" : Play "Et_Z003A"
            Case MODETIQ="71" : Play "Et_Z001D"
            Case MODETIQ="73" : Play "Et_Z144"
            Case MODETIQ="78" : Play "Et_Z051"
            Case MODETIQ="78A": Play "Et_Z051B"
            Case MODETIQ="78B": Play "Et_Z051A"
            Case MODETIQ="80" : Play "Et_CB003"
            Case MODETIQ="79" : Play "Et_Z001E"
            Case MODETIQ="60" : Play "Et_Z010"
            Case MODETIQ="61" : Play "Et_Z011"
            Case MODETIQ="75" : Play "Et_Z013"
            Case MODETIQ="62" : Play "Et_Z011B"
            Case MODETIQ="92" : Play "Et_Z011C"
            Case MODETIQ="64" : Play "Et_Z010B"
            Case MODETIQ="88" : Play "Et_Z226"
            Case MODETIQ="88A": Play "Et_Z226B"
            Case MODETIQ="88B": Play "ET_Z226C"
            Case MODETIQ="96" : Play "ET_Z0345"
            Case MODETIQ="97" : Play "ET_0383"
            Case MODETIQ="89" : Play "Et_Z017"
            Case MODETIQ="90" : Play "Et_Z018"
            Case MODETIQ="21" : Play "Et_0357"
            Case MODETIQ="22" : Play "Et_0359"
            Case MODETIQ="22B": Play "Et_0359B"
            Case MODETIQ="22C": Play "Et_0404C"
            Case MODETIQ="18" : Play "Et_0299"
            Case MODETIQ="19" : Play "Et_0355"
            Case MODETIQ="98" : Play "Et_0391"
            Case MODETIQ="99" : Play "Et_0392"
            Case MODETIQ="100": Play "Et_0396"
            Case MODETIQ="101": Play "Et_Z0388"
            Case MODETIQ="102": Play "Et_Z0403"
            Case MODETIQ="104": Play "Et_Z415"
            Case MODETIQ="105": Play "Et_Z412"
            Case MODETIQ="106": Play "Et_Z388B"
            Case MODETIQ="107": Play "Et_Z318E"
            Case MODETIQ="108": Play "Et_Z0059"
            Case MODETIQ="109": Play "Et_Z359E"
            Case MODETIQ="110": Play "Et_Z359F"
          EndSwitch

          ;**** Caso seja necess rio utilizar o tipo de codigo de barras *******
          ;If MODETIQ="88"
          ;   Then Moveto "Answer"
          ;        ClearAll
          ;
          ;        View "Itens"
          ;        CoEdit "Answer"
          ;        Scan
          ;          GetRecord "Itens" [Answer->Codigo do Item] To DynArray Array_Item
          ;          If RetVal
          ;             Then [Codigo Concentrador]=Array_Item["Tipo Codigo_Barras"]
          ;          EndIf
          ;        EndScan
          ;        Do_It!
          ;        ClearAll
          ;
          ;        If MODETIQ="88"
          ;           Then Play "Et_Z226"
          ;           Else Play "Et_Z226B"
          ;        EndIf
          ;EndIf

          If MODETIQ="83"
             Then Moveto "Answer"
                  ClearImage

                  {Ask} {Answer}
                  Moveto [Codigo da Marca] TypeIn "Changeto Blank"
                  Do_It!
                  ClearImage

                  {Ask} {Answer}
                  Moveto [Codigo do Item ] Example "CodI"
                  Moveto [Codigo da Marca] TypeIn "Changeto " Example "Tam"

                  {Ask} {\\Sistemas\\Estoque\\Itens}
                  Moveto [Codigo do Item] Example "CodI"
                  Moveto [DTamanho      ] Example "Tam"
                  Do_It!
                  ClearAll

                  Play "Et_Z0243"
          EndIf

          If MODETIQ="68A"
             Then Moveto "Answer"
                  ClearImage
                  {Ask} {Answer}
                  Moveto [Comissao do Item     ] TypeIn "Changeto Blank"
                  Moveto [Preco Unitario       ] TypeIn "Changeto Blank"
                  Do_It!
                  ClearImage

                  View "\\Sistemas\\Vendas\\TbprIte"
                  Coedit "Answer"
                  Scan
                    Moveto "Answer"
                    For Tabela_Preco from 1 to 2
                      Switch
                        Case Tabela_Preco=1 : CODIGO_TABELA_PRECO="00001"
                        Case Tabela_Preco=2 : CODIGO_TABELA_PRECO="00002"
                      EndSwitch

                      PRECO=BlankNum()
                      Moveto "\\Sistemas\\Vendas\\TbprIte"
                      Moveto [Codigo da Tabela]
                      Locate CODIGO_TABELA_PRECO,[Answer->Codigo do Item]
                      If RetVal
                         Then PRECO=[Preco Unitario]
                      EndIf

                      Moveto "Answer"
                      Switch
                        Case Tabela_Preco=1 : [Preco Unitario       ]=PRECO  ; Pre‡o a Vista
                        Case Tabela_Preco=2 : [Comissao do Item     ]=PRECO  ; Pre‡o a Prazo
                      EndSwitch
                    EndFor
                  EndScan
                  Do_It!
                  Play "Et_CB004"
          EndIf

          If MODETIQ="81"
             Then DESC_VISTA = ""
                  DESC_PRAZO=""
                  TAXA_VISTA = BlankNum()
                  View "\\sistemas\\vendas\\Tbprcpg"
                  Moveto [Codigo da tabela]
                  LOCATE VSDGTABELA
                  If RetVal
                     Then DESC_VISTA = [Descricao CondPagto]
                          TAXA_VISTA = [Taxa Financeira]
                          Skip
                          If Not Eot()
                             Then If VSDGTABELA=[Codigo da tabela]
                                     Then DESC_PRAZO = [Descricao CondPagto]
                                  EndIf
                          EndIf
                  EndIf
                  Play "Et_0316"
          EndIf

          If MODETIQ="87"
             Then PRECO_VISTA = ""
                  PRECO_PRAZO = ""
                  TAXA_VISTA  = BlankNum()
                  View "\\sistemas\\vendas\\Tbprcpg"
                  Moveto [Codigo da tabela]
                  Locate VSDGTABELA
                  If RetVal
                     Then While VSDGTABELA=[Codigo da tabela]
                            If Search("VISTA",[Descricao CondPagto])>0
                               Then TAXA_VISTA = [Taxa Financeira]
                                    QuitLoop
                            EndIf
                            Skip
                            If Eot() Then QuitLoop EndIf
                          EndWhile
                  EndIf
                  Play "Et_Z0286"
          EndIf
     Else DispositivoEtq()
          If OK="" Then Loop EndIf                          ; Report

          AGUARDE("Aguarde, Gerando Relat¢rio")
          If UTILIZA_PRECO
             Then Atribuir_Precos()
          EndIf

          {Ask} {Re_0010} Check
          Do_It!
          ClearAll

          Empty("Answer")

          View "Answer"
          CoEdit "Re_0010"
          Scan
            CopyToArray REG
            Moveto "Answer"
            For I From 1 to [Re_0010->Quantidade]
              End
              Down
              CopyFromArray Reg
            EndFor
            Moveto "Re_0010"
          EndScan
          Do_It!
          ClearAll
          
          If MODETIQ="44" Then DATA = AlinhM(StrVal(Month(Today())),2)+"/"+SubStr(StrVal(Year(Today())),3,2) EndIf   

          If VSDGOPRELCODALFDIG  = "1" Then Sort "Answer" On "Codigo do Item"     EndIf
          If VSDGOPRELCODALFDIG  = "2" Then Sort "Answer" On "Descricao do Item"  EndIf

          If MODETIQ="01"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "1"  "Answer" "R" EndIf
          If MODETIQ="03"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "3"  "Answer" "R" EndIf
          If MODETIQ="04"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "4"  "Answer" "R" EndIf
          If MODETIQ="05"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "5"  "Answer" "R" EndIf
          If MODETIQ="06"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "6"  "Answer" "R" EndIf
          If MODETIQ="07"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "7"  "Answer" "R" EndIf
          If MODETIQ="08"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "8"  "Answer" "R" EndIf
          If MODETIQ="09"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "9"  "Answer" "R" EndIf
          If MODETIQ="20"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "13" "Answer" "R" EndIf
          If MODETIQ="23"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "11" "Answer" "R" EndIf
          If MODETIQ="24"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "10" "Answer" "R" EndIf
          If MODETIQ="26"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "12" "Answer" "R" EndIf
          If MODETIQ="27"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "14" "Answer" "R" EndIf
          If MODETIQ="28"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "14" "Answer" "R" EndIf
          If MODETIQ="29"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "2"  "Answer" "R" EndIf
          If MODETIQ="30"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "3"  "Answer" "R" EndIf
          If MODETIQ="31"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "4"  "Answer" "R" EndIf
          If MODETIQ="32"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "5"  "Answer" "R" EndIf
          If MODETIQ="33"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "6"  "Answer" "R" EndIf
          If MODETIQ="34"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "8"  "Answer" "R" EndIf
          If MODETIQ="39"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "9"  "Answer" "R" EndIf
          If MODETIQ="40"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "R"  "Answer" "R" EndIf
          If MODETIQ="41"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "R"  "Answer" "R" EndIf
          If MODETIQ="42"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "R"  "Answer" "R" EndIf
          If MODETIQ="43"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "1"  "Answer" "R" EndIf
          If MODETIQ="44"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "10" "Answer" "R" EndIf
          If MODETIQ="50"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "R"  "Answer" "R" EndIf
          If MODETIQ="55"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "1"  "Answer" "R" EndIf
          If MODETIQ="58"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "11" "Answer" "R" EndIf
         ;If MODETIQ="63"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "12" "Answer" "R" EndIf
          If MODETIQ="65"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010b" "13" "Answer" "R" EndIf
          If MODETIQ="67"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010c" "7"  "Answer" "R" EndIf
          If MODETIQ="72"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "2"  "Answer" "R" EndIf
          If MODETIQ="74"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "3"  "Answer" "R" EndIf
          If MODETIQ="76"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "4"  "Answer" "R" EndIf
          If MODETIQ="77"  Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010d" "5"  "Answer" "R" EndIf
          
          
          If MODETIQ="02" And SYS_CODIGO_CLIENTE<>"0112"
             Then CopyReport "\\Base\\Sistemas\\Estoque\\RE_0010"  "2"  "Answer" "R"
          EndIf

          If MODETIQ="74" or MODETIQ="76" or MODETIQ="77"
             Then View "\\sistemas\\vendas\\Tbprcpg"
                  Moveto [Codigo da tabela]
                  LOCATE VSDGTABELA
                  If RetVal
                     Then DESC_VISTA = [Descricao CondPagto]
                          TAXA_VISTA = [Taxa Financeira]
                          Skip
                          If VSDGTABELA=[Codigo da tabela]
                             Then DESC_PRAZO = [Descricao CondPagto]
                          EndIf
                     Else DESC_VISTA = ""
                          DESC_PRAZO = ""
                          TAXA_VISTA = BlankNum()
                  EndIf
          EndIF                                                           

          If MODETIQ="67" Or MODETIQ="67A" 
             Then ;----- Sol. 21727, foi pedido para remover os 0 a esquerda do item ---------
                  AUX_EMPRESA = "0001"
                  NR = NRecords("Answer")
                  Coedit "Answer"
                  Scan
                    Barra(NR, RecNo())
                    Aguarde("Aguarde, Ajustando os Itens da Etiqueta "+BARRA_STRING)

                    COD_ITE = [Codigo do Item]
                    GetRecord "\\Sistemas\\Estoque\\Estqprm" AUX_EMPRESA,COD_ITE To REG_ESTQ
                    If RetVal
                       Then PR = REG_ESTQ["Ponto de Reposicao"]
                            If PR = 0 Then PR = BlankNum() EndIf
                       Else PR = BlankNum()
                    EndIf

                    For i From 1 To 10
                      If SubStr(COD_ITE,i,1)<>"0"
                         Then COD_ITE = SubStr(COD_ITE,i,10)
                              QuitLoop
                      EndIf
                    Endfor

                    Moveto [Codigo do Item] CtrlBackSpace
                    [Codigo do Item] = COD_ITE

                    Moveto [Peso Liquido  ] CtrlBackSpace
                    [Peso Liquido  ] = PR
                  EndScan
                  Do_iT!
                  ClearImage
          EndIf

          If (MODETIQ="02" And SYS_CODIGO_CLIENTE="0112") Or MODETIQ="67A"
             Then Switch
                    Case MODETIQ="02"  : Play "ET_0112"
                    Case MODETIQ="67A" : Play "ET_0102"
                    OtherWise          : Mensagem("N„o h  uma etiqueta definida!")
                  EndSwitch
             Else IMPRIREL("Answer","R")
          EndIf
  EndIf

  Delete "Answer"
  ConfOpcoes("Gravar")

  QuitLoop            
EndWhile
ClearAll    

CoEdit "Re_0010"
If FORMU=1                          
   Then PickForm OPCAO_FORM_PADRAO
   Else PickForm "1"
	 EndIf
EndProc
                          
                          
;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01      1    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("04      1    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("07      1    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("30      1    8,9x2,4 cm                       c/ Des.Comp             ")
ModeloRelatoriosAdd("34      1    8,9x2,4 cm                       c/ Codigo/Classe/PEI    ")
ModeloRelatoriosAdd("40      1    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("02      2    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("08      2    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("05      2    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("31      2    8,9x2,4 cm                       c/ Cod/UN               ")
ModeloRelatoriosAdd("41      2    8,9x2,4 cm                       c/ Preco                ")
ModeloRelatoriosAdd("23      2    8,9x2,4 cm                       c/ Pre‡o [Jato Tinta]   ")
ModeloRelatoriosAdd("50      2    8,9x2,4 cm                       Referencia              ")
ModeloRelatoriosAdd("03      3    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("06      3    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("09      3    8,9x2,4 cm                                               ")
ModeloRelatoriosAdd("27      1    9,9x3,6 cm                       c/ Pre‡o                ")
ModeloRelatoriosAdd("28      2    9,9x3,6 cm                       c/ Pre‡o                ")
ModeloRelatoriosAdd("33      5    3,8x2,1 cm                       c/ C¢digo de Barras     ")
ModeloRelatoriosAdd("42      1    8,0x3,5 cm                       c/ Preco                ")
ModeloRelatoriosAdd("43      1    8,0x3,5 cm                       S/ Preco                ")
ModeloRelatoriosAdd("26      2    7,0x2,4 cm                                               ")
ModeloRelatoriosAdd("55      2    7,0x2,4 cm                       c/Preco e Cod. For.     ")
ModeloRelatoriosAdd("74      2    7,0x2,4 cm                       c/Preco - VISTA/PRAZO   ")
ModeloRelatoriosAdd("76      2    9,0x2,4 cm                       c/Preco - VISTA/PRAZO   ")
ModeloRelatoriosAdd("81      2   10,1x2,5 cm                       c/Preco - VISTA/PRAZO   ")
ModeloRelatoriosAdd("77      1    9,0x2,4 cm                       c/Preco - VISTA/PRAZO   ")
ModeloRelatoriosAdd("32      4    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc    ")
ModeloRelatoriosAdd("67      1    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc    ")  ;Concretos Vico'  
ModeloRelatoriosAdd("67A     2    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc A4 ")  ;Concretos Vico
ModeloRelatoriosAdd("65      4    4,9x1,5 cm                       c/ Cod/Des/Marca/Loc/Pr ")
ModeloRelatoriosAdd("44      4    4,9x1,5 cm                       c/ Preco                ")
ModeloRelatoriosAdd("44A     4    4,4x1,7 cm                       c/ Preco          [0294]")  ;Divina Panela
ModeloRelatoriosAdd("39      5    2,5x1,5 cm                       Embalagem               ") 
ModeloRelatoriosAdd("29      5    2,5x1,5 cm                       s/ Pre‡o                ")
ModeloRelatoriosAdd("58      5    2,5x1,5 cm                       Tm/Cor/Pre‡o            ") 
ModeloRelatoriosAdd("24      1                                     c/Pre‡o+DescrComplem    ")
ModeloRelatoriosAdd("Separator")                                                                                 
ModeloRelatoriosAdd("20      5    3,8x2,1 cm   Laser/Jato Tinta                            ")
ModeloRelatoriosAdd("68      3    6,4x2,5 cm   Laser/Jato Tinta    33 Etiquetas            ")
ModeloRelatoriosAdd("68A     3    6,4x2,5 cm   Laser/Jato Tinta    33 Etiquetas c/Pre‡o    ")
ModeloRelatoriosAdd("69      3    6,6x2,5 cm   Laser/Jato Tinta    30 Etiquetas            ")
ModeloRelatoriosAdd("80      5    3,8x2,1 cm   Laser/Jato Tinta    65 Etiquetas c/CDBar    ")
ModeloRelatoriosAdd("72      3                 Laser/Jato Tinta                      [0102]") ;Concretos Vico
ModeloRelatoriosAdd("100     2   10,0x5,0 cm   Laser/Jato Tinta                      [0396]") ;Real Tecidos
ModeloRelatoriosAdd("21      2   10,0x5,0 cm   Laser/Jato Tinta                      [0357]") ;Imperio Tecidos
ModeloRelatoriosAdd("22      2   10,0x5,0 cm   Laser/Jato Tinta                      [0359]") ;Tecidos Total
ModeloRelatoriosAdd("22A     1    8,0x5,0 cm   Termica/Zebra       Simbologia        [0359]") ;Tecidos Total
ModeloRelatoriosAdd("22B     3    3,3x2,1 cm   Termica/Zebra       CODE128 *Ref.     [0359]") ;Tecidos Total
ModeloRelatoriosAdd("22C     2   10,0x5,0 cm   Laser/Jato Tinta                      [0404]") ;Almeida Tecidos
ModeloRelatoriosAdd("18      3    6,7x2,5 cm   Laser/Jato Tinta                      [0299]") ;Austin
ModeloRelatoriosAdd("19      3    6,7x2,5 cm   Laser/Jato Tinta                      [0355]") ;Escapamentos Freitas
ModeloRelatoriosAdd("Separator")    
ModeloRelatoriosAdd("25      3                 Termica/Eltron      C¢digo de Barras        ") 
ModeloRelatoriosAdd("54      3                 Termica/Eltron      CODE128           [0204]") ;Uzze Buzze
ModeloRelatoriosAdd("61      2                 Termica/Eltron      C/Pre‡o           [0227]") ;Siri
ModeloRelatoriosAdd("62      2                 Termica/Eltron      S/Pre‡o           [0227]") ;Siri
ModeloRelatoriosAdd("92      3                 Termica/Eltron      EAN13 Modelo III  [0227]") ;Siri
ModeloRelatoriosAdd("Separator")    
ModeloRelatoriosAdd("96      1  10,3 x  2,1 cm Termica/Bematech    c/Preco           [0345]") ;Vit¢ria Textil
ModeloRelatoriosAdd("96A     1  10,0 x  5,0 cm Termica/Bematech    Simbologias       [0345]") ;Vit¢ria Textil
ModeloRelatoriosAdd("109     1  10,0 x  4,0 cm Termica/Zebra       c/Preco           [0397]") ;Tecipam
ModeloRelatoriosAdd("110     1  10,0 x  4,0 cm Termica/Zebra       c/Preco+Descricao [0397]") ;Tecipam
ModeloRelatoriosAdd("63      3   6,6 x  2,5 cm Termica/Zebra       c/Preco           [0160]") ;Rolamentos Total
ModeloRelatoriosAdd("35      3                 Termica/Zebra       EAN13 Modelo I          ")
ModeloRelatoriosAdd("45      3                 Termica/Zebra       EAN13 Modelo II         ")
ModeloRelatoriosAdd("46      1                 Termica/Zebra       EAN13 Modelo III        ")
ModeloRelatoriosAdd("47      3                 Termica/Zebra       EAN13 Modelo IV         ")
ModeloRelatoriosAdd("56      3                 Termica/Zebra       EAN13 Modelo V          ")
ModeloRelatoriosAdd("79      3                 Termica/Zebra       EAN13 Modelo V  c/Pre‡o ")
ModeloRelatoriosAdd("59      3                 Termica/Zebra       EAN13 Modelo VI   [0217]")
ModeloRelatoriosAdd("59A     3                 Termica/Zebra       EAN13 Modelo VI c/Pre‡o ")
ModeloRelatoriosAdd("59B     3                 Termica/Zebra       EAN13 Modelo V  c/Pre‡o ") ;Marron Caf‚
ModeloRelatoriosAdd("82      3   3,3 x  2,1 cm Termica/Zebra       EAN13 Modelo VII        ") 
ModeloRelatoriosAdd("83      3   3,3 x  2,1 cm Termica/Zebra       CDBAR Modelo VIII       ") ;SÆo Geraldo
ModeloRelatoriosAdd("88      2   2,4 x  4,0 cm Termica/Zebra       EAN13 Modelo VIII [0226]") ;Divina Panela
ModeloRelatoriosAdd("88A     2   2,0 x  4,0 cm Termica/Zebra       EAN13 Modelo IX   [0226]") ;Divina Panela
ModeloRelatoriosAdd("88B     2   2,5 x  4,5 cm Termica/Zebra       EAN13 Modelo X    [0226]") ;Divina Panela
ModeloRelatoriosAdd("71      3                 Termica/Zebra                         [0232]") ;Zuggy-Zi
ModeloRelatoriosAdd("70      3                 Termica/Zebra                         [0282]") ;XT5
ModeloRelatoriosAdd("36      3                 Termica/Zebra       Interno Modelo I        ")
ModeloRelatoriosAdd("36A     3                 Termica/Zebra       Interno Modelo II       ")
ModeloRelatoriosAdd("36B     3                 Termica/Zebra       Interno c/ Cod128 [0274]") ;Podium
ModeloRelatoriosAdd("36C     3   3,5 x  5,0 cm Termica/Zebra       Interno Modelo IV [0266]") ;Cacharrel
ModeloRelatoriosAdd("36D     3   2,1 x  3,3 cm Termica/Zebra       Interno Modelo V  [0311]") ;Torratudo
ModeloRelatoriosAdd("36E     3   2,1 x  3,3 cm Termica/Zebra       Interno c/ EAN13  [0274]") ;Podium
ModeloRelatoriosAdd("37      3                 Termica/Zebra       Interno Modelo II       ")
ModeloRelatoriosAdd("38      2                 Termica/Zebra       Interno Modelo III      ")      
ModeloRelatoriosAdd("66      3   6,5 x  3,5 cm Termica/Zebra       Interno           [0252]") ;Ecologica
ModeloRelatoriosAdd("66A     4   2,3 x  4,7 cm Termica/Zebra       Interno           [0252]") ;Ecologica
ModeloRelatoriosAdd("51      1                 Termica/Zebra       EAN13 Modelo I    [0159]") ;Carol
ModeloRelatoriosAdd("52      1                 Termica/Zebra       EAN13 Modelo II   [0159]") ;Carol
ModeloRelatoriosAdd("53      1                 Termica/Zebra       EAN13 Modelo III  [0159]") ;Carol
ModeloRelatoriosAdd("57      2   5,0 x  3,0 cm Termica/Zebra       EAN13 Modelo IV   [0159]") ;Carol
ModeloRelatoriosAdd("57A     3   3,3 x  2,1 cm Termica/Zebra       Codigo de Barra   [0159]") ;Carol
ModeloRelatoriosAdd("57B     3  10,0 x  5,0 cm Termica/Zebra       Codigo de Barra   [0159]") ;Carol
ModeloRelatoriosAdd("60      1                 Termica/Zebra       Interno Modelo I  [0226]") ;Bali
ModeloRelatoriosAdd("64      1                 Termica/Zebra       Interno Modelo II [0226]") ;Bali
ModeloRelatoriosAdd("73      3   2,1 x  3,3 cm Termica/Zebra       Dt FabricacÆo           ")
ModeloRelatoriosAdd("75      1   3,0 x  9,9 cm Termica/Zebra       Gondola c/ Pre‡o I.     ")
ModeloRelatoriosAdd("78      2   1,3 x 10,6 cm Termica/Zebra                         [0051]") ;ModaMil
ModeloRelatoriosAdd("78A     1                 Termica/Zebra                         [0051]") ;ModaMil
ModeloRelatoriosAdd("78B     2  10,5 x  1,3 cm Termica/Zebra                         [0051]") ;ModaMil
ModeloRelatoriosAdd("84      2   5,0 x  7,5 cm Termica/Zebra                         [0199]") ;GDA
ModeloRelatoriosAdd("87      3   2,1 x  3,3 cm Termica/Zebra       Pre‡o Vista/Prazo [0286]") ;Cosnstrubel
ModeloRelatoriosAdd("89      2   5,0 x  7,5 cm Termica/Zebra       Codigo de Barra   [0304]") ;Marron Caf‚
ModeloRelatoriosAdd("90      1   7,0 x  2,3 cm Termica/Zebra       Codigo de Barra   [0066]") ;Rural Centro
ModeloRelatoriosAdd("91      1   3,5 x  5,0 cm Termica/Zebra       Codigo de Barra   [0369]") ;Morango Mel
ModeloRelatoriosAdd("93      1   2,1 x  3,3 cm Termica/Zebra       CodBAR/Embalagem  [0167]") ;SÆo Geraldo
ModeloRelatoriosAdd("93A     1   2,1 x  3,3 cm Termica/Zebra       CodBAR            [0167]") ;SÆo Geraldo
ModeloRelatoriosAdd("94      1   7,5 x  3,0 cm Termica/Zebra       CodBAR            [0268]") ;RIG Fundidos
ModeloRelatoriosAdd("94A     1  11,0 x  9,5 cm Termica/Zebra       CodBAR/Embalagem  [0268]") ;RIG Fundidos
ModeloRelatoriosAdd("97      1   5,1 x  9,8 cm Termica/Zebra       Codigo de Barra   [0383]") ;Lute Alum¡nios
ModeloRelatoriosAdd("98      1   2,1 x  3,3 cm Termica/Zebra       Interno c/ Cod128 [0391]") ;KBS
ModeloRelatoriosAdd("99      1  10,0 x  5,0 cm Termica/Zebra       C/ Preco          [0392]") ;FB Tecidos
ModeloRelatoriosAdd("101     1   8,5 x  3,0 cm Termica/Zebra                         [0388]") ;Manutex
ModeloRelatoriosAdd("102     2   4,0 x  2,3 cm Termica/Zebra                         [0403]") ;Kenia Confec
ModeloRelatoriosAdd("103     2  10,0 x  7,5 cm Termica/Zebra       Simbologia        [0408]") ;Real Tˆxtil
ModeloRelatoriosAdd("111     1  10,0 x  5,0 cm Termica/Zebra       Simbologia        [0408]") ;Real Tˆxtil
ModeloRelatoriosAdd("104     2   4,0 x  2,3 cm Termica/Zebra       Pre‡o Vista/Prazo [0415]") ;San Loren
ModeloRelatoriosAdd("105     3   1,7 x  3,0 cm Termica/Zebra                         [0412]") ;Leguedˆ
ModeloRelatoriosAdd("106     1  10,0 x  6,0 cm Termica/Zebra                         [0388]") ;Manutex
ModeloRelatoriosAdd("107     1   4,0 x 10,5 cm Termica/Zebra                         [0318]") ;Aquarela
ModeloRelatoriosAdd("108     2   2,4 x  4,0 cm Termica/Zebra       EAN13             [0059]") ;Volks Bens      
ModeloRelatoriosAdd("Separator")    
ModeloRelatoriosAdd("85      2   4,0 x  6,0 cm Termica/Intermec    Modelo 1          [0322]") ;Moreira & Silva
ModeloRelatoriosAdd("86      2   4,0 x  6,0 cm Termica/Intermec    Modelo 2          [0322]") ;Moreira & Silva p/ prod. fabricados pela Venus Modas
ModeloRelatoriosAdd("95      2   5,1 x  7,4 cm Termica/Intermec    Modelo 3          [0322]") ;Moreira & Silva "Mesma etiqueta da Venus Modas"
ModeloRelatoriosAdd("48      2                 Termica/Intermec    CODE128                 ")
ModeloRelatoriosAdd("49      2                 Termica/Intermec    EAN13             [0171]") ;Vˆnus Modas             
ModeloRelatoriosAdd("49A     2                 Termica/Intermec    Pre‡o Vista/Prazo [0171]") ;Vˆnus Modas
ModeloRelatoriosAdd("Fim")             
                          
EndProc ;ModeloRelatoriosCarregaLista
                          
;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao

Switch
  Case Opcao="Ler":
       ModeloRelatoriosCarregaLista()
       
       Array Array_OpEtiquetas[ArraySize(Array_OpModeloRelatorios)]
       For i From 1 To ArraySize(Array_OpModeloRelatorios)
         Array_OpEtiquetas[i] = Array_OpModeloRelatorios[i]
       Endfor
       VSDGQUANTIDADE = 1

       LeiaINI("RE_0010.ini","VSDGOPETIQUETA.S.1,VSDGOPRELCODALFDIG.S.1,VSDGNOMOPRELCODALFDIG.S.null,VSDGSELECAO.S.null")
       Seleciona_Etiquetas()

       ; *** Ajusta a ultima op‡Æo escolhida da Etiqueta ***
       For wi From 1 to ArraySize(Array_Etiquetas)
         If RTrim(SubStr(Array_Etiquetas[wi],1,3))=VSDGOPETIQUETA
            Then VSDGOPETIQUETA=wi
                 QuitLoop
         EndIf
       EndFor

  Case Opcao="Gravar":
       Grava_Etiquetas()
       LINHA =         GravaExpressao("[Variaveis Modelo Etiqueta]","T","")
       LINHA = LINHA + GravaExpressao("VSDGOPETIQUETA","S",MODETIQ)
       LINHA = LINHA + GravaExpressao("VSDGOPRELCODALFDIG","S",VSDGOPRELCODALFDIG)
       LINHA = LINHA + GravaExpressao("VSDGSELECAO","S",VSDGSELECAO)
       FileWrite "RE_0010.ini" From LINHA
EndSwitch
EndProc

;*******************************************************************************
;* Rotina p/ Carregar Parƒmetro                                                *
;*******************************************************************************
Proc Variaveis_Impressao(PARAM)
Private PARAM

Switch
  Case PARAM="Salvar"   : ANT_NUMCOPIA          = NUMCOPIA         
                          ANT_DISPOSITIVO_OPCAO = DISPOSITIVO_OPCAO         
                          ANT_VSDGIMPOPCAO      = VSDGIMPOPCAO     
                                                      
  Case PARAM="Carregar" : NUMCOPIA              = ANT_NUMCOPIA         
                          DISPOSITIVO_OPCAO     = ANT_DISPOSITIVO_OPCAO    
                          PDFZEBRA              = False                       
                          VSDGIMPOPCAO          = ANT_VSDGIMPOPCAO                                
EndSwitch

EndProc ;Variaveis_Impressao()      
                                 
;*******************************************************************************
;* Rotina para Recarregar Registros                                            *
;*******************************************************************************
Proc Recarrega()

DynArray ITEM[]
CONT_ITEM = 0

NR=NRecords("Re_0010")

View "Itens"
Coedit "Re_0010"
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Ajustando Itens"+BARRA_STRING)

  GetRecord "Itens" [Codigo do Item] To REG_ITEM
  If Not RetVal
     Then CONT_ITEM = CONT_ITEM + 1
          ITEM[CONT_ITEM] = [Codigo do Item]
          Loop
  EndIf

  Moveto [Lookup_Item]
  CtrlBackSpace
  [] = REG_ITEM["Codigo do Item"]

EndScan
Do_It!
ClearAll

If CONT_ITEM > 0
   Then CONT_CHAR = 0
        MSG = "H  itens na rela‡„o que n„o existem no cadastro://"
        For i From 1 To CONT_ITEM
          If i <> 1
             Then CONT_CHAR = CONT_CHAR + 12
                  If CONT_CHAR > 69
                     Then CONT_CHAR = 10
                          MSG = MSG + "\n"
                          MSG = MSG + ITEM[i]
                     Else MSG = MSG + ", " + ITEM[i]
                  EndIf
             Else CONT_CHAR = CONT_CHAR + 10
                  MSG = MSG + ITEM[i]
          EndIf
        EndFor
        MSG = MSG + "//Deseja exclu¡-los ?"
        ConfGeral(MSG)
        If Ok="S"
           Then CoEdit "Re_0010"
                For i From 1 To CONT_ITEM
                  Home
                  Moveto [Codigo do Item]
                  Locate ITEM[i]
                  If RetVal
                     Then Del
                  EndIf
                EndFor
                Do_It!
                ClearAll
        EndIf
EndIf

EndProc ;Recarrega()

;*******************************************************************************
;* Rotina para imprimir etiqueta com simbologia                                *
;*******************************************************************************
Proc Etiqueta_Simbologia()                                
Private IMP_ETQ,MSG

If Ok="V"
   Then Mensagem("Impress„o dispon¡vel apenas para impressora t‚rmica!")
        Return
EndIf
   
MSG = "N„o h  uma etiqueta definida nos parametros para utiliza‡„o!"
If Carrega_Impressora("")
   Then If CARREGA_IMPRESSORA
           Then Switch  
                  Case MODETIQ="96A" : Play "ET_Z345A"
                  Case MODETIQ="22A" : Play "ET_Z359A"
                  OtherWise          : Mensagem(MSG)
                EndSwitch  
           Else Mensagem(MSG)         
       EndIf
EndIf      

EndProc ;Etiqueta_Simbologia()

;*******************************************************************************
;* Rotina para verificar a data do arquivo                                     *
;*******************************************************************************
Proc Verifica_Data_Arquivo()
Private ARQUIVO,DATA

ARQUIVO = PrivDir()+"Simbol.ini"
DATA    = Today()

If Not IsFile(ARQUIVO)
   Then Return
EndIf
                        
;---- Conferindo o Nome do Arquivo ---------------------------------------------                        
PosI = Search("\\",ARQUIVO)
If PosI > 0
   Then AUX_ARQ = ARQUIVO
        While PosI > 0
          AUX_ARQ = SubStr(AUX_ARQ,PosI+1,Len(AUX_ARQ))
          PosI=Search("\\",AUX_ARQ)
        EndWhile
   Else AUX_ARQ = ARQUIVO      
EndIf 
   
   
MSG   = ""               
LINHA = ""
DTA   = BlankDate()

{Tools} {Info} {Inventory} {Files} TypeIn ARQUIVO Enter
Scan For [Name]<>"" 
  If Upper([Name])=AUX_ARQ                     
     Then If DATA<>[Date]
             Then Deleta_Arquivo(ARQUIVO)
                  QuitLoop
          EndIf
  EndIf   
EndScan
ClearImage
       
EndProc ;Verifica_Data_Arquivo()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
Switch
  Case FORMU=3 : DIGITA3()
  OtherWise    : DIGITA()
EndSwitch
If RecordStatus("Locked") Then UnLockRecord EndIf
Endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""    EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC=""    EndIf

Sys_Valor()

If SYS_CLIENTE_CONFEC <> "" 
   Then Array Array_TM[12]
EndIf

TAMANHO_SIMBOLOGIA = "P"
CARREGA_SIMBOLOGIA = False       
TIPO_IMPRESSORA    = ""
If SYS_CODIGO_CLIENTE="0345" Or SYS_CODIGO_CLIENTE="0359" Or SYS_CODIGO_CLIENTE="0408" 
   Then CARREGA_SIMBOLOGIA=True
        Switch
          Case SYS_CODIGO_CLIENTE="0359" : TIPO_IMPRESSORA = "ZEBRA"
          Case SYS_CODIGO_CLIENTE="0345" : TIPO_IMPRESSORA = "BEMATECH"
          Case SYS_CODIGO_CLIENTE="0408" : TIPO_IMPRESSORA = "ZEBRA"
        EndSwitch
EndIf     
                 
If CARREGA_SIMBOLOGIA
   Then If SYS_CODIGO_CLIENTE="0345"
           Then Verifica_Data_Arquivo()
        EndIf   
        IMP_FILE=PrivDir()+"ETQ_RE10.SC"
        If IsFile(IMP_FILE) 
           Then LeiaINI(IMP_FILE,"NUMCOPIA.N.null")
                LeiaINI(IMP_FILE,"DISPOSITIVO_OPCAO.S.null")
                LeiaINI(IMP_FILE,"VSDGIMPOPCAO.S.null")
                LeiaINI(IMP_FILE,"Seta_Printer.S.null")
        
                If Seta_Printer=""
                   Then LeiaINI(IMP_FILE,"Sys_Set_Porta.S.null")
                        Seta_Printer=Sys_Set_Porta
                EndIf
        
                If NUMCOPIA=BlankNum() Or DISPOSITIVO_OPCAO="" Or VSDGIMPOPCAO=""
                   Then Deleta_Arquivo(IMP_FILE)
                   Else Variaveis_Impressao("Salvar")
                EndIf
        EndIf
EndIf
                                
;---- M‚todo p/ Localizar o Item -----------------------------------------------
If IsFile(PrivDir()+"RE_0010.ini")
   Then LeiaINI(PrivDir()+"RE_0010.ini","LOCALIZA_CODIGO.S.null")
EndIf
If Not IsAssigned(LOCALIZA_CODIGO) Then LOCALIZA_CODIGO=""  EndIf
ModoLocalizarItem("","","")

view"\\sistemas\\vendas\\Tbprite"
view"\\sistemas\\vendas\\Tbprcpg"

ConfOpcoes("Ler")

;---- Para Re-Carregar Itens conforme Cadastro ---------------------------------
If Not IsEmpty("Re_0010")
   Then Recarrega()
EndIf
;-------------------------------------------------------------------------------
OPCAO_FORM_PADRAO = "F"

CoEdit "Re_0010"
PickForm OPCAO_FORM_PADRAO
FORMU=1
If SYS_CLIENTE_CONFEC <> "" Then FORMU=4  OPCAO_FORM_PADRAO = "6" EndIf
While True
  CHAVE()
  If CHAVE=9 Then QuitLoop EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll

Release Vars All
Release Procs All
