2017-12-26 15 views
0

私は動的データを手に持つことができ、Submitボタンを光沢のあるsqlSaveコードでMSSQL DBにアップロードしています。データがSQL DBにエクスポートされているときにx秒間アクションボタンを無効にする

しかし、ボットはアクションボタンを無効にする機能を見つけて、10秒と言うことができます。私はshinyjs :: disableとwithProgress、incProgressを試しましたが、どれもうまくいきませんでした。

あなたは無効化を統合し、前とアクション機能の後に有効にするとき、それはまっすぐ前方多かれ少なかれだ

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;"), 

答えて

0

私は非表示と表示を使用してそれを修正しました。

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) 
    }) 
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) 
+0

残念ながら、私はそれを働かせることができませんでした:( –

関連する問題