Ik heb 3 tabellen: project, taak, stap. Project heeft taken en taak heeft stappen.
Stappen kunnen door verschillende medewerkers uitgevoerd worden en de status kan 'Open' of 'Gereed' zijn.
Projectstatus=Open als niet alle stappen Gereed zijn.
Als ik Projectlayout op mijn scherm heb staan, en iemand wijzigt de status van de laatste Open stap naar Gereed, wil ik dat de projectstatus ook op 'Gereed' komt en: dat dit direct zichtbaar is..
Ik heb al e.e.a. geprobeerd:
Project heeft een unstored calculation CalcProjectStatus die (mbv ExecuteSql) kijkt of alle stappen gereed zijn. Dit veld staat op de Projectlayout. Werkt in principe.
Maar: de calculation wordt in mijn projectlayout niet ververst als een status in de Staplayout gewijzigd wordt.
Ik heb vervolgens een veld ProjectStatus gemaakt in de tabel Project en op de layout gezet.
Deze wordt mbv een script met naam 'UpdateStatus' gevuld (met de waarde van CalcProjectStatus) op het moment dat de status van de stap gewijzigd wordt.
Dit veld wordt nu op de Projectlayout netjes ververst.
Als ik nu op de Projectlayout data wijzig, wordt het projectrecord gelocked.
Het veld ProjectStatus kan op dat moment niet gewijzigd worden.
En dus krijg je in de ProjectLayout geen update van de status, totdat het record opgeslagen wordt.
Toen heb ik op de Staplayout het veld Project::CalcProjectStatus toegevoegd en in het script 'Refresh window' uitgevoerd. Als het Projectrecord NIET gelocked is, wordt de waarde netjes gewijzigd, in het andere geval NIET.
Conclusie is dus dat een calculation van een gelockt record niet wordt uitgevoerd.
Als deze conclusie klopt, zou ik alleen nog iets kunnen doen in de OnRecordCommit trigger van de Projectlayout. Dit heeft alleen niet zoveel zin, omdat je dan de layout toch al aan het verlaten bent.
Question
fvlo
Ik heb 3 tabellen: project, taak, stap. Project heeft taken en taak heeft stappen.
Stappen kunnen door verschillende medewerkers uitgevoerd worden en de status kan 'Open' of 'Gereed' zijn.
Projectstatus=Open als niet alle stappen Gereed zijn.
Als ik Projectlayout op mijn scherm heb staan, en iemand wijzigt de status van de laatste Open stap naar Gereed, wil ik dat de projectstatus ook op 'Gereed' komt en: dat dit direct zichtbaar is..
Ik heb al e.e.a. geprobeerd:
Project heeft een unstored calculation CalcProjectStatus die (mbv ExecuteSql) kijkt of alle stappen gereed zijn. Dit veld staat op de Projectlayout. Werkt in principe.
Maar: de calculation wordt in mijn projectlayout niet ververst als een status in de Staplayout gewijzigd wordt.
Ik heb vervolgens een veld ProjectStatus gemaakt in de tabel Project en op de layout gezet.
Deze wordt mbv een script met naam 'UpdateStatus' gevuld (met de waarde van CalcProjectStatus) op het moment dat de status van de stap gewijzigd wordt.
Dit veld wordt nu op de Projectlayout netjes ververst.
Als ik nu op de Projectlayout data wijzig, wordt het projectrecord gelocked.
Het veld ProjectStatus kan op dat moment niet gewijzigd worden.
En dus krijg je in de ProjectLayout geen update van de status, totdat het record opgeslagen wordt.
Toen heb ik op de Staplayout het veld Project::CalcProjectStatus toegevoegd en in het script 'Refresh window' uitgevoerd. Als het Projectrecord NIET gelocked is, wordt de waarde netjes gewijzigd, in het andere geval NIET.
Conclusie is dus dat een calculation van een gelockt record niet wordt uitgevoerd.
Als deze conclusie klopt, zou ik alleen nog iets kunnen doen in de OnRecordCommit trigger van de Projectlayout. Dit heeft alleen niet zoveel zin, omdat je dan de layout toch al aan het verlaten bent.
Of doe/zie ik toch ergens iets verkeerd?
Link to comment
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.