# Converting Crystal Report formula to use in Ignition Designer

**URL:** <https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [May 7, 2026, 4:00pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438 "2026-05-07T16:00:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![l.rollins](https://avatars.discourse-cdn.com/v4/letter/l/f05b48/32.png) [@l.rollins](https://forum.inductiveautomation.com/u/l.rollins)\
**Post date:** [May 7, 2026, 4:00pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438/1 "2026-05-07T16:00:46Z")

</div>

I have a CR formula that I want to use in Ignition.

IF {GFSITMATT\_COPPERLIQ.ATTVALCOD\_0} \<\> "NONE" THEN  
extractstring({ATEXTRA\_COPPERLIQ.TEXTE\_0},'',' =') + "-" + extractstring({ATEXTRA\_COPPER.TEXTE\_0},'',' =')  
ELSE  
extractstring({ATEXTRA\_COPPER.TEXTE\_0},'',' =')

What it does is it takes the data like 1/2" = .50 and extracts just the 1/2". Anyone know how to do this? I've tried everything.

---

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [May 7, 2026, 4:06pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438/2 "2026-05-07T16:06:21Z")

</div>

You'll have to provide a bit more information for anyone to be able to help.

Where in the designer are you using this, and what is providing the data? Show what you tried so far and what that resulted in. You mention crystal reports, are you attempting to build an equivalent report in Ignition, or are you attempting to parse a report from SAP?

If you are attempting to build a report in Ignition, this manual page might be of interest:

> **[Keychain Expressions | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/reporting/report-design/data-keys/keychain-expressions)**
>
> It's possible to perform calculations on data keys. This section documents the various operators and functions that are available.

---

<div class="post-metadata">

**Author:** ![l.rollins](https://avatars.discourse-cdn.com/v4/letter/l/f05b48/32.png) [@l.rollins](https://forum.inductiveautomation.com/u/l.rollins)\
**Post date:** [May 7, 2026, 4:19pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438/3 "2026-05-07T16:19:21Z")

</div>

Sorry. First time.

It is using a SQL Server data source and I was trying to add it as a text shape on a label that I need to print.

---

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [May 7, 2026, 4:32pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438/4 "2026-05-07T16:32:31Z")

</div>

In that case, the keychain expressions I linked above would be one approach. The keychain expression would go in the `text` property of the text shape.

Another option is to add a script datasource to your report that takes your SQL data and pre-processes it into the data you want to display/print. If you do this approach then you have access to python and java methods for string manipulation.

> **[Scripting Data Source | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/reporting/report-data/scripting-data-source)**
>
> The Script data source allows you to use scripting to add data into a report, or modify existing data. With this data source, you can pull in data from the database and then modify it using a script before pushing it out as a data key for use in the...

---

<div class="post-metadata">

**Author:** ![bkarabinchak.psi](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bkarabinchak.psi/32/83567_2.png) [@bkarabinchak.psi](https://forum.inductiveautomation.com/u/bkarabinchak.psi)\
**Post date:** [May 7, 2026, 4:40pm UTC](https://forum.inductiveautomation.com/t/converting-crystal-report-formula-to-use-in-ignition-designer/115438/5 "2026-05-07T16:40:52Z")

</div>

Given the complexity of the expression I would 100% do it in a scripting data source or right in SQL. Editing keychain expressions espeically long ones is very annoying through designer ime.

I like to keep report components as simple as possible and to only display the data provided.
