Cześć,
mam taki dylemat w kodzie - układ jest następujący
// Tutaj jest jakaś główna metoda naczelnej klasy do liczenia
DataCollector dc; // Pobierane są dane za zakres dat od-do
for( const auto & item : dc )
{
out_view << item; // Tutaj jest klasa abstrakcyjna, która w zależności od tego co zostało wybrane z fabryki zapisywane są wyniki w różnym układzie tabeli
}
I teraz mam taki dylemat.
W jednym z przypadków tego out_view
muszę obsłużyć DST dla wszystkich dni. W sensie niezależnie od tego, czy DST jest w danym dniu, czy nie, to ilość kolumn jest np. 25 (bo jesienią mamy jedną godzinę "dodatkowo"), natomiast ilość danych jest tylko za 24h.
Moje pytanie jest następujące, która klasa ma wziąć na klatę ten wyjątek od reguły i zmienić rozmiar paczki danych, aby nie zmieniać już kształtu tej pętli? DataCollector
, ta w której jest to liczone, czy widok? Intuicyjnie czuję, że widok na 100% nie, bo on tylko formatuje i pilnuje, aby wpisy lądowały w odpowiednich komórkach w excelu, tak nie mam pewności, czy DataCollector
powinien mieć taką możliwość jak "przewymiarowanie" paczki danych.
edit
Drugie moje podejście do wyjaśnienia
Mamy jakiś vector danych chronologicznie zapisanych i chciałbym je wypisać do tabeli o długości n-kolumn.
Problem w tym, że danych tych jest za mało, a ja muszę chciałbym mieć zawsze ten vector o rozmiarze takim, żeby móc swobodnie wypełniać wszystkie kolumny.
Przykładowa tabela powyżej. Mam dane pobrać za 2021-01-01 - 2021-01-07 ale aktualnie z klasy dostanę 6-elementowy vector, bo nie ma danych za 03.01.2021.
Więc ja chciałbym sobie ten vector "rozciągnąć" o ten jeden wpis za 03.01.2021.
I moje pytanie jest takie, która klasa powinna wziąć za to odpowiedzialność, bo ten wymóg jest np. tylko dla tego widoku tabeli, ale np. dla innego widoku już po prostu kolumny 03.01.2021 nie będzie.
@ZrobieDobrze: teraz trochę udało mi się rozjaśnić kontekst?
Tak mi się wydaje, że ten screen będzie lepszy
- chciałbym mieć możliwość zrobienia takich dwóch widoków tych samych danych, ale muszę gdzieś dokładać ten 2:00A. I pytanie, w którym miejscu to robić - przy odbiorze danych, czy w widoku końcowym, czy może pomiędzy?