Ponto entrada > Módulo Supervisor > Tratamento standard AIMP3 

IMPRIME

Historicamente, o ponto de entrada IMPRIME foi criado por uma das primeiras versões X3. É chamado justo antes a escolha de impressora e permitem de inibir o registo da impressora se a variável GPE está diferente de 0.
Nas versões seguintes, este ponto de entrada foi conservado e pode servir a modificar os parâmetros de impressão contidos nos argumentos TBPAR e TBVAL do sub-programa IMPRIME. Estes argumentos correspondem aos parâmetros registados no ecrã do pedido de impressão.

Contexto e modo de funcionamento.

As seguintes tabelas estão em linha :

Tabela

Conteúdo significativo

Descr. Tabela

AREPORT [ARP]

Sim

Dicionário das listas

Os parâmetros são guardados na variável PARAMETRE aos índices 1 a NBPAR. Cada valor é uma cadeia da forma "parâmetro=valor" sem nenhum separador. Os parâmetros da lista são repartidos em 4 classes:

  • Aqueles que começam por um duplo "underscore". São os parâmetros com destino de X3, eles não são transmitidos à lista (ou tudo ou pelo menos não que tal)
  • Aqueles que começam por um simples "underscore". São parâmetros com destino de Crystal Reports, eles não são transmitidos ao estado. Os valores destes parâmetros são obrigatoriamente prefixados por chr$(1).
  • Aqueles que começam por X3 : Estes são os parâmetros de contexto transmitindo ao estado e inicializados automaticamente pelo supervisor.
  • Os que são descritos no dicionário das listas: Quando o dicionário comporta um parâmetro terminando por "deb" ou "str" um outro parâmetro da mesma raíz terminando por "fim" ou "end" é automaticamente acrescentado.

O nome do servidor de impressão não é um parâmetro. É definido na variável local SERVIDOR(char(30)).


Lista dos parâmetros :

__REPORT                          Nome da lista crystal reports

__DESTINATION                 1=pré-visualização, 2=impressora, 3=mensagem, 4=ficheiro

__TYPDBA                           Tipo de base de dados (menu local 23)

__DBSERVER                    Nome de ODBC

__DBDATABASE                     Nome da base de dados

__DBUSER                          Utilizador BDD

__DBPASSWORD             Palavra chave

__WSTATION    (*140)              Nº da porta para o servidor de impressão

__CDUSER         (*140)            Código utilizador

__APPLICATION                 Dossier ;máquina ;serviço (de onde se lança a impressão)

__APPRPT                          Dossier ;máquina ;service (de onde se encontra a lista)

__REQUETE                       Nº de pedido

 

_PreVisuOptions                 Opções de pré-visualização (não operacional)

_PrinterName                       Nome da impressora

_Orientation                          0=retrato, 1=paisagem

_PrinterDriver (*)                  Nome do driver impressora

_PrinterPort (*)                     Porta impressora

_PrinterDescription (*)        Características da impressão

_FormatExport                     Formato do ficheiro de exportação (menu local 91)

_FormatDelString                Delimitador de cadeia se formato CSV

_FormatDelRecord              Separador de campo se formato CSV

_ExportFile                           Nome do ficheiro exportado

 

X3DOS                                 Dossier ;máquina ;serviço;versão;língua (*140 versão + língua)

X3CLI                                    Razão social do cliente

X3EDT                                  Copyright editor

X3ETA                                  Código da lista

X3TIT                                    Nome da lista

X3USR          (*130)             Código utilizador

X3LAN         (*140)                Directório língua da lista

X3FCY       (*Géode)            Estabelecimento

X3DEP     (*Géode)              Depositante

X3OPE                                 Nome utilizador

X3SIT1          (*120)             Estabelecimentos autorizados

X3SIT2          (*120)             Estabelecimentos interditos

X3PRF          (*130)             Perfil função

X3FCT           (*130)             Função associada à lista

X3SIT            (*130)             Lista dos estabelecimentos interditos

(*)                   Estes parâmetros são dependentes da impressora e não podem ser descritos. São normalmente recuperados pela instrução selimp (fazer uma tentativa sobre uma impressora dada e notar os valores destes parâmetros).

(*120) Disponível em V110 e V120, não o será mais em V130

(*130) Disponível a partir da V130

 

Tabelas abertas

Apenas a tabela AREPORT contendo a lista em curso de impressão é significativa.

 

Exemplo de utilização

 

####################################################################

## Exemplo de utilização dos pontos de entrada do tratamento AIMP3

####################################################################

$ACTION

Case ACTION

When "IMPRIME" : Gosub IMPRIME

When "PARAM" : Gosub PARAM

Endcase

Return

$IMPRIME

If find([F:ARP]RPTCOD,"ETAT1","ETAT2","ETAT3") : # Lista das listas a tratar

GPE = 1 : # salta o registo da impressora

‏Endif

Return

$PARAM

####################################################################

##Os parâmetros estão contidos na variável PARAMETRE(1..NBPAR)

## mas os sub-programas GETPARAM e SETPARAM do TrT ETAT

## permitem aceder mais facilmente

####################################################################

Local Char XPARAM(250)(1..10) , XPAR(50) , XVAL(50) , XETAT(20)

Local Integer XNB , XK , XI

####################################################################

##A impressão foi pedida à impressora ?

####################################################################

Call GETPARAM("__DESTINATION",NBPAR,PARAMETRE,XVAL) From ETAT

If XVAL<>"1"

Return : # Não, então não se faz nada

