7 Ağustos 2016 Pazar

LibreOffice Calc Bileşeni İçin TC Kimlik No Kontrol Eklentisi

Selamlar,
LibreOffice Calc bileşeni için BASIC ile yazdığım bu eklenti, bir sütundaki TC kimlik numaralarının geçerli olup olmadığını kontrol ediyor.



Kullanıcıya kimlik numaralarının hangi satır ve sütundan başladığını soruyor, eğer kimlik numaraları geçerli değilse geçerli olmayan numaraların rengini kırmızı olarak değiştiriyor.




Numaralar düzeltilip eklenti tekrar çalıştırıldığında numaranın rengini tekrar siyah olarak değiştiriyor.




BASIC ile yazılmış eklentilerin LibreOffice tarafından çalıştırılması bir macro çalıştırılıyormuş gibi yapılıyor.
LibreOffice'te macroların çalıştırılması içinse Kütüphane > Modül > Macro hiyerarşisinde yazılmış olması gerekiyor.
Bu nedenle eklenti de aynı hiyerarşi ile yazılmalı.

Kütüphane olarak bir dizin, modül olarak bu dizinin altında eklentinin kodları bulunan bir dosya ve bu dosya içinde macro gibi çalıştırılacak olan fonksiyon ve alt yordamlar bulunmalı.

Eklentide bir ileti penceresi bulunması için bu pencere de kütüphaneye eklenmiş olmalı.

Eklentinin hiyerarşik olarak çalıştırılma işi Addons.xcu dosyasında
        <prop oor:name="URL" oor:type="xs:string">
          <value>macro:///TcNoControl.TcControl.TcKimlikKontrol</value>
        </prop> 
ile belirtiliyor.

Burada TcNoControl kütüphane ismi, TcControl modül ismi ve TcKimlikKontrol ise macro ismi olarak yer alıyor.

Bu yazıda bahsettiğim python eklentisinin aksine bu eklentide manifest.xml dosyasından kaynak olarak çağırılacak tek bir dosya yerine şu şekilde belirtilen kütüphane dizini çağırılıyor:
 <manifest:file-entry manifest:full-path="TcNoControl/" manifest:media-type="application/vnd.sun.star.basic-library"/>

Kütüphane dizininin içinde bulunan dosyalardan hangi dosyanın modül dosyası olarak çağırıldığını belirtmek için script.xlb adında bir dosya bulunuyor ve çağırma işi şöyle yapılıyor:
<library:library xmlns:library="http://openoffice.org/2000/library" library:name="TcNoControl" library:readonly="false" library:passwordprotected="false">
 <library:element library:name="TcControl"/>
</library:library>

Eklentinin sorunsuz olarak çalışabilmesi için modül dosyası olan TcControl dosyası belirtilen xml etiketi içinde html kodlaması ile kodlanmış olmalı.


Her şey formata uygun olarak yazıldıktan sonra eklenti dosyalarının bulunduğu dizine girip
zip -r TcControl.oxt ./*
komutuyla oxt uzantılı dosyayı oluşturduktan sonra eklenti kullanılabilir hale geliyor.

Github üzerinden eklentinin kodlarına ulaşabilir, depo içindeki oxt uzantılı dosyadan eklentiyi LibreOffice'e ekleyebilirsiniz.

Hoşçakalın!


Sihirli Düğme

Selamlar,
Yine bir LibreOffice eklentisiyle karşınızdayım. Bu eklenti çalışma esnasında işler iyiye gitmediğinde her şeyi düzelmek için iyi bir yardımcı.
Karşınızda sihirli düğme!
The magic button sitesinin bir türevi olan ve BASIC dilinde yazdığım bu eklenti sayesinde sıkıntılarınızdan kısa süreliğine de olsa kurtulmanız mümkün.

Eklentiyi LibreOffice'e ekledikten sonra herhangi bir bileşende araç çubuğuna eklenen düğme yardımıyla çalıştırabilirsiniz.






Bir süre bekledikten sonra mutlu sona ulaşıyoruz. :)




Eklentinin kaynak koduna Github üzerinden ulaşabilirsiniz.

Hoşçakalın!