Hallo,
ich tüftle gerade ein wenig an unserer eBay Designvorlage rum und habe Schwierigkeiten mit der Umwandlung von Zahlen in einen String.
Genauer gesagt habe ich Schwierigkeiten aus bestehenden Zahlen einen String zusammenzubauen.
Die Fehlermeldung ist ja ziemlich eindeutig und besagt schon, dass es so nicht möglich ist.
Liquid error: Das Objekt mit dem Typ "System.Decimal" kann nicht in den Typ "System.String" konvertiert werden.
Meine Frage ist nun: Ist es überhaupt irgendwie möglich?
Kurz zu dem was ich vorhabe:
Ich muss Profiltiefen von Reifen der Größe nach sortieren UND die sortierten Profiltiefen später wieder den entsprechenden Merkmalen an der richtigen Stelle zuordnen.
{% assign reifen1Profil = Vorgang.....MerkmalFürReifenProfil1 %}
{% assign reifen2Profil = Vorgang.....MerkmalFürReifenProfil2 %}
{% assign reifen3Profil = Vorgang.....MerkmalFürReifenProfil3 %}
{% assign reifen4Profil = Vorgang.....MerkmalFürReifenProfil4 %}
Da die Profile variieren können und ich mich nicht darauf verlassen kann, dass der Mitarbeiter die Sortierung selbst vornimmt, möchte ich gerne die Sortierung in der Vorlage vornehmen.
Alles wird in einen String gepackt und durch "|" getrennt.
{% assign tread_string = reifen1Profil | Append: '|' | Plus: reifen2Profil | Append: '|' | Plus: reifen3Profil | Append: '|' | Plus: reifen4Profil %}
Dann wird sortiert.
{% assign sorted_treads = tread_string | Split: '|' | Sort %}
Soweit ist alles ok. Ich bin nun aber auf ein Problem gestoßen, dass entsteht, wenn die Profiltiefen identisch sind. Da sich die restlichen zugehörigen Merkmale (wie Reifenalter etc.) dennoch unterscheiden können, ist eine Sortierung dennoch notwendig. Da ich bei identischen Werten mit der Sortierung nicht weiterkomme woltle ich mir mit dem Trick behelfen, einfach prizipiell eine sehr kleine Zahl zu addieren, die auf das Ergebnis keine Auswirkung hat, jedoch die Zahlen eindeutig unterscheidet.
Also das Gleiche nochmal - mit dem Unterschied, dass den Werten Hundertstel dazuaddiert werden. So würden sich z.B. Profile mit 6mm unterscheiden in 6,01mm, 6,02mm, 6,03mm und 6,04mm. Eine Sortierung wäre möglich und in der Anzege würden dennoch nur 6,0mm da stehen.
{% assign reifen1Profil = Vorgang.....MerkmalFürReifenProfil1 | Plus: 0.01 %}
{% assign reifen2Profil = Vorgang.....MerkmalFürReifenProfil2 | Plus: 0.02 %}
{% assign reifen3Profil = Vorgang.....MerkmalFürReifenProfil3 | Plus: 0.03 %}
{% assign reifen4Profil = Vorgang.....MerkmalFürReifenProfil4 | Plus: 0.04 %}
Alles wird wieder zu einem String verbunden und durch "|" getrennt und sortiert werden.
{% assign tread_string = reifen1Profil | Append: '|' | Plus: reifen2Profil | Append: '|' | Plus: reifen3Profil | Append: '|' | Plus: reifen4Profil %}
{% assign sorted_treads = tread_string | Split: '|' | Sort %}
An dieser Stelle erhalte ich o.g. Fehlermeldung, dass ein Typ vom Decimal (oder auch Double - habe ich auch schon versucht) nicht in einen String konvertiert werden kann. Die Umwandlung in eine Zahl ist in meinem bisherigen Vorgehen auf jeden Fall vor dem Zusammenbau zu einem String notwendig. Danach würde es keinen Sinn machen.
Gibt es eine andere Lösung dafür, bzw. kann man die Werte als Zahl evtl. auf eine andere Art sortieren?
Vielen Dank im Voraus.
ich tüftle gerade ein wenig an unserer eBay Designvorlage rum und habe Schwierigkeiten mit der Umwandlung von Zahlen in einen String.
Genauer gesagt habe ich Schwierigkeiten aus bestehenden Zahlen einen String zusammenzubauen.
Die Fehlermeldung ist ja ziemlich eindeutig und besagt schon, dass es so nicht möglich ist.
Liquid error: Das Objekt mit dem Typ "System.Decimal" kann nicht in den Typ "System.String" konvertiert werden.
Meine Frage ist nun: Ist es überhaupt irgendwie möglich?
Kurz zu dem was ich vorhabe:
Ich muss Profiltiefen von Reifen der Größe nach sortieren UND die sortierten Profiltiefen später wieder den entsprechenden Merkmalen an der richtigen Stelle zuordnen.
{% assign reifen1Profil = Vorgang.....MerkmalFürReifenProfil1 %}
{% assign reifen2Profil = Vorgang.....MerkmalFürReifenProfil2 %}
{% assign reifen3Profil = Vorgang.....MerkmalFürReifenProfil3 %}
{% assign reifen4Profil = Vorgang.....MerkmalFürReifenProfil4 %}
Da die Profile variieren können und ich mich nicht darauf verlassen kann, dass der Mitarbeiter die Sortierung selbst vornimmt, möchte ich gerne die Sortierung in der Vorlage vornehmen.
Alles wird in einen String gepackt und durch "|" getrennt.
{% assign tread_string = reifen1Profil | Append: '|' | Plus: reifen2Profil | Append: '|' | Plus: reifen3Profil | Append: '|' | Plus: reifen4Profil %}
Dann wird sortiert.
{% assign sorted_treads = tread_string | Split: '|' | Sort %}
Soweit ist alles ok. Ich bin nun aber auf ein Problem gestoßen, dass entsteht, wenn die Profiltiefen identisch sind. Da sich die restlichen zugehörigen Merkmale (wie Reifenalter etc.) dennoch unterscheiden können, ist eine Sortierung dennoch notwendig. Da ich bei identischen Werten mit der Sortierung nicht weiterkomme woltle ich mir mit dem Trick behelfen, einfach prizipiell eine sehr kleine Zahl zu addieren, die auf das Ergebnis keine Auswirkung hat, jedoch die Zahlen eindeutig unterscheidet.
Also das Gleiche nochmal - mit dem Unterschied, dass den Werten Hundertstel dazuaddiert werden. So würden sich z.B. Profile mit 6mm unterscheiden in 6,01mm, 6,02mm, 6,03mm und 6,04mm. Eine Sortierung wäre möglich und in der Anzege würden dennoch nur 6,0mm da stehen.
{% assign reifen1Profil = Vorgang.....MerkmalFürReifenProfil1 | Plus: 0.01 %}
{% assign reifen2Profil = Vorgang.....MerkmalFürReifenProfil2 | Plus: 0.02 %}
{% assign reifen3Profil = Vorgang.....MerkmalFürReifenProfil3 | Plus: 0.03 %}
{% assign reifen4Profil = Vorgang.....MerkmalFürReifenProfil4 | Plus: 0.04 %}
Alles wird wieder zu einem String verbunden und durch "|" getrennt und sortiert werden.
{% assign tread_string = reifen1Profil | Append: '|' | Plus: reifen2Profil | Append: '|' | Plus: reifen3Profil | Append: '|' | Plus: reifen4Profil %}
{% assign sorted_treads = tread_string | Split: '|' | Sort %}
An dieser Stelle erhalte ich o.g. Fehlermeldung, dass ein Typ vom Decimal (oder auch Double - habe ich auch schon versucht) nicht in einen String konvertiert werden kann. Die Umwandlung in eine Zahl ist in meinem bisherigen Vorgehen auf jeden Fall vor dem Zusammenbau zu einem String notwendig. Danach würde es keinen Sinn machen.
Gibt es eine andere Lösung dafür, bzw. kann man die Werte als Zahl evtl. auf eine andere Art sortieren?
Vielen Dank im Voraus.
Zuletzt bearbeitet: