Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

javascript populate fields based on date

New Here ,
Aug 28, 2020 Aug 28, 2020

In my AcroForm

I have a date field (DateOfInsp)

 

I have a Fiscal Year field (FY) and a Quarter field (Qtr)

 

I want to populate the FY (yyyy) field and the Qtr field (1,2,3,4) based on the date field

 

The fiscal year for my organization starts 10-1 and ends 9-30 of the following year

 

I am looking for the javascript to do this, or guidance so I can learn myself...I am pretty new and just want to automate my forms as much as possible and provide data validation whenever possible

 

I have seen many posts related to this, but haven't figured it out yet...

 

Any help is greatly appreciated

 

 

TOPICS
Acrobat SDK and JavaScript
883
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 29, 2020 Aug 29, 2020

What are the start and end dates of each quarter? So if the date is before September 30th it's considered to be in the fiscal year that is one before the calendar year? For example, 09-01-2020 is in Q4 of 2019?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 01, 2020 Sep 01, 2020

In your example above...09-01-2020 is Q4 of FY2020

So

10-01-2020 thru 12-31-2020 Q1 FY2021

01-01-2021 thru 03-31-2021 Q2 FY2021

04-01-2021 thru 06-30-2021 Q3 FY2021

07-01-2021 thru 09-30-2021 Q4 FY2021

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 01, 2020 Sep 01, 2020

OK, then you can use this code as the custom calculation script of the "Qtr" field:

 

var dateOfInspString = this.getField("DateOfInsp").valueAsString;
if (dateOfInspString=="") {
	event.value = "";
	this.getField("FY").value = "";
} else {
	var dateOfInsp = util.scand("mm-dd-yyyy", dateOfInspString);
	if (dateOfInsp.getMonth()>=9) {
		event.value = "4";
		this.getField("FY").value = dateOfInsp.getFullYear()+1;
	} else {
		if (dateOfInsp.getMonth()>=6) event.value = "3";
		else if (dateOfInsp.getMonth()>=3) event.value = "2";
		else event.value = "1";
		this.getField("FY").value = dateOfInsp.getFullYear();
	}
}
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 01, 2020 Sep 01, 2020

Thanks so much...however the quarter designations were wrong...

Through some trial and error I changed the script as follows:

 

var dateOfInspString = this.getField("DateOfInsp").valueAsString;
if (dateOfInspString=="") {
event.value = "";
this.getField("FY").value = "";
} else {
var dateOfInsp = util.scand("mm-dd-yyyy", dateOfInspString);
if (dateOfInsp.getMonth()>=9) {
event.value = "1";
this.getField("FY").value = dateOfInsp.getFullYear()+1;
} else {
if (dateOfInsp.getMonth()>=6) event.value = "4";
else if (dateOfInsp.getMonth()>=3) event.value = "3";
else event.value = "2";
this.getField("FY").value = dateOfInsp.getFullYear();
}
}

 

Now they are correct and the Quarter field populating is working as desired...Also, if it wasn't clear I am trying to have the FY (yyyy) populate in the FY field in addition to the quarter being populated, so I don't understand the "this.get("FY").value" part of the script...does the script need this?...Since the FY field would not be user entered, but is desired to be populated after the date is picked...I would imagine I would need a custom script for the FY field, where the date range for the FY field is 10-01-yyyy thru 09-30-yyyy of the following year...

 

Thanks!

 

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 01, 2020 Sep 01, 2020

I used the exact dates you provided... Anyway, glad to hear it's working.

 

This script will populate both fields, Qtr and FY. You don't need to create a separate script for the latter.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 01, 2020 Sep 01, 2020

Thanks...I see, now that I had changed the FY field name in the document after posting the question...so that is why the FY (now named FiscYR) isn't populating...I will make the edits and see what happens...

 

Slowly, the more I get into doing these kinds of scripts, the more I learn what the scripts mean and how they are put together...

 

Thanks...will let you know what happens

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Sep 01, 2020 Sep 01, 2020
LATEST

With the edit to the object name...It is working now as desired...Thanks again...I spent a whole afternoon the other day trying to find this solution on Google and just couldn't find something that matched...

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines