monthsname - kod ve grafik fonksiyonu
Bu fonksiyon, dönemin ay aralığının (MonthNames kod değişkenine göre biçimlendirilmiş) yanı sıra yılı temsil eden bir görüntü değeri döndürür. Temel sayısal değer, bir temel tarihi içeren aylık, iki aylık, üç aylık, dört aylık veya yarı yıllık dönemin ilk milisaniyesinin zaman damgasına karşılık gelir.
Söz Dizimi:
MonthsName(n_months, date[, period_no[, first_month_of_year]])
Dönüş veri türü: dual
Bağımsız Değişkenler:
Bağımsız Değişken | Açıklama |
---|---|
n_months | Dönemi tanımlayan ayların sayısı. Şunlardan biri olması gereken bir tamsayıya çözümlenen bir tamsayı ya da ifade: 1 (inmonth() fonksiyonunun eşdeğeri), 2 (iki aylık), 3 (inquarter() fonksiyonunun eşdeğeri), 4 (dört aylık dönem) veya 6 (yarı yıl). |
date | Değerlendirilecek tarih. |
period_no | Dönem period_no ile kaydırılabilir. Bu değer bir tamsayı ya da tamsayıya çözümlenen bir ifadedir ve burada 0 değeri base_date içeren dönemi belirtir. period_no içindeki negatif değerler önceki dönemleri; pozitif değerler ise sonraki dönemleri gösterir. |
first_month_of_year |
Ocak'ta başlamayan (mali) yıllarla çalışmak istiyorsanız, first_month_of_year içinde 2 ile 12 arasında bir değer belirtin. |
Örnekler ve sonuçlar:
Bu örneklerde GG/AA/YYYY tarih biçimi kullanılmaktadır. Tarih biçimi, kod dosyanızın en başında SET DateFormat deyimi içinde belirtilir. Örneklerdeki biçimi gereksinimlerinize uyacak şekilde değiştirin.
Örnek 1:
monthsname(4, '19/10/2013')
Sep-Dec 2013 döndürür.
Çünkü bu ve diğer örneklerde SET Monthnames deyimi Jan;Feb;Mar vs. olarak ayarlanmıştır.
Örnek 2:
monthsname(4, '19/10/2013', -1)
May-Aug 2013 döndürür.
Örnek 3:
monthsname(4, '19/10/2013', 0, 2)
Oct-Jan 2014 döndürür.
Çünkü yılın 2. ayda başladığı belirtilmektedir. Bu nedenle, dört aylık dönem takip eden yılın birinci ayında sona erer.
Örnek 4:
Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgenizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.
Bu örnekte, tablodaki her bir fatura tarihi için, iki aylık dönemdeki ay aralığından ve yıldan ay adı oluşturulur. Aralık 4x2 ay kadar kaydırılmıştır (period_no değerinin 4 olarak belirtilmesiyle).
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
MonthsName(2, InvDate, 4) AS MthsName
Resident TempTable;
Drop table TempTable;
Sonuçta ortaya çıkan tabloda orijinal tarihler ve monthsname() fonksiyonunun döndürdüğü değeri içeren bir sütun yer alır.
InvDate | MthsName |
---|---|
28/03/2012 | Nov-Dec 2012 |
10/12/2012 | Jul-Aug 2013 |
5/2/2013 | Sep-Oct 2013 |
31/3/2013 | Nov-Dec2013 |
19/5/2013 | Jan-Feb 2014 |
15/9/2013 | May-Jun 2014 |
11/12/2013 | Jul-Aug 2014 |
2/3/2014 | Nov-Dec 2014 |
14/5/2014 | Jan-Feb 2015 |
13/6/2014 | Jan-Feb 2015 |
7/7/2014 | Mar-Apr 2015 |
4/8/2014 | Mar-Apr 2015 |