Delphi Array Fonksiyon

Delphi ile array birden fazla veri döndürmeye yarar

type
  TMyArray = array[1..10] of string; // Genel bir array türü tanımlıyoruz bu türü göndereceğiniz bilgilere göre boyutunu ayarlıyabilirsiniz


Function TAnaF.Get_StokBilgi(StokKodu:String):TMyArray;
var
  Qry: TUniQuery;
Begin
  Qry := TuniQuery.Create(Self);
  Qry.Connection := EtaMasterDB;
  DataSetAcUnidac(Qry,'STKKART','STKKOD,STKCINSI,STKBIRIM,STKGENKDVNO','STKKOD = ' + QuotedStr(StokKodu));
  Result[1] := Qry.FieldByName('STKCINSI').AsString;
  Result[2] := Qry.FieldByName('STKBIRIM').AsString;
  Result[3] := Qry.FieldByName('STKGENKDVNO').AsString;

  Qry.Close;
  FreeAndNil(Qry);

End;

Kullanımı


procedure TAnaF.Button1Click(Sender: TObject);
var
   StokBilgi : TMyArray;
begin
  StokBilgi := Get_StokBilgi(Fatura_QStok_Kodu.AsString);
  ShowMessage(StokBilgi[1]);
  ShowMessage(StokBilgi[2]);
  ShowMessage(StokBilgi[3]);
end;

Delphi FTP dosya gönderme
function TAnaF.FtpDosyaGonder (IdFTP : TIdFTP; SrcDosya, DesDosya:TFileName; RemoteDir: String;FtpAdr,FtpUser,FtpSifre:String ):string;
var
  FtpC: TIdFTP;
  yil: Word;
  ay: Word;
  gun: Word;
begin
  DecodeDate(date,yil,ay,gun);
  FtpC := TIdFTP.Create(Self);
  Result := '';
  with FtpC do
  Begin
    Disconnect;

    AutoLogin     :=  IdFTP.AutoLogin;
    AutoIssueFEAT := IdFTP.AutoIssueFEAT;
    IPVersion     := IdFTP.IPVersion;
    TransferType  := IdFTP.TransferType;
    ReadTimeout   := IdFTP.ReadTimeout;
    ListenTimeout := IdFTP.ListenTimeout;
    Passive       := IdFTP.Passive;

    Host      := FtpAdr;
    Username  := FtpUser;
    Password  := FtpSifre;
    Connect;
  End;

     Application.ProcessMessages;
  If FtpC.Connected then
  begin
    FtpC.ChangeDir(RemoteDir);

     try
        FtpC.MakeDir(RemoteDir+'/'+yil.ToString);     // Klasör oluşturmayı dene
        FtpC.ChangeDir(RemoteDir+'/'+yil.ToString);  // oluşturulan klasöre bağlan
      except
        FtpC.ChangeDir(RemoteDir+'/'+yil.ToString); // eğer klasör varsa klasöre git 
      end;

    Try
      Application.ProcessMessages;
 //     FtpC.TransferType := ftBinary; // Uses kısmına IdFTPCommon
 eklenmeli
      FtpC.Put(DesDosya,SrcDosya, False);
    Finally
      Result := SiteURL.Text+'/'+yil.ToString+'/'+SrcDosya; //gönderilen yıl bazlı klasöre yükler
      FtpC.Quit;
    end;
        Application.ProcessMessages;
  end;
  FtpC.Disconnect;
  FreeAndNil(FtpC);


end;

Kullanımı

procedure TAnaF.Button1Click(Sender: TObject);
var
    dosya: string;
    Mesaj: string;
begin
  dosya :='0860472212.png';
  Mesaj := FtpDosyaGonder(FtpConnection,dosya,TempFileYolu + dosya,FtpYol.Text,FTPAdres.Text,FtpKullanici.Text,FtpSifre.Text);
  ShowMessage(Mesaj);
end;

Delpi Xing QR Code Oluşturma

Uses kısmına DelphiZXIngQRCode eklenmeli ve DelphiZXIngQRCode.pas dosyası projeye dahil edilmeli

procedure TAnaF.QROlustur(QrData:String;);
var
  QRCode: TDelphiZXingQRCode;
  Row, Column: Integer;
    Bitmap: TBitmap;
  Source: TRect;
  Dest: TRect;
  Png: TPngImage;
begin
  sleep(100);
  QRCode := TDelphiZXingQRCode.Create;
  try
    QRCode.Data := QrData;
    QRCode.Encoding := TQRCodeEncoding(5);
    QRCode.QuietZone := StrToIntDef('4', 4);
    QRCodeBitmap.SetSize(QRCode.Rows, QRCode.Columns);
    for Row := 0 to QRCode.Rows - 1 do
    begin
      for Column := 0 to QRCode.Columns - 1 do
      begin
        if (QRCode.IsBlack[Row, Column]) then
        begin
          QRCodeBitmap.Canvas.Pixels[Column, Row] := clBlack;
        end else
        begin
          QRCodeBitmap.Canvas.Pixels[Column, Row] := clWhite;
        end;
      end;
    end;
  finally
    QRCode.Free;
  end;

  PaintBox1.Repaint;
  Application.ProcessMessages;
  sleep(100);
  Application.ProcessMessages;
  

  Bitmap := TBitmap.Create;

  try
    with Bitmap do
    begin
      Width := 170;
      Height := 170;
      Dest := Rect(0, 0, Width, Height);
    end;
    with PaintBox1 do
      Source := Rect(0, 0, Width, Height);
      Bitmap.Canvas.CopyRect(Dest, PaintBox1.Canvas, Source);
      Png :=  TPngImage.Create;
          Application.ProcessMessages;
      Png.Assign(Bitmap);
          Application.ProcessMessages;
      png.SaveToFile(KayitEdilecekKlasorYolu+'dosyaadi.png');
        Png.Free;
  finally
    Bitmap.Free;
        Application.ProcessMessages;

  end;
end;

Kullanımı

QROlustur('QrCode içine gelecek string data');
E-Fatura Banka Bilgileri Ekleme

E-fatura xml template bölümünde id=”notesTable” alanının altına eklediğiniz de notlar alanında gözükecektir

<br>
<table width="770" align="left" height="80">
	<tbody>
		<tr align="left">
			<td id="notesTableTd" style="width:3%">
				<span style="font-weight:bold;">
					<xsl:text>BANKA -1</xsl:text><br>
					<xsl:text>BANKA -2</xsl:text><br>					 
				</span>
			</td>
			
			<td id="notesTableTd" style="width:3%">
				<span style="font-weight:bold; ">
					<xsl:text>BANKA1-ŞUBE</xsl:text><br>
					<xsl:text>BANKA2-ŞUBE</xsl:text><br>				 
				</span>
			</td>
			
			<td id="notesTableTd" style="width:1%">
				<span>			 
					<xsl:text>TL Hesabı</xsl:text><br>
					<xsl:text>TL Hesabı</xsl:text><br>														
				</span>
			</td>
			
			<td id="notesTableTd" style="width:7%">
				<span style="font-weight:bold;">
					<xsl:text>BANKA-1 IBAN</xsl:text><br>
					<xsl:text>BANKA-2 IBAN</xsl:text><br>						 
				</span>
			</td>
		</tr>
	</tbody>
</table>

BANKA -1
BANKA -2
BANKA1-ŞUBE
BANKA2-ŞUBE
TL Hesabı
TL Hesabı
BANKA-1 IBAN
BANKA-2 IBAN

E-Fatura Teslim Alan Teslim Eden Ekleme

E-fatura xml template bölümünde id=”notesTable” alanının altına eklediğiniz de notlar alanında gözükecektir

 
	<table border="1"  width="100%"  height="150">
		<tbody>
			<tr>
				<td width="50%" align="center" height="20" >
					<b>Teslim Alan</b>
				</td>
				
				<td width="50%" align="center" height="20">
					<b>Teslim Eden</b>
				</td>
			</tr>
			<tr>
				<td width="50%" align="center" ></td>
				<td width="50%" align="center"></td>
			</tr>
		</tbody>
 </table>
Teslim Alan Teslim Eden
SQL Configration Kısayolları

SQL Configration kısayolu bilgisayarınızda yok ise aşağıdaki kısayollardan configration u çalıştırabilirsiniz

SQL Server 2016

C:\Windows\SysWOW64\SQLServerManager13.msc

SQL Server 2014

C:\Windows\SysWOW64\SQLServerManager12.msc

SQL Server 2012

C:\Windows\SysWOW64\SQLServerManager11.msc

SQL Server 2008

C:\Windows\SysWOW64\SQLServerManager10.msc
MsSQL Server Link Server Script

MsSQL Server da iki farklı server daki databaseleri tek bir server gibi birbirine linkleyerek kullanmamamızı sağlar

exec sp_addlinkedserver @server='LinkserverAdı', @srvproduct='', @provider='SQLOLEDB', @datasrc='BağlanacakServer'
exec sp_addlinkedsrvlogin 'LinkServerAdı', 'False', Null, 'SQL USER', 'SQL ŞİFRE'

SQL Server Log Dosyası Küçültme

SQL server log dosyası küçültme sql script kodu

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY SIMPLE
GO


USE   DatabaseName
DBCC SHRINKFILE (DatabaseName_Log, 500)
GO

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY FULL
GO