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. > |
|||
|
|||
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. |
|||
|
|||
Neko ima ideje, a neko napravi; još samo da podelimo profit )
Š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 |
|||
|
|||
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ć |
|||