filesoft.Discuss a project

FILESOFT ACADEMY / COURSE 4 / LESSON 4

A workspace for
one project.

Print this checklist or save as PDF. Blank areas are writing space, not online form fields.

Back to the lesson ↗

Build and compare

  1. Back up your saved, closed Lesson 3 file and continue in a working copy. Keep all existing fields, records, relationships and layouts.
  2. In Manage Database → Relationships, add TasksForProject as another occurrence of the existing FollowUps table. Do not create another base table.
  3. Join Projects::PrimaryKey = TasksForProject::ProjectID and Projects::ContactID = TasksForProject::ContactID. Both comparisons use = and must match. Keep related-record creation, cascade deletion and relationship sorting off on both sides.
  4. Duplicate Contact Projects as Contact Project Hub, still based on Contacts. Keep its project-entry portal and existing fields. Narrow the ProjectName field enough to fit an Open project button beside it inside the first portal row. Preserve the row’s height and left/top anchors.
  5. Create Project Workspace based on Projects, in Form View. Add Projects::ProjectName, Contacts::FirstName and Contacts::LastName. Set these fields to View Only in Browse and Find. The existing Contacts–Projects relationship supplies the owner’s name.
  6. Add a portal showing TasksForProject, name the object Project tasks, with three visible rows and vertical scrolling. Leave portal filtering, sorting and deletion off. Inside its first row, add Task, DueDate and Status from TasksForProject, all View Only. Preserve Date formatting on DueDate. Put Mark done and Mark open buttons inside that same row.
  7. Add Back to contact above the portal. Add the full scripts below in Project Workspace UI and Project Workspace Controller folders; hide them from the Scripts menu. Bind each button to its UI handler only after completing the safeguards.

Read the short successful path, then complete every controller and UI handler with its safeguards before binding buttons.

Try it yourself

  1. Work in a copy of your completed Lesson 3 file, or download this lesson’s example. Existing assignments are preserved and may differ from screenshots. Note your task and project counts.
  2. Open Task Project Links in Browse/List View. Through Choose project, assign Rivera’s Send meeting summary to Rivera’s Website refresh. Assign Morgan’s Send project outline to Morgan’s separate Website refresh if it is not already assigned. Leave at least one task unassigned.
  3. Select Contact Project Hub from the Layout menu, Browse/Form View. Use Show All if necessary, then locate Rivera by last name or email. Click Open project inside Rivera’s Website refresh row. Expect that project’s name, Rivera’s name and only its assigned tasks.
  4. Click Mark done on a task row, then Mark open. Only that task’s Status should change. The task text, due date, ContactID and ProjectID must stay intact. Check the same status on Task Project Links.
  5. Click Back to contact. Expect Rivera on Contact Project Hub with one contact found. Use Show All to browse other contacts. The button deliberately finds the owner; it does not restore the previous contact found set.
  6. Open Rivera’s Autumn workshop when it has no assigned tasks. Expect an empty portal and a working Back to contact button. An empty project is valid. Do not add a task merely to fill the portal.
  7. Open Morgan’s Website refresh from Morgan’s hub. Expect Morgan’s assigned task only. Rivera’s task must not appear despite the equal project names. Unassigned tasks must stay outside both portals.
  8. On a disposable copy, try Open project on the blank project-entry row. Expect a message and no new project. Check display fields on Project Workspace are read-only, task actions stay inside the correct row, and the portal scrolls when more than three tasks are assigned.
  9. Resize the window and check project names, task text, dates and buttons fit. Check the original Contact Projects entry screen, Lesson 3 chooser and earlier navigation still work. The workspace does not create, delete or reassign tasks; use the earlier task-entry and chooser screens for that work.
  10. Save and close, then reopen. Confirm the assignments and status changes remain, original record counts are unchanged except deliberate test additions, and both navigation directions still work.

Explain what you learned

Why does the workspace toolbar count projects rather than tasks?

Why match both the project key and the contact key?

What does Back to contact restore, and what does it not restore?

Your notes and questions