Create Accession Number Script
(Dev Manual)
I am pretty proud of this so I am writing it up here:
- Set Error Capture [ On ]
- #First mark the current record. Don't forget to remove this at each edit step
- Set Field [ Finds::CurrRecord; "this" ]
- #Now error correct for missing data
- If [ Finds::SelectClass = "" or Finds::SelectTrench = "" ]
- Show Custom Dialog [ Title: "Error"; Message: "Both the Class and the Trench must be selected."; Buttons: “OK” ]
- Else
- #Ok, so we have data entered for search
- Enter Find Mode [ ]
- Set Field [ Finds::AccessionNum; Finds::SelectCodeTrench ]
- Perform Find [ ]
- #This part is for Found Count >0, Still need for Found Count =0
- If [ Get ( FoundCount ) > 0 ]
- Sort Records [ Specified Sort Order: Finds::AccSerialNum; ascending ] [ Restore; No dialog ]
- Go to Record/Request/Page [ Last ]
- Set Field [ Finds::GlobalNextAccNum; Finds::AccSerialNum + 1 ]
- Show Custom Dialog [ Title: "Next Number"; Message: "The next Accession number for this would be " & Finds::SelectCodeTrench & "-" & Finds::GlobalNextAccNum & " Do you want to use it for this record, a new record, or discard it?"; Buttons: “Discard”, “New Record”, “This Record” ]
- If [ Get ( LastMessageChoice ) = 1 ]
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::CurrRecord; "" ]
- Exit Script [ ]
- Else If [ Get ( LastMessageChoice ) = 2 ]
- #Choice 2 is Create a New Record
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::CurrRecord; "" ]
- New Record/Request
- Set Field [ Finds::AccessionNum; Finds::SelectCodeTrench & "-" & Finds::GlobalNextAccNum ]
- #Choice 3 is Add to Current Record
- Else If [ Get ( LastMessageChoice ) = 3 ]
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::AccessionNum; Finds::SelectCodeTrench & "-" & Finds::GlobalNextAccNum ]
- Set Field [ Finds::CurrRecord; "" ]
- #This is ending the LatMessageChoice stuff
- End If
- #This is the found >0 if
- Else If [ Get ( FoundCount ) = 0 ]
- Show Custom Dialog [ Title: "Next Number"; Message: "The first Accession number for this would be " & Finds::SelectCodeTrench & "-1" & " Do you want to use it for this record, a new record, or discard it?"; Buttons: “Discard”, “New Record”, “This Record” ]
- If [ Get ( LastMessageChoice ) = 1 ]
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::CurrRecord; "" ]
- Set Error Capture [ Off ]
- Exit Script [ ]
- Else If [ Get ( LastMessageChoice ) = 2 ]
- #Choice 2 is Create a New Record
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::CurrRecord; "" ]
- New Record/Request
- Set Field [ Finds::AccessionNum; Finds::SelectCodeTrench & "-1" ]
- Set Error Capture [ Off ]
- #Choice 3 is Add to Current Record
- Else If [ Get ( LastMessageChoice ) = 3 ]
- Perform Find [ Specified Find Requests: Find Records; Criteria: Finds::CurrRecord: “"this"” ] [ Restore ]
- Set Field [ Finds::AccessionNum; Finds::SelectCodeTrench & "-1" ]
- Set Field [ Finds::CurrRecord; "" ]
- Set Error Capture [ Off ]
- #This is ending the LatMessageChoice stuff
- End If
- End If
- #This last if is only for the error correction
- End If
<- UUID Field List and Detailed Views on Same Layout ->