var Form: TForm; TopPanel: TPanel; Panel: TPanel; OkBtn: TButton; CancelBtn: TButton; ListView: TListView; procedure OkButtonClick(Sender: TButton); begin Form.ModalResult:=mrOk; end; procedure CancelButtonClick(Sender: TButton); begin Form.ModalResult:=mrCancel; end; procedure SaveItem(aLogin: String); var q: TQuery; begin q:=TQuery.Create(nil); try q.DatabaseName:=MainForm.Database.DatabaseName; q.Sql.Clear; q.Sql.Add('update datei set inarbeit=0 where inarbeit=1 and'); q.Sql.Add('inarbma='''+aLogin+''''); try q.ExecSql; //ShowMessage('Anzahl betroffener Datei: '+IntToStr(q.RowsAffected)); except ShowMessage('Fehler im Update-SQL'); end; finally q.Free; end; end; procedure SaveAll(aListView: TListView); var i: Integer; begin for i:=0 to aListView.Items.Count-1 do begin if aListView.Items[i].Checked then SaveItem(aListView.Items[i].Caption); end; end; procedure AddListItems(aListView: TListView); var NewItem: TListItem; q: TQuery; begin q:=TQuery.Create(nil); try q.DatabaseName:=MainForm.Database.DatabaseName; q.Sql.Clear; q.Sql.Add('select count(a.inarbeit)as RES, a.inarbma as MA from Datei a where'); q.Sql.Add('a.inarbeit=1 group by a.inarbma'); //alternativ z.B. q.Sql.LoadFromFile(Pfad); try q.open; //Aktualisierung ausschalten aListView.Items.BeginUpdate; while not q.Eof do begin NewItem:=aListView.Items.Add; //1. Spalte NewItem.Caption:=q.FieldByName('MA').AsString; //2. Spalte NewItem.SubItems.Add(q.FieldByName('RES').AsString); //3. Spalte //NewItem.SubItems.Add(q.FieldByName('nname').AsString); //Nächste Zeile q.Next; end; //ListView aktualisieren aListView.Items.EndUpdate; except ShowMessage('Fehler im Select-SQL'); end; finally q.Free; end; end; procedure AddListColumns(aListView: TListView); var NewColumn: TListColumn; begin NewColumn:=aListView.Columns.Add; NewColumn.Caption:='Mitarbeiter'; NewColumn.Width:=150; NewColumn:=aListView.Columns.Add; NewColumn.Caption:='Reservierungen'; NewColumn.Width:=100; //NewColumn:=aListView.Columns.Add; //NewColumn.Caption:='Nachname'; //NewColumn.Width:=50; NewColumn.AutoSize:=True; end; begin Form:=TForm.Create(Application); try try Form.Width:=300; Form.Height:=500; Form.Left:=MainForm.Left+Round((MainForm.Width-Form.Width)/2); Form.Top:=MainForm.Top+Round((MainForm.Height-Form.Height)/2); Form.Caption:='Reservierungen'; Panel:=TPanel.Create(Form); Panel.Parent:=Form; Panel.Caption:=''; Panel.Align:=alBottom; Panel.Height:=40; TopPanel:=TPanel.Create(Form); TopPanel.Parent:=Form; TopPanel.Caption:='Alle Kollegen die was reserviert haben...'; TopPanel.Align:=altop; TopPanel.Height:=40; ListView:=TListView.Create(Form); ListView.Parent:=Form; ListView.Align:=alClient; ListView.Checkboxes:=True; ListView.MultiSelect:=True; ListView.ViewStyle:=vsReport; OkBtn:=TButton.Create(Panel); OkBtn.Parent:=Panel; OkBtn.Height:= 30; OkBtn.Top:=5; OkBtn.Width:=180; OkBtn.Left:= 10; OkBtn.Caption:='&Reservierung aufheben'; OkBtn.OnClick:=@OkButtonClick; CancelBtn:=TButton.Create(Panel); CancelBtn.Parent:=Panel; CancelBtn.Height:= 30; CancelBtn.Top:=5; CancelBtn.Width:=80; CancelBtn.Left:= 200; CancelBtn.Caption:='&Abbruch'; CancelBtn.OnClick:=@CancelButtonClick; AddListColumns(ListView); AddListItems(ListView); if Form.ShowModal=mrOk then SaveAll(ListView); except ShowMessage('Fehler'); end; finally Form.Free; end; end.