[Megoldva] Copy-paste beleszakad

Szövegszerkesztő

[Megoldva] Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 7., szerda 11:05

Bár volt már róla szó, hogy nem a megfelelő megoldást választom (az OpenOffice tanácsadóknak az az álláspontja, hogy mindenki töltse le az OpenOffice-t, és használja azt, mert ingyenes. Ezzel szemben a valóság az, hogy szép számmal vannak emberek, akikkel együtt kell dolgozni, de nem hajlandók mást használni, mint Microsoft Office-t), sajnos nekem az adott körülményekhez kell megtalálnom a megoldásokat.

A helyzet a következő. Egy adott témakörről készül sok könyv. Sok ismétlődő adatelem van a dokumentumokban, ezeket az adatokat dokumentum tulajsonság mezőkbe írom bele. Mivel nem vagyok (még) képes a dokumentum tulajdonságokat dokumentumról dokumentumra másolni, azt tudom tenni, hogy készítek egy majdnem üres dokumentumot, amiben kitöltök minden (kb. 50) tulajdonságot. Aztán amikor kapok valakitől egy anyagot, amit ebbe bele kell építeni, jön a copy-paste.

Azt már tudom, hogy nem szeretjük a copy-paste-et, ezért a forrás dokumentumokban tartózkodunk minden csicsától. Nincsenek bennük képek, semmi olyan speciális objektum, amitől az ember összeomlást várna. Mégis, amikor megnyitom a tulajdonságokkal felruházott alapdokumentumot, és megpróbálom belepaste-elni a külső partnertől Wordben kapott anyagot, a paste megfagy, semmilyen életjelet nem mutat az OpenOffice.

Vajon mit lehetne tenni ezek ellen a fagyások ellen?

 Szerkesztett: Ezt az általam nyitott témát lezárom. Ugyan nincs megoldva az eredeti problémám (más programokból dolgokat copy-paste-tel Writerbe bemásolni), a "megoldás" az, hogy tartózkodom ettől. Ezer bajom származott abból, hogy a Word-ből átmásolt dolgok számomra (és a Libre Office számára) ismeretlen dolgokkal pakolták tele az anyagaimat, amelyek aztán a legváratlanabb helyzetekben elszálltak. Ha más nem, végig működött a dokumentum, mindent lehetett csinálni vele, csak a mail merge (ami az egésznek a célja volt) szállt el következetesen. Ma sem tudom, hogy konkrétan mi az a mérgező dolog, ami copy-paste-tel átjöhet, de a LibreOffice dokumentumaimban tartózkodom a Microsoft Office-ból való másolástól. Csak közvetve, vagy szövegként. Igen, fáj, hiányzik, jó lenne, ha le tudná kezelni, de nem tudja, együtt kell élni ezzel.

A speciális dokumentum tulajdonságok, felhasználói mezők használata külön téma, azt érdemes lesz folytatni, ha már a makróknál tartok. 
A hozzászólást 2 alkalommal szerkesztették, utoljára editor 2012. augusztus 22., szerda 16:39-kor.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 7., szerda 17:48

Mivel nem vagyok (még) képes a dokumentum tulajdonságokat dokumentumról dokumentumra másolni,


A "Fájl - Tulajdonságok" funkcióra gondolsz 'dokumentum tulajdonságok' alatt, vagy a Stílusokat akarod átemelni?

Ha a "Fájl - Tulajdonságok" funkcióra gondolsz, makróval ez is megoldható, szerintem...

Én ebben odáig jutottam (arra volt csak szükségem), hogy táblázatkezelőben jó néhány cella aktuális tartalmát egyetlen gombnyomással átmásolom a "Fájl - Tulajdonságok" funkció adatmezőibe.
(Ez arra kell nekem, hogy amikor a fájlkezelőmben az egérkurzort a fájlnév fölé húzom, akkor a számomra fontos adatokat megmutatja a fájl megnyitása nélkül.)



