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.
As seguintes tabelas estão em linha :
Tabela | Conteúdo significativo | Descr. Tabela |
---|---|---|
AREPORT [ARP] | Sim |
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:
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 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
O ponto de entrada PARAM permite modificar não importa qua parâmetro da lista
As seguintes tabelas estão em linha :
Tabela | Conteúdo significativo | Descr. Tabela |
---|---|---|
AREPORT [ARP] | Sim |
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.
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 ...
As seguintes tabelas estão em linha :
Tabela | Conteúdo significativo | Descr. Tabela |
---|---|---|
AREPORT [ARP] | Sim |
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.
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.
As seguintes tabelas estão em linha :
Tabela | Conteúdo significativo | Descr. Tabela |
---|---|---|
AREPORT [ARP] | Sim |
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)
O ponto de entrada RPTFIL permite de gerir o arquivo dos ficheiros em arquitetura multi-terceiros É um complemento do ponto de entrada ARCFIL.
As seguintes tabelas estão em linha :
Tabela | Conteúdo significativo | Descr. Tabela |
---|---|---|
AREPORT [ARP] | Sim |
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