RAPOR VE FORMLARDA KULLANILAN FONKSİYONLAR

 

FONKSİYON LİSTESİ

MIN(number, number) DAYS(firstdate, lastdate) CREATE(date, base curr., base rate, dest. curr)

 

SQR(number) DATESTR(date, format) SUBSTR(text, start, length)

 

MAX(number, number) DAYOF(date) STRPOS

(search string, string)

SQRT(number) MONTHSTR(month) UPCASE(text)
MOD(number, divisor) MONTHOF(date)

 

FLOOR(number) COS(number) WDAYSTR(weekday) LOWCASE(text)
DIV(number, divisor) YEAROF(date)

 

CEIL(number) SIN(number) NUMSTR(number, decimals, format) TRIMSPC(text, option)
ABS(number) WDAYOF(date) FRAC(number)

 

TAN(number) TIMESTR(time, format) JUSTIFY(text, direction, fill, length)
VAL(text) ROUND(number) EXP(number) STRLEN(text) RESXSTR(list resource, tag) WRNUM(language, numer, part)
DATE

(day, month, year)

 

TRUNC(number) LN(number) WEEKNUM(year start, first week, date) RESSTR(string resource)

 

IF(expression, value1, value2)

 

AFTER(days, year) ERATE

(date, currency)

POWER

(base, exponent)

 

STR(number) CRESSTR(list id., tag)

 

ÖRNEK FONKSİYONLARIN KULLANIMI

MIN(number, number)

Fonsiyonun içerindeki sayılardan küçük olanı verir.

Program kullanım :      MIN(5, 6)=5

Sğl Kullanım : SELECT MIN(DATE_) FROM LG_035_01_STLINE

Örnek:  İlk son eklenen faturanın tarihi

SELECT MIN(DATE_) FROM LG_035_01_INVOICE WHERE GRPCODE=2 AND CLIENTREF=4778

—————————————————————————————–

MAX(number, number)

Fonsiyonun içerindeki sayılardan büyük olanı verir.

Program kullanım :      MAX(5, 6)     =             6

Sğl Kullanım : SELECT MIN(DATE_) FROM LG_035_01_STLINE

Örnek: En son eklenen faturanın tarihi

SELECT max(DATE_) FROM LG_035_01_INVOICE WHERE GRPCODE=2 AND CLIENTREF=4778

—————————————————————————————–

MOD(number, divisor)

Bir sayının diğer bir sayıya bölündüğünde kalanı verir.

Program kullanım :      MOD(37, 6)   =1   /   MOD(42, 7)=0

Sql Kullanım : Select 10 % 3

—————————————————————————————–

DIV(number, divisor)

Bir sayının diğer bir sayıya bölündüğünde bölümü verir.

Program kullanım :      DIV(35,6)=5   / DIV(42, 7)=6

Sql Kullanım : Select 10 / 3

—————————————————————————————–

ABS(number)

Bir sayının mutlak değerini alır.

Program kullanım : ABS(7) =7  / ABS(-7)=7

Sql Kullanım : select ABS(-23)

—————————————————————————————–

VAL(text)

Metin olarak yazılmış bir sayıyı sayı formatına çevirir.

Program kullanım :VAL(“1000”)=1000

Sql Kullanım : SELECT CAST(100 AS INT)

SELECT CONVERT(INT, 100)

VAL(STR(100))

—————————————————————————————–

STRLEN(text)

Seçilen metnin kaç karakterden oluştuğu bilgisini verir. Türü sayıdır.

Program kullanım :          STRLEN(“abcdefg”) =7   / STRLEN(“999”)                =                     3

Sql Kullanım :                     SELECT LEN(NAME) FROM LG_035_ITEMS

—————————————————————————————–

SUBSTR(text, start, length)

Seçilen metin alanı istenilen karakterden başlayarak istenilen uzunlukta yazmak için kullanılır.

Program kullanım :SUBSTR(“abcdef”,2,3)                       =bcd  / SUBSTR(“abcdef”,1,4)=abcd

