Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将数据导出到SQL DB时禁用actionbutton x秒_R_Shiny_Handsontable_Rhandsontable - Fatal编程技术网

R 将数据导出到SQL DB时禁用actionbutton x秒

R 将数据导出到SQL DB时禁用actionbutton x秒,r,shiny,handsontable,rhandsontable,R,Shiny,Handsontable,Rhandsontable,我有一个带有动态数据的掌上电脑,我正在用sqlSave代码将它上传到MSSQL数据库,并使用shiny中的Submit按钮 observeEvent(input$submit, { hide('submit', animType = "fade", time = 5) asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = rv$data[,1], Calculated_Budget = r

我有一个带有动态数据的掌上电脑,我正在用sqlSave代码将它上传到MSSQL数据库,并使用shiny中的Submit按钮

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
然而,我找不到任何能在10秒钟内禁用actionbutton的功能。我尝试了shinyjs::disable和with progress,incProgress,但都不起作用

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
谢谢,

dbhandle <- odbcDriverConnect('driver={SQL Server};server=....;database=...;trusted_connection=true')

 withProgress( 
 sqlSave(dbhandle, dat = some data), 
      tablename = "Budget_Tool", 
      rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = 
      T), value = 1, 
      style = "notification", message = "Submitting, please wait..")

    --------------------
       actionButton("submit", "Submit", class = "btn-primary",
                    style="color: #fff; background-color: #337ab7; border-
      color: #2e6da4; font-size: 20px;"),
 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })

dbhandle当您在操作功能前后集成禁用和启用时,这或多或少是直截了当的

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
以下是一个示例片段:

library(shiny)
library(shinyjs)

ui <- shinyUI({
  shiny::fluidPage(
    useShinyjs(),  # Set up shinyjs
    actionButton(inputId = "start", label = "start")
  )
})

server <- shinyServer(function(input, output){
  actionFunction = function(){
    shinyjs::disable("start")

    # Replace actual code instead
    withProgress(message = 'Calculation in progress',
                 detail = 'This may take a while...', value = 0, {
                   for (i in 1:15) {
                     incProgress(1/15)
                     Sys.sleep(0.25)
                   }
                 })

    shinyjs::enable("start")
  }

  # Run action function on button click  
  onclick("start", actionFunction())
})

shinyApp(ui,server)
 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
库(闪亮)
图书馆(shinyjs)

ui当您在操作功能前后集成禁用和启用时,它或多或少是直接的

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
以下是一个示例片段:

library(shiny)
library(shinyjs)

ui <- shinyUI({
  shiny::fluidPage(
    useShinyjs(),  # Set up shinyjs
    actionButton(inputId = "start", label = "start")
  )
})

server <- shinyServer(function(input, output){
  actionFunction = function(){
    shinyjs::disable("start")

    # Replace actual code instead
    withProgress(message = 'Calculation in progress',
                 detail = 'This may take a while...', value = 0, {
                   for (i in 1:15) {
                     incProgress(1/15)
                     Sys.sleep(0.25)
                   }
                 })

    shinyjs::enable("start")
  }

  # Run action function on button click  
  onclick("start", actionFunction())
})

shinyApp(ui,server)
 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
库(闪亮)
图书馆(shinyjs)

uiI使用hide和show修复了它

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
observeEvent(输入$submit{
隐藏('submit',animType=“fade”,时间=5)
asd%
左键(CSK\U预算,c(“部门”、“成本汇总表”))
asd%变异(偏差=(如数字(2017年预算)-行和(rv$数据[,3:14]))
x=-0.05)

{x[i]我使用隐藏和显示来修复它

 observeEvent(input$submit, {
  hide('submit', animType = "fade", time = 5)
asd <- as.data.frame(cbind(Department = rv$data[,2], Cost_Summary_Key = 
  rv$data[,1], Calculated_Budget = rowSums(rv$data[,3:14]))) %>% 
  left_join(CSK_Budget, c("Department", "Cost_Summary_Key"))

   asd <- asd %>% mutate(Deviation = (as.numeric(Budget_2017) - rowSums(rv$data[,3:14])))

   x <- c()

   for (i in 1:nrow(asd)) {

  if(asd[i,5] >= -0.05)
  {x[i] <- TRUE} else {x[i] <- FALSE}

}

moment <- substr(Sys.time(), 1, 10)
moment2 <- substr(Sys.time(), 12, 19)
personel <- input$userName


if( all(x))
{


  dbhandle <- odbcDriverConnect('driver={SQL Server};server=...;database=...._SQL;trusted_connection=true')

  withProgress( 
    sqlSave(dbhandle, dat = (cbind(melt(rv$data, na.rm = F, varnames = c(Department, Cost_Summary_Key), as.is = F), Year = "2017", 
                                   Time_Stamp1 = moment, Time_Stamp2 = moment2, User = personel)), 
            tablename = ".....", 
            rownames = F, append = T, verbose = T, fast = F, colnames = F, safer = T), value = 1, 
    style = "notification", message = "Submitting, please wait..")


  js_string <- 'alert("Succes!!");'
  session$sendCustomMessage(type='jsCode', list(value = js_string))
  showNotification("Thanks, your response was submitted successfully!", duration = 5, type = "warning")
}
else {showNotification("Check Your Budget Items !!", duration = 3, type = "warning")}

odbcCloseAll()   
show('submit', animType = "slide", time = 1)
  })
observeEvent(输入$submit{
隐藏('submit',animType=“fade”,时间=5)
asd%
左键(CSK\U预算,c(“部门”、“成本汇总表”))
asd%变异(偏差=(如数字(2017年预算)-行和(rv$数据[,3:14]))
x=-0.05)
{x[i]