Witam,
Mamy dane z pliku INI:
[Pracownik 1]
Data wykonania: 2011-07-10
Dodatkowe informacje: tynkowanie
[Pracownik 2]
Data wykonania: 2011-07-10
Dodatkowe informacje: spawanie, szlifowanie
[Pracownik 3]
Data wykonania: 2011-07-10
Dodatkowe informacje: tapetowanie, kafelki
[Pracownik 1]
Data wykonania: 2011-07-11
Dodatkowe informacje: czyszczenie, odrdzewianie
[Pracownik 2]
Data wykonania: 2011-07-11
Dodatkowe informacje: -
mam listview do którego wczytuję powyższe dane z pliku INI i rozdzielonymi do poszczególnych kolumn:
Data wykonania | Pracownik 1 | Pracownik 2 | Pracownik 3 | Pracownik 4 | Dodatkowe informacje |
---|---|---|---|---|---|
2011-07-10 niedziela | Nazwa_pracownika 1 | Nazwa_pracownika 2 | Nazwa_pracownika 3 | - | - |
2011-07-11 poniedziałek | Nazwa_pracownika 1 | Nazwa_pracownika 2 | - | - | - |
Problem polega na tym, że nie mogę sobie poradzić ze sposobem, aby do każdej kolumny "Dodatkowe informacje" były wczytywane dodatkowe informacje wszystkich z pracowników w danym wierszu, np.:
Dodatkowe informacje
Pracownik 1: tynkowanie ; Pracownik 2: spawanie, szlifowanie ; Pracownik 3: tapetowanie, kafelki
Pracownik 1: czyszczenie, odrdzewianie ; Pracownik 2: -
Próbowałem tak jak poniżej:
Lista_objektow: Nasz ListView
INI.ReadSections(Sekcje); // wczytuje wszystkie sekcje z INI do StringLisy
for j := 0 to Sekcje.Count -1 do // Przeszukuje stringliste
begin
if INI.ReadString(Sekcje[j], 'Nazwa obiektu', '') = Objekt then // Wczytuj dane tylko danego obiektu
begin
Data_wykonania := INI.ReadDate(Sekcje[j], 'Data wykonania', Data_wykonania); // przypisanie zmiennej dany wykonania
Nazwa_pracownika := INI.ReadString(Sekcje[j], 'Pracownik', ''); // przypisanie nazwy pracownika z INI
if (Data_wykonania >= Data_od.Date -1) and (Data_wykonania <= Data_do.Date) then { Dane filtrowania (2 komponenty TDateTimePiceker)
}
begin
// Przeszukaj nasz ListView
for k := 0 to lista_objektow.Items.count -1 do
// Jesli kolumna Dodatkowe informacje jest pusta to...
if (lista_objektow.Items[k].SubItems[4] = '') then
begin
if (INI.ReadString(Sekcje[j], 'Dodatkowe informacje', '') <> '') // Jesli dodatkowe informacje w pliku nie są puste
// to przypisz nazwę pracownika i wczytane dodatkowe informacje
then lista_objektow.Items[k].SubItems[4] := Nazwa_pracownika + ': ' + INI.ReadString(Sekcje[j], 'Dodatkowe informacje', '') + ', ';
// w przeciwnym wypadku, gdy juz cos jest w tabeli
// sprawdz czy nie istnieje juz taka sama nazwa pracownika
end else if not (pos(Nazwa_pracownika, lista_objektow.Items[k].SubItems[4]) > 0)
// jesli nie to przypisz nazwe pracownika i jego informacje dodatkowe
then lista_objektow.Items[k].SubItems[4] := lista_objektow.Items[k].SubItems[4] + ' ; ' + Nazwa_pracownika + ': ' + INI.ReadString(Sekcje[j], 'Dodatkowe informacje', '') + ', ';
end;
Prosze o pomoc :/