Add days when checkbox is ticked

Avatar

Avatar

pizush

Avatar

pizush

pizush

02-04-2018

Hi

I am using below formcalc script to count weekdays in "Days" field.

var fromDate = Start_Date1

var toDate = End_Date1

if ( HasValue(fromDate) & HasValue(toDate) ) then

          var fromDateAsNum = Date2Num(fromDate, "YYYY-MM-DD", "en_IE")

          var toDateAsNum = Date2Num(toDate, "YYYY-MM-DD", "en_IE")

          if (toDateAsNum >= fromDateAsNum) then

var TotalDays = toDateAsNum - fromDateAsNum + 1

var currentDateNum = fromDateAsNum

var dayCnt = 0

for i=1 upTo TotalDays do

var dayOfWeek = Num2Date(currentDateNum,"E")

                              if (dayOfWeek == 5 | dayOfWeek == 6) then

                                        dayCnt = dayCnt + 1

                              endif

                              currentDateNum = currentDateNum + 1

endfor

$ = TotalDays - dayCnt

          else

$ = ""

          endif

else

          $ = ""

endif

I have two check box in the form, chkbox1 and chkbox2.

What I am trying to do, If one person ticked chkbox1 it will add 1(one) day to "Days" field and if one person ticked chkbox2 it will add 2 (two) days to "Days" field.

But i am unable to do it.

Can anyone please help me how to solve this as I am new to livecycle forms?

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

MinusZero

Avatar

MinusZero

MinusZero

18-04-2018

Thats Great!

Should be able to use some if logic for it. I haven't tried it in javascript but my idea would be this.

Have a first date and last date field. Have the date you want to exclude in another.

In your calculating code, use logic for: if excludedDate is greaterthan the start date AND lessthan the end date, subtract one from the calculation.

An if statement calculating dates looks like this in javascript

if (excludedDate.rawValue > startDate.rawValue | excludedDate.rawValue < endDate.rawValue)

{

//do the calculation

}

Answers (6)

Answers (6)

Avatar

Avatar

pizush

Avatar

pizush

pizush

18-04-2018

Hi

Thank for reply.

I removed one endif after $ = TotalDays - dayCnt and it worked!.

Another point is that if I want to exclude one specific day what type of code I shall use?

Suppose start date is 8th April 2018 and end date is 11th April 2018. I want to exclude 10th April from calculation.

Rgds

Avatar

Avatar

MinusZero

Avatar

MinusZero

MinusZero

16-04-2018

What is on line 47 col 4, can you paste a screenshot with the line numbers?

Make sure your if count is correct, an else wont work outside an if statement if it is closed.

Avatar

Avatar

pizush

Avatar

pizush

pizush

16-04-2018

Hi

Thanks for the reply

I changed the code as below after endfor, and showing the error,

Error: Syntax error token near 'else' on line 47, column 4.

if (sickcb1 == 1) then

$ = TotalDays

else

$ = TotalDays - dayCnt

endif

endif

          else

$ = ""

          endif

else

          $ = ""

endif

can you please help

Rgds

Avatar

Avatar

MinusZero

Avatar

MinusZero

MinusZero

05-04-2018

Are you closing all your if statements? I count 6 started but only 4 ended.

Go to the location in the error and see what is there.

Avatar

Avatar

pizush

Avatar

pizush

pizush

05-04-2018

Hi

Thanks for the response.

After you reply, I put below code in WeekDays

var fromDate = Start_Date1

var toDate = End_Date1

if ( HasValue(fromDate) & HasValue(toDate) ) then

          var fromDateAsNum = Date2Num(fromDate, "YYYY-MM-DD", "en_IE")

          var toDateAsNum = Date2Num(toDate, "YYYY-MM-DD", "en_IE")

          if (toDateAsNum >= fromDateAsNum) then

var TotalDays = toDateAsNum - fromDateAsNum + 1

var currentDateNum = fromDateAsNum

var dayCnt = 0

for i=1 upTo TotalDays do

var dayOfWeek = Num2Date(currentDateNum,"E")

                              if (dayOfWeek == 5 | dayOfWeek == 6) then

                                        dayCnt = dayCnt + 1

                              endif

                              currentDateNum = currentDateNum + 1

endfor

if (CB1 == 1) then

$ = TotalDays – dayCnt + 1

elseif (CB2 == 1) then

$ = TotalDays – dayCnt + 2

elseif (CB1 && CB2 == 0) then

$ = TotalDays - dayCnt

endif

          else

$ = ""

          endif

else

          $ = ""

endif

But I am getting below error message

screen-13.23.50[05.04.2018].png

As I am newbie in livecycle, please suggest what should I do next to solve the problem?

Thanks

Avatar

Avatar

MinusZero

Avatar

MinusZero

MinusZero

03-04-2018

Hi,

After you have endfor, can you just add some if statements to cover if chkbox1 is checked, chkbox2 is checked or neither is checked and make the calculations?