Jspdf заголовок автозапуска, вставляющий данные ячейки из ячейки ниже - PullRequest
0 голосов
/ 08 ноября 2019

Я создал таблицу с использованием jspdf и autotbale, и она работает как задумано, пока я не попытаюсь отформатировать некоторые данные ячейки с помощью didParseCell. Все данные поступают правильно, и цветовая кодировка также правильна. Что происходит, так это то, что заголовок также получает проанализированные данные, примененные к нему, из первой ячейки ниже. См. Изображение.

header format

Я подозреваю, что это связано с первым разделом в строке didParseCell: data.row.index === 0, если я изменю это на data.row. index === 1, затем он выталкивает все остальные данные таблиц вниз по строке. Я попытался изменить значения в каждой строке, полностью удалив заголовок, но безуспешно. Единственный обходной путь, который я нашел, - это нарисовать другую таблицу (только заголовки) поверх другой.

pdf.autoTable
        ({
            startY: 85,
            margin: 20,
            styles: { lineColor: [10, 10, 10], lineWidth: 0.1 },
            headStyles: {halign: 'center', fillColor: [10, 10, 10]},
            columnStyles: {0: {halign: 'left'},1: {halign: 'center',columnWidth: 22},2: {halign: 'center',columnWidth: 22},3: {halign: 'center',columnWidth: 22},4: {halign: 'center',columnWidth: 22}},
            head: [['Test Data', 'Round 1', 'Round 2', 'Change','Compare']],
            body: [
                ['20m Beep Test', beepResults.R1Score,beepResults.R2Score,beepResults.Change,''],
                ['5m Agility Sprint (seconds)', agilitySprintResults.R1Score, agilitySprintResults.R2Score, agilitySprintResults.Change, ''],
                ['Horizontal Standing Jump (cm)',horizontalStandingJumpResults.R1Score,horizontalStandingJumpResults.R2Score,horizontalStandingJumpResults.Change,''],
                ['Flexed Arm Hang (seconds)',flexedArmHangResults.R1Score,flexedArmHangResults.R2Score,flexedArmHangResults.Change,''],
                ['Sit n Reach Flexibility Left (cm)',sitReachFlexibilityLResults.R1Score,sitReachFlexibilityLResults.R2Score,sitReachFlexibilityLResults.Change,''],
                ['Sit n Reach Flexibility Right (cm)',sitReachFlexibilityRResults.R1Score,sitReachFlexibilityRResults.R2Score,sitReachFlexibilityRResults.Change,'']
            ],

            //Colours our column boxes appropriately
            didParseCell: function (data)
            {
                if (data.row.index === 0 && data.column.index === 3) {
                    data.cell.text = FormatChangeForPdf(beepResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(beepResults.Change));
                }
                if (data.row.index === 1 && data.column.index === 3) {
                    data.cell.text = FormatChangeForPdf(agilitySprintResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(agilitySprintResults.Change));
                }
                if (data.row.index === 2 && data.column.index === 3) {
                    data.cell.text = FormatChangeForPdf(horizontalStandingJumpResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(horizontalStandingJumpResults.Change));
                }
                if (data.row.index === 3 && data.column.index === 3) {
                    data.cell.text = FormatChangeForPdf(flexedArmHangResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(flexedArmHangResults.Change));
                }
                if (data.row.index === 4 && data.column.index === 3) {
                    data.cell.text = FormatChangeForPdf(sitReachFlexibilityLResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(sitReachFlexibilityLResults.Change));
                }
                if (data.row.index === 5 && data.column.index === 3) {
                     data.cell.text = FormatChangeForPdf(sitReachFlexibilityRResults.Change);
                    data.cell.styles.fillColor = ChangeToColourArray(PercentageChangeFormatted(sitReachFlexibilityRResults.Change));
                }

                if (data.row.index === 0 && data.column.index === 4) {
                    data.cell.text = CheckFeedback(beepResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(beepResults));
                }
                if (data.row.index === 1 && data.column.index === 4) {
                    data.cell.text = CheckFeedback(agilitySprintResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(agilitySprintResults));
                }
                if (data.row.index === 2 && data.column.index === 4) {
                    data.cell.text = CheckFeedback(horizontalStandingJumpResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(horizontalStandingJumpResults));
                }
                if (data.row.index === 3 && data.column.index === 4) {
                    data.cell.text = CheckFeedback(flexedArmHangResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(flexedArmHangResults));
                }
                if (data.row.index === 4 && data.column.index === 4) {
                    data.cell.text = CheckFeedback(sitReachFlexibilityLResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(sitReachFlexibilityLResults));
                }
                if (data.row.index === 5 && data.column.index === 4) {
                     data.cell.text = CheckFeedback(sitReachFlexibilityRResults);
                    data.cell.styles.fillColor = ChangeToColourArray(CheckColours(sitReachFlexibilityRResults));
                }
            },
        });

Я ожидаю, что последние две ячейки заголовка будут черными и произнесут «Изменить» и «Сравнить». "соответственно.

...