PowerSchool University
2010
Foreword
Using DDA & DDE to Obtain and Work with Data..................................... 428
Course Objectives
In this class, you will create:
• A fee invoice
2. In the appendix of your manual, refer to the Student Transcript with Credit example
handout to complete your report.
2. In the appendix of your manual, refer to the Discipline Letter example handout to
complete your report.
2. In the appendix of your manual, refer to the Field Trip Roster example handout to
complete your report.
Result:
@count.Action.Action_Code@ and @total.Action.Duration.Actual_Duration@
7. Click to select the whole Incident Summary row; use the Paint/Fill Inspector to
choose a light color
8. Click to select the whole Incident Header row; use the Paint/Fill Inspector to
choose a second complimentary but distinct light color; enter the text OSS Totals to
column one
9. Click Preview
3.1 What would you click to find the filter expression and which inspector allows you to view
the Filter Expression?
Answer: _________________________________________________________
3.2 Besides addresses, what other data objects might you use in a report like this to find
critical missing data?
Answer: _________________________________________________________
NOTE: For clarity the filter being used is
Contact.Street==null||Contact.City==null||Contact.State==null||Contact.Zip==null||Conta
ct.Mailing_Street==null||Contact.Mailing_City==null||Contact.Mailing_State==null||Contac
t.Mailing_Zip==null
3.3 What must the value of “||” be for this expression to work?
Answer: _________________________________________________________
Answer: _________________________________________________________
3. Edit and show below the property expression that would make the null boxes fill with
yellow, and then click Preview
Answer: _________________________________________________________
Take It Up a Notch
By now you have created each of the ReportWorks structure projects. Now we want to take
it up a notch. We are going to do things like use multiple data sets in the same project; use
multiple rows and columns in a crosstab report; use multiple series in a graph and add
images to any of our layouts.
4. Click the CrossTab structure; open the Simple Table Inspector; increase the
number of columns to 4
5. Click column 4 row 1; add the text Gender
6. Drag and drop Demographic.Gender to column 4 row 2
7. Click column 4 row 3; enter @count@
8. Click column 4 row 4; enter @count@
9. Click column 1 row 2; change the text to Totals:
10. Click the subtitle; add Gender to the subtitle
11. Click Preview
12. Click Publish
13. Run the Project in PowerSchool from the District level to see all schools, grade levels,
genders
NOTE: For the sake of time we will not use them but remember that if you click
Shapes on the tool bar there are a considerable number of ways to edit and control
the shapes. They include grouping, aligning, and moving to other layers.
1. On the Details panel, click Add; double-click Untitled Project to select it; rename
the project to Enrollment by Grade Chart (your user number); select Student:
Basic as the Data Set
2. Click Scope; click Boundaries; make the boundary include all active students
3. In the Layout panel, select the Data Structure called Table when prompted; expand
the Table structure so that it fills the page within the margins
4. Click the Inspector icon; navigate to Student > Current_School_Enrollment.
Drag and drop the Current_Grade_Level data object into the Grouping area of the
Inspector panel
Note: The rectangle can be any width and height. This will represent a bar in a
chart.
9. Click the Paint Bucket in the Inspector panel; select Fill; then click the color picker
and choose a favorite color from the Color Panel
10. In the Inspector panel, click Property Expressions; scroll down the list of
properties and choose Width; enter count * 5 as the math expression in the text
area below the list of properties
Note: The five is a multiplier—the number of pixels wide the box will be for each
enrollment. You can adjust this as you need.
11. Click Preview and you now have a bar graph showing relative enrollment counts by
grade level in the school
Extra Credit
12. Add a title to the report using the Student > Current_School_Enrollment >
Current_School_Name data object.
13. Change the color fill of the rectangular so that it uses a Gradient Fill, and choose
two of your favorite colors.
14. Add the count to the rectangular bar so that we know how many students make up
that bar. Use the built-in data object @count@.
15. Add a sort to the grade level grouping, so that the list of grade levels is in ascending
order, using the row inspector.
1. Choose to build a project based on a template, and choose the Student Bell
Schedule template
NOTE: For this activity, you’ll filter to limit your report to one student. This will make
it faster and simpler. In the Scope Boundaries panel, add a filter on the Student > ID
> Student_Number. Your instructor will assign you a student number.
2. Double-click the gray box in the Layout panel that lists the class information; click
Inspector; click Text Inspector; click General Inspector, where there should
already be expressions in the FontColor and FillColor properties.
Course_Name==null?"#B8B8B8"
This expression tells ReportWorks to make the font color and the box color gray when
the Course_Name object is null (when the student is not scheduled that period). In Java
= is used to set the value of a variable, and == or != are used to represent equality.
Note that there is no ELSE portion in this expression; it would follow a colon. It means
there is nothing to do when the Course_Name is NOT null; it means use the current
default font color and box colors.
To apply color based on a class period, you need an equation that gives a unique
color based on the Section and Period combination. The equation below does the
trick:
(Section_ID+Period_Sort)%10==0?"#F1FEAE":"#D5FFC0"
This equation takes the total of the Section_ID and the Period_Sort, then divides that
by 10, then takes the value of the remainder. If the remainder is 0, it returns the
color #F1FEAE. If the remainder is not 0, and is some other value, it returns the
color #D5FFC0. Note that this is another IF statement. You can nest IF statements
by placing this expression in the "else" portion of the original statement and make a
complex conditional. For example:
Course_Name==null?"#B8B8B8":(Section_ID+Period_Sort)%10==0?"#F1FEAE":"#
D5FFC0"
You will use an even more complex formula for your bell schedule. For now place the
equation above in the Property Expressions
You should see at least two different colors for classes in the schedule. You can
continue nesting the expressions, so that you can have up to 10 different colors for
the schedule. You should be very careful with the parentheses needed to properly
close the expressions:
5. Click Edit
6. Use the following statement for the FillColor
Course_Name==null?"#B8B8B8":((Section_ID+Period_Sort)%10==0?"#F1FEAE" :
((Section_ID+Period_Sort)%10==1?"#FED4BB" :
((Section_ID+Period_Sort)%10==2?"#D5FFC0" :
((Section_ID+Period_Sort)%10==3?"#C1FBFF" :
((Section_ID+Period_Sort)%10==4?"#FFBEF8" :
((Section_ID+Period_Sort)%10==5?"#FFC4ED" :
((Section_ID+Period_Sort)%10==6?"#C2FFD3" :
((Section_ID+Period_Sort)%10==7?"#DDD6FF" :
(Section_ID+Period_Sort)%10==8?"#E2FFAB" :
(Section_ID+Period_Sort)%10==9?"#FECEDA"))))))))))
NOTE: These colors are meant to match those in the Bell Schedule view in PowerSchool
Admin. You may choose your own if you like.
7. Click Preview
NOTE: You should now see a unique color for each period in which the student is
scheduled, up to ten different colors. It is very likely there will be fewer than ten colors.
Extra Credit
8. What in the equation limits it to ten colors? Can you come up with a math expression
which can handle more than 10 colors?
When clicked, you will be able to go to that student's page if you have a current session in
PowerSchool. This will only work if the user has an active Admin session open.
1. In ReportWorks, import Student Schedule List for Activity 10.rwp from your PSU
Activity Files
2. On the Details tab, double-click the project name to open it
3. For this activity set a filter to limit the students in the report; in the Boundaries
panel, add a filter against the Student > Current_School_Enrollment >
Current_School_Number; use 100 for the School Number
4. In Layout click Inspector and find the Table Group Inspector portion of the
Inspector Panel; click School_Enrollments table group; the main layout should now
display the School_Enrollments Header and Details row controls
5. Click School_Enrollments Details; edit the student name cell to add Student
Number: @Parent.ID.Student_Number@ making the full string as follows:
http://serveraddress/admin/students/home.html?selectstudent=student_numbe
r=@Parent.ID.Student_Number@
7. Log on to PowerSchool, then go back to ReportWorks; click Preview; hover the
cursor over the student name; you will see that the cursor turns into a hand because
the name is now a clickable link; click the link and make sure it works
Extra Credit
8. Modify the report so that the just the school name becomes a URL with an interactive
map connected to it
Hint: Go to Google Maps; search for the desired address; once the map has
rendered, click Link; click Paste link in email or IM; paste that link in
ReportWorks just as you did above
Summary
The goal was to refine your ReportWorks creations by using conditional formatting, property
expressions and custom details. With these skills you should be able to get just the data
you want, just the way you want it.
You have done some great work, don’t leave it all behind on our servers, Please take the
time to export the files so you can take them home.
Finally, as ReportWorks continues to mature don’t forget all the wonderful places you have
to catch up and keep up. Help is just a context sensitive click away while in ReportWorks.
PowerSource has the most up-to-date data map, user guides, and knowledgebase. There is
even a ReportWorks tab and a ReportWorks lab with the latest and greatest just a few clicks
away.
• Use GROUP BY and analytical functions in your SQL to organize and analyze your
data
• Describe how PowerViews work and how they can be used in SQL queries
1. This query uses a LEFT OUTER JOIN to add in the Special Program Enrollments
PowerView. Open SQL Developer and put in the query:
SELECT s.lastfirst, s.gender, s.grade_level, d.ethnicity_name,
sp.program_name, sg.grade “Letter Grade”, sg.termid
FROM students s
JOIN storedgrades sg
ON s.id=sg.studentid
JOIN ps.pssis_student_demographics d
ON d.student_number=s.id
ON sp.student_number=s.id
WHERE s.schoolid=100
AND sg.termid>=1800
ORDER BY s.lastfirst
2. Open a new query window, copy the query above to it, and change LEFT OUTER JOIN
to JOIN. Run the query and compare the results. How do they differ? Why?
_______________________________________________________________
Do not run it until you understand all its parts and what it says.
How does it differ from the first query? What results will it return?
FROM pssis_student_demographics s
Conditionals in SQL
Sometimes, in order to analyze data, you need to sort it into groups based on field values.
Use the ELSE function to sort data in this way. With ELSE clauses, you can make your
groups appear as separate columns of data, which makes for nicer tables and graphs.
How does this query differ from the previous three? What will it do that the others
won’t?
3. Click Go
What results did you get? Are they what you expected from reading the query?
What would the SQL that made this view look like?
1. Put in a placeholder for the SELECT statement, and start by joining the tables
together; use INNER JOINS:
SELECT somestuff
FROM cc cc
JOIN teachers t
ON t.id=cc.teacherid
JOIN courses c
ON c.course_number=cc.course_number
2. To limit the results, restrict returned data to this year’s terms from one school; add
on:
WHERE cc.termid <=1800 AND cc.schoolid=100
3. You want a count of students in each teacher’s course and period, so add:
GROUP BY t.lastfirst, c.course_name, cc.expression
4. The SELECT statement must hold your group function (a count) and all of the factors
to group by; specify your SELECT clause:
SELECT t.lastfirst, c.course_name, cc.expression, COUNT (cc.studentid)
FROM students s
ON s.id=sg.studentid
ON s.id=pcs.studentid
2. How would you change this query to show only students on the basketball team?
FROM students s
ON s.id=sg.studentid
2. Place the Get Custom Fields code in the WHERE clause to restrict data by custom
field values:
SELECT s.lastfirst, s.grade_level, sg.grade
FROM students s
ON s.id=sg.studentid
The command should follow other WHERE statements, or the database server may need to
evaluate the condition for every row, which will slow the processing.
Review
In this session, you learned how to make complex joins and how to analyze your students’
test scores. You used SQL functions to pivot data to do the job, and you learned to pull data
from PowerViews to help you get it done.
Attendance Administration
This class covers the management of PowerSchool attendance. You will work with:
• Attendance Setup
• Attendance Code Categories
• Attendance Codes
• Attendance Conversions
• Attendance Processes
period to access the Edit Bell Schedule Item page. Choose one bell period to act as the
bridge to the daily attendance record and check Use For Daily Attendance. Then click
Submit.
The daily attendance record is created for both one- and two-way bridge options. Return to
the School Setup page and click Preferences under Attendance. Set the preferred method
by selecting One-way or Two-way on the Attendance Preferences page. If you select the
One-way option, the system creates a daily attendance record, but does not update the
meeting record if you make changes. If you select the Two-way option, then when you
make changes to the daily attendance record, the meeting record updates automatically.
Attendance Codes
Attendance codes are used to define values, points, and calculations for school-specific
attendance codes. Examples of codes are A (Absent), T (Tardy), P (Parent Excused), and F
(Field Trip). In a typical PowerSchool setup, blank, or no code, represents Present, and you
should assign it a sort order of "1." To add, edit, or delete an attendance code, click School
> Attendance Codes. Also define the codes associated with a particular attendance code
category.
The table below defines the codes that you cannot use because they are reserved for
PowerSchool system use.
Attendance Points
When you create an attendance code, you can assign it a point value. This value represents
the number of points added when a student receives this code. It can be either a positive or
negative number. Examples are absent=1, tardy=.5, and present=0. Although assigning
attendance points is optional, attendance points can help you identify students with chronic
attendance problems. You can use a search code to search for students who have
accumulated excessive attendance points for the semester. For example, on the Start Page,
in the Search Students field, enter *attendance_points (S1)>9 to search for all students
with more than 9 attendance points during Semester 1.
In addition to entering attendance points when you set up attendance codes, you can also
set up the grade that will automatically be awarded if a student’s attendance points exceed
the specified limit. To perform this setup, click School > Final Grade Setup. Then click the
appropriate term and enter the number of attendance points and grade.
Attendance Conversions
Attendance Conversions determine how PowerSchool converts data into ADA values. You
can create three types of attendance conversions: Period, Code, and Time. Period
conversion is used with meeting attendance, Code is used with daily attendance, and Time
can be used with either. Define only the conversion type that applies to the FTE in question.
To define attendance conversions, click School > Attendance Conversions. Then, link
your Attendance Conversions to the Bell Schedules. Click the name of the Bell Schedule to
choose the Attendance Conversion Method.
Bell Schedules
Bell schedules indicate the start and end times for each period. All periods used for
scheduling purposes must have an associated bell schedule. Secondary schools often format
the bell schedule to match course periods. At an elementary school, a bell schedule might
have just two periods: morning and afternoon. You can designate the morning period as the
bridge period by selecting Use For Daily Attendance on the morning period’s Edit Bell
Schedule Item page.
When you set up your school calendar, you can associate different bell schedules with
special days. For example, you can set up a bell schedule called Assembly, where each
period meets for a shorter amount of time to accommodate a school event that day.
You must first set up attendance conversions and commit your master schedule to properly
calculate attendance. If you set up bell schedules and then re-commit a master schedule,
the bell schedules do not have a reference to the schedule periods. Without this reference,
you cannot take attendance.
School Calendar
When you set up the school calendar, designate what days school is in session, what day
type is associated for each day (A day or B day), and what bell schedule is associated with
each day (Regular or Assembly). Before you can set up the school calendar, you must set
up years and terms, commit to a master schedule, and set up attendance conversions and
bell schedules.
If you need to modify daily attendance, from the Daily Attendance page, click the day of the
week for the attendance change. Complete the Time In and Time Out fields. PowerSchool
then calculates the minutes the student has attended for the day.
Verifying Attendance
After all teachers have taken attendance, run the Absentee Report to generate a single-day
period-by-period attendance code report. To run the report, on the Start Page, click
Attendance > Absentee Report. Depending on your school policy, you might call parents
or guardians of students who are absent, but not excused. Once you verify the reason for
the student’s absence, you can update the student’s Attendance page by clicking the
student’s name on the Absentee Report.
As you are viewing the Absentee Report and making phone calls to parents, one of
the students whose name is on the list walks into the office. Change the student’s
attendance from absent to tardy using the Absentee Report.
8. Click the name of a student on the Absentee Report
9. Click Enter Attendance
10. Choose T (Tardy) from the “Current attendance code” menu
11. Click in the 1st period cell for today’s date
12. Click Submit
Updating Attendance
You can also use the Counselor’s Screen to update attendance. On the bottom of the
Absentee Report, click Functions > Counselor’s Screen. (Alternatively, click Student
Selection in the breadcrumbs, and then choose Counselor’s Screen from the Group
Functions menu.) This time, choose Attendance, and click Submit. Click a student’s last
name to open the student’s Attendance page. You can now modify current or future
attendance. After you change the attendance, click Submit. Then click the next student’s
last name from the list on the left.
Select a student, and then click Attendance > Change Meeting Attendance. On the
Attendance Change page, enter the date range and the periods (meetings) to change.
Select a code or codes to search for in the “Codes to scan for” list (the default is All codes).
Select a code from the “Attendance code to set” menu. The attendance codes you scan for
will be replaced by the attendance code you choose from the “Attendance code to set”
menu. Finally, click Submit.
Attendance Tracking
Attendance tracking enhances the regular PowerSchool attendance reporting, but does not
impact your current setup or attendance values. Use attendance tracking to find students
with unexcused absence problems. Attendance tracking is collected using a different process
and stored in two separate tables. Only two attendance items affect attendance tracking:
attendance code categories and attendance codes.
District Setup
Begin by setting up attendance methods and thresholds at the District level. Then, create
each level and trigger that requires a letter. Use any of the five attendance methods:
Percent, Tardy Day, Consecutive, Semester, and Year. Setting up the Percent method is
required and states the percentage of the day the student must be absent. Each method
must have a threshold entered.
A Tracking Example
District Tracking Methods: Percent (Threshold 99) Tardy Day (Threshold 1)
Tracking Levels for Unexcused
For this example, set up two tracking methods. One method is Percent, and the threshold is
99%. Percentage is calculated as greater than the threshold. The student must be absent
greater than 99% of the day to meet the threshold. The other method is Tardy Day, and the
threshold is 1%. The student must have one tardy for the day to meet the threshold. Then,
a tracking level is set up for unexcused absences. Use both methods in the tracking level.
This is an and/or relationship. Create three triggers for this one level. Trigger 1 is met when
the student is marked unexcused absent for more than 99% of the day for three days in the
year, and/or is marked unexcused tardy for one period in a day at least three times.
School Setup
Now that the district setup is complete, navigate to a school. One attendance mode is
required, and you can choose from four modes: Meeting Period to Day, Meeting Time to
Day, Daily Code to Day, and Daily Time to Day.
Then, create categories for unexcused absence and illness separately. Set up the unexcused
absence and unexcused tardy categories by clicking Unexcused Tracking Setup. The
categories you create are associated with the categories set up using Attendance Code
Categories on the School Setup page. Each attendance code category can only be used
once. Once you use all the categories, the New button is no longer available.
Attendance Reports
PowerSchool has many built-in attendance reports. For example, you can run reports to find
which teachers have not taken attendance, get a daily absence list, identify students with
chronic attendance problems, as well as verify and audit attendance. To access most
reports, click Reports on the main menu. However, some reports will be found by clicking
Attendance on the Start Page. The activities in this handout specify which link to select to
access the relevant reports.
In this class you will:
• Run attendance reports and learn the purpose of each
• Learn how ADA (Average Daily Attendance) is calculated
• Import an attendance report template
• Use attendance DATs (data access tags)
Here are six common attendance questions that this course will answer:
1. Who is absent today?
2. Have attendance records been verified?
3. Which students have attendance problems?
4. What is the overall attendance picture?
5. How can I communicate student attendance issues to parents/guardians?
6. Which students have perfect attendance?
Search by Grades/Attendance
The most fundamental way of finding students with attendance issues is using the
Grades/Attendance search. This search creates a selection or produces a list of matching
students and sections containing all students who match your search criteria.
Attendance Count
The Attendance Count report produces a list of students who were absent at least the
minimum number of absences you specify. The list of students also displays the number of
absences for each period. This report can be modified to itemize results by day.
Consecutive Absences
The Consecutive Absences report generates a list detailing consecutive absences by absence
code for students who have at least the minimum number of consecutive absences you
specify. This report also displays the dates of the first and last consecutive occurrences.
PowerSchool reports that have been exported to be shared with other users are in .pst
format. After you have located and downloaded the report you would like to use, import the
report into your school district’s PowerSchool database.
Your completed Report Card Heading field should look like this:
<center><b>^(schoolname)</b>
^([39]schooladdress)
^([39]schoolcity), ^([39]schoolstate) ^([39]schoolzip)
^([39]schoolphone)</center>
<hr>
^[letter.date]
The attendance tracking data is not calculated automatically. The first step of the
process is to refresh the attendance data. Refresh data at the district, not the school.
Navigate to the District Office and click Reports > Refresh Attendance Tracking
Data. Click Submit to process the refresh.
2. Verify the attendance data is correct for each student
The next step is to see who has reached each trigger for each level. Navigate to a
school, and click Reports > Truancy and Attendance Letters (View Only) to
double-check the attendance data. The report lists all students who qualify for the
trigger and the date they reached the trigger, as well as the dates absent. Review
the list to make sure that the correct students are listed. For example, one student
should have had his absences changed to excused, but the change was never made.
Use the list to verify an excused student isn’t listed. At the bottom of the list, click
Set as current selection to work with the list of students and make corrections.
Repeat for each level and trigger.
3. Run the extract
The report setup for the extract is the same as for the view only. Click Reports >
Truancy and Attendance Letters (Extract). When the report status is completed,
click View to see the list of students.
4. Click ReportWorks to save the selection and format the letter
Summary
After completing this course, you should be able to:
• Run attendance reports and determine which reports are required for your needs
• Explain how ADA is calculated
• Import a report template
• Use an attendance DAT on a report
Additional information about DATs is available in PowerSource at
http://powersource.pearsonschoolsystems.com.
Basic Requirements
Before you can use Automated Walk-in Scheduling, you must have the following items and
tasks completed in advance:
• Install the scheduling engine
• Set up scheduling scenario
• Designate course preferences
• Define scheduling parameters
• Have current year term and scheduling year set up in PowerSchool
The Engine
The scheduling engine must first be installed on your server. Remember to verify latest
updates and system requirements.
To install the engine, follow these steps:
1. On the Start Page, click PowerScheduler
2. From the main menu, click Engine Download
3. Click the file version that correlates to your operating system
Do not complete the installation if the computer you are using is not the server.
4. Click Save File (Mac) or click Save (Windows)
5. Click OK (Mac) or click Close (Windows)
6. Double-click the .dmg file on the desktop (Mac) or double-click
PSSchedEngineInstall on the desktop (Windows)
7. Double-click the .pkg file (Mac) or double-click the Install file (Windows)
8. Click Continue (Mac) or click Run (Windows)
9. Click Continue (Mac) or click Next > Next (Windows)
10. Click Install (Mac) or click Finish (Windows)
Scheduling Setup
If the master schedule is active, all the scheduling setup needs to be made on the live side.
Settings must be defined if you do not use PowerScheduler. If you have used
PowerScheduler, the settings will already be carried over, but it is important that you review
all settings to make sure they are set the way you want them.
Course Information
Enter or review course information by navigating to School > Courses and selecting a
course. Use the following links at the top of the “Edit Course District Information” page:
• District – any changes to course information on this page will change the information
district-wide. Although prerequisite courses are entered here, the system does not
automatically check whether a newly enrolled student has completed the
prerequisite. The user enrolling the student must manually determine if prerequisite
requirements have been met.
• Fees – use to automatically assess certain fees when a student enrolls in a course.
Only those fee types with the fee category of Course are available to choose in the
Fee Type menu.
• Scheduling – use to edit course-specific scheduling information used by the engine
when building student schedules.
• Relationships – use to define related courses. If you define a relationship between
two courses, you do not have to define the same relationship in both courses. You
can, however, define the relationship for both courses so that it is easy to identify
their relationship regardless of which course you are viewing.
• Prerequisites – use to define prerequisite information used by the engine when
loading student schedules.
Scheduling Preferences
Update scheduling preferences by navigating to School > Preferences. The Scheduling
Preferences page is divided into the following links:
• Preferences – use this page to define parameters to determine how long the system
spends scheduling courses and sections for any given student.
• Teams – instructional teams are typically designed to facilitate cross-curricular
planning and to make it easier for teachers to address individual students’ learning
needs. In PowerSchool, teams are either static or dynamic.
o Static Teams – students are assigned by criteria such as ability, grade level,
or last name to groups of academic courses. To create static teams, manually
assign each student and teacher to a team.
o Dynamic Teams – a group of students whom the system randomly assigns to
teams with teachers you define. To create dynamic teams, assign only
teachers to the teams, allowing the system to decide which students to assign
to which teams for the best balance.
• Houses – if the “use houses” check box is selected on the Scheduling Preferences
page, the system references which house a room is assigned to before scheduling
courses in that room and gives scheduling priority to the appropriate house.
• Buildings – if the school campus contains several buildings, users can define each of
them. Buildings can be associated with students, teachers, and rooms. This way, the
system can schedule courses in the appropriate building, taught by the appropriate
teacher, and scheduled for the appropriate students.
• Section Types – these are special sections of a course, such as bilingual.
Student Information
Student information is used to indicate student scheduling preferences. When the engine
searches for a section to enroll a student into, it considers whether the student has been
assigned to a team, house, or campus/building. If necessary for your school, complete the
following fields on the Modify Info student page.
• Current Team
• Current House
• Current Campus/Building
Constraints
Load constraints restrict the way the system loads students into courses that have already
been scheduled. The more constraints you define, the less flexibility the system has to load
students into courses and the less optimal the resulting schedule will be. It is always best to
use the fewest number of constraints required to accomplish your scheduling goals.
There are five types of load constraints:
• Student Avoid – specify that two selected students cannot be scheduled into any of
the same course sections
• Teacher Avoid – specify that a student and teacher cannot be scheduled into any of
the same course sections
• Student Free – specify periods when a student must be free, such as when taking a
course at another school
• Section Link – specify that if students are enrolled in one course section, they must
also be enrolled in another specific course section, such as Biology and Biology Lab
• Student Preference – schedule a student into a particular course section, in a specific
term, with a specific teacher
The Walk-In
Whether you are changing one class, or a creating a new schedule, you must navigate to
the same screen to begin. Select a student, and click Modify Schedule.
There are two ways to maintain student schedules: manual scheduling and auto-
scheduling. Manual scheduling is section-specific and allows you to pick specific sections in
which to enroll the student, overriding the system-defined schedule if one exists. Auto
scheduling is course-specific. You enter a student's request for specific courses. The system
then automatically schedules the student for the sections that best fit his or her schedule.
Maintaining student schedules can be done in conjunction with the scheduler or
independently. The “Modify Schedule – Enrollments” page is divided into two functional
areas: Requests and Enrollments.
Requests
The engine uses requests to determine student schedules. The student will not be scheduled
for any course that is not requested except for courses already scheduled and locked. Use
the “Modify Schedule – Requests” page to add or delete. To create a new course request,
click New. Click Associate to select the name of the Course(s). Press and hold the
Command key (Mac) or the Ctrl key (Windows) to select multiple courses.
The following information is entered in the Modify Schedule > Requests page:
• Alt – this check box indicates whether this request is an Alternate course request. If
this box is checked, there must be an entry in the Code field.
• Code – enter any single letter as a way of relating alternate requests to primary
requests. Alternate requests that are assigned this code will be used to substitute for
any primary requests that are assigned the same code.
• Alt Priority – if you select the Alternate check box, enter a priority number to
determine which alternate to load first when a student does not receive the elective.
• Section Type – choose the course’s section type, if applicable, from the menu.
• Alternate 1 – click Associate to select the name of the first alternate for this course.
Enrollments
The “Modify Schedule – Enrollments” page lists the student’s section enrollments for the
current year and school, as well as current course requests. You can drop and add courses
and sections from this page.
Use Automated Schedule to initiate the automated scheduling process using the scheduling
engine to produce the student’s schedule. Student scheduling information is exported to the
scheduling engine, which then creates the best schedule for the student based on the
student’s course requests, load constraints, course relationships, and applicable scheduling
parameters. The results are then imported from the scheduling engine.
When the engine completes the student’s schedule, the Automated Schedule Results page
appears. Click the arrow button on the Status link to display any error messages or
warnings regarding this scheduling run. The student is not yet enrolled in any of these
courses; these are only a proposed schedule constructed by the engine.
Use Manually Schedule to manually schedule the student into available courses by period.
Select the course, term, and expression into which you want to enroll the student. Clear the
check boxes next to the course, term, and expression from which you want to drop student
enrollments. Click Submit once you have made all your selections.
Use “Edit Auto Schedule Parameters” to modify default parameter settings for one specific
current scheduling session for the selected student.
Elementary, choose 7 classes, Middle School, choose 6 classes, and High School,
choose 10 classes.
6. Click Submit > Submit
7. Click Automate Schedule, but stagger five seconds between each person in the
class
8. Accept the student schedule
9. Click Matrix View to double-check any missing classes
10. Click Modify Schedule to add missing classes
11. Choose the period that is missing under Search Available Classes
12. Click Find
13. Click a course title to add it to the schedule
14. Repeat until the schedule is complete
• How can you use what you’ve learned about web technologies and PowerSchool
pages to add useful information to pages?
</html>
3. Inside those tags, put in the tags to mark the three sections of a web page:
<head><title></title>
</head>
<body></body>
4. Give it in a page title, save it, then open it in a browser to see how it works:
<title>New Page</title>
5. Insert a table (give it two columns, a header, and three rows) in the body:
<table>
<th></th><th></th>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
6. Fill the table with information (make up your own) and test it:
<th>Pet</th><th>Name</th>
<tr><td>Dog</td><td>Pearl</td></tr>
<tr><td>Cat</td><td>Grace</td></tr>
<tr><td>Cat</td><td>Orlando</td></tr>
How come the data in the <th> row is formatted differently from that in the <tr> rows?
1. In the Head of new.html, add a reference explaining what kind of code you are
adding to the page:
<style type="text/css"></style>
background-color: #a1a9b5;
font-size: 100%;
color: black;
3. Now, add a style to the different parts of the table and then test it out:
table {
background-color: #baeec2;
text-align: center;
tr {
font-size: 80%;
4. Inside the HTML, tag one element of the table as special, and attach a style to that
tag:
<tr><td>Cat</td><td><div id="favorite">Grace</div></td></tr>
#favorite {
text-decoration: blink;
Your page worked fine in the browser, but in pages made for real use on the web, it is a
good idea to put more information at the top of the file to tell the browser about the file and
how to read it. One of the things you should detail is what web page standards you are
using. PowerSchool’s login page has this meta code that tells search engines—like Google,
Yahoo, and Bing—what your page is about so that they can be properly indexed, but most
of the internal pages do not.
Activity 4 – Meta-morphosing
In this activity, you will learn about the information in the head of a PowerSchool web page.
1. The first line is a comment that lists what version of HTML standards the page uses;
put it into your file at the very top, before the first HTML tag:
<!--DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"-->
2. In PowerSchool you don’t want search machines to try to index your site, so add a
meta tag to tell the robots to go away, and another one to handle mobile devices:
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width,user-scalable=no" />
3. A normal page would have meta tags describing the site content to help search
engines (this is from the PowerSchool University Site):
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="pragma" content="no-cache">
The first tag tells the browser what character set you are using so that it can read the page
accurately. The next tag tells the browser not to cache the page, so that the user will see
the new version of the page, not the one they got last time they visited the site. The third
tag details who the owner or author of the page is, and the fourth provides suggested
keywords for search engines to use. The keywords are often longer than that, and most of
the time there is also a meta tag to describe the site content, also for the use of search
engines.
[wc:admin_header_frame] wildcard Inserts into page the HTML that builds the
header frame for PowerSchool Admin pages
[x:changeschoolpopup] Xcode Builds the Change School menu
(studentname) tag Inserts the name of the current student
You will not see these tags if you look at the source of a rendered PowerSchool page. On
the rendered page, the server has already turned the tags into code and data. In order to
customize a page, you need to work from an un-rendered source. There are two primary
ways to get an un-rendered page from PowerSchool. One is to navigate to the page you
want, being sure to get just the page, not the page and the frame, then replace any
information in the web address that specifies student or school data with the letter "r." The
other is to get the page from PowerSchool’s web-root directly.
1. Open your web browser and log in to your assigned PowerSchool server with your
assigned user ID and password
3. Click on the center frame and choose to see only that frame (how you will do this
depends upon the browser you are using)
4. In the address bar, delete ?frn=xxxxxx after .html and replace it with r; then press
Enter
How many wildcard tags are there? How many xcodes? How many other tags?
5. Select the code from the Original Page panel and copy it into a file in your text editor
parameters of the page you want. Usually, you decide what information you want, work out
how to get it, and then modify a page to hold that information.
For example, how many times a day does someone in your office need to find a student?
That simple need can be complicated to fulfill, given rotating schedules and varying days.
Wouldn’t it be great if PowerSchool could tell your office where a student was during any
part of the school day?
You are going to make a page that holds this information. The technology that gets that
data and puts it into a page for you (T list-SQL) is covered in another class, but you will
take that kernel of PowerSchool code and nest it in a new PowerSchool page using the
information you learned in this class. After you learn SQL queries, you can take Creating
Dynamic Pages and learn how to make your own T list-SQL.
Customizing PowerSchool is often about reusing or repurposing existing functions and
adding a twist. With this activity, you will start down the path to making your own
customizations.
2. Insert a title so that “Where is ‘Student Name’?” appears at the top of the window
3. Test to find out what the wildcard commonscripts and the CSS link do
4. Add in the table beginning and end tags in addition to the tags for the first row
6. Save the file, upload it to your folder on the server (it’s the one that matches your
number) and test it out
What makes the row of dots? How can you find out?
Extension Activity
To access the page you just made, add a link to that page at the top of the outer frame of
the student pages. That main menu of links to student pages is provided by more2.html.
1. Open the file more2xx.html from the activities folder for this class and immediately
save it to your desktop, replacing the xx with your assigned number
2. Add a link, separated by a break tag, below the link to the Quick Lookup page
4. While you are in the code of the page, check out how the code works, especially all
of the if tags
What tricks must you do to get to the version of the page in your folder?
Summary
• A good web page is built using the DOM hierarchy, which uses a combination of
HTML, CSS, and Javascript
• PowerSchool pages are complicated because they use a combination of 4D and Java
to dynamically build pages, as well as wildcards, xcodes, and other tags
• Use your knowledge of web technologies (HTML, CSS, Javascript) and PowerSchool
pages to add useful information to pages
Basic JavaScript
This class will explore the scripting language of JavaScript. Learning a new programming
language is similar to learning a new spoken language. First you must understand the
pieces of the language, such as nouns, verbs, and adjectives. The same is true for
JavaScript. While you will not need to learn nouns, verbs, and adjectives, you will need to
learn about things such as variables, functions, and events.
This class will provide a basic knowledge of what JavaScript is, and some of the pieces that
make up the code. Because of time limitations, this course cannot possibly cover all the
pieces that make up JavaScript. Instead, the material presented will provide enough
information for you to begin to understand what existing scripts do, make modifications to
these scripts, and write small scripts of your own.
By the end of the course, the participant will be able to:
• Explain what JavaScript is and how it is used
• Define common terms and explain basic syntax
• Reuse some of the JavaScript built into PowerSchool
• Implement new strategies for validating data
JavaScript can be included in the HTML file or be an external file that is referenced in the
HTML code. The HTML tag that indicates JavaScript is the <script> tag. The type of script is
indicated by the type= statement which looks like this:
<script type=”text/javascript”>
This script tells the browser that everything until the </script> should be treated as
JavaScript. The script may be included in either the head or the body of the page, but it is
generally best practice to include all scripting in the head.
You may notice that PowerSchool uses <script language=”javascript”> to indicate a script.
While this method will work, it has been deprecated, and the best practice is to use the
“type=” statement.
For scripts that are external, the src= statement is used. This generally points to a .js file
on the web server, such as <script type=”text/javascript”
src=”/admin/javascript/studentcopyAddress.js”>. This line would tell the browser to load
the file specified as JavaScript.
The small bug icon will open and close the Firebug window.
Variables Defined
One of the most important pieces of any script is the variable. Variables are containers used
to store values. This aspect of JavaScript allows the values to be stored and passed
throughout the script by assigning a memory space for the variable. Variables are initialized
using commands such as “var,” used to define a variable, or “const,” used to define a
constant.
The names of the variables are made up of alphanumeric characters and the underscore.
While the variable name can contain a number, it may not start with a number. The names
are also case-sensitive, for example, MyName is different from myname. In JavaScript, it is
important to pay close attention to names of objects, as a simple typing error can cause
unexpected results.
The lifetime of a variable is another important aspect of writing JavaScript. The lifetime of a
variable is dependent on where it is defined. When a variable is defined inside a function,
the lifetime of that variable is the same as the lifetime of the function. Once the function
has ended, the variable and its data are destroyed. These variables are referred to as local
variables.
If a variable is defined outside a function, that variable will have the same lifetime as the
web page that the script was called from, meaning that as long as the page is open, the
variable will be active. Once the page is closed, the variable and its data are destroyed.
These variables are referred to as global variables.
Variables are stored with an associated data type:
Data Type Explanation
Number Any numeric value
String Characters inside single or double quotes
Boolean True or false
Object Any value associated with an object
Function Value returned by a function
Comparisons
You can do many things with variables, but one of the most common is to compare them.
Some of the most common comparisons are listed in the presentation slides. It is important
to understand that the result of a comparison is Boolean (TRUE or FALSE). For example,
x>y returns the value TRUE if x is greater than y, and returns FALSE if x is less than or
equal to y.
One of the most common places where comparisons are used is in conditionals. Conditionals
are statements that check to see if something is true, then perform an action. One of the
most common conditionals is the “If-Then-Else” statement. These statements are
represented in this format:
if(conditional){some code}
else{some different code}
In this example, “some code” would happen if the conditional statement were true;
otherwise “some different code” would happen. The conditional part of the statement is
most commonly a comparison statement.
Another common task used with variables is operations and assignments. Operations are
mathematical functions. For example, x+y would add the values of x and y together. A less
obvious, but very common operator is x++, which translates to x=x+1, or x--, which
translates to x=x-1. Assignment is the process of assigning a new value to a variable. The
simplest example is x=y, which sets the value of x to y. It should be noted that x=y is not
the same as asking the question “Does x equal y?” which is written as x==y. Some of the
common assignments used in JavaScript are listed in the presentation slides.
Commenting
Whenever you write code, it is important to include comments. This commenting not only
helps others understand what the function of the code is, but also helps when you need to
go back to your code and make changes. There are two ways to comment in JavaScript.
First you can use “//” which will comment everything until the “return” or end of line. This
works well for one or two lines of comments. For longer commenting, you can use “/*” and
“*/”. This allows for multiple lines of comments. Everything between the “/*” and the “*/” is
considered a comment, no matter how many lines it spans.
Loops
Another basic building block of most code is loops. Two of the most common loops are the
“for” loop and the while loop. While the loops are similar, and may even be used
interchangeably, there are significant differences in the code.
A for loop is generally considered a counting loop. It has a variable that can have any
name; it’s initialized, and then there is a comparison statement that checks the value of the
variable. The loop is then repeated as long as the comparison statement is true. Typically,
the variable is modified during the process. An example of a for loop is:
for (var i=1; i<4; i++) {
alert(“Hello PSU “ + i);
}
This code initializes the variable i, and sets it equal to 1. The comparison statement of i<4
indicates to run the code until the statement is false (i is either equal to or greater than 4).
As discussed earlier, the statement i++ is the same as saying i=i+1, which means each
time the statement is run, the variable i will be incremented by one. The code alert (“Hello
PSU “ + i) will be run three times, once for i=1, once for i=2, and once for i=3. When the
variable i reaches the value of 4, the comparison i<4 is no longer true, and the loop ends.
The other type of loop covered in this class is the while loop. This type of loop simply states
that a section of code should continue to run until the conditional statement is false. The
format of a while loop is:
while(conditional){
some code
}
The code “some code” will repeat over and over again until the conditional statement is
false. The following while loop will produce the same results as the for loop just covered:
var i=1;
while (i<4){
alert(“Hello PSU “+i);
i++;
}
This while loop simply states that, while the variable i is less than 4, generate the alert
specified. With each iteration of the loop, the variable i will be incremented by one. Once i
reaches the value of four, the conditional is no longer true, and the loop ends.
time you may be requested to paint a different color, but you are still performing the
function of painting a room.
This is much like a function in JavaScript. The purpose of a function is simple and concise.
Even though it may pass different values on which to perform the actions, it is still
performing the same actions each time. Multiple values can be passed into a function, but
generally speaking, only one variable can be passed out. Just like variables, the name of the
function must be unique and may contain only alphanumeric characters and the underscore.
The syntax of a function is:
function myFunction () {
“some code”
}
The name of the function in this example is “myFunction.” All of the code contained between
the two curly braces “{}” is considered part of the function. The parentheses are used to
contain the variables passed into the function. In the previous example, there was nothing
inside the parentheses (), indicating nothing is passed into the function. An example of
passing data into a function would be:
function paintRoom(color){
instructions
}
In this example, the variable “color” is passed into the function. This variable can then be
used by the code inside the function.
Calling a function is done by entering the function name in your code. To call the previous
function, you would use the code:
paintRoom(thisColor);
Notice that the name of the variable being passed in is different from the name of the
receiving variable. This is to show that both variables are local. “thisColor” is only available
from within the code that it originated, and the variable “color” is only available in the
function “paintRoom.”
Values may also be passed back from a function. Using the “return” command at the end of
a script causes the value with the return to be passed back out of the function. For
example:
function paintRoom(color){
instructions
return status;
}
This function sends the value “status” back out of the function. To receive the value, the
function is called in a slightly different way.
workStatus=paintRoom(thisColor);
In this example, the valued that is passed back would be received by workStatus.
There are many functions built into JavaScript. These functions allow you to perform
common tasks without creating the code for each one.
javascript:helpwindow('/admin/help/how_to/in_09_home_page.html')
In the next activity we will repurpose this code to be used in another page in PowerSchool.
1. Open the transferinfo.html activity file from the Basic JavaScript Activity folder
2. In the transferinfo.html screen, look for the end of the table that contains the
transfer info
3. Change this line to include a link to the help window, but instead of using a help
page, use the custom select term page that has been loaded for you
The code will look like this, with the changes in bold:
<td colspan="8">Note: This screen <u>may not be used</u> to transfer a
student in or out of school. Click on Functions to find links to those
operations. <br>
<a href="javascript:helpwindow('/admin/termview/termselect.html')">
Click here to view terms</a></td>
4. Save the file as transferinfo##.html, replacing ## with your number, and upload to
the server to the /admin/students folder
5. To test your page, select a student, right-click Transfer Info, and select Open in a
new tab from the contextual menu
1. Open the generaldemographics.html activity file, from the Basic JavaScript Activity
folder
2. In the <head> portion of the file, define a new script by inserting opening and
closing <script> tags
</script>
3. In the script tags, define a new function called checkGradYear, which will receive one
value when called which is the ID of the field
This variable will be called gradYearID and the code looks like this:
function checkGradYear(gradYearID){
}
4. In the function, define the variable gradYearVal as the value of the element that is
passed into gradYearID
This code uses the DOM, which is not covered in this class. Essentially it uses the ID
that is passed into the function to get the value of that element on the page. The
code looks like this:
gradYearVal=document.forms[0].elements[gradYearID].value;
5. After the variable has been defined, test to see if the date entered for graduation
year is valid using an if statement
}
6. In the if statement, create an alert that indicates the Graduation Year is not valid
7. Now add an onChange event handler to the Graduation Year field to run the function
you just created
The finished code should look like this (new code is in bold):
9. To test your page, select a student, right-click Demographics, and select Open in a
new tab from the contextual menu
10. Switch to this tab, and then in the url change generaldemographics.html to
generaldemographics##.html where ## is your number
Summary
Even though we have covered a large amount of material in one class, it only scratches the
surface of JavaScript. While there are many other pieces to use JavaScript, you have
learned many of the basic building blocks. Being familiar with the basics will allow you to
look at JavaScript, navigate the code, and have a general understanding of how it works. As
you work through the code, you will be able to identify variables and constants, and know if
they are global or local. You will also understand the use of functions, and how they break
the code into smaller parts.
After practicing these concepts, you will find that writing your own JavaScript becomes
simpler with time. Starting with small pieces of the larger project that can be broken down
into a function is a great way to start. Soon you will find you have broken the problem into
enough small pieces that you have solved the larger problem.
A Time-Saving Process
As you create the various objects in your report, you need to know whether they are
working the way you expect. The best way to check your work is to work either using two
tabs in one browser window, or in two windows. On one tab or window, build your report; in
the other tab or window, select a student or a group of students and go to the print a report
function for that student or group of students. Then you can move back and forth from your
“create” area to your “test” area, and eliminate a lot of mouse clicking.
Unless you make the text line height equal to or greater than the Default font size,
the lines of your report will overlap vertically. The recommended line height is 2
points larger than the Default font size.
6. Enter 0 for the Left, Top, Right, and Bottom margin fields
The reason to set the margins at 0 is that when you place objects in a report, you
measure either from the left edge (X axis) and top edge (Y axis) of the page or from
the left and top margins. Measuring from the edges of the page is much easier than
measuring from a margin that does not show on the page.
7. Use Landscape page orientation
8. Use the default values for the remaining fields and click Submit
If you have trouble entering this information in the Text field, you can copy and paste
this text; however, you’ll need to delete the hard returns. When the first line has been
added copy and paste that line 35 times, making sure to hit return after each time you
paste.
4. Enter 0 for X or leave blank and 1.20 for Y in the Position fields
5. Enter 12 in the Size field and 18 in the Line Height field
6. Use the default values for the remaining fields, and click Submit
The names of the colors to be used in object reports can be viewed by clicking the
name of the field where color is possible. The names of the available colors are listed
over squares of color; however, clicking the square of the desired color will not select
the color. The color names must be either typed, or copied and pasted in the field.
6. Enter darkred in the Fill Color field
7. Use the default values for the remaining fields and click Submit
8. In the New Object area, click Box
9. Enter White Box in the Object Label field
10. Refer to the Award Certificate example handout in the Appendix, and enter the
correct measurements in the Left, Top, Right, and Bottom fields
11. Enter 4 in the Line Width field
12. Enter white in the Fill Color field
13. Choose 1 from the Layer menu
14. Use the default values for the remaining fields and click Submit
6. Navigate to the Object Reports page and click the name of your report
7. In the New Object area, click Picture
8. Enter Logo in the Object Label field
9. Choose your graphic from the Picture menu
10. Refer to the Award Certificate example handout in the Appendix, and enter the
correct measurements in the Left, Top, Right, and Bottom fields
11. Choose Shrink to Fit – proportional, centered from the Scaling Option menu
12. Choose 1 from the Layer menu
13. Use the default values for the remaining fields and click Submit
23.Use the default values for the remaining fields, and click Submit
24.Create nine more text objects for Students 2–10, using the same setup with only one
exception: in order to move down the page, add 1 inch to the Y coordinate each time
(2, 3, 4, etc.)
25.Check Special on each object except the last one—Student 10
Summary
In this course, you:
• Learned about the elements of object reports
• Created and managed Object Reports, including layout grids, student information
reports, fee receipt, and transcripts
Basic ReportWorks
When you need to generate reports, use the ReportWorks tool. ReportWorks is designed to
give PowerSchool administrative users a drag-and-drop interface for creating custom
reports.
In this class, you will learn to create the following types of reports:
• Mailing labels
• Student lists
• Student schedules
• Form letters
In this basic class, we will not change anything during the rest of this activity but
just observe what and where the preferences are.
8. Note the following: ReportWorks Scheduler Node, IP address of the load balancer,
Number of Concurrent Report Jobs, Completed Report Retention Period, and
ReportWorks Application Timeout
ReportWorks project developers need permission to use the ReportWorks report creation
application. Give permission in the user’s Security Settings.
Getting Started
To access ReportWorks:
1. On the Start Page, click ReportWorks or click Reports > Setup > ReportWorks
2. Click Launch
Your username and password are the same as the username/password for logging
into PowerSchool. The only case where this is not true is if the user is also set up to
access PowerTeacher Administrator, and in PowerTeacher Administrator the user
changes the username/password. When this occurs, the user needs to use the PT
Admin username/password to access ReportWorks.
3. Enter your username and password, and click Login
When you log on, you have three choices on the ReportWorks Start Page: create a
report project from a template, start a new report project from scratch, or open an
existing report project.
You will see several data objects arranged on the report project's grid, as in the
screenshot below:
An @ sign at the beginning and end of a phrase indicates a data object. The text
between @ signs is the field name and its table location in this order:
parent.child.fieldname; for example: @Student.Enrollment.School_Name@.
6. To get more information about how the report is constructed, click Tools >
Inspector, or click the Inspector icon on the tool bar
7. In the lower left corner of the table in the layout, click Table Group
The Table Group Inspector lists the two levels of the report project. The outer level is
the student's general information, while the inner level is the student's schedule
information.
8. Click the Class_Enrollments level in the Inspector to see how the student's
schedule information is arranged:
9. Also in the lower left corner, notice that the author of this report has incorporated a
date stamp; click the date stamp to see in the Text Inspector when it was created
Creating Labels
Labels are about the simplest, most straightforward report in ReportWorks. The dimensions
of the labels are already set; just choose which brand and label number you want, then
arrange the text in the labels.
3. Click the Details tab and give your project a title that includes your initials, such as
Student Mailing Labels_gb
4. Give your project a description, such as Avery 5160 labels
5. For the Data Set, click Student: Basic
6. Click Scope to set Boundaries (filters) and Runtime Controls (choices of groups of
students)
7. Click Boundaries
8. In the Data Set panel, click Student to expand the data set
9. Click Demographic to expand that set
10. Drag Student_enrollment_status into the main part of the page
11. Make sure the operator in the Add Filter box is set at =
12. Type 0 in the field after the operator, and click OK
13. Click Layout
14. On the Layout page, choose Label, then click OK
15. Click one of the labels, and on the right of the ReportWorks toolbar, click to open
the Inspector
16. In the Labels Inspector, under Avery Product Number, choose 5160: Address
Labels
17. Double-click inside the first label so that it has a light-red border around it
18. In the Data Set at the bottom of the page, click Contact to expand that set of data
objects
19. Drag the FirstLast_Name data object to the first label
20. Move your cursor to the bottom left corner of the FirstLast_Name data object and
resize that object to match the size of two labels
21. In the Text Inspector, click after the FirstLast_Name data object
22. Press Enter to start a new line
23. Drag the Mailing_Street data object into the FirstLast_Name data object
24. In the Text Inspector, click after the Mailing_Street data object
25. Press Enter to start a new line
26. Drag the Mailing_City data object into the FirstLast_Name data object
27. In the Text Inspector, click after the Mailing_City data object and type a comma and
a space
28. Drag the Mailing_State data object into the FirstLast_Name data object
29. In the Text Inspector, click after the Mailing_State data object and type a space
30. Drag the Mailing_Zip data object into the FirstLast_Name data object
31. Click Preview
Click the Tools menu and choose the Font Panel. Change the font of the label text
to be 10 point.
7. Click Preview to see your results
8. Click Edit to close the preview
11. In the Data Set panel, click Demographic to expand the set, and drag Ethnicity to
the third cell of the table
12. Drag Gender to the fourth cell of the table
13. Resize the placeholder, so that it takes up the entire page
14. Click Preview to see a sample list of students
15. Click Edit to close the preview
Remember, the full data object name might be @Demographic.Ethnicity@, but you
have to make the column only wide enough to show one letter.
3. Now put the school name at the top of each page
7. Click the Tools menu and choose the Font Panel or click the on the toolbar
8. Select the Student Header text and use the Font Panel to change the font size to 18
bold
9. Resize the placeholder to be tall enough for the text and as wide as the table
10. Use the Text Inspector to center align the text in the placeholder
11. Click the outer border of the header so that it has a light-red line around it
12. Click the Paint/Fill Inspector (paint bucket), and click Fill
13. Click the black square, and choose a different color
14. Click Preview to see your progress
15. Click Edit to close the preview
Use the Paint/Fill Inspector to give the odd-numbered rows a different color.
7. Click Preview to see how the new colors look
8. Click Edit to close the preview
After you choose the schools, the Security Groups function becomes active.
7. Select the security groups who need access to the report and click the arrow pointing
to the Published Security Groups box
8. Click Publish
Your report displays in whatever format was chosen at the time the report was
published in ReportWorks.
3. Click Scope and repeat steps 7–14 in Activity 4, except for the layout select Form
Letter, and click OK
4. In your PSU activity files, find the file named Permission_Slip.pdf
5. Drag the Permission Slip file to the Layout window
6. Navigate to the Shapes in the menu bar and select Send to Back.
NOTE: the Student Table structure must be in the front, or on top, before
dragging the data objects. You should not see “student.” in front of
contact.full_name. This would be our indicator that the Student Structure is not
in the proper order.
7. In the Image Import box, click Image Shape
8. Drag FirstLast_Name to the line that reads “To the parents of _______”
9. In the first column of the Data Set, click Date and drag Date to the line that reads
“Date: ______”
10. Click the Tools menu, and then click Format Panel
11. Click Mar 8 to change the date format
12. Change the date format to MM DD, YYYY
13. Click Preview to see an example of your work
14. Click Edit to close the preview
If possible, sign onto your school server and ReportWorks to import that project.
Export Import
1. Log on to ReportWorks 1. Log on to ReportWorks
2. Select project 2. File>Import Project
3. File>Export Current Project 3. Browse to project
4. Selection destination 4. Select File
5. Click Export 5. Click Import
2. You may have to click Show, but navigate to the Search tab in Help and find
Boundary Filer Examples
3. Sign into PowerSource and find the ReportWorks tab
4. From PowerSource, identify the ReportWorks Labs section
Summary
In this course, you:
• Created and modified mailing labels, student lists, student schedules, and form
letters using ReportWorks
• Accessed the Help Section of ReportWorks as well as PowerSource
Common Terms
To accomplish each of these tasks, you need to understand the common scheduling terms
listed below.
Term Example
Six periods in your day, plus any other bonus periods such as
Period
Homeroom, Lunch, or after school period
Two days in your schedule, every course meets for one or two of
Day
those days
Term Courses may last a quarter, a semester, or a full year
Course Algebra or World History
Section Algebra class, period 1 in room 345 taught by Mrs. Smith
Singleton Only one section of Jazz Band will be offered
Doubleton Only two sections of Advanced Writing will be offered
Multi-Section Course Six sections of PE 9 will be offered
Constraint The chorus teacher is only available in the morning
Term Example
Prescheduled Marching Band must be offered last period
Balance All sections of World History have between 20–25 students
Marching Band and Yearbook are only offered last period, so
Conflict
Johnny can’t take both of these classes
• Traditional Schedule
• Block Schedule
• Rotated Schedule
No matter the type of schedule you choose, each one follows the same basic construction.
Think of your schedule construction as a cube. The height of your cube depends on the
number of periods. The width of your cube depends on the number of days in your cycle.
The depth of your cube depends on the number of terms in the school year.
Last year, the high school offered a course titled “Introduction to Web Design.” However, it
is not being offered this year. List 3 possible reasons why the course is not being offered.
1. _____________________________________________________________
2. _____________________________________________________________
3. _____________________________________________________________
3. A ___________________________ contains courses that are the same all year, but
meet every other day.
After adding the new courses, you must advertise the curriculum to build interest and
acquire feedback from students and parents. Four different ways to let the students know
their options are:
• Put a link on the district website
• Distribute request forms and course catalogs during homeroom
• Publish information for accessing Parent Access
• Have students meet with counselors to discuss course choices
Students need to request each course they want to take. Completing the request form isn’t
a guarantee that the student will be enrolled in a particular course, but if a request isn’t
made, it is a guarantee that he won’t be.
Several methods are available to collect course requests. Students can either complete their
request forms in Parent Access, or fill out paper copies of the request forms. If they choose
the latter, the counselors will enter the requests into PowerSchool. The last option is for the
students and counselors to perform the process together.
Distribute course
request forms and
course catalogs during
Homeroom
Counselors meet
individually with each
student to determine
course requests and
then enter the course
requests into
PowerSchool
A. How many sections of AP American Lit and Comp A should you offer? Why? Which
period(s) should this course be offered? Why?
______________________________________________________________
B. How many sections of English 10A should you offer? Why? Which period(s) should
this course be offered? Why?
______________________________________________________________
______________________________________________________________
Use the following Potential Conflicts table to answer the questions below.
6010 Marketing
2065 AP Calc B
2060 AP Calc A
1070 Yearbook
1040 AP Am Lit & Comp A 0 10 2 0 4 5 5 0 3 1
1045 AP Am Lit & Comp B 10 0 2 0 4 5 5 0 3 1
1050 Creative Writing 2 2 0 1 2 0 0 0 0 0
1065 Technical English 0 0 1 0 1 0 0 2 0 0
1070 Yearbook 4 4 2 1 0 0 0 0 2 0
2060 AP Calc A 5 5 0 0 0 0 5 0 0 1
2065 AP Calc B 5 5 0 0 0 5 0 0 0 1
6010 Marketing 0 0 0 2 0 0 0 0 1 1
7040 Jazz Band 3 3 0 0 2 0 0 1 0 2
7050 Swing Choir 1 1 0 0 0 1 1 1 2 0
1. How many students want to participate in both Jazz Band and Swing Choir?
______________________________________________________________
2. Jenny wants to continue being a member of the Yearbook staff. For next year, she
requested the AP Am Lit & Comp class. Might this be a problem for her schedule?
Why or why not?
______________________________________________________________
3. Jenny also requested both AP Calculus and Marketing. Might this be a problem with
her schedule? Why or why not?
______________________________________________________________
Teacher
Teacher
Teacher
Teacher
Teacher
Adams
Turner
Brown
Smith
TEAM
TEAM
TEAM
TEAM
TEAM
1. On the Start Page, click PowerScheduler > Constraints > Pre-Schedule > New
7. Click Submit
1. On the Start Page, click Reports > Setup > Report Cards > New
4. Click Submit
9. Click Submit
10. Select the report to be available to only users at (your school) and click Submit
13. Choose your template from the menu and click Submit
14. Click Refresh located next to My Jobs and then click View
Summary
In this course, you learned to:
• Determine what courses are needed
• Add new courses
• Use PowerScheduler to avoid course conflicts
• Use PowerScheduler to set course constraints
• Use SQL to write basic queries with filters and simple joins of two tables
2. If you want to make a list of letter grades, student names, genders, and grade levels
from one school and one term, what fields do you need to pull from the database?
Answer: _________________________________________________________
3. Examine the database diagram in the slide shown. What is the relationship between the
tables as pictured in the diagram?
Answer: _________________________________________________________
table name, separated by a period. This syntax helps the query to scan the correct table for
the field names containing information you specified.
2. Add gender and grade level to the query by putting their field names in the SELECT
clause:
SELECT lastfirst, gender, grade_level
FROM students
WHERE schoolid=100
Click Execute Statement. What did the query return?
__________________________________________________________
3. Join the Stored Grades table to the query by adding in a JOIN statement and an ON
statement:
SELECT students.lastfirst, students.gender, students.grade_level
FROM students
JOIN storedgrades
ON students.id=storedgrades.studentid
WHERE students.schoolid=100
The table name goes after the JOIN and the fields to use for the join go after the ON.
You also have to specify which tables each field comes from when making a join.
4. Add the course_name, grade, and termid fields from the Stored Grades table to the
SELECT statement. Also, add a WHERE filter for schoolid and termid, and use the
ORDER BY command to sort by last name:
SELECT students.lastfirst, students.gender, students.grade_level,
storedgrades.course_name, storedgrades.grade, storedgrades.termid
FROM students
JOIN storedgrades
ON students.id=storedgrades.studentid
WHERE students.schoolid=100
AND storedgrades.termid>=2000
ORDER BY students.lastfirst
Typing every field name preceded by its table name can get tedious, especially when the
query is long and complex. To shorten your query, use an alias. To make an alias, type the
letter or letters you want to stand for the table name after the official name of the table. For
example, if you want the letter "s" to stand for the Students table, introduce "s" as the alias
in the FROM statement like this: FROM students s.
You can also create an alias to rename columns in the output data.
5. To make the above statement and its output easier to read, make aliases for the
tables and rename the grade field from the Stored Grades table as "Letter Grade"
SELECT s.lastfirst, s.gender, s.grade_level, sg.grade "Letter Grade",
sg.termid
FROM students s
JOIN storedgrades sg
ON s.id=sg.studentid
WHERE s.schoolid=100
AND sg.termid>2000
ORDER BY s.lastfirst
6. To save this query, use the File menu and choose Save. Give the query a logical
name. To begin a new query, clear the command window, or choose File > New,
and select SQL file.
7. For a grant proposal, you need to generate a distribution of teacher demographic
data by school. Start with a query of the Teachers table. Use aliases for the table
names.
SELECT t.lastfirst, t.ethnicity
FROM teachers t
8. Join the Schools table to your query, matching “schoolid” from the Teachers table to
“school_number” from the Schools table.
SELECT t.lastfirst, t.ethnicity, s.name
FROM teachers t
JOIN schools s
ON t.schoolid=s.school_number
9. You need a count of students by enrollment status and school. Start by leaving the
SELECT clause vague, and joining together the tables you need.
SELECT s.lastfirst
FROM schools sc
JOIN students s
ON s.schoolid=sc.school_number
10. The GROUP BY clause is used in collaboration with the SELECT statement to arrange
identical data into groups. It is also used in conjunction with such group functions as
include AVG, MAX, MIN, SUM, and COUNT. The GROUP BY clause follows the WHERE
clause in a SELECT statement and precedes the ORDER BY clause, if used. GROUP BY
differs from ORDER BY, which places the SELECT results in the proper sort order.
Since you want a count by two grouping factors, add in a GROUP BY clause and remove
the s.lastfirst query. This will return results grouping each school by name and the count
of active students enrolled.
11. Specify the data to display. Add a count, and include the fields in the GROUP BY
clause. Add an ORDER BY clause to sort by enroll_status values.
What does the resulting data look like? How does it change if you reverse the order of
the fields in the GROUP BY?
________________________________________________________________
12. Click Save in the Results window to save the data output to your desktop. Name the
file Student Count. Locate the file and change the file extension to .txt. Open the
file with your spreadsheet program for further examination.
PowerViews
PowerViews are what PowerSchool calls “views.” They aren’t actual tables but the result of
complex SQL queries designed by developers to make querying and reporting easier. Views
are based on pre-built SQL queries that are run automatically by the database engine. They
are dynamic and change as the tables they are built from change. PowerViews combine the
most requested data elements into a single table view. This pre-queried data gives you easy
access to information without having to create complex SQL queries.
You can query PowerViews as you would a table, but their names are long and strange. You
can find information on the different PowerViews and what data they contain in the
PowerViews Data Dictionary. You can write queries of PowerViews just as if they were
regular tables, except that you need to put ps. in front of the name.
Some data is more accessible in PowerViews than in the regular tables. This is particularly
true of data in the Gen table or Custom field data. Information about using PowerViews to
get data from custom fields is covered in the Advanced Query class.
There are 2 types of SQL JOINs – INNER JOINs and OUTER JOINs. An INNER JOIN is the
most common join, and represents the default join-type. If you don't put INNER or OUTER
keywords in front of the SQL JOIN keyword, then INNER JOIN is used.
The LEFT OUTER JOIN selects all the rows from the first table listed after the FROM clause,
no matter if they have matches in the second table.
LEFT and RIGHT JOINs are explained in greater detail in the Advanced SQL course.
2. You could also fill in any special programs by joining in the Special Programs
Enrollment PowerView. This is done using a Left Outer Join.
SELECT s.lastfirst, s.gender, s.grade_level, d.ethnicity_name,
sp.program_name, sg.grade "Letter Grade", sg.termid
FROM students s
JOIN storedgrades sg
ON s.id=sg.studentid
JOIN ps.pssis_student_demographics d
ON d.student_number=s.id
LEFT OUTER JOIN ps.pssis_special_pgm_enrollments sp
ON sp.student_number=s.id
WHERE s.schoolid=100
AND sg.termid>=2000
ORDER BY s.lastfirst
Summary
Relational databases like PowerSchool are made up of independent tables that can be linked
together if you understand their relationships. Linking tables and retrieving data from them
requires the use of a tool called SQL. SQL queries have three basic parts—SELECT (the data
you want), FROM (the tables you use) and WHERE (the filters and conditions). More
complex queries can extract data from multiple tables and perform functions on the data.
You can add PowerViews to your query to help you access difficult-to-reach data.
FusionChart Features
The charts in the Dashboard use a technology developed by InfoSoft called FusionCharts.
By leveraging the power of FusionCharts, PowerSchool can offer a solution for displaying
data in a graphical format. The technology is made possible by combining Adobe Flash files,
XML data, HTML, and JavaScript to create a single screen, which displays data from various
locations. This data can be displayed in various formats, such as bar and pie charts, as well
as line graphs.
1. Log into your assigned PowerSchool server with your username and password
2. Click Dashboard
4. Close a widget by clicking the X in the top right corner of the widget
Notice that as you close each widget, it populates in the Add Widget menu.
The first pieces of a TList SQL query are the opening and closing tlist_sql tags. These tags
enclose the entire query, instructing the server that everything in between them is part of
the query. The next piece is actually the second line, which is the FROM statement. It is
generally best practice to start by defining the FROM statement, as pieces of that statement
may be used in the SELECT statement.
In the example above, you will see that the table being queried is the StoredGrades table.
The sg after the table name defines an alias for this table to be used in the rest of the
query. This allows you to type sg instead of the entire table name, StoredGrades.
Once you have defined the FROM statement, then you can write the SELECT statement. In
this example, there are two pieces of data that will be requested, the field Grade from the
StoredGrades table, and a count. First, notice that the alias that was defined for the table
StoredGrades is used in the SELECT sg.Grade statement. This tells the server that you are
requesting the field Grade from the table StoredGrades, which has an alias of sg, and that
LetterGrade is to be used as an alias for this field. The count statement requests a count of
the grades, which is assigned an alias of GradeCount.
The next statement is the WHERE clause. While a WHERE clause is not a required part of
the SQL query, it is generally beneficial to limit the amount of data returned. In this
example, the first limiting field is TermID. The WHERE statement requests only records
where the TermID is greater than or equal to the current year ID multiplied by 100. The
reason it is multiplied by 100 is that the tag ~(curyearid) returns the two-digit number of
the current year, (i.e. 17), and the TermID is stored as a four-digit number, (i.e. 1700).
The second piece of the WHERE clause limits the grades to only those that belong to the
current school. Again a system tag is used, ~(curschoolid), to request the current school ID,
which is then compared to the field SchoolID in the StoredGrades table. Finally, the last
piece of the WHERE clause eliminates any grades that are null or blank.
The last statement in the TList SQL query is the GROUP BY statement. This statement
requests that the count of grades is grouped by the field Grade in the StoredGrades table.
This is a very important piece for the formatting of data for a FusionChart. If this is not
included, the data won’t be in a summary format for the chart.
There are a few “gotchas” that you must be aware of when using tlist_sql statements. First,
there is a 32k limit on each row returned but not a limit on all the data returned. Second,
one tlist_sql tag cannot be embedded inside another tlist_sql tag. It is possible to have
complex select statements that include joins, but be aware that this will increase the load
time of the page. Finally, it is important to always test your SQL queries first in a program
such as SQL Commander. Writing a tlist_sql statement into a webpage without testing can
cause your server to crash if the SQL statement is malformed.
1. Which tables and fields are needed to return a distribution of all stored grades for the
current year (termID>=1800) in the current school (SchoolID=100)?
____________________________________________________________
2.Open SQL Developer and create the SQL query to return a distribution of all stored
grades for the current year (termID>=1900) in the current school (SchoolID=100)
The final query will be:
SELECT sg.Grade LetterGrade, COUNT(*) GradeCount
FROM dbo.StoredGrades sg
INNER JOIN dbo.Students s
ON sg.StudentID=s.ID AND s.Enroll_Status=0 AND s.SchoolID=100
WHERE sg.TermID>=1900 AND sg.Grade IS NOT NULL
GROUP BY sg.Grade
Check to make sure you get the correct results. You should have each grade listed
with the number of occurrences.
XML Basics
XML stands for extensible markup language, which is a common way to share data and
formatting across the web. Unlike HTML, which has a predefined set of formatting codes,
XML is self-defined. This means that the receiving end defines the formatting.
In the case of FusionCharts, there are many different formatting options that are available;
all defined by Adobe, such as color of the chart, type of chart, etc. All of this information,
along with the actual data, is sent in the XML formatted file. This file is made of elements,
attributes, and values. An element has an attribute, which is set to a value.
Some of the formatting fields used in formatting a FusionChart are defined below.
Attribute Explanation
Caption Title at the top of the chart
Querying the entire data set does not return the desired results. Thus, the data must be
formatted as a summary. In the example of grade distributions, the entire list of grades will
not produce the desired graph. Instead, the SQL statements COUNT and GROUP BY are
used to return the number of A’s, the number of B’s, etc. Those totals can be displayed
easily in a bar chart.
A PowerSchool server responds to a TList-SQL command by returning rows. The row
template sets the format. When formatting the row template for use in FusionCharts, the
set element must include two attributes: the set name and the value. Each row returned
produces a point on a line graph or a bar on a bar chart.
Since XML is used to pass formatting and data to non-browser applications, viewing the XML
file in Safari, Firefox, or Explorer returns a blank page. There is no HTML formatting so the
browser sees nothing to display.
Viewing the source of an XML file reveals the actual data. Remember, this file is not
intended to be viewed in a browser, but rather to be passed to FusionCharts to produce a
graph.
FusionCharts provide many chart attributes that can be modified. As listing these attributes
is beyond the scope of this class, you can find them at http://www.fusioncharts.com/docs.
Examples of some of the attributes are color, titles, number formatting, and background
images.
2. Type the opening and closing graph tags and the graph parameters using the code:
<graph caption='' subCaption='' bgcolor='f6f6f6'
yaxisname='Number of Grades' xaxisname='Grades'
decimalPrecision='0' formatNumberScale='0'
canvasBorderThickness='1'>
</graph>
3. Copy and paste the SQL statement from the previous exercise after the graph
attributes but before the closing graph tag </graph>
5. Define the format for the datasets that will be returned from the query and make
sure you replace the year and school with system tags
Attribute Explanation
WIDTH & HEIGHT Width and height of the entire canvas
chartWidth & chartHeight Width and height of the chart
VALUE= & src= Defines the kind of chart by defining the swf file
bgcolor Defines the background color of the canvas
dataURL Location of the data file (XML file)
2. Replace “datasourcegoeshere” in both the object and embed to point to the XML file
you created in the previous activity, which is gradeDistAll##.xml, replacing “##”
with your number
3. Since the template is designed for a 2D Bar chart, there is nothing else to define
This is the process for creating a single chart in PowerSchool that is not intended to be part
of the Dashboard. For charts to be included in the Dashboard, there is a different template
that formats the chart to be viewed as a widget in the Dashboard, which will be covered
next.
You can replace the old file gradeDistAll.html with this one.
6. Open this file in a browser to see the results
You will see that it is not shown in a dashboard, but will look like a widget. The Close
button will not work since the JavaScript to support it is not included yet.
PowerSchool Dashboards
The built-in PowerSchool Dashboard is constructed of “spaces.” Each space is a cell in an
HTML table, which holds a widget. There are several steps to adding widgets.
First, modify the variable MAX_PORTLETS in the JavaScript. This sets the maximum number
of portlets or widgets that a page holds. Next, you will need to modify the JavaScript that
populates the Dashboard. When a user visits the Dashboard for the first time, all the
widgets are loaded. Then, each widget that is closed is stored in a cookie. When the user
returns to the page containing the widget, the cookie is referred to in determining what
widgets to load, and which ones to display in the Add Widget menu. If you do not load all
widgets the first time someone visits the page, they won’t appear in the Add Widget menu.
Add a new widget by copying one section of the populateDashboard function, then
modifying it for your new widget, as shown in the presentation slides.
Code Explanation
portlets[‘school- Defines the key of the portlet or position in the
enrollment-trend’] array
createPortletObject (…) Calls the function to create the widget with the
location of the widget HTML file in parentheses
True Determines if the widgets is displayed the first
time the Dashboard is viewed by a user
‘School Enrollment Trend’ Name of the widget that shows up as a title at the
top of the widget
‘school-enrollment-trend’ This is the key, and must match the key used in
the portlets[] statement
false Determines if the portlet should be refreshed
automatically
Last, you will need to create new spaces in the index.html file for the table to hold the new
widgets. You may want to include extra spaces for future widgets. Any extra spaces
included are blank if no widget is loaded. When assigning names to each space, notice that
the odd numbers are in the first table and the even numbers are in the second.
1. Open the “dashboard.js” file in your PSU activities file and save it as
dashboard##.js replacing “##” with your number from class
2. Modify the MAX_PORTLETS to make sure you have enough room for your new
widgets (suggested value 18)
5. Open the index.html file from your PSU activities file (not the completed file) and
save it as index##.html
6. Modify the table that holds the widgets to match the MAX_PORTLETS value you
entered in step 2
Since you entered 18, you need to add portlet_13 to portlet_18. Notice that the odd
portlets go in the first table, and the even portlets go in the second table. The first
portlet code looks like this:
<tr><td><span id="portlet_13"></td></tr>
<tr><td> </td></tr>
Repeat this code for the 5 additional portlets.
8. Navigate to the school Dashboard and once it loads, insert your number after index
(i.e. index12.html) to load your version
2. Examine the code and look for what is different than what you did in the
gradeDistAll.xml file
You will see that the tlist_sql statement is different. This new statement does three
additional things:
a. Groups by each letter grade (i.e., A now includes A+, A, and A-)
b. The D’s are shown in yellow and the F’s are shown in red
3. Open the gradeDist.html file from the Extra Files folder and view it in a text editor
4. Notice how the gpv credittype is used in the chart title, as well as being passed to
the XML file
5. Open the dashboard.js file from the Extra Files folder, and view in a text editor
6. Notice this is where the gpv credittype is created and passed to the other pages
Review
FusionCharts is a great way to graphically display data in PowerSchool. While
implementation is relatively simple, learning the correct use of TListSQL to get the desired
results takes some time. It is best to start with simple queries, and to test them first in SQL
Commander to make sure you get the desired results. Once you have the hang of using the
COUNT function, you will find creating your data set is simple.
Once you have the desired TList SQL statement, incorporating it into XML is very quick.
Deciding on the style of chart that best displays your data can be a little tougher. This just
takes trial and error. Explore the FusionCharts website to get ideas on how to use the
various charts and graphs.
After creating the graphs you want, you can decide which ones fit well in the Dashboard.
Remember that you must make room for all your widgets to load when modifying the
Dashboard.
Browse Students
Using the links on the Browse Students page, you can search for students by:
You can also see a list of students who were selected in the previous search by clicking
Current Selection.
If a student is the only one with the last name you entered, the student pages for that
student appear. If the student has the same last name as other students in the school, the
Student Selection page appears showing the list of students who match your search criteria.
Each student in your system is assigned a unique student number. You can search for a
student using this number. To search by student number, type the student number in the
Search Students field on the PowerSchool Start Page; then press Enter.
If you enter any letters in the Search Students field, PowerSchool automatically searches
last names; if you enter numbers, PowerSchool searches student numbers.
1. Record the number of students that are in the highest grade _____
2. Record the number of students with a last name beginning with B _____
2. Click the first student in the list, and view the Quick Lookup student page
4. Click Activities under Enrollment on the student pages menu to see which sports
and clubs the student is involved in
3. Click Log Entries under Administration to see if any discipline records exist for this
student
Search Commands
In addition to basic searches, you can use search commands to search student fields and
find students who match specific criteria. To see a list of the student fields you can use in
search commands, click View Field List on the Start Page. The field list shows all of the
student fields in PowerSchool, including any custom fields that your district/school creates.
These fields are hyperlinks that you can click to insert in the search box automatically.
Insert a field name in a search query by placing your cursor in the appropriate location in
the query, clicking View Field List, and clicking the field name. Insert fields from any page
that has a link to the field list, like the List Students, Quick Export, and Export Using
Template pages.
Learn more about searching by clicking How to Search under Search Students.
Search Prefixes
A search prefix adjusts how the search is carried out. When you use a search prefix on the
Student Selection page to refine or add to your search results, you will always follow the
prefix by a search term.
Include inactive students. The “/” may be placed AFTER (not before) a "+"
/
or "&" prefix
& Search within results. The "&" must come BEFORE any "/" prefix
+ Add results of new search. The "+" must come BEFORE any "/" prefix
When you perform searches, PowerSchool only searches active student records in your
school.
Occasionally, you may need to search for students who pre-registered for next year,
transferred or dropped out of school midyear, or graduated early. Students in any one of
these classifications are inactive. To access both active and inactive student records, begin
your search command with a forward slash (/).
For example, to find all active and inactive students with the last name Ramirez, enter
/last_name=ramirez in the Search Students field and press Enter. Use one of the following
enrollment statuses to limit the search to a specific group of students, such as preregistered
students only.
PowerSchool Enrollment Status Codes
Code Description Code Description
-1 Preregistered 2 Transferred out
0 Active 3 Graduated
1 Inactive 4 Imported historical
Compound Searches
You can search the database using multiple search commands simultaneously. When you
enter more than one search command in the Search Students field, separate the search
commands with a semicolon (;). A semicolon between search commands means “and.”
For example, to find all the students in Mr. Bowe’s homeroom class who live on Maple Drive,
enter home_room=bowe;street contains maple in the Search Students field and press
Enter.
Remember—you can either type the field name or open the field list and click the
field name first_name.
2. Press Enter
G. Which students with a last name of Adams or Wilson have Medical alerts? Who is allergic
to bee stings?
4. Click the Next record/Previous record arrows at the top left under Switch Student
to scan the content of the Medical alerts and discover who has a bee-sting allergy
2. Press Enter
3. On the Student Selection page, delete soccer# in the Search window and enter
+football#
4. Press Enter
Search Codes
A search code is a special type of search command that includes a calculation as part of the
search. Search codes start with an asterisk (*). These codes are not listed in the field list.
Enter search codes as you would any search command in the Search Students field. For
example, to find students born on November 10, enter *birthday=11/10 in the Search
Students field and press Enter.
You can also combine search commands with search codes to make a compound search. For
example, to search for 12th-grade students who were enrolled as of October 1, enter
E. What’s the home phone number for the 12th graders who have fewer than 12 cumulative
credits?
G. How many middle school students are taking a class at the high school?
Stored Searches
A stored search holds the criteria of a search that you often perform. The results of the
search may vary every time you run the stored search, since the data in the database may
change. You can save a new search or save an existing search result as a Stored Selection.
Stored Selections
Stored selections allow you to retrieve records for a group of students or staff you work with
frequently. Stored selections hold the actual list of students or staff at the time you create
the stored selection.
Since stored selections are user specific, users manage their own set of stored selections.
However, users can publish a stored selection to all users at your school. Stored selections
are snapshots of a group at a particular time and do not change when information changes;
therefore, it is suggested that users periodically delete and recreate their stored selections
to refresh the data, if applicable. For additional help on how to work with Stored Searches
and Stored Selections, see the PowerSchool Help pages by clicking the question mark in the
upper right corner on any PowerSchool page.
1. On the Start Page, click Stored Searches > New to create a new stored search
6. Choose Sample – Mailing Label (Avery 5160) from the mailing label layout menu
7. Select to print One page only, sort by Student's last name, and click Submit
2. Click Go Functions in the row for the stored selection you created
To view individual teacher schedules and class rosters, click Teacher Schedules on the
main menu and choose a teacher. View the teacher’s class roster by clicking the number
under Size. You can make the list of students your current selection or add the students to
another selection.
Search Log Entries is a special function you can use to find students with specific log
entries. You can search by fields such as log type, subtype, consequence, and author. Your
search can be general or specific. You choose the criteria for the search.
1. On the Start Page, click Special Functions > Search Log Entries
4. Click Submit
5. Click List Log Entries to view a list of students with log entries for discipline, and
see the content of those entries
• Take some great customizations back to your site and implement them
In this activity, you will design a custom page that reports on the details of sections in your
school for the current term, sortable by any column. You will start by building a SQL query,
and then you will embed it in tlist_sql to make your new page.
1. Open SQLDeveloper, connect to this class’s server, and begin querying sections
SELECT t.lastfirst, c.course_name, cc.course_number, cc.section_number,
cc.expression, COUNT(cc.studentid) Students
FROM teachers t
JOIN cc
ON cc.teacherid=t.dcid
JOIN courses c
ON c.course_number=cc.course_number
WHERE cc.schoolid=100 AND termid>=2000
GROUP BY t.lastfirst, c.course_name, cc.course_number,
cc.section_number, cc.expression
ORDER BY t.lastfirst, cc.course_number, cc.section_number,
cc.expression
2. From the activity files, open sectionsdetail.html and include the JavaScript file
sorttable.js as an external script where indicated
<script src="/admin/javascript/sorttable.js"></script>
3. Add a table and header row with the characteristics it needs to work properly
<table class="sortable" border="0" cellspacing="0" cellpadding="4"
id="sortedtable">
<tr>
<th>Name</th>
<th>Course Name</th>
<th>Course Number</th>
<th>Section Number</th>
<th>Expression</th>
<th>Students</th>
</tr>
5. Change the WHERE clause so that schoolid and termid get their values from current
settings in PowerSchool
WHERE cc.schoolid=~(curschoolid) AND termid>=(~(curyearid)*100)
Since you want the termid to be any term in this year, use ~(curyearid) * 100.
2. Add the JavaScript to tell the page what to do when the user submits right after the
title, and change the ## to your number:
5. Open birthdaylist2.html
6. Notice how the data was passed to supply the desired month; also notice the link to
the JavaScript file that makes the table sortable
8. Now add Tlist SQL code into the next row, and sort it into cells
(The to_char function formats a specific portion of the date into character data, in
this case the SELECT statement uses only the day portion and the WHERE statement
uses only the month portion. Notice that the month is passed into the query from the
selection in the prior page, using the gpv function. Also, the current school ID tag is
used.)
There’s not time in this class to talk about how the file works, but you shouldn’t use
any files unless you have at least scanned them to get a sense of how they work.
The JavaScript that is required to make the table sortable has already been uploaded
to the server. If you implement this in your district, the file sorttable.js should be
uploaded to data>custom>web_root>admin>javascript.
Activity List
Most PowerSchool users have, at one time or another, asked the question, “Why isn’t there
an easier way to run a list of students in a particular activity?” They soon realize that the
flexibility of being able to create your own activities creates an unintended problem because
each activity is a custom field. Creating a custom page that will list all activities and allow
searching by a particular activity can be difficult.
In the next activity, by using three methods for querying data, you will create a custom
page that will allow a user to select from all activities offered in the current school, or
activities offered district wide, then retrieve a list of all students in that particular activity.
The page will generate a dynamic drop-down menu of all activities offered at the current
school or district. Once a selection is made, the page will list the students in that activity.
3. Create an opening form tag where it is indicated, and set the method to get
The page that will be called on submission is the activitylist##.html page, replacing
“##” with your number.
<form action="activitylist##.html" method="get">
Since this form will return its results on the same page, the form calls the page that
it is on.
Where indicated in the activity file, create a new table with one row. This part will
hold the menu and title:
<table border="0" cellspacing="0" cellpadding="4">
<tr>
</tr>
</table>
5. Inside the table row, create a column that has the title “Activity to view:”
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td class="bold">Activity to view:</td>
</tr>
</table>
6. Create a second column with a drop-down menu using the <select> code. Create
one option in the drop-down with an empty value and the text “Select Activity”
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td class="bold">Activity to view:</td>
<td><select id='activity' name="activity">
<option value=''>Select Activity
</select>
</td>
</tr>
</table>
7. Inside the <select> tag, create a tlist_sql statement using the sql query written in
Step 1
The result set should be formatted as an <option> with the value as the option value
and the name as the visible text. Replace the schoolid with the curschoolid variable.
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td class="bold">Activity to view:</td>
<td><select id='activity' name="activity">
<option value=''>Select Activity
~[tlist_sql;
SELECT g.value, g.name
FROM Gen g
WHERE Cat='activity' AND (schoolid=0 OR schoolid=~(curschoolid))
ORDER BY name]
<option value="~(g.value;t)">~(g.name;t)
[/tlist_sql]
</select>
</td>
</tr>
</table>
8. Add another row and put the Submit button in it
<tr>
<td colspan="2" align="right">~[submitbutton]</td>
</tr>
9. Save the page as activitylist##.html replacing “##” with your number (Make
sure this is the same name you used in Step 3)
11. Navigate to your page and make sure the drop-down generates correctly
If you click submit at this point, you will not see a change, as the page has not been
completed yet.
12. Create a title on the page by using a tlist_sql to use the gpv activity, which was
passed by the Submit button, to find the name of the activity, and enter this code in
the table where indicated
~[tlist_sql;
SELECT g.name
FROM Gen g
WHERE Cat='activity' AND value='~[gpv:activity]']
<td class="header">Activity List for ~(g.name;t)</td>
[/tlist_sql]
14. Inside this table, include the headers for the data you would like returned (Feel free
to include different student fields if you want)
<tr>
<th>Students</th>
<th>DOB</th>
<th>Grade Level</th>
<th>Parent 1</th>
<th>Parent 1 Phone</th>
<th>Parent 2</th>
<th>Parent 2 Phone</th>
</tr>
15. Since the field to be searched and some of the fields to be returned are custom
fields, you need to use the custom field function; create your tlist_sql statement in
the location indicated
~[tlist_sql;
SELECT student_number, lastfirst, to_char(dob,'MM/DD/YYYY') birthday,
grade_level, Father,
ps_customfields.getcf('Students',ID,'fatherdayphone'), Mother,
ps_customfields.getcf('Students',ID,'motherdayphone')
FROM students
WHERE enroll_status=0 AND schoolid=~(curschoolid) AND
ps_customfields.getcf('Students',ID,'~[gpv:activity]')=1
ORDER BY lastfirst;alternatecolor]
<tr class="oddRow">
<td><a href=
"/admin/students/home.html?selectstudent=student_number=~(
student_number)">~(lastfirst;t)</a></td>
<td>~(birthday;t)</td>
<td>~(grade_level;t)</td>
<td>~(father;t)</td>
<td>~(fatherdayphone;t)</td>
<td>~(mother;t)</td>
<td>~(motherdayphone;t)</td>
</tr>
[/tlist_sql]
You might notice that we seem to have broken a rule here. There are more fields
selected in the query than there are headers or columns. That is partially true, but
not quite. The first column actually uses two fields, one to create a link to the each
student’s record and one to show the student’s name.
16. Save the file again, and put it in the custom webroot folder, replacing the copy from
Step 9
Remember that the JavaScript that is required to make the table sortable has
already been uploaded to the server.
Custom Alerts
Current web design practice goes beyond displaying static pages of information—it
emphasizes pages that are dynamic and push information to users. PowerSchool uses alerts
on student pages to notify users when information is available for a student record. It is
possible to make other alerts, and even alerts in other places, by replicating the built-in
logic that makes alerts work.
In this session, you will build custom alerts, and by its end, you will be able to:
• Use basic IF statements
• Use SQL and Tlists to gather and display information
• Use basic JavaScript
• Modify wildcards
• Go back to your site and add some great customizations to your implementation of
PowerSchool
To see the un-rendered code, go back to the Quick Lookup window, and replace the
FRN in the URL with an "r", so that the URL ends in .htmlr. Choose to view the page
source again.
3. How do the alerts get loaded onto the rendered student page?
4. Where does the conditional decision to display an alert or to not display an alert
occur?
5. Why is the conditional logic not a problem for building the Find Me alert?
7. Open the wildcard file title_student_end.txt from the PSU files in your text editor,
and add the following code into it right above the ~[studentalert]:
<a href=”javascript:alertwindow(‘admin’, ‘findme’, ‘~(studentfrn)’)”
onMouseOver=”window.status=’FindMe’; return true”> <img
src="/images/alert_findme.gif" height="24" width="31" alt="Find Me"
border="0"></a>
On your own server, you will need to save this to the custom wildcards folder, but
this has been done for you here. We have also loaded the alert_findme image for
you. Again, you will have to do this on your own server and then run a special
operation to refresh the wildcards.
The wildcards are loaded into cache at startup. Before the new wildcard will work, you will
have to initialize the wildcards. This can be accomplished by navigating to
admin/tech/executecommand.html on your server, and then entering **setuphtmlwcs in
the box and submitting.
Find Me Requirements
In order to know where a student is supposed to be right now, you need to know:
• What course the student is scheduled in right now
• What room that course is scheduled in
• Who the teacher is
• The course expression
• What time it is
In order to figure out those requirements, you also need to know what kind of day it is
today, according to the Cycle day (such as "A" or "B") at the school in which the student is
enrolled.
Getting all that information requires linking several tables together. Linking together many
tables will test your knowledge of PowerSchool's data structure.
This file has been modified from one of the other alert windows. Find the query
inside the Tlist SQL at the bottom of the page.
2. How does the query know which student and school to search for?
4. Use the same variable in the first row of the table that will hold the information on
where the student is:
<td width="100%"><span class="header">Find Me</span><br/>~(studentname)
</td>
5. Insert the HTML to display the Find Me icon in the first row of that table:
<img src="/images/alert_findmewhite.gif" width="42" height="42" alt=""
border="0">
Room: ~(sec.Room;t)<br/>
Course: ~(c.Course_Name;t)<br/>
Teacher:~(t.LastFirst;t)<br/>
Exp:~(cc.Expression;t)<br/>
Time:~(TimeNow;t)<br/> [/tlist_sql]
Notice that the query is a very long parameter passed to the opening tag, and that
the only thing between the opening and closing tags is the row template.
8. Save the modified file to your desktop with your number appended to the file name
9. Why did you use a slash within the break tag? Will it work without it?
Only one person at a time will be able to test their customization. Your presenter will
choose someone to upload.
10. Click the Find Me alert icon, and see if it works
5. Open the file title_student_end.txt from the activity files in your text editor and add
the following code into it right above the ~[studentalert]:
~[if.~([01]notes1)#""]
<a href="javascript:alertwindow('admin', 'notes', '~(studentfrn)')"
onMouseOver="window.status='Notes'; return true"><img
src="/images/note_icon.gif" height="24" width="31" alt="notes"
border="0"></a>[/if]
6. How is this code different than what we added for the Find Me alert?
7. Save this file to your computer for your own use (we have already saved a version to
the server)
If there are no notes, there will be no alert. You need to make a page to enter alerts.
8. Open notesentry.html in your text editor
11. How does this code tell PowerSchool to display the correct custom field data?
This customization will only work if you have ODBC access to custom fields enabled.
Otherwise the Tlist SQL on the alert page won’t be able to access the correct custom
field tables. You can read about this process in PowerSource article 10319.
Is there an alert that your school could use? Think of a way to use data that may or may
not be there to trigger an alert for a student, then use the strategies and files above to build
your own alert.
If you are short of ideas, consider an alert to show students out of compliance with
immunization schedules or students who triggered an attendance notification. Could you
build an alert to show who is in activities or special programs? You can also add a custom
field and use it to build an alert.
Field(s) to use:
<td>~([01]lastfirst)</td>
<td bgcolor="#edf3fe"><em>If you make changes, please use the
formatting shown.</em></td>
</tr>
4. How many rows are in that code? How many cells?
___________________________________________________________
5. Look further down the page, at the rest of the table. What allows users to edit
instead of just look at data?
___________________________________________________________
6. What fields are the edited values submitted to?
___________________________________________________________
7. Copy the code for the rest of the table to the place indicated.
8. Add the submit button and submit information at the bottom of the table
<tr>
<td colspan="2" align="right">
<input type="hidden" name="ac" value="autosendupdate">
~[submitbutton]</td>
<td> </td>
</tr>
9. What is the function of ~[submitbutton] in the code above?
___________________________________________________________
10. When you are done making your changes to the file, save it with your number
appended to the file name, and put it in the custom webroot’s guardian folder. Test it
out and troubleshoot any problems.
</tr>
<tr>
<td class="bold">Address</td>
<td><input type="text" name="[01]street" value="" size="30">
<br>
<input type="text" name="[01]city" value="" size="14">,
<input type="text" name="[01]state" value="" size="2">
<input type="text" name="[01]zip" value="" size="10"></td>
<td>
<input type="button" value="Approve" onClick="addressChange();"></td>
3. What does the JavaScript in that last cell do?
___________________________________________________________
4. Copy the code for the rest of the table to the place indicated.
5. Find JSFieldParam in the page code. What does this do?
___________________________________________________________
6. The JavaScript that controls handling of data is in a separate file. Why?
___________________________________________________________
7. Open the JavaScript file—parentdemo.js—in your text editor. Follow along as your
presenter explains the parts of the JavaScript and what it does.
8. When you are done making your changes to the parentdemochange.html file,
save it with your number appended to the file name, and put it in the custom
webroot’s admin/students/studentpages folder. Your instructor has already put the
parentdemo.js file in the admin/javascript folder. Test it out and troubleshoot any
problems. If you use this at your site, the parentdemo.js goes in the
admin/javascript folder, and you will need to add links from the main pages to these
new pages.
3. Build the section of the table to hold question 1 of the survey—the full code for the
full survey is commented out at the bottom of the file. Here is the code for the first
survey question:
<tr bgcolor="#EDF3FE">
<td width="340">1. I plan to attend the School Information Night
on</td>
<td width="300">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="25%"><input name="[01]question_1" type="radio"
value="September 13">Sept. 13</td>
<td width="25%"><input name="[01]question_1" type="radio"
value="September 14">Sept. 14</td>
<td width="25%"><input name="[01]question_1" type="radio"
value="September 15">Sept. 15</td>
<td width="25%"><input name="[01]question_1" type="radio"
value="September 16">Sept. 16</td>
</tr>
</table>
</td>
</tr>
4. The format of Question 3 is different than the other questions. How does it differ?
What will it look like?
___________________________________________________________
<tr bgcolor="#EDF3FE">
<td width="340">3. I have these specific concerns that I would like
to discuss.</td>
<td width="300">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><textarea name="[01]question_3" cols="30"
rows="3"></textarea></td>
</tr>
</table>
</td>
</tr>
5. Where is the survey data to be held?
___________________________________________________________
6. When you are done making your changes to the file, save it with your number
appended to the file name, and put it in the custom webroot’s guardian folder. Test it
out and troubleshoot any problems.
data and set the Flash parameters, and then make a page with the Flash file embedded. We
will only have time to go through some of the steps of this process in this session.
5. Open the file results.html. Append your number to the filename in the path below.
This will be the name of the file when you save it.
<!-- X-PS-DATA TYPE="HTML" PSPATH="/admin/survey/results/results.html"
-->
6. In both the object and embed tags, replace surveydata.xml with the name of the
file you saved in step 4.
7. Save the file, using the filename from Step 1, to the custom web_root in the
admin/survey/results folder.
7. Open this file in a browser to see the results. Test it out and troubleshoot any
problems.
In the Building FusionCharts Using SQL, JavaScript, and XML class offered at PowerSchool
University you can find more information on how to set up these charts.
and save or share. You can choose to enable custom web management again and your
web_root pages reappear.
There are two primary ways to get an un-rendered page from PowerSchool. One is to get
the page from PowerSchool’s web root directly using PowerSchool Administrator. Once
logged into PowerSchool Administrator, copy the code from an original page and paste it
into an HTML editor. The second is to navigate to the page you want, being sure to get to
just the page and not the page and the frame, and then to replace any information in the
URL, which specifies student or school data with the letter r. This page can then be saved to
your local machine.
X Code Limitations
Some PowerSchool pages include special programming called X Codes. When modifying
pages, you may find this code. It can be identified by the prefix “x:” inside square brackets.
An example may be [x:insertfile]. The functionality of an X Code cannot be modified, as
the code is hard-coded in the PowerSchool application. The good news is that X Codes can
be re-used on other pages. For example [x:schooldays] is used to give the number of
school days in the school year.
inserted before rendering, the wildcards are included in this size. This means that simply
looking at the file size on the server will not necessarily tell you if the file will be too large.
On the other hand, the X Code “x:insertfile” does not get included before rendering, so
these files are NOT included in the size limitation. Pages that exceed the 32k limit may not
generate an error, but may give unknown results, such as partially loading.
have the field label “Preferred Name” and the custom field CF_PREFERREDNAME populating
the field value.
1. Using the URL, username, and password given to you by your instructor, log in to
the PowerSchool admin portal
2. Select any student, so you are presented with the student pages menu on the left of
your screen
5. Once the new window opens, click in the address bar of your browser, select
everything after .html to the end of the URL, and delete it
8. From your browser’s menu, select View Source to see the un-rendered page
1. Using the URL, username and password given to you by your instructor, log in to the
admin side of PowerSchool and then into Administrator
11. Copy the original code beginning <tr> <td class="bold">District Entry
Date</td> down to and including <td><input type="text"
name="[01]SchoolEntryGradeLevel" value="" size="5"></td></tr>
13. Save the file as xxinsert3.html replacing xx with your assigned number
2. Perform a “Find” for the code colspan=”2” (3) and change the number 2 to 3
3. Perform a “Find and Replace” of the code <td> with the new code <td colspan="2">
(33)
xxinsert2.html Instructions:
2. Find the section of the page that contains Emergency 1 phone information
It is assumed for this exercise that you may re-use the [01]Emerg_Phone_1 to store
the home phone. This may not work in all situations, depending on what data you
have already stored. Also, we will re-use [01]Emerg_1_Ptype as the work phone.
a. Type Employer to replace Home Phone and change the size to “25”
6. Add a table row and a cell in the very first row of the file
11. Save this file, and view in your browser – “Cheap WYSIWYG”
12. If time allows, repeat steps 3-5 for Emergency Contact 2 and Emergency Contact 3
xxinsert3.html Instructions:
2. Immediately preceding the first <tr> tag add the code <tr class=”headerrow”>
</tr>
6. Perform a “Find and Replace” of the code <td> with the new code <td colspan="2">
(4)
8. Using the instructions for uploading files from your instructor, upload your three
custom pages to the server to this file path
admin/xxfolder/studentpages/custompages/
NOTE: Normally you would save the file with the same name as the original file, so the
link from the navigation menu would link to your new file. Since there is only one
custom web_root at PSU, you must include your login number so you do not overwrite
someone else’s file. Also, we are uploading to a file in your folder directory while the
instructor is uploading to the main web_root file structure. The instructor is uploading to
the custompages folder so those pages we will use later will not show up on the custom
screens link page if they were uploaded to the studentpages folder.
1. Open the page xxregistration.html from your PSU Activity Files in an HTML editor
Replace “xx” with the number you are logged in as. So if you logged in as user 15,
yours would read “15 Registration Information”
3. Note that on this supplied file, there are numerous JavaScripts, CSS links, and code
already embedded in the <head>
a. Replace “xx” with your user number. It should match the previous file you
created
6. Using the instructions for uploading files from your instructor, upload your three
custom page to the server to this file path:
admin/xxfolder/studentpages/custompages/
2. Open this page in an HTML editor (this page is also available in your PSU Activity
Files)
4. Paste this code after the code in front of what you just copied and add </td></tr>
8. We are going to change the security access "if" statement from address.html to
generaldemographics.html
10. For aesthetics, add a <br> after the code ending Information</a><br>
IMPORTANT NOTE: Since there is only one more2.html, DO NOT save the page to
the custom web_root for PSU. Instead, the instructor will upload a copy for
demonstration. You can upload your ##more2.html to the file path admin/xxfolder/
and view in a browser. You will need to navigate to the URL manually to view.
Bonus Code: This code can be used to add a link to a custom screen. <a
href="customscreentemplate.html?frn=~(studentfrn)&screenid=5">Enrollmen
t Information</a> Replace the screenid number with the your screenid.
Wildcards
Most PowerSchool pages include what are called wildcards. These are snippets of JavaScript
or HTML code that are stored in a text file and then called for from each PowerSchool page
that need them. The benefit of this is that modifying one wildcard file will modify every page
that uses it.
Find wildcards in the HTML page by looking for the code “~[wc:”. This inserts whatever file
is specified. For example the statement “~[wc:admin_header_frame]” inserts the code
found in the file admin_header_frame.txt into the HTML page. In this example, the header
of the admin pages is inserted.
Wildcards are stored in the folder web_root/wildcards. These files may be modified just like
a custom page but with two important differences.
First, when you modify a wildcard, you must understand you are modifying every page that
contains that wildcard. It is very important to do thorough checking before and testing after
modifying a wildcard.
Secondly, once a wildcard is modified, you must issue a command to the PowerSchool
server to load the new wildcard. To do this, follow these steps:
1. Log into the admin side of PowerSchool and navigate to the page
/admin/tech/executecommand.html
This page does not have a link, so you must type the path into the address bar. So,
for example, you would type http:myserverurl/admin/tech/executecommand.html
2. Once this page has loaded, in the Command Execution text box, type the command
**setuphtmlwcs and click Submit
3. A tip that has worked is to navigate to the Customization page at Start Page >
System > System Settings > Customization and resubmit Synchronize Custom
web_root
Activity 7 – Wildcards
In this activity, add the home_room field to the wildcard that appears at the top of each
student page.
1. Using PowerSchool Administrator, in the Wildcards folder, copy the original file
title_student_end.txt and save as xxtitle_student_end.txt (this page is also available
in your PSU Activity Files)
Note: If you upload the file to the server to view, you will need to modify your
xxregistration.html file to reflect your xxstudent_title_end.txt file.
5. The instructor should have already uploaded to the custom web_root the
title_student_end.txt file that will be used in the web_root/wildcards directory, and a
participant will need to execute the command **setuphtmlwcs and click Submit
7. The file located in the completed web_root has some bonus codes such as ~[if]
statements.
Summary
Learning how to create custom web pages in PowerSchool opens up many possibilities. With
this comes the responsibility of understanding page security and confidentiality. Also, you
must be aware of possible problems your custom page may create, and realize that all
customizations are unsupported. With that said, custom pages can greatly enhance your
school’s experience with PowerSchool.
The first step in successfully customizing pages is understanding tables, fields, and their
relationships. With this understanding, you can create custom pages that span many tables.
Modifying the PowerSchool pages is not difficult once you have a general knowledge of html.
Learning the basic HTML tags as well as the PowerSchool tags will help in the creation on
new pages. With this knowledge, you can create or modify any page by following the steps
outlined here.
Finally, being aware of the pitfalls of page customization is important. Wildcards and X
Codes are very powerful tools, but must be fully understood for effective use. The ability to
re-use existing code and style can significantly reduce development time.
1. On the Start Page, click School on the navigation bar and choose the elementary
school
b. Table—choose Students
d. Font Size—enter 10
e. Line Height—enter 14
h. Label Width—enter 4
i. Label Height—enter 2
Gender: ^(decode;^(gender);m;Male;f;Female;Blank)
Ethnicity: ^(ethnicity)
6. Click Submit
7. To preview the label, click Print on the bottom of the Mailing Labels page
You can also return to the Start Page and search for a group of students, for
example, 4th graders.
10. Use the default sort order “Student’s last name,” then click Submit
12. When the status for your label is completed, click View
2. On the Start Page, click Reports > Setup > Mailing Labels
3. Click the label you created and modify the label content as follows:
^(yearname)
Grade: ^(grade_level)
b. Insert a new line under the date of birth and add Age: ^(Age)
6. Using the codes chart above, modify this label so that the student’s age includes the
days and the school is the full school name
Preview the label again. What fields do you use to make these modifications?
*period_info;1(A);teacher_name Teacher
*period_info;1(A);room Room
8. Add the code for the name of the first period class with a column title of Class
9. Select Gridlines
Since teacher, room, and course are not fields in the Student table, you cannot sort
by these fields.
13. Save the file to your desktop and open with a spreadsheet application
3. Review the codes on this page, and then return to the Start Page (or open a second
window or tab and go to the Start Page)
How would you format the following codes if you wanted to add them to the
Cumulative Info page?
Code Description
^(*gpa method="simple") Cumulative simple GPA
Current first quarter GPA for 12th-grade
students
Semester 1 weighted GPA for English
Second semester weighted cumulative
GPA
Type of Test name Test score Test Test score Test output
code selection selection selection type result
tests name=ACT score=ACT_ Which=last type=num result=value
mathematics
^(tests;name=ACT;score=ACT_mathematics;which=last;type=num;result=value)
3. Click Special Functions > Importing & Exporting > Templates for Exporting >
New
4. Enter your last name and ACTComposite for Name of this template
8. From the list of templates, click the blue 0 under the column next to the export
template you just created
9. Click New
Title/Heading: Student ID
Column Number: 1
12. Click New, and use the information in the table below to add your next column of
data, starting with column 2
14. Repeat steps 11-12 to add each of the remaining columns using the data in the table
below
15. In the table below, write the code you would use for the ACT composite score
Use the example code for the Math ACT score as a guide.
Title/ Data to Export (fields) Column
Number
Heading
ID Student_Number 1
Name LastFirst 2
Grade Grade_Level 3
Test Date ^(tests;name=ACT;which=last;type=num;result=DATE) 4
ACT Comp 5
17. Return to the Importing & Exporting page and click Export Using Template
18. Choose Students from the Type of Export menu and click Submit
21. Save the file on your desktop, and open it to verify that the data was successfully
exported
2. For the title of the form letter, enter your name and DriverEd; for example,
SmithJohnDriverEd
6. Type the following letter, replacing the bold items in brackets with the appropriate
PowerSchool codes:
[SMITH, JOHN A]
Gender: [Male]
Sincerely,
Alice Wilson
Principal, [AGHS]
8. Click Print
11. When the status for your label is completed, click View
Summary
In this course, you learned to:
• Utilize parameters and delimiters with codes to format and modify data display
• Make use of codes that mirror PowerSchool fields to customize reports and labels
• Enter delimiters for code parameters to limit data displayed
• Use codes when inserting test data in a report, export, or Cumulative Info page
Edustructures
In this age of No Child Left Behind (NCLB) and The National Educational Technology plan,
schools are under rising pressure to increase efficiency and manage costs while also keeping
pace with technology advancements. The Schools Interoperability Framework (SIF) was
designed to enable diverse applications to interact and share data in order to accomplish
these goals. Edustructures provides an integration plan for SIF implementation.
Who is Edustructures
Founded in 2001 by veterans of the educational software industry, Steve Curtis and Eric
Petersen, Edustructures entered the market with a SIF-specific focus that has quickly taken
the company to a leadership position for SIF-based solutions. Noting the emergence of XML-
based web service technologies in the K–12 market concurrent to the rising call for
educational data standards, Curtis and Petersen anticipated and responded to the need for
commercial-grade tools that integrate disparate education applications.
Edustructures was the first company to successfully deliver a commercial Zone Integration
Server (ZIS), the heart of every SIF implementation. This technology first immediately
catapulted Edustructures to the market leadership position (in revenues and numbers of
students served), a position the company has maintained—through continual innovation—
for seven years. The Edustructures SIFWorks® Integration Platform software is installed in
thousands of schools worldwide and is built to support all versions of the SIF specification.
Edustructures succeeds at delivering implementation success to our customers, and delivers
success in both horizontal and vertical SIF implementations through Best Practices
implementation methodologies that have included Project Success definition and metrics,
Data Mapping, Installation and Configuration (including pioneering efforts in Installation
Wizard development), Data Synchronization, and Customer Ownership & Self-Sufficiency
processes. The SIF Ownership Training is hailed as one of the most valuable deliverables in
the industry. In short, Edustructures has vast experience with SIF, project management,
and implementation best practices and has successfully deployed more state and district SIF
implementations than all other providers combined, uniquely qualifying Edustructures to
help the state’s schools succeed with this exciting project.
The following is a brief timeline of Edustructures’ accomplishments:
2001—Led the charge to create an independent standards body for SIF
2002—First to market a commercial Zone Integration Server (ZIS)
2002—First to implement district-wide SIF solution
2002—First to offer a commercial SIF development toolkit (ADK)
2003—Founding member of Schools Interoperability Framework Association (SIFA)
2005—First to provide a statewide SIF solution
2006—First-ever SIF based Vertical Report achieved (Wyoming Districts)
2006—First to architect and implement a non-US SIF model (UK)
2007—First to deliver SIF 2 solutions
2007—Acquired by Pearson
Currently—More states, districts, and vendors use Edustructures SIF Solutions than all
competitors combined
In December 2007, Pearson, the leading provider of student information systems (SIS),
acquired Edustructures. While the acquisition provides Edustructures with strategic
development and marketing resources to grow and expand the reach of SIF interoperability
across the education marketplace, Edustructures maintains vendor and platform neutrality.
This neutrality allows us to work with all application suppliers to support SIF interoperability,
ultimately delivering best-of-breed software choices to educators.
Vision
Edustructures exists to fulfill the goal that in the near future, educational software
applications will share all data simply and securely.
What We Do
All we do is SIF-based interoperability for education.
The foundation for all our solutions is the SIFWorks® integration platform:
• SIFWorks® Enterprise ZIS
• SIFWorks Directory Manager™ Agent
• Edustructures SIF Agent for SASI™
• Edustructures SIF Agent for PowerSchool
• Edustructures SIF Agent for NutriKids™
• SIF Agents for Follett Library Systems
• SIF Development Tools
®
o SIFWorks ADK (Agent Development Kit) for Java and .NET
• Solutions for state agencies (longitudinal data collection via SIF)
o
SIFWorks Student Locator Framework™
o SIFWorks Vertical Reporting Framework™
o SIFWorks Electronic Transcript Framework™ (new)
Edustructures professional services team has installed and supported more SIF
implementations worldwide than any other SIF solutions provider or integrator—our best
practice-based services assure our customers’ SIF success.
What is SIF?
SIF stands for School Interoperability Framework.
SIF itself is not a product, but rather like a technical blueprint for K–12 student information
systems and software. It has become a blueprint for systems integration in schools. As an
emerging industry standard, it enables diverse applications to interact and share data,
working online and across platforms. It is important to note that SIF is a technical standard
specific to education. Its purpose is to assure interoperability between disparate software
applications for improved educational business processes, data accuracy and reliability, staff
efficiency, and cost reduction.
”SIF 2” was released late in 2006. Agents are currently being tested as part of the process
to become “SIF 2 Certified.”
The recently released SIF v2.0r1 specification expands the number of supported SIF
objects, providing greater out-of-the-box data interoperability between diverse applications
in a school.
Over 2000 members—districts, state agencies, the US Department of Education, software
vendors, and integrators—support the SIF Association. The members influence the evolution
of the spec to assure it grows to meet the changing needs of education.
SIF Specification
• Data and messaging is one core piece of the architecture.
• Not only does the SIF model send data back and forth, it sends messages that are
for system control, agent functionality, carrying data, and confirmation. This allows
for reliable communication.
• Reliable communication means the delivery of data is guaranteed, even when the
system goes down, through acknowledgement messages. These messages confirm
the messages were received or that they contained errors. They are also stored in a
queue should components go offline.
• With the framework, IT departments/administrators can create logical zones at the
school, district, or even the state level.
• With the logical zones, the entire process/framework is scalable for any size school
or district.
• With confidential, mission-critical student data being transferred back and forth, it is
imperative that the data model is secure and controls the flow and access of
information (supports FERPA).
• SIF is based on XML over HTTPS.
XML defines the common data formats and high-level rules of interaction. HTTPS provides a
standards-based secure transport method.
Before SIF
Before SIF was created, a school’s various applications didn’t talk to each other. Often they
didn’t even speak the same language. When a new student was enrolled, his or her
information had to be manually entered into each application or system administrators had
to schedule a data dump on a regular basis. This caused data entry errors, such as students
never entered into the database or students with duplicate data. Using SIF means the
amount of repetitive data entry is reduced and the incidence of “dirty” data is eliminated.
• The next component is a way for the various applications to communicate with the
ZIS. Since each application speaks a unique language, agents are used to translate
the data and send and collect data that the application might need. Another
important attribute of the agent is that it knows what information it is responsible for
publishing (or where it should provide data to) and/or subscribing to data within the
zone.
• Data objects are moved through the zone in SIF Messages, which as mentioned
earlier, use XML, which defines the data formats.
Depending on the transport protocol, the data is transported via HTTP or HTTPS.
Resource Savings
What are the potential benefits of SIF? A return on investment study looked at the work
required to enroll a new student in the Student Information System in addition to all of the
various applications that were used in a school district. The study found that this work
stream would take 60 minutes. After setting up SIFWorks in the district, the same work was
completed in 15 minutes.
Multiplying the time saved (45 minutes) by the number of students (18,000) in the district,
the district in the study saw a savings equivalent to six full-time employees per year. Saving
so much time allowed the schools to do more!
Note: The source of the information above is a white paper titled "ROI of SIF," available
from Edustructures. This paper is also found in the Improving Data Collection from
Implementation Success of the No Child Left Behind act.
A collection of white papers that discuss the benefits of SIF can be found on the SIFA
Website at http://www.sifinfo.org/. One white paper is titled “Analysis of Costs and
Benefits.”
Another paper, titled “Associated with Implementing SIF,” discusses the benefits of SIF
implementation in three different school districts. Each of the districts was different sizes
and had different goals, but found a unique return on investment.
Implementing SIF
The SIF association has developed some great resources to help you implement SIF. Access
the site at www.sifinfo.org for organizational support on topics such as:
• Implementation Tool Kit
• RFP Language
• Determine “SIF Certification” of software applications
SIF Infrastructure
• Provides a secure, standards-based way for applications to exchange data
• Provides a mechanism by which applications can report changes in data and
subscribe to changes in data in real time
• Defines the types of transactions that applications can use to interact with one
another
SIF Zones
A SIF Zone is a logical container for organizing applications and their data.
SIF Zone Organization:
• Depends on SIF agent capabilities
• One zone for each school (for campus-based applications)
• One zone for the district itself (for district-wide applications)
• Exclusively district-based applications
• One zone for the district is possible
All SIF messaging activity takes place in the context of a zone. SIF Zones can represent
schools, districts, school-within-school programs, regional agencies, and state departments.
A Zone Integration Server (ZIS) manages a zone.
Each zone has a unique ID (e.g. “CLEMENTS_MS”). Note that the zone ID cannot contain
spaces. A SIF agent must register in a zone in order to connect to the zone to exchange
messages with other agents. Each agent is registered in one or more zones. Each agent has
a message queue in the zone where messages pending delivery to the agent are stored.
The access to the agent is controlled using granular data flow security, which means only
necessary data crosses the zone.
SIF Messages
SIF is a message-oriented system where data and control messages are sent between SIF
agents and Zone Integration Servers. A message is an XML text document delivered over a
transport protocol like HTTP or HTTPS.
There are four types of messages:
• System control messages
• Agent functionality messages
• Data movement messages
• Acknowledgement messages
Each message type serves a specific role in the SIF environment. System control messages
manage the flow of data from one agent to another. The agent functionality messages
inform the ZIS of an agent’s identity and function. The bulk of the work in the SIF
environment is the movement of data. There are three core messages for the movement of
data in a horizontal zone: event, request, and response. The agent generates each of these
data movement messages.
Data movement messages are also used in vertical data choreography. These messages are
used to request and gather data for reports generally used at the state level.
The final type of message is the acknowledgement message. This message confirms that
data was exchanged successfully or unsuccessfully. Without this message type, it would be
hard to determine if the application and its accompanying agent have received the data.
Delivery of messages is guaranteed: every SIF message must be met with a corresponding
SIF acknowledgement or the message is not removed from its queue.
Horizontal Integration
Horizontal Integration refers to the relationship of the Zone surrounding the ZIS. For
example, with the ZIS in the center of the Zone, connected by way of their agents might be
PowerSchool, Directory Services, Library Automation, Food Services, Grade Book, H.R. &
Finance, Transportation, and Instructional Services.
Vertical Integration
Vertical Integration refers to the flow of reporting information from school to district to state
to Federal agencies. In one example, various districts create a dialogue of messaging to and
from Regional Zone Integration Servers. From there, the dialogue reports data to a State
Data Repository or Data Warehouse. Report Manifests are sent from a State Report
Collector, which could be a Scheduled Collection.
Each district would maintain a Vertical Reporting Framework (VRF) Data Collector, which:
• Receives manifest from the State Report Collector
• Requests data required for reports from the appropriate zones (various school
Student Information Systems)
• Waits for SIS agents to respond with requested data
• Assembles report for administrator review
Once the collections are complete, the administrator approves the report for submission,
whereupon the data collectors notify the Report Collector.
In the SIF Specs, each element can be defined as optional or mandatory. Many elements
are also repeatable. For example, email addresses can be a repeatable element because
some students and faculty or staff might have more than one email address. The Specs go
into detail about the various elements that make up each SIF data object.
A RefId, which is a unique ID, specifically identifies each SIF data object. With SIF, each
application retains its own private databases and there must be some way for SIF
participants to identify shared records regardless of where the data comes from. A RefId is
a Globally Unique Identifier (GUID); a 32-character hexadecimal value that is calculated to
be statistically unique. (Note: Hexidecimal numbers are based on a system of 16 values
instead of 10. 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – A – B – C – D – E – F)
SIF agents always identify data objects by using a RefId, never by an application-specific
identifier.
Maintaining SIF
SIF is designed to work in the background. Minimal maintenance is necessary to keep SIF
up and running after the initial setup. It is recommended that the owner of the SIF
environment check on SIF through the ZIS on a weekly or monthly basis to verify that all is
working well.
It is also necessary to perform New Year Rollover (NYR) maintenance on the various
applications and agents in SIF. As you are aware, there are specific actions that need to be
completed with each application. Each agent also has specific procedures for NYR.
The materials covered in the ownership training include SIF maintenance, troubleshooting,
and NYR in more detail.
1. _____________________________________________________________
2. _____________________________________________________________
3. _____________________________________________________________
4. _____________________________________________________________
5. _____________________________________________________________
6. _____________________________________________________________
7. _____________________________________________________________
8. _____________________________________________________________
9. _____________________________________________________________
10. _____________________________________________________________
5. Click Submit
2. Click the grade for English that matches the grade you used in activity 5; for
example if the homeroom you created was grade 2, click 2nd Grade English
3. Click New
12. Repeat these steps for Math, Social Studies, and Science, and be sure to select the
appropriate Expression: 3A, 4A, 5A respectively
1. On the Start Page, click the grade level you used in Activity 5
2. In the Functions menu below the student list, click Select Students By Hand
3. Hold the Command key (Mac) or CTRL key (Windows) and select 5 students
5. Enter the course.section number of your homeroom class; for example, if you used
the name Smith when you created your Homeroom, enter HR.Smith
NOTE: If you know the course and section number, there is no need to select a
teacher name from the menu
7. Click Submit
2. For Student’s Name (Last, First, MI) enter any last name, first name, and middle
initial
7. For Information for Family Match area, choose Enroll without Linking or Copying
Information
8. Click Submit
9. If the system found a possible match for a duplicate student, click Enroll
3. In the Course Name column, click Homeroom for your Homeroom section
4. Verify that the student is scheduled in your Homeroom section as well as all of the
other core subjects
2. Your instructor will point out to you the Preferences set-up items
6. Your instructor will point out to you the additional setup items
7. Click Submit
1. On the Start Page, search for and select the student you enrolled in Activity 9
2. Click Attendance
7. Click Submit
7. Click Submit
8. When you see the Field Value page, click Submit
9. On the Start Page, enter home_room=[yourlastname] for example,
home_room=flores, in the Search Students field
10. Click Search
Summary
In this session, you learned to schedule and manage elementary schools in PowerSchool by:
• Copying and modifying an elementary school master schedule
• Mass enrolling students into classes at the elementary level using Dependent
Sections
• Enrolling and scheduling new elementary school students
• Defining options for elementary school attendance and grading
• Using the Home_Room field to search for students in a specific teacher’s class
• Using the family_rep field to print one form letter per family
Make sure that there are as many blank columns to the right of column B as there
will be new columns, or existing data could be over-written.
4. Select Text to Columns… from the Data menu
Office 2007 (Windows) users click Data and then Text to Columns…
5. In Step 1, select Delimited and then click Next
Delimited is used since there are commas separating the first name, last name, and
middle initial.
Select commas and spaces since both are used to separate the names.
7. Click Next
8. In Step 3, select B1 for the Destination Cell, then click Finish
The first name, last name, and middle initial are now in separate columns. This will make
managing this data set much easier, since now you can treat first and last names
separately. Create column names for the new columns.
The LEFT function extracts text starting with the first character; using the number 4
means you only want the first four characters.
3. To get the first initial of the last name, enter &LEFT(C2,1) so that the formula reads
=LEFT(B2,4)&LEFT(C2,1)
4. Enter &LEFT(D2,1) to get the first letter of the middle name, so that the formula
reads =LEFT(B2,4)&LEFT(C2,1)&LEFT(D2,1)
5. Make the username lowercase by making your formula read
=LOWER(LEFT(B2,4)&LEFT(C2,1)&LEFT(D2,1))
6. AutoFill the formula down the rows
2. Click cell H2
3. Enter =DATEDIF(F2,NOW(),"y") to get the student’s age in years
Use DATEDIF to enter the earlier date, then the later date, and then the increment.
Parentheses are used in the NOW() function, but no additional information is
required. Use "y" at the end of the formula since you want the output in years.
If the outputted number is formatted as a date, go to Format > Cells and change the
format to Number.
4. AutoFill the formula down the rows
Sorting organizes the data by the column in question, such as Last Name, First
Name, or Date of Birth.
• Filtering is like shaking data through a sieve
Filtering shows only the rows that correspond to the specified criteria, like African-
American female seniors who are taking AP Calculus.
Activity 6 – Sort Your Students by Grade Level, then Last Name, then
First Name
Now that you know how to quickly sort data, use the Sort tool to sort students in the order
of: their grade level, their last names, and then by their first names.
1. In the Student Data worksheet, select Sort from the Data menu
Office 2007 (Windows) click Add Level to display the second menu.
Office 2007 (Windows) users click Add Level to display the third menu.
5. Make sure Header Row, under “My list has,” is selected and click OK
Office 2007 (Windows) users click Number Filters and then select Custom Filter…
4. Select is greater than or equal to from the first menu, and enter 15 to get
students who are 15 and older
5. Select And
6. Select is less than or equal to from the second menu, and enter 17 to get students
who are 17 and younger
7. Click OK
This menu choice is at the bottom of the menu; if your worksheet is large, you will
have to scroll to find it.
4. Clear the previous filter, as you did in step 2
5. Click the up and down arrows next to the Varicella column header in cell K1 and
select (Show Blanks)
Extension Activity: How would you find students who are missing both MMR and
Varicella vaccinations?
Office 2007 (Windows) users click the PivotTable button in the Insert tab.
4. Click OK
Office 2007 (Windows) users click the up and down arrows next to (All), select
Hispanic, and click OK.
4. Notice that only the Hispanic students are showing
5. Switch the selected ethnicity to African-American
6. Select (Show All) from the menu
Office 2007 (Windows) users click the PivotTable tab and select Show Report Filter
Pages.
2. Select Ethnicity
3. Click OK
Office 2007 (Windows) users click the Sort Descending button in the PivotTable Tools
Options tab.
When you create a copy of a PivotTable worksheet, you can arrange the data on that
copy any way you want, since it is pulling the data from the same source.
Extension: Now that you have a new PivotTable sheet to work with, create a
PivotTable showing the average percent grades in each math course listed.
5. Select Wizard… from the PivotTable menu and then click Layout
6. Drag “Count of Students” out of the Data field
Extension: Now that you have created a chart, change it to a line chart.
4. Right-click on the chart and select Chart Type…
Office 2007 (Windows) users click the Change Chart Type button and choose Line.
5. Select Line from the Chart type window and click the line chart with markers chart
6. Click OK
7. Right-click the dates in the chart and select Format Axis to change how the dates
display
To change the color for any other part of the chart, just right-click that part, and choose the
Format option.
This chart is a graphic representation of the numbers you see in the PivotTable.
4. In the PivotChart Filter Pane, select Ethnicity and choose Hispanic
5. Experiment with various choices in PivotChart Filter Pane
Summary
• Using the right combination of text functions, you can extract individual pieces of
information from a cell
• If you want to calculate the differences between two dates in Excel, use the DATEDIF
function
• Use Filter to hide rows that don't match your specified criteria
• When you have a large set of data, use a PivotTable to summarize that data
• Charts are the most effective way to show correlation between two data points, or to
show parts of a whole
Excel: Fundamentals
Excel is an effective tool to use in conjunction with PowerSchool. While PowerSchool
successfully manages your data, Excel helps you organize that data in a graphical, easy-to-
use format. This course covers the following topics:
• Improve the appearance of the data using cell background colors and conditional
formatting
NOTE: This is the toolbar from Office 2004 for Mac. If you use a different version, some of
your options may appear in a different order or format.
• The first row is the menu bar, which has the File menu and Edit menu, along with
other menu items
• The second row is the Standard toolbar, which has such commands as Open, Save,
Print, Print Preview, and Undo
• The third row is the Formatting toolbar, which has such commands as Bold, Italic,
and Currency Style
• The fourth row is the Formula Bar, where you edit formulas that you enter into cells
If you don’t see all the toolbars mentioned, navigate to View > Toolbars then select the
Standard and Formatting toolbars. To enable the Formula bar, select View > Formula Bar.
Excel terminology:
• A cell is described by the column letter, then the row number
For example, the cell located in the first column and row would be A1. The cell
located in the third column and the fifth row would be C5.
• A cell is a single field for data within a worksheet
• Excel has 255 columns and 65,536 rows per worksheet
• Worksheets are pages in a workbook
• A workbook is a name for an Excel file
• An Excel workbook can have an infinite number of worksheets, but more than 30
sheets will affect performance
The dollar sign in front of the row number keeps the row number the same.
11. Now copy the formula from F3 to F4
12. Click cell F3
13. The amount in the cell is only the sales tax amount
In the Formula Bar, add the total to the sales tax. Type =E3*B$10+E3 and press
Enter.
14. Copy the formula from cell F3 to cell F4
Office 2007 (Windows) users select New LIST from the Office button > Excel
Options > Popular > Edit Custom Lists.
2. Choose Custom Lists from the menu
3. In the List entries box, enter a list of values you might use all the time, like schools
in your district, or members of your staff
4. Click Add
5. Click OK
6. Click cell A9 and type a word from your list
7. Click the check mark or press Enter
8. Place your cursor in the lower right-hand corner of the cell
9. Click and drag down to A17
This list is available in any workbook, not just this one.
Office 2007 (Windows) users click the Office button > View > Freeze Panes >
Freeze Panes.
4. Scroll right and notice which cells are still visible
5. Go to cell A1
6. Scroll down and notice which cells are still visible
Office 2007 (Windows) users click OK after each pane that you use in the Format
Cells window. Otherwise, Undo will undo all formatting steps used.
7. Reset the formatting by clicking the Redo button
Office 2007 (Windows) users click Home, and in the Styles section of the toolbar,
click Conditional Formatting > New Rule > Format only cells that contain.
Add a condition so that any values less than or equal to 15 have a green
background.
10. From the Format menu select Conditional Formatting and click Add >>
Office 2007 (Windows) users click Home and select Format only cells that
contain in Conditional Formatting > New Rule.
11. Set the first value to Cell Value . . .
12. Select less than or equal to from the second menu
13. Enter 15 in the third field
14. Click Format
15. Click Patterns
Office 2007 (Windows) users select Margins from Page Layout > Sheet Options.
3. Click Margins
4. Check Horizontally and Vertically to make the data print in the center of the page
5. Click Sheet
Office 2007 (Windows) users select Sheet from Page Layout > Sheet Options.
6. Click the arrow in the “Rows to repeat at top” field
7. Click cell A2 and press Enter
8. Click OK
Summary
• All formulas begin with an equals sign
• Use parentheses to identify the order of calculations in a formula
• Use formulas so you don’t have to calculate by hand
• Check your page setup before printing; often, Landscape is a better choice than
Portrait
Office 2007 (PC) users click the Data tab, then click the Filter menu.
6. Choose (Custom Filter…) from the Filter menu next to the “Length of Course
Name” column header in cell C1
Office 2007 (PC) users click Number Filters, then choose Custom Filter…
7. Choose is greater than or equal to, type 30 in the field, and click OK
Office 2007 (Windows) users click the Home ribbon and select the menu below Paste.
4. Enter a name for this range, such as Grades_Table, and press Enter
Now those cells can be referred to as Grades_Table without the use of dollar signs, cell
ranges, or worksheet names.
b. Add A2 to the formula followed by a comma to get the matching value; the
formula will now read =INDEX(Photos!A2:D427,MATCH(A2,
c. Select cells D1:D427, where the list of the photos is, in the Photos
worksheet; your formula will now read
=INDEX(Photos!A2:D427,MATCH(A2,Photos!D1:D427
d. Since you're looking for an exact match, make sure to enter a comma, then
the word FALSE, and a closing parenthesis for the MATCH function, so that
your formula reads
=INDEX(Photos!A2:D427,MATCH(A2,Photos!D1:D427,FALSE)
5. You want to return the value from the first column of data in the Photos worksheet,
so enter a comma and the number 1, then a closing parenthesis; the final result is
=INDEX(Photos!A2:D427,MATCH(A2,Photos!D1:D427,FALSE),1)
6. Adjust the formula to make all of the cell ranges absolute, so that the formula reads
=INDEX(Photos!A$1:D$427,MATCH(A2,Photos!D$1:D$427,FALSE),1)
Alternatively, you could also create named ranges for all of these references.
7. That gets you the Student Number in B2
8. To get the First Name and Last Name, copy that formula to C2 and adjust the
formula so that the MATCH column, A2, is absolute:
=INDEX(Photos!A$1:D$427,MATCH($A2,Photos!D$1:D$427,FALSE),1)
9. Then change the 1 at the end of the formula to a 2; paste the formula in D2,
changing the 1 to a 3
10. Select cells B2:D2 and AutoFill down the rows
You did it! Now, you can match data left or right!
The result might be the opposite of what you expect—the cells where student portraits were
found now read FALSE, while the students whose portraits were not found read TRUE. The
reason is the ISNA function tests for the #N/A error; if the cell's value is that error, it
returns true; otherwise, it returns false.
This is the opposite of our objective. We want the students whose portraits were found to
say TRUE, and the students whose portraits were not found to say FALSE. So we need to flip
this logic on its head, and to do that, we add the NOT function:
3. Go to cell D2, and modify the formula to read
=NOT(ISNA(MATCH(A2,Photos!A$2:A$427,FALSE)))
4. AutoFill the formula down the rows
You reversed the formula; the students whose portraits were found are now marked TRUE,
whereas the students whose portraits were not found now read FALSE.
Bonus Activity—Use IF, ISNA, MATCH and VLOOKUP to show the photo file name if one
exists, or show “No Picture” if one does not exist.
1. Go to cell E2 and enter the formula
=IF(ISNA(MATCH(A2,Photos!A$2:A$427,0)),"No
Picture",VLOOKUP(A2,Photos!A$2:D$427,4,FALSE))
2. AutoFill the formula down the rows
Use what you have learned in this course to break this formula into pieces and learn what it
is doing.
2. Select General
This keeps Excel from saving AutoRecover information about the file, and thus
reduces disk activity while you are working.
6. Click OK
Be clear—AutoRecover is not the same as auto save. AutoRecover is designed to help you
when Excel crashes, but it's no substitute for saving early and often. It’s a good practice to
save after every major change in your document.
Summary
• When using lookup and reference functions, use TRUE for an approximate match and
FALSE for an exact match
• When used with such functions as AND, OR, and NOT, the IF function is a powerful
tool
• When using SUMIF or COUNTIF, make sure to use dollar signs in the first argument
to keep the criteria the same, or use named ranges to simplify the process
• Customize your Excel environment to suit your needs
• Describe how CSS works with the DOM to add style to pages
1. First, get the current login screen from the server. If you notice when you go to the
server name with no backslash, you get the login screen, but there is no page name.
What is the name of the page for the login screen?
_________________________________________________________
2. Usually, you can use the extension htmlr to retrieve files from the server. You will
notice that this does not work for the login page due to security. This means you
must get the page from the server. For this example, it is included with the
curriculum materials.
3. Open the pw.html file in a text editor, and find the code that inserts the PowerSchool
logo image. What is the file name and what are the size limitations currently set to?
_________________________________________________________
4. There is also a sample logo included with the curriculum materials called wolf.png.
This size of this file is 200 X 133 px. To insert the mascot logo on the parent page,
you first need a new row in the table. To do this, copy everything between the
opening and closing <tr> tags that shows the PowerSchool logo, paste it directly
above the text that was copied, and change the file name and size as shown below:
<tr>
<td colspan="3" align="center"><img src="/images/wolf.png"
alt="PowerSchool" width="200" height="133" alt="Mascot"
><br><br><br></td>
</tr>
<tr>
<td colspan="3" align="center"><img src="/images/pss_logo.png"
alt="PowerSchool" width="201" height="60" alt="PowerSchool"
><br><br><br></td>
</tr>
5. Save the file with your assigned number following the name, for example pw33.html,
and upload to the server using PowerSchool Administrator. To navigate to your login
page, manually type in the address, for example
http://mypsserver.com/public/home33.html
Another area to customize the look of PowerSchool is the icon in the top left corner once a
user has logged in. There are a couple of files that need to be modified. First is the
/admin/home.html file, where the filename and size must again be changed. This only
changes the logo on the screens that use the home frame. The other screen that needs
changing is the more2.html. This is the student pages menu that contains the links down
the left side. The image name for this file is pss_powerschool_logo.2.png.
1. What is your browser’s home page? Go there and try along with the presenter to
view, edit, and turn off the site’s CSS file.
How many CSS files does the site use? (Enable Firebug, and then look at the CSS
tab.)
_________________________________________________________
What code can you edit to change the main body text’s style? (Using Firebug, click
an element of the CSS and change it.)
_________________________________________________________
What does the site look like when you turn off the CSS? (Enable Web Developer,
then in the Firefox’s Tools menu select Web Developer > CSS > Disable Styles >
Disable All Styles)
_________________________________________________________
2. Go to the main page of PowerSchool (Web Developer will probably still have CSS
styles disabled)
What does the site look like without the CSS?
_________________________________________________________
3. Log out and log back in as a guardian (your presenter will give you credentials to log
in)
What does the site look like with the CSS off?
_________________________________________________________
In the early days of HTML, the browser handled formatting and HTML defined the content.
That was fine until new HTML tags were added that controlled formatting such as <font>,
which made it difficult to separate content from format. For this reason, World Wide Web
Consortium created the concept of styles. Created as a solution to a problem, Cascading
Style Sheets (CSS) have been part of the web for a long time. But, CSS is often overlooked.
Simply stated, style sheets define how HTML elements are displayed. While style and layout
may still be controlled within the HTML document, using a style sheet allows just one place
to define the style and layout for an entire website. This eliminates the need to create HTML
code on every page, and also allows changes to style and layout to be made by modifying a
single file. This file is stored on the server, then referenced within the HTML document in
the following form:
<link href="/images/powerschool.css" rel="stylesheet">
There are multiple places where styles can be assigned. One is inside the HMTL element,
called inline style. The second is in the head of the HTML document, referred to as the
internal style. And last, styles can be assigned using the CSS file stored in a separate
location, called external style. Also, the default settings of the browser can affect style.
Since there are multiple places that style can be defined, it is important to understand the
order in which they process or cascade. The following list shows the priority in which the
styles cascade.
The styles are in ranked order of precedence. For example, if there is an inline style defined
as part of the HTML element, then that style will override the external style sheet. The
exception to this rule is if the external style sheet link is placed below the internal style
sheet in the <head>, then the external style sheet will override the internal one.
CSS syntax has three parts: a selector, a property, and a value. Use curly brackets to
contain the property and value. The selector is normally the HTML element that is being
defined. The property is the attribute that you wish to change. The value is what you are
setting the attribute to. For example, body{color: #333333}
This code defines the color of the text as dark gray for all body elements in the HTML
document that are not defined by another style.
If the value contains multiple words, put quotes around the text. For example,
body{font-family:”Arial Narrow”}
To specify more than one property, use the semicolon to separate each property. For
example, body{font-family:”Arial Narrow”;color:#333333}
The following is a list of some of the more common properties used in PowerSchool:
Property Explanation
background-color Sets the background color of an element
color Sets the font color
1. Find the path of the Powerschool CSS file, and write it in the space below
_________________________________________________________
1. In the powerschool.css file, change the font color for the styles listed in the table
Since there is only one CSS file, the instructor will upload the file to the server.
2. Once the instructor has uploaded the new CSS file, try to find the pages where each
of the element styles is found and complete the following table:
Class Color Page where class is found
BODY #FF0000 (red)
TH #800080 (purple)
.body #FFFF00 (yellow)
.bold #00FF00 (green)
2. Find the portion of the CSS that defines the pseudo-class for the links
3. Modify the order of the definitions so that hover is after both link and visited (this
allows the underline to function properly)
4. Spend time modifying other parts of the CSS to find how the changes affect
PowerSchool screens
4. The first and last column will be blank, which will put our date and time in the center
under the term and school. In the second column, we want the date justified to the
right. Find the second column and insert the following code:
align=”right”>~[letter.date]
so that the code for the added columns will look like this:
<tr>
<td></td><td align=”right”>~[letter.date]</td>
<td></td><td></td>
</tr>
5. In the third column, we want the time, so find the third column and enter the following
code:
~[time]
Summary
Using the styling tricks you learned in this class allows you to give PowerSchool the Extreme
Makeover. Understanding the organization of the image files and where they are used, you
can change the look of PowerSchool to fit your district with very few modifications.
Also, by understanding what Cascading Style Sheets are and how PowerSchool leverages
the benefits of CSS, you can make changes to a single file that will be seen in all areas of
PowerSchool. Changing font sizes, type, and color in the powerschool.css file to fit the look
of your district gives you greater flexibility than changing multiple files. By using class
selectors, you can add new styles to your site or add a new class to your links by changing
the pseudo-classes.
Finally, you saw the power of using wildcards to make mass changes to PowerSchool. Since
wildcards are used in most pages of PowerSchool, you can alter many pages by changing a
single file.
• Create GPA formulas, GPA calculation methods, and honor roll methods
• Display GPAs and honor roll records on reports and form letters
GPA Overview
To set up GPAs, you must perform and understand several tasks. Grades, whether current
or historical, are the first step to determining the GPA that a student receives. Each grade
has a GPA value. Define the values when setting up the grade scale, and identify the overall
GPA value by formatting a calculation method. Finally, use GPA codes to display GPAs on
reports.
Create and edit GPA calculations at the district level. PowerSchool has four default GPA
formulas:
• Simple
• Simple Percent
• Weighted
• Weighted Percent
3. What are the purposes behind calculating and publishing student GPAs?
GPA Formulas
Writing a GPA formula is a lot like writing a recipe. First, you have to know what ingredients
you need. If you don’t have the ingredients, you can’t finish the recipe. The same is true of
writing GPA formulas. When you complete a formula, use it to help you create additional
formulas.
Functions are the ingredients you use to write a GPA formula. Functions are numerical,
logical, statistical, text, and GPA. Begin writing a formula by following these guidelines:
• Write the calculation in common English
• Convert common terms to GPA field names and add () to the end of the field names
• Add PowerSchool’s operators
• Add PowerSchool’s formatting code
10. Enter the information in the Query Options fields to meet the needs you defined in
Activity 1.
11. Select the options in the Projected GPA Options fields if your method is this type of
calculation
12. Click Submit
You’ll use these three elements most often, but you can also use more code elements. The
complete code looks similar to the following example GPA code:
^(*gpa method=”simple” type=”cumulative” term=“S1”)
Anything specified in the calculation method always overrides options identified in the GPA
code. For example, if your weighted GPA is set up with the Cumulative Calculation Type,
you cannot print a current weighted GPA onto the student’s report card. For this reason,
schools often create additional calculation methods.
4. Use the default values for the remaining fields, and click Submit
7. Click Submit
8. Click Schedule Listing, and format the report card to show current or historical
grades so that you can check your GPA for accuracy
Note: Be sure to enter a column width for each column you’re adding.
If your GPA code or method is tied to a term, show the grades for that term by
entering the term code in the box next to the menu.
10. Choose a small group of students (around a dozen), and run your report card
11. Check the output from your code against the students’ Quick Lookup or Cumulative
Info page
Group Two
1. Navigate to Apple Grove High School
3. Click New
5. Use the default values for the remaining fields, and click Submit
7. Click Report Body, and enter the letter, fields, and GPA code
8. Choose a small group of students (around a dozen), and run your form letter
9. Check the output from your code against the students’ Quick Lookup or Cumulative
Info page
10. Modify the code, and run the form letter again if you have time
Class Rank
GPA affects more than just honor roll. For high school students, GPA also calculates class
rank. Because GPA and class rank go hand-in-hand, so you must properly set up both for
the results to be correct. Unlike GPA, class rank is not dynamic. It only changes according to
the recalculation schedule.
Navigate to School > Class Rank > Class Rank Methods > New, and create your Class
Rank method by choosing a GPA method for the ranking. Determine whether to exclude
students that are excluded from the class rank, and whether to include early graduates. Use
the Class Rank Recalculation Frequency page to select how often class rank is recalculated.
Or, click Recalculate now on this page to recalculate class rank immediately. Run the
Class Ranking report from the Reports page to get a list of students’ rank and GPA by grade
level.
1. On the school’s Start Page, click School > Honor Roll > New
3. Use the default values for the remaining fields, and click Submit
5. Enter a name and description for the first (highest or strictest) level
6. Make selections from the GPA Calculation Method and GPA result is fields
7. In the Comparison field, select a comparison to set the threshold for this level
8. In the Grade Options section, select and identify any grades that include or exclude a
student from this level
9. Click Submit
1. On the Start Page, click School > Class Rank > Class Rank Methods > New
3. Make selections from the GPA Calculation Method and GPA result is fields
4. Use the default values for the remaining fields, and click Submit
Summary
In this course, you learned how to:
• Measure student success with GPAs
• Write GPA formulas and methods
• Use code to place GPAs on reports
• Set up, calculate, and store honor roll records
Health Setup
Before recording health information at the school level, define each immunization and the
menu options for screenings, office visits, and certifications at the district level. Complete
six Health Setup items: Vaccines, Exemption Types, Certificate Types, Screenings, Office
Visits, and Grade Level Entry Certifications.
Vaccines
Immunization requirements vary from state to state. The list below represents vaccinations
that are commonly required.
MMR MMR Tb TB
You will look walk through the steps involved in setting up vaccines later in Activity 1.
Exemption Types
In some cases, a student may be exempt from a vaccine. Common reasons a student is
exempt are medical, religious beliefs, past occurrences, or personal reasons. Keep track of
exempted students with Exemption Types. Flagging a student as exempt from a vaccine will
help ensure that you won’t send out an immunization notice to that student by mistake.
Complete the following steps to add an exemption type.
1. On the Start Page, click District > Health Setup > Exemption Types > Add
2. Enter the reason for exemption in the Exemption Name field; for example, enter
Medical
3. Enter the reason code in the Exemption Code field; for example, enter Med
4. Leave the “State Report Name” and “State Report Code” fields blank
Use these fields to define the State Reporting information if it is different from what
you just entered.
5. Click Add and click Submit to confirm the update
If you navigate away from the Exemption Types page before submitting, the type will not be
saved. Click Add to enter the next exemption type. Click the Pencil icon to edit the
exemption type. Click - to delete the exemption type.
Certificate Types
Certificate types explain the form of the immunization notification. Common certificate types
are:
• County Record
• Health Clinic
• Physician’s Report
• School Record
• Yellow Immunization Record
Complete the following steps to add a certificate type.
1. On the Health Setup page, click Certificate Types > Add
2. Enter the source of the certificate in the Certificate Name field; for example, enter
Physician’s Report
3. Enter the source code in the Certificate Code field; for example, enter Phy
4. Leave the “State Report Name” and “State Report Code” fields blank
If your state tracks this information, however, complete these fields.
5. Check Default Certificate if you want this to be the default option when adding new
vaccines
6. Click Add and click Submit to confirm the update
Screenings
PowerSchool has six pre-formatted screenings: Hearing, Oral Health, Scoliosis, Tuberculosis,
Vision and Color, and Vital Signs/Biometrics. Each screening requires some setup for the
screening menus. You cannot use the screening menus on the student Health page until you
format the menu options at the District Office. You will walk through the steps involved in
formatting screening menu options later in Activity 4.
Office Visits
Use Office Visits to record each time a student visits the nurse or is seen for health reasons.
Enter each of the items to display in the three Office Visit menus. The three menus are
Office Visit Type, Office Visit Provider Type, and Office Visit Outcome. Use the Office Visit
Type menu to explain why the student is visiting the nurse. Use the Office Visit Provider
Type menu to describe the person giving care, such as the nurse or another school
employee. Finally, use the Office Visit Outcome menu to describe the action taken.
Complete the following steps to add a value to the Office Visit menus.
1. Click the Office Visits tab
2. Click Add next to one of the three menus
Use these fields to define the State Reporting information if different from what you
just entered.
5. Click Add
6. Click Submit to confirm the changes
Repeat steps 2-5 for every grade level that requires certification.
Use these fields to define the State Reporting information if different from what you
just entered.
6. Enter the doses required in the “Number of Doses” field; for example, enter 1
7. Enter additional information in the Description field
8. Check This vaccine is optional
Use the optional check box to identify vaccines that are optional, but still might have
dates recorded.
9. Click Add
10. Check Require users to certify transcription accuracy
If you select the “Require users to certify transcription accuracy” check box, users
must select a verification check box before submitting immunization updates.
11. Click Submit to confirm the update
If you navigate away from the Vaccines page before submitting, the vaccine
information will not be saved. You must click Submit to save any of these changes.
The same three fields are present for every menu option, no matter the screening
type.
4. Enter the weight status in the Display Value field; for example, enter Losing Weight
xx
5. Leave the “State Report Name” and “State Report Code” fields blank
Use these fields to define the State Reporting information if different from what you
just entered.
6. Click Submit to confirm the changes
Recording Immunizations
The student Health page mirrors the Health Setup page. The Immunizations tab is the
default tab. Each vaccine you set up is listed, along with columns to record each dose.
Icons make it quick and easy to spot why items might be blank. If you exempt a student
from a vaccine, the EX icon appears next to the vaccine name. If you mark a student as out
of compliance, the ! icon appears next to the vaccine name. If you identify a vaccine as
optional, the OP icon appears next to the vaccine name. To flag a student as exempt or out
of compliance for a vaccine, click the vaccine name and select the appropriate status.
In the “Description Of Change” field, describe every change you make, whether you are
fixing an incorrect date or recording information for the first time.
Click View Change History to review all the updates to the Immunizations tab. Every time
someone modifies the record, the Change History page records the date and time of the
change, the user who made the change, and the notes from the “Description Of Change”
field.
You can’t save the changes until you select the check box. To remove the check box
from the page, clear the “Require users to certify transcription accuracy” check box
on the Vaccine Management page.
11. Click Submit
Screenings
Use the Screenings tab to enter screening information or enter a waiver for a screening. You
set up each screening with values specific to your district, but the Add Screening page
contains more fields. You also created the waiver reasons when setting up the screenings at
the District Level. You might waive a student because of financial reasons or lack of access
to doctors. Screening records continue to accumulate each school year.
Office Visits
Use the Office Visits tab to document when and why a student visits the nurse’s office.
Every time a student goes to the nurse, no matter how brief the visit, record all the details.
Earlier you set up the values for three Office Visit menus, however, the “Add Office Visit”
page contains many more fields. Record how long the student stayed, if you contacted the
parents, and what your assessment and actions were.
Incident Management
PowerSchool's Incident Management makes it possible to specify and record who was
involved in an incident, what objects were used, and what actions or consequences resulted.
In this course, you will learn to use the Incident Management system to:
• Record incident details
• Conduct incident searches
• Set up incident codes and subcodes
Recording Incidents
The Incident Detail page includes several sections for recording incident details and
relationships:
• Incident Description
• Incident Builder
o Participants
o Incident Elements
To expand or collapse a section, click the section name or small arrow to the left of the
section name. When expanded, the Incident Detail page is lengthy.
Incident Description
The first part of the Incident Detail page organizes the main descriptive data of the event.
The Incident Type menu is used to categorize the event, and is also the only required field
on the page. In the Incident Date and Time Frame fields, use the Calendar icon to pick the
event’s date, then use the Time and Time Frame menus to pinpoint the exact time of the
event and a general description of that time.
In the Title and Description fields, create a short descriptive title to identify this particular
incident and enter a descriptive report of the events.
Use the Location menu to choose a general place category and the Location Description to
be even more precise. There is an additional field to enter the name of the person who
prepared this entry, as well as a field to enter the estimated financial cost of this event.
Adding Participants
When adding participants, use the search fields to retrieve data regarding individuals that
are members of the student body or staff. The results list the type of member (student or
staff), and information regarding names, school location, grade of student or grade taught if
a teacher, and gender of student. The “other” role option is for a participant not entered
into PowerSchool, such as a student from another district. Not only can you enter
information about the participant, you can identify the participant as “unknown.”
After selecting the participant, add attributes to the participant. Choose one or more items
that assign a general trait to the incident. Attributes are qualities of an incident, but are
optional. Attribute types include the following: gang-related, illegal activity, resulted in
student arrest(s), or law enforcement officers involved. These selections may relate to state
and local event designations, and/or relate to weapons or miscellaneous attributes. Then,
choose from the following role options: reporter, victim, offender, and witness. Add as many
participants to one incident as necessary.
Incident Elements
Incident elements define an incident even further. Add any or all of the following elements:
actions, objects, behaviors, and attributes.
Information regarding consequences is entered with actions, such as detention or
suspension. When detailing the action, enter descriptions and start and end dates, as well
as time durations. If changes occur, enter any notes regarding the reasons for the change.
If the offender used an item in the incident, such as a can of spray paint or a cigarette, add
an object. Then, associate the object to the offender. Choose the specific object from the
Object Code menu, and enter a description and a quantity if necessary.
Behaviors are actions that occur during the incident. Use behaviors to record actions such
as a shooting, sale of illegal drugs, or property damage. The combination of attributes and
behaviors creates a list of incident details that can be reported and viewed in an aggregate
manner, allowing a district to see how many incidents over a period of time were gang-
related and involved a shooting. You learned to add attributes with a participant, but you
can add them here as well. After adding the elements, drag them to the participant they
apply to.
Editing an Incident
After you create an incident, you can return and make changes if necessary. The Change
History lists dates (if any) showing when the incident data has been changed. To view
information on who made the change and the reason for the change, click the date.
Searching Incidents
Administrators and staff with security authorization can access the Incident List not only to
create a new incident, but also to search for incidents. Use PowerSchool group security
settings to manage access for the different incident types on the Incident Management
page. Navigate to a security group and, to view the new section, locate Accessible Incident
Types. Select each incident type that you want available to users in the desired group.
On the Incident Management function page, click Search Filter to expand or collapse the
section. When expanded, the Search Filter displays a series of variables you can use to
narrow your search of recorded discipline incidents.
• Date Range – range of dates in which the incident occurred
• Incident Title – title of the incident
• Incident ID – unique ID of the incident
• Incident Type – category of the incident
Selecting one of the filters displays a text field or menu that requires additional data to be
entered or selected. In the case of a date range, click the Calendar icon to select the start
or end dates. The Incident Type filter reveals a menu to choose the type of incident, such as
Fighting. The Incident ID and Incident Title require you to enter text information. If you are
not going to use a filter, click Remove. Any selected filters will be searched, even if you
didn’t enter information in the field.
Once you format the filter choices, click Search. The results display below the filters. The
Incident List contains several pieces of information:
• ID – Unique sequential number generated by PowerSchool when the incident is
created
• Title – Short description of the incident
• Incident Date – Date and time of the reported incident
• School – Name of the school where the incident occurred
The list can be re-sorted by clicking the heading of any category. Also, move through the
list page by page with the page navigation links below the list. To view details about the
incident, click the ID, Title, or School hyperlinks to open the Incident Detail page.
4. Click Search
5. If your incident is not listed on the first page, use the page navigation links to find
the incident
District Setup
Staff with security privileges can access the setup by clicking District on the Start Page.
There are three areas to set up:
• Incident Codes
• Incident Subcodes
• Incident Types
Category Description
Action Codes Describes disciplinary action
Assigns categories of events occurring in incident (May
Attribute Codes
relate to state, local, or other categories)
Behavior Codes Describes detail of behavior involved in incident
Describes further details about the participant (May
Participant Attribute Codes
relate to state, local, or other categories)
Location Codes Associates general location of incident
Object Codes Associates type of object used in the incident
Participant Role Codes Associates the participant’s role in the incident
Time Codes Describes time frame in which the incident occurred
Duration Codes Describes time frames related with Resulting Actions
The Code Types, Codes, and SubCodes are expandable and collapsible. Expand Code Types
to see the 11 system-defined Codes Types listed as hyperlinks. Click a Code Type to expand
the Codes section, which shows the relevant codes already available.
1. Navigate to the District Office and click District > Incident Management > Code
& Subcode Setup
3. Enter a name for the new Code in the Category field; for example, enter Hate Crime
10. In the Full Description field, enter Offensive and discriminating language based
on racial or religious hatred
15. Click System > Security > Groups > Office Staff
16. Check the new incident type you created, and click Submit
• Explain the role of the DOM and how to utilize it with PowerSchool pages
Objects can also do things. In the example of Toby the dog, he can fetch, sit, bark, wag,
and do what he does best, sleep. These actions are referred to as methods when talking
about the DOM. Actions usually have some sort of description of the action. In the DOM, the
description is indicated with parenthesis. Some examples of the notation of methods are:
dog.sit(true)
dog.bark(loud)
dog.fetch(ball)
dog.tail.wag(fast)
Describing a dog using the DOM seems pretty straightforward and maybe a little silly, but
transferring this concept to a web page may seem daunting with all the different objects
that can exist on a single page. The key point to remember is that they are simply objects
that are part of another object, which is part of another object, and on and on. While the
DOM tree may be very large, the structure is simple to understand.
When visualized as an upside-down tree, the top becomes the root. In terms of the DOM,
this is the root element. When referring to the HTML DOM, this root element will be <html>,
the opening HTML tag for the page. This point will be the point that all other objects refer
back to.
From the root, the DOM branches into nodes, giving the tree a hierarchical structure. The
terms parent, child, and sibling are used to describe this structure. Every node, except the
root, will have only one parent. Parent nodes have one or more children. If a parent node
has more than one child, the children are referred to as siblings. If a node has no children,
it is called a leaf.
One of the most confusing parts of DOM navigation is the expectation that an element node
will contain text. Element nodes do not contain the text found in a web page. Text is always
stored in a text node. For example, in the HTML code: <title>PSU and the DOM</title>, the
element node <title> does not contain the text “PSU and the DOM.” This text is stored in a
text node, that is a child of the <title> node; this concept will be discussed in more detail
later.
Answer: _________________________________________________________
Answer: _________________________________________________________
Answer: _________________________________________________________
Answer: _________________________________________________________
Answer: _________________________________________________________
3. Once enabled, Firebug may be opened at any time by clicking the small bug or check
mark in the bottom right corner of the screen
To close the Firebug window, click the X in the top right corner of the Firebug
window.
4. Once opened, Firebug has many areas to view, including the Console, HTML, CSS,
Script, DOM, and possibly others, depending on your version
5. Take time to navigate through each screen and become familiar with the layout of
the screen
The two areas that will be used in this class are the Console and the DOM.
1. For any student, open the Demographics page in a new window by right-clicking the
link and selecting Open in new window
Answer: _________________________________________________________
The second method is getElementsByTagName. This method uses the HTML tags to identify
objects. This command is generally used to find multiple objects in a page, but can
reference single objects as well. This method searches the entire web page and finds all of
the objects with the specified tag name. For example getElementsByTagName(“input”)
would return all the input text boxes on the page. Since the result can be multiple objects,
this method must be used with caution. Also, the output of this method can be confusing.
For example, the code document.getElementsByTagName(“input”).length does not return
the length of a text box. Instead, since it looks for all of the text boxes on the screen, this
code will actually return the number of text boxes on the page. Another example is
document.getElementsByTagName(“input”)[0].value. This will return the value that is
entered in the first input field on the form. By changing the index, all of the inputs can be
accessed. Knowing these two codes would allow searching through all of the inputs on a
page with a loop.
The last method is navigation of the DOM. This method uses object names and relationships
to navigate the DOM tree. This can be the trickiest of the three methods, since it requires
understanding the DOM structure in order to navigate. This method was used in the
previous example by using the [0] with the input tag. In JavaScript, square brackets
indicate an array. In the DOM, square brackets indicate an array of objects. By changing
this number, the various objects may be accessed. There are also 3 important properties
when navigating the DOM:
• parentNode
• firstChild
• lastChild
In the PSU DOM example web page, the DOM was small, making the navigation simple. To
reference the title, the DOM path would be:
document.body.childnodes[1].firstchild
Obviously, the path to objects on a complicated page can get quite lengthy. The best use of
DOM navigation comes when it is mixed with other navigation methods such as IDs.
Much of the time, data validation happens in a form. This is a benefit when finding objects
on a page. The forms property references each form on a web page. The elements property
references each element in that form. For example:
document.forms[0].elements[‘first_name’].value
would reference the first_name field on the first form on the page. This method can prove
very simple when attempting data validation. There is one problem. PowerSchool pages are
rendered once the client’s browser receives the page. This means that field names no longer
exist. Instead, [table]field_name are replaced with a code that starts with UF-. This code is
actually the table number, field number, and DCID of the record that is being referenced by
the form element. This makes it impossible to use this reference when writing JavaScript
since the DCID changes for each student viewed. Fortunately there is a workaround.
In most situations, it is not beneficial to have PowerSchool render the JavaScript, so the
PowerSchool rendering engine knows that anything on a page that is inside JavaScript
should not be changed; that is, except for JSFieldParam. This code indicates to the
PowerSchool rendering engine that the field given should be converted to the corresponding
UF code. This process allows for a field to be converted to the UF code for the corresponding
student. For example:
~(JSFieldParam;[01]lastfirst)
would be converted to:
UF-001002101
for a student with the DCID of 101.
Notice that the table number is 001, field number is 002 and DCID of the student is 101. By
using JSFieldParam, JavaScript is now able to reference the form elements on the page.
</script>
3. In the script tags, create a function called checkDOB which will be passed a value
into a variable called dobID
};
4. Create a variable called dobVal and set it equal to the value of the element that was
passed to the function
If it is true, then display an alert that will indicate that the DOB field cannot be blank,
and return “false.” Returning “false” will essentially stop the form submission. If the
statement is not true, then return “true,” which allows the form submission. The
code looks like this:
if(dobVal='0/0/0'){
alert("DOB field may not be blank. Please enter the students
DOB.");
return false;
}
else{
return true;
};
6. Find the <form> tag in the body of the document and look for the onSubmit portion
You will see that there is already an onSubmit statement to check for address
validation. If you did not already have this, you would add a line identical to it, but
change the script to be executed with your script and variable. Since it already
exists, you will use an and statement (&&) to add to it. The new statement will look
like this:
<form action="/admin/changesrecorded.white.html" method="POST"
onSubmit="return validateInput() &&
checkDOB('~(JSFieldParam;[01]dob)')";>
8. To test your page, select a student, right-click Demographics, and select Open in a
new tab from the contextual menu
1. Using a text editor, open the file validate_phone.js from the activity files
}
3. In the function, create a variable called phoneStr that is equal to the value of the
node phoneID, and the statement will look like this:
phoneStr = document.forms[0].elements[phoneID].value;
4. In the function, use an if-then statement to determine if there is a value in the field
If there is, then execute the next statement. If not, do nothing. The code will be:
if(phoneStr.length!=0){
}
5. If the above statement is true, then use a second if-then statement to determine if
the value of phoneStr is in the correct format
This check is done using the search method. This method will search the string
provided for the values given. In this case, it is searching for 3 digits, a hyphen, 3
more digits, another hyphen, and finally 4 digits. Using an or statement, also ensure
that the string is 12 characters long. If the value is not correct, display an alert
indicating so. The code will look like this:
if(phoneStr.search(/\d{3}\-\d{3}\-\d{4}/)==-1 || phoneStr.length!=12){
alert("The phone number you entered is not valid.\r\nPlease enter
a phone number with the format xxx-xxx-xxxx.");
}
6. Save this file as validate_phone##.js, replacing ## with your number, and upload to
the server to the /admin/javascript folder
7. Using a text editor, open the file generaldemographics.html from your Basic
JavaScript activity files
The script that you just created needs to be referenced as an external script in the
page.
8. In the head of the page enter the following line of code (replacing ## with your
number):
<script language="JavaScript"
src="/admin/javascript/validate_phone##.js"></script>
9. The onChange event handler will be used to trigger the validatePhone script when
the home phone field is changed
This piece of code could be used multiple times in the same page if needed. The code
shown in bold is the piece that was added.
<td><input type="text" name="[01]home_phone" value="" size="17"
onChange="validatePhone('~(JSFieldParam;[01]home_phone)');”></td>
10. Save the file as generaldemographics.html##, replacing ## with your number, and
upload to the server into the /admin/students folder
11. To test your page, select a student, right-click Demographics, and select Open in a
new tab for the contextual menu
12. Switch to this tab, and then in the url change generaldemographics.html to
generaldemographics##.html where ## is your number
Summary
Understanding the DOM structure and its navigation makes using JavaScript much more
powerful. By using the relationships in the DOM, objects on a web page can be easily
located and referenced. Once the objects are located, using the DOM to access their
properties provides a powerful means for making changes to a page.
Leveraging the power of the DOM against PowerSchool pages allows you to create custom
pages that can validate and manipulate the data, ensuring data integrity. By using the
techniques learned in this class, you will find that your PowerSchool pages become more
flexible and dynamic.
Intermediate ReportWorks
ReportWorks is designed to give ReportWorks Developers a drag-and-drop interface for
creating custom reports.
In this class, you will learn to create the following types of reports:
• Free-form Letter with Layering
• Table Report with Table Grouping
• Graph
• Cross Tab Report
• Table Grid Report (Student Bell Schedule)
Multiple choice: In the middle column below indicate where you would edit the items
on the left by choosing the letter of the correct choice from the column on the right:
Give a user permission to be A. Report Categories
a ReportWorks developer
ReportWorks Scheduler Node B. Report Preferences
Establish report folders by C. Staff > Security
type of layout or data
Control what types of
sensitive information a
developer might see and use
Number of Concurrent
Reports
Jobs Completed Report
Retention Period
ReportWorks Application
Timeout.
1. What would you use in ReportWorks to show the assigned house for student?
___________________________________________________________________
2. Where in PowerSchool would you be entering a participant’s gender?
___________________________________________________________________
3. What is the table and field in PowerSchool that gives ReportWorks the room number
for a class.
___________________________________________________________________
From the subset of Class Enrollments give two examples of the following:
__________________________________________________________________
Note: For PowerSchool, the grade level list is dynamically generated. Grade levels are
displayed in descending order from the highest grade level defined in the school settings of
the current school to the lowest grade level defined at the district setting. This arrangement
allows you to generate reports that include data from previous school enrollments.
Date Incident.Id
Participant.Participant_First_Name Participant.Participant_Last_Name
Participant.Participant_Role_Code Behavior.Behavior_Subcode1_Full_Description
Action.Action_Subcode_Full_Description Action.Action_Code
7. Double-click each of the data objects one at a time, and use the handles to spread
the data objects across the layout area
8. Enter labels for clarity; they will look like these, for example: Current Date:
@date@ or Incident Id: @incident.Id@
Current Date: Incident Id:
Role Code: Description:
Action Description: Action Code:
7. Don’t like what it did? then with Attribute Code highlighted, click Keys and
Remove
8. Want a page break? Then click Incident in the grouping area of the Table Inspector;
then click the page break icon to the right of the data object; click Preview to see
results
Note that “count” is in the Key 1 field. The value in the key field determines how the
size of the graph parts will be calculated. Any aggregate modifier, such as count,
sum, average, or total, can be used in this field.
10. Click the Graph Parts menu and select Graph Area; use the graph icons to change
the graph type, add additional graph piece colors in the color grid, and manipulate
the graph in three dimensions using the roller ball
11. Double-click the current graph title and change the title to Gender and the subtitle
to Math Classes by Gender
12. Click Preview
2
1. Column field – one unique value in each column
2. Row field – one unique value in each row 3
You can use a data object modifier such as “count” to get the results you want. “Count” is
one type of modifier in the group called Aggregate Modifiers that can be used as in this
example:
Aggregate Modifiers
Format: @[modifier].[Data Object]@
Example: @count.Ethnicity@
Result: Displays count of each ethnicity code within a group in a table
Modifier Description
3. Click the Details tab; change the Project Name to Student Demographics (with
your initials) and give it a description and for the Data Set, choose Student : Basic
4. Click Scope and in the Data Set pane, click Student to expand the data set
5. Set a Boundary by clicking Demographic; drag Student_enrollment_status into
the Boundaries pane set the value to = 0
6. Click Layout and select CrossTab from the Add Data Structure dialog, and click OK
7. Open the Student Dataset; click Demographic to expand the object, and drag
Gender to the column field
8. Click Ethnicity and drag it to the row field
9. Click in the data field, and type @count@
10. Click Preview to see your results so far; then click Edit to make further changes
11. Click the border of the Cross Tab to activate the Cross Tab Inspector
12. At the bottom of the Inspector window, click AutoFormat
13. Choose Classic 3 for Table AutoFormat, and click OK
14. Click Preview to see the results
9. Double-click the Student Header and click the Merge icon so that the header now
has only 1 column
10. Drag and drop the Contact.FirstLast_Name to the Student Header
11. Double-click @Contact.FirstLast_Name@ in the student header; resize to fit the
entire header and add the text ‘s Schedule so that the line looks like this:
@Contact.FirstLast_Name@'s Schedule
12. Click Preview
Activity 12 – Watch Me
It is now time for show and tell. You may create a project of your own choice or the one
below. You may use templates, but try to start from scratch.
Your physical Education teacher says that she uses individual file cards for each student to
keep track of attendance, activities, etc. She saw some labels at the store the other day
that matched her index cards. She asks if you can create a “label” with student information
like name, grade level, gender, and home phone. By the way, the Avery index card is
8388.
Getting Started
To access ReportWorks, log on to PowerSchool and use one of the two paths:
1. On the Start Page, click ReportWorks or click Reports > Setup > ReportWorks
2. On the Launch ReportWorks page, click Launch and ReportWorks will launch as a
separate application using Java™
Your username and password are the same as the username/password for logging in
to PowerSchool admin. The only case where this is not true is if the user is also set
up to access PowerTeacher Administrator, and in PowerTeacher Administrator the
user changes the username/password. When this occurs, the user needs to use the
PT Admin username/password to access ReportWorks.
3. Enter your username and password, and click Login.
When you log in, you have three choices on the ReportWorks Start Page: create a
report project from a template, start a new report project from scratch, or open an
existing report project.
Publishing a Project
1. After you finish a project, click the Publish tab
2. Give your report a name and a description
3. Select the Output Type
4. Select the PowerSchool Application that will use the report
5. Select an appropriate category
6. Select the schools that will use the report and click the arrow pointing to the
Published Schools box
After you choose the schools, the Security Groups function becomes active.
7. Select the security groups who need access to the report and click the arrow pointing
to the Published Security Groups box
8. Click Publish
Unpublishing a Project
1. Launch ReportWorks
2. Right-click the name of the project, and click Load Report
3. Click the Publish tab
4. At the bottom of the page click Unpublish
6. If the status says Pending or Running, at the top of the pane, click Refresh
occasionally until the job’s status says Completed
7. When the report’s status says Completed, click Completed
Your report displays in whatever format was chosen at the time the report was
published in ReportWorks.
Export Import
1. Log on to ReportWorks 1. Log on to ReportWorks
2. Select project 2. File > Import Project
3. File > Export Current Project 3. Browse to project
4. Selection destination 4. Select File
5. Click Export 5 Click Import
Managing Fees
Assess school, course, and other fees in PowerSchool. Fees may include a lab charge for
students enrolled in certain courses, a uniform charge for athletes and band members, or a
participation fee for field trips. In this course, you will learn to:
• Assess fees
• Issue refunds
Fee Basics
Assess fees a number of ways. For example, manually charge student fees to an individual
student or a group of students for such items as library book fines and field trip fees.
Automatically assess a fee when a student enrolls in school or in a specific course.
Sometimes a student begins the school year with an outstanding balance from the previous
year. This is called a SOY (start of year) balance and is classified as a balance transfer.
However, before assessing fees, establish fee categories and fee types. A fee category is a
broad classification, and is set up at the district level. The fee category defaults in
PowerSchool are School and Course. Fee categories can contain many fee types, which are
created at the school level and tend to be specific. For example, you might have a fee
category for sports at the district level and then set up fee types for baseball, football, and
soccer at the school level.
Listed below are several activities to help you practice managing fees.
1. On the Apple Grove High School Start Page, click School > Fee Types > New
2. For Fee Type, enter your last name and “Enrollment,” for example,
SmithEnrollment
5. Click Submit
3. Enter your last name and “Sports” for the fee category, for example, SmithSports
4. Click Submit
7. For Fee Type, enter your last name and “Uniform,” for example, SmithUniform
2. Click District > Schools/Schools Info > Apple Grove High School > New
3. For Fee Type, choose the enrollment fee type you just created
7. Do not check Pro Ratable, since this is a fee that must be paid in full
8. Your presenter will enroll a new student to demonstrate how the enrollment fee is
assessed automatically
2. Refer to the steps in Activity 1 to add a new fee type called Lab Fee; be sure to
include the fee category and fee description
5. From the course list, choose any biology course, and then click Fees > New
10. Click Pro Ratable, since this fee is spread through the whole grading term
Student Fees
Student Fees are manually assessed fees. Any fee other than a course fee, school fee, or
lunch fee can be a student fee. These fees can range from field trips to uniform fees for an
athletic team. When you create a student fee, you must first create a fee category, and then
create the fee type.
To manually assess a student fee, first search for and select a student, and then click Fee
Transactions. The Fee Transactions page lists all previously assessed fees. From the
Create New Fee menu, choose the applicable fee type to assess a new student fee to an
individual student.
2. Refer to the steps in Activity 2 to set up a fee category called Field Trip
4. Refer to the steps in Activity 1 to add a fee type and description for History Museum
5. On the Start Page, search for and select a student whose last name begins with the
same letter as yours
7. For Create New Fee, choose the fee type History Museum you just created
10. For Amount of Fee, enter 5.00, and then click Submit
Managing Fees
Once you assess a fee, you can view it on the student’s Fee Transactions page. Each fee is
listed on a separate line. To enter payments for a specific fee, click Payment under the
Transaction heading. A New Transaction page opens where you enter payment information.
Click Distribute at the bottom of the Fee Transactions page to enter a payment and have it
allocated across all outstanding fees based on fee type priority. If more than one fee makes
up the total fee balance, the distribute function determines where the money should be
applied based on the priority of the fee type.
You can issue refunds when the student's global balance is negative (i.e., the school owes
money to the student). You cannot issue refunds when the student's global balance is
positive (i.e., the student owes money to the school or there is a global balance of zero).
Click Fee Balances at the bottom of the page to view fee balances for current and previous
years.
2. Search for and select any 11th-grade student whose last name begins with the same
letter as yours
6. Verify that the fee has been recorded under the Paid column
A 10th grade student brings in a money order for $50.00. You need to enter a distribution
payment.
1. Search for and select any 10th-grade student whose last name begins with the same
letter as yours
You can also exempt all students at a school. Change to the District Office, and then click
District > Schools/School Info. Select a school. Scroll to the bottom of the Edit School
page to see the School Fee Information area and the Fee Exemption Status. The options are
the same for all students as they are for an individual student.
3. For Fee Exemption Status, choose Student Exempted from All Fees
4. Click Submit
Fee Functions
You can assess fees for an individual student or a group of students with Fee Functions.
A fee function offers similar functionality as fee transactions, but for a selected group of
students. To access Fee Functions, click Special Functions on the Start Page. You can also
search for and select a group of students, and then choose Fee Functions from the Group
Functions menu below the student list. On the Fee Functions page, you can create
transactions, assess school and course enrollment fees, and clear current balances. Each
time you perform a group fee function, PowerSchool generates a group transaction ID. You
can then use the group transaction ID to perform additional actions, such as reversing fee
assessments or transactions.
• New Fee – used to manually assess student fees to a selected group of students
• New School Enrollment Fee – used if school enrollment fees are created after
students are already enrolled in school
• New Course Enrollment Fee - used if course enrollment fees are created after
students are already enrolled in a course
• Assess School Enrollment Fees – used to assign school enrollment fees to a selected
group of students automatically
• Assess Course Enrollment Fees – used to assign course enrollment fees to a selected
group of students automatically
• Clear Current Balance – used to remove school or course enrollment fees that were
assigned to a selected group of students
3. Click a teacher’s name and then, in the Size column, click the number of students in
the class
9. Search for and select a student to verify that the fee was assessed
2. From the list of functions below the student list, choose Fee Functions
5. Add a description explaining why you are reversing the transaction, and click Submit
2. How would you search for students who have not been assessed a course fee?
3. How would you search for students who have a fee balance of more than $10?
Summary
After completing this course, you learned how to:
• Assess fees
• Issue refunds
• Use Direct Database Export (DDE) and an export template to export student test
scores
When you set up a new test, you enter the test name, select the test level, such as national,
state, or local, and enter a test description. Once the test is set up, you can set up the test
scores associated with that test by clicking Edit Scores next to the test. Enter the score
name, such as Math or Verbal, the sort order, and a test score description.
After you set up the test and test scores, you can enter individual student test scores
manually, or use the Quick Import special function to import standardized test-score data
from an ASCII text file.
3. Enter the test name ACT followed by your last name; for example, ACT_Smith
6. Click Submit
7. Click Edit Scores next to the ACT test, and then click New
8. Enter Math in the Name field and 1 in the Sort Order field
9. Enter Math: maximum score of 36 in the Description field, and then click Submit
10. Repeat this process to add a score for English with a Sort Order of 2 and maximum
score of 36, Reading with a Sort Order of 3 and maximum score of 36, Science, with
a Sort Order of 4 and maximum score of 36, and Composite with a Sort Order of 5
and maximum score of 36
12. Search for and select any student, and then click Test Scores
Student_
number Date Grade_level Comp_1 English_1 Math_1 Reading_1 Science_1
645236653 8/7/03 11 18 18 17 16 21
645236741 8/7/03 11 28 29 27 29 25
645236654 8/7/03 11 18 14 22 19 18
2. Note the name of one student, review the file format, and close the file
4. On the Start Page, click Special Functions > Importing & Exporting > Quick
Import
6. Choose Tab from the Field delimiter menu and choose CR from the “End-of-line
marker” menu
7. Choose MacRoman (Mac) or Windows ANSI (PC) from the Character Set menu
8. Click Choose File and browse to the location of the ASCII import test file
11. When you see the Import Records window, choose the following PowerSchool fields:
14. Because of the number of participants in the class, your trainer will demonstrate the
import process
15. Click PowerSchool, and search for one of the students in the import file
With DDE, you can view a list of all records in a selected table or search for specific records
in a table. Limit the export to records for all schools on your system or for just one school.
For example, export student data about California residents in 4th grade or above who
attend all schools on the system.
What if you need to export records for all 9th graders and their current grades to another
application? Use DDE to match the records in the Student table to the CC table; then,
export both tables of data, open the export file in a spreadsheet application, and create the
graph, table, or chart. You can also export test score information.
1. On the Start Page, click System > Direct Database Export (DDE)
3. Click Select all [x] records in this table, and then click List View
10.Click Search all [x] records in this table, and then click List View
17.Click Search all [x] records in this table, and then click Export Records
a. StudentID
b. [01]LastFirst
c. [01]Student_Number
d. [01]Grade_Level
e. AlphaScore
f. NumScore
g. PercentScore
h. [StudentTest]Grade_Level
i. [StudentTest]Test_Date
j. [TestScore]Description
k. [testScore]Name
21.Save the file on your desktop, and open it in Excel to verify that the data was
successfully exported
Type of Test name Test score Test Test score Test output
code selection selection selection type result
tests name=ACT score=ACT_math which=last type=num result=value
~(tests;name=ACT;score=math;which=last;type=num;result=value)
2. Enter your last name and TestScores in the “Name of this template” field; for
example, SmithTestScores
6. Click 0 next to the template you just created, and click New
Column Number: 1
9. Click New
15. Save the file on your desktop, and open in Excel to verify that the data exported
successfully
Reports
You have learned to import, search for, and export student test scores. Now, here are a few
ways to display and analyze the data:
• On a transcript
• On the student’s Cumulative Info page
• In an Excel pivot table or chart
Object Reports
Use the Object Report template to create transcripts, certificates, or other student
information reports. When you create an object report, you have control of the report
design and layout, and can place text and graphics on the report.
1. On the Start Page, click Reports > Setup > Object Reports > HS Test Scores
Transcript
3. Save the report on your desktop, and open it in a text editor such as Notepad
4. Locate the line that has the report name, add your last name to the report, and save
the file; for example:
<Name>Anderson HS Test Scores Transcript</Name>
7. Click Browse or Choose File, locate the report file, and then click Import
8. You will see a message confirming that the template imported successfully
9. Click PowerSchool
10. Click Reports > Setup > Object Reports and select the report you imported
11. Click Text at the top of the page to add a new text box
14. Enter 6.1 and 7.25 for the X and Y Position fields
15. Use the remaining default values, and then click Submit
19. Enter 7.4 and 7.25 for the X and Y Position fields
20. Use the remaining default values, and then click Submit
26. When the report is completed, click View to verify that the test scores are displayed
on the transcript
2. What information from the GPA Student Screens would you expect to see on a
student’s Cumulative Info page?
_________________________________________________________
3. How many data items can you format to display on the Cumulative Info page?
_________________________________________________________
4. Based on the codes you have used in previous exercises, what code would you use to
display the ACT test date on the Cumulative Info page?
_________________________________________________________
7. Your trainer will demonstrate how to add test scores to the Cumulative Info page
• Row - individual items that determine how you want to display the data
For more detailed information on pivot tables and charts, check out the PowerSchool
University course: “Excel: Clean Up and Analyze Data from PowerSchool.”
Summary
In this course, you learned how to:
• Set up a standardized test
• Use Quick Import to import standardized test scores
• Export test scores using DDE and an export template
• Add test scores to a transcript and the Cumulative Info page
PowerLunch
PowerLunch activities are modeled after tasks you may perform every month. In this
course, you will learn how to:
• Enter the eligibility requirements and understand how to submit free and reduced
lunch applications
district can submit one check and have the money distributed over the four accounts. The
school employee processing the check must know all four lunch IDs.
Deposits
Entering deposits from the PowerLunch menu is the easiest way to record transactions. You
can also record a deposit on a student's Lunch Transactions page. When you use the
PowerLunch menu to record the deposit, you must know the student's lunch ID.
Lunch Groups
Click System > Security > Groups and format a group to set up security for the
PowerLunch manager. Click Uncheck All at the bottom of the page, then check Lunch and
click Submit. Clear the Lunch check box for all other groups so users cannot access the
student’s Lunch page. Set up a separate security group for the Lunch staff so they can
access the PowerLunch menu, but not the student’s Lunch page. Set permissions for the
PowerLunch menu using the “Access to Page Permissions” security feature.
1. Search for and select your student, then navigate back to the Start Page
5. Clear the other check boxes, and select Assign Lunch IDs
Choose the length of the lunch ID and what information will be used to create the ID
6. Click Submit
1. On the Start Page, click PowerLunch > Set Prices and Options
4. Click Submit
Note: Only one class participant working at each school can click Submit.
1. On the Start Page, click PowerLunch > Meal Program Eligibility > Set Eligibility
Levels > New
5. Click Submit
The Free Letter page will appear. You will see several lines of text. At the top are
placeholders for fields of your choice. Below is the body of the letter.
Note: The codes you see on the screen are preceded by a tilde (~). However,
when you enter the codes, precede each code with a caret (^).
9. Click Submit
Note: Only one class participant working at each school is to click Submit. You can
copy the letter into Word, Notepad, or TextEdit for later use.
12. Repeat step 8 for the Reduced and Not eligible letters
~(name_and_address)
Please let us know if there are any changes in family income over the
next 6 months.
Thank you for the opportunity to serve your children. Please feel free
to contact me if you have any questions.
Sincerely,
Ms. Jones
Lunch Manager
~(schoolname)
You can print the letter with the student’s eligibility status.
5. Click your browser's back button to return to the Evaluate a Student page, then click
PowerSchool
6. Select your student, and click Lunch
The Lunch page contains the information about the student's eligibility for free or
reduced lunch. Because this is confidential information, access to the page should be
restricted.
7. Enter today’s date in the Date Submitted and Date Responded fields to record when
the application was processed
8. Click Submit
PowerLunch Functions
Use the Serve Breakfast and Serve Lunch functions to record meals purchased by students
and staff. What do you do if a student forgets to bring an ID card? Use this shortcut: Enter
the student’s last name into the Lunch ID field on the Serve Lunch page, and press Enter. A
list of students with that last name will appear; select the student.
Teachers use PowerTeacher to enter how many lunches and cartons of milk are needed for
each day. If you choose to have your teachers submit lunch counts, totals for each meal
and item students intend to purchase appear on the PowerLunch Class Counts report. Food
service staff use these totals to help in their meal planning.
If you select Quicksale, the Quicksale feature automatically deducts the lunch
amount. It records the sale quickly so that students may move swiftly through the
line. If you clear the Quicksale check box, the Record Sale page will appear. The
charge for one meal appears automatically in the field, but you can edit it.
4. Press Enter
5. If you don’t use the Quicksale option for the student, enter the amount for any a la
carte items purchased as well as any money received in the corresponding fields and
click Record Sale
PowerLunch Reports
PowerLunch has several reports for keeping track of the meals served and money paid. Four
reports are pre-formatted for you: Meal Count report, Meal Count Listing report, Cash
report, and Transaction Detail report.
Cash Report
The Cash report displays the grand total of money collected, itemized by cash and checks
received. Use this report to double-check the amount entered against the amount being
deposited in the bank. You can also audit who received the money. You can run this report
for a specific date, and it should be run at the district level.
4. Verify that today’s date is in the Date Range fields, choose Lunch for the meal, and
click Submit
6. Verify that today’s date is in the Date Range fields, and click Submit
The Managers
PowerLunch managers use the Manager Screen to change past transactions in PowerLunch.
Use the Manager Screen to edit individual transactions or enter meal transactions for a
different date.
Editing Transactions
Mistakes are part of every job. Anyone can accidentally charge a student too much or too
little. Use the Edit Transactions page to make corrections.
Build Reports
The Build Process creates the master schedule by placing courses in specific rooms during
certain periods and scheduling teachers to instruct those courses. The Load Process places
students in a schedule based on their course requests. In a sense, the Build creates the
master schedule and the Load creates the student schedules. To help gather information
and evaluate the progress of the Build or Load, use the many PowerScheduler reports
available.
Pre-Build Reports
The following 12 reports are specific to the “Prepare to Build” stage of the master schedule
process.
Report Description
Conflict Matrix Report Displays student course request conflicts between courses.
Used primarily by schools and districts that are not building
their master schedule in PowerSchool.
Course List Report Displays scheduling information for each course in your active
course catalog.
Course Relationships Displays any course relationships defined for courses in your
Report course catalog.
Course Request Tally Lists the number of primary and alternate student course
Report requests by course. Use to determine how many sections of a
course you need.
Requests by Course Lists the names of the students who requested each of the
Report courses in your course catalog.
Requests by Student Lists the names of the courses each student requested.
Report
Room List Report Provides scheduling information for all of the rooms available
in the school.
Student List Report Provides scheduling preference information for all of the
students who will attend your school next year.
Report Description
Student Request Tally Lists the number of course requests and alternates for each
Report student.
Teacher Assignments by Lists the courses assigned to each teacher in your school by
Course course.
Teacher Assignments by Lists the courses assigned to each teacher in your school by
Teacher teacher name.
Teacher List Report Lists the scheduling preferences for all of the teachers in your
school.
Post-Build Reports
Report Description
Alternate Request Report Lists the number of course requests made by a student and
whether or not the student was scheduled in his or her
requested course.
Master Schedule Report Use to evaluate the schedule the system built. View the
master schedule for all teachers for all periods.
Non-Scheduled Course Use to view the students whose course requests could not be
Requests honored during the scheduling process. Helps you determine if
you need to ease course maximum restrictions, add more
course sections, or update a student’s course requests.
Non-Scheduled Student Use to determine which course requests have not been
Requests satisfied on a student-by-student basis. Helps you decide if
you need to ease course maximum restrictions or update a
student’s course requests.
Room Schedule Use to determine which courses are being taught in a
particular room.
Room Utilization Use to verify that the system has scheduled courses in the
correct rooms, with the appropriate facilities, at the correct
times.
Schedule Periods by Grade Use to view the number of students scheduled into courses by
Report period, grade, and term.
Schedule Course Use to view seats available, seats filled, and unfilled requests
Enrollment Report for each class.
Schedule Results by Grade Use to view a summary of how many students in each grade
Report were fully scheduled and not scheduled. Run this report after
loading student schedules but before working with individual
student schedules.
Report Description
Student Schedule List Use to view the number of courses scheduled by each student
Report and to view each student’s schedule.
Under-scheduled Students Use to determine the number of students who have been
Report under-scheduled for each period.
Unscheduled Reports Use to determine the number of rooms that have not been
scheduled for classes per term, period, and day.
Managing Constraints
Build Constraints
Build constraints restrict the way PowerScheduler builds the master schedule. Use
constraints to tell the system exactly how you want to build your schedule. There are 11
types of build constraints. Those with an asterisk denote the constraints most commonly
used.
Constraint Description
Course Optimize For courses that are difficult to schedule, increase the number of
combinations and sampling percentage.
Course Restrict Restrict sections of a course to particular periods and days, or to
meet any time except the specified periods and days.
Course Room Assign a course to a particular room.
Course Team Block teachers and courses together so that certain courses can only
Constraint Description
be taught at the same time as certain other courses.
Pre Schedule* Schedule sections of a course ahead of time when you already know
exactly when and where they must meet.
Room Free Block a room from being scheduled for a particular term, day, and
period.
Schedule Break Add flexibility to a teacher’s maximum classes in a row count.
Teacher Dovetail Fit partial courses together during the same period so they take up
less room.
Teacher Free* Define which periods a teacher should not be scheduled.
Teacher Part Time Define which periods a part-time teacher is available
Teacher Team Allow teachers to team-teach course sections outside of their own
team.
Load Constraints
Load constraints restrict the way the system loads students into courses that have already
been scheduled. But, be careful. The more constraints you define, the less flexibility the
system has to load students into courses and the less optimal the resulting schedule will be.
It is always best to use the fewest number of constraints required to accomplish your
scheduling goals. There are six types of load constraints.
Constraint Description
Balance Adjustment Pre-load a course section with a certain number of “fake”
students before adding the rest.
Student Avoid Specify that two selected students cannot be scheduled into any
of the same course sections.
Teacher Avoid Specify that a student and teacher cannot be scheduled into any
of the same course sections.
Student Free Specify periods when a student must be free, such as when
taking a course at another school.
Section Link Specify that if students are enrolled in one course section, they
must also be enrolled in another specific course section, such as
Biology and Biology Lab.
Student Preference Schedule a student into a particular course section, in a specific
term, with a specific teacher.
2. Click Associate next to Course Number, select a course, and click Submit
3. Choose Semester One from the menu, and on the Schedule, check 4
6. Use the default values for the remaining fields and click Submit
2. Click Associate next to Course Number, select a course, and click Submit