Forum Discussion

juano_at_price's avatar
juano_at_price
Frequent Visitor
3 years ago
Solved

Show chart information based on Current Shift

I have a chart that shows machine downtime. I developed one chart for 1st shift, from 8:00 AM to 4:00 PM, another chart for second shift from 4:00 PM to 12:00 midnight. Data refreshes every hour, 5 minutes past the o'clock hour. The question is, how can I show either First Shift or Second shift based on the current shift? So from 8 Am to 4 PM it will show first shift chart and from 4 to midnight it will show the second shift chart? Or, is it even possible to have just one chart that will filp based on current time?

 

  • juano_at_price I would try using a single chart and create a selector measure like this:

    Selector Measure =
      VAR __Now = NOW()
      VAR __NowTime = TIME(HOUR(__Now),MINUTE(__Now),0)
      VAR __Time = MAX('Table'[Time]) // whatever is used in your chart x-axis and assuming this is a proper time value
    RETURN
      SWITCH(TRUE()
        __NowTime >= TIME(8,0,0) && __NowTime < TIME(16,0,0) && __Time >= TIME(8,0,0) && __Time < TIME(16,0,0),1,
        __NowTime >= TIME(16,0,0) && __NowTime <= TIME(23,59,59) && __Time >= TIME(16,0,0) && __Time < TIME(23,59,59),1,
        __NowTime >= TIME(0,0,0) && __NowTime < TIME(8,0,0) && __Time >= TIME(0,0,0) && __Time < TIME(8,0,0),1,
        0
      )

    Put this measure in your visual filters in your Filters pane and filter for 1.

1 Reply

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    juano_at_price I would try using a single chart and create a selector measure like this:

    Selector Measure =
      VAR __Now = NOW()
      VAR __NowTime = TIME(HOUR(__Now),MINUTE(__Now),0)
      VAR __Time = MAX('Table'[Time]) // whatever is used in your chart x-axis and assuming this is a proper time value
    RETURN
      SWITCH(TRUE()
        __NowTime >= TIME(8,0,0) && __NowTime < TIME(16,0,0) && __Time >= TIME(8,0,0) && __Time < TIME(16,0,0),1,
        __NowTime >= TIME(16,0,0) && __NowTime <= TIME(23,59,59) && __Time >= TIME(16,0,0) && __Time < TIME(23,59,59),1,
        __NowTime >= TIME(0,0,0) && __NowTime < TIME(8,0,0) && __Time >= TIME(0,0,0) && __Time < TIME(8,0,0),1,
        0
      )

    Put this measure in your visual filters in your Filters pane and filter for 1.