unit HernoemPalletScherm; 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, Vcl.ComCtrls, Vcl.ExtCtrls, DnaCodeService; type TfmHernoemPalletScherm = class(TfmDrieKnoppenScherm) pnlHoofd: TPanel; pcHernoemPallet: TPageControl; tsInput: TTabSheet; tsResultaat: TTabSheet; edtPallet: TEdit; lblScanPallet: TLabel; sgToeleveringData: TStringGrid; btnEerst: TButton; btnVorige: TButton; btnVolgende: TButton; btnLaatst: TButton; lblPallet: TLabel; lblAantal: TLabel; procedure FormShow(Sender: TObject); procedure actHomeExecute(Sender: TObject); procedure actVolgendeExecute(Sender: TObject); procedure FormCreate(Sender: TObject); private procedure VulGridMetToeleveringData(DnaCodes: array of DnaCode); procedure GridLeegmaken; function HernoemPallet(OudeCode: string): HernoemPalletResponse; public { Public declarations } end; var fmHernoemPalletScherm: TfmHernoemPalletScherm; implementation uses UiContext; {$R *.dfm} procedure TfmHernoemPalletScherm.actHomeExecute(Sender: TObject); begin inherited; Self.ModalResult := mrHome; end; procedure TfmHernoemPalletScherm.actVolgendeExecute(Sender: TObject); begin inherited; if pcHernoemPallet.ActivePageIndex = 0 then begin HernoemPallet(edtPallet.Text); end; end; function TfmHernoemPalletScherm.HernoemPallet(OudeCode: string): HernoemPalletResponse; var Service: DnaCodeServiceSoap; Request: HernoemPalletRequest; Response: HernoemPalletResponse; Header: RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); // request opbouwen Request := HernoemPalletRequest.Create; Header := RequestHeader.Create; try Header.Initialen := UiContext.Initialen; Header.ComputerNaam := ComputerName(); Request.Header := Header; Request.OudeCode := OudeCode; Response := Service.HernoemPallet(Request); try if Response.Header.Status <> '200' then begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw') end else begin VulGridMetToeleveringData(Response.DnaCodes); pcHernoemPallet.ActivePageIndex := 1; end; finally result := Response; Response.Free; end; finally Request.Free; end; end; procedure TfmHernoemPalletScherm.FormCreate(Sender: TObject); begin inherited; pcHernoemPallet.ActivePageIndex := 0; end; procedure TfmHernoemPalletScherm.FormShow(Sender: TObject); begin inherited; btnCentraalOnder.Action := actHome; btnRechtsOnder.Action := actVolgende; end; procedure TfmHernoemPalletScherm.VulGridMetToeleveringData(DnaCodes: array of DnaCode); var DnaCodeTeller: Integer; begin GridLeegMaken(); for DnaCodeTeller := 0 to length(DnaCodes)-1 do begin sgToeleveringData.Rows[sgToeleveringData.RowCount-1].Add(DnaCodes[DnaCodeTeller].DnaCode); sgToeleveringData.Rows[sgToeleveringData.RowCount-1].Append(DnaCodes[DnaCodeTeller].PalletCode); sgToeleveringData.RowCount := sgToeleveringData.RowCount + 1; end; if sgToeleveringData.RowCount > 2 then sgToeleveringData.RowCount := sgToeleveringData.RowCount - 1; end; procedure TfmHernoemPalletScherm.GridLeegmaken; var i: Integer; begin for i := 1 to sgToeleveringData.RowCount do sgToeleveringData.Rows[i].Clear; sgToeleveringData.RowCount := 2; end; end.