luizcarlos18rj
(usa Suse)
Enviado em 25/08/2014 - 10:05h
Oi galera...
Na trabalhosa tentativa de migrar sistemas de cadastros do MsAccess para o Libreoffice basic de dei de frente com os seguintes problemas:
- Ao criar uma macro para abrir um relatório, o mesmo fica "Ad Eternum", processa e nunca abre;
- Estranhamente se previamente eu abrir com duplo click no bd o objeto relatório, uma vez aberto e fechado, a macro funciona normalmente, ela consegue através do evento onclick do botão de pressão abrir o mesmo, mas se eu executar o banco na primeira vez e for direto pressionar o botão, tenta, tenta, tenta abrir e nunca que consegue.
Segue dois códigos diferentes para realizarem a mesma ação ( mas ambos não funcionam a contento):
rem-------------------------------------------------------------------------
`Função apra abrir qualquer relatório
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
rem-------------------------------------------------------------------------
`Função para abrir já um relatório específico
sub OpenReport_rel_microcomputadores( oEv as variant )
sReportName="rel_microcomputadores" ' Nome do Report
OpenReport( getReportsTC, getConnectionTC, sReportName )
end sub
rem-------------------------------------------------------------------------
Código 2
rem-------------------------------------------------------------------------
Function OpenReport( formContainer as variant, oConnection as variant, sFormName as string, optional strMode as string ) as variant
Dim aProp(1) As New com.sun.star.beans.PropertyValue
dim openMode as string
if ismissing( strMode ) then
openMode = "open"
else
openMode = strMode
endif
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = strMode
OpenReport = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())
End Function
rem-------------------------------------------------------------------------
Alguém sabe porque isso pode estar acontecendo?
Minha versão do Libre é pt-br Versão: 4.2.5.2