'Nome       : StcGra_Exemplo.etq
'Tipo       : LST
'Data       : 2015/06/07
'Versao     : 1.0
'Descricao  : STC - Etiquetas graficas - Exemplos

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   ____/__/__ --------------------------------------------------
'Versao base
'Exemplo para uso de opcoes para codigo de barras (EtqGr_Cba)


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#
Subtotalizadores                 [SbtNiv]=2
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Especifico 1                      [EspOp1]=Opcao 1
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=StcEtq
Nome                       [DocNom]=EtqGr,Etiqueta c/ barras
Vias                       [DocVia]=Original

'formato
'Saida/Impressora           [DocPrt]=PAG_W,PRV
Saida/Impressora           [DocPrt]=PAG_W
Etiquetas por pagina       [DocLpg]=1
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=

'funcoes de listagem
Base para documento         [FxDOC]=EtqGr
Listar cabecalho            [FxCAB]=EtqGr_Cab
Listar linhas               [FxLIN]=EtqGr_Lin
Listar fim                  [FxFIM]=EtqGr_Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'MemNum(11)    - contador geral
'MemNum(12)    - contador por artigo

'identificadores
Pag       = Doc_CntPag                                      'pagina

vcDtExt   = FrmVal$(Sig_DtHoje,45,0)                        'data em extenso
vcDt      = FrmDt$("",Sig_DtHoje)                           'data
vcHr      = DataTms$("H")                                   'hora
vcUtz     = SigUtz$("SIG")                                  'utilizador do SIG
vcUtzWin  = SigUtz$("WIN")                                  'utilizador do windows
vcUtzMaq  = SigUtz$("MAQ")                                  'utilizador do SIG - maquina

'dados da empresa 
vaEmpIde = vuEmpIde$                                        'empresa
vaEmpMor = vuEmpMor$                                        'morada
vaEmpLoc = vuEmpLoc$                                        'localidade
vaEmpCpo = vuEmpCpo$                                        'codigo postal
vaEmpTel = vuEmpTel$                                        'telefone
vaEmpFax = vuEmpFax$                                        'fax
vaEmpNif = vuEmpNif$                                        'nif
vaEmpNju = vuEmpNju$                                        'natureza juridica
vaEmpReg = vuEmpReg$                                        'numero de registo
vaEmpCps = vuEmpCps$                                        'capital social

'dados do artigo
Art      = StcCodFrm$(Stc_Mst_Art$)                         'codigo do artigo formatado
ArtCba   = Stc_Mst_CodBar$                                  'codigo de barras
Nom1     = Stc_Mst_Nome1$                                   'nome 1 do artigo
Nom2     = Stc_Mst_Nome2$                                   'nome 1 do artigo
Unid     = Stc_Mst_Unid$                                    'unidade
PrcEur   = FrmNum$(5.2,Stc_Mst_Pv1)+" €"                    'preco com simbolo do Euro
Prc      = FrmNum$(5.2,EtqPrc)+" "                          'preco

##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario

'        10        20        30        40
'123456789.123456789.123456789.123456789.


'=============================================================================
'- Comum ---------------------------------------------------------------------
'=============================================================================
Sub FxIni 'funcao de inicializacao
ficLogo$="C:\Olisoft\Sig4\Div\OliLogo.bmp"
'ficLogo$="\\ServerXxx\Disco_C\Olisoft\Sig4\Div\OliLogo.bmp"

'modo WIN
PrWIN AJT_F, 56.7,  56.7                                    'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                                   'deslocamento de ajuste 
PrWIN IMG_F, 1, VarTx$(ficLogo$,"R")                        'imagem (logotipo)
PrWIN ET,  2                                                'espessura de traco 
end sub


Sub FxFim 'funcao de finalizacao
PrWIN FON, "REG"                                            'limpar registo de fontes
end sub


Sub Lst_AJT 'ajuste
'nada a executar
end sub


