unit InfoLogScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DrieKnoppenScherm, Vcl.ActnList, Vcl.StdCtrls, Vcl.Grids, DnaCodeService, Data.DB, Datasnap.DBClient, Vcl.DBGrids; type TfmInfoLogScherm = class(TfmDrieKnoppenScherm) lblToelevering: TLabel; lblAantalGescand: TLabel; lblTotaalAantal: TLabel; lblSlash: TLabel; lblAantallen: TLabel; sgToeleveringData: TStringGrid; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private function ToeleveringDataOphalen(): ZoekViaToeleveringResponse; procedure VulGridMetToeleveringData(Response: ZoekViaToeleveringResponse; ToonGescand: boolean); public { Public declarations } end; var fmInfoLogScherm: TfmInfoLogScherm; implementation {$R *.dfm} procedure TfmInfoLogScherm.FormCreate(Sender: TObject); begin inherited; sgToeleveringData.Cols[0].Text := 'DNA Code'; sgToeleveringData.Cols[1].Text := 'Pallet'; end; procedure TfmInfoLogScherm.FormShow(Sender: TObject); var Response: ZoekViaToeleveringResponse; begin inherited; Response := ToeleveringDataOphalen(); VulGridMetToeleveringData(Response,True); end; function TfmInfoLogScherm.ToeleveringDataOphalen: ZoekViaToeleveringResponse; var Service: DnaCodeServiceSoap; Request: ZoekViaToeleveringRequest; Response: ZoekViaToeleveringResponse; Header: RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); // request opbouwen Request := ZoekViaToeleveringRequest.Create; Header := RequestHeader.Create; try Header.Initialen := 'NBO';//lblGebruiker.Caption; Header.ComputerNaam := ComputerName(); Request.Header := Header; Request.Toelevering := lblToelevering.Caption; Response := Service.ZoekViaToelevering(Request); try if Response.Header.Status <> '200' then begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw') end else begin lblAantalGescand.Caption := IntToStr(Response.AantalReedsGescand); lblTotaalAantal.Caption := IntToStr(Response.AantalInToelevering); end; finally result := Response; //Response.Free; end; finally Request.Free; end; end; procedure TfmInfoLogScherm.VulGridMetToeleveringData(Response: ZoekViaToeleveringResponse; ToonGescand: boolean); var DnaCodeTeller: Integer; StringListTeller: Integer; begin StringListTeller := 1; for DnaCodeTeller := 0 to length(Response.DnaCodes)-1 do begin if (ToonGescand and (Response.DnaCodes[DnaCodeTeller].InitialenScanner <> '')) or ((not ToonGescand) and (Response.DnaCodes[DnaCodeTeller].InitialenScanner = '')) then begin sgToeleveringData.Rows[StringListTeller].Add(Response.DnaCodes[DnaCodeTeller].DnaCode); sgToeleveringData.Rows[StringListTeller].Append(Response.DnaCodes[DnaCodeTeller].PalletCode); StringListTeller := StringListTeller + 1; end; end; end; end.