MS Access - Conditional Formatting in Continuous Form on Specific Cells - ms-access

I'm working on Access and I have a question to ask on conditional formatting. As you can see in the picture I have 2 columns of data, L/I and Unit Price.
What I want to do is whenever there is duplicated L/I appearing in the data, conditional formatting will
highlight the duplicated L/I, and
compare on only the specific unit prices with duplicated L/I and show the cheaper price with green
font colour, yellow for price in the middle and red for the most expensive price.
I have done the first part as shown in the picture but I am clueless on the expression to be used for the second part. Not sure if I have articulated my concerns accurately but thanks in advance for attending to this question. Your help is sincerely appreciated.
What my continuous form looks like:

Maybe you could set the record source of the form to a query like beneath that generates a 'helper'-column with the name Indicator that is filled with the text "RED", "YELLOW" or "GREEN" according to their unit price characteristic. Based on this column, inside the form you could use conditional formatting to actually show the unit price in the wanted color. Hope this query helps (you in the right direction). I assumed the table is called "Items", you should change that to your naming.
SELECT i.ID, i.LI, i.UnitPrice, iif(i.UnitPrice = (SELECT MAX(il.UnitPrice) FROM Items AS il WHERE il.LI = i.LI), "RED", iif(i.UnitPrice = (SELECT MIN(il.UnitPrice) FROM Items AS il WHERE il.LI = i.LI), "GREEN", "YELLOW" )) AS Indicator FROM Items as i;

Related

SSRS Switch Colour Expression multiple groups criteria

I trying to colour code a group within a group based on a value.
enter image description here
I am quite new to SSRS, and have tried various expressions, SWITCH, IIF etc but I cant seem to get them to reference the various criteria and groups correctly.
You've not explained what your criteria is so this is just a guess. I'm also assuming that the Target values are numeric, so 5 and not 5 days for example.
I'm also assuming that you want the background to be green is the count of DAYS2 >= Target
If this is the case then you can do something simple like this
=IIF(COUNT(Fields!DAYS2.Value) < Fields!Target.Value, "Green", "Red")

Filtering name with two condition

