Witam serdecznie. Mam pytanko do mądrzejszych od siebie. Mam napisany w Delphi programik do obsługi sklepu. Teraz muszę dorobić JPK_VAT. To już mam, ale chodzi mi o walidację. Kod jak poniżej sprawdza mi poprawnie, ale wymaga połączenia z netem. Ja rozumiem, że i tak muszę mieć połączenie aby w konsekwencji wysłać ten plik, ale przy dużym pliku i połączeniu mobilnym chwilę to trwa. Co zrobić, aby sprawdzenie było z dysku?
function TForm30.walidacja;
var xml,xsd:variant;
begin
xsd:=CreateOLEObject('MSXML2.XMLSchemaCache.6.0');
xsd.validateOnLoad:=true;
xsd.add('http://jpk.mf.gov.pl/wzor/2016/10/26/10261/','d:\Schemat_JPK_VAT(2)_v1-0.xsd');
xml:=CreateOLEObject('MSXML2.DOMDocument.6.0');
xml.async:=false;
xml.validateOnParse:=true;
xml.resolveExternals:=true;
xml.schemas:=xsd;
xml.load(plik);
result:=xml.parseerror.errorcode=0;
if result then showmessage('W pliku '+edit1.text+' nie znaleziono błędów.') else
showmessage('Walidacja wykazała błędy.'+#13#13+'Linia: '+inttostr(xml.parseerror.line)+' - '+
xml.parseerror.srctext+#13#13+xml.parseerror.reason+#13+inttostr(xml.parseerror.errorcode));
xsd:=null;
xml:=null;
end;
za tym jeżeli będą błędy, to kod jw pokaże tylko 1-szy napotkany. Chciałem zrobić pętlę:
for i:= 0 to XML.ParseError.allErrors.length-1 do
ale tutaj przerywa działanie programu błędem "Invalid variant operation".
Dalsze czynności, czyli spakowanie, szyfrowanie, podpisanie (chcę profil zaufany) jest dla mnie w zasadzie czarną magią. Czy mogę liczyć na jakieś sugestie i porady. Z góry dziękuję. Sławek.