program JPKCompTestInConsole; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, JPKXMLCompUnit in '..\Komp\JPKXMLCompUnit.pas'; const cXMLFileName = 'Data\Jpk_V7.xml'; cLIC = 'TEST-JOTPEK3-010821-58B8DC64'; type TMainJPKXMLOneFileSender = class(TJPKXMLOneFileSender) public procedure FinishSendProc(Sender:TCustomJPKXMLSender; JPKXML:TCustomJPKXML); procedure WriteStatus; end; { TMainJPKXMLOneFileSender } procedure TMainJPKXMLOneFileSender.FinishSendProc(Sender: TCustomJPKXMLSender; JPKXML: TCustomJPKXML); begin Writeln(JPKXML.ReferenceNumber); if JPKXML.Error.err<>0 then Writeln(JPKXML.Error.errMsg); With JPKXML as TJPKXMLFile do begin if Sender.TestMode then Writeln('Wysłano do bramki testowej: '+FileNamePath) else Writeln('Wysłano '+FileNamePath); Writeln('Otrzymano numer referencyjny: '+ReferenceNumber); Writeln('Status: '+IntToStr(Status)+' - '+StatusText); if Status=200 then Writeln('UPO: '+Copy(UPO,1,50)+'...'); end; end; procedure TMainJPKXMLOneFileSender.WriteStatus; begin With JPKXML do begin if TestMode then Writeln('Sprawdzono status testowego: '+ReferenceNumber) else Writeln('Sprawdzono status'+ReferenceNumber); Writeln('Status: '+IntToStr(Status)+' - '+StatusText); if Status=200 then Writeln('UPO: '+Copy(UPO,1,50)+'...'); end; end; var vUserOdp: char; begin try With TmainJPKXMLOneFileSender.Create(nil) do try JPKXML:=TJPKXMLFile.Create(nil); (JPKXML as TJPKXMLFile).FileNamePath:=cXMLFileName; LicText:=cLIC; TestMode:=true; SyncOnFinisch:=true; OnFinishSend:=FinishSendProc; Send(true); Repeat Writeln('Czy sprawdzić status? T/N'); ReadLn(vUserOdp); if UpperCase(vUserOdp)='N' then Exit; if UpperCase(vUserOdp)='T' then begin (JPKXML as TJPKXMLFile).RefreshUPO; WriteStatus; end; Until false; finally Free; end; except on E: Exception do begin Writeln(E.ClassName, ': ', E.Message); Writeln('******** Naciśnj Esc aby zamknąć.'); Readln; end; end; end.