Использование выбранного значения из раскрывающегося списка на другой вкладке для создания панели мониторинга в блестящем приложении - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть база данных сохраненных параметров и имен сохраненных сценариев в моей базе данных, как показано

  | available_scenario | scenario_key |
 +--------------------+--------------+
| A                  |            6 |
| abc                |            2 |
| aw                 |            7 |
| efg                |            5 |
| xyz                |            4 |
+--------------------+--------------+

, а сохраненные параметры

  | parameters            | value | scenario_key |
 +-----------------------+-------+--------------+
 | Price                 | 4     |            2 |
 | Distance              | 5     |            2 |
 | Multiplication Factor | 1.5   |            2 |
 | No Of Passengers      | 100   |            2 |
 | Planning Period       | 5     |            2 |
| Price                 | 4     |            6 |
| Distance              | 5     |            6 |
| Multiplication Factor | 1.5   |            6 |
| No Of Passengers      | 100   |            6 |
| Planning Period       | 10    |            6 | 
| Price                 | 4     |            7 |
 | Distance              | 5     |            7 |
| Multiplication Factor | 1.5   |            7 |
 | No Of Passengers      | 100   |            7 |
 | Planning Period       | 10    |            7 |

мой код:

  library(shiny)
  library(pool)
   library(shinydashboard)
  library(ggplot2)
    library(nloptr)
   library(plotly)
      pool <- dbPool(drv = RMySQL::MySQL(),dbname = "db",host = "databaseodczl.us-east- 
2.rds.amazonaws.com",username = "host",password = "hostt", port = 3306)

      mychoices = dbGetQuery(pool,"select available_scenario from scenario_name;")
       ui <- shinyUI(
    dashboardPage(
dashboardHeader(title = "Bag Pricing Model"),
dashboardSidebar(
  sidebarMenu(
    menuItem("Create",tabName = "create"),
    menuItem("Available Scenarios", tabName = "available"),
    menuItem("Disconnect Connection", tabName = "disconnect")
    #menuItem("Delete Scenario", tabName = "delete")
  )
),
dashboardBody(
  tabItems(

    tabItem(
      tabName = "create",
      tabsetPanel( id ="Create Scenario",
                   tabPanel("Tab1", actionButton("create_scenario", "Create Scenario"), 
                            selectizeInput('n', "Available scenarios", choices = mychoices, multiple = TRUE)
                   ), 
                   tabPanel("tab2") ),
      uiOutput('inputs')# actionButton("load_scenario","Load scenario")



    )

    )
  )))

 server<-function(input, output,session){





observeEvent(input$create_scenario,{

output$inputs <- renderUI({
  mainPanel(    
    textInput("txtInput","Enter scenario name"),
    textOutput("sname"),
    actionButton("save","Save Scenario")
  )

    })
   })

  observeEvent(input$load_scenario,{

output$input <- renderUI({
  fluidPage(
    # titlePanel("Baggage Pricing Model"),
    sidebarLayout(
      sidebarPanel(
        sliderInput(inputId = "Y",label = "Price", value = 4, min =1,max = 6,step = 0.1),
        sliderInput(inputId = "d_km",label ="distnace)", value = 5, min =1,max = 20,step = 0.1),

        actionButton(inputId = "button", label = "Calculate"),
        actionButton(inputId = "savee", label = "Save Scenario With Plots")
      ),
      mainPanel(

        tabsetPanel(id = "tabs",
                    tabPanel("Plot", Value="Plot", plotOutput("X",height = '300px'),
                             plotOutput("HH",height = '250px')),
                    tabPanel("Table",Value="Table", DT::dataTableOutput("comptable"))
        )

      )
    )
  )

  })
 })  


 }

shinyApp(ui = ui, server = server) 

The above code will look like as shown in picture Как только я нажму на свой доступный сценарий ios, на моей вкладке 2 должна появиться панель мониторинга, как указано в load_scenario части кода, параметры по умолчанию значение будет получено из таблицы базы данных, как показано в таблице выше. Кто-нибудь может предложить мне решить вышеуказанную проблему.

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