Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 1. 1. 2013 11:29:37

tomas1334
Člen
Registrace: 1. 1. 2013
Příspěvků: 2

Vložení tlačítka s funkcí

Ahojte, mám dotaz.... jak vložím do formuláře tlačítko, které by po kliknutí zobrazilo další formulář?

Díky, Tomáš

Offline

#2 1. 1. 2013 20:18:11

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,950

Re: Vložení tlačítka s funkcí

Běžně se musí udělat jednoduché makro, které se tlačítkem spustí. Toto makro pak zavolá dialog, který je vlastně takovým "dalším" formulářem. Takhle můžete zavolat mnoho akcí.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 2. 1. 2013 09:02:15

tomas1334
Člen
Registrace: 1. 1. 2013
Příspěvků: 2

Re: Vložení tlačítka s funkcí

A jaké jsou příkazy pro to makro?....

Offline

#4 2. 1. 2013 09:39:06

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,950

Re: Vložení tlačítka s funkcí

Ono není tak úplně jasné, co myslíte tím dalším formulářem. Běžně se formulářem označují formulářové prvky, jako tlačítka, rolovací a jiné seznamy. To ale asi nebude to, co myslíte. Není logické vytvořit tlačítko, kterým budeme volat jiný prvek - (například jiná tlačítko, seznam ap.) - že?
   Takže se domnívám, že chcete volat například jinou sestavu, formulář, či podformulář, který jste dříve vytvořil (nebo databázi obecně). Nebo chcete volat dialog, který jste si předem vytvořil.
   Makra pro volání souborů popisuje Dan Sedláček a je tam i popis jak na dialogy, tedy pokud Vám nestačí to, co je v nápovědě. Výborný je také seriál od ing Pastierika.
   Do makra se zadá adresa a jméno souboru, který chcete otevřít. Makro nazvete například formulářX. Tlačítko potom vybavíte přiřazením tohoto makra k akci - stisknuté tlačítko myši a je to. Mimo toho stačí jen přepsat název tlačítka.
   Možná by v některých případech postačilo vytvoření klikačky - hypertextový odkaz.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 6. 1. 2013 00:34:11

Schinagl
Člen
Registrace: 14. 2. 2007
Příspěvků: 36

Re: Vložení tlačítka s funkcí

V Base nejde volat formuláře a sestavy odkazem, jako v Calku což je škoda. Ani z jiné aplikace jsem nenašel postup, jak vyvolat formulář v Base bez makra. Ve své aplikaci používám na volání formuláře a sestavy následující makra:

Sub OpenReport(sName) 
'Otevre nahled sestavy
   	oContexto = CreateUnoService("com.sun.star.sdb.DatabaseContext") 
   	oFonte = oContexto.getRegisteredObject("FAKTURY") 'registrovana databaze
   	oReports = oFonte.DatabaseDocument.ReportDocuments  
   	oAConnection = oFonte.getConnection("","") 

	dim pProp(1) as new com.sun.star.beans.PropertyValue 
	pProp(0).Name = "ActiveConnection" 
	pProp(0).Value = oAConnection 
	pProp(1).Name = "OpenMode" 
	pProp(1).Value = "open" 
	oReport = oReports.loadComponentFromURL(sName,"_blank",0,pProp()) 'nahled sestavy
end sub
Sub OpenForm(sName)
'Otevre formular
   oContexto = CreateUnoService("com.sun.star.sdb.DatabaseContext") 
   oFonte = oContexto.getRegisteredObject("FAKTURY") 
   oForms = oFonte.DatabaseDocument.FormDocuments 
   oAConnection = oFonte.getConnection("","") 

   Dim pProp(1) As New com.sun.star.beans.PropertyValue 
   pProp(0).Name = "ActiveConnection" 
   pProp(0).Value = oAConnection 
   pProp(1).Name = "OpenMode" 
   pProp(1).Value = "open" 

   oForm = oForms.loadComponentFromURL(sName, "_blank", 0, pProp())
End Sub

Databáze musí být zaregistrovaná a při volání procedury se za sName dosadí jméno formuláře (sestavy). Pokud formuláře organizujete do skupin (adresářů), tak musí být dosazena kompletní cesta. Pozor, původní formulář, do kterého se vrátíte po zavření volaného formuláře je nejprve potřeba obnovit před dalším zpracováním dat.

Offline

#6 6. 1. 2013 07:30:16

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,950

Re: Vložení tlačítka s funkcí

Já se nedomnívám, že by nešel klikačkou zavolat registrovaný soubor. Podle mne by měly jít zavolat nejméně soubory txt - tedy spíš csv. Samozřejmě je to můj dojem. Je možné, že nelze otevírat právě ty soubory, které jsou aktivně načteny v Base.
   Jenže vím jistě, že když mám registrovaný Calc v Base, tak s ním můžu normálně pracovat a volat ho pomocí open, nebo normálně aniž bych ho musel otevírat v Base. (Zcela běžný je opačný postup - v Calcu zobrazujeme registrované soubory Base - například výlučně pro ovládací prvky.)
   Podle mne by to šlo. Když je soubor v Base již načten, tak zase není důvod znovu ho otevírat. Stačí jen přímo v Base přepínat, nebo se vytvoří sestava, která spojí do jednoho dva původní formuláře. No a tlačítkem by neměl být problém zavolat například Calc s obsahem nejaké registrované databáze. Když zvolíme "klikačku" tak můžeme v dialogu klikačky navolit "tlačítko". V tomto směru to jsou téměř ekvivalenty. Tedy tlačítku můžeme přidělit ještě jiné další akce podle event( - události).

Editoval neutr (6. 1. 2013 07:32:43)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 6. 1. 2013 22:08:33

Schinagl
Člen
Registrace: 14. 2. 2007
Příspěvků: 36

Re: Vložení tlačítka s funkcí

Pokud se jedná o Calc, tak můžete odkazovat na vnitřní tabulky nebo externí soubory i jiné aplikace dle libosti. Ale pokud se budeme bavit o aplikaci sestavené jen v Base - formuláře, tiskové sestavy, dotazy a tabulky v jednom souboru .odb, tak tam nejde nadefinovat odkaz na nitřní formuláře a sestavy a ani z Calcu nelze udělat odkaz na tyto části. Je to možné jen makrem.

Offline

Zápatí