Pergunte aqui
0

Botão imprimir registro no base

perguntadas 2013-04-02 23:24:20 +0200

imagem do gravatar de carloskh

Queria abrir relatórios diretamente do formulário por um botão "Imprirmir Registro" é possível como?

no caso este formulário chama um relatório que só imprime o conteúdo do registro atual, e não da base toda. este relatório será um relatório personalizado.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2015-05-16 03:30:41 +0200

imagem do gravatar de LuizCarlos18RJ

updated 2015-05-16 03:34:18 +0200

Tem como fazer isso sim...

Vc deve criar o form dentro dele uma combobox ou controle onde terá o critério que defina um valor a ser filtrado, e também inserir um subform com uma grid (controle de tabela ) baseado numa consulta onde esse "critério" irá filtrar os registros exibidos, aí uma vez que vc selecione um valor na combo e a grid exiba os resultados da consulta, vc pode criar um botão com uma instrução de abrir relatório baseado nessa consulta.

Na prática vc vai abrir o form escolher um filtro para consulta através da combo e ao imprimir o relatório, ele se baseará na consulta já filtrada.

Segue a macro, adapte a sua necessidade...

Sub filtrar  'nome da macro

Declaração de variáveis

Dim Form1, SubForm_1, oConsulta, cmb_combo, cons_subtab, As Object, sSQL As String 

'Associar controles dos forms ( principal e subform ) as varáveis

' Nome do form principal
Set Form1=Forms("frm_principal")

' Trata o subform como um controle (nome do subform ) 
Set SubForm_1 = Form1.Controls("Subform") 

 ' declara a grid (controle de tabela ) que fica dentro do subform
Set cons_subtab = SubForm_1.form.Controls("Controle_de_tabela_1")

 ' declara o controle combobox do form principal
Set cmb_combo=Form1.Controls("cmb_principal")

 ' declara a consulta que será a origem dos dados do grid ( controle de tabela ) do subform associado ao form principal
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("cons_subtab_pesquisa")


'filtra a consulta pelo valor do campo do registro selecionado na combobox e mais a frente atualiza o form
sSQL = "SELECT FROM `tab_minha tabela` WHERE `meu_campo` =  (' " & cmb_combo.Value & " ');" 


' executa ainstrução SQL
RunSQL(sSQL) 

 ' após a atualização a combo fica em branco para uma nova operação se desejável
cmb_combo.Value=""

 ' Atualiza o formulário e seus controles
Form1.Requery

macro para configurar aberturas de relatórios:

REM Macro generica para abrir qualquer report ( relatótio )

function getConnectionTC() as variant
getConnectionTC = thisComponent.Drawpage.Forms(0).ActiveConnection
end function

function OpenReport( reportContainer as variant, oConnection as variant, sReportName as string) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"
OpenReport=reportContainer.loadComponentFromURL(sReportName,"_blank",0,aProp())
end function

function getReportsTC() as variant
getReportsTC = thisComponent.Parent.getReportDocuments
end function

Macro para abrir o relatório específico

sub OpenReport_rel_licenca_sw( oEv as variant )
sReportName="rel_licenca_sw" ' Mude aqui o nome do seu Report
OpenReport( getReportsTC, getConnectionTC, sReportName )
end sub

Espero ter ajudado

editar assinalar como ofensivo Excluir Link mais

Comentários

Nessas instruções vc abre o relatório (visualiza), uma vez aberto vc imprime manualmente

imagem do gravatar de LuizCarlos18RJLuizCarlos18RJ ( 2015-05-16 03:31:35 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

Estatísticas

Perguntadas: 2013-04-02 23:24:20 +0200

Lidas: 758 vezes

Última atualização: May 16 '15