Трижды сгруппированный - табличными данными - как отобразиться?

Я должен отобразить набор данных в таблице на веб-сайте как часть отчета. Проблема существует набор ее, и она должна быть визуально сгруппирована.

Каждая часть данных является "использованием" объекта и имеет дату (представляющий, когда это использовалось), число хранилища (соответствующий хранилищу, которое использовало его), название товара (объект, который использовался), и количество (количество объекта, который использовался).

Пользователь будет иметь опцию или сгруппироваться объектом, затем сохранит или хранилищем, затем объект. Негласно, я сгруппируюсь по дате, также.

Отчет должен суммировать количества оба объектом/хранилищем (в зависимости от группы - опцией) и по дате и составить подсуммы.

Вещь, я не уверен, как отобразить ее. Лучшее, которое я могу придумать прямо сейчас, является чем-то как

                           ++------+------+------+------++-----+
                           || date | date | date | date || sum |
+-----------+--------------||======+======+======+======||=====+---+
| Item Name | Store Number ||  1   |  2   |  3   |  4   ||  10 | ^ |
|           +--------------||------+------+------+------||-----|---|
|           | Store Number ||  5   |  6   |  7   |  8   ||  26 | # |
|           +--------------||------+------+------+------||-----| # |
|           | Store Number ||  9   |  10  |  11  |  12  ||  42 | # |
|           +--------------||------+------+------+------||-----|   |
|                    Total ||  15  |  18  |  21  |  24  ||  78 |   |
+==========================++===========================++=====|   |
| Item Name | Store Number ||  1   |  2   |  3   |  4   ||  10 |   |
|           +--------------||------+------+------+------||-----|   |
|           | Store Number ||  5   |  6   |  7   |  8   ||  26 |   |
|           +--------------||------+------+------+------||-----|   |
|           | Store Number ||  9   |  10  |  11  |  12  ||  42 |   |
|           +--------------||------+------+------+------||-----|---|
|                    Total ||  15  |  18  |  21  |  24  ||  78 | v |
+==========================++===========================++=====+---+
                            | < | ####              | > |
                            +---------------------------+

Для группировки объектом затем хранят или переключают "Название товара" с "Числом Хранилища" для группы хранилищем затем объект.

Столбцы даты (намного больше, чем всего четыре) прокрутили бы слева/справа, и объекты/хранилища прокрутят/вниз, для хранения таблицы на одной странице. Другими словами, заголовки даты замораживаются на месте вертикально, и название товара, хранят числа, и суммы замораживаются горизонтально.

Проблема была бы с реализацией: как, черт возьми, я представляю это в HTML!?

Лучший вопрос: существует ли лучший путь?

Каков Ваш совет относительно решения этой проблемы? (Предпочтительно изящно и легко)

7
задан Brian Tompsett - 汤莱恩 31 October 2015 в 17:10
поделиться

2 ответа

Я думаю, что лучшим решением будет сгруппировать данные по элементам, как на следующем изображении. http://img51.imageshack.us/img51/6434/layoutsv.png

HTML будет примерно таким:

<div style="overflow: auto; width: 100%; height: 500px">
    <h1>Item 1</h1>
    <table>
        <tr>
            <th></th>
            <th>Date</th>
            ...
            ...
        </tr>
        <tr>
            <th>Store #</th>
            <td>1</td>
            ...
            ...
        </tr>
        ...
        ...
    </table>
    <h1>Item 2</h1>
    ...
    ...
</div>

Для фиксированного столбца вы должны посмотреть здесь: Таблица HTML с фиксированными заголовками и фиксированным столбцом?

1
ответ дан 7 December 2019 в 18:39
поделиться

Это выполнимо, но я бы сам не стал делать это непосредственно в html. Насколько сложным будет его создать вначале, настолько же сложным будет изменить его позже, когда изменится бизнес-потребность.

Если вы все-таки попробуете это сделать, я бы рекомендовал изучить концепции стекированных и встроенных таблиц, прокручивающихся div'ов и div'ов с фиксированным положением/перекрытием. Даже в этом случае будет не очень весело пытаться заставить что-то настолько сложное работать более чем в одном типе браузера.

Я бы рекомендовал обратиться к инструментам более высокого уровня. В ASP.NET есть несколько хороших элементов управления для этого, если вы все же хотите использовать несколько ручной подход. В них есть встроенные элементы управления, которые можно изменять в коде, или вы можете кодировать (в отличие от разметки) таблицы и использовать модель событий для запросов/перезапросов к базе данных.

Еще лучше, если для базовых нужд вы обратитесь к инструментам создания отчетов, таким как SSRS (есть много других), или даже MS Access.

1
ответ дан 7 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: