You're not dealing with Crystal issues. You're dealing with data design and management issues. You need a table to store all the headings/captions. When you run a report, you need to extract just the data for that report into a temporary table with columns for each heading you need. This way, you'll only have a few columns in the actual table used for reporting.
>Have you actually done this?
>
>We tried these two alternatives to no avail.
>
>1. Defined a table with a primary key column (1 row for each string/label to be translated), and then a column for each language. This didn't work as we couldn't find a way to filter that data to be displayed to just the desired translated text. We couldn't find a lookup function and it is not possible to use a select statement inside a formula. The only way we did find using this approach was to load a table for each string to be translated... not really a workable solution.
>
>2. OK, so faced with the above problem, we created a table that has a column for each string to be translated, and a row for each language. This works if you have a few strings to be translated, but even before you hit the maximum number of columns allowed, maintenance increases exponentially with each addition string.
>
>Please enlighten me!
>
>Regards
>
>Macer
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer