E-Fatura önizleme nasıl yapabilirim ?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
E-Fatura önizleme nasıl yapabilirim ?
Merhaba,
E-fatura oluşturup web servisleri kullanarak entegratör üzerinden GIB'e gönderme işlemini yapıyorum. Fakat kullanıcılar satış faturasını oluşturduktan sonra GIB'e göndermeden önce ubl (xml) dosyasını oluşturduktan sonra kontrol amaçlı yazılım üzerinde önizleme yapmak istiyorlar. Bunu yapan başka uygulamalar var görüyorum. Nasıl yapılabileceğiyle ilgili araştırma yaptım fakat açıkçası çok net bir bilgiye ulaşamadım. Ubl (xml) datayı nasıl önizleme yapabilirim ? Bu konuda tecrübesi olan arkadaşlar yardımcı olabilirlerse çok sevinirim. Şimdiden çok teşekkür ediyorum.
E-fatura oluşturup web servisleri kullanarak entegratör üzerinden GIB'e gönderme işlemini yapıyorum. Fakat kullanıcılar satış faturasını oluşturduktan sonra GIB'e göndermeden önce ubl (xml) dosyasını oluşturduktan sonra kontrol amaçlı yazılım üzerinde önizleme yapmak istiyorlar. Bunu yapan başka uygulamalar var görüyorum. Nasıl yapılabileceğiyle ilgili araştırma yaptım fakat açıkçası çok net bir bilgiye ulaşamadım. Ubl (xml) datayı nasıl önizleme yapabilirim ? Bu konuda tecrübesi olan arkadaşlar yardımcı olabilirlerse çok sevinirim. Şimdiden çok teşekkür ediyorum.
Re: E-Fatura önizleme nasıl yapabilirim ?
En kolay tarayiciyi kullanarak yaparsiniz. e-fatura icinde ek olarak xslt dilinde hazirlanmis gorsel bulunur. tarayicilar xslt dilini destekler. ubl icine gorseli siz mi koyuyorsunuz bilmiyorum. koymuyorsaniz bile entegratordeki bir ubl icinden gorsel ekini alabilirsiniz.sonrasinda bunu tarayicida cagirmaniz yeterli olacaktir.
Fatura xml'inin ilk satirindan sonra fatura gorsel dosyasinin adini belirtmeniz gerekir.
Fatura xml'inin ilk satirindan sonra fatura gorsel dosyasinin adini belirtmeniz gerekir.
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl "href="Gorsel.xslt" ?>
Re: E-Fatura önizleme nasıl yapabilirim ?
mkysoft merhaba,
Öncelikle cevabınız için çok teşekkür ediyorum. Dediğiniz gibi yaptım 1 tane xslt şablonunu xml datanın olduğu klasöre attım. Sonra dediğiniz
satırı ilk satırın altına ekledim fakat xml datayı tarayıcı ile açtığımda hala aşağıda görüldüğü şekilde geliyor önizleme gelmiyor. Yalnız tarayıcı nedenini anlayamadığım bir hata veriyor "This XML file does not appear to have any style information associated with it. The document tree is shown below". Aşağıda xml datanın üst kısmını ve tarayıcıda açılan halini paylaşıyorum.
XML Data
Tarayıcıda açılmış hali
Öncelikle cevabınız için çok teşekkür ediyorum. Dediğiniz gibi yaptım 1 tane xslt şablonunu xml datanın olduğu klasöre attım. Sonra dediğiniz
satırı ilk satırın altına ekledim fakat xml datayı tarayıcı ile açtığımda hala aşağıda görüldüğü şekilde geliyor önizleme gelmiyor. Yalnız tarayıcı nedenini anlayamadığım bir hata veriyor "This XML file does not appear to have any style information associated with it. The document tree is shown below". Aşağıda xml datanın üst kısmını ve tarayıcıda açılan halini paylaşıyorum.
XML Data
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl "href="Default.xslt" ?>
<Invoice xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 UBL-Invoice-2.1.xsd" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" xmlns:ubltr="urn:oasis:names:specification:ubl:schema:xsd:TurkishCustomizationExtensionComponents" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent></ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>TR1.2</cbc:CustomizationID>
<cbc:ProfileID>TICARIFATURA</cbc:ProfileID>
Kod: Tümünü seç
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<?xml-stylesheet type="text/xsl "href="Default.xslt" ?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ccts="urn:un:unece:uncefact:documentation:2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" xmlns:ubltr="urn:oasis:names:specification:ubl:schema:xsd:TurkishCustomizationExtensionComponents" xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2" xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 UBL-Invoice-2.1.xsd">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent/>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>TR1.2</cbc:CustomizationID>
<cbc:ProfileID>TICARIFATURA</cbc:ProfileID>
Re: E-Fatura önizleme nasıl yapabilirim ?
Selam,
copy-paste yaparkern hata olmus, ek bosluk olmus.
<?xml-stylesheet type="text/xsl" href="Default.xslt" ?>
Bu arada chrome'da deniyorsunuz local dosyayi guvenlik nedeniyle yuklemiyor, tarayici consolundan gorebilirsiniz guvenlik uyarisini. Diger tarayicilar ile deneyebilirsiniz.
Full ornek.
xml
xslt
copy-paste yaparkern hata olmus, ek bosluk olmus.
<?xml-stylesheet type="text/xsl" href="Default.xslt" ?>
Bu arada chrome'da deniyorsunuz local dosyayi guvenlik nedeniyle yuklemiyor, tarayici consolundan gorebilirsiniz guvenlik uyarisini. Diger tarayicilar ile deneyebilirsiniz.
Full ornek.
xml
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xslt" ?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
</catalog>
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Re: E-Fatura önizleme nasıl yapabilirim ?
Selam,
Dediğiniz gibi boşluktan dolayı hata veriyormuş, boşluğu kaldırınca hata vermedi. Yöntemi anladım öncelikle yardımlarınız için çok teşekkür ediyorum. Yalnız ben chrome kullanmıyorum microsoft edge'de açıyorum xml datayı fakat sayfa boş geldi. Bunun üzerine Ayarlar-->Varsayılan Tarayıcılar--> Sitelerin internet explorer modunda yeniden yüklenmesine izin ver seçeneğine "İzin ver" seçerek sayfayı görüntüleyebiliyorum. Edge ile doğrudan görüntüleme yapmayı başaramadım. Bu seçeneği işaretleyince siteyi (efatura adresini) kaydediyor ve bir sonraki seferde otomatik açıyor ama her seferinde efatura datası değiştiği için bu durumda faturayı görüntüleyebilmek için her seferinde her data için bu ayarı yapmak gerekiyor. Bir yerde bir yanlışlık var sanırım veya edgede bir ayar yapılması gerekiyor ama bulamadım. Umarım bununda bir çözümü vardır, eğer bu sorunda kalkarsa işimiz çözülmüş olacak.
Dediğiniz gibi boşluktan dolayı hata veriyormuş, boşluğu kaldırınca hata vermedi. Yöntemi anladım öncelikle yardımlarınız için çok teşekkür ediyorum. Yalnız ben chrome kullanmıyorum microsoft edge'de açıyorum xml datayı fakat sayfa boş geldi. Bunun üzerine Ayarlar-->Varsayılan Tarayıcılar--> Sitelerin internet explorer modunda yeniden yüklenmesine izin ver seçeneğine "İzin ver" seçerek sayfayı görüntüleyebiliyorum. Edge ile doğrudan görüntüleme yapmayı başaramadım. Bu seçeneği işaretleyince siteyi (efatura adresini) kaydediyor ve bir sonraki seferde otomatik açıyor ama her seferinde efatura datası değiştiği için bu durumda faturayı görüntüleyebilmek için her seferinde her data için bu ayarı yapmak gerekiyor. Bir yerde bir yanlışlık var sanırım veya edgede bir ayar yapılması gerekiyor ama bulamadım. Umarım bununda bir çözümü vardır, eğer bu sorunda kalkarsa işimiz çözülmüş olacak.
Re: E-Fatura önizleme nasıl yapabilirim ?
Merhaba,
EDGE artık Chromium tabanlı. Internet Explorer artık geliştirilmiyor.
Tavsiye edilen yöntem aslen Internet Explorer ile çalışır. Ancak Chromium tabanlı uygulamalar için günümüzde XML + XSLT -> HTML dönüşümü yaparak browser üzerinde HTML dosyayı göstermeniz gerekiyor. Aşağıdaki bağlantıda bunu nasıl yapabileceğinize dair örnek bulabilirsiniz. Kabul edilmiş cevabı incelemeniz yeterli.
https://stackoverflow.com/questions/540 ... ng-an-xslt
EDGE artık Chromium tabanlı. Internet Explorer artık geliştirilmiyor.
Tavsiye edilen yöntem aslen Internet Explorer ile çalışır. Ancak Chromium tabanlı uygulamalar için günümüzde XML + XSLT -> HTML dönüşümü yaparak browser üzerinde HTML dosyayı göstermeniz gerekiyor. Aşağıdaki bağlantıda bunu nasıl yapabileceğinize dair örnek bulabilirsiniz. Kabul edilmiş cevabı incelemeniz yeterli.
https://stackoverflow.com/questions/540 ... ng-an-xslt
Re: E-Fatura önizleme nasıl yapabilirim ?
@ertank'nin paylastigi sekilde html donusumunu siz yaparak tarayicida gosterebilirsiniz. Paylasilan link gordugum kadariyla msxml engine'i kullaniyor. Ne kadar guncel bilmiyorum ama bu fatura tasarimini yapanlar genelde tarayici uzerinde deneme yaparak gelisitiyor ve genelde hatalarla dolu. Bu nedenle kullanilan ceviriciden ceviriciye farkliliklar olabiliyor. Ya da surekli ayni dosya adini gosterebilirsiniz. Chrome ile sanki command line'da hatayi yok sayarak acmanin bir yolu vardi: https://stackoverflow.com/questions/382 ... local-file
Re: E-Fatura önizleme nasıl yapabilirim ?
Merhaba,ertank yazdı: ↑02 Şub 2023 04:30 Merhaba,
EDGE artık Chromium tabanlı. Internet Explorer artık geliştirilmiyor.
Tavsiye edilen yöntem aslen Internet Explorer ile çalışır. Ancak Chromium tabanlı uygulamalar için günümüzde XML + XSLT -> HTML dönüşümü yaparak browser üzerinde HTML dosyayı göstermeniz gerekiyor. Aşağıdaki bağlantıda bunu nasıl yapabileceğinize dair örnek bulabilirsiniz. Kabul edilmiş cevabı incelemeniz yeterli.
https://stackoverflow.com/questions/540 ... ng-an-xslt
Belirttiğiniz kodu inceledim ve uyguladım fakat çalıştıramadım. mkysoft'un örnek olarak verdiği ve explorer ile açılan Test.xml ve Test.xslt kullandım. E_FATURAGOSTER düğmesine bastığımda aşağıda ki hatayı veriyor.
- "Stil sayfası bir belge öğesi içermiyor. Stil sayfası boş olabilir veya düzgün biçimli bir XML belgesi olmayabilir."
Kod: Tümünü seç
uses
msxml;
function Transform(const AXMLContent : string; const AXSLContent : string) : string;
var
XML : IXMLDOMDocument;
XSL : IXMLDOMDocument;
begin
XML := CoDOMDocument.Create;
XML.loadXML(AXMLContent);
XSL := CoDOMDocument.Create;
XSL.loadXML(AXSLContent);
Result := XML.TransformNode(XSL);
end;
Kod: Tümünü seç
procedure LoadHTMLCode(AWebBrowser : TWebBrowser; const AHTMLCode: string);
var
Doc: Variant;
begin
if not Assigned(AWebBrowser.Document) then
AWebBrowser.Navigate('about:blank');
Doc := AWebBrowser.Document;
Doc.Clear;
Doc.Write(AHTMLCode);
Doc.Close;
end;
Kod: Tümünü seç
procedure TAnaForm.E_FATURAGOSTERClick(Sender: TObject);
var
XMLContent : string;
XLSContent : string;
HTMLCode : string;
begin
//loading XML content
XMLContent := 'C:\E-FATURA\Onizleme\Test.xml';
//loading XLS content
XLSContent := 'C:\E-FATURA\Onizleme\Test.xslt';
//transforming
HTMLCode := Transform(XMLContent, XLSContent);
//displaying
LoadHTMLCode(WebBrowser1, HTMLCode);
end;
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xslt"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
</catalog>
Kod: Tümünü seç
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Re: E-Fatura önizleme nasıl yapabilirim ?
Aşağıdaki kodunuz hatalı
Fonksiyona XML verisini göndermeniz gerekir iken siz dosya adı gönderiyorsunuz. Aşağıdaki şekilde kodunuzu değiştirerek yeniden deneyin.
Kod: Tümünü seç
//loading XML content
XMLContent := 'C:\E-FATURA\Onizleme\Test.xml';
Kod: Tümünü seç
XMLContent := TFile.ReadAllText( 'C:\E-FATURA\Onizleme\Test.xml', TEncoding.UTF8);
XLSContent := TFile.ReadAllText( 'C:\E-FATURA\Onizleme\Test.xslt', TEncoding.UTF8);
...
Re: E-Fatura önizleme nasıl yapabilirim ?
ertank, Allah razı olsun, çok teşekkür ediyorum gerçekten çok büyük bir problemim çözüldü. Dediğiniz gibi kodu değiştirince mükemmel çalıştı. mkysoft sizede çok teşekkür ediyorum, emeğiniz için Allah razı olsun.
Re: E-Fatura önizleme nasıl yapabilirim ?
Uzun zamandır aradığım cevabı burda buldum sonunda, emeğinize sağlık..
-
- Üye
- Mesajlar: 7
- Kayıt: 03 Kas 2023 12:45
Re: E-Fatura önizleme nasıl yapabilirim ?
merhabalar bu görüntülemeye filigran eklenebilmesi nasıl mümkün olabilir?
Re: E-Fatura önizleme nasıl yapabilirim ?
fatura gorselini html olarak elde ettiksen sonra div ve biraz css ile yapabilirsiniz.