#1
|
|||
|
|||
![]()
Hello, I have a job where the customer supplies 5 fields. F1, F2, F3, F4 and F5. They will either contain a zero or they will contain a numeric value. I have to select the range from the fields and print that range of fields when they are not zero. Fields inside the range can contain a zero. So for example:
Code:
F1=50, F2=100, F3=200, F4=300, F5=100: I print all fields. F1=0, F2=100, F3=200, F4=300, F5=100: I print fields F2 through F5. F1=50, F2=100, F3=0, F4=300, F5=0: I print fields F1 through F4. F1=0, F2=0, F3=200, F4=0, F5=100: I print fields F3 through F5. F1=0, F2=0, F3=200, F4=0, F5=0: I print only field F3. Thanks!
__________________
FusionPro VDP Creator 10.1.11 Last edited by mjlongo; November 12th, 2021 at 10:28 AM.. |
#2
|
|||
|
|||
![]()
I wanted to follow up and state that I managed to figure out a pretty simple script to solve this issue. Maybe someone else can benefit from this. I just put the fields into an array and parsed from both the front and back of the array. I replaced any field that contained "$0" with the word "ZERO". This then allowed me to print any field that does not contain the word "ZERO". It turned out to be quite easy and worked perfectly for what I needed to do.
Refer to the code below: Code:
// Create a results variable var results=''; //Trim excess spaces from the fields in the data file var cashLY=Trim(Field("Cash LY")); var cash2Y=Trim(Field("Cash 2Y")); var cash3Y=Trim(Field("Cash 3Y")); var cash4Y=Trim(Field("Cash 4Y")); var cash5Y=Trim(Field("Cash 5Y")); // Put each field into an array var arr = [cashLY,cash2Y,cash3Y,cash4Y,cash5Y] /* check from front of array then the back for any fields that contain "$0". If a field does contain a "$0", replace it with the word "ZERO" Otherwise, break out of the routine if we find a field that has anything other than a "$0". This will result in a middle range. */ // check from front of array for (i=0; i < arr.length; i++){ if(arr[i]=='$0'){ arr[i]='ZERO'; }else{ break; }; }; // check from back of array for (i=arr.length-1; i >=0 ; i--){ if(arr[i]=='$0'){ arr[i]='ZERO'; }else{ break; }; }; /* After parsing through the array, we should be left with fields from the front of the array and then from the back of the array that now have the word "ZERO" in it. We can then use that information to print the range of fields that we have been left with */ if (arr[0]!='ZERO'){results += '2020-2021<t>'+cashLY+'<br>'}; if (arr[1]!='ZERO'){results += '2019-2020<t>'+cash2Y+'<br>'}; if (arr[2]!='ZERO'){results += '2018-2019<t>'+cash3Y+'<br>'}; if (arr[3]!='ZERO'){results += '2017-2018<t>'+cash4Y+'<br>'}; if (arr[4]!='ZERO'){results += '2016-2017<t>'+cash5Y}; return results;
__________________
FusionPro VDP Creator 10.1.11 |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|