2013-11-10 2 views
0

Я пытаюсь создать цикл для удаления всех строк портала. Но цикл не останавливается. Что я делаю неправильно?Filemaker Loop Through Portal

Go to Portal Row [Select; First] 
Loop 
    Delete Portal Row [No Dialog] 
    Go To Portal Row [Next; Exit after last] 
End Loop 

ответ

1

Я подозреваю, что у вас есть Allow creation of related records through this relationship в вашем графике Relationships. Это означает, что на портале всегда будет одна запись, и эта запись не может быть удалена, так как она будет вводить новые данные.

Вы можете изменить свой сценарий к чему-то вроде этого:

Go to Portal Row [Select; First] 
Loop 
    Delete Portal Row [No dialog] 
    Go to Portal Row [Select; First] 
    Exit Loop If [IsEmpty(relationship::index)] 
End Loop 

relationship::index Где это значение, которое хранится в каждой области вашей внешней таблицы.

Манипулирование порталами, как это может быть сложно. Вы можете подумать о том, чтобы использовать скрипт Go to Related Records, вместо этого удалите записи. Что-то вроде:

Set Error Capture [On] 
# 
# Attempt to go to the related records, creating a new window "delete records" 
Go to Related Record [Show only related records; From table: "<relatedtable>"; Using layout: "<relatedlayout>" (<relatedtable>); New window] 
# 
# If that failed exit the script. We should still be in the same window and layout. 
If [not Get (LastError)] 
    Exit Script [] 
End If 
# 
# Otherwise delete all found records 
Delete All Records [No dialog] 
# 
# And close the window we created 
Close Window [Name: "delete steps"; Current file] 
Set Error Capture [Off] 
+0

на деньги! Я разрешил «Разрешить создание связанных записей через эти отношения», и я попробовал ваш скрипт, но его удаление всех записей ... – baztown

+0

Теперь все имеет смысл, почему цикл продолжается. Я попробовал ваш скрипт, но его удаление всех записей ... Позвольте мне объяснить: я установил портал, чтобы он работал как список/корзина покупок. так что пользователи могут добавлять записи, которые они хотели бы распечатать, на портал, который будет подан под номером. Добавление кнопки «Добавить в корзину» добавляет запись/элемент в портал. Я попытался скопировать способ работы счетов в FM. Сценарий, который вы упомянули, работает, но он не будет работать для моих целей, поскольку он удаляет все записи в табуляже \ макете корзины, в котором находился портал. – baztown

+0

ваш ответ заставил меня переключиться, и вот что я сделал: у меня был список «Портал» под списком, который показывал бы, сколько предметов находится в списке/тележке, я добавил оператор if в цикл, чтобы выйти, как только число будет <1 который работал отлично. – baztown