Odgovori 
deblina linije u Calc-u

Lepo zapazeno. Taj makro se moze i prosiriti tako da se poziva polje za
unos ili lista u kojoj bi se izabrala zeljena velicina. Cak i tekst koji
opisuje velicine i obicno polje za unos ce omoguciti da se makro ne mora
prepravljati za svaku promenu.
Ja nazalost niti radim puno sa OOo niti imam vremena za ta sitna
programiranja.

Ljubomir

Vladislav Stevanovic wrote:
> Postoji način da postavite debljinu linije u CALC-u koju želite, koji je
> malo zaobilazan,
> i koji je vredan truda ako se radi jedan šablon, a želimo da on lepo
> izgleda.
> Krenite da snimate makro. Selektujte željenu ćeliju. Idite na format/ćelije,
> izaberite gde ćete
> postaviti linije (gore, dole, levo, desno) i ostavite najtanju debljinu
> linije (0.05 pt). Prekinite
> snimanje makroa.
> Snimljeni makro, za ćeliju B2, koja je sva uokvirena, izgleda ovako:
>
> sub lnija005pt
> 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 ----------------------------------------------------------------------
> dim args1(0) as new com.sun.star.beans.PropertyValue
> args1(0).Name = "ToPoint"
> args1(0).Value = "$B$2"
>
> dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
>
> rem ----------------------------------------------------------------------
> dim args2(7) as new com.sun.star.beans.PropertyValue
> args2(0).Name = "BorderOuter.LeftBorder"
> args2(0).Value = Array(0,0,2,0)
> args2(1).Name = "BorderOuter.LeftDistance"
> args2(1).Value = 0
> args2(2).Name = "BorderOuter.RightBorder"
> args2(2).Value = Array(0,0,2,0)
> args2(3).Name = "BorderOuter.RightDistance"
> args2(3).Value = 0
> args2(4).Name = "BorderOuter.TopBorder"
> args2(4).Value = Array(0,0,2,0)
> args2(5).Name = "BorderOuter.TopDistance"
> args2(5).Value = 0
> args2(6).Name = "BorderOuter.BottomBorder"
> args2(6).Value = Array(0,0,2,0)
> args2(7).Name = "BorderOuter.BottomDistance"
> args2(7).Value = 0
>
> dispatcher.executeDispatch(document, ".uno:BorderOuter", "", 0, args2())
> end sub
>
> Kao što vidite, vrednost debljine lnije od 0.05 pt je ovde označena sa
> brojem 2
> (args2(4).Value = Array(0,0,*2*,0)). Ako izaberete sledeću debljinu linije
> koju Calc nudi
> a to je 0.5 pt, vrednost će biti 18. Dakle, treba vrednosti u snimljnom
> makrou ručno izmeniti da bi dobili debljinu linije koja je negde između,
> npr. stavite vrednost 10
> (args2(4).Value = Array(0,0,*10*,0)). Aktivirajte makro, i dobićete liniju
> koju želite, koje
> nema u ponuđenom meniju Calc-a.
>
Citiraj ovu poruku u odgovoru

U ned, 12. 09 2010. u 13:18 +0200, Vladislav Stevanovic piše:
> Postoji način da postavite debljinu linije u CALC-u koju želite, koji je
> malo zaobilazan,

Zgodan trik, hvala na javljanju. Dopunio sam rešenje i zapakovao ga kao
nezvanični dodatak za OpenOffice.org koji možete da preuzmete sa adrese
http://goranrakic.com/tmp/cellborder.oxt

Po instalaciji ponovo pokrenite OpenOffice.org (uključujući i ikonicu
pred sata u donjem desnom uglu). Označite potez ćelija i iz menija
pokrenite „Alatke > Dodaci > Postavi ivice“.

U prozoru unesite brojčanu vrednost za debljinu linije i preko krstića
sa desne strane postavite koje ivice želite u grupi.

Snimak ekrana: http://dodaj.rs/f/3Y/Es/4vSFabLg/cellborder.png


Pozdrav,
Goran Rakić

PS - OXT datoteka je ZIP arhiva pa uz brzu promenu imena možete lako da
zavirite unutra i saznate kako se ovakav makro sa prozorom pakuje kao
paket proširenja.
Poseti veb stranicu korisnika
Citiraj ovu poruku u odgovoru

Neko ima ideje, a neko napravi; još samo da podelimo profit Smile)

