Sayfalar

12 Eylül 2019 Perşembe

MSSQL Server Sorgu Sonucunu Mail ile excel dosyasını ek göndermek

declare @tab char(1) = char(9)

EXECUTE msdb.dbo.sp_send_dbmail 
 --@profile_name = 'Profile',
@recipients=@Kime, 
@copy_recipients =@KimeCC,
@blind_copy_recipients='xxxx@test.com',
@subject = @KONU,
 @execute_query_database = 'DB Ismi' /* Sorgunun çalıştırılacağı veritabanı */
,@body = @tableHTML , 
@body_format = 'HTML'
,@profile_name = 'Profil İsmi'
,@append_query_error = 1
, @query = @RaporSorgusu /* Mail ile gönderilmek istenen sorgu */
, @query_result_header = 1 /* (0, 1 [default]) Sorgu sonucu kolon başlıklarını da içerir. */
, @attach_query_result_as_file = 1 /* (0 [default], 1) Sorgu sonucu dosya eki olarak gönderilir. */
, @query_attachment_filename = 'testExcel.xls' /* Sorgu sonuç dosyasının adı */
, @query_result_separator = @tab /* Sorguda kolonları ayırmak için kullanılacak karakter. */
, @mailitem_id = 0 ; /* Gönderilen mesaja ait mailitem_id değerini döndürür. */

Not: @tab tuşu excele aktarılan verinin kolonlar halinde gözükmesini sağlıyor. yoksa tüm kolonlar aynı satırda gözüküyor

17 Mayıs 2017 Çarşamba

Oracle Metin Fonksiyonları

Oracle Metin Fonksiyonları

||: Sağında ve solunda verilen string ifadeleri birleştirir.
Concat: Yukarıdaki işlemin aynısını yapar.
RPad: Üç parametre alır. İlk parametre sonuna ekleme yapılacak string ifadedir. İkinci parametre kaç karaktere tamamlanacağı ve son parametre ise hangi karakterle doldurulacağıdır. İşlem string ifadenin sağı için yapılır.
LPad: Yukarıdaki işlem string ifadenin sol tarafı için uygulanır.
RTrim: String ifadenin sağında verilen parametreyi çıkartan fonksiyondur.
LTrim: Yukarıdaki işlemi sol taraf için uygular.
Trim: RTrim ve LTrim işlemlerinin birleşmiş halidir. Her iki taraf için uygular.
Lower: String ifadeyi küçük harflerden oluşan yapıya dönüştürür.
Initcap: Kelimenin veya kelimelerin baş harfini büyük harfe çevirir.
Upper: Harfleri büyük harflere çevirir.
Length: Metnin kaç karakterden oluştuğunu belirtir.
Substr: Metnin belli bir bölümünü almamızı sağlar. İlk parametre string ifadeyi belirtir. İkinci parametre kaçıncı karakterden itibaren alınacağını, son parametre ise kaç karakter alınacağını belirtir. Eğer son parametre verilmezse sonuna kadar işlem yapılır.
Instr: Metin içinde yine bir metin veya karakter aramada kullanılır. Arama yapılacak metin, aranılacak metin, başlangıç indisi ve kaç defa yineleme yapılacağı aldığı parametrelerdir.
Chr: Parametre olarak verilen sayının karakter karşılığını verir.
Ascii: Parametre olarak verilen harfin sayı karşılığını verir.
Yukarıdaki fonksiyonlara ait kısa örnekler aşağıda tablo içerisinde verilmiştir.
select ‘bu ‘ || ‘birlestirme ‘ || ‘ ornegi’ as birlestirmesonucu from dual;
select concat(‘merhaba ‘, ‘oracle’) from dual;
select rpad(‘Ocak’, 10, ‘.’), rpad(‘Haziran’, 10, ‘.’) from dual;
select lpad(‘Ocak’, 10, ‘.’), lpad(‘Haziran’, 10, ‘.’) from dual;
select ltrim(lpad(‘Ocak’, 10, ‘.’), ‘.’) from dual;
select rtrim(rpad(‘Ocak’, 10, ‘.’), ‘.’) from dual;
select trim(‘.’ from ‘…Ocak………..’) from dual;
select lower(‘ORACLE’) as kucuk from dual;
select upper(‘oracle’) as buyuk from dual;
select initcap(‘merhaba oracle’) as basHarfler from dual;
select length(‘bu cumle kac karakter’) as uzunluk from dual;
select substr(‘Ankara’, 3, 4) from dual;
select substr(‘Ankara’, 3) from dual;
select instr(‘merhaba oracle’, ‘r’, 1, 2) from dual;
select chr(65) as harf from dual;
select ascii(‘A’) from dual;

18 Ocak 2017 Çarşamba

Netsis Dinamik Kodlama ile Trigger Disable


Netsis Dinamik Kodlama ile Trigger Disable

set rs = Netsiscore.Netlibdb.GetNewQuery
sorgu = "disable trigger ebtrg_ucret_d ON perrc..TBLSICIL"
rs.recsql(sorgu)
rs.close
set rs= nothing

Sql server giriş error domain\username 18456


Sql server giriş error domain\username 18456

Sql server auth şifresini unuttuysanız ve windows auth. ile bağlanmaya çalıştığınızda 18456 hatası alıyorsanız sebebi ;
Sql serverın kurulduğu windows kullanıcısı ile , windowsa login olup sonrasında windows auth ile deneyebilirsiniz.

17 Ocak 2017 Salı

Netsis Stok kodu açıldığında mail


Netsis Stok kodu açıldığında mail

Stok kartı kayıtları formunda ,stokmas_inq - beforepost event aşağıdaki script kullanılabilir.

SET QRY =NETSISCORE.NetLibDB.GetNewQuery
STR= "SELECT COUNT(*) FROM TBLSTSABIT WHERE STOK_KODU='" & STOK_KODUDB.TEXT & "'"
QRY.RECSQL(STR)
If QRY.FIELDS(0).ASINTEGER=0 Then
Dim mail,cc,subject,icerik
mail="sdikmenli@abana.com.tr"
cc="smetin@abana.com.tr"
subject= "Yeni Acilan Stok"
icerik ="NETSISISLEM" & CHR(10) & CHR(10) & "<p>"
icerik = icerik + ""
icerik = icerik + "<B>Stok Kodu:</B>" & STOK_KODUDB.TEXT & "<br/>"
icerik = icerik + "<B>Stok Adi :</B>" & STOK_ADI.TEXT
call netsiscore.NetLibEMail.EPostaGonder(mail,cc,subject,"",icerik)
End If

Netsis Rapor kolon sıralaması değiştirmek


Netsis Rapor kolon sıralaması değiştirmek

Trapor form\Rapor kapanis event ,

‘ilk olarak araya 2 kolon ekleniyor
‘4 sabit degeri, shilt columns anlamina gelmektedir.
‘1 : baslangic satir numarasi
‘6: baslangic kolon numarasi
‘ diger 2 parametre bitis degerlerini gostermektedir.

RAPORBOOK.InsertRange 1, 6, 16384, 7, 4

‘ilk 2 parametre : baslangic & bitis satir, sutun degegeri
‘sonra 2 parametre : bitis…
‘0: satir degisiklik degeri
‘-4: secili alani 4 geriye getir…

RAPORBOOK.MoveRange 1, 10, 16384, 11, 0, -4

Netsis Modül Geçiş


Netsis Modül Geçiş

Örneğin cari kart tanımlarken cari irtibat bilgilerine geçmek istersek ,
Set WshShell = CreateObject("WScript.Shell") 'Alt + K WshShell.SendKeys ("%K") 'Cari irtibat bilgileri
WshShell.SendKeys ("C") 'Enter WshShell.SendKeys ("{ENTER}")

Netsis Şirketler arası Çek aktarımı

Netsis Şirketler arası Çek aktarımı

set sorgu9=netsiscore.NetLibDB.GetNewQuery

cumle9 = "SELECT DB_NAME() AS SIRKET"

sorgu9.RecSQL(cumle9)

VTADI = sorgu9.fieldbyname("SIRKET").AsString

IF NETSISCORE.NetLibSession.AktifProgramNo=3 AND PROJE_KODU.TEXT="K" THEN

Set Kernel = CreateObject("NetOpenX50.Kernel")

Set Sirket = Kernel.yeniSirket(vtMSSQL, "DENEME13", "TEMELSET", "", "NETSIS", "NET1", NetsisCore.NetLibSession.LogicalSegmentValue)

Set HSirket = Kernel.yeniSirket(vtMSSQL, "GUNTAS13", "TEMELSET", "", "NETSIS", "NET1", NetsisCore.NetLibSession.LogicalSegmentValue)

Set CekSenetAna = Kernel.yeniCekSenAna(Sirket, csMCEK)

Set HCekSenetAna = Kernel.yeniCekSenAna(HSirket, csMCEK)

Set CekSenetOkunan = CekSenetAna.OkunanCS

Set HCekSenet = HCekSenetAna.EvrakYeni

If CekSenetAna.kayitOku(4, " sc_alb_no='"&sc_alb_no.text&"' " ) Then

MsgBox "kayit açildi"

CekSenetAna.kayitOku (0)

HCekSenet.SC_NO=CekSenetOkunan.SC_NO

HCekSenet.GIRIS_BORDRO=CekSenetOkunan.GIRIS_BORDRO

HCekSenet.SC_GIRTRH=CekSenetOkunan.SC_GIRTRH

HCekSenet.VADETRH=CekSenetOkunan.VADETRH

HCekSenet.SC_CIKTRH=CekSenetOkunan.SC_CIKTRH

HCekSenet.SC_ODETRH=CekSenetOkunan.SC_ODETRH

HCekSenet.SC_VERENK=CekSenetOkunan.SC_VERENK

HCekSenet.SC_ABORCLU=CekSenetOkunan.SC_ABORCLU

HCekSenet.AS_C=CekSenetOkunan.AS_C

HCekSenet.SC_VERILENK=CekSenetOkunan.SC_VERILENK

HCekSenet.SC_VERYCM=CekSenetOkunan.SC_VERYCM

HCekSenet.SC_BANKNO=CekSenetOkunan.SC_BANKNO

HCekSenet.SC_SONDUR=CekSenetOkunan.SC_SONDUR

HCekSenet.SC_YERI=CekSenetOkunan.SC_YERI

HCekSenet.RAPOR_KODU=CekSenetOkunan.RAPOR_KODU

HCekSenet.SC_VERB_NO=CekSenetOkunan.SC_VERB_NO

HCekSenet.YERI=CekSenetOkunan.YERI

HCekSenet.C_NUMARA=CekSenetOkunan.C_NUMARA

HCekSenet.GIRILDIGIYER=CekSenetOkunan.GIRILDIGIYER

HCekSenet.CEKSERI=CekSenetOkunan.CEKSERI

HCekSenet.Tutar=CekSenetOkunan.Tutar

HCekSenet.Proje_Kodu=CekSenetOkunan.Proje_Kodu

Hceksenet.Dovtip=CekSenetOkunan.Dovtip

Hceksenet.Dovtut=CekSenetOkunan.Dovtut

Hceksenet.CEK_SUBE=CekSenetOkunan.CEK_SUBE

Hceksenet.CEK_IL=CekSenetOkunan.CEK_IL

Hceksenet.CEK_ILCE=CekSenetOkunan.CEK_ILCE
Set sorgu2 = Netsiscore.Netlibdb.GetNewQuery