Mégis, amikor megnyitom a tulajdonságokkal felruházott alapdokumentumot, és megpróbálom belepaste-elni a külső partnertől Wordben kapott anyagot, a paste megfagy, semmilyen életjelet nem mutat az OpenOffice.
Vajon mit lehetne tenni ezek ellen a fagyások ellen?


1.: Idegen fájltípusból soha nem másolok át formázással együtt szöveget. A saját .odt dokumentumomban úgyis megvannak a saját stílusaim, azt majd ráhúzom a formázatlan szövegként beillesztett szövegrészekre.

2.: Nem fut valami vágólap-menedzselő program a gépeden? Olyannal már találkoztam itt a fórumon, hogy azzal akadt össze Libre (pontosabban: akkor még OOo)

3.: Konkrétebb segítséget valószínűleg csak konkrét példafájlok megvizsgálása után tud adni bárki is... (valami semleges adatokat tartalmazó fájlokat kellene feltöltened ide, amelyeknél nálad előfordul ez a hiba...)
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 7., szerda 18:45

1) Igen, a "Fájl - Tulajdonságok"-ra gondolok. Ezeket a mezőket nagyon eredményesen használom fel az anyagaimban - ha már egyszer kitöltöttem őket. Most arra keresem a megoldást, hogy egyik dokumentum tulajdonságmezőit át tudjam másolni valahogy egy másik dokumentumba. Meg azt, hogy ha adatbázisból jönnek mezők, azokat be tudjam tenni Writer dokumentum tulajdonságmezőkbe.

Erre azért van szükségem, hogy jobban együtt tudjak működni másokkal. Ha egy adatbázissal integrált szövegszerkesztő file-om van, azt kevés eséllyel adhatom át másnak, hogy tovább tudjon dolgozni rajta, de a dokumentum egyéni tulajdonságokat, amiket létrehozok Writerben, még a Word is tudja kezelni, és nem kell hozzá speciális ismeretekkel rendelkező felhasználó.


2) Copy - paste. Szomorúság. A Windows / Mac világ egyik legfontosabb attributuma a copy-paste, és a drag & drop. Nem vitatkozom veled, elfogadom, hogy a LibreOffice olyan amilyen, ez ellen nem tudok tenni (hacsak nem fejlesztési követelményeket fogalmazok és szavazatokat gyűjtök, önkéntes fejlesztőket toborzok). Mindazonáltal a copy-paste-be belehalást egyértelműen fejlesztési hibának tekintem. Egy programot nem volna szabad tönkretennie egy adatnak. Én se eszek meg minden ismeretlen bogyót, amit az erdőben találok. Ismerje fel az adattípust, döntse el, hogy tud-e kezdeni valamit, tud-e belőle maga számára valami emészthetőt kihámozni, hámozza ki, és a többit dobja el. Ha a LibO üzleti alkalmazás lenne, ezt üzleti kritikus hibaként jelenteném. De mivel ingyen kapom mások jófejségéből, nem panaszkodok, csak szomorkodok.

3) Vágólap-menedzser - jó ötlet, még nem tudok vele mit kezdeni, de köszönöm a gondolatot, keresgélni fogok.

4) Semleges példafile: egyrészt szerintem szabatosan meg tudom fogalmazni a dolgokat, másrészt folyamatosan időnyomás alatt készítek nyilvánosan nem publikálható anyagokat. Nincs más a birtokomban, csak amin dolgozom, azt meg nem tehetem közzé. Értékelem, hogy mindenki csak abból tudna dolgozni, a kórboncnok is félkezű óriás egy jó halott nélkül. Még mindig csak ígérek, de egyszer teljesíteni is fogok, lesznek példafile-jaim. Azért abban bízom, hogy néhány jól megfogalmazott esetre is van, aki reagálni tud tapasztalatból.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 7., szerda 23:27

Mivel nem vagyok (még) képes a dokumentum tulajdonságokat dokumentumról dokumentumra másolni,


