![]() |
|
E fatura okuma hakkında - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: E fatura okuma hakkında (/showthread.php?tid=1394) Sayfalar:
1
2
|
E fatura okuma hakkında - cinarbil - 05-10-2017 Kendi kullandığımız Go3 Ticari programına muhtelif firmalardan gelen E faturaları aktarmak istiyorum. E faturaları grid' de memo da veya başka bir bileşende nasıl gösterebilirim. İmza kısmı ile ilgilenmiyorum e faturadan fatura trh, no , cari bilgiler, stok bilgileri fiyatlar gibi bilgileri almak istiyorum. Delphican, Delhiturkiye ve google Delphi E fatura okuma ve Delphi XML okuma şeklinde arattım Delphi E fatura okuma ile ilgili yazı örnek bulamadım tamamına yakını oluşturma imzalama ve iletme ile alakalı Okuma ile ilgili soru çok cevap bulamadım. Delphi XML okuma ile ilgili örnek çok bu örnekler ile E fatura okunamıyor. E fatura okuma hakkında - Emrah Karagöz - 05-10-2017 xml'i IXMLDocument ile açıp gerekli değerleri okuyabilirsin, Örneğin : var
D : IXMLDocument;
Node : IXMLNode;
begin
D:= LoadXMLDocument('xyzgelenfatura.xml');
Node := D.DocumentElement;
Node.ChildNodes.FindNode('AccountingSupplierParty').Text; // Müşteri
Cvp: E fatura okuma hakkında - cinarbil - 05-10-2017 Sayın emrahg Cevabınız için teşekkür ederim Yeni proje oluşturdum. forma Button ve XMLDocument ekledin onclick olayına procedure TForm1.Button1Click(Sender: TObject);
var
D : IXMLDocument;
Node : IXMLNode;
begin
D:= LoadXMLDocument('C:\Users\CASPER17\Desktop\yazilim\test\KAE2017000025694.xml');
Node := D.DocumentElement;
Node.ChildNodes.FindNode('AccountingSupplierParty').Text; // Müşteri
end; yazdım çalıştırdığımda resimdeki hata Access Violation hatası veriyor. Birden fazla firmadan gelen fatura örneği ile denendi sonuç aynı E fatura okuma hakkında - Abdullah ILGAZ - 05-10-2017 Merhaba, üstteki örneğe binaen UBL 2.1 standartlarındaki AccountingSupplierParty node'unun ana verisine erişmek için alacağınız field; item.Invoice.AccountingSupplierParty.Party.PartyName.Name.Value; InvoiceType > AccountingSupplierPartyType > PartyType > PartyNameType > NameType > Value(String) Bence önce tam olarak XML dosyayı okuyup HTML verisi olarak Memo alanda listelemeniz. Daha sonra node ve level parçalamaları yaparak ham verileri toplayacağınız kod bloklarını yazarsınız. Veya ComplexType denilen özel tipleri oluşturarak WSDL standartındaki bir XML gibi davranıp nesneden dönen değeri doğrudan muadil bir nesneye aktararak işlem yapabilirsiniz. Hangi entegratör ile çalışıyorsunuz? Cvp: E fatura okuma hakkında - cinarbil - 05-10-2017 Abdullah bey cevabınız için teşekkür ederim. Ben e-fatura veya e-Arşiv fatura kullanmıyorum. Herhangi bir enteğratör ile çalışmıyoruz. İlk mesajımda belirtiğim gibi bana gelen e-arşiv faturaları kullanmakta olduğumuz ticari programın fatura bölümüne aktarmak istiyorum. Xml formatında farklı firmalardan gelen faturaları delphi de herhangi bir bileşene atarak görüntülemek şu an işimi görecektir. Hayırlı akşamlar. E fatura okuma hakkında - Abdullah ILGAZ - 06-10-2017 Merhaba, Aslında kod ilerlemesi olarak doğru yönde ilerlemişsiniz. Tek sıkıntı node olarak bulduğunuz AccountingSupplierParty (fatura gönderici bilgileri ana nesnesi)'nin içindeki diğer kırılımları da gezmeniz gerektiği. Yani önce AccountingSupplierParty'yi node olarak bulun ve değişkene atayın. Daha sonra onun içinde yukarıdaki cevapta yazdığım değişkeni bulun. Sırayla en alt nesneye kadar ilerleyin. Sonra Value erişimi yapabilirsiniz. Bir deneyin eğer olmazsa buraya yazın ben akşam deneyip size demo proje atayım. İyi günler Cvp: E fatura okuma hakkında - esistem - 06-10-2017 Selam, Aşağıdaki kod, xml dosyasındaki node lar, text elementler nelerdir onları tek tek dökecektir. Görünce daha kolay işlem yapabilirsiniz. var
D : IXMLDocument;
IlkNode : IXMLNode;
begin
memo1.Lines.Clear;
D:= LoadXMLDocument('D:\BAF2017000003803UBL.xml');
D.Active := True ;
IlkNode:=D.DocumentElement.ChildNodes.First; // ilk node invoice tir
repeat
if (IlkNode.IsTextElement=true) then
Memo1.Lines.Add(IlkNode.NodeName+' - '+IlkNode.Text)
else
Memo1.Lines.Add(' ---- ChildNode : '+ IlkNode.NodeName);
IlkNode := IlkNode.NextSibling;//bir sonraki node ya atla
until IlkNode=Nil;
Cvp: E fatura okuma hakkında - cinarbil - 06-10-2017 Cevaplar için teşekkür ederim pazartesi deneyeceğim inşallah. E fatura okuma hakkında - enes6635 - 27-11-2018 E-Fatura Xml inden bazı verileri şu şekilde çektim ancak aşağıdaki resimde olduğu gibi VKN ve ona benzer alt düğümlerin cbc parametrelerini nasıl alabilirim. procedure ChangeNode(parent:IXMLNode;name:String; namespace:String;value:String); var node:IXMLNode; begin node:=parent.ChildNodes.FindNode(name,namespace); if node=nil then exit; if value='' then begin parent.ChildNodes.Remove(node); exit; end; node.Text:=value; end; function ChangeSearch(parent:IXMLNode;name:String; namespace:String):String; var node:IXMLNode; begin node:=parent.ChildNodes.FindNode(name,namespace); if node=nil then exit; if node.Text='' then begin parent.NextSibling; //exit; end; donen:=node.Text; Result:=donen; procedure TForm2.Button1Click(Sender: TObject);
var
doc:IXMLDocument;
parent:IXMLNode;
begin
doc:= LoadXMLDocument('C:\Users\Leaked\Desktop\bugün\XML GİB Fatura\XML_OKUMA\TemelFaturaOrnegi.xml');
parent:=doc.DocumentElement;
Edit1.Text:= ChangeSearch(parent,'ProfileID',NS_cbc);
Edit2.Text:= ChangeSearch(parent,'ID',NS_cbc);
Edit3.Text:= ChangeSearch(parent,'CopyIndicator',NS_cbc);
Edit4.Text:= ChangeSearch(parent,'UUID',NS_cbc);
Edit5.Text:= ChangeSearch(parent,'IssueDate',NS_cbc);
Edit6.Text:= ChangeSearch(parent,'IssueTime',NS_cbc);
Edit7.Text:= ChangeSearch(parent,'InvoiceTypeCode',NS_cbc);
Edit8.Text:= ChangeSearch(parent,'DocumentCurrencyCode',NS_cbc);
end;
E-fatura xmli:
E fatura okuma hakkında - esistem - 27-11-2018 Yukarıda daha önce vermiş olduğum kod ile XML nin içersindeki değerleri okuyabiliyormusunuz önce onu deneyin, okuyabilirseniz (ki bende okuyor) gerisi zaten çok kolay, hangi kısım hangi kısmın içerisinde göreceksiniz zaten ona göre de gerisini çözebilirsiniz. |