>  // THIS DOESN'T work! it approves the records but does append to the log


Try this loop instead, you need a save record in the loop, and since you are 
saving each you don’t need the apply to selection and first record… the loop 
below will take less execution time and only modify the records once:



CONFIRM(Current user+": Are you sure you want to approve these"+\
String($selectedCount)+"records?";"Approve";"Don't Approve")

If (OK=1)
  For ($i;1;$selectedCount)
    [Approvals]approved_by:=Current user+" (4D Client)"
    [Approvals]approved_date:=Current date(*)
    [Approvals]notes:=[Approvals]notes+Char(13)+txtApprovalNotes
    [Approvals]log:=[Approvals]log+"4D client ("+Current user+") approved this 
record on"+\
    String(Current time(*))+" "+\
    String(Current date(*);" | Short")+Char(13)
    [Approvals];[Approvals]approved:=True
    
    SAVE RECORD([Approvals])
    NEXT RECORD([Approvals])
  End for 
Else 
  ALERT("Operation canceled.")
End if 







> On Jul 3, 2018, at 4:00 PM, Noah via 4D_Tech <[email protected]> wrote:
> 
> Thank you all for the quick feedback!
> 
> The approvals table has all records with Approved defaulting to False.
> The problem was with not including Set Channel (which is not really what I
> wanted to be doing anyways). I must have taken a fork in the road (while
> reading the documentation this morning) which lead to a place I should not
> have been.
> 
> First problem was that looping over records in selection was not limiting
> it to one record inside the loop.
> 
> http://doc.4d.com/4Dv15/4D/15.6/Records-in-selection.301-3817584.en.html
> 
> When I tried an alternate approach, I ended up looking at sockets
> 
> Here is a snippet from the original code that I was trying to get working:
> 
> CONFIRM(Current user+": Are you sure you want to approve these
> "+String($selectedCount)+" records?";"Approve";"Don't Approve")
> 
> If (OK=1)
> APPLY TO SELECTION([Approvals];[Approvals]approved:=True)
> 
> FIRST RECORD([Approvals])
> 
>  // THIS DOESN'T work! it approves the records but does append to the log
> of each record
> For ($i;1;$selectedCount)
>  [Approvals]approved_by:=Current user+" (4D Client)"
>  [Approvals]approved_date:=Current date(*)
> 
>  $current_notes:=[Approvals]notes
>  [Approvals]notes:=$current_notes+Char(13)+txtApprovalNotes
> 
>  $sTime_Stamp:=String(Current time(*))+" "+String(Current date(*);"|Short")
>  $new_line:="4D client ("+Current user+") approved this record on
> "+$sTime_Stamp+Char(13)
>  $current_log:=[Approvals]log
>  [Approvals]log:=$new_line+$current_log
>  NEXT RECORD
> End for
> Else
> ALERT("Operation canceled.")
> End if
> 
> 
> txtApprovalNotes is the name of a text entry field on the form.
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:[email protected]
> **********************************************************************

**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to