Saltar para o conteúdo principal
Versão: Próximo

QR REPORT

QR REPORT ( {tabela ;} documento {; nomeMetodo}{; *} )

ParâmetroTipoDescrição
tabelaTableTabela a utilizar para o relatório ou tabela por padrão se for omitido
documentoTextDocumento de Relatório Rápido a carregar
nomeMetodoTextNome do mètodo a chamar
*OperadorEliminaçã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:

ParameterTypeDescrição
$1IntegerReferência área
$2IntegerNúmero do comando selecionado. Para comparar com as constantes abaixo do tema QR Comandos (apenas eventos listados são compatíveis):
ConstanteValorComentário
qr cmd generate2008uso do comando QR RUN recomendado
qr cmd open2001
qr cmd page setup2006
qr cmd print preview2007
qr cmd save2002
qr cmd save as2003

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

Ver também

PRINT LABEL
PRINT SELECTION
SET ALLOWED METHODS