Szám kiíratása szövegként

Makró készítés, parancsfájl írás és az API használata
machobymb
Hozzászólások: 21
Csatlakozott: 2012. május 30., szerda 12:48

Szám kiíratása szövegként

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

Sziasztok!

Writer-ben szeretném egy számított mező tartalmát kiíratni szövegként, mint Calc-ban a NumberText, MoneyText. Van erre lehetőség?

Üdv:
Laci
LibreOffice 6.1.0 - Debian testing
LibreOffice 6.1.0 - Windows 7 / Windows 8.1 / Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Nem néztem még a nálam telepített hordozható 6.1.0-ban, hogy valóban benne van-e, de ígérték, hogy a 6.1.0-ban már benne lesz a funkció:
http://libreoffice.hu/10-ft-azaz-tiz-fo ... matikusan/

De itt is jelzik, hogy a writerben is használható a kiterjesztés, "G" (Graphite) típusú fonttal együtt működhet:
https://extensions.libreoffice.org/exte ... mbertext-1
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
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Sajnos az első link alatti videó is csak azt mutatja, hogy hogyan MŰKÖDIK a dolog, de az nem, hogy hogyan kell létrehozni a szám- szöveg "értékpárt"... Viszont ott a hír alatt a hír közzétevőjétől megkérdezheted: hátha tudja...
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].
machobymb
Hozzászólások: 21
Csatlakozott: 2012. május 30., szerda 12:48

Re: Szám kiíratása szövegként

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

Nekem ráadásul Ariel betűtípusú szöveggel kell, hogy menjen (tudtommal az nem Graphite), mert egy munkahelyi sablonban ez van beállítva.
LibreOffice 6.1.0 - Debian testing
LibreOffice 6.1.0 - Windows 7 / Windows 8.1 / Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Hát... azt írta, hogy graphite kell... Az Arial-lal valószínűleg nem fog menni. De én a másikkal sem tudom működésre bírni egyelőre.

Én ilyenkor az alábbi irányok egyikébe szoktam elindulni:
- Megcsinálom abban az applikációban a dokumentumot, amiben rendelkezésre áll a funkció.
- Barkácsolok hozzá saját makrót.
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
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Itt egy próbálkozás makróval:
Numbertext Writerben.odt
(26.29 KiB) Letöltve 331 alkalommal.
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
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Kicsit továbbfejlesztve:
Numbertext Writerben2.odt
(29.62 KiB) Letöltve 305 alkalommal.
Most így néz ki a makró:

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

REM  *****  BASIC  *****

Option Explicit

Sub KeyPressed(Event As Object)
	IF Event.KeyCode <> 1280 THEN Exit Sub
 
 Dim oDoc as object
 Dim sNum, sText, sName as string
 Dim oForm, oCtrl, oFuncAcc as object
 Dim aPassedArray as variant
 Dim oUserDefProp as object
 	
	oDoc = ThisComponent
	oCtrl = Event.Source.Model
	sNum = oCtrl.Text	 
	oForm = oCtrl.Parent
	oFuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
	aPassedArray = Array(sNum,"hu-HU")
	sText = oFuncAcc.callFunction("NUMBERTEXT", aPassedArray)
	oForm.getByName("txtOutput").Text = stext
	
	sName = "Mezo01_Szov"
	aPassedArray = Array(sNum,"HUF","hu-HU")
	sText = oFuncAcc.callFunction("MONEYTEXT", aPassedArray)
	oUserDefProp = oDoc.DocumentProperties.UserDefinedProperties
	oUserDefProp.setPropertyValue(sName,sText)
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
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Természetesen külső indítással bármilyen mezőnek az értékét ki tudod így szöveggel íratni, akár egyetlenegy, akár több darabról van szó. Vagy a mezők névgenerálását kell úgy irányítani, hogy a makróval meg tudd állapítani mely párok tartoznak össze ("Szoveg1" - Szam1"; "Szoveg2" - "Szam2"), vagy az összes névpárt hard-kódolnod kell a makróba. A gondot csak a makró indítása okozza: gombot kell feltenned a dokumentum felületére, vagy gyorsbillentyűt kell használnod, vagy saját menüpontot... és nem szabad megfeledkezned, hogy a megfelelő időben meg is nyomd/rákattints. Esetleg mentési, betöltési, vagy egyéb programeseményhez is rendelheted a makrót, de a mező értékének a változásához én nem tudtam rendelni eddig.

A lényeg: hogy a NUMBERTEXT(), MONEYTEXT() függvény működésre bírható Writerben is, "Graphite" betűkészlet nélkül is. A többi már csak programozási tudás kérdése.
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].
machobymb
Hozzászólások: 21
Csatlakozott: 2012. május 30., szerda 12:48

Re: Szám kiíratása szövegként

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

Köszönöm a rengeteg belefektetett munkát. Mellékletként elküldöm, hogy mit szeretnék:
Beírom, hogy az első sorban lévő mezőbe (ledolgozott) mennyi napot dolgozik a dolgozó, majd kiszámítom a többi mező segítségével (ktavolsag, kkmdij, kodavissza, kledolgozott = ledolgozott), hogy mennyi térítési díj jár neki (kkifiz), és ezt szövegesen (kkifizszov, formátumkód: @[NatNum12]0) is kiírja.

A dátum mező frissül automatikusan, a többi F9-re sajnos nem. Meg azt tapasztaltam, hogy ha beállítom a térítési díj mező mezőre a számítást, akkor utána legközelebb az értéket látom csak, nem látom a képletet. Ez miért van vajon?
Csatolmányok
Mezo-numbertext-writer.odt
(27.44 KiB) Letöltve 332 alkalommal.
LibreOffice 6.1.0 - Debian testing
LibreOffice 6.1.0 - Windows 7 / Windows 8.1 / Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

Ha a valódi dokumentumod ettől nem sokkal bonyolultabb (értem ezalatt, hogy túl sok strukturált szöveg nincs benne), akkor a Calc-kal történő megvalósítást ajánlom elsősorban. Tudsz beírni egyszerűbb szövegeket és számokat, és sokkal jobban számol, mint a Writer. És még a NUMBERTEXT(), MONEYTEXT() függvény is működik benne. Csak azt kell meggondolni, hogy hogyan oszd fel a cellákat. Én az ilyen esetekben 0,75 cm széles oszlopokat csinálok, és ahol szélesebb hely kell, ott összevonok több cellát. Így a szövegeket, számokat 0,75 cm osztásközzel ("tabulátorral") tudom elrendezni.
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].
machobymb
Hozzászólások: 21
Csatlakozott: 2012. május 30., szerda 12:48

Re: Szám kiíratása szövegként

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

A dokumentum nem sokkal bonyolultabb ennél, de később is szeretnék más dokumentumokat is hasonlóan megcsinálni, amiket eddig Microsoft-os Word-ben használtunk a munkahelyen, hogy egyszer csak ki tudjuk váltani, mivel előbb-utóbb szükség lesz rá, mivel nem vásárolhatunk és előbb-utóbb fontos lenne a "kifehérítés". Ehhez az általam használtakat megcsinálnám, de avége lehet, hogy az lesz hogy web-es alkalmazást írunk PHP-ban és template-ekkel kiváltjuk, vagy lesz új munkaidő nyilvántartó, amiből csak nyomtatni kell. De gondolkozok Java programon is, amennyiben a jelenlegi Writer-rel még kompatibilis a jOpenDocument kiegészítő (mezőket generálni, majd Java programon keresztül elérni).
LibreOffice 6.1.0 - Debian testing
LibreOffice 6.1.0 - Windows 7 / Windows 8.1 / Windows 10
Avatar
Zizi64
Globális moderátorok
Hozzászólások: 4031
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Szám kiíratása szövegként

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

szeretnék más dokumentumokat is hasonlóan megcsinálni, amiket eddig Microsoft-os Word-ben használtunk a munkahelyen,
Mi régen a kalibrálási bizonyítványainkat készítettük Word-del (még a Word 6-os verzióval). A hozzá kapcsolódó számítások Excel 5-ben voltak kidolgozva. A bizonyítvány formázottan tartalmazta a kalibrált műszer és az etalonok adatait, a kalibrálás körülményeit, egyéb hivatalos adatokat normál szöveges formában; valamint a mérések (a kalibrálás) adatait táblázatos formában.
Aztán váltottunk: - akkor még OpenOffice-ra - de most már nagyon régen LibreOffice-szal dolgozunk.

A táblázatot eredetileg az Excel számításokból másolással emeltük át a szövegszerkesztőbe. De a munka jelentős részét a táblázatkezelőben kellett elvégezni: bevinni a mérési adatokat, megadni az éppen használt etalonok pontossági adatait, stb. Egy idő után rájöttem, hogy azt a minimális formázott szöveget be tudom vinni a Calc-ba is. Egy ilyen 3-4 oldalas dokumentumból egy oldal a megrendelés adatait, egy oldal az etalonok adatait és a kalibrálás körülményeit, egy oldal a kalibrálás táblázatos eredményeit, és egy opcionális oldal a kalibrálás adatainak grafikonon ábrázolt adatait tartalmazza.
Sőt: automatizálni (makrózni) is tudtam a szöveges jellegű adatok bevitelét adatbázis jellegű adathalmazokból - úgy a Vevőink, mint a kalibráló etalonjaink adataiból - a számításokat és adatformázásokat pedig - amit a Calc másik munkalapjain elvégzünk -, egyszerű hivatkozással juttatjuk a kinyomtatandó "végeredmény" (bizonyítvány) lapra. (A formázások alatt a számok tizedesjegyeinek megfelelő beállítását értem, amely tulajdonságot úgy tudtuk hivatkozni, hogy a számítások végén megfelelő tizedesjegyszámú szöveges adatokká konvertáljuk (dinamikusan, esetenként változó tizedesjegy számmal) a számokat, és annak az eredményét hivatkozzuk a fő lapon. Még a grafikon opcionális megjelenését/eltüntetését is makróval oldottam meg.)

Tehát, az a tény, hogy 3-4 álló A4-es lapon kvázi szöveges dokumentumot kell kinyomtatnom EREDMÉNYként, nem akadályozott meg abban, hogy ne a Szövegszerkesztőt, hanem egy másik alkalmazást (a Calc-ot) használjam hozzá. Ehhez még hozzászerkesztettem egy nyilvántartó makrórendszert is, illetve a Vevők és Etalonok adatainak karbantartó rutinjait is. Mindezt úgy, hogy a valódi ADATBÁZIS kezeléshez egyáltalán nem értek, és nem tudom használni Base-t.

Csupán arra a feltételezésre építettem az ötletet, hogy a CALC sokkal jobban tud szöveget formázni, mint amennyire a WRITER számolni tud.
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].
Válasz küldése