Sql Kullanım : SELECT SUBSTRING(NAME,9,LEN(NAME)) FROM LG_035_ITEMS

—————————————————————————————–

STR(text)

Sayı olarak tanımlanmış alanı metin formatında yazar.

Program kullanım :          STR(1234)=1234

Sql Kullanım :                     SELECT STR(12345)

SELECT STR(12345)+’ABC’

—————————————————————————————–

DATESTR(date, format)

Verilen tarihi metne çevirerek istenen formatta yazar.

Program kullanım :          DATESTR(DATE(23,12,2013),1)=12.23.2013   /  DATESTR(DATE(23,12,2013),2)=        23.12.2013

Sql Kullanım :         SELECT CONVERT(VARCHAR(10), DATE_, 111) AS [YYYY/MM/DD] FROM LG_035_01_INVOICE

SELECT CONVERT(VARCHAR(10), DATE_, 112) AS [YYYYMMDD] FROM LG_035_01_INVOICE

SELECT REPLACE(CONVERT(VARCHAR(10), DATE_, 111),’/’,’_’) AS [YYYY MM DD]  FROM LG_035_01_INVOICE

SELECT UPPER(REPLACE(CONVERT(VARCHAR,DATE_,6),’ ‘,’-‘)) AS [DD MM YY] FROM LG_035_01_INVOICE

SELECT CONVERT(VARCHAR(10), DATE_, 110) AS [YYYY/MM/DD] FROM LG_035_01_INVOICE

—————————————————————————————–

DATE(day, month, year)

Gün, ay ve yıl bilgisine göre tarih formatına çevirir.

Program kullanım :DATE(31, 12, 2013)=31.12.2013

Sql Kullanım :                SELECT convert(datetime, ’10/23/2016’, 101) — ay/gun/yıll

SELECT convert(datetime, ‘2016.10.23’, 102) — yıll.ay.gun

SELECT convert(datetime, ’23/10/2016′, 103) — gun/ay/yıll

SELECT convert(datetime, ‘23.10.2016’, 104) — gun.ay.yıll

SELECT convert(datetime, ’23-10-2016′, 105) — gun-ay-yıll

SELECT convert(datetime, ’23 OCT 2016′, 106) — gun mon yıll

SELECT convert(datetime, ‘Oct 23, 2016’, 107) — mon gun, yıll

 

SELECT

CAST(CONVERT(datetime,DATE_) as bigint) AS DATETOINT1,

CONVERT(bigint,CONVERT(datetime,DATE_))  AS DATETOINT2,

CAST(CONVERT(datetime,DATE_) as bigint) AS DATETOINT3

FROM LG_035_01_STLINE

 

—————————————————————————————–

AFTER(days, date)

Bir tarihten verilen gün sayısı kadar sonraki tarihi verir.

Program kullanım : AFTER(10, DATE(10,02,2001))=20.02.2001

AFTER(10, [Günün tarihi])=15.02.2001 (Günün tarihi 05.02.2001 ise)

AFTER(-25,[Günün Tarihi])

Sql Kullanım : select (DATE_-10),(DATE_+10) from LG_035_01_INVOICE

—————————————————————————————–

DAYS(firstdate, lastdate)

İki tarih arasındaki gün sayısını verir.

Program kullanım : DAYS(DATE(13,10,2013), DATE(21,10,2013))=8   / DAYS([Günün Tarihi],[AFTER KULLANIMI])

Sql Kullanım :                     select DateDiff(mm,DATE_,CAPIBLOCK_CREADEDDATE) from LG_035_01_INVOICE

select DateDiff(hh,DATE_,CAPIBLOCK_CREADEDDATE) from LG_035_01_INVOICE

select DateDiff(DAYOFYEAR,DATE_,CAPIBLOCK_CREADEDDATE) from LG_035_01_INVOICE

select DateDiff(YYYY,DATE_,CAPIBLOCK_CREADEDDATE) from LG_035_01_INVOICE

örnek: Faturanın oluşturulma tarihi ile fatura tarihi farklı olanlar

select * from LG_035_01_INVOICE WHERE DateDiff(mm,DATE_,CAPIBLOCK_CREADEDDATE)>0