‏Endif

####################################################################

## Determinação de impressora em função da lista

####################################################################

Call GETPARAM("X3ETA",NBPAR,PARAMETRE,XETAT) From ETAT

Case XETAT

When "ETAT1" : XIMP = "mon_imprimante"

When "ETAT2" : XIMP = "laser_spéciale"

When "ETAT3" : XIMP = "matricielle_à_pédale"

When Default: Return

Endcase

####################################################################

## Afetação do servidor impressora

####################################################################

SERVEUR = "la_machine_qui_imprime"

####################################################################

## Recuperação dos parâmetros por defeito de impressora

####################################################################

XNB = 0

XNB += 1 : XPARAM(XNB) = "_PrinterName=" + chr$(1) + XIMP : # Nome da impressora a afetar

XNB += 1 : XPARAM(XNB) = "_Orientation=" + chr$(1) + "1" : # Modo paisagem

XNB += 1 : XPARAM(XNB) = "_NoVisible=" + chr$(1) + "1" : # Sem registo

Selimp XPARAM = "" With XPARAM(1..XNB) : # Leitura dos parâmetros por defeito

XNB = stat1

For XI=1 To XNB

XK = instr(1,XPARAM(XI),"=")

If XK

XPAR = left$(XPARAM(XI),XK-1)

XVAL = right$(XPARAM(XI),XK+1)

# Se se não pretende os parâmetros por defeito

# pode-se igualmente o reafectar aqui

# If XPAR="_PrinterPort" : XVAL = "mon_port" : ‏Endif

Check box XPAR

When "_PrinterName" , "_PrinterDriver" , "_PrinterPort"

& , "_PrinterDescription" , "_Orientation"

Call SETPARAM(XPAR,NBPAR,PARAMETRE,XVAL) From ETAT

Endcase

‏Endif

Next XI

Return

PARAM

O ponto de entrada PARAM permite modificar não importa qua parâmetro da lista

Contexto e modo de funcionamento.

As seguintes tabelas estão em linha :

Tabela

Conteúdo significativo

Descr. Tabela

AREPORT [ARP]

Sim

Dicionário das listas

Este ponto de entrada está situado após a afectação das variáveis NBPAR e PARAMETRES e justo antes a acção EXEC.

Ver descrição das variáveis NBPAR e PARAMETRES no ponto de entrada IMPRIME.

TRANSFERÊNCIA

O ponto de entrada REPORT permite lançar um tratamento após a impressão da lista. Este ponto de entrada está executado após a ordem de impressão enviada ao cliente (ou ao servidor). No caso de uma impressão/ficheiro, pode servir a lançar um tratamento sobre o ficheiro gerado ...

Contexto e modo de funcionamento.

As seguintes tabelas estão em linha :

Tabela

Conteúdo significativo

Descr. Tabela

AREPORT [ARP]

Sim

Dicionário das listas

Este ponto de entrada está executado após impressão exactamente a seguir a ordem "Transferência"

O nome da lista utilizada está na variável [F:ARP]CRYCOD(R), R sendo o índice corrente no anel For R=0 to dim([F:ARP]CRYCOD)-1.

FILPAT : Gestão dos fins de impressão

O ponto de entrada FILPAT permite recuperar a variável GFILPATH antes que ela seja inicializada justo após chamada do workflow de envio da lista por mail ou do tratamento da lista pela função de arquivo.

Contexto e modo de funcionamento.

As seguintes tabelas estão em linha :

Tabela

Conteúdo significativo

Descr. Tabela

AREPORT [ARP]

Sim

Dicionário das listas

Este ponto de entrada está executado antes o envio do workflow (tipo de impressão 3 - mensagem) e do procedimento de arquivo (tipo de impressão 7 - Arquivo)

RPTFIL : Ficheiros sobre servidores

O ponto de entrada RPTFIL permite de gerir o arquivo dos ficheiros em arquitetura multi-terceiros É um complemento do ponto de entrada ARCFIL.

Contexto e modo de funcionamento.

As seguintes tabelas estão em linha :

Tabela

Conteúdo significativo

Descr. Tabela

AREPORT [ARP]

Sim

Dicionário das listas

Este ponto de entrada está situado no anel de transferência dos ficheiros sobre o servidor X3.
O nome do ficheiro recuperado está na variável CHAINE e EXT contém a extensão do ficheiro.
A variável GPE posicionada a 1 permite desativar a cópia standard do ficheiro de impressão depois o servidor.

Exemplo de código

$ACTION

Case ACTION

    When "RPTFIL" : Gosub RPTFIL

    When "FILPAT" : Gosub FILPAT

 When Default

Endcase

Return

 

$RPTFIL

 #  Get the report file on the server

  If adxmac(0) <> "" & adxmac(0) <> adxmac(-1)

    rptfile STAT With CHAINE, adxmac(-1)+"@"+"C:\TEMP\"+CHAINE+"."+EXT Using SERVEUR
    Local Shortint G_APE_EXEC : G_APE_EXEC = 1
    GPE=1 : # To avoid executing the STD

‏Endif

Return

 

$FILPAT

# Put the proper file path

If dim(G_APE_EXEC)>0 & G_APE_EXEC=1

  Local Char WARCV1DIR(250)

  Call PARAML("","ARCV1DIR",WARCV1DIR) From ADOVAL

  GFILPATH = adxmac(-1)+"@"+filpath(WARCV1DIR,JOBID,EXT,"",adxmac(-1),"")

‏Endif

Return