unit Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Bde.DBTables, Vcl.Grids, Vcl.DBGrids, Vcl.OleCtrls, CACHEQUERYLib_TLB, TLLib_TLB, Vcl.OleServer, CacheActiveX_TLB, Vcl.StdCtrls, Datasnap.DBClient, UiContext, Vcl.ComCtrls, DnaCodeService, Vcl.ExtCtrls; type TfmMain = class(TForm) dsDnaCodes: TDataSource; CacheQuery1: TCacheQuery; cdsDnaCodes: TClientDataSet; tcMain: TTabControl; DBGrid1: TDBGrid; pnlZoekKnoppen: TPanel; pnlActies: TPanel; btnZoekViaToelevering: TButton; edtZoekInput: TEdit; btnZoekViaPallet: TButton; procedure btnZoekViaToeleveringClick(Sender: TObject); procedure btnZoekViaPalletClick(Sender: TObject); private fUiContext: TUiContext; procedure VulDnaCodeGridMetData(DnaCodes: ArrayOfDnaCodeDnaCode); public property UiContext: TUiContext Read fUiContext Write fUiContext; end; var fmMain: TfmMain; implementation uses Agent, typinfo; {$R *.dfm} procedure TfmMain.btnZoekViaPalletClick(Sender: TObject); var fZoekViaPalletResponse: ZoekViaPalletCodeResponse; DnaCodes: ArrayOfDnaCodeDnaCode; begin UiContext := TUiContext.Create; UiContext.LoginCode := '1513'; UiContext.Initialen := 'TSN'; fZoekViaPalletResponse := TAgent.Create(UiContext).ZoekViaPalletCode(edtZoekInput.Text); try if fZoekViaPalletResponse.Header.Status = '200' then begin DnaCodes := fZoekViaPalletResponse.DnaCodes; VulDnaCodeGridMetData(DnaCodes); end else begin ShowMessage(fZoekViaPalletResponse.Header.Omschrijving); end; finally fZoekViaPalletResponse.Free; end; end; procedure TfmMain.btnZoekViaToeleveringClick(Sender: TObject); var fZoekViaToeleveringResponse: ZoekViaToeleveringResponse; DnaCodes: ArrayOfDnaCodeDnaCode; begin UiContext := TUiContext.Create; UiContext.LoginCode := '1513'; UiContext.Initialen := 'TSN'; fZoekViaToeleveringResponse := TAgent.Create(UiContext).ZoekViaToelevering(edtZoekInput.Text); try if fZoekViaToeleveringResponse.Header.Status = '200' then begin DnaCodes := fZoekViaToeleveringResponse.DnaCodes; VulDnaCodeGridMetData(DnaCodes); end else begin ShowMessage(fZoekViaToeleveringResponse.Header.Omschrijving); end; finally fZoekViaToeleveringResponse.Free; end; end; procedure TfmMain.VulDnaCodeGridMetData(DnaCodes: ArrayOfDnaCodeDnaCode); var ii: integer; begin cdsDnaCodes.Close; cdsDnaCodes.CreateDataSet; ii := 0; while ii <= length(DnaCodes)-1 do begin cdsDnaCodes.InsertRecord([ DnaCodes[ii].DnaCode, DnaCodes[ii].PalletCode, DnaCodes[ii].Toelevering, GetEnumName(typeInfo(DnaCodeStatus),Ord(DnaCodes[ii].Status)), DnaCodes[ii].BatchId, DateTimeToStr(DnaCodes[ii].ScanTijdstip.AsDateTime), DnaCodes[ii].InitialenScanner]); ii := ii + 1; end; end; end.