cumle2 = "update GUNTAS13..TBLMCEKNO SET SUBE_KODU=0, SERI=LEFT('"&CekSenetOkunan.SC_NO&"',1),SIRA_NO='"&CekSenetOkunan.SC_NO&"',ALB_NO='"&SC_ALB_NO.TEXT&"' "

sorgu2.recsql (cumle2)

HCekSenetAna.EvraklariKaydet (ektCekSenAlma)

Set sorgu = Netsiscore.Netlibdb.GetNewQuery

cumle = "select count(*) from TBLMCEK WHERE sc_alb_no='"&sc_alb_no.text&"'"

sorgu.recsql (cumle)

SAY = sorgu.Fields(0).AsInteger

for i=2 to SAY

CekSenetAna.KayitOku(1)

HCekSenet.SC_NO=CekSenetOkunan.SC_NO

HCekSenet.GIRIS_BORDRO=CekSenetOkunan.GIRIS_BORDRO

HCekSenet.SC_GIRTRH=CekSenetOkunan.SC_GIRTRH

HCekSenet.VADETRH=CekSenetOkunan.VADETRH

HCekSenet.SC_CIKTRH=CekSenetOkunan.SC_CIKTRH

HCekSenet.SC_ODETRH=CekSenetOkunan.SC_ODETRH

HCekSenet.SC_VERENK=CekSenetOkunan.SC_VERENK

HCekSenet.SC_ABORCLU=CekSenetOkunan.SC_ABORCLU

HCekSenet.AS_C=CekSenetOkunan.AS_C

HCekSenet.SC_VERILENK=CekSenetOkunan.SC_VERILENK

HCekSenet.SC_VERYCM=CekSenetOkunan.SC_VERYCM

HCekSenet.SC_BANKNO=CekSenetOkunan.SC_BANKNO

HCekSenet.SC_SONDUR=CekSenetOkunan.SC_SONDUR

HCekSenet.SC_YERI=CekSenetOkunan.SC_YERI

HCekSenet.RAPOR_KODU=CekSenetOkunan.RAPOR_KODU

HCekSenet.SC_VERB_NO=CekSenetOkunan.SC_VERB_NO

HCekSenet.YERI=CekSenetOkunan.YERI

HCekSenet.C_NUMARA=CekSenetOkunan.C_NUMARA

HCekSenet.GIRILDIGIYER=CekSenetOkunan.GIRILDIGIYER

HCekSenet.CEKSERI=CekSenetOkunan.CEKSERI

HCekSenet.Tutar=CekSenetOkunan.Tutar

HCekSenet.Proje_Kodu=CekSenetOkunan.Proje_Kodu

Hceksenet.Dovtip=CekSenetOkunan.Dovtip

Hceksenet.Dovtut=CekSenetOkunan.Dovtut

Hceksenet.CEK_SUBE=CekSenetOkunan.CEK_SUBE

Hceksenet.CEK_IL=CekSenetOkunan.CEK_IL

Hceksenet.CEK_ILCE=CekSenetOkunan.CEK_ILCE
Set sorgu3 = Netsiscore.Netlibdb.GetNewQuery

cumle3 = "update GUNTAS13..TBLMCEKno SET SUBE_KODU=0, SERI=LEFT('"&CekSenetOkunan.SC_NO&"',1),SIRA_NO='"&CekSenetOkunan.SC_NO&"',ALB_NO='"&SC_ALB_NO.TEXT&"' "

sorgu3.recsql (cumle3)

sorgu3.close

set sorgu3= nothing

HCekSenetAna.EvraklariKaydet (ektCekSenAlma)
next
sorgu2.close

set sorgu2= nothing

sorgu.close

set sorgu= nothing

end if

Set HCekSenet = Nothing

'Set CekSenet = Nothing

Set Sirket = Nothing

Set CekSenetOkunan = Nothing

Call Kernel.FreeNetsisLibrary

Set Kernel = Nothing

END IF

sorgu9.close

set sorgu9 = Nothing