Ha ezt a kódot bemásolod a Saját makrók - Standard könyvtárának egy Moduljába, és a két eljárást felveszed az eszköztárra (ki is cserélheted a hosszú nevet egy neked tetsző ikonra, hogy jobban elférjen az eszköztáron, de akár gyorsbillentyű-kombinációhoz is rendelheted, úgy nem foglal helyet...) akkor a
CopyCustomDocProp eljárással az aktív dokumentumból globális változókba másolódnak az egyéni Dokumentum Tulajdonság "mezők", a
PasteCustomDocProp eljárással pedig egy másik, éppen aktívvá tett, vagy frissen létrehozott dokumentum ugyanezen "mezőibe" beillesztődnek a nevek és az értékek a globális változók alapján.

Kód: Egész kijelölése   KinyitásÖsszecsukás
REM  *****  BASIC  *****

Global NevAdat( 1, 255) as string
Global Darab as integer


Sub CopyCustomDocProp
oDoc = ThisComponent
DI = oDoc.getDocumentInfo()
DP = DI.getDocumentProperties()
UDP = DP.getUserDefinedProperties()
PV = UDP.getPropertyValues()
Darab = uBound(PV)

For I = 0 to Darab
   thisPV = PV(i)
   NevAdat(0,I) = thisPV.Name
   NevAdat(1,I) = thisPV.Value
Next

End Sub


Sub PasteCustomDocProp
oDoc = ThisComponent
DI = oDoc.getDocumentInfo()
DP = DI.getDocumentProperties()
UDP = DP.getUserDefinedProperties()
PV = UDP.getPropertyValues()

For I = 0 to Darab
   ThisComponent.DocumentInfo.setUserFieldName(I,NevAdat(0,I))
   ThisComponent.DocumentInfo.setUserFieldValue(I,NevAdat(1,I))
Next

End Sub


A kód természetesen csak vázlat, ötlet... (nem törli például a céldokumentumban azokat a mezőket, amekkora sorszámú mezők nem léteztek a forrásdokumentumban, továbbá oda kell figyelni arra a tényre, hogy az egyéni névvel megnevezett mezők automatikusan ABC sorba rendeződnek, nincs a kódban semmiféle hibakezelés... stb.)
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 11:27

Köszönöm szépen!

Ha ez egyszer működni kezd, megmenti az életemet. Sajnos elsőre még nem sikerült, és még nem is értem a rutinokat, amiket adtál. Mezők sorszámáról beszélsz, de én ilyenről nem tudok, az egyéni tulajdonságmezőknek nálam nem sorszáma, hanem szöveges megnevezése van. Megnyitottam egy olyan dokumentumot, amiben negyven mező ki volt töltve, ott lefuttattam a copy-t. Aztán megnyitottam egy másik dokumentumot, amiben ugyanazok a mezők léteztek, de nem voltak kitöltve. Ott lefuttattam a paste-et, de nem történt semmi.

Lehet, hogy a Paste-et olyan doksiban kell lefuttatni, amiben nem léteznek a bemásolandó tulajdonságok?
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 12:12

Valami nagyon nagy furcsaság történik.

Elkezdtem lépésenként lefuttatni a makrókat. Az első makró végigmegy a megfelelő darabszámú mezőn, és felcsipegeti az értékeket a globális tömbbe.
Átmegyek a másik dokumentumba, lefuttatom a paste-et, és valahogy nem megy végig, csak az első négy tulajdonságmező kap értéket.

De ami különösen furcsa, van egy szövegblokkom, ami a tulajdonságokat mint mezőket illeszti be a szövegbe. Ha normálisan, kézzel változtatok meg egy tulajdonságot, a változás rögtön megjelenik a dokumentumban. A Paste makród után azonban nem, a teljes mezőlista úgy marad, változatlanul. Ha ugyanezt a szövegblokkot még egyszer beillesztem a dokumentumba, az új beillesztés már a megváltozott (vagy éppen hiányzó, mert mondjuk töröltem a mezőket) értékeket mutatja, de ugyanannak a szövegblokknak (shift F3) a korábban beírt verziója még mindig a változások előtti értékeket mutatja. Hogy lehetséges ez?
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 12:33

A Paste rutint lépésenként futtatva figyeltem a NevAdat tömböt, ami helyesen már a korábbi Copy futtatás során felszedett értékeket mutatta. Figyeltem a PV-t, ami PV(3)-ig átveszi az értékeket a NevAdatból, ez után az I pörög tovább, végigmegy a sub, de a további PV elemek már nem veszik fel a megfelelő NevAdat elemek értékét. Nem értem.

Gondoltam arra, hogy az ékezetes mezőnév vagy tartalom miatt akad el, de pont nem. Olyan mezőtartalom nem kerül át, amiben bankszámlaszám van nyolc számjegy - kötőjel - nyolc számjegy - kötőjel - nyolc számjegy formában. A Handle nem tudom, mit jelent, értéke 620. Ettől a mezőtől kezdve a többi sem kapja meg az értéket a global táblából.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 15:56

Én tényleg csak négy adattal próbáltam ki, kérlek töltsél fel mintapéldát...
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 17:09

Íme a példafile-ok:

Editor_P001b.odt
(43.81 KiB) 29 alkalommal.


Editor_P001a.odt
(42.83 KiB) 36 alkalommal.


A két példafile hasonló, mindkettőben ugyanolyan néven létrehoztam 34 tulajdonságmezőt, és ki is töltöttem őket. Az a jelű file-ban magyar nyelven vannak kitöltve a mezők, a b jelűben angolul. A példa-makródat használtam mindkét irányban, és ezeken az újonnan létrehozott példafile-okon is csak a negyedik mezőig történt meg az értékek beszúrása.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 17:34

Aha!

A gond az lehet, valójában egy üres, új dokumentumban már LÉTEZIK (létre van hozva) 4 db ilyen tulajdonság mező, csak éppen üres, és ráadásul alaphelyzetben ez a négy darab nem is látszik. Ezekbe a meglévőkbe az én makróm képes beletenni (Set = beállítja) az áthozott értéket, de a négyen felül nem hoz létre újat.

Meg kell találni a HOZZÁADÁS parancsot is, és ha szükséges, akkor újabb mezőket kell hozzáadni a kóddal a meglévőkhöz, mielőtt a nevét és az értékét beállítanád...
(egyelőre én se tudom, hogyan kell, de szinte biztos, hogy lehetséges!)
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 18:01

Amikor a makró editorral lépésenként végrehajtom a makrót, kérni lehet a makróban érintett objektumok figyelését. Kérlek, ha van időd, nézz bele, és áss bele a dokumentum információba. Mintha ezek az egyéni dokumentum mezők több szinten is definiálva lennének, valahogy egymás alá beágyazva.

Egyébként a négyet nem értem. A Copy makród ugyanolyan logikával dolgozik, mint a paste, ha annál megtalálja a mezőt, akkor emennél miért nem? És miben különbözik az a négy a többitől? Ha az Editor_P001a és b a két érintett dokumentum, hát mindkettőben pont ugyanazok a mezők léteznek, és ugyanúgy ki vannak töltve, csak mással.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 18:13

A Copy makród ugyanolyan logikával dolgozik, mint a paste, ha annál megtalálja a mezőt, akkor emennél miért nem?

A Copy MEGSZÁMOLJA az adott forrásdokumentumban létező mezőket.
A Paste rutinban meg "buta üzemmódban", az amott megszámolt mennyiség alapján próbáltam ráerőltetni az új fájlra az adatokat. No, hát a Paste (set) végrehajtása előtt is meg kell számoltatni az abban a fájlban létező mezőket, és a létező mezőszám fölöttieket a Paste előtt LÉTRE KELL HOZNI.

Én egyértelműen a SZÁMUK szerint "szólítottam meg" a mezőket, de lehetséges a NEVÜK szerint is "megszólítani" azokat, az alapján megállapítani, hogy létezik-e olyan mező...

mint a paste, ha annál megtalálja a mezőt, akkor emennél miért nem?

Ami már létezik, azt megtalálja!

Itt találtam hasznos információkat:
http://user.services.openoffice.org/en/ ... =20&t=2786
http://www.oooforum.org/forum/viewtopic.phtml?t=87999


Úgy emlékszem, a régebbi OOo verziókban ÖSSZESEN CSAK négy ilyen mezőt lehetett használni, innen maradhatott a négy alapértelmezésben létező mezőszám. (De ez tényleg csak egy halvány emlék...)
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 18:33

A Copy makróban a DI nevű objektumban vájkálok. A mezőim tartalma több helyen is felbukkan.
a) Közvetleül a DI alatt az én mezőneveimmel, az én tartalmaimmal, de a mezőkhöz nincs sorszám. Van viszont egy számomra érthetetlen UserFieldCount 4 a végén. Viszont az érdekes az, hogy a makro annyi ciklusban lefut, ahány mező ténylegesen van.

b)A PropertySetInfo / Properties / Properties(26) alatt jelenik meg az én M05 mezőm, az M01, M03, M03, M04 sehol, a többi viszont ott sorakozik az M05 után. (com.sun.star.beans.Property)

c) Ez alatt a com.sun.star.beans.PropertyValue alatt természetesen hasonlóan jelennek meg, az első négy érték itt is hiányzik.

d) Ezek alatt a com.sun.star.comp.comphelper.OPropertyBag alatt viszont ott vannak a kis mezőim és értékeim, de itt már nem más dokumentummezők közé vegyítve, hanem csak ők, 0-val kezdődő sorszámmal, és nem hiányzik az első négy sem.

e) Még lejjebb Property_SetInfo alatt is megjelennek az általam definiált mezőnevek, itt tartalom nélkül.

Még nem tudom, mit kezdjek ezzel az információval, hát megosztom.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 18:40

Zizi64 írta:
A Copy makród ugyanolyan logikával dolgozik, mint a paste, ha annál megtalálja a mezőt, akkor emennél miért nem?

A Copy MEGSZÁMOLJA az adott forrásdokumentumban létező mezőket.
A Paste rutinban meg "buta üzemmódban", az amott megszámolt mennyiség alapján próbáltam ráerőltetni az új fájlra az adatokat. No, hát a Paste (set) végrehajtása előtt is meg kell számoltatni az abban a fájlban létező mezőket, és a létező mezőszám fölöttieket a Paste előtt LÉTRE KELL HOZNI.


Ezt azért nem értem, mert globális változóba tetted ki azt a számot, amit a forrás dokumentumban megszámoltál. A paste rutinnak pontosan ugyanannyiszor kell lefutnia, nem kell számolgatnia, különösen, hogy a forrás és a cél file pontosan megegyező szerkezetű, pontosan ugyanannyi, és ugyanolyan nevű egyéni változója van. Lépésenként végrehajtva látszik, hogy a paste rutin pörög, érték viszont 4 felett nem adatik.

Talán azt az elbújtatott változót, aminek 4 az értéke, meg kellene változtatni (nem tudom, hogyan kell), bár nem tudom, ez hogyan hatna a ciklusra.
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 18:52

No meg még itt is van hasznos információ:
http://www.oooforum.org/forum/viewtopic.phtml?p=325401
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 18:58

No, most ezt én se értem:

Egy új dokumentumban létrehoztam kézzel (hozzáadtam jó néhány mezőt, és a paste rutin mégiscsak négyet volt képes beállítani...
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 19:14

Pedig valahol abban az irányban lehet a megoldás, hogy én azt az eljárást alkalmaztam a beillesztésnél, ami a régi csak 4 mezős verziónál volt működőképes...
Az újabb eljárást kéne jól megtalálni és megismerni...
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest

Re: Copy-paste beleszakad

HozzászólásSzerző: editor » 2012. március 8., csütörtök 19:21

Köszönöm, megnézem a három linkedet, de előtte pihentetnem kell a szememet, mert már golyózik.

(Úristen, ez az egész mennyivel egyszerűbb MS Office-ban, a rá fordított időből már kijött volna egy csomag ára, de már juszt is végigcsinálom, mert a LibreOffice licenszemet átvihetem a többi gépemre is :-)
Libre Office Verzió: 4.1.0.4. Windows 8
editor
Önkéntesek
 
Hozzászólások: 238
Csatlakozott: 2011. augusztus 3., szerda 8:36

Re: Copy-paste beleszakad

HozzászólásSzerző: Zizi64 » 2012. március 8., csütörtök 21:35

Jó, hogy előkerested a régebbi hozzászólásomat:
viewtopic.php?f=6&t=1120
mert már nem emlékeztem rá... Ott volt a kulcs a továbblépéshez...

Ez a Paste verzió felülírja a céldokumentum meglévő mezőket, a kimásolt adatok egy részével, és a fennmaradó többit hozzáadja... (természetesen átírhatod úgy is, hogy a meglévő mezők megmaradjanak, és az összes újat hozzáadja. Ekkor figyelni kell a meglévő mezőnevekre is!)

Kód: Egész kijelölése   KinyitásÖsszecsukás
Sub PasteCustomDocProp
oDoc = ThisComponent
DI = oDoc.getDocumentInfo()
DP = DI.getDocumentProperties()
UDP = DP.getUserDefinedProperties()
PV = UDP.getPropertyValues()
Letezo = uBound(PV)

For I = 0 to Darab
   if I > Letezo then
          oDoc.DocumentProperties.UserDefinedProperties.addProperty(NevAdat(0,I),0,NevAdat(1,I))
   else
      oDoc.DocumentInfo.setUserFieldName(I,NevAdat(0,I))
      oDoc.DocumentInfo.setUserFieldValue(I,NevAdat(1,I))   
   end if
Next

End Sub


A beillesztett mezők csak a (mentés után) következő megnyitáskor jelennek meg vizuálisan is a menürendszert használva!

 Szerkesztett: Sajnos ez is csak akkor működik tökéletesen, ha üres, új dokumentumba illesztem be a másolni kívánt adatokat.
A
DocumentInfo.setUserFieldName és a
DocumentInfo.setUserFieldValue ezek szerint "régi eljárások", amik csak a régi verzióban létező 4 db mezőre vannak hatással. (Ez valószínűleg kompatibilitási okokból maradhatott benne a programban: ha valaki nem hajlandó frissíteni a 3.1-nél újabb programverziókra, valószínűleg a te 34 meződből csak 4-et fog látni és/vagy szerkeszteni...)

Két megoldás kínálkozik:
1: csak HOZZÁADNI a meglévőkhöz a
DocumentProperties.UserDefinedProperties.addProperty eljárással
2: előbb a meglévőket törölni, (a régebbi hozzászólásom idején talált megoldással), aztán az összes újat hozzáadni a
DocumentProperties.UserDefinedProperties.addProperty eljárással
3.: :) megtalálni az igazi megoldást: hogyan kell szerkeszteni az újabb verziókban használható, a 4. (0,1,2,3) sorszám fölötti mezőket... 
Sok sikert!
Kovács Tibor (WinXPprofSP3: LO3.6.4, 4.0.6, 4.1.5, 4.2.2;.Portable.; AOO4.0.1)
Ha megoldódott a probléma, jelöld a témaindító hozzászólásod címének elején: [Megoldva].
Zizi64
Globális moderátorok
 
Hozzászólások: 1926
Csatlakozott: 2008. november 12., szerda 21:22
Tartózkodási hely: Budapest


Vissza: Writer

Ki van itt

Jelenlévő fórumozók: Google [Bot] valamint 2 vendég