Author Archive

Ağlasa derd-i derûnum çeşm-i giryânım sana

Ağlasa derd-i derûnum çeşm-i giryânım sana
Âşikâr olurdu gâlib râz-ı pinhânım sana

(Sevgili!) İçimdeki dertler ile, yaş dolu gözlerim senin için ağlayacak olsa, (gönlümdeki) gizli sırlarım (gözyaşlarıma) gâlip gelir ve (sırlar) sana aşikâr olurdu.

Mesned-i hüsn üzre sen ben hâk-i rehde pâymâl
Mûr hâlin nice arz ede Süleyman’ım sana

Sen güzellik tahtında (oturuyorsun): bense yolunun toprağında pâymâl (ayaklar altında) kalmışım. Hâl bu iken a Süleyman’ım, sana bir karınca (denli âciz olan) durumumu nasıl arz edeyim? ‘ Divân edebiyatında Süleyman ihtişâmı; karınca da acziyet ve zayıflığı temsil ettiği için şair de kendini karınca; sevgilisini Süleyman olarak nitelendirmiştir.’

Şem’i gör kim meclisinde ağlayıp başdan çıkar
Hoş yanar yıkılır ey şem’-i şebistânım sana

Read more

Axaptada yazıcı ayarlarına müdahale etmek

Merhaba,

Axaptada yazıcı ayarlarına printJobSettings() klası ile  mudahale edebilirsiniz.

Örneğin bir raporunuzun  3 kopya olarak basılmasını istiyorsunuz. Bunu elle yazıcı ayarlarından seçebileceğiniz gibi

kodlada bu işlemi otomatik yapabilirsiniz. Bunun için init metodunda şu kodu yazmanız yeterli.

element.printJobSettings().enableCopies(true);
element.printJobSettings().copies(3); // 3 kopya yazdır

Selamlar.

Axaptada bir formun hangi menuItem ile çağırıldığını bulmak

Merhaba,

Örneğin sizden LedgerJournalTable formunun kambiyo senetleri günlüğünden çağırıldığında  bazı ek işlemler yapmanızı istediler.

Kambiyo senetlerinden Kambiyo senedi günlüğünü (yani LedgerJournalTable formunu) açan  “LedgerJournalTableExchangeNote” isimli MenuItemdır.

Burada iki yöntem kullanılabilir.
Birincisi: MenuItem’ ın isminden ayırabilirsiniz.

if (element.args().menuItemName() == menuitemDisplaystr(LedgerJournalTableExchangeNote))
{
info(“Beni kambiyo senetlerinden çağırdılar.”);
}

İkincisi:ParmEnum ile ayırabilirsiniz ki bu daha şık olur.

Öncelikle MenuItem’ın EnumTypeParameter ve EnumParameter özelliklerini tanımlamalıyız.
Bizim kullandığımız LedgerJournalTableExchangeNote menuItem’mı için zaten  standartta tanımlamalar yapılmış olduğunda aşağıdaki şekilde kullanabiliriz.

if (element.args().parmEnum() == LedgerJournalType::ExchangeNote)
{
     info(“Beni kambiyo senetlerinden çağırdılar.”);  
}

Nabi

Bağ-ı dehrin hem hazanın hem baharın görmüşüz
Biz neşatın da gamın da ruzgârın görmüşüz.

Çok ta mağrur olma kim meyhane-i ikbalde
Biz hezaran mest-i mağrurun humarın görmüşüz.

Top-i ah-i inkisare paydar olmaz yinede
Kişver-i cahın nice sengin hisarın görmüşüz.

Read more

Su Kasidesi

Saçma ey göz eşkden gönlümdeki odlara su

Kim bu denlü dutuşan odlara kılmaz çâre su

(Ey göz! Gönlümdeki (içimdeki) ateşlere göz yaşımdan

su saçma ki, bu kadar (çok) tutuşan ateşlere su fayda

vermez.)

Âb-gûndur günbed-i devvâr rengi bilmezem

Yâ muhît olmış gözümden günbed-i devvâra su

(Şu dönen gök kubbenin rengi su rengi midir; yoksa

gözümden akan sular, göz yaşları mı şu dönen gök

kubbeyi kaplamıştır, bilemem..)

Zevk-ı tîğundan aceb yoh olsa gönlüm çâk çâk

Kim mürûr ilen bırağur rahneler dîvâra su

(Senin kılıca benzeyen keskin bakışlarının zevkinden

benim gönlüm parça parça olsa buna şaşılmaz. Nitekim

akarsu da zamanla duvarda, yarlarda yarıklar meydana

getirir.)

Vehm ilen söyler dil-i mecrûh peykânun sözin

İhtiyât ilen içer her kimde olsa yara su

(Yarası olanın suyu ihtiyatla içmesi gibi, benim

yaralı gönlüm de senin ok temrenine, ok ucuna benzeyen

kirpiklerinin sözünü korka korka söyler.)

Read more

Axaptada hiyerarşık bir tabloyu ağaç yapısıyla yönetmek

Merhaba

Bazı durumlarda hiyerarşık yapılar kurmak zorunda kalabilirsiniz. Bunu yönetmenin en iyi yolu ağaç(Tree) yapısını kullanmaktır. Axapta standardında bir çok yerde ağaç yapısını görebilirsiniz. Örneğin: LedgerRowDefDesigner formunda sürükle bırakla çalışan bir ağaç yapısı mevcut. Ayrıca  tutorial_Form_TreeControl örnek formu da size fikir verebilir.

Ben örneğimde bir hiyerarşi tablosunun form açıldığında ağaç yapısıyla görüntülenmesini ve  ağaç elemanlarının (Node)  bu form vasıtasıyla düzenlenmesinin (güncelleme , silme ve ekleme) nasıl yapılacağını anlatacağım.

Örnek olarak şöyle bir tablomuz  olsun :

ETGItemGroupTable :    ItemGroupId    ,    ItemGroupName    ,    ItemGroupLevel   ,    ItemGroupIdParent
ItemGroupId  ,   ItemGroupIdParent   =  EDT – DTItemGroupId

ItemGroupId  ,   ItemGroupIdParent   aynı EDT den oluşturuyoruz. Hiyerarşik yapıyı ItemGroupIdParent sayesinde kuracağız.

ItemGroupLevel   Burada  hiyerarşiyle pek ilgisi olmayan benim kurgumla alakalı olan bir seviye kodu var. Ben bu hiyerarşideki bütün elamanların birer seviye kodu olsun istiyorum ve bu kod 1-8 arasında olabilir. Formda gerekli kontrolleri buna göre yazıyorum.

Ulaşmak istediğim form görünümü şu şekilde

Yeni bir form oluşturup veri kaynağını ekleyip tasarımdada gerekli elemanları ekleyelim. Ağaç elemanımızı da ekledikten sonra bazı metodlar yazmamız gerekiyor onlara gecelim.

Read more

Ziya Paşa: Terkib-i Bend

ikbâl için ahbâbı siâyet yeni çıktı
Bilmez idik evvel bu dirâyet yeni çıktı

(Yükselmek, iyi bir mevkiye gelmek için dostlarını çekiştirmek yeni çıktı, önceleri bu beceriksizliği bilmezdik, bu da yeni çıktı)

Sirkat çoğalıp lâfz-ı sadâkat modalandı
Nâmus tamam oldu hamiyyet yeni çıktı

(Hırsızlık çoğalıp sadakat sözü moda haline geldi, namusu bitirdik, hamiyet yeni çıktı)

Düşmanlara ahbâbını zemm oldu zerafet
Dildardan ağyâra şikâyet yeni çıktı

(Düşmanlara dostları yermek bir incelik oldu; başkalarına gönül dostlarından şikayet yeni çıktı)

Sâdıkları tahkîr ile red kaide oldu
Hırsızlara ikram ü inayet yeni çıktı

(Sâdık kişileri aşağılama, reddetme benimsenir oldu; hırsızlara ikram ve yardım yeni çıktı)

Hak söyleyen evvel dahi menfûr idi gerçi
Hainlere amma ki riayet yeni çıktı

(Her ne kadar doğruyu söyleyenler de önceleri nefretle karşılanmışsa da ancak hainlere uyma yeni çıktı)

Evrak ile ilân olunur cümle nizâmât
Elfâz ile terfîh-i ra’iyyet yeni çıktı

(Bütün düzenlemeler bazı kâğıtlar ile ilan olunur, söz ile halkın refaha eriştirilmesi ise yeni çıktı)

Âciz olanın ketm olunur hakk-ı sarîhi
Mahmîleri her yerde himâyet yeni çıktı

(Güçsüz olanın en belirgin hakkı saklı tutulur, himaye görenleri her yerde korumak yeni çıktı)

isnâd-ı ta’assub olunur merd-i gayûra
Dinsizlere tevcîh-i reviyyet yeni çıktı

(Gayretli kişiler taassubla suçlanırken dinsizlere özgü derin düşünce yeni çıktı)

islam imiş devlete pâ-bend-i terakki
Evvel yoğ idi işbu rivâyet yeni çıktı

(Devletin yükselmesine engel olan islamiyet imiş, önceleri yoktu, bu rivayet yeni çıktı)

Milliyyeti nisyan ederek her işimizde
Efkâr-ı Firenge tebaiyyet yeni çıktı

(Her işimizde millî benliğimizi unutarak Batı düşüncesine körü körüne bağlılık yeni çıktı)

Eyvah bu bâzîçede bizler yine yandık
Zîra ki ziyan ortada bilmem ne kazandık

(Eyvah bu oyunda bizler yine yandık, çünkü zarar ortada bu konuda bilmem biz ne kazandık)

WinAPI::createDirectoryPath ‘de “$” işareti hatası

Merhaba

Örenğin şöyle bir adresimiz olsun:

filePath = \\10.34.32.21\axapta$\Ozluk;

WinAPI::createDirectoryPath(filePath);

Komutu ile klasor oluşturmaya çalışırsanız hata alırsınız. Çünki $ işaretinden kaynaklanan bir sorun var.
WinAPI::createDirectoryPath(filePath) metodunda kullanılan strlen(filePath) fonksiyonu $ işartetinden dolayı doğru sonuç döndüremiyor.

createDirectoryPath metodunun içeriğine bakalım:

Read more

Sevk İrsaliyesi Tasarımı

Merhaba

Ax üzerinde sevk irsaliyesi ve fatura tasarımı gibi işler çetrefilli işlerdir.  Axaptada tasarımsal işlemler genelde zordur.

Ancak belli bazı noktaları bilip mudahalelerinizi yaparsanız kolay bir şekilde istediğiniz güncellemeyi yapmış olursunuz.

Biz bu makalemizde Ax uzerinde matbu bir sevk irsaliyesi tasarımının nasıl yapılabileceğinden bahsedeceğiz.

Öncelikle Ax’ta standart Sevk İrsaliyesi  “SalesPackingSlip”  raporudur. Denemek için  “CustPackingSlipJournal” formundan “Önizleme/Yazdır “  butonunda çıkan Kopya ve Orjinal butonundan  Sevk İrsaliyesi bastırabilirsiniz.

Asıl olan “SalesPackingSlip” raporunda değişiklik yapmayalım. Çogaltip  “ETGSalesPackingSlip” ismini verelim. Ve MenuItem  oluşturalım. Oluşturdğumuz item için multiselect özelliğini yes yapalım.

“ETGSalesPackingSlip” raporunda dizaynında “Generated Design” kısmında irsaliyemizin tasarımını görebilirsiniz.

Burada istenilen değişikler yapılabilir. İstenmeyen alanlar çıkartılıp yeni alanlar eklenebilir. Ancak bizim yapacağımız matbu tasarım standarttan çok farklı olduğu için ben “Generated Design” ‘da bulunan bütün alanaları siliyorum. Bu işlemden sonra raporu derleyip hata veren kısımları yorum satırı haline getiriyorum. Kendim 4 tane ProgramableSection açıyorum. Bunlar:

