Форум программистов, компьютерный форум, киберфорум
JavaScript: ReactJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.03.2023
Сообщений: 34
1

Группировка элементов диаграммы Ганта с одинаковым значением поля в одной строке

26.04.2023, 23:34. Показов 810. Ответов 2

Author24 — интернет-сервис помощи студентам
У меня кое-что не получается, уже давно ломаю голову....

Пожалуйста, взгляните на картинку, которую я прикрепил ниже:
Группировка элементов диаграммы Ганта с одинаковым значением поля в одной строке


И у меня уже есть абсолютно все значения для отображения этой диаграммы, и это даже получается вот так, как показано на втором рисунке:
Группировка элементов диаграммы Ганта с одинаковым значением поля в одной строке


Однако это не совсем то, что я хочу получить.

И вот что я имею в виду: посмотрите на вторую картинку, вы видите имена machine 1, machine 2 и так далее. Итак, они повторяются, но мне нужно, чтобы такие значения с одинаковым machine_id группировались и отображались в одной строке диаграммы. Изначально неизвестно, сколько будет таких машин, а также изначально неизвестно, сколько элементов в каждой такой группе -> все эти данные получены позже, из axios, вот код:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import axios from 'axios';
import React, { useState, useEffect, useRef } from 'react';
import '../App.css'
import { Chart } from "react-google-charts";
 
 
const GanttChartForJob = () => {
    const [data, setData] = useState([]);
 
    // useEffect(() => {
    //     axios.get('http://127.0.0.1:8000/result/')
    //         .then(response => {
    //             setData(response.data);
    //         })
    //         .catch(error => {
    //             console.error(error);
    //         });
    // }, []);
    useEffect(() => {
        const fetchData = async () => {
            const result = await axios(
                'http://127.0.0.1:8000/result/',
            );
            setData(result.data);
        };
        fetchData();
    }, []);
 
    useEffect(() => {
        const handleResize = () => {
            setWidth(containerRef.current.offsetWidth);
            setHeight(containerRef.current.offsetHeight);
        };
        window.addEventListener('resize', handleResize);
        handleResize();
        return () => window.removeEventListener('resize', handleResize);
    }, []);
 
    const containerRef = useRef(null);
 
    const options = {
 
    };
 
    const transformedData = data.map(item => ({
        id: item.id,
        name: item.name_machine,
        start: item.T_i,
        end: item.T_c,
        progress: item.processing_times,
        bar: { group: item.machine_id }
    }));
 
    return (
        <div ref={containerRef} className='container'>
            <Chart
                width={'100%'}
                height={'1000px'}
                chartType="Gantt"
                loader={<div>Loading Chart</div>}
                data={[
                    [
                        { type: 'string', label: 'Task ID' },
                        { type: 'string', label: 'Task Name' },
                        { type: 'date', label: 'Start Date' },
                        { type: 'date', label: 'End Date' },
                        { type: 'number', label: 'Duration' },
                        { type: 'number', label: 'Percent Complete' },
                        { type: 'string', label: 'Dependencies' },
                    ],
                    ...transformedData.map(item => [
                        item.id.toString(),
                        item.name,
                        new Date(item.start),
                        new Date(item.end),
                        null,
                        item.progress,
                        null,
                    ]),
                ]}
                rootProps={{ 'data-testid': '1' }}
                className='table-container'
            >
                <table className='table'></table>
            </Chart>
        </div>
    );
};
 
export default GanttChartForJob;


Вы мне поможете? Или, может быть, вы знаете человека, который понимает это и может мне помочь?

Хотелось бы конечно побыстрее разрешить эту проблему


Задавайте вопросы, если нужно уточнение, мне нужна помощь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2023, 23:34
Ответы с готовыми решениями:

Удаление строк с одинаковым значением поля
Есть база, в ней, допустим, таблица с 100000 строками. Мне надо удалить все строки с одинаковым...

Как вывести поля с одинаковым значением
Суть проблемы такова, есть в БД таблица(см. Миниатюры) как мне сделать, что бы на форме...

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

Исключить повторение записей с одинаковым значением ключевого поля в datagridview
Здравствуйте, проблема (вернее, баг?) следующая: При вводе записи с несуществующим ключевым полем в...

Суммирование строк с одинаковым значением в одной из ячеек и с разными в других
Здравствуйте уважаемые форумчане. Столкнулся с такой задачей, есть стандартный отчет по площадкам в...

2
0 / 0 / 0
Регистрация: 28.03.2023
Сообщений: 34
27.04.2023, 00:10  [ТС] 2
Можете хотя бы подсказать - можно ли это вообще реализовать с react-google-charts или я просто зря трачу время
0
230 / 170 / 51
Регистрация: 12.03.2021
Сообщений: 971
27.04.2023, 10:06 3
Лучший ответ Сообщение было отмечено I am i как решение

Решение

Цитата Сообщение от I am i Посмотреть сообщение
Можете хотя бы подсказать - можно ли это вообще реализовать с react-google-charts или я просто зря трачу время
не пользовался гугловскими чартами, но твоя задача точно легко реализуется с помощью react-chartjs-2
1
27.04.2023, 10:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2023, 10:06
Помогаю со студенческими работами здесь

Сравнение всех значений поля в одной таблице со значением одного поля в другой
Пожалуйста помогите! БД в Access. Две таблицы id и ip. Поле pn таблицы id связан с полем id...

Сортировка элементов словаря с одинаковым значением
var nums = new Dictionary&lt;string, int&gt;(); nums.Add(&quot;4&quot;, 1); nums.Add(&quot;7&quot;, 1); nums.Add(&quot;32&quot;,...

Количество элементов массива с одинаковым значением ключа
Здравтсвуйте! Подскажите, как можно подсчитать количество элементов многомерного массива, ключ у ...

Диаграмма Ганта группировка точек
Всем добрый день! Как сгруппировать точки в Диаграмме Ганта по реквизиту &quot;точки&quot;?:) Если у...

Сохранение диаграммы Ганта
Всем привет. Формирую отчет, в нем данные выводятся в диаграмму Ганта. Когда сохраняю данный отчет...

Построение диаграммы Ганта
Диаграмма Ганта. Есть таблица, в которую пользователь вводит числа и текстовое поле. Согласно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru