[Megoldva]Adatbázis tartomány - név és nyomtatási tartomány

Táblázatkezelő
Avatar
editor
Önkéntesek
Hozzászólások: 259
Csatlakozott: 2011. augusztus 3., szerda 8:36

[Megoldva]Adatbázis tartomány - név és nyomtatási tartomány

Hozzászólás Szerző: editor »

Egy Calc táblázatba beletettem egy lekérdezés eredményét úgy, hogy az F4 adatforrás listában egy adatbázisból egy lekérdezést egyszerűen belehúztam egy cellába. Ha átmegyek az adatbázisba, és megváltoztatom a lekérdezést, majd Adatok / Tartomány frissítését végzek, akkor látom, hogy a kapcsolat élő, és a navigátorban megjelent egy adatbázis tartomány Importálás1 (2, 3, stb.) néven. Természetesen ennek a tartománynak változó a kiterjedése, a lekérdezés eredményének megfelelően.

Szeretném, ha nyomtatáskor (pdf generáláskor) csak ez a tartomány lenne kinyomtatva. Vajon van erre mód, vagy nyomtatási tartományt csak közvetlenül, a tartomány fizikai cellacímeinek beírásával lehet megadni?
 Szerkesztett: Sok segítséget kaptam itt is, és az angol fórumon is a témában. A makró alapú megoldásokhoz még időre van szükségem, a többit igyekszem majd összefoglalni példa-dokumentumban. Addig is szerintem megoldottnak tekinthető, köszönet a segítségért. 
A hozzászólást 1 alkalommal szerkesztették, utoljára editor 2012. augusztus 22., szerda 17:14-kor.
Libre Office Verzió: 6.2.3.2. Windows 8.1 Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Adatbázis tartomány - név és nyomtatási tartomány

Hozzászólás Szerző: Zizi64 »

A nyomtatási tartományt munkalaponként lehet meghatározni. Alapértelmezésben az egész lapot nyomtatja, ismétlődő (táblázatfejléc-) sorok és oszlopok nélkül.
Ezt a beállítást munkalaponként a "Formátum - Nyomtatási tartomány - Szerkesztés menüpont alatt tudod tételesen, és cellatartomány közvetlen beírásával módosítani.
nyomtatandó.png

Ha csak egy bizonyos PDF export, vagy nyomtatás idejére kell módosítanod, akkor a makrós megoldás jöhet szóba.

Kód: Egész kijelölése

sub nyomtatando
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame

dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:EditPrintArea", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "PrintArea"
args2(0).Value = "$b$2:$c$3"
args2(1).Name = "PrintRepeatRow"
args2(1).Value = ""
args2(2).Name = "PrintRepeatCol"
args2(2).Value = ""

dispatcher.executeDispatch(document, ".uno:ChangePrintArea", "", 0, args2())
Nyilván ezt kombinálnod kell az összes többi munkalap ideiglenes átállításával, a PDF export, vagy nyomtatás parancsaival és a nyomtatási tartomány visszaállítás-parancsaival...

Gondolom, a kezdő cella pozíciója állandó, a jobb alsó nem üres cella pozíciója pedig meghatározható makróval.
Így a mindenkori nyomtatandó tartomány kiszámolható, és átadható a beállító rutinnak.
(ha egyéb adat nincs a munkalapon!)
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
editor
Önkéntesek
Hozzászólások: 259
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Adatbázis tartomány - név és nyomtatási tartomány

Hozzászólás Szerző: editor »

Köszönöm szépen, ezt elteszem a többi makrós válaszod közé. Most nem tudok vele mit kezdeni, de eljön még az idő, mikor ezek nagy segítségemre lesznek. Villeroy írja valahol, hogy gyakorlott és képzett usernek kb. 1 hónap intenzív gyakorlásra van szüksége ahhoz, hogy otthonosan mozogjon a makrók közt, ahhoz, hogy rendesen feladatokat oldjon meg, ennél is több.

A nyomtatási tartomány és az ismétlődő sorok / oszlopok kézi beállítása funkciót már használom, és ezek szerint amit kerestem, vagyis névvel ellátott tartomány megnevezése nyomtatási tartományként, az nem fog menni. Pedig láttam egy funkciót, ami nagyon ígéretesnek tűnt, de nem azt csinálta.
Libre Office Verzió: 6.2.3.2. Windows 8.1 Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4084
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Adatbázis tartomány - név és nyomtatási tartomány

Hozzászólás Szerző: Zizi64 »

Ha igazán a saját szájízed szerint szeretnéd használni a Calc-ot (és a többi alkalmazást), akkor érdemes belefogni a makróprogramozás elsajátításába. Akkor nem kell folyton arra várnod, hogy majd valaki megvalósítja helyetted, azt, amit te akarsz...

A konkrét feladattal rokon topikok:

http://user.services.openoffice.org/en/ ... 20&t=55080

http://www.oooforum.org/forum/viewtopic.phtml?t=101903
http://user.services.openoffice.org/en/ ... =9&t=42271


Itt egy példa egyféle megvalósításra. Nyilván én se látom pontosan, hogy mik a kiindulóadatok, és mi lenne az elfogadható eredmény. A példa egyszerű névvel ellátott cellák alapján jelöli ki a munkalap nyomtatási tartományát. A változóneveket magyarítottam a kódban, hogy jobban elkülönüljenek a parancsoktól...

nyomtatandó.ods
(13.41 KiB) Letöltve 142 alkalommal.

Kód: Egész kijelölése

Sub NyomtTartBeall

Munkalapom = ThisComponent.Sheets.getByName("Munkalap1")
NevekHelye =ThisComponent.NamedRanges.getByName("Tartománynév")
NevHelyTartomanya = NevekHelye.getReferredCells()
NevekCellaja = NevHelyTartomanya.getCellByPosition(0,0)
CimSzovege = NevekCellaja.getString()

NevezettTartomany = Munkalapom.getCellRangeByName(CimSzovege)
NevezTartCime = NevezettTartomany.getRangeAddress()
Munkalapom.setPrintAreas(Array(NevezTartCime))

End sub
Sok sikert!
Kovács Tibor (W10x64Pro/W7x64P: 7.5.8;
winPenPack/PortableApps: LO3.3.1-7.6.2, AOO4.1.14
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének szerkesztésével. Írd elé: [Megoldva].
Avatar
editor
Önkéntesek
Hozzászólások: 259
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Adatbázis tartomány - név és nyomtatási tartomány

Hozzászólás Szerző: editor »

Ezt nagyon köszönöm, hogy ilyen gyorsan elkészítetted. Elnézésedet kérem, hogy most nem tudom végignézni, pillanatnyilag le is vannak tiltva a makróim, egy nyugodtabb órában átnézem. Nagyon sokat kapok és tanulok a válaszaidból, köszönöm.
Libre Office Verzió: 6.2.3.2. Windows 8.1 Windows 10
Válasz küldése