1.  Sct1 : Başlık bilgilerinin olacağı kısım.

2. Sct2 : İrsaliye satırlarının olacağı kısım.

3. Sperater : Satırlarda eksik kalan kısımları tamamlamak için kullacağım boş bir satır.

4. Sct3 : Toplam ve alt bilgilerin görüneceği kısım. 

Sct1 için örnek olarak iki tane display metod yazayım diğerlerini siz ihtiyacınıza göre ekleyebilirsiniz.

display name dispDeliveryName()
{
      return CustPackingSlipJour.DeliveryName;

}

Read more

Splitter Control

Merhaba

Axapta formlarda splitter kullanımı hakkında bir örnek yapacağız.

İşte  örneğimiz:

Formda 2 grubunuz olduğunu varsayalım,    LeftGroup ve RightGroup . Bu iki grubu yan yana görmek için design  property columns=2 yapalım. Şimdi bu iki grup arasında splitter olsun istiyoruz. Bu sayede istediğimiz gibi resize vb. kontrolleri yapabileceğiz. Bunu yapabilmek için şu adımları takip etmemiz gerekiyor:

1. Daha önce oluşturduğumuz iki grubun arasına  SplitterGroup adında yeni bir grup oluşturalım. bu grubu splitter için kullanacağız.

2. SplitterGroup parametreleri şunlar olsun :

    AlignChild       = No
    AlignControl     = Yes
    AutoDeclaration  = Yes
    FrameType        = Raised3D
    Height           = ColumnHeight
    HideIfEmpty      = No
    Width            = 4

3. LeftGroup parametreleri şunlar olsun :

    Width            = 250
    Height           = ColumnHeight
    AutoDeclaration  = Yes

4. Rightgroup parametreleri şunlar olsun :

    Height           = ColumnHeight
    Width            = ColumnWidth

5. Şu anda 3 grubumuz olduğu için  design  property columns=3 yapalım. 

6. Splitter bizim SplitterGroupa’a özellik eklemeizle elde edeceğimiz bir fonksiyon. Bunu axaptada yapabilmemizi sağlayan iki class var SysFormSplitter_X or SysFormSplitter_Y.

bizim durumda SysFormSplitter_X kullanmamız gerekiyor. formun class declaration’da Şu tanımlamayı yapalım:

public class FormRun extends ObjectRun
{
    SysFormSplitter_X sysFormSplitter_X;
}

7. Axapta clasını formumuzun initinde oluşturuyoruz. The StartupHeight parameter is often omitted since it is optional.
 

public void init()
{
   super();

   sysFormSplitter_X = new
   SysFormSplitter_X(SplitterGroup,LeftGroup,element,100);
}

8. Şimdi  plitterGroup için çeşitli mouse metodlarını yazmalıyız :

int mouseDown(int x, int y, int button, Boolean Ctrl, Boolean Shift)
{
    int ret = super(x,y,button,ctrl,shift);
    ;

    sysFormSplitter_X.mouseDown(x,y,button,ctrl,shift);
    return ret;
}

int mouseMove(int x, int y, int button, Boolean Ctrl, Boolean Shift)
{
    ;

    super(x,y,button,ctrl,shift);

    return sysFormSplitter_X.mouseMove(x,y,button,ctrl,shift);
}

int mouseUp(int x, int y, int button, Boolean Ctrl, Boolean Shift)
{
    int ret =  super(x,y,button,ctrl,shift);
    ;

    sysFormSplitter_X.mouseUp(x,y,button,ctrl,shift);
    return ret;
}

Evet oldu. X-Splitter artık düzgün bir şekilde çalışır.

 
Y-splitter da buna benzer şekilde tanımlayabilirsiniz.

Selamlar.

Page 30 of 40« First...1020282930313240...Last »

Türkiye'nin en doğru, dolu dolu ve hatasız anlatımları ile teknik yazılarına, makalelerine, video'larına, seminerlerine, forum sayfasına ve sektörün önde gelenlerine ulaşabileceğiniz teknik topluluğu, MSHOWTO