unit frmHrOdvOperZmetky; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ddPlugin_TLB; type TformHrOdvOperZmetky = class(TForm) Label1: TLabel; cbTypZmetku: TComboBox; btnOK: TButton; btnZrus: TButton; procedure FormShow(Sender: TObject); procedure btnZrusClick(Sender: TObject); procedure btnOKClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private public Helios: IHelios; idZavady: integer; end; var formHrOdvOperZmetky: TformHrOdvOperZmetky; arrIdZavad: TArray; implementation uses helUtils; {$R *.dfm} procedure TformHrOdvOperZmetky.btnOKClick(Sender: TObject); begin idZavady:= arrIdZavad[cbTypZmetku.ItemIndex]; Close; end; procedure TformHrOdvOperZmetky.btnZrusClick(Sender: TObject); begin idZavady:= -1; Close; end; procedure TformHrOdvOperZmetky.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:= caFree; end; procedure TformHrOdvOperZmetky.FormShow(Sender: TObject); var lSQL: string; i: integer; begin cbTypZmetku.Clear; lSQL:= 'SELECT TOP(3) cz.Kod, cz.Nazev, cz.ID FROM ' + tblPMZZavady + ' z INNER JOIN ' + tblCZavad + ' cz ON (cz.ID=z.IDZavady) WHERE '; lSQL:= lSQL + 'cz.Poznamka LIKE N''%OBALOVNA%'' GROUP BY cz.Kod, cz.Nazev, cz.ID ORDER BY SUM(z.kusy_zmet_neopr) DESC'; with Helios.OpenSQL(lSQL) do if (RecordCount>0) then begin i:= 0; First; SetLength(arrIdZavad, RecordCount); while not(EOF) do begin cbTypZmetku.Items.Add(VarToStr(FieldValues(0)) + ' - ' + VarToStr(FieldValues(1))); arrIdZavad[i]:= StrToInt(VarToStr(FieldValues(2))); Inc(i); Next; end; end; cbTypZmetku.ItemIndex:= 0; end; end.