Access 데이터베이스에서 주기적으로 데이터를 가져 오는 JSL 스크립트가 있습니다.
액세스 데이터베이스에는 dd-Mon-YYYY와 함께 "Available Date"날짜 열이 있습니다 (예 : 12-APR-2018) 형식입니다. 내가하려는 것은 JMP에서 각 행에 대해 "사용 가능한 날짜"의 날짜에 x 일 수를 추가하는 새 열 "대상 날짜"를 만드는 것입니다.
예를 들면 : 아래 이미지에서 대상 날짜는 사용 가능 날짜 + 4 일과 같습니다. 사용 가능 날짜를 기준으로 목표 날짜를 자동으로 계산하려고합니다. 일 수는 "시간 (월)"열을 기준으로합니다.

이것은 내가 지금까지 시도한 것인데 분명히 작동하지 않습니다. "사용 가능한 날짜"열을 숫자 데이터 유형으로 변환 한 다음 일 수를 추가하고 문자로 다시 변환해야한다고 생각합니다.
dt << New Column("Target Date", "Character", "Nominal");
dt << For Each Row(
IF (:"Time (Months)" <= 3, :"Target Date" = :"Available Date" + 4 ),
IF (:"Time (Months)" > 3, :"Target Date" = :"Available Date" + 7 )
);첨부 된 표는 목표 날짜를 얻기 위해 사용 가능한 날짜 열에 4 일을 더합니다.단계 : 사용 가능한 날짜의 데이터 유형을 적절한 날짜 형식으로 숫자 / 연속으로 변경합니다. 그런 다음 Date Increment 함수를 사용하여 사용 가능한 날짜에 4 일을 추가하고 마지막으로 결과 대상 날짜 열의 형식을 사용 가능한 날짜 열에서 사용한 것과 일치하도록 변경합니다.
추가 참고 사항-귀하의 예에서는 1 주일 (4 일이 아닌 7 일)을 추가 한 것 같습니다.
Target Date 값을 문자 열로 유지해야하는 실제 이유가없는 한 JMP Date 열로 변환하는 것이 좋습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", format( "ddmonyyyy") );
for each row(
if( :"Time (Months)"n <= 3,
:Target Date =
Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
:Target Date =
Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
)
);

아래의 수정으로 위의 출력을 문자로 변환하는 것은 매우 쉽습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", character );
for each row(
if( :"Time (Months)"n <= 3,
:Target Date = format(
Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
"ddmonyyyy"
),
:Target Date = format(
Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 ),
"ddmonyyyy"
)
)
);

출력 형식이 입력 데이터 형식과 정확히 일치해야하는 경우 다음을 수행하면됩니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << new column( "Target Date", character );
monthList = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP",
"OCT", "NOV", "DEC"};
for each row(
if( :"Time (Months)"n <= 3,
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
);
:Target Date = Substr( "0", Length( Char( Day( temp ) ) ) ) ||
Char( Day( temp ) ) || "-" || monthList[Month( temp )] || "-" ||
Char( Year( temp ) );
);

For Each Row 대신 공식을 사용하려는 경우 위 출력의 공식에 사용됩니다.
monthList = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
If( :"Time (Months)"n <= 3,
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 4 ),
temp = Informat( :Available Date, "ddmonyyyy" ) + In Days( 7 )
);
Substr( "0", Length( Char( Day( temp ) ) ) ) || Char( Day( temp ) ) || "-" || monthList[Month( temp )] || "-" ||
Char( Year( temp ) );