—————————————————————————————–

DAYOF(date)

Verilen tarihin gününü verir.

Program kullanım :          DAYOF(DATE(10,12,2000))=10   / DAYOF([Günün Tarihi])=14

Sql Kullanım :                     SELECT DAY(DATE_) FROM LG_035_01_INVOICE

—————————————————————————————–

MONTHOF(date)

Verilen tarihin ayını verir.

Program kullanım :          MONTHOF(DATE(10,12,2000))=12    / MONTHOF([Günün Tarihi])=6

Sql Kullanım :        SELECT MONTH(DATE_) FROM LG_035_01_INVOICE

Örnek: Ocak ayı toplam satış fatura adedi

SELECT COUNT(LOGICALREF) FROM LG_035_01_INVOICE WHERE  MONTH(DATE_)=1 AND GRPCODE=2

—————————————————————————————–

YEAROF(date)

Verilen tarihin yılını verir.

Program kullanım :          YEAROF (DATE(10,12,2000))=2000  / YEAROF([Günün Tarihi])=2013

Sql Kullanım :        SELECT YEAR(DATE_) FROM LG_035_01_INVOICE

—————————————————————————————–

WDAYOF(date)

Verilen tarihin haftanın kaçıncı günü olduğunu verir.

Program kullanım :          WDAYOF (DATE(30,03,2001))             =5

Sql Kullanım :                     SELECT DATEPART (DW, DATE_),DATE_ FROM LG_035_01_INVOICE  —Haftanın kaçıncı günü

SELECT DATEPART (wk, DATE_),DATE_ FROM LG_035_01_INVOICE  —Haftayı almak için

SELECT DATEPART (dy, DATE_),DATE_ FROM LG_035_01_INVOICE  —Yılın kaçıncı günü

SELECT DATEPART (qq, DATE_),DATE_ FROM LG_035_01_INVOICE  —Yılın kaçıncı çeyreği

SELECT DATEPART (hh, DATE_),DATE_ FROM LG_035_01_INVOICE  —Saat bilgisini almak için

SELECT DATEPART (mi, DATE_),DATE_ FROM LG_035_01_INVOICE  —Dakika bilgisini almak için

SELECT DATEPART (ss, DATE_),DATE_ FROM LG_035_01_INVOICE  —Saniye bilgisini almak için

SELECT DATEPART (ms, DATE_),DATE_ FROM LG_035_01_INVOICE  —Milisaniye bilgisini almak için

—————————————————————————————–

ROUND(number)

Verilen sayıyı en yakın tamsayıya çevirir.

Program kullanım :          ROUND(5.25)                     =5/                 ROUND(5.61)                     =6

Sql Kullanım :                     SELECT ROUND(DEBIT,2) FROM LG_035_01_EMFLINE

—————————————————————————————–

TRUNC(number)

Verilen sayının ondalıklı kısmını kaldırarak tamsayıya çevirir.

Program kullanım :          TRUNC(5.25)=5 / TRUNC(26.85)=26

Sql Kullanım :                     SELECT FLOOR(NETTOTAL),NETTOTAL FROM LG_035_01_INVOICE

 

—————————————————————————————–

IF(expression, value1, value2)

Belirtilen koşul (expression) sağlanıyorsa birinci değeri(value1); sağlanmıyorsa ikinci değeri (value2) getirir. Türü sayıdır.

IF(2*2=4, “İki kere iki dört eder”, 1500)                  =                     İki kere iki dört eder

IF(2*2=100, “İki kere iki dört eder”, 1500)             =                     1500

Sql Kullanım  1:   SELECT IIF(ACTIVE=1,’KULLANIMDA’,’KULLANIM DIŞI’) AS STATU FROM LG_035_ITEMS

 

Sql Kullanım 2:   SELECT

CASE

WHEN ACTIVE = 1 THEN’Kullanımda’

WHEN ACTIVE = 0 THEN’Kullanım Dışı’

END’statü’

FROM LG_035_ITEMS

—————————————————————————————-