I have a sample list of student and grades/subject in this file
enter image description here
https://docs.google.com/spreadsheets/d/1NeHlUaRnbvdJ2yJ38fUETGgBoYseQ8CuXmwRCwObAlM/edit#gid=0
On the range A16:A I'd like to see the list of names who has the grades of around 90-100 when I check any of the checkbox on B15:k15
the first example is when I check all of the boxes
I will only see the first name on the list because he is the only one with the 90-100 scores on all subject
2nd example when I check B15 and C15
I will only see the 1st and 2nd names on the list because he's those who only able to get a 90-100 score on those two subjects.
Is there a way to do this kind of filtering? thank you so much
Since this is your first post, I'm going to go with the approach I think you'll find easiest to understand. It's a long formula (which I've placed in a new sheet called "Erik Help" in A16), but it's just a repeat of the same element several times:
=FILTER(A2:K11, IF(B15=TRUE, B2:B11>=90, B2:B11^0), IF(C15=TRUE, C2:C11>=90, B2:B11^0), IF(D15=TRUE, D2:D11>=90, D2:D11^0), IF(E15=TRUE, E2:E11>=90, E2:E11^0), IF(F15=TRUE, F2:F11>=90, F2:F11^0), IF(G15=TRUE, G2:G11>=90, G2:G11^0), IF(H15=TRUE, H2:H11>=90, H2:H11^0), IF(I15=TRUE, I2:I11>=90, I2:I11^0), IF(J15=TRUE, J2:J11>=90, J2:J11^0), IF(K15=TRUE, K2:K11>=90, K2:K11^0))
The first argument of FILTER tells the function what to filter (in this case A2:K11).
After that, an IF statement is set up to check each checkbox. If the checkbox is checked, the FILTER will only include students who obtained a 90 or higher in that subject.
If the checkbox is NOT checked, then the student is automatically included (that's the part that says "B2:B11^0" etc., since anything to the zero-power equals 1, and 1 and TRUE are the same to Google Sheets). In other words, if no checkboxes were checked, then all students would read TRUE for all subjects, i.e., all students would be included (or, to think of it another way, no one is rules out). While the ^0 is not strictly necessary (i.e., any number other than zero is the same as TRUE), I think it's better formula practice and easier for others to understand if TRUE is represented either as TRUE or as 1.
I also set conditional formatting on A15:A, to bold the name as you had it. (The conditional formatting rule says, in English, "If anything is there, use bold.") You can see the rule by clicking anywhere in the range A15:A, then selecting Format > Conditional formatting from the menu and clicking the open the rule that appears in the window to the right of the screen.

SSRS - Replace the Chart

I have a question, want some assistance.
Q) My question is that i have a chart in which analyst assigned for many incidents and some analyst have 1 or two incident assigned. just because of this the bar chart looks ugly some time. So thats why i used a new chart to represent Min incident count. But i want there some creativeness, for which i want there a radio button or OnClick event ( I do not know how to use both these. When report runs by default it`ll show Max incidents count chart and when we used radio button it will show Min incidents count chart, on the same chart area no need of new area or on new page.
Kindly help me or refer me some links and with ideas. As i have searched many blogs but i didn`t get any big achievement.
Below is my Simplified query;
SELECT
Count(IncidentDimvw.Id)
,UserDimvw.FirstName AS Analyst
FROM
IncidentDimvw
FULL JOIN WorkItemDimvw
ON IncidentDimvw.EntityDimKey = WorkItemDimvw.EntityDimKey
JOIN WorkItemAssignedToUserFactvw
ON WorkItemDimvw.WorkItemDimKey = WorkItemAssignedToUserFactvw.WorkItemDimKey
JOIN UserDimvw
ON WorkItemAssignedToUserFactvw.WorkItemAssignedToUser_UserDimKey = UserDimvw.UserDimKey
WHERE
WorkItemAssignedToUserFactvw.DeletedDate IS NULL
GROUP BY
UserDimvw.FirstName
Having (Count(IncidentDimvw.Id) = (#Count))
Having Clause is right or wrong, i donot know.
I used the following expresion in series as you suggested.
=iif(Parameters!Count.Value, Max(Sum(Fields!ID.Value)), Min(Sum(Fields!ID.Value)))
Sample data is as folows;
Regards
Muhammad Ahsan
I can think of a couple of ways to approach this:
Dynamic expressions based on parameter
Say you have a simple DataSet like:
And also a boolean parameter called showMax.
We can create a simple bar graph based on this:
The most important thing to note is that Series value is expression-based:
In the above example the expression is:
=IIf(Parameters!showMax.Value
, Max(Fields!value.Value)
, Min(Fields!value.Value))
i.e. when showMax is true, report the Max values, otherwise report the min values.
In this case I've also updated the Axis title, Chart title, and Custom legend text to be expression-based:
Axis Title: =IIf(Parameters!showMax.Value, "Max", "Min")
Chart Title: =IIf(Parameters!showMax.Value, "Max per group", "Min per group")
Custom legend text: =IIf(Parameters!showMax.Value, "Max value", "Min value")
The chart behaviour changes based on what parameter is selected as required:
Set Visibility based on parameter
Another option is simply to have to charts and hide one depending on parameter selection.
For example, for the Max chart the Hidden property can be set to:
=Not(Parameters!showMax.Value)
Setting this property correctly for each report will mean only one is ever displayed to the user, i.e. it will look dynamic.
Either of these options should work; the first keeps the layout simple in the designer makes the chart more complex, the second makes the layout more complex but keeps the charts simple.
Hopefully one option will work for you.

How to get the max of a sum?

Can anyone tell me how do I get the Max of a calculated field? Below is an image of my situation:
Note that Flag is of type int.
I want to write the expression in the image , but when I use it, it kinda does:
Sum(Sum(Fields!Flag.value))
Can anyone help me out on this. I think I need to add scope for the Sum(Flag) but when I add the group scope as EMPID as:
=iif(SUM(Fields!Flag.value,"Fields!EmpID.Value")>2,"RED",nothing)
It throws me an error saying something about the scope.
EDIT:
I need attendance of each employees. FLAG is basically 1 if absent and 0 if anything else.
The bottom row(Flag,Date,Status,Comment). Now I have an alert There:
=iif(Fields!Flag.Value=1,"RED",Nothing)
Beside the Textbox(Textbox62) in middle row(EmpID,EmpName) I did Expression:SUM(Flag) and in the Fill section in Text Box Properties i have done:
=iif(SUM(Fields!Flag.value,"Fields!EmpID.Value")>2,"RED",nothing)
So the above expression creates an alert if employee is absent more than 3 days.
The top most row(Department,Manager) can be drilled down for to see more detailed view of the report. Now my problem is, in the column (FLAG) i need to create a Background color change if any employee in a particular department is absent more than 3 days.so that we do not have to drill down all the departments in order see if any employee is absent or not.
So my approach was to see the Max(Sum(Flag))>2 then create color change. I tried:
=iif(MAX(Sum(Fields!Flag.Value))>2,"Red",Nothing)
It does not work at the Department level as it basically considers (SUM(Sum(Flag))).
Thanks................
If you don't specify the scope of an aggregate, it is assumed that you are using the current scope. For example, when you say
Sum(Fields!Flag.value)
It is interpreted as something like
Sum(Fields!Flag.value, "EmpID")
The scope is the name of the Group, not the name of a dataset field.
Depending on where it is in the table. When you want to say something like
Sum(Sum(Fields!Flag.value))
You need to specify the scope for each one that isn't going to be the current default.
In your case you should use something like this:
=iif(MAX(SUM(Fields!Flag.value, "EmpID"), "Department")>2,"RED",nothing)
Again, pay attention to which group each aggregate is referring to and where the expression is on the table.
Also, this expression in a textbox will just make the word "RED" appear in the box. If you want it to change the color, you have to put it in the "Fill color" expression in the properties.

SSRS- charts colour coding

I have SSRS solution for SQL 2005 and 2008.
I am showing output in the form of chart- column chart with each column representing different database.
Is there a way to display each column in different color?
Regards
Manjot
You can use a formula to set the colour of each column, but that would work best if you knew what the individual series values ('databases'?) were going to be.
Right-click on your chart and bring up its properties. Now switch to the Data tab and select the first item in the Values list. Click the Edit... button to show the properties for the values (the columns) in your chart. Over on the Appearance tab there's a Series Style... button which takes you to another dialog.
On this new Style Properties dialog, switch to the Fill tab. That's where you set the colour for each of your columns. This can be a formula, so you might make it something like:
=Switch(
Fields!Database.Value = "master", "Blue",
Fields!Database.Value = "msdb", "Red",
"Green")
If you don't know in advance which 'databases' are going to be represented on the chart, this method won't work very well. In that case you might be able to come up with a formula which hashes the database name and comes up with a colour to match. That sounds like an interesting challenge, so add to your question if you need help doing something like that.
Edit
I just got a hash-based-colour-scheme working. It's a pretty nasty piece of code, but it did manage to get me a unique colour for every (string valued) column. Perhaps someone can come up with a better algorithm and post it here. Here's mine:
="#" & left(Hex(Fields!Database.GetHashCode()), 6)
So that's getting the HashCode for the string (a numeric value) and converting it to hex, then taking the leftmost six characters and prepending it with a "#" sign. That gives us a string that looks like a colour value (eg #AB12F0).