Hello, I am having an HTML table created with a date, but I would like the date to be formatted differently so that it is displayed in German format as DD-MM-YYYY, how can I achieve this. In addition, if the date is greater than the current date, I would like it to be colored or highlighted in red, how could I implement this? Thanks
Hi @ThomasH ,
Use this to initialize a JSON object where you will store CSS style.
Best Regards
Cheng Feng
thank you for your examples, i'm not sure how a have to at this. Mit Flow like this.
On which point i have to input your code?
I once tried to take over the table form from you, unfortunately the code on the screenshot is difficult to read , so I'm not sure is this Code right!?
{
"tableStyle": "style=\"border-collapse: collapse:\"",
"headerStyle": "style=\"font-family: Helvetica: padding 5px: border: 1px solid black:\"",
"cellStyle": "style=\"font-family: Calibri: padding: 5px: boarder: 1px solid black:\"",
"rowStyleHighValues": "style=\"font-size: 110%: background-color:#ff9c33\"",
"rowStyleLowValues": "style=\"background-color:#fcff33:\""
}
Is the flow right up to here?
Thank you
Just change this part in your select action to an expression:
You will need to replace the utcnow() that I used with your dynamic content called Datum und Uh...
so in your case it will be something like item()['Datum und Uh'] - Obviously I cannot see the rest of the field name, but hopefully you get the idea.
Blog: tachytelic.net
YouTube: https://www.youtube.com/c/PaulieM/videos
If I answered your question, please accept it as a solution 😘
Hi @Paulie78 i have tryed this
formatDateTime(item()['dueDateTime'],'dd-MM-yyyy')
but than i become this error
The execution of template action 'Select' failed: The evaluation of 'query' action 'where' expression '{
"Title": "@item()?['title']",
"Bearbeitungsstatus": "@item()?['percentComplete']",
"Fällig": "@formatDateTime(item()['dueDateTime'],'dd-MM-yyyy')",
"Startzeit": "@item()?['startDateTime']",
"Status": "@item()?['percentComplete']"
}' failed: 'The template language expression 'formatDateTime(item()['dueDateTime'],'dd-MM-yyyy')' cannot be evaluated because property 'dueDateTime' doesn't exist, available properties are '@odata.etag, planId, bucketId, title, orderHint, assigneePriority, percentComplete, startDateTime, createdDateTime, hasDescription, previewType, referenceCount, checklistItemCount, activeChecklistItemCount, priority, id, createdBy, appliedCategories, assignments, _assignments'. Please see https://aka.ms/logicexpressions for usage details.'.
The "select" "Datum/Uhrzeit....." has this value
item()?['dueDateTime']
Thank you
Hi @ThomasH ,
I've made a test for your reference:
Here is a link for your reference:
https://alextofan.com/2019/02/14/flow-how-to-change-the-style-of-your-html-table-in-flow/
Best Regards
Cheng Feng
Try this expression instead:
if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'dd-MM-yyyy'))
Thank you very much, that works great, now i want to Fix my second "problem"
if the date is greater than the current date, I would like it to be colored or highlighted in red
Hi @v-chengfen-msft , sorry for another question, what i have to write in at this point under "value"?
Can i use there the "Wert" value like this way?
Thank you very much for your help.
You would need to change your expression to something like this:
if
(
greater(if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'dd-MM-yyyy')), utcNow()),
concat('<span style="color:red">', item()['dueDateTime'], '</span>'), item()['dueDateTime'],
if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'dd-MM-yyyy'))
)
You will notice after doing so that your table does not render properly, this is because the create HTML action table escapes the HTML that we created with the expression. So you need to add another compose step after the Create HTML Table action like this:
And that would contain this expression:
replace(replace(replace(body('Create_HTML_table'), '<', '<'), '"', '"'), '>', '>')
Then you would use the output of that step in your email action.
Blog: tachytelic.net
YouTube: https://www.youtube.com/c/PaulieM/videos
If I answered your question, please accept it as a solution 😘
Hi @v-chengfen-msft ,
I've now recreated it as it is described in your pictures. But apparently I made a mistake somewhere, because the test fails.
What is my mistake?
Thank you
Hi @Paulie78 you mean i have to change the "Filter Arry" with your code? Is this right?
Here i become a fault
Then i have to create the HTML Table my "Select?
No, you need to change the expression within the Create HTML Table action. As per the screenshot I provided.
Hi @ThomasH ,
Sorry for the late reply!
Maybe not directly usable, you should get the values you need from it to form an array.
Best Regards
Cheng Feng
Hello @Paulie78 , I'm not sure if I understand you correctly. Tried it now, but unfortunately not successful.
I become this error
@Paulie78 wrote:No, you need to change the expression within the Create HTML Table action. As per the screenshot I provided.
The execution of template action 'HTML-Tabelle_erstellen' failed. The column values could not be evaluated: 'The template language function 'if' expects three parameter: the condition to test as the first parameter, the value to return if the condition is true as the second parameter, and the value to return if the condition is false as the third parameter. The function was invoked with '4' parameter(s). Please see https://aka.ms/logicexpressions#if for usage details.'.
Hi @v-chengfen-msft , i try this
But i have still a error
.
Unable to process template language expressions in action 'Verfassen' inputs at line '0' and column '0': 'The template language function 'formatDateTime' expects its first parameter to be of type string. The provided value is of type 'Null'. Please see https://aka.ms/logicexpressions#formatdatetime for usage details.'
I don't know what i have to do.
Show me the expression you used and I will correct it for you.
I think the expression I gave you was incorrect. Try this instead:
if
(
greater(if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'dd-MM-yyyy')), utcNow()),
concat('<span style="color:red">', item()['dueDateTime'], '</span>', item()['dueDateTime']),
if(equals(item()?['dueDateTime'], null), '', formatDateTime(item()?['dueDateTime'],'dd-MM-yyyy'))
)
Hi
@Paulie78 , Thank you very much, this seems better, but now the Email is not correct.
The Flow shows this
I think i have a to do in the Outlook "Text" or what can be the Problem?
<html>
<head>
<style>
table, th {
border:1px solid black;
}
td {
border:1px solid black;
text-align:left;
width:20%;
}
</style>
</head>
<body>
@{body('HTML-Tabelle_erstellen')}<br>
<strong>Bearbeitungsstatus:<br>
0 =Nicht begonnen<br>
50 =in Bearbeitung</strong><br>
<strong>100 = Abgeschlossen</strong><br>
</body>
</html>
Tank you
User | Count |
---|---|
102 | |
38 | |
31 | |
24 | |
16 |
User | Count |
---|---|
132 | |
53 | |
52 | |
37 | |
26 |