2016-01-01 3 views
2

Я пытаюсь создать блестящую панель инструментов (R 3.1.0/shiny 0.12.0/shinydashboard 0.5.0). Я успешно создал макет и решил использовать несколько вкладок на боковой панели панели инструментов.Добавление кнопки загрузки/экспорта в R shinydashboard

Боковая панель состоит из нескольких вкладок, и каждая вкладка отображает определенный набор участков A simple screenshot of what I have made thus far

Я пытаюсь добавить кнопку загрузки для этих участков, но я должен добавить его в заголовок (так, что он является общим ко всем вкладкам). Я знаю параметр «messageItem», но не могу его использовать.

Может кто-то помочь. Любой альтернативный метод, который, по вашему мнению, будет в порядке, очень приветствуется.

Заранее спасибо

[ОБНОВЛЕНИЕ - ДОБАВЛЕНО КОД ДЛЯ UI.R]: -

library(shinydashboard) 
library(htmlwidgets) 
library(rpivotTable) 
library(leaflet) 
library(ggplot2) 
library(rCharts) 
library(shiny) 
library(data.table) 
library(reshape) 
library(dplyr) 
dashboardPage(
    dashboardHeader(title="MSR Reports", 
        dropdownMenu(type = "task", 
           messageItem(
           from = "Download", 
           message = "Reports", 
           icon = icon("gear") 
           ), 
           messageItem(
           "Download", 
           message = "TEST", 
           icon = icon("life-ring"), 
           href= "http://www.google.com" 
           ) 
       ) 

    ), 

    dashboardSidebar(
    sidebarMenu(
       menuItem("SRequests", tabName = "SRequests", icon = icon("dashboard")), 
       menuItem("CRequests", tabName = "CRequests", icon = icon("th")), 
       menuItem("IN", tabName = "IN", icon = icon("file-word-o")), 
       menuItem("IN-Map",tabName="IN-Map",icon=icon("file-word-o")) 
    )), 

    dashboardBody(
       tags$head(tags$style(HTML(' 
       .skin-blue.main-header .logo 
        { 
        background-color: #3c8dbc; 
        } 
       .skin-blue .main-header .logo:hover 
        { 
       background-color: #3c8dbc; 
        }')) 
       ), 
       tags$head(tags$style(
       type = 'text/css', 
       '#test{ overflow-x: scroll; }')), 

        tabItems(
        tabItem(tabName = "SRequests", 
          fluidRow 
            (
            h2("Dashboard",align = "center"), 
            h3(" "), 
            h3(" "), 
            tabItem(tabName = "SRequests", 
            column(
             div(id="test",rpivotTableOutput('PivotTable',height=520)),width=12 
             ) 
           ) 
           )), 
        tabItem(tabName = "CRequests", 
          fluidRow(
             h2("Volume by BA,align = "center"), 
             h3(" "), 
             h3(" "), 
             column(
              dataTableOutput("CRequests") , width=10 
              ) 
            ) 
         ), 
        tabItem(tabName = "IN", 
          fluidRow(
             h2("INDashboard",align = "center"), 
             h3(" "), 
             h3(" "), 
             column(
              width=4, showOutput("chart2", "highcharts") 
              ), 
             column(
              width=4, showOutput("chart3", "highcharts") 
              ), 
             column(
              width=4, showOutput("chart4", "highcharts") 
              ) 

            ) 
          ), 
        tabItem(tabName = "IN-Map", 
          h2("IN Locations"), 
          fluidRow(
             leafletOutput("mymap"), 
             actionButton("recalc", "New points") 
            ) 

          ) 

        ) 
       ) 
) 
+1

Возможно, что-то не так? –

+0

Привет, Марк, я добавил сегмент ui.R. Часть server.R имеет только отображаемые таблицы данных. Пожалуйста, дайте мне знать, если это необходимо, и я буду отформатировать и загрузить. Благодаря! – rantish

+0

Не совсем ответ, так как кнопка не добавлена, но я хотел убедиться, что вы знаете, что щелчок правой кнопкой мыши на изображении должен предоставить вам возможность сохранить изображение. – timelyportfolio

ответ

0

Это альтернативный метод для загрузки всех ваших участков одновременно. Вы можете создать одну кнопку обработчика загрузки, которая будет загружать все графики одновременно в формате pdf/ppt. Код примера приведен ниже:

output$downloadReport <- downloadHandler(

    filename = "You report.pdf", 
    content = function(file) { 
     pdf(file) 

     ## If you have displayed some Datatables in any of your tabs 
     pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null")))) 
     sample<- sampledatatable() ## Function which you have made in server.R 
     sample<- grid.table(sample) 
     vp = viewport(layout.pos.row = 2, layout.pos.col = 1:2) 
     grid.text("Your Datatable", vp = viewport(layout.pos.row = 1, layout.pos.col = 1:2)) 
     grid.newpage() 

     print(plot1()) # Function for the plot you made it in Server.R 
     print(plot2()) 

     dev.off() 
    } 
) 
Смежные вопросы