how to display Amount per Text Box in RDLC

hello guys, its been a while,

I’m just going to ask if there’s a way to display the Amount per textbox.

what do I mean by this?

pastedimage1555913468128v1.png

I have here a 14 text box Field. in which Text Box 13 is a default of of “.”

now what I want to achieve is that, I wanted to

display the Amount corresponding to the text boxes accordingly.

for my sample output.

i Have 24.86

but it should also adapt the length of the amount based on the text box given

Tens

pastedimage1555913625283v2.png

Hundreds

pastedimage1555913644809v3.png

Thousands/Ten Thousands

pastedimage1555913662559v4.png

Hundred Thousands

pastedimage1555913700875v5.png

Millions

pastedimage1555913710166v6.png

and so on.

I’m wonderin if this is possible using rdlc.

any kind of help would be appreciated.

Thanks guys!

Cheers!

Hi Adrian,

You could split the amount into a the individual characters (or a text array) from NAV and then only have one character in each variable string in RDLC.

Andrian, you know the length (by FORMAT command) of string from the decimal, right?

You know how many symbols you have on the page, right? The very simple way (e.g. FOR…DOWNTO) to fill the Array or Chars (or String) and transfer it to Dataset.

Hi RedFoxUA, I’m not quite familiar with the length(by FORMAT command) of string to Decimal,

I’m currently using this expression in the text boxes.

=mid(sum(Fields!txtAmount.Value),1,1); up to =mid(sum(Fields!txtAmount.Value),14,1);

I’m having trouble in the formatting, because of this. my out put is

pastedimage1555980026900v1.png

instead of

pastedimage1555980041802v2.png

Hi Erik, I’ll try this suggestion, but since I’m using =sum() in my expression in the report layout. I’m not quite sure how do I use this approach. I’ll see to it though , now my problem for the splitting part is that. first I need to get the final value of my amount so I could convert it into a string. and do the splitting.

Thanks!

you are trying to fill from “left-to-right & First-to-last symbol”, but you need to fill from “right-to-left & from-last-to-first symbol”

Let’s imagine we have DecValue = “24.86”. We have new TXT line PrintLine[14] where PrintLine[12] = ‘.’

to receive 2 symbols after ‘.’ we should do something like PrintLine[13] := COPYSTR(FORMAT(DecValue-ROUND(DecValue,1)), 1,2)

For “integer part” we should do either FOR-circle with DOWNTO type calculation or DO, WHILE (it is up to you) → fill either Symbol from “integer part” or " ".

Finally, just print the PrintLien[{x}]

Easier way to do it is like this:

OnRun()
MESSAGE(’%1’,MyPadStr(‘123’,10,‘X’)); // ← Example on how to do test it.

LOCAL MyPadStr(InputString : Text;Length : Integer;FillerChar : Char) : Text
EXIT(PADSTR(’’,Length-STRLEN(InputString),FORMAT((FillerChar)))+InputString)

Then you do not need loops or anything like that [emoticon:c4563cd7d5574777a71c318021cbbcc8]