Sayfayı Yazdır | Pencereyi Kapat

ORTVADE fonksiyon hk.

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: ERP Genel
Forum Adı: ERP ve Excel
Forum Tanımlaması: ERP'den Excel'e Veri Çekmek ve Excel İle İlgili Bilgiler ve Sorular İçin...
URL: http://www.erpne.org/forum_posts.asp?TID=4403
Tarih: 22 Kasım 2024 Saat 08:38
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: ORTVADE fonksiyon hk.
Mesajı Yazan: dbicer83
Konu: ORTVADE fonksiyon hk.
Mesaj Tarihi: 16 Eylül 2016 Saat 14:54
Merhabalar,
Asagidaki kodu buldum fakat çalistiramiyorum.
Nerede hata yapiyorum.
Yardimlarinizi için simdiden tesekkürler.


create FUNCTION [dbo].[ORTVADE](@FIRMA_ID varchar(10), @YIL_ID int) RETURNS SMALLDATETIME

AS

BEGIN

DECLARE @REFDATE SMALLDATETIME

DECLARE @Bakiye DECIMAL(38,2)

DECLARE @xBA VARCHAR(1)

DECLARE CariOZET_Cursor CURSOR FOR

SELECT bakiye FROM Cariozet

WHERE (FIRMAKODU = @FIRMA_ID) AND (YIL = @YIL_ID)

OPEN CariOZET_Cursor

FETCH NEXT FROM CariOZET_Cursor

INTO @Bakiye

CLOSE CariOZET_Cursor

DEALLOCATE CariOZET_Cursor

IF @Bakiye >= 0 SET @xBA = 'B'

ELSE SET @xBA = 'A'

SET @REFDATE = Getdate()-2000

DECLARE @SAdat Float, @SBakiye Float, @Flag int

DECLARE @VADETAR SMALLDATETIME, @BA VARCHAR(1), @BORC Float, @ALACAK float

DECLARE CariEkstre_Cursor CURSOR FOR

SELECT Vadetar, BA, BORC, ALACAK FROM CariEkstre

WHERE (FIRMAKODU = @FIRMA_ID) AND (YIL = @YIL_ID) AND (BA = @xBA)

ORDER BY VADETAR DESC

OPEN CariEkstre_Cursor

FETCH NEXT FROM CariEkstre_Cursor

INTO @VADETAR, @BA, @BORC, @ALACAK

SET @SAdat=0

SET @SBakiye = 0

SET @FLAG = @@FETCH_STATUS

WHILE (@FLAG = 0 )

BEGIN

IF @xBA = 'B'

BEGIN

If @SBakiye + @Borc > @Bakiye

BEGIN

SET @SAdat=@SAdat + (@Bakiye - @SBakiye) * CONVERT(float, @VADETAR - @RefDate)

SET @SBakiye = @Bakiye

SET @Flag=1

END

ELSE

BEGIN

SET @SBakiye = @SBakiye + @Borc

SET @SAdat=@SAdat + @BORC * CONVERT(float, @VADETAR - @RefDate)

END

END

ELSE

BEGIN

If @SBakiye + @Alacak > @Bakiye

BEGIN

SET @SAdat=@SAdat + (@Bakiye - @SBakiye) * CONVERT(float, @VADETAR - @RefDate)

SET @SBakiye = @Bakiye

SET @Flag=1

END

ELSE

BEGIN

SET @SBakiye = @SBakiye + @Alacak

SET @SAdat=@SAdat + @Alacak * CONVERT(float, @VADETAR - @RefDate)

END

END

FETCH NEXT FROM CariEkstre_Cursor

INTO @VADETAR, @BA, @BORC, @ALACAK

IF @@FETCH_STATUS <> 0 SET @Flag=1

END

CLOSE CariEkstre_Cursor

DEALLOCATE CariEkstre_Cursor

RETURN @REFDATE + FLOOR(@SAdat / @SBakiye)

END



Cevaplar:
Mesajı Yazan: sercanakgok
Mesaj Tarihi: 20 Eylül 2016 Saat 13:19
Merhaba,
gönderdiginiz kod bir fonksiyon tanimlama için.
Ancak netsis tablolari için hazirlanmamis. En azindan standart tablolardan degil.
Siz de o tablolar tanimli olmadigi için fonksiyon olusmuyor muhtemelen.

Eger olussa idi istediginiz cari ile ilgili raporda
DBO.UDF_ORTVADE(CARI_KOD)

seklinde bir alan ekleyip kullanabilirdiniz.


Mesajı Yazan: dbicer83
Mesaj Tarihi: 20 Eylül 2016 Saat 19:29
Orjinalini yazan: sercanakgok sercanakgok Yazdı:

Merhaba,
gönderdiginiz kod bir fonksiyon tanimlama için.
Ancak netsis tablolari için hazirlanmamis. En azindan standart tablolardan degil.
Siz de o tablolar tanimli olmadigi için fonksiyon olusmuyor muhtemelen.

Eger olussa idi istediginiz cari ile ilgili raporda
DBO.UDF_ORTVADE(CARI_KOD)

seklinde bir alan ekleyip kullanabilirdiniz.
Ilgili tabloyu nasil yapabilirim 
Tesekkürler 



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net