Формат экспорта листов Excel с помощью JIRA-(пользовательские отчеты JIRA)
Мне нужно создать собственный отчет в jira с деталями отслеживания времени перехода. этот плагин jira может генерировать детали отслеживания времени. но мне нужно добавить эти данные отслеживания времени в отчет об экспорте всех полей jira по умолчанию. без копирования вставьте значения, которые мне нужны, чтобы найти способ объединить эти данные.
jira default все отчет поля
отчет может быть сгенерирован плагином, о котором я упоминал выше
какие мне нужны данные из вышеприведенного отчета (лист Б)
Затем мне нужно объединить эту таблицу в отчет об экспорте всех полей jira по умолчанию
что я нашел
1. напишите код макроса
2. Преобразование этих данных в SQL, а затем использовать SQL запросы.
Есть ли другие способы сделать это? или я должен выбрать выше вариант? или какой самый простой способ добиться этого?
2 ответа
После поиска, возможно, способов получить ответ на вопрос, я нашел способ решить эту проблему с помощью макросов.
Шаг 1: Я создал новый пустой рабочий лист под названием "Лист B" в той же рабочей книге Excel, созданной плагином.
Шаг 2: написать код макроса для листа A для генерации данных в лист B`
Function FindColumn(StartColumn As Integer, EndColumn As Integer, WantedString As String) As Integer
Dim LastColumn As Integer
Dim ReturnValue As Integer
i = 0
ReturnValue = 0
LastColumn = EndColumn - StartColumn
Do While i <= LastColumn
If (Worksheets("Sheet A").Cells(1, i + StartColumn) = WantedString) Then
ReturnValue = i + StartColumn
Exit Do
End If
i = i + 1
Loop
FindColumn = ReturnValue
End Function
Sub NewTime()
SetAll1to1ColumnsTime
End Sub
Sub SetAll1to1ColumnsTime()
Dim CurrentLine As Integer
Dim NROfColumns As Integer
Dim NROfLines As Integer
Dim Str As String
Dim Str2 As String
Dim Str3 As String
NROfColumns = Worksheets("Sheet A").UsedRange.Columns.Count
NROfLines = Worksheets("Sheet A").UsedRange.Rows.Count
CurrentLine = 2
Do While CurrentLine <= NROfLines
Column = FindColumn(1, NROfColumns, "Issue Key")
Worksheets("Sheet B").Cells(CurrentLine, 1).Value = Worksheets("Sheet A").Cells(CurrentLine, Column).Value
Column = FindColumn(1, NROfColumns, "Status")
Worksheets("Sheet B").Cells(CurrentLine, 2).Value = Worksheets("Sheet A").Cells(CurrentLine, Column).Value
Column = FindColumn(1, NROfColumns, "Status")
Str = Worksheets("Sheet A").Cells(CurrentLine, Column).Value
If Str = "Development Done" Then
Str2 = Worksheets("Sheet A").Cells(CurrentLine, 4).Value
Worksheets("Sheet B").Cells(CurrentLine, 4).Value = Str2
End If
If Str = "Find Solution" Then
Str3 = Worksheets("Sheet A").Cells(CurrentLine, 3).Value
Worksheets("Sheet B").Cells(CurrentLine, 3).Value = Str3
End If
CurrentLine = CurrentLine + 1
Loop
End Sub
Шаг 3: Затем я пишу код макроса для сгенерированного Листа B для форматирования данных, как мне нужно.
Сгенерированный лист B с использованием макрокода
это код макроса для листа B
Sub mergeCategoryValues()
Dim lngRow As Long
With ActiveSheet
lngRow = .Cells(65536, 1).End(xlUp).Row
.Cells(1).CurrentRegion.Sort key1:=.Cells(1), Header:=xlYes
Do
If .Cells(lngRow, 1) = .Cells(lngRow - 1, 1) Then
.Cells(lngRow - 1, 4) = .Cells(lngRow - 1, 4) & "" & .Cells(lngRow, 4)
.Rows(lngRow).Delete
End If
lngRow = lngRow - 1
Loop Until lngRow = 1
End With
End Sub
работа сделана! Примечание: не обращайте внимания на колонку B
Вращение строк в столбцы или динамическое добавление столбцов называется поворотом и не является частью стандарта SQL и обычно сопряжено с постоянными головными болями:-)
Поскольку я использую оракула за джира, я могу дать вам только конкретный ответ оракула:
SELECT * FROM (
SELECT
JI.ID AS ISSUEID,
P.PNAME || '-' || JI.ISSUENUM AS PKEY,
IST.PNAME AS ISSUESTATUS,
CG.CREATED AS CHANGED,
TO_CHAR(CI.NEWSTRING) AS NEWSTATUS
FROM JIRAISSUE JI
INNER JOIN ISSUESTATUS IST ON JI.ISSUESTATUS = IST.ID
INNER JOIN PROJECT P ON JI.PROJECT = P.ID
LEFT JOIN CHANGEGROUP CG ON CG.ISSUEID = JI.ID
INNER JOIN CHANGEITEM CI ON CI.GROUPID = CG.ID AND CI.FIELDTYPE = 'jira' AND CI.FIELD = 'status'
-- WHERE JI.ID = 278217
) PIVOT (MIN(CHANGED) FOR NEWSTATUS IN('Find Solution', 'Development Done'))
Единственная проблема заключается в том, что часть "динамический столбец" (предложение IN внутри PIVOT) должна быть известна. За исключением случаев, когда вы используете режим XML...