monthsend - kod ve grafik fonksiyonu
Bu fonksiyon, bir temel tarihi içeren aylık, iki aylık, üç aylık, dört aylık veya yarı yıllık bir dönemin son milisaniyesinin zaman damgasına karşılık gelen bir değeri döndürür. Önceki ve sonraki bir zaman dönemi için zaman damgasını bulmak da mümkündür.
Söz Dizimi:
MonthsEnd(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:
monthsend(4, '19/07/2013')
31/08/2013 döndürür.
Örnek 2:
monthsend(4, '19/10/2013', -1)
31/08/2013 döndürür.
Örnek 3:
monthsend(4, '19/10/2013', 0, 2)
31/01/2014 döndürür.
Çünkü yılın başlangıcı 2. ay olur.
Ö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 örnek, her bir fatura tarihi için iki aylık dönemin son gününün bitimini bulur (iki aylık bir dönem kadar ileri kaydırılmış olarak).
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 *,
MonthsEnd(2, InvDate, 1) AS BiMthsEnd
Resident TempTable;
Drop table TempTable;
Sonuçta ortaya çıkan tabloda orijinal tarihler ve MonthsEnd() fonksiyonunun döndürdüğü değeri içeren bir sütun yer alır.
InvDate | BiMthsEnd |
---|---|
28/03/2012 | 30/06/2012 |
10/12/2012 | 28/02/2013 |
5/2/2013 | 30/04/2013 |
31/3/2013 | 30/06/2013 |
19/5/2013 | 31/08/2013 |
15/9/2013 | 31/12/2013 |
11/12/2013 | 28/02/2014 |
2/3/2014 | 30/06/2014 |
14/5/2014 | 31/08/2014 |
13/6/2014 | 31/08/2014 |
7/7/2014 | 31/10/2014 |
4/8/2014 | 31/10/2014 |