QR REPORT
QR REPORT ( {tabela ;} documento {; nomeMetodo}{; *} )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
tabela | Table | → | Tabela a utilizar para o relatório ou tabela por padrão se for omitido |
documento | Text | → | Documento de Relatório Rápido a carregar |
nomeMetodo | Text | → | Nome do mètodo a chamar |
* | Operador | → | Eliminação das caixas de diálogo de impressão |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
QR REPORT imprime um relatório para tabela, criado com o editor de relatórios rápidos . O editor de relatórios rápidos permite aos usuários criar seus próprios relatórios. Para maior informação sobre a criação de relatórios rápidos com a ajuda do editor de relatórios rápidos, consulte Relatórios rápidos ou Relatórios rápidos no Manual de Desenho de 4D.
Notas:
- O editor não aparece se a tabela tiver sido declarada “Invisível.”
- Quando o editor se chama utilizando o comando QR REPORT, a opção Todas as relações automáticas, que permite modificar o estado automático/manual das relações é ocultada. Isso permite ao desenvolvedor administrar ele mesmo esse estado utilizando os comandos SET AUTOMATIC RELATIONS e SET FIELD RELATION. Entretanto, lembre que as funcionalidades automáticas são desativadas quando as tabelas relacionadas são visualizadas em um formulário listado mostrado utilizando DISPLAY SELECTION, MODIFY SELECTION ou um subformulário. Ver Relações manuais e automáticas
- O editor é chamado em uma janela externa e não é possível utilizar o comando QR ON COMMAND neste contexto. No entanto, pode utilizar o parâmetro nomMetodo para executar código personalizado quando um comando de interface se ativa (ver abaixo).
O parâmetro documento é um documento de relatório que foi criado com o editor de relatórios rápidos e guardado em disco. O documento guarda as especificações do relatório, não os registros a imprimir. Se uma cadeia vazia ("") se passa em documento, QR REPORT mostra uma caixa de diálogo de abertura de arquivos, na qual o usuário pode selecionar o relatório a imprimir.
Se uma string vazia ("") for especificada para documento QR REPORT exibe uma caixa de diálogo Abrir Arquivo e o usuário pode selecionar o relatório a imprimir
Se o parâmetro documento especifica um documento que não existe (por exemplo, se passa Char(1) em documento), se mostra o editor de relatórios rápidos.
O parâmetro methodName atribui um método 4D project que será executado cada vez que o comando de gerenciamento de documento do editor Quick Report for chamado por um usuário clicando no botão. Usar este parâmetro é equivalente a usar QR ON COMMAND no contexto da janela editor de Quick Report (QR ON COMMAND só que funciona dentro do contexto de uma área incluída). Por exemplo pode usar este parâmetro para mudar o conjunto de caracteres usado pelo relatório rápido. O método methodName r4ecebe dois parâmetros:
Parameter | Type | Descrição | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$1 | Longint | Referência área | |||||||||||||||||||||
$2 | Longint | Número do comando selecionado. Para comparar com as constantes abaixo do tema QR Comandos (apenas eventos listados são compatíveis):
|
Nota: Se quiser compilar seu banco de dados, deve declarar os parâmetros $1 e $2 explicitamente como inteiros longos, mesmo se não os usar.
Se quiser executar o comando inicial escolhido pelo usuário, utilise a declaração abaixo no método nomeMetodo:
QR EXECUTE COMMAND($1;$2)
Se o parâmetro nomeMetodo for uma string vazia ("") ou se for omitido, nenhum método é chamado e a operação normal de QR REPORT é aplicada.
Depois de um relatório ter sido selecionado, as caixas de diálogo para impressão são exibidas, a não ser que o parâmetro * for especificado. Se o parâmetro for especificado, estas caixas de diálogo não são exibidas. O relatório é então impresso.
Se o editor de Relatório Rápido não estiver envolvido, a variável OK é estabelecida para 1 se um relatório for impresso, senão é estabelecido para 0 (zerl) (ou seja, se o usuário clicou Cancelar nas caixas de diálogo de impressão).
4D Server: este comando pdoe ser executado em 4D Server sem o framework de um procedimento armazenado. Neste contexto:
TEnha certeza que nenhuma caixa de diálogo apareça na máquina servidor (exceto por um pedido específico). Para fazer isso, é necessário chamar o comando com o parâmetro *.
A sintaxe que faz com que o editor de Relatório Rápido apareça não funciona com 4D Server; neste caso, a variável sistema OK é estabelecida como 0.
No caso de um problema relativo à impressão (falta de papel, impressora desconectada, etc) nenhuma mensagem de erro é gerada.
Exemplo 1
O exemplo a seguir permite ao usuário realizar uma pesquisa na tabela [Pessoas], e depois imprime automaticamente o relatório “Lista detalhada”:
QUERY([People])
If(OK=1)
QR REPORT([People];"Detailed Listing";*)
End if
Exemplo 2
O exemplo a seguir permite ao usuário realizar uma pesquisa na tabela [Pessoas], e depos selecionar o relatório a imprimir:
QUERY([People])
If(OK=1)
QR REPORT([People];"")
End if
Exemplo 3
O exemplo a seguir permite ao usuário realizar uma pesquisa na tabela [Pessoas], e depois mostra o editor de relatórios rápidos de maneira que o usuário possa desenhar, salvar, carregar e imprimir relatórios com ou sem o assistente:
QUERY([People])
If(OK=1)
QR REPORT([People];Char(1))
End if
Exemplo 4
Consulte o exemplo do comando SET FIELD RELATION.
Exemplo 5
Você deseja converter o conjunto de caracteres utilizado em um relatório rápido chamado utilizando QR REPORT em Mac Roman:
QR REPORT([MyTable];Char(1);"myCallbackMeth")
O método myCallbackMeth converte o relatório quando é gerado:
var $1;$2 : Integer
If($2=qr cmd generate) //Se geramos um relatório
var $myblob : Blob
var $path;$text : Text
var $type : Integer
QR EXECUTE COMMAND($1;$2) //execução do comando
QR GET DESTINATION($1;$type;$path) //recuperação do destino
If(($type=qr HTML file)|($type=qr text file))
DOCUMENT TO BLOB($path;$myblob)  //conversão do texto utilizando UTF-8
$text:=Convert to text($myblob;"UTF-8")
//uso do conjunto MacRoman
CONVERT FROM TEXT($text;"MacRoman";$myblob)
//Reenvio do relatório convertido
BLOB TO DOCUMENT($path;$myblob)
End if
Else //caso contrário, execução do comando
QR EXECUTE COMMAND($1;$2)
End if