ERATE(date, currency)

İstenilen döviz cinsinin, otomatik kullanımda olan türünün, belli tarihteki kurunu getirir.

Program kullanım :          ERATE(DATE(13,06,2013),20)  —05.05.2002 tarihine girilen EURO kurunu getirir

—————————————————————————————–

CREATE(date, base curr., base rate, dest curr)

İstenilen dövizli tutarın çapraz kurla çevrilen değerini getirir.

Program kullanım :          CREATE(DATE(13,06,2013),1,1500,20) = 1.453,25

USD kurun 1,89 TL, EURO kurun da 2,55 TL olduğunu kabul edelim. 1500 EURO’nun bu tarihteki USD karşılığını bulmak için CREATE fonksiyonu yukarıdaki şekilde kullanılır ve fonksiyon 1.789,68 sonucunu bulur. (Matematiksel formül: 1.500*2.55/1,89)

—————————————————————————————–

STRPOS(search string, string)

Metin içersinde aranacak olan karakterin metnin kaçıncı karakteri olduğu bilgisini verir.

Program kullanım :             STRPOS(“E”,”KALEM”) =                                             4

Sql Kullanım :           SELECT PATINDEX(‘%A%’,NAME),NAME FROM  LG_035_ITEMS

—————————————————————————————–

FLOOR(number)

Verilen sayıyı kendisinden küçük en yakın tamsayıya çevirir.

Program kullanım :          FLOOR(2,8)=2   / FLOOR(-2,8)=-3

Sql Kullanım :          SELECT FLOOR(NETTOTAL) FROM LG_035_01_INVOICE

—————————————————————————————–

CEIL(number)

Verilen sayının ondalık kısmını 1’e tamamlayarak tamsayıya çevirir.

Program kullanım :          CEIL(15.25)=16  /  CEIL(15.75)=16

Sql Kullanım :           SELECT CEILING(NETTOTAL) FROM LG_035_01_INVOICE

—————————————————————————————–

FRAC(number)

Verilen sayıdan sayının tamsayı kısmını çıkardıktan sonra kalan sayıyı 0 ve +/-1 den yakın olanına çevirir.

Program kullanım :           FRAC(3,15)= 0  / FRAC(-3,15)=0   / FRAC(3,75)  = 1   /  FRAC(-3,75)=        -1

Sql Kullanım :

—————————————————————————————–

EXP(number)

Doğal logaritma(ln) fonksiyonunun tersidir. Doğal logaritma fonksiyonunun tabanının (e) verilen sayı kadar kendisi ile çarpımının en yakın olduğu tamsayıyı verir.

Program kullanım :          EXP(1)=3 (e’nin yaklaşık değeri)  /   EXP(2)=7

—————————————————————————————-

LN(number)

Doğal logaritma fonksiyonudur. “e” tabanına göre logartima fonksiyonunu sonucunu en aykın tamsayıya çevirir..

Program kullanım :          LN(2)             =1   /              EXP (LN (5))=5

—————————————————————————————

POWER(base, exponent)

Bir sayının belirtilen kuvvetini verir.

Program kullanım :           POWER(9,2)=81(92)   /  POWER(2,3)                        =8(23)

Sql Kullanım :          select POWER(9,2)

—————————————————————————————–

SQR(number)

Bir sayının karesini (kendisi ile çarpımını) verir.

Program kullanım :          SQR(2)=4    /  SQR(7)=49

Sql Kullanım :

—————————————————————————————–

SQRT(number)

Bir sayının karekökünü verir.

Program kullanım :          SQRT(81)=9 / SQRT(225)=15

Sql Kullanım :         select SQRT(49)

—————————————————————————————–

COS(number)

Bir sayının (radyan cinsinden verilen açının) cosinüsünü verir.

COS(0)   =             1

—————————————————————————————–

SIN(number)

Bir sayının (radyan cinsinden verilen açının) sinüsünü verir.

—————————————————————————————–

TAN(number)

Bir sayının (radyan cinsinden verilen açının) tanjantını verir.

—————————————————————————————–

WEEKNUM(year start, first week, date)

İlgili tarihin yılın kaçıncı haftası olduğuna dair bilgi getirir. First week parametresi MS Outlook’ta olduğu gibi çalışır.

1: Yılın ilk haftası Ocak 1 ile başlar

2: İlk 4 günlük hafta yılın ilk haftasıdır (Ocak 1 Cuma ise yılın ilk haftası ayın 4’ü ile baslıyor)

3: İlk tam hafta yılın ilk haftasıdır.

WEEKNUM (DATE(01,01,2002),1, Teslim tarihi)

—————————————————————————————–

MONTHSTR(month)

Verilen sayıya karşılık gelen ayı metin olarak yazar.

MONTHSTR(2)=Şubat   /                        MONTHSTR(12)                =Aralık

—————————————————————————————–

 

WDAYSTR(weekday)

Verilen sayıya karşılık gelen günü metin olarak yazar.

WDAYSTR(3)=Çarşamba   /   WDAYSTR(5)=Cuma

—————————————————————————————–

NUMSTR(number, decimals, format)

Verilen sayıyı metne çevirerek istenen formatta yazar.

NUMSTR(1234,3,1)          =                     1234

NUMSTR(1234,3,6)          =                     1234,000 %

NUMSTR(1234,2,7)          =                     1.234,00

NUMSTR(-1234,1,1)        =                     1.234,0 (A)

—————————————————————————————–

TIMESTR(time, format)

Verilen saat bilgisini metne çevirerek istenen formatta yazar.

—————————————————————————————–

RESXSTR(list source, tag)

Resource klasörü altında bulunan LRF uzantılı dosyalardaki liste numarası (list source) ve bu numaralı listedeki eleman numarasına (tag) karşılık gelen metni getirir.

RESXSTR(25550,1)          =                     Stok kodu

RESXSTR(25550,2)          =                     Stok açıklaması

—————————————————————————————–

RESSTR(string resource)

Resource klasörü altında bulunan LRF uzantılı dosyalardaki metinleri getirir.

RESSTR(29057)                =Uygun kayıt bulunamamıştır.

—————————————————————————————–

CRESSTR(list id., tag)

—————————————————————————————–

UPCASE(text)

Verilen metni büyük harflerle yazar.

UPCASE(“Text”)                 =                     TEXT

—————————————————————————————–

LOWCASE(text)

Verilen metni küçük harflerle yazar.

LOWCASE(“Text”)             =                     text

—————————————————————————————–

TRIMSPC(text, option)

Seçilen metnin başındaki ve/veya sonundaki boşlukları atar.

TRIMSPC(“   ABC   ”,1)     =                     ABC

TRIMSPC(“   ABC   ”,2)     =                        ABC

TRIMSPC(“   ABC   ”,3)     =                     ABC

—————————————————————————————–

JUSTIFY(text, direction, fill, length)

Seçilen metni istenilen uzunlukta yazar. Metinde oluşan boşlukları istenen karakterle doldurur.

JUSTIFY(STR(4),1,“0”,3) =                     004

JUSTIFY(“ABC”,2,“F”,7)   =                     FFABCFF

—————————————————————————————–

WRNUM(language, number, part)

Bir sayının tamsayı ya da ondalık kısmının belirtilen dilde yazı haline getirir.

Dillere (language) karşılık gelen sayılar  Logoset.cfg dosyalarında tanımlanmıştır. (1=Türkçe, 2=İngilizce, 4=Almanca…) Tamsayı kısmın istenen dilde yazılması için part’a 1, kuruş hanesinin yazılması içinse part’a 2 değeri verilir.

WRNUM(1,100,1)                                     =                     Yüz

WRNUM(2,1000,1)                                  =                     OneThousand

WRNUM(1,100.05,2)       =                     Beş

WRNUM(4,100.05,1)       =                     Ein(s)Hundert

 

WRNUM(1,[Fatura Net Toplamı],1) = TL Tutar gelir

WRNUM(1,[Fatura Net Toplamı],2) = TL kuruş hane gelir

—————————————————————————————-