Çoğu faturaların, çeklerin, senetlerin vb tutarlarının yanında yazı ile yaılmaları gerekmektedir. Son günlerde duyduğum bir ihtiyaçtan dolayı bu çeviri işlemini MySQL veritabanı üzerinde sorgu esnasında yapmak durumunda kaldım. Şimdi bu kodu sizlerle paylaşıyorum: MYSQL CREATE DEFINER = 'adminuser'@'%' FUNCTION `number_to_string`( n DOUBLE(15,2) ) RETURNS varchar(100) CHARSET latin5 NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE ans varchar(2000); DECLARE dig1, dig2, dig3 VARCHAR(20); DECLARE uclukler, ucluklerTers int; DECLARE tam, ondalik CHAR(30); DECLARE strNum CHAR(3); DECLARE strNumKalan CHAR(30); DECLARE ind int; SET uclukler = 0; SET ucluklerTers = 0; SET ans = ''; SET strNumKalan = ''; -- Tam Ondalık kısmı alır SET strNumKalan = CAST(n AS CHAR(30)); SET strNumKalan = REPLACE(strNumKalan, ',', '.'); SET ondalik = SUBSTRING_INDEX(strNumKalan,'.',-1); SET tam = SUBSTRING_INDEX(strNumKalan,'.',1); -- Tam kısımda kaçtane 3 lü parça var WHILE FLOOR(tam/ POW(1000, uclukler)) > 0 DO SET uclukler = uclukler +1; END WHILE; SET strNumKalan = tam; -- Tam kısım parçalanması WHILE (uclukler > 0) DO -- Kelimelere dokulcek kısmı ayır IF(ucluklerTers = 0) THEN Set ind = LENGTH(strNumKalan)%3; IF(ind = 0) THEN SET ind = 3; END IF; SET strNum = SUBSTRING(strNumKalan, 1, ind); SET strNumKalan = CONCAT('', SUBSTRING(strNumKalan, LENGTH(strNum)%3 +1)); ELSE SET strNum = SUBSTRING(strNumKalan, 1, 3); SET strNumKalan = CONCAT('', SUBSTRING(strNumKalan, 4)); END IF; SET uclukler = uclukler -1; SET ucluklerTers = ucluklerTers +1; -- 100luk 10luk 1lik kısımları al IF (LENGTH(strNum) = 3) THEN SET dig3 = SUBSTRING(strNum, 1, 1); SET dig2 = SUBSTRING(strNum, 2, 1); SET dig1 = SUBSTRING(strNum, 3, 1); ELSEIF(LENGTH(strNum) = 2) then SET dig3 = '0'; SET dig2 = SUBSTRING(strNum, 1, 1); SET dig1 = SUBSTRING(strNum, 2, 1); ELSE SET dig3 = '0'; SET dig2 = '0'; SET dig1 = SUBSTRING(strNum, 1, 1); END IF; -- Cümleye dök IF NOT(dig3 = '0' AND dig2 = '0' AND dig1 = '1' AND uclukler = 1) THEN IF dig3 <> '0' THEN CASE WHEN dig3='1' THEN SET ans=CONCAT(ans, 'Yüz'); WHEN dig3='2' THEN SET ans=CONCAT(ans, 'İkiyüz'); WHEN dig3='3' THEN SET ans=CONCAT(ans, 'Üçyüz'); WHEN dig3='4' THEN SET ans=CONCAT(ans, 'Dörtyüz'); WHEN dig3='5' THEN SET ans=CONCAT(ans, 'Beşyüz'); WHEN dig3='6' THEN SET ans=CONCAT(ans, 'Altıyüz'); WHEN dig3='7' THEN SET ans=CONCAT(ans, 'Yediyüz'); WHEN dig3='8' THEN SET ans=CONCAT(ans, 'Sekizyüz'); WHEN dig3='9' THEN SET ans=CONCAT(ans, 'Dokuzyüz'); ELSE SET ans = ans; END CASE; END IF; IF dig2 <> '0' THEN CASE WHEN dig2='1' THEN SET ans=CONCAT(ans, 'On'); WHEN dig2='2' THEN SET ans=CONCAT(ans, 'Yirmi'); WHEN dig2='3' THEN SET ans=CONCAT(ans, 'Otuz'); WHEN dig2='4' THEN SET ans=CONCAT(ans, 'Kırk'); WHEN dig2='5' THEN SET ans=CONCAT(ans, 'Elli'); WHEN dig2='6' THEN SET ans=CONCAT(ans, 'Altmış'); WHEN dig2='7' THEN SET ans=CONCAT(ans, 'Yetmiş'); WHEN dig2='8' THEN SET ans=CONCAT(ans, 'seksen'); WHEN dig2='9' THEN SET ans=CONCAT(ans, 'Doksan'); ELSE SET ans=ans; END CASE; END IF; IF dig1 <> '0' THEN CASE WHEN dig1='1' THEN SET ans=CONCAT(ans, 'Bir'); WHEN dig1='2' THEN SET ans=CONCAT(ans, 'İki'); WHEN dig1='3' THEN SET ans=CONCAT(ans, 'Üç'); WHEN dig1='4' THEN SET ans=CONCAT(ans, 'Dört'); WHEN dig1='5' THEN SET ans=CONCAT(ans, 'Beş'); WHEN dig1='6' THEN SET ans=CONCAT(ans, 'Altı'); WHEN dig1='7' THEN SET ans=CONCAT(ans, 'Yedi'); WHEN dig1='8' THEN SET ans=CONCAT(ans, 'Sekiz'); WHEN dig1='9' THEN SET ans=CONCAT(ans, 'Dokuz'); ELSE SET ans=ans; END CASE; END IF; END IF; IF(dig3 <> '0' OR dig2 <> '0' OR dig1 <> '0' ) THEN CASE WHEN uclukler = 2 THEN SET ans=CONCAT(ans, 'Milyon'); WHEN uclukler = 1 THEN SET ans=CONCAT(ans, 'Bin'); ELSE SET ans=ans; END CASE; END IF; END WHILE; IF(ans<>'') THEN SET ans=CONCAT(ans, 'Lira'); END IF; -- Kurus kısmı IF(LENGTH(ondalik) = 1) THEN SET dig2 = '0'; SET dig1 = SUBSTRING(ondalik, 1, 1); ELSE SET dig2 = SUBSTRING(ondalik, 1, 1); SET dig1 = SUBSTRING(ondalik, 2, 1); END IF; IF dig2 <> '0' THEN CASE WHEN dig2='1' THEN SET ans=CONCAT(ans, 'On'); WHEN dig2='2' THEN SET ans=CONCAT(ans, 'Yirmi'); WHEN dig2='3' THEN SET ans=CONCAT(ans, 'Otuz'); WHEN dig2='4' THEN SET ans=CONCAT(ans, 'Kırk'); WHEN dig2='5' THEN SET ans=CONCAT(ans, 'Elli'); WHEN dig2='6' THEN SET ans=CONCAT(ans, 'Altmış'); WHEN dig2='7' THEN SET ans=CONCAT(ans, 'Yetmiş'); WHEN dig2='8' THEN SET ans=CONCAT(ans, 'Seksen'); WHEN dig2='9' THEN SET ans=CONCAT(ans, 'Doksan'); ELSE SET ans=ans; END CASE; END IF; IF dig1 <> '0' THENn CASE WHEN dig1='1' THEN SET ans=CONCAT(ans, 'Bir'); WHEN dig1='2' THEN SET ans=CONCAT(ans, 'İki'); WHEN dig1='3' THEN SET ans=CONCAT(ans, 'Üç'); WHEN dig1='4' THEN SET ans=CONCAT(ans, 'Dört'); WHEN dig1='5' THEN SET ans=CONCAT(ans, 'Beş'); WHEN dig1='6' THEN SET ans=CONCAT(ans, 'Altı'); WHEN dig1='7' THEN SET ans=CONCAT(ans, 'Yedi'); WHEN dig1='8' THEN SET ans=CONCAT(ans, 'Sekiz'); WHEN dig1='9' THEN SET ans=CONCAT(ans, 'Dokuz'); ELSE SET ans=ans; END CASE; END IF; IF(dig2 <> '0' OR dig1 <> '0' ) THEN SET ans=CONCAT(ans, 'Kurus'); END IF; RETURN TRIM(ans); END; HTML <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <title></title> <script type="text/javascript"> function cevir(){ var el=document.getElementById('inp1'); var el2=document.getElementById('inp2'); if(el.value.length==1 && el.value==0) return el2.value="sıfır"; var basamak=[ [0,"","","","bin",""], [1,"bir","on","yüz","bin","on"], [2,"iki","yirmi","iki yüz","iki bin","yirmi"], [3,"üç","otuz","üç yüz","üç bin","otuz"], [4,"dört","kırk","dört yüz","dört bin","kırk"], [5,"beş","elli","beş yüz","beş bin","elli"], [6,"altı","altmış","altı yüz","altı bin","altmış"], [7,"yedi","yetmiş","yedi yüz","yedi bin","yetmiş"], [8,"sekiz","seksen","sekiz yüz","sekiz bin","seksen"], [9,"dokuz","doksan","dokuz yüz","dokuz bin","doksan"] ]; var arr=[]; for(var n=0, b=el.value.length; n<el.value.length; n++,b--) { for(var i=0; i<10; i++) { if(el.value.charAt(n)==basamak[i][0]) arr[arr.length]=basamak[i][b]; } } el2.value=arr.join(" "); } </script> </head> <body> <input type="text" id="inp1" value=""> <input type="button" value="yazıya çevir" onclick="cevir()" > <input type="text" id="inp2" > </body> </html> (Kaynak: http://forum.ceviz.net/javascript-dhtml-ajax/57534-sayiyi-yaziya-cevirme.html) ORACLE CREATE OR REPLACE FUNCTION spell_number (p_number IN NUMBER) RETURN VARCHAR2 AS TYPE myArray IS TABLE OF VARCHAR2 (255); l_str myArray := myArray ('', ' thousand ', ' million ', ' billion ', ' trillion ', ' quadrillion ', ' quintillion ', ' sextillion ', ' septillion ', ' octillion ', ' nonillion ', ' decillion ', ' undecillion ', ' duodecillion '); l_num VARCHAR2 (50) DEFAULT TRUNC (p_number); l_return VARCHAR2 (4000); BEGIN FOR i IN 1 .. l_str.COUNT LOOP EXIT WHEN l_num IS NULL; IF (SUBSTR (l_num, LENGTH (l_num) - 2, 3) <> 0) THEN l_return := TO_CHAR (TO_DATE (SUBSTR (l_num, LENGTH (l_num) - 2, 3), 'J'), 'Jsp') || l_str (i) || l_return; END IF; l_num := SUBSTR (l_num, 1, LENGTH (l_num) - 3); END LOOP; RETURN l_return; END; / SELECT spell_number (53734555555585) FROM DUAL; (Kaynak: http://viralpatel.net/blogs/convert-number-into-words-oracle-sql-query/) .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Tags: , | Categories: SQL | HTML | Javascript | Oracle

Mart 1005

Statik Div

Statik Div ne işe yarar? Sayfanızın içinde öyle bir menünüz olsun ki, sayfanın neresine giderseniz gidin, o menünün görünmesini istiyorsunuz. İlla menü olmak zorunda değil, herhangi bir veri yada bağlantı da olabilir. İşte bu isteğinizi statik div karşılıyor. Örnek; sol tarafta yer alan sosyal ağ bağlantılarım sayfanın neresine giderseniz gidin, hep sizle birlikte gelmekte. Ben bu işlem için style.css dosyasına internette dolaşırken bulduğum kodları koydum: html, body { margin:0; padding:0; height:100%; } .layout { position:relative; margin: 0 auto; border:solid 1px #000000; border-bottom:0; border-top:0; width:762px; min-height:100%; } .statictopbar { font-family: "Century Gothic"; font-size: 12px; color: #999999; height: 30px; border:solid 0px #000000; width:150px; position: fixed; top:0; left:50%; margin-left:-600px; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Zaten burda işlem bitti sayılır. Sadece bu yeni css sınıfını kullanmak kaldı. Onu da şu şekilde kullanabilirsiniz: <div class="statictopbar"> <a id="twitter" href="http://twitter.com/makcura" title="Twitter"> <img src="http://www.makcura.com/pics/twitter.png" width="30" height="30" style="opacity: 0.4; filter: alpha(opacity=40)" onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100" onmouseout="this.style.opacity=0.4;this.filters.alpha.opacity=40" alt="twitter" /></a> </div> Bu div’i body içinde herhangi bir yere koyabiliriz. Hiçbir sorun çıkmayacaktır. .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } Tags: | Categories: HTML