Šalu na stranu, ovo je bilo zaista brzo reagovanje! E sad, pošto sam idejni
krivac za sve ovo, ( vaš program doživaljavam delom i kao svoje čedo, da ne
izostavim
i Ljubomira, koji je sve to "video"), osećam potrebu za par dobronamernih
saveta:
dijalog ne nudi opciju kose crte, a javlja se i problem kada se želi
selektovati više ćelija i
sve da pojedinačno budu uokvirene: uokvirene su samo spoljne ivice
selektovanog opsega
ćelija, ne i unutrašnje.
Ako se želi ići dalje, možda možete dopuniti priču sa isprekidanim linijama,
duplim
linijama, i bojom. U stvari, trebalo bi makro koji već postoji u openofficu
da se iskoristi
, radi se o programu koji je zadužen za stil linie, gde možete sami da
birate sa kojim razmakom i dužinom isprekidanih linija da formirate svoju
liniju. Ako ste voljni, to bi
stvarno onda bilo krajnje rešenje.
U svakom slučaju, sve pohvale.
E sad, kako bih malo i ja želeo nešto da naučim, kako da zavirim, ako se
sme, u sadržaj
programa, sam makro? Sa koijim programom, a da se vidi pisani makro?

Srdačan pozdrav,
Stevanović Vladislav




2010/9/12 Goran Rakic <grakic@devbase.net>

> U ned, 12. 09 2010. u 13:18 +0200, Vladislav Stevanovic piše:
> > Postoji način da postavite debljinu linije u CALC-u koju želite, koji je
> > malo zaobilazan,
>
> Zgodan trik, hvala na javljanju. Dopunio sam rešenje i zapakovao ga kao
> nezvanični dodatak za OpenOffice.org koji možete da preuzmete sa adrese
> http://goranrakic.com/tmp/cellborder.oxt
>
> Po instalaciji ponovo pokrenite OpenOffice.org (uključujući i ikonicu
> pred sata u donjem desnom uglu). Označite potez ćelija i iz menija
> pokrenite „Alatke > Dodaci > Postavi ivice“.
>
> U prozoru unesite brojčanu vrednost za debljinu linije i preko krstića
> sa desne strane postavite koje ivice želite u grupi.
>
> Snimak ekrana: http://dodaj.rs/f/3Y/Es/4vSFabLg/cellborder.png
>
>
> Pozdrav,
> Goran Rakić
>
> PS - OXT datoteka je ZIP arhiva pa uz brzu promenu imena možete lako da
> zavirite unutra i saznate kako se ovakav makro sa prozorom pakuje kao
> paket proširenja.
>
>


--
Srdačan pozdrav,
Stevanović Vladislav
Citiraj ovu poruku u odgovoru

U pon, 13. 09 2010. u 03:23 +0200, Vladislav Stevanovic piše:
>
> E sad, kako bih malo i ja želeo nešto da naučim, kako da zavirim, ako
> se sme, u sadržaj programa, sam makro? Sa koijim programom, a da se
> vidi pisani makro?
>

U OpenOffice.orgu nakon instalacije: „Alatke > Makroi > Organizuj makroe
> OpenOffice.org bejzik“ pa sa leve strane „cellborder > Macro“ i klik
na dugme „Uredi“.

Prozorče je u „Alatke > Makroi > Organizuj prozorčiće“ pa u stablu
„cellborder > Dialog“.

Oba su u biblioteci cellborder. Potom se to izveze i zapakuje u OXT
paket. Paket je ZIP arhiva. Unutra su Addons.xcu koji dodaje stavku u
meniju „Alatke > Dodaci“ (moguće je dodati i stavku u meni Format, ali
ovo mi je bilo jednostavnije). U fascikli cellborder/ nalazi se sadržaj
izvezene biblioteke. Važan je još description.xml gde je opis dodatka
(naziv, autor,...).

Ako dodate još jedno polje za potvrdu (u sredinu krstića) možete da
proširite funkciju makroa tako da ako je polje uključeno doda i ivice po
mreži poteza (for i=1 ... for j=1 ... postavi sve četiri ivice) a ne
samo oko poteza. Meni je za izradu formulara delovalo zgodnije da se
ivice zadaju samo oko poteza - polja za formular.

Problem sa ovako dodatim ivicama je što više nije moguće njihovo
uređivanje kroz prozorče za format ćelije u OpenOffice.orgu, mogu se
samo poništiti sve ivice. Za dodavanje drugih stilova linije, logika bi
bila ista. Prvo pomoću snimljenog makroa otkriti naziv svojstva ćelije,
a potom proširiti funkciju i prozorče.

Ja bih se ipak opredelio da ovaj dodatak bude samo privremeno rešenje,
za pune mogućnosti bolje je sa Cedricom završiti testiranje zakrpe koju
je objavio, a koja nudi sve to i mnogo više (kompatibilnost sa MSO
formatom, ispravan uvoz i izvoz i dvobojne linije). Problem sa zakrpom
je međutim to što traži rekompajliranje paketa, dok se dodatak lako
instalira.

Pozdrav,
Goran Rakić
Poseti veb stranicu korisnika
Citiraj ovu poruku u odgovoru
Odgovori 




Kontakt | otvorenidokument.com | Povratak na vrh | Povratak na sadržaj | RSS