Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Rakam ve Karakterli Toplama
#19
Bununla ilgili genel olarak kullandığım SQL Function var. Belge Nosunu arttırıyor.

CREATE FUNCTION [dbo].[tekfunc_FATNOVER](@TIP VARCHAR(2),@SERI VARCHAR(5),@SUBE_KODU INT)
RETURNS @FATNOTEMP TABLE (FATURANO VARCHAR(15))
AS
BEGIN
DECLARE @FATUNO VARCHAR(15)
DECLARE @CEVRILEN VARCHAR(15)
DECLARE @I INT
DECLARE @TMP INT
DECLARE @TEMP VARCHAR(15)
DECLARE @TEMP1 VARCHAR(15)


IF @SERI<>''
BEGIN
SELECT @FATUNO = (SELECT TOP 1 NUMARA FROM TBLFATUNO WHERE TIP=@TIP AND SERI=@SERI AND SUBE_KODU=@SUBE_KODU)
END
IF @SERI=''
BEGIN
SELECT @FATUNO = (SELECT TOP 1 NUMARA FROM TBLFATUNO WHERE TIP=@TIP AND SERI IS NULL AND SUBE_KODU=@SUBE_KODU)
END

SELECT @I=(SELECT LEN(@FATUNO))
SELECT @CEVRILEN=''

/** TERS CEVIR **/
WHILE @I>0
BEGIN
SELECT @CEVRILEN=@CEVRILEN+SUBSTRING(@FATUNO,@I,1)
SELECT @I=@I-1
END
/** TERS CEVIR **/

SELECT @I=0
WHILE @I<(SELECT LEN(@FATUNO))
BEGIN
SELECT @I=@I+1
        IF SUBSTRING(@CEVRILEN,@I,1)='9'
        BEGIN
            SELECT @CEVRILEN=LEFT(@CEVRILEN,@I-1)+'0'+RIGHT(@CEVRILEN,15-@I)
            CONTINUE
        END ELSE
        IF SUBSTRING(@CEVRILEN,@I,1)<9 OR SUBSTRING(@CEVRILEN,@I,1)>=0
        BEGIN
        SELECT @TEMP=SUBSTRING(@CEVRILEN,@I,1)+1
        SELECT @TMP=@I
        BREAK
        END

    IF SUBSTRING(@CEVRILEN,@I,1)='Z'
        BEGIN
        SELECT @CEVRILEN=LEFT(@CEVRILEN,@I-1)+'A'+RIGHT(@CEVRILEN,15-@I)
        CONTINUE
        END ELSE
        IF SUBSTRING(@CEVRILEN,@I,1)<'Z' OR SUBSTRING(@CEVRILEN,@I,1)>='A'
        BEGIN
        SELECT @TEMP=ASCII(SUBSTRING(@CEVRILEN,@I,1))
        SELECT @TEMP=SUBSTRING(@CEVRILEN,@I,1)+1
        SELECT @TEMP=CHAR(@TEMP)
        SELECT @TMP=@I
        BREAK
        END
END/** WHILE SONU**/
SELECT @I=0

WHILE @I<LEN(@FATUNO)
BEGIN
SELECT @I=@I+1
IF @TMP=@I
    IF SUBSTRING(@TEMP,1,1)<=9 OR SUBSTRING(@TEMP,1,1)>=0
    BEGIN
    SELECT @CEVRILEN=LEFT(@CEVRILEN,@I-1)+SUBSTRING(@TEMP,1,1)+RIGHT(@CEVRILEN,15-@I)
    END ELSE
    BEGIN
    SELECT @CEVRILEN=LEFT(@CEVRILEN,@I-1)+SUBSTRING(@TEMP,1,1)+RIGHT(@CEVRILEN,15-@I)
    END
    SELECT @CEVRILEN=LEFT(@CEVRILEN,@I-1)+SUBSTRING(@CEVRILEN,@I,1)+RIGHT(@CEVRILEN,15-@I)
END

SELECT @FATUNO=@CEVRILEN
SELECT @I=(SELECT LEN(@FATUNO))
SELECT @CEVRILEN=''
WHILE @I>0
BEGIN
SELECT @CEVRILEN=@CEVRILEN+SUBSTRING(@FATUNO,@I,1)
SELECT @I=@I-1
END

SELECT @FATUNO=@CEVRILEN
INSERT INTO @FATNOTEMP VALUES (@FATUNO)      
RETURN
Delphi Kod : 
Function TersCevir(no:String):String;
var
   Cevrilen:String;
   i:Integer;
Begin
   i:= 0;
   Cevrilen := '';
   For i := length(no) DownTo 1 Do
   Begin
       Cevrilen := Cevrilen + no[i];
   End;
   Result := Cevrilen;
End;

Function Numarator(no:String):String;
var
   Nmr, Temp, Temp1:String;
   Temp2:Char;
   i, Tmp:Integer;
Begin
   nmr := TersCevir(no);
   i:= 0;
   while i < length(no) Do
   Begin
       i := i + 1;
       if nmr[i] = '9' Then
       begin
           nmr[i] := '0';
           continue;
       End
       Else
       if (nmr[i] < '9') and (nmr[i] >= '0') Then
       Begin
           Temp := inttostr(StrToInt(nmr[i]) + 1);
           Tmp := i;
           Break;
       end;
       if nmr[i] = 'Z' Then
       begin
           nmr[i] := 'A';
           continue;
       End
       Else
       if (nmr[i] < 'Z') or (nmr[i] >= 'A') Then
       Begin
           Temp := inttostr(ord(nmr[i]));
           Temp := intToStr(StrToInt(Temp) + 1);
           Temp := Chr(StrToInt(Temp));
           Tmp := i;
           Break;
       end;
   End;
   i:= 0;
   while i < length(no) do
   Begin
       i := i + 1;
       if tmp = i Then
           if (temp[1] <= '9') and (temp[1] >= '0')  Then
               nmr[i] := temp[1]
           Else
           Begin
               nmr[i] := Temp[1];
           End;
       nmr[i] := nmr[i];
   End;

   result := TersCevir(nmr);
End;
Cevapla


Bu Konudaki Yorumlar
Rakam ve Karakterli Toplama - Yazar: OZCANK - 15-04-2019, Saat: 08:24
Rakam ve Karakterli Toplama - Yazar: 3ddark - 15-04-2019, Saat: 08:41
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 16-04-2019, Saat: 07:47
Cvp: Rakam ve Karakterli Toplama - Yazar: Tuğrul HELVACI - 15-04-2019, Saat: 08:48
Rakam ve Karakterli Toplama - Yazar: adelphiforumz - 15-04-2019, Saat: 11:29
Cvp: Rakam ve Karakterli Toplama - Yazar: Tuğrul HELVACI - 15-04-2019, Saat: 12:02
Cvp: Rakam ve Karakterli Toplama - Yazar: adelphiforumz - 15-04-2019, Saat: 16:21
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 15-04-2019, Saat: 12:16
Cvp: Rakam ve Karakterli Toplama - Yazar: adelphiforumz - 15-04-2019, Saat: 12:36
Rakam ve Karakterli Toplama - Yazar: mrmarman - 16-04-2019, Saat: 08:51
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 16-04-2019, Saat: 10:10
Cvp: Rakam ve Karakterli Toplama - Yazar: Tuğrul HELVACI - 16-04-2019, Saat: 10:41
Cvp: Rakam ve Karakterli Toplama - Yazar: SimaWB - 16-04-2019, Saat: 10:53
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 16-04-2019, Saat: 11:03
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 16-04-2019, Saat: 12:11
Rakam ve Karakterli Toplama - Yazar: uparlayan - 16-04-2019, Saat: 11:10
Rakam ve Karakterli Toplama - Yazar: uparlayan - 16-04-2019, Saat: 12:15
Rakam ve Karakterli Toplama - Yazar: SimaWB - 16-04-2019, Saat: 12:15
Cvp: Rakam ve Karakterli Toplama - Yazar: elixir84 - 16-04-2019, Saat: 12:30
Cvp: Rakam ve Karakterli Toplama - Yazar: OZCANK - 16-04-2019, Saat: 12:47
Cvp: Rakam ve Karakterli Toplama - Yazar: SimaWB - 16-04-2019, Saat: 13:03

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  fastreport nesnesinde ki memoları tek memo da toplama nmtsltn 13 2.091 23-11-2018, Saat: 15:53
Son Yorum: mcuyan
  Parayı çarpma ve toplama işlemi serhat 15 3.113 17-06-2017, Saat: 22:35
Son Yorum: meko



Konuyu Okuyanlar: 1 Ziyaretçi