2016-07-20 26 views
1

Ich versuche, zwei Nullplatzhalter vor einem Feld hinzuzufügen, ohne die tatsächlichen Werte zu ändern. Das Feld ist eine Auftragsnummer, die aus MOMs gezogen wird. Also gerade jetzt, dass Formel dieser Felder {cms.ORDERNO} ist.Komma und Dezimalstellen aus dem Zahlenfeld entfernen

Wenn ich '00'+{cms.ORDERNO} versuche, zeigt das Feld 001,254.00 an. Wie kann ich die Dezimalstellen und das Komma so entfernen, dass es 001254 anzeigt?

Antwort

0

Der übliche Trick besteht darin, mit vielen zusätzlichen Ziffern auf der linken Seite zu puffern und dann nur die sechs zu nehmen, die Sie wirklich von rechts wollen. Dies würde jede Bestellung Zahl im Bereich von 1 bis 999999 Griff

right("000000" + totext({cms.ORDERNO}, "0"), 6) 

Wenn Sie nicht über eine Format-String angeben, wie Sie versucht, es nutzt die Standardeinstellungen, die aus dem Windows in der Regel kommen. By the way, wenn ich mich richtig erinnere cstr() und totext() sind zum größten Teil gleichwertig, aber totext() hat mehr Optionen.

Sie sollten auch "000000" als Formatzeichenfolge angeben können, um die links aufgefüllten Nullen zu erzeugen. Leider habe ich Crystal Reports nicht installiert oder würde es überprüfen, um sicher zu sein. Wenn dies der Fall ist, benötigen Sie wahrscheinlich keine Formel, wenn Sie nur die Formatierungsoptionen für das Feld auf der Zeichenfläche verwenden möchten. Wenn Sie eine Formel verwenden, ist es immer noch einfach.

+1

der Text funktionierte perfekt .. und es macht so viel Sinn! Danke für all deine Hilfe!!!! Du bist toll :) –

0

Sie wollen definitiv die Formel Ersetzen ein paar Mal dafür verwenden. Die folgende Formel konvertiert OrderNo in string, entfernt alle Kommas und Dezimalstellen Hinter, addiert dann die zwei Nullen am Anfang:

`00` + REPLACE(REPLACE(CSTR({cms.ORDERNO}),".00",""),",","") 

So zum Beispiel, wenn cms.ORDERNO1,254.00 ist der Ausgang aus dieser Formel wäre 001254

+0

Ich denke, das würde funktionieren .. aber die Bestellnummer ist normalerweise 001254, aber wenn ich versuche, die Nullen hinzuzufügen, enthält es die Nullen und fügt dann zusätzlich die Dezimalzahlen und Kommas hinzu. Ich habe versucht, mit der Formel, die Sie mir gaben, aber es sagt, es war keine Formel, ich vermute, das ist, weil es keine Dezimalstellen oder etwas in der tatsächlichen Reihenfolge Feld BEFORE, bevor ich es bearbeite. Irgendeine Idee mit diesem zusätzlichen inf? –

+0

Wenn das Dezimal/Komma nach dem Hinzufügen der Null angezeigt wird, können Sie die Reihenfolge der Operationen ändern. Versuchen Sie 'ERSETZEN (CSTR ('00 '+ {cms.ORDERNO}),". 00 "," "),", "," ")' anstatt – 4444