Cocoa IB Elements для создания отчета - PullRequest
0 голосов
/ 14 января 2012

Я разрабатываю приложение для отображения Активности и Коленей в Деятельности. Я довольно новичок в Какао, но создал базовый интерфейс для отображения содержимого массива «Деятельности», а затем отвечаю на кнопку, чтобы отобразить круги и некоторые сводные данные для всех выбранных видов деятельности. Вот структуры классов:

Класс деятельности:

  • activityDate
  • спорт
  • кругов []

Класс коленей:

  • * 1016 начальный промежуток *
  • totalTime
  • Расстояние
  • maximumSpeed ​​
  • averageSpeed ​​
  • maximumPace
  • averagePace
  • калории
  • averageHeartbeat
  • maximumHeartbeat
  • интенсивность

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

Running  Oct-22-2011 10:10:14 AM
              Lap 1  10:10:14 AM  3.80 mi  42:48   11:16/mi  ...
                          Summary 3.80 mi  42:48   11:16/mi  ...

Running  Oct-24-2011 04:07:06 PM
         Lap 1  04:07:06 PM  3.10 mi  31:19   10:06/mi  ...
         Lap 2  04:38:31 PM  3.10 mi  31:16   10:05/mi  ...
                    Summary  6.20 mi  1:02:36 10:05/mi ....

              Grand Summary  10.0 mi  1:45:25 10:29/mi  ...

Сводные данные являются итоговыми и средними в зависимости от значения. Мне нужны заголовки столбцов и возможная подсветка строк для сводок.

Я рассмотрел возможность использования NSOutlineView, поскольку хочу, чтобы все было хорошо выровнено по столбцам, но не знаю, как использовать два разных класса для отображения. Я однажды пытался сделать это, используя HTML для создания NSTextView, с хорошими результатами. Однако я действительно не хочу генерировать HTML для решения этой проблемы.

Есть идеи и возможные примеры?

1 Ответ

0 голосов
/ 25 января 2012

После исследования я не смог найти способ реализовать нужный интерфейс в IB.Я вернулся к использованию WebView и HTML для генерации результатов отчета.Используя таблицы и CSS, я смог создать довольно приятный на вид набор отчетов, которые можно легко распечатать.

Вот сгенерированный HTML-код, поскольку я не могу опубликовать изображение (я слишком новичок в stackoverflow).

    <table class='first'>
        <tr class='activity'><td>Running</td><td colspan='10' align='left'>Oct 2, 2011 11:29 AM</td></tr>
        <tr class='lap'><th></th><th>Start Time</th><th>Distance</th><th>Elapsed Time</th><th>Avg Pace</th><th>Max Pace</th><th>Avg Speed</th><th>Max Speed</th><th>Calories</th><th>Avg Heartrate</th><th>Max Heartrate</th></tr>
        <tr class='lapdetails'><td></td><td class='lap'>11:29:53 AM</td><td class='lap'>3.68 mi</td><td class='lap'>38:21.62</td><td class='lap'>10:25/mi</td><td class='lap'>5:43/mi</td><td class='lap'>5.8 mph</td><td class='lap'>10.5 mph</td><td class='lap'>449</td><td class='lap'>0</td><td class='lap'>0</td></tr>
        <tr class='activitysummary'><td>Totals:</td><td class='lap'></td><td class='lap'>3.68 mi</td><td class='lap'>38:21.62</td><td class='lap'>10:25/mi</td><td class='lap'>5:43/mi</td><td class='lap'>5.8 mph</td><td class='lap'>10.5 mph</td><td class='lap'>449</td><td class='lap'>0</td><td class='lap'>0</td></tr>
    </table>
    <table>
        <tr class='activity'><td>Running</td><td colspan='10' align='left'>Oct 7, 2011 12:22 PM</td></tr>
        <tr class='lap'><th></th><th>Start Time</th><th>Distance</th><th>Elapsed Time</th><th>Avg Pace</th><th>Max Pace</th><th>Avg Speed</th><th>Max Speed</th><th>Calories</th><th>Avg Heartrate</th><th>Max Heartrate</th></tr>
        <tr class='lapdetails'><td></td><td class='lap'>12:22:59 PM</td><td class='lap'>3.18 mi</td><td class='lap'>31:17.35</td><td class='lap'>9:49/mi</td><td class='lap'>6:44/mi</td><td class='lap'>6.1 mph</td><td class='lap'>8.9 mph</td><td class='lap'>402</td><td class='lap'>148</td><td class='lap'>171</td></tr>
        <tr class='activitysummary'><td>Totals:</td><td class='lap'></td><td class='lap'>3.18 mi</td><td class='lap'>31:17.35</td><td class='lap'>9:49/mi</td><td class='lap'>6:44/mi</td><td class='lap'>6.1 mph</td><td class='lap'>8.9 mph</td><td class='lap'>402</td><td class='lap'>148</td><td class='lap'>171</td></tr>
    </table>
    <table>
        <tr class='activity'><td colspan='11'>Summary</td></tr>
        <tr class='lap'><th></th><th>Activities</th><th>Distance</th><th>Elapsed Time</th><th>Avg Pace</th><th>Max Pace</th><th>Avg Speed</th><th>Max Speed</th><th>Calories</th><th>Avg Heartrate</th><th>Max Heartrate</th></tr>
        <tr class='activitysummary'><td class='lap'></td><td class='lap'>2</td><td class='lap'>6.86 mi</td><td class='lap'>1:09:38.97</td><td class='lap'>10:07/mi</td><td class='lap'>5:43/mi</td><td class='lap'>5.9 mph</td><td class='lap'>10.5 mph</td><td class='lap'>851</td><td class='lap'>148</td><td class='lap'>171</td></tr>
        <tr class='activitysummary'><td class='lap'></td><td class='lap'>per Activity</td><td class='lap'>3.43 mi</td><td class='lap'>34:49.49</td><td class='lap'>10:07/mi</td><td class='lap'>&nbsp;</td><td class='lap'>5.9 mph</td><td class='lap'>&nbsp;</td><td class='lap'>425</td><td class='lap'>&nbsp;</td><td class='lap'>&nbsp;</td></tr>
    </table>
...