'-----------------------------------------------------------------------------
'- [VAR] - Variaveis ---------------------------------------------------------
'-----------------------------------------------------------------------------
Sub PrpVar_Emp 'preparar variaveis da empresa
vuEmpIde$ = Emp_Inf_Nome$                                   'empresa
vuEmpMor$ = Emp_Inf_Morada$                                 'morada
vuEmpLoc$ = Emp_Inf_Local$                                  'localidade
vuEmpCpo$ = Emp_Inf_Cpost$                                  'codigo postal
vuEmpTel$ = Emp_Inf_Telef$                                  'telefone
vuEmpFax$ = Emp_Inf_Fax$                                    'fax
vuEmpNif$ = Emp_Inf_Contrib$                                'nif
vuEmpNju$ = Emp_Inf_NatJur$                                 'natureza juridica
vuEmpReg$ = Emp_Inf_NumReg$                                 'numero de registo
vuEmpCps$ = FrmNum$(10.2,Emp_Inf_CapSoc)                    'capital social
end sub


'-----------------------------------------------------------------------------
'- [EtqGr] - Etiqueta com codigo de barras -----------------------------------
'-----------------------------------------------------------------------------
Sub EtqGr_DocIni 'inicializar documento
'msgbox "", "DOC","INI"

'call PrpVar_Com                                             'preparar variaveis comuns
end sub


Sub EtqGr_DocFim 'terminar documento
'msgbox "", "DOC","FIM"
end sub


Sub EtqGr_LinIni 'inicio de linhas
'msgbox "", "LIN","INI"
end sub


Sub EtqGr_LinFim 'fim de linhas
'msgbox "", "LIN","FIM"
end sub


'-----------------------------------------------------------------------------
'- listagem da etiqueta ------------------------------------------------------
'-----------------------------------------------------------------------------
Sub EtqGr_CabIni 'inicializar
'nada a executar
end sub


Sub EtqGr_Cab 'cabecalho
'nada a executar
end sub


Sub EtqGr_Lin 'linha
ivaTax$   = StcIvaTax("A","A")                              'taxa de IVA
txIva$    = "IVA " + ivaTax$ + "%"                          'texto para iva
EtqPrc    = Stc_Mst_Pv4                                     'preco para etiqueta

'factores
fpu = Stc_Mst_Fcnv                                          'factor para preco por unidade
if fpu = 0                                                  'sem factor registado ?
   fpu = 1                                                  'usar valor unitario
end if

usaPru = 1                                                  'assume listar preco por unidade
if fpu = 1 then                                             'ja e unitario ?
'   usaPru = 0                                               'nao usar
end if

'listar
if usaPru = 1 then                                          'listar preco unitario
   pru    = EtqPrc / fpu                                    'calcular preco por unidade
   xPru$  = FrmNum$(5.2,pru)                                'formatar
   xPru$  = trim$(xPru$)                                    'ajustar
   txPru$ = xPru$ + " por " + Stc_Mst_Unid$                 'valor a listar
   txFpu$ = TxtCv$(fpu)                                     'valor a listar
   txUni$ = txPru$ + " [Emb: " + txFpu$ + "]"               'valor a listar
else
   txPru$ = ""                                              'sem valor a listar
   txFpu$ = ""                                              'sem valor a listar
   txUni$ = ""                                              'sem valor a listar
end if


PrWIN AJT_B,  6, 2                                          'posicao base
PrWIN AJT_B,  26, 2                                          'posicao base

'PrWIN GR_CX,  0, 0, 100, 30, 2                             'caixa envolvente
'- (61) --------------------------------------------------->'Comentario

'logotipo
'PrWIN IMG_V,1, 3, 5, 20, 8                                  'imagem (logotipo)
'PrWIN GR_CX,   5, 5, "+20", "+10", 2                       'caixa envolvente

'codigo do artigo
PrWIN FON, 10, 1                                             'activar fonte
'PrWIN FON, 10, 1                                             'activar fonte
PrWIN TX_N , 00, 5,@Art                                  'listar codigo de barras
'PrWIN TX_N , 32, 7,@ArtCba                                 'listar codigo de barras

'IVA
'PrWIN FON,  7, 1                                            'activar fonte
'PrWIN TX_N , 35, 7,txIva$                                   'listar taxa de IVA

'nome do artigo
PrWIN FON, 7, 1                                             'activar fonte
'PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N , 0, 9,@Nom1                                    'listar nome do artigo
'PrWIN TX_CTR, 0, 18, 100, 18,@Nom1                         'nome do artigo centrado
'PrWIN TX_CTR, 0, 15,  50, 15,@Nom1                         'nome do artigo centrado
PrWin FON, "BOLD-"                                          'desactivar bold

'preco
PrWIN FON, 10, 1                                             'activar fonte
PrWin FON, "BOLD+" 
PrWIN TX_N, 5, 12,"Preço €"                                'identificar preco
PrWIN TX_NP, 15, 12,"N",@Prc                                'listar preco
'PrWIN TX_NP, 63, 25,"N",@Prc                               'listar preco
PrWin FON, "BOLD-" 

'unidade
'PrWIN FON, 6, 1                                             'activar fonte
'PrWIN TX_N, 10, 28,txUni$                                   'listar unidade

'adicional
call EtqGr_Cba                                              'listar codigo de barras
end sub




Sub x_EtqGr_Lin 'linha
ivaTax$   = StcIvaTax("A","A")                              'taxa de IVA
txIva$    = "IVA " + ivaTax$ + "%"                          'texto para iva
EtqPrc    = Stc_Mst_Pv4                                     'preco para etiqueta

'factores
fpu = Stc_Mst_Fcnv                                          'factor para preco por unidade
if fpu = 0                                                  'sem factor registado ?
   fpu = 1                                                  'usar valor unitario
end if

usaPru = 1                                                  'assume listar preco por unidade
if fpu = 1 then                                             'ja e unitario ?
'   usaPru = 0                                               'nao usar
end if

'listar
if usaPru = 1 then                                          'listar preco unitario
   pru    = EtqPrc / fpu                                    'calcular preco por unidade
   xPru$  = FrmNum$(5.2,pru)                                'formatar
   xPru$  = trim$(xPru$)                                    'ajustar
   txPru$ = xPru$ + " por " + Stc_Mst_Unid$                 'valor a listar
   txFpu$ = TxtCv$(fpu)                                     'valor a listar
   txUni$ = txPru$ + " [Emb: " + txFpu$ + "]"               'valor a listar
else
   txPru$ = ""                                              'sem valor a listar
   txFpu$ = ""                                              'sem valor a listar
   txUni$ = ""                                              'sem valor a listar
end if


'PrWIN AJT_B,  6, 2                                          'posicao base
'PrWIN GR_CX,  0, 0, 100, 30, 2                             'caixa envolvente
'- (61) --------------------------------------------------->'Comentario

'logotipo
'PrWIN IMG_V,1, 3, 5, 20, 8                                  'imagem (logotipo)
'PrWIN GR_CX,   5, 5, "+20", "+10", 2                       'caixa envolvente

'codigo do artigo
'PrWIN FON, 10, 1                                             'activar fonte
'PrWIN FON, 10, 1                                             'activar fonte
'PrWIN TX_N , 00, 5,@Art                                  'listar codigo de barras
'PrWIN TX_N , 32, 7,@ArtCba                                 'listar codigo de barras

'IVA
'PrWIN FON,  7, 1                                            'activar fonte
'PrWIN TX_N , 35, 7,txIva$                                   'listar taxa de IVA

'nome do artigo
'PrWIN FON, 7, 1                                             'activar fonte
'PrWin FON, "BOLD+"                                          'activar bold
'PrWIN TX_N , 0, 9,@Nom1                                    'listar nome do artigo
'PrWIN TX_CTR, 0, 18, 100, 18,@Nom1                         'nome do artigo centrado
'PrWIN TX_CTR, 0, 15,  50, 15,@Nom1                         'nome do artigo centrado
'PrWin FON, "BOLD-"                                          'desactivar bold

'preco
'PrWIN FON, 10, 1                                             'activar fonte
'PrWin FON, "BOLD+" 
'PrWIN TX_N, 5, 12,"Preço €"                                'identificar preco
'PrWIN TX_NP, 15, 12,"N",@Prc                                'listar preco
'PrWIN TX_NP, 63, 25,"N",@Prc                               'listar preco
'PrWin FON, "BOLD-" 

'unidade
'PrWIN FON, 6, 1                                             'activar fonte
'PrWIN TX_N, 10, 28,txUni$                                   'listar unidade

'adicional
'call EtqGr_Cba                                              'listar codigo de barras

'tx1$ = "^XA" 
'tx2$ = "^LH0,0" 
'tx3$ = "^FO1,40^BY2,3.0^B3N,N,55,N^FD" & Text1 & "^FS" 
'tx4$ = "^FO90,100^A0N,27^FD" & Text1 & "^FS" 
'tx5$ = "^XZ" 

'txu$ = tx1$+tx2$+tx3$+tx4$+tx5$
'PrWIN TX_N , 0, 0,txu$


artIde$="A200,5,0,3,1,1,N," + cAspa$ + Stc_Mst_Art$ + cAspa$ + spLin$
artNom$="A200,35,0,3,1,1,N," + cAspa$ + Stc_Mst_Nome1$ + cAspa$ + spLin$
artPvp$="A200,65,0,3,1,1,N," + cAspa$ + "PVP:"+ FrmNum$(4.2,Stc_Mst_Pv1) + taxa$ + cAspa$ + spLin$
artCba$="B220,95,0,E30,3,7,70,B,"+ cAspa$ +Stc_Mst_CodBar$+ cAspa$ + spLin$


vPrt$ = "[AUT]"
'vTpv$ = "T"
'vEnv$ = ""

'res = PrtEnv(vPrt$, "T", artIde$)
'res = PrtEnv(vPrt$, "T", artNom$)
'res = PrtEnv(vPrt$, "T", artPvp$)
'res = PrtEnv(vPrt$, "T", artCba$)
res = PrtEnv(vPrt$, "T", "Teste")
end sub


Sub EtqGr_Fim 'fim de listagem
PrWIN FP                                                    'fim de pagina
end sub


Sub EtqGr_Cba 'listar codigo de barras
'CBAR, px, py, tipo, alt, esp, texto	                    'sintaxe para codigo de barras
'- (61) --------------------------------------------------->'Comentario

cbDy = 7.0                                                  'altura das barras

cbDx1 = 0.3                                                'dimensao das barras (espessura) - estreitas
cbDx2 = 0.75                                                'dimensao das barras (espessura) - largas

px1   =  0.5                                                'posicao X - modo 1
px2   = 55.0                                                'posicao X - modo 2
py    = 17.0                                                'posicao Y


'modo 1 - melhor para barras largas
px = px1                                                    'posicao X
PrWin COR_E, 0                                              'cor de enchimento
PrWin GR_ME, 0                                              'modo de enchimento

PrWin CBAR_OPC, "[ESP=1]"                                   'opcoes para codigo de barras
'PrWin CBAR_OPC, "[ESP=2]"                                   'opcoes para codigo de barras
'PrWin CBAR_OPC, "[ESP=3]"                                   'opcoes para codigo de barras
'PrWin CBAR_OPC, "[ESP=5]"                                   'opcoes para codigo de barras

PrWin CBAR_MO, 2
PrWin CBAR,px1,py,"EAN13",cbDy,cbDx1,Stc_Mst_CodBar$
PrWIN TX_NP,px1,24,"N",Stc_Mst_CodBar$

'PrWin CBAR,px2,py,"EAN13",cbDy,cbDx2,Stc_Mst_CodBar$

'modo 2 - melhor para barras estreitas
'px = px1                                                    'posicao X
'py = py + 10.0                                              'posicao Y
'PrWin CBAR_MO, 2
'PrWin CBAR,px1,py,"EAN13",cbDy,cbDx1,Stc_Mst_CodBar$

'PrWin CBAR,px2,py,"EAN13",cbDy,cbDx2,Stc_Mst_CodBar$
end sub


##
