Sub days_late_DefaultValue(fieldname)
' fieldname As String
' record type name is OverDueDefects
' field name is days_late
REM Set the initial value of the field here. Example:
REM SetFieldValue fieldname, 12345
SetFieldValue fieldname, 0
End Sub
Sub days_late_ValueChanged(fieldname)
' fieldname As String
' record type name is OverDueDefects
' field name is days_late
dayValue = GetFieldValue(fieldname).GetValue
' I do not know how to reset a focus if an entered value is not appropriate
If NOT(IsNumeric(dayValue)) then
SetFieldValue "days_to_subtract", "enter an integer for days_late"
else
' just in case the user enters a decimal, convert to an integer
dayValue = cInt(dayValue * 1)
SetFieldValue "days_to_subtract", dayValue
end if
End Sub
Function days_late_Validation(fieldname)
' fieldname As String
' days_late_Validation As String
' record type name is OverDueDefects
' field name is days_late
' If this is implemented, then the days_late_valuechanged does NOT fire
'
Dim daysLate
'
daysLate = GetFieldValue(fieldName).GetValue
'
'
'
if NOT(IsNumeric(daysLate)) then
days_Late_validation "Must be an integer value"
end if
End Function
Sub days_to_subtract_DefaultValue(fieldname)
' fieldname As String
' record type name is OverDueDefects
' field name is days_to_subtract
REM Set the initial value of the field here. Example:
REM SetFieldValue fieldname, 12345
SetFieldValue fieldname, 0
End Sub
Sub defect_submitdate_ChoiceList(fieldname, choices)
' fieldname As String
' choices As Object
' record type name is OverDueDefects
' field name is defect_submitdate
Dim objSession
Dim queryDef
Dim resultset
Dim operator1
Dim dateString
Dim monthValue
Dim dayValue
Dim yearValue
Dim compareDate
Dim neededState
Set objSession = GetSession
' select the table to choose data from
Set queryDef = objSession.BuildQuery("defect")
' select the fields to query
queryDef.BuildField("submit_date")
queryDef.BuildField("id")
' which state are we concerned about
neededState = GetFieldValue("list_of_states").GetValue
Set resultset = objSession.BuildResultSet(queryDef)
' build the filter
Set operator1 = queryDef.BuildFilterOperator(AD_BOOL_OP_AND)
operator1.BuildFilter "state", AD_COMP_OP_EQ, neededState
resultset.execute
' convert the date field to a string after subtracting days to subtract
dateString = cstr(date - GetFieldValue("days_to_subtract").GetValue)
' the format needs to be 2000-09-25
monthValue = month(dateString)
if len(monthValue) = 1 then
monthValue = 0 & monthValue
end if
dayValue = day(dateString)
if len(dayValue) = 1 then
dayValue = 0 & dayValue
end if
yearValue = year(dateString)
compareDate = yearValue & "-" & monthValue & "-" & dayValue & " 00:00:00"
'
Do while resultset.movenext = AD_SUCCESS
if resultset.GetColumnValue(1) < "2000-09-24" then ' used to verify format
if resultset.GetColumnValue(1) < compareDate then
' was not certain as to how to keep track of the ID,
' decided to append and pull it out later, quick and dirty method
choices.AddItem(resultset.GetColumnValue(1) & " " & resultset.GetColumnValue(2))
end if
loop
choices.sort
End Sub
Sub defect_submitdate_ValueChanged(fieldname)
' fieldname As String
' record type name is OverDueDefects
' field name is defect_submitdate
Dim objSession
Dim queryDef
Dim resultset
Dim operator1
Dim idValue
Set objSession = GetSession
' the ID is the last 13 characters of this field, if less then use LTrim
idValue = LTrim(Right(GetFieldValue(fieldname).GetValue,13))
' clear previous values
SetFieldValue "defect_id", ""
SetFieldValue "defect_headline", ""
SetFieldValue "defect_state", ""
SetFieldValue "defect_assigned_worker",""
SetFieldValue "def_assigned_worker_email",""
SetFieldValue "defect_id", idValue
SetFieldValue "date_followup_email", Now
' query the table defect
Set queryDef = objSession.BuildQuery("defect")
' select the fields wanted
queryDef.BuildField("headline")
queryDef.BuildField("state")
queryDef.BuildField("assigned_worker")
queryDef.BuildField("assigned_worker_email")
Set resultset = objSession.BuildResultSet(queryDef)
Set operator1 = queryDef.BuildFilterOperator(AD_BOOL_OP_AND)
' only want the info for the record ID selected
operator1.BuildFilter "id", AD_COMP_OP_EQ, idValue
resultset.execute
do while resultset.movenext = AD_SUCCESS
SetFieldValue "defect_headline", resultset.GetColumnValue(1)
SetFieldValue "defect_state", resultset.GetColumnValue(2)
SetFieldValue "defect_assigned_worker", resultset.GetColumnValue(3)
SetFieldValue "def_assigned_worker_email", resultset.GetColumnValue(4)
loop
End Sub
REM Start of Global Script EmailFollowup
REM TODO -- put your script code here
Sub EmailFollowup()
Dim mailmsg
Dim objSession
Dim IDnum
Dim workerValue
Dim headlineValue
' create an instance of the mail message class
Set mailmsg = CreateObject("PAINET.MAILMSG")
' Get the current session
Set objSession = GetSession
' mail to the person who has not done the work
mailmsg.AddTo GetFieldValue("def_assigned_worker_email").GetValue
mailmsg.AddCc "[email protected]"
IDnum = GetFieldValue("defect_ID").GetValue
workerValue = GetFieldValue("defect_assigned_worker").GetValue
headlineValue = GetFieldValue("defect_headline").GetValue
mailmsg.SetSubject workerValue & ", this is regarding Case ID: " & IDnum & ", " & headlineValue
'
'
msg = "Case ID " & IDnum & " is late. Is there a problem? "
msg = msg & vbcrlf & GetFieldValue("Headline").GetValue & ". The description is: "
msg = msg & vbcrlf & GetFieldValue("Description").GetValue
mailmsg.SetBody msg
sendmsg = true
mailmsg.Deliver
end sub
REM End of Global Script EmailFollowup
© Copyright 2026 Paperzz