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

#1 9. 3. 2015 10:37:31

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Funkční odkaz na soubor - VYŘEŠENO

Zdravím všechny

Opět jsem při vytváření databáze narazil na jeden problém, se kterým si nevím rady. Jak lze do tabulky databáze uložit funkční odkaz na soubor (Tedy např. C:\data\pdf\soubor.pdf) Když říkám funkční, tak tím myslím to, že po zobrazení v databázi na odkaz zaklepu a tím dám najevo Windowsům že mají spustit Acrobat a soubor zobrazit. Stejně tak mám problém i s vlastním uložením cesty do databáze. Base má sice jeden z prvků formuláře pro výběr souboru, ale tento prvek ve vlastnostech nemá záložku data, nelze mu tedy přiřadit datové pole,se kterým má být propojen. To je ale už ta poslední překážka. V nejhorším případě bych text z tohoto prvku do textového pole překopíroval pomocí CTRL+C a CTRL+V - (nepohodlné, ale řešitelné). Ale co s tím spouštěním po zaklepání ??

Díky za radu

Editoval hdplot (15. 3. 2015 09:13:47)

Offline

#2 9. 3. 2015 10:53:51

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

Re: Funkční odkaz na soubor - VYŘEŠENO

Takhle to asi není správně. Do databáze se vkládají jenom textové řetšzce. Vy chcete aby to byl hypertextový odkaz. K tomu potřebujete makro. K makru přiřadíte například pomocí SQL URL a kliknete na tlačítko.
     Tohle si uděláte pomocí formuláře. Podobně by to bylo s klasickým hypertextovým odkazem. Ale je to vcelku jedno. Nějaký ovládací prvek a k němu makro s SQL dotazem.
     V databázi můžete mít přímo formát hypertextového odkazu který nakopírujete například do Calcu kde se z něho udělá klasická klikačka. Možností je určitě více.



PS : Šlo by to udělat také jako makro spouštěné pomocí klávesové zkratky. To by se Vašemu požadavku podobalo nejvíce.

Editoval neutr (9. 3. 2015 10:58:48)


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 9. 3. 2015 11:23:33

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Re: Funkční odkaz na soubor - VYŘEŠENO

Ok tak tedy pro spuštění odkazu makro. Ještě jsem žádné nedělal, takže budu pátrat a kdybych neuspěl, tak se ozvu znovu. A co to zadání textového řetězce do databáze. Skutečně ovládací prvek formuláře pro výběr souboru nemá propojení na pole (to že chybí záložka Data) takže tam bude dodatečný zásah uživatele (kopírování pomocí schránky) nebo mám někde něco špatně nastavené ?

Offline

#4 9. 3. 2015 12:03:34

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

Re: Funkční odkaz na soubor - VYŘEŠENO

Zvolíte například pole se seznamem a propojíte s databází - url. Pak tomu přiřadíte makro. Klasicky nemůže mít ovládací prvek 'jmenné' propojení. Jsou to obecné prvky - nejsou jenom pro databáze. Nejčastěji se používají v dialogu - ten může být například v Calcu, Writeru a podobně. Ovládací prvky ale mohou fungovat i bez dialogu. Například tlačítko může být přimo v sešitě.


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 15. 3. 2015 09:13:23

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Re: Funkční odkaz na soubor - VYŘEŠENO

Takže je to vyřešené - použil jsem 2 makra.Moje řešení uvádím zde (snad se to bude někomu hodit)

Problém se rozpadá na dvě části:

1. načtení odkazu a jeho uložení do databáze. Na to používám ve formuláři dva prvky - prvek "Výběr souboru" s názvem "SetPath". Protože u tohoto prvku nelze nastavit propojení na databázi (nemá záložku Data), použil jsem druhý prvek "Textové pole" s názvem "TxtPath", které je propojené s příslušným polem databáze a zajišťuje uložení odkazu do databáze jako textový řetězec. Kopírování z "SetPath" do "TxtPath" zajišťuje následující makro, které je pověšené na prvku "SetPath" a jeho události "Text změněn" Také je možné obsah "TxtPath" ručně vymazat (tím vymažete obsah pole databáze) nebo editovat - tedy naplnit třeba přes CTRL+C a CTRL+V odkazem na internet, který získáte z IE.
Výše popisované makro je zde:

Sub Txt_From_SelFile_To_TxtField
dim oForm1, oForm2 as object
dim sPath as string
oForm1=ThisComponent.Drawpage.Forms.getByName("MainForm")
oForm2=oForm1.getByName("SubForm")
sPath=oForm1.getByName("SetPath").text 'Načte hodnotu odkazu z pole vyběru'
if sPath <> "" Then
  oForm2.getByName("TxtPath").text = sPath 'uloží tuto hodnotu do textového pole s vazbou na příslušné pole databáze'
  oForm2.getByName("TxtPath").commit 'uloží tuto hodnotu do databaze'
  oForm1.getByName("SetPath").text = "" 'vymaže text z hledání'
End If
End Sub

2. spuštění odkazu z databáze a otevření příslušného souboru (třeba PDF). Na to používám opět dva prvky. Prvek "Textové pole" (mohl by být tentýž jako v případě 1, ale protože na prohlížení a filtrování používám jiný formulář, jedná se také o jiný prvek) s názvem "Path". Ten je opět propojen na příslušné pole databáze a zajišťuje, že při vybrání příslušného záznamu je zobrazen správný odkaz. Druhým prvkem je tlačítko s názvem "Button_odkaz" které má činnost nastavenou na "Otevřít dokument/web stránku" a na události "Stisknuto tlačítko myši" má pověšeno následující makro.

Sub PathRun
dim oForm1, oForm2 as object
dim sPath as string
dim sPathRun as string
oForm1=ThisComponent.Drawpage.Forms.getByName("FiltrForm")
oForm2=oForm1.getByName("SubForm")
sPathRun=oForm2.getByName("Path").text 'Načte hodnotu odkazu z pole databáze'
oForm2.getByName("Button_odkaz").targeturl = sPathRun 'uloží tuto hodnotu do tlačítka - odkaz pro otevření URL'
End Sub

Offline

Zápatí