unit OnderdelenScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, System.IniFiles, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DrieKnoppenScherm, Vcl.ActnList, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Imaging.pngimage; type TfmOnderdelenScherm = class(TfmDrieKnoppenScherm) lblGeefToelevering: TLabel; edtToelevering: TEdit; btnGenereerTbp: TButton; procedure FormShow(Sender: TObject); procedure actHomeExecute(Sender: TObject); procedure actVolgendeExecute(Sender: TObject); procedure actTerugExecute(Sender: TObject); procedure GenereerTbpCodeVoorOnderdelen; procedure edtToeleveringKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormActivate(Sender: TObject); private public { Public declarations } end; var fmOnderdelenScherm: TfmOnderdelenScherm; implementation uses DnaCodeService, UiContext, Agent, ProScanMain, StrUtils, CommonFunctions; {$R *.dfm} procedure TfmOnderdelenScherm.actHomeExecute(Sender: TObject); begin inherited; PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrHome); end; procedure TfmOnderdelenScherm.actVolgendeExecute(Sender: TObject); var fAgent: TAgent; fZoekViaToeleveringResponse: ZoekViaToeleveringResponse; begin Self.ModalResult := mrDnaCodeVoorOnderdelen; fAgent := TAgent.Create(UiContext); fZoekViaToeleveringResponse := fAgent.ZoekViaToelevering(edtToelevering.Text); fAgent.Free; try if fZoekViaToeleveringResponse.Header.Status = '200' then begin UiContext.Toelevering := edtToelevering.Text; GenereerTbpCodeVoorOnderdelen; end else begin ToonPopupScherm(fZoekViaToeleveringResponse.Header.Omschrijving, 'Probeer opnieuw'); Self.ModalResult := mrOnderdelen; end; finally; fZoekViaToeleveringResponse.Free; end; PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(Self.ModalResult); end; procedure TfmOnderdelenScherm.actTerugExecute(Sender: TObject); begin inherited; PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrPallet); end; procedure TfmOnderdelenScherm.GenereerTbpCodeVoorOnderdelen; var fGeefVolgendeTbpCodeResponse: GeefVolgendeTbpCodeResponse; fTbpCode: string; fAgent: TAgent; begin inherited; fAgent := TAgent.Create(UiContext); fGeefVolgendeTbpCodeResponse := fAgent.GeefVolgendeTbpCode('', ''); fAgent.Free; try if fGeefVolgendeTbpCodeResponse.Header.Status = '200' then begin UiContext.Pallet := fGeefVolgendeTbpCodeResponse.VolgendeTbpCode; end else begin Self.ModalResult := mrOnderdelen; ToonPopupScherm(fGeefVolgendeTbpCodeResponse.Header.Omschrijving, 'Probeer opnieuw'); fTbpCode := ''; end; finally fGeefVolgendeTbpCodeResponse.Free; end; end; procedure TfmOnderdelenScherm.edtToeleveringKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin inherited; if Key = VK_RETURN then begin actVolgende.Execute; Key := 0; end; end; procedure TfmOnderdelenScherm.FormActivate(Sender: TObject); begin inherited; ActiveControl := edtToelevering; end; procedure TfmOnderdelenScherm.FormShow(Sender: TObject); begin btnLinksOnder.Action := actTerug; btnCentraalOnder.Action := actHome; btnRechtsOnder.Action := actVolgende; edtToelevering.Text := ''; edtToelevering.SetFocus; inherited; end; end.