actualisation automatique Shiny

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

david petit
Messages : 7
Enregistré le : 20 Avr 2018, 07:07

actualisation automatique Shiny

Messagepar david petit » 11 Mai 2021, 07:26

Bonjour à tous,

Je suis en train de développer une petite application en Shiny (avec shinydashboard)
Sur un des items, j'aimerai avoir un rafraichissement automatique de mes données toutes les minutes par exemple, donc exécution d'une requete sql pour afficher les nouvelles données sans intervention de l'utilisateur

J'arrive à utiliser la fonction invalidateLater sur la valueBox pour afficher l'heure, mais je n'arrive pas à voir comment je pourrais faire pour tout l'item

voici la partie ui

Code : Tout sélectionner

        tabItem(tabName = "encod",
            fluidRow(
                dateInput("dateJour", label ="Date",value = Sys.Date())
            ),

            fluidRow(
                valueBoxOutput("dateHeure"),
            ),

            fluidRow(
                valueBoxOutput("box1"),
                valueBoxOutput("box2")
            )
            )


server

Code : Tout sélectionner

 
 data_encodage<-(eventReactive (input$dateJour,{

    date_encodage <- input$dateJour

    # on interroge horme dans le json pour compter ce qui est enregistré
    sql<-paste0("monsql")

     res_encours<-dbGetQuery(con_horme,sql)

    sql<-paste0("monsql")
 
    res_planif <-dbGetQuery(con_horme,sql)

    nb_ech<-rbind(res_encours,res_planif)

    return(nb_ech)
  },ignoreNULL = FALSE)
  )



  output$box1<- renderValueBox({
    info_germes<- paste0(" G : ",
    data_encodage()[which(data_encodage()$ech=='reel'&data_encodage()$libelle=='Germes routine'),"nb"],"/",
    data_encodage()[which(data_encodage()$ech=='prevu'&data_encodage()$libelle=='Germes routine'),"nb"])

    valueBox(
      info_germes,
      "Germes ",
      icon = icon("users"),
      color="blue"
    )
  })

  output$box2<- renderValueBox({
    info_chimie<- paste0(" C : ",
      data_encodage()[which(data_encodage()$ech=='reel'&data_encodage()$libelle=='MG'),"nb"],"/",
      data_encodage()[which(data_encodage()$ech=='prevu'&data_encodage()$libelle=='MG'),"nb"])

    valueBox(
      info_chimie,paste0("Chimie",Sys.time()),icon = icon("users"),color = "red")
  })



  output$dateHeure<-renderValueBox({
    invalidateLater(2000)
    valueBox(
      Sys.time(),
      "Dernière mise à jour",
      icon = icon("clock"),
      color = "yellow"
    )
  })


merci d'avance

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité