Sie sind auf Seite 1von 504

Course Materials

PowerSchool University
2010
Foreword

All of us in Product Education are excited to present to you this PowerSchool


University (PSU) 2010 collection of course materials. We hope you find it to
be useful during your PSU experience. In addition, we anticipate that you will
be able to use these handouts, in conjunction with the electronic files on the
flash drive, long after PSU is over to reflect and learn about topics covered in
classes you were unable to attend.
As is true of previous PSU events, we have worked hard to make sure the
classes are practical and that they provide you with appropriate opportunities
to learn and practice skills you can apply back at your school or district. We
trust that you will discover that the classes are both challenging and
enjoyable.
Ultimately, our goal is that your participation at PSU results in greater
success and satisfaction in your work. Your success is our success!
It takes a committed team to craft curricular materials of this scope. Our
team consists of Writers, Subject Matter Experts, Consultants, and
Reviewers. Each member of the team focused on creating materials that are
accurate and easy to understand.
While we worked hard to keep quality high, we recognize that improvement
is always possible. If you have suggestions or corrections, please let us know
in the Feedback Surveys. We'll pass your ideas on to the team and make
every effort to address your concerns as we plan for next year's PSU.
If you have kudos, let us know, and we'll share them too!
Best wishes for a wonderful PowerSchool University experience,

Terrie Gray, Ed. D.


Sr. Manager, Curriculum & Distance Learning
School Systems Group
Pearson
Contributors
Writers Editors Subject Matter
Experts

Glenn Birch Anna Kalmbach Chad Smith


Bonnie Coleman Danielle Kando-Kaiser Chris Alldredge
Jeff Christiansen Rachel Krause Jim House
Mark Daymont Nodere Sabet Denise Routson
Steve Deibert Samantha Salzinski Shawna Stewart
Darryl Downs Gina Scott Michael Jory
Jeff Hathaway Nancy Ward Veronica Shanton
Kathy Turner Kerry Zinn
Rob Wallace Sandra Pfeiffer and
team
Beth Whitset
Table of Contents
Advanced Object Reports ..........................................................................1
Advanced ReportWorks.............................................................................3
Advanced SQL in PowerSchool Queries......................................................13
Attendance Administration.......................................................................21
Attendance Reports ................................................................................31
Automated Walk-in Scheduling ................................................................41
Basic HTML in PowerSchool Custom Pages................................................48
Basic JavaScript for PowerSchool.............................................................56
Basic Object Reports ..............................................................................64
Basic ReportWorks .................................................................................72
Basic Schedule-Building Concepts............................................................83
Basic SQL in PowerSchool Queries ...........................................................93
Building FusionCharts Using SQL, JavaScript, and XML ............................ 100
Conducting Student Searches................................................................ 109
Creating Dynamic Custom Pages Using SQL ........................................... 117
Custom Alerts ...................................................................................... 125
Custom Parent Pages............................................................................ 132
Custom Student Pages: Intermediate Page Customization ....................... 138
Decipher and Use PowerSchool Codes .................................................... 149
Edustructures ...................................................................................... 158
Elementary School Setup & Management ............................................... 166
Excel: Clean Up and Analyze Data From PowerSchool.............................. 174
Excel: Fundamentals ............................................................................ 183
Excel: Using Functions to Find and Match PowerSchool Data .................... 194
Extreme PowerSchool Makeover ............................................................ 205
GPA and Honor Roll .............................................................................. 213
Health Record Management .................................................................. 219
Incident Management ........................................................................... 227
Interactivity in Your PowerSchool Custom Pages ..................................... 236
Intermediate ReportWorks .................................................................... 245
Managing Fees ..................................................................................... 257
Managing Test Scores........................................................................... 265

PowerLunch ......................................................................................... 275

PowerScheduler: Advanced Troubleshooting ........................................... 282

PowerScheduler: The Basics of Load Process .......................................... 290

PowerScheduler: The Basics of Prepare to Build ...................................... 298

PowerSchool 101 ................................................................................. 306

PowerSchool Users: Counselors ............................................................. 313

PowerSchool Users: Registrars .............................................................. 325

PowerSchool Users: School Administrators and Leaders........................... 334

PowerTeacher Administrator ................................................................. 343

PowerTeachers Gradebook Basics .......................................................... 352

Preparing for End of Term ..................................................................... 364

Scheduling Prerequisites & Recommendations ........................................ 369

Security Settings Custom Page: Using Advanced JavaScript..................... 378

Simple Custom Fields & Screens in PowerSchool ..................................... 385

Standard-based Grading Setup.............................................................. 391

Standards and PowerTeacher Gradebook ............................................... 399

System Administrator: Basic Server and Systems Settings ...................... 405

System Administrator: Management and Maintenance............................. 416

Using DDA & DDE to Obtain and Work with Data..................................... 428

Using JavaScript Libraries in Custom Pages............................................. 439

Using PowerSchool’s System Reports ..................................................... 448

Yearly Process: Good Endings – Great Starts .......................................... 457

Appendices .......................................................................................... 468

Appendix A: Advanced Object Reports ................................................... 469

Appendix B: Attendance Reports ........................................................... 479

Appendix C: Basic Object Reports..........................................................493


Advanced Object Reports

Advanced Object Reports


Users who took the Introduction to Object Reports class are ready to use object reports to
pull information from a data file using several different kinds of codes and processes.
Unlike most of the handouts for PSU classes, this one does not provide step-by-step
instructions for activities. Instead, in the appendix of this manual, you will find a set of
sample documents. Refer to these samples as you work to produce the reports described
below.
Your PSU activities file contains the setup for these documents in the PowerSchool template
(.pst) format.

Course Objectives
In this class, you will create:

• A student transcript that reports students’ credit deficiencies

• A discipline letter containing data from students’ Log Entries

• A field trip roster with photos of students

• A fee invoice

• A standards-based report card

You will also learn:

• How to open and edit reports using a text editor

• How to place a new font on your PowerSchool server

Activity 1 – Student Transcript with Credits


In this activity, use the “evaluate” data access tag to design a student transcript that shows
students’ credit deficiencies. Remember to include your initials in the report title.

1. Create a new object report titled ADV_-_HS_Transcript_w_Credit

2. In the appendix of your manual, refer to the Student Transcript with Credit example
handout to complete your report.

Copyright © 2010 Pearson 1


Advanced Object Report

Activity 2 – Discipline Letter


Design a discipline letter that pulls data from students’ Log Entries. Remember to include
your initials in the report title.
1. Create a new object report titled Discipline_Letter

2. In the appendix of your manual, refer to the Discipline Letter example handout to
complete your report.

Activity 3 – Field Trip Roster with Photos


For this activity, use HTML to design a Field Trip Roster that includes photos of the students
involved. Remember to include your initials in the report title.
1. Create a new object report titled ADV_-_Trip_Roster_w_Photo

2. In the appendix of your manual, refer to the Field Trip Roster example handout to
complete your report.

Activity 4 – Using a Text Editor


Expanding on Activity 3, use a text editor to edit and add objects in your field trip roster.

Demo – Adding a Font Style to the PS Server

Activity 5 – Fee Invoice


In this activity, use the Fee List object to design a Fee Invoice. Remember to include your
initials in the report title.
1. Create a new object report titled ADV_-_Fees_Invoice
2. In the appendix of your manual, refer to the Fee Invoice example handout to
complete your report.

Activity 6 – Standards-based Report Card


For this activity, place data access tags for school standards in a report card that shows
students’ progress toward meeting course standards (objectives).
1. Create a new object report titled ADV_-_StandardsRCComplete
2. In the appendix of your manual, refer to the Standards Report Card example
handout to complete your report.

Copyright © 2010 Pearson 2


Advanced Report Works

Advanced Report Works:


Advanced ReportWorks is designed to take ReportWorks Developers deep into the drag-and-
drop interface for creating sophisticated custom reports.
In this class, you will use data object modifiers; apply conditional modifiers; control
property expressions; apply advanced project skills; and create your own relevant project to
bring home that demonstrates your understanding of this powerful tool.

Data Object Modifiers


Data Objects are the heart and soul of ReportWorks. They hold all the information that
ReportWorks can deliver. They can be found in the Data Set Panel and can be made to show
in the Data Structure Layout window with a simple drag and drop. Data objects are
delineated by @ symbols and have a path showing their heritage noted by a “.” (dot) . Data
objects may be combined with ordinary text and most importantly for this activity they can
be refined by Data Object Modifiers.
The major modifier types include: aggregate, conditional, heritage, mathematical and
string. In activity 1 we will use the aggregate modifier and in 2 we will use the conditional
modifier.

Activity 1 – Aggregate Modifier: Incident Counts and Totals


There has been some concern in your school about the number of out-of-school suspensions
(OSS) and the number of days that students are missing with OSS. You will create a report
that gives a count of the first and totals for last.
1. Click Add on the Details project panel; double-click Untitled Project; name the
project Activity 1 Incident Counts and Totals Initials (your user
number); enter a description; select the Incident Management: Incident data set
2. Set the Scope of the report to Incident_ID > 0; Action_Code = Out of School
Suspension; and Participant_Role_Code = Offender
3. Click Layout; select Table and click OK; adjust the report to cover 4/5ths of the
layout, leaving room at the top for a text title
4. Click the Incident Detail row; open the Table Inspector; select to add a Header
and a Summary
5. From the Data Pane to the Incident Details columns, drag and drop the following to
fill the four columns respectively: Participant.Participant_Last_Name;
Participant.Participant_First_Name; Action.Action_Code; and
Action.Duration.Actual_Duration
6. Click the Incident Summary; enter the text Totals to the second column; drag
and drop Action.Action_Code and Action.Duration.Actual_Duration to columns
3 and 4 respectively; and use the Text Inspector to add the count and total
aggregate modifiers

Result:
@count.Action.Action_Code@ and @total.Action.Duration.Actual_Duration@

Copyright © 2010 Pearson 3


Advanced Report Works

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

Activity 2 – Conditional Modifier: Ethnicity Distribution Graph


Your school has a great graph showing the distributions of races. But the legend shows only
a letter of each group and thus is not clear. So we are going to use a Conditional Modifier to
be more descriptive and a nested modifier so we can address all the races with the same
statement.
1. Click Project based on a template; select Ethnicity Distribution Graph; click
Create; change the title of the project to Activity 2 Ethnicity Distribution
Graph (your user number)
2. Set the Scope Boundaries of your project to pull only active students; set the Scope
Run Time Controls to Use of current student selection
3. Click Layout; double-click the Legend; open the Graph Inspector; select Legend
from the from Graph Parts; copy and paste the text below into Text:
@Demographic.Ethnicity=="B"?"African-
American":(Demographic.Ethnicity=="C"?"Caucasian":Demographic.Ethnicity=="H"?"His
panic":Demographic.Ethnicity=="P"? "Pacific
Islander":Demographic.Ethnicity=="A"?"Asian":Demographic.Ethnicity=="I"?"Native
American":"Not Specified")@
4. Click Preview

Note: So this is essentially an If Then statement: if the Demographic.Ethnicity equals B


then show African American followed by (an expression contained by parenthesis).
In this case the expression lists five more items nested under the top item including a value
if nothing is specified. Below is a chart of the qualifiers we used here.

@ @ Data Object ? True Statement


== Equals “” Text

Activity 3 – Filter Expression: Missing Data


Missing data can make the results of a query inaccurate, make a mailing label faulty, or
report results could be skewed. Finding missing data can be daunting. ReportWorks can
come to your rescue with the wise use of expressions. In Activity 3 we will use a filter
expression to find and report only students with missing data. In Activity 4 we will use a
property expression to help highlight the fields with missing data.
1. Import Students with Missing Address Information from PSU Activities; double-
click Students with Missing Address Information

Copyright © 2010 Pearson 4


Advanced Report Works

2. Click Layout and then Preview


3. Click Edit and then answer the questions below

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: _________________________________________________________

Activity 4 – Property Expression: Missing Data


We will now continue the deconstruction process. Please stay on the Missing Student
Address Information layout screen and answer the following questions.
4.1 What do you have to click to view the property expression of a data object?
Answer: _________________________________________________________

2. What is the Property Expression used in this report?

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.

Copyright © 2010 Pearson 5


Advanced Report Works

Activity 5 – Multiple Subsets: Historical School Enrollment


Sometimes one data set is not enough to get the results you want. The only place you can
show multiple subsets in ReportWorks is in a table. In fact ReportWorks will not only let
you have multiple subsets, they can each have their own details, header and/or summary.
In this activity we will deconstruct an existing template and examine its key elements.
1. Open the template entitled Historical School Enrollment; rename it Activity 5
Historical School Enrollment (your user number)
2. Demonstrate that you understand how to set a complex scope to get the following
students: students who are active and are currently in school numbers 100 or 600 or
700
3. Click Layout; click Preview; after previewing click Edit
4. Click the table Details; open the Table Group Inspector; click Student
5. What is the only data object in the Student Details row?
Answer:

6. Change the color of the student details row to Orange; Preview


7. Click School Enrollments in the Table Group Inspector
8. Are there any data objects in the header? What is the easy way to tell there is just
text there not data objects?
Answer: ________________________________________________________
9. What is the data object in 7th column?
Answer: _________________________________________________________
10. Speaking of columns, in which inspector could you add more columns to this table?
Answer: _________________________________________________________

Activity 6 – CrossTab with Multiple Rows/Columns: District


Enrollment Summary
You already have a crosstab report called the District Enrollment Summary. It gives you a
count of students in each grade level in each school. You have been asked to add gender to
the same report. That is no problem because not only can the crosstab report have multiple
rows or columns, it can be altered after it has been created to adjust to your changing
needs.
1. Import District Enrollment Summary onto the Details project panel; double-click
District Enrollment Summary; name the project Activity 6 District
Enrollment Summary (your user number); enter a description
2. Click Scope; set the Boundaries to active students in schools number 100, 600 and
700; set the Run Time Controls to allow you to Select Grades and Use of current
student selection
3. Click Layout, click Preview and make note of the current report as it began; click
Edit

Copyright © 2010 Pearson 6


Advanced Report Works

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

Activity 7 – Add an Image or Shape


You are now going to concentrate on how you could dress up the project. You are going to
add an image and some shapes to make a more attractive and attention-getting project.
1. Click Layout; select the CrossTab object and move it to the middle of the page
leaving room for graphics either above or below
2. Click Layer 1 in the Page Inspector; click Rename and enter Data; Lock layer 1
3. Click Add to add a new layer; click Rename; enter Images
4. Drag and drop mini-tiger.png from your PSU Activities folder to the top of the
layout above the crosstab object; if prompted select Image Shape; resize to your
taste
5. Click Line Tool (and/or the Rectangle, Circle, Polygon, Star Tool); demonstrate
your understanding of how to create an image; use the Paint/Fill Inspector to make
the shapes stand out

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.

Over the Top


By now you have created each of the ReportWorks structure projects, you have created
projects from scratch, from templates, and imported some from others. You can control the
results you get and publish so that others can use your projects. We have taken it up a
notch in the prior section. Now we are going over the top. We are going to join strings,
create a chart instead of a graph, color code a bell schedule and make our projects
interactive.

Copyright © 2010 Pearson 7


Advanced Report Works

Activity 8 – Property Expressions: Enrollment-by-Grade Chart


ReportWorks has Property Expressions, which are really just Java expressions. You can use
these expressions to perform calculations that dynamically set properties of objects in the
report. You can use properties to control size, position, color, font, and other values for the
objects you place in the report. Then the actual values for those objects are set based on
the data that is pulled from PowerSchool when you run the report. So follow the instructions
below and build a horizontal bar chart to display enrollment by grade.

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: This tells ReportWorks to group the rows by Current_Grade_Level. A new


row control will appear in the table structure and the new row is labeled
Current_School_Enrollment.Current_Grade_Level Details.
5. Double-click the Student Details row; in the Table Inspector, deselect the Details
check box because you want to only show data for groups not individuals
6. Double-click the Current_School_Enrollment.Current_Grade_Level Details row
control; click the Columns icon on the right (it looks like 3 white boxes); set it to
have no columns.
7. In the Data Set navigator, navigate again to Student >
Current_School_Enrollment; drag and drop the Current_Grade_Level data
object into the row control
8. Click the Rectangle Tool icon at the top of the Layout panel. Create a rectangle
shape next to the Grade Level data object in the row

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.

Copyright © 2010 Pearson 8


Advanced Report Works

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.

Activity 9 – Using Conditionals: Color-coded Bell Schedule


You will add color-coding to the Student Bell Schedule report to mimic the color-coding of
the Bell Schedule page in PowerSchool’s Administrator Portal. The color-coding logic will
apply the same color to every period of the day no matter what course and section the
student is enrolled in that period. This report uses a special IF statement to dynamically
change the color of the class listing based on the period data.

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.

3. Replace the font color above with the sample below:

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"

Copyright © 2010 Pearson 9


Advanced Report Works

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

4. Click Preview to see the results of your work

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?

Activity 10 – Passing Values in Expressions: Interactive List


Any object in a report that has data attached to it can take an expression that uses that
data. One way that you can use this is to make the reports interactive. You can construct a
URL with static data and a value from the database so that when a user clicks on it a
browser window with an appropriate PowerSchool page will open. In this activity you will
make the student names clickable in a report based on the Student Schedule List template.

Copyright © 2010 Pearson 10


Advanced Report Works

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:

@Parent.Contact.First_Name@ @Parent.Contact.Last_Name@ Student Number:


@Parent.ID.Student_Number@
6. In the General Inspector click Property Expressions; for the URL property enter an
address that links directly to a specific student page using Student_Number as the
identifying value:

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

Activity 11 – Show and Tell


We have covered the basics, taken it up a notch and then hopefully brought you over the
top. Now is the time to create that project that you really need to take home. You are in a
room of experts with many of the same wants and needs. It would be even better if we
have time to share your work in a show and tell.
At a loss, how about one of the following: a graph showing the distribution of out of school
suspensions by sped status, gender and/or race; or a field trip roster with emergency
information.

Copyright © 2010 Pearson 11


Advanced Report Works

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.

Copyright © 2010 Pearson 12


Advanced SQL In
PowerSchool Queries

Advanced SQL in PowerSchool Queries


SQL is an excellent tool for connecting directly to PowerSchool and extracting your data for
analysis. Although it is a pretty simple language, learning its quirks and developing
strategies for effective searches takes time and practice. This class will cover complex JOINs
and tools to pivot and analyze your data. It will also use SQL queries to get data from
PowerViews, and a special stored procedure to query custom field data.
By the end of this session, you will be able to:

• Explain the difference between INNER and OUTER JOINs

• Construct queries with multiple joins

• Use GROUP BY and analytical functions in your SQL to organize and analyze your
data

• Organize and analyze student test data with SQL queries

• Describe how PowerViews work and how they can be used in SQL queries

All about JOINS


In SQL, you use JOINs to connect data between tables, matching rows based on their
foreign keys. Most often, you will use INNER (or NORMAL) JOINs, which return only data
that matches between the two tables. In this type of JOIN, any data in a table that does not
have a matching row in the other table is excluded.
OUTER JOINs can return data that does not have a match in the other table. One way an
OUTER JOIN can be useful is to find orphaned records. Using a FULL OUTER JOIN can return
all unmatched records. You can also choose to return the unmatched records from one table
by using a LEFT or RIGHT OUTER JOIN.

Activity 1 – Explore How OUTER JOINs Work


This query explains why you sometimes need to use an OUTER JOIN to return rows from a
table that doesn’t have a match in the second table. The query uses a PowerView, which
you will learn more about later in the session.

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

Copyright © 2010 Pearson 13


Advanced SQL In
PowerSchool Queries

LEFT OUTER JOIN ps.pssis_special_pgm_enrollments sp

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?

_______________________________________________________________

Activity 2 – Make a Really Big JOIN


Your school wants to analyze test scores to see if there are any patterns in average scores
by grade level. Start an analysis of scores in this activity, and refine it in later activities in
this session.
Since data about scores are spread across four tables, and because you need the Students
table as well, you need to make several JOINs.

1. Enter the following query in your querying program:

SELECT s.lastfirst, s.grade_level, t.name, st.test_date, ts.name as


testscorename, sts.numscore
FROM studenttestscore sts
INNER JOIN students s
ON sts.studentid=s.id
INNER JOIN studenttest st
ON sts.studenttestid=st.id
INNER JOIN testscore ts
ON sts.testscoreid=ts.id
INNER JOIN test t
ON ts.testid=t.id
WHERE t.name='ACT' AND s.enroll_status=0 AND s.grade_level >=9

2. Check the query over before you run it

Do not run it until you understand all its parts and what it says.

3. Submit the query by clicking Execute

What results did it return? Was it what you predicted?

4. Leave the Query window active for the next activity

Copyright © 2010 Pearson 14


Advanced SQL In
PowerSchool Queries

Functions in SQL Queries


SQL has the ability to run functions on data returned from queries. Common examples of
functions you might use are AVG (average), COUNT (count), and ROUND (to round to some
level of precision). All group functions, like the three mentioned, must be accompanied by a
GROUP BY clause, and the fields in the SELECT, which are not part of the group function,
must be part of the GROUP BY clause. Do not use individual values, like lastfirst and ID, for
a group function.

Activity 3a – Add Functions in Queries


1. Modify the previous query to add functions with the following code:

SELECT s.grade_level, s.gender, ts.name testscorename,


ROUND(AVG(sts.numscore),2) TotalAverageScore
FROM studenttestscore sts
INNER JOIN students s
ON sts.studentid=s.id
INNER JOIN studenttest st
ON sts.studenttestid=st.id
INNER JOIN testscore ts
ON sts.testscoreid=ts.id
INNER JOIN test t
ON ts.testid=t.id
WHERE t.name='ACT' AND s.enroll_status=0 AND s.grade_level >=9
GROUP BY s. grade_level, s.gender, ts.name

2. Look over this query before you send it to the server

How does it differ from the first query? What results will it return?

3. Click Go after you have examined the query

What results did it return? Was it what you expected?

4. Save the query and open a new window

Activity 3b – Query Other Data with Functions


1. Use the data dictionary and what you have learned to design a query to track the
number of log entries that occur per school and per grade level for one school year

Can you analyze by log type?


2. The query below is supposed to return the total number of currently active students
for each school

Copyright © 2010 Pearson 15


Advanced SQL In
PowerSchool Queries

What is wrong with it? Rewrite it so that it does what it should.


SELECT s.current_school_abbbreviation, count(*)

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.

Activity 4 – Pivot with ELSE


In this activity, use conditionals to modify the previous query to average test scores by
gender.

1. Open the query from Activity 3a, and modify it:

SELECT s.grade_level, ts.name as TestScoreName,


ROUND(AVG(CASE WHEN s.gender='M' AND sts.numscore > 0 THEN sts.numscore
ELSE NULL END),2) AS MaleAverageScore,
ROUND(AVG(CASE WHEN s.gender='F' AND sts.numscore > 0 THEN sts.numscore
ELSE NULL END),2) AS FemaleAverageScore,
ROUND(AVG(sts.numscore),2) AS TotalAverageScore
FROM studenttestscore sts
INNER JOIN students s
ON sts.studentid=s.id
INNER JOIN studenttest st
ON sts.studenttestid=st.id
INNER JOIN testscore ts
ON sts.testscoreid=ts.id
INNER JOIN test t
ON ts.testid=t.id
WHERE t.name='ACT' AND s.enroll_status=0 AND s.grade_level >=9
GROUP BY s. grade_level, ts.name

How does this query differ from the previous ones?

2. Click Go after you have examined the query

3. Examine the results

Are they what you expected?

4. Save the query, but keep this window open

Copyright © 2010 Pearson 16


Advanced SQL In
PowerSchool Queries

Views and PowerViews


PowerViews are sets of data from different tables pulled together into one virtual table. In
SQL, these sets are called Views. In PowerSchool, you do not have permissions allowing you
to build Views, but there is a large set called PowerViews already built for you by
developers. These views have a separate data dictionary of their own, and in that
dictionary, you can find information on the source of all the data in each PowerView. The
names of PowerViews all start with either pssis (for views of system data) or pvsis (for
views of custom data). The names of fields in PowerViews and their relations to tables can
be tricky, since they are synonyms of other fields, so be sure to check the dictionary when
using them.
Views are virtual tables. They are the product of pre-set SQL queries that construct the
views when the virtual table—or PowerView—is called. They can be queried just like a real
table. The PowerViews have been constructed to bring together data that is spread across
many tables.
PowerViews are convenient, but sometimes they aren’t exactly what you want. In this case,
you can make your own query to get what you want.

Activity 5a – Querying a View—Even More on Test Scores!


1. Open a new connection window in SQLDeveloper

2. In the input window, type the following:


SELECT s.grade_level, ts.name as TestScoreName,
ROUND(AVG(CASE WHEN pcs.field_name='basketball' AND sts.numscore > 0 THEN
sts.numscore ELSE NULL END),2) AS BasketballAverageScore,
ROUND(AVG(sts.numscore),2) AS TotalAverageScore
FROM StudentTestScore sts
INNER JOIN Students s
ON sts.StudentID=s.ID
INNER JOIN StudentTest st
ON sts.StudentTestID=st.ID
INNER JOIN TestScore ts
ON sts.TestScoreID=ts.ID
INNER JOIN Test t
ON ts.TestID=t.ID
LEFT OUTER JOIN PVSIS_Custom_Students pcs
ON s.ID=pcs.StudentID AND (pcs.Field_Name LIKE 'basketball')
WHERE t.Name='ACT' AND s.Enroll_Status=0 AND s.Grade_Level >=9
GROUP BY s.Grade_Level, ts.Name

How does this query differ from the previous three? What will it do that the others
won’t?

Copyright © 2010 Pearson 17


Advanced SQL In
PowerSchool Queries

3. Click Go

What results did you get? Are they what you expected from reading the query?

4. Save your query to re-use in the future

Activity 5b – Querying a View—Even More on Test Scores!


1. Open the file ps510_data_dictionary_sis.pdf

2. Find the entry for PSSIS_Student_Test_Scores

What fields are in it?

What would the SQL that made this view look like?

Activity 6 – Querying Other Tables


There are many other tables in PowerSchool that are useful to query. The CC table holds
data on course enrollments. You can use it to make a table of how many students teachers
have in each of their sections, but you have to link to other tables to do this because CC
doesn’t hold everything you’d want.

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)

Copyright © 2010 Pearson 18


Advanced SQL In
PowerSchool Queries

Queries for Custom Field data


Data for custom fields in PowerSchool are held not as true fields, but as data rows flagged
by the custom field name in Custom Field tables. Thus, queries for custom data normally
requires CASE statements, as in the final Test Scores query above and the query below.

Activity 7a – Querying Custom Data with PowerViews


1. Put in a placeholder for the SELECT statement and start by joining the tables
together; use INNER JOINS:
SELECT s.lastfirst, s.grade_level, sg.grade,

(CASE WHEN pcs.field_name LIKE 'basketball’ THEN 'Yes' END) AS BBall

FROM students s

INNER JOIN storedgrades sg

ON s.id=sg.studentid

LEFT OUTER JOIN ps.pvsis_custom_students pcs

ON s.id=pcs.studentid

AND (pcs.field_name LIKE 'basketball’)

WHERE s.enroll_status=0 AND s.grade_level >=9 AND sg.storecode='Q1'

ORDER BY s.lastfirst, sg.grade

2. How would you change this query to show only students on the basketball team?

Get Custom Fields


You can invoke a stored procedure for querying custom fields with a simple command that
takes a few parameters. The general form of the command is ps_customfields.getcf and
the parameters it takes are (‘customfieldtype’, matchmethod, ‘customfieldname’).
Match method will usually be using the ID. Using Get Custom Fields, you can rewrite the
query above eliminating the CASE statement and the JOIN for the Custom Students View,
making the statement much more straightforward.

Activity 7b – Querying Custom Data with PowerViews


1. Rewrite the query using Get Custom Fields:
SELECT s.lastfirst, s.grade_level, sg.grade,

ps_customfields.getcf ('students', id, 'basketball') Basketball

FROM students s

Copyright © 2010 Pearson 19


Advanced SQL In
PowerSchool Queries

INNER JOIN storedgrades sg

ON s.id=sg.studentid

WHERE s.Enroll_Status=0 AND s.Grade_Level >=9 AND sg.storecode='Q1'

ORDER BY s.lastfirst, sg.grade

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

INNER JOIN storedgrades sg

ON s.id=sg.studentid

WHERE s.enroll_status=0 AND s.grade_level >=9 AND sg.storecode='Q1'

AND ps_customfields.getcf (‘students’, id, 'basketball')=1

ORDER BY s.lastfirst, sg.grade

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.

Copyright © 2010 Pearson 20


Attendance Administration

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

Attendance Setup and Preferences


Preferences
The first step in setting up attendance options is to complete the Attendance Preferences
page. On the Start Page, click School > Preferences. The items on this page are school
and year specific. The following sections outline options you can format.

Attendance Recording Method and Default Attendance Page


Choose the attendance recording method by checking the appropriate check box or boxes.
Some schools use multiple attendance recording methods. The four choices are Meeting,
Daily, Time, and Interval. If you select more than one method, choose which will be the
default attendance method.

Audit Attendance Records


Select Audit attendance records if you want PowerSchool to keep track of any change,
the previous value, and who made the change.

Enable Multiple Character Attendance Codes


By default, you can enter only single-character attendance codes. However, to create
multiple-character attendance codes, select Enable multiple character attendance
codes.

Meeting and Daily Attendance Bridge


In schools that use both daily and meeting attendance methods, PowerSchool minimizes the
attendance maintenance effort by automatically creating a daily attendance record when
meeting attendance is recorded. This way, the attendance administrator does not have to
manually record daily attendance.
The school administrator must determine which meeting period should represent the daily
meeting attendance. This period is often homeroom. The attendance code that the teacher
or attendance administrator assigns to the meeting period becomes the attendance code
assigned to the daily attendance record.
To set the bridge that transfers the code from one method to another, click School > Bell
Schedules. Click Edit Schedule for the desired bell schedule. Click the number of the

Copyright © 2010 Pearson 21


Attendance Administration

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.

Number of School Days Teachers May Alter Attendance Prior To and


After Current Date
On the Attendance Preferences page, you can also establish an attendance recording grace
period by defining the number of days before and after the current date that teachers can
enter or edit attendance in the gradebook.

Count These Codes for Period Conversion


On the Attendance Preferences page, choose Presents if your school calculates attendance
using the number of periods where a student is present in a day, or the positive attendance
method. Choose Absences if your school calculates negative attendance using the number
of periods where a student is absent in a day.

Activity 1 – Reviewing Attendance Preferences


Your principal has asked you to verify the attendance preferences set up for your school. On
the Start Page, click School > Preferences to get answers to these questions.
1. What is the attendance recording method for this school?
2. What is the default attendance page?
3. What kind of attendance bridge is selected?
4. Is there a restriction on the number of day(s) teachers may alter attendance prior to
or after the current date? If so, how many days are allowed?
5. What codes are counted for period conversion?
6. Is passing time deducted?

Attendance Code Categories


Attendance code categories group attendance codes by classification so that it is possible to
run category-based reports and searches. The codes Excused and Tardy are set up
automatically; school staff can also create other categories.
To add, edit, or delete an attendance code category, click School > Attendance Code
Categories. Code categories are unique to each school and school year. However,
attendance code categories are the one exception to year-specific data. They are a
constant, and you should not delete them from any year that uses them.
After you create attendance code categories, the next step is to create and associate
attendance codes with the categories.

Copyright © 2010 Pearson 22


Attendance Administration

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 Code Categories Present Absent Tardy Excused


Do NOT ABS *ABS TAR *TAR
use these codes! ALL *ALL

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.

Activity 2 – Setting Up Attendance Codes


Practice setting up an additional attendance code for your school.
1. On the Start Page, click School > Attendance Codes
2. Record the codes that differ from your school ____________________________
3. Click New
4. Enter WS in the Code field and Work Study hours in the Description field
5. Select Present for Presence Status, and Excused for Code Categories
6. Enter 1 in the Points field, and choose Yes from the “Teachers can assign” menu
7. Select This attendance code earns ADA credit
8. Enter a number for the sort order that will place this code last in the list
9. Don’t click Submit unless instructed to do so by your trainer

Copyright © 2010 Pearson 23


Attendance Administration

10. Click School > Final Grade Setup


11. Select a term
12. Record the two fields you use with attendance points _______________________

Full-Time Equivalencies (FTEs)


Full-Time Equivalencies (FTEs) define how daily attendance values are calculated for
students. This identifier is used in schools that need to associate groups of students with
different attendance values for the same day, such as a school that has both full-time and
part-time students.
You can set up FTEs for students who:
• Attend school only half time
• Attend a concurrent-enrollment program at another school for part of their
classes
• Are in a work-release program
• Are in half-day kindergarten
FTEs are also used for reporting Average Daily Attendance/Average Daily Membership
(ADA/ADM) and for other reports. FTEs are school and year specific, but will be duplicated
when you create new years. To access the Full-Time Equivalencies (FTE) page, click School
> Full-Time Equivalencies (FTE).

Activity 3 – Completing FTE Values


Set an FTE value for half-day kindergarten students.
1. Navigate to the elementary school
2. Search for and select a kindergarten student whose last name starts with the same
letter as yours, and write the student’s name here: _____________
3. Click Transfer Info
4. Click the date under the Current Enrollment
5. Choose Half Time from the Full-Time Equivalency menu, and click Submit
6. Return to the Start Page and click System > Direct Database Export (DDE)
7. Choose Students from the Current Table menu
8. Choose Last_Name = from the menu below Search Students, and enter the last
name of the student
9. Check Search only in records belonging to Washington Elementary, and then
click Search all records in this table
10. Click List View, and then click the ID number of your student
11. Scroll down to find the field FTEID and record the number __________
12. Return to the Start Page, and click K to select all the kindergarten students
13. Choose Student Field Value

Copyright © 2010 Pearson 24


Attendance Administration

14. Enter FTEID in the Field to Change field


15. Enter the FTE ID in the New Field Value field
16. Do NOT click Submit unless instructed by your trainer

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.

Activity 4 – Verifying Attendance Conversions


The principal at the elementary school wants you to check your school’s attendance setup
for FTEs and conversions.
1. Verify that you are at the elementary school
2. On the Start Page, click School > Full-Time Equivalencies (FTE)
3. Record the FTEs that have been set up _________________________________
4. Click School > Attendance Conversions
5. Record the conversions that have been defined __________________________
6. Record the minutes a full-day student has to miss to be counted absent ______
7. Record the minutes a half-day student has to miss to be counted absent ______

Positive and Negative Attendance


Some states require schools to track negative attendance, which means that the student is
absent unless noted otherwise. The default in PowerSchool is positive attendance. A student
is counted as present unless noted otherwise. In order for attendance reports to meet your
state requirements, set up the attendance conversions properly. Once you have completed
the setup, these values appear in the reports.

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.

Copyright © 2010 Pearson 25


Attendance Administration

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.

The Attendance Process


If a parent or guardian calls the school office prior to the start of school to report an
absence, you can mark the student absent before the teacher takes attendance. The
teacher does not need to mark the student absent. When the office enters attendance,
teachers cannot make any attendance changes for that record; therefore, the office must
make any necessary changes.
In PowerSchool, you can enter meeting attendance, interval attendance, daily attendance,
and time attendance. Students' daily attendance records indicate their absences, tardies,
and arrival and dismissal times for an entire school day.
Meeting and interval attendance share the same page. The primary difference between the
two is that for meeting attendance, a student can have only one attendance record per
period. For interval attendance, a student can have multiple attendance records per period,
based on the specified interval. Interval attendance may not look any different from
meeting attendance if the period length is less than or equal to the specified interval
duration defined in Attendance Preferences.
Time attendance is a way of adding attendance values by entering total minutes or hours for
a given day. Schools often use time attendance to enter work experience or independent
study hours.

Recording Meeting Attendance


To record meeting attendance, first select a student, and then click Enter Attendance.
Change meeting attendance by choosing an attendance code. Then, click in the appropriate
cell. Click Set All under the date to change attendance for all periods for the day. After you
make the changes, click Submit.

Recording Daily Attendance


To record daily attendance, search for and select a student. Then, click Attendance. There
are two choices at the top of the Attendance page: Daily and Meeting. On the Daily
Attendance page, click the day of the week for the attendance change. Change the
attendance code, and click Submit. You can also record attendance from the Meeting page.
There is one meeting designated as the daily attendance time, usually homeroom. When
you enter attendance for that meeting, daily attendance is updated as well.

If you need to modify daily attendance, from the Daily Attendance page, click the day of the

Copyright © 2010 Pearson 26


Attendance Administration

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.

Activity 5 – Marking a Student Absent


A student’s mother calls in and says her daughter has the flu. You need to mark her absent
for today.
1. Select a female high school student whose last name starts with the same letter as
yours
2. Click Enter Attendance
3. Choose Absent from the “Current attendance code” menu
4. Click Set All under today’s date, and then click Submit

Teachers Record Attendance


Teachers take attendance through PowerTeacher. Since the teacher typically does not know
the reason for a student’s absence, you limit which codes are available for the teachers to
enter, typically only absent and tardy. To set up teacher attendance codes, click School >
Attendance Codes. Click the code you want to edit. Choose Yes for “Teachers can assign”
to make the code available for teachers in PowerTeacher. If more specific codes are
necessary after the reason for the absence is determined, the attendance staff makes the
changes.

PowerTeacher Attendance Report


Before you run the Absentee Report, run the PowerTeacher Attendance Report to verify that
all teachers have taken attendance. To run the report, click Attendance > PowerTeacher
Attendance. Select the date and periods to view which teachers have not yet submitted
attendance. Then, contact those teachers and remind them to take attendance.
You can also use the Teacher Attendance Submission Status Report to view a
progress indicator for all the teachers at your school. Red indicators mean
attendance has not been submitted for classes. Green indicators mean attendance
has been submitted for all classes. Yellow indicators mean attendance has been
submitted for some classes. This indicator is great for a quick glance at the overall
attendance submission process. For more information, click a teacher’s overall
indicator to view individual indicators for each class.

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.

Copyright © 2010 Pearson 27


Attendance Administration

Activity 6 – Changing Attendance


High school teachers submitted their attendance, and now you need to find out who has
been marked absent from class.
1. On the Start Page, click Attendance > Absentee Report
2. Select to include All students
3. Select A (Absent) from the Attendance Codes list
4. Select 1 for the Period(s) field
5. Click Submit
6. Click Refresh next to Report Queue – My Jobs
7. When the report is completed, click View

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

Working with the Counselor’s Screen


The Absentee Report lists students’ home phone numbers, but sometimes you need to call
work numbers. You can use the Counselor’s Screen to view a student page containing
additional contact information for a group of students. Access the Counselor’s Screen from
the Absentee Report. On the bottom of the report, click Functions > Counselor’s Screen.
Then, choose Demographics, and click Submit. The names of the students who are on the
Absentee Report appear on the left. Click a student’s last name to view the student’s
Demographics page and find the right number. Move to the next student’s Demographics
page by clicking the last name of the next student.

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.

Entering Future Attendance


For a Single Student

Copyright © 2010 Pearson 28


Attendance Administration

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.

For a Group of Students


Select a group of students. Then, from the Group Functions menu below the student list,
choose Attendance Change. 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.
Finally, click Submit.

Activity 7 – Recording Future Attendance


A group of high school students is going on a field trip to Washington, D.C. next week, so
set their attendance to “Field Trip” for Tuesday through Friday.
1. Select a group of students
2. Choose Attendance Change from the Group Functions menu
3. Enter dates in the “From this Date” and “To this Date” fields
4. Click Select All for the “Meetings to scan”
5. Select Present from the “Code(s) to scan for” list
6. Choose F (Field Trip) from “Attendance code to set” menu
7. Click Submit
8. Click PowerSchool > Current Selection
9. Select a student and verify the attendance change

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.

Copyright © 2010 Pearson 29


Attendance Administration

A Tracking Example
District Tracking Methods: Percent (Threshold 99) Tardy Day (Threshold 1)
Tracking Levels for Unexcused

Methods: Percent and Tardy Day


Trigger 1 3
Trigger 2 6
Trigger 3 9

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.

Activity 8 – Create a Tracking Level


Create a tracking level that mirrors the example you just explored.
1. Navigate to the District Office
2. Click District > Attendance Tracking and Notification > Unexcused Levels >
New
3. Enter Unexcused followed by your initials in the Level Name field
4. Choose Percent and Tardy Day from the Tracking Method menus
5. Enter 3 in the Trigger 1 field
6. Click + and enter 6 in the Trigger 2 field
7. Click + and enter 9 in the Trigger 3 field
8. Click Submit

Copyright © 2010 Pearson 30


Attendance Reports

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?

Who is Absent Today?


The most frequently asked attendance question is, “Who is absent today?” To answer this
question, use the Absentee Report. Many schools use this report so they can follow up with
students’ parents or guardians to verify the reason each student is not in school.

Teacher Attendance Submission Status and PowerTeacher


Attendance
Before you run an Absentee report, find out if teachers have submitted attendance. Use the
Teacher Attendance Submission Status report to view a progress indicator for all teachers at
your school. This indicator is great for a quick glance at the attendance submission
progress. You can also run the PowerTeacher Attendance report to verify which teachers
submitted attendance for specific periods or for all periods. If your school uses meeting
attendance, you might run this report each period. If your school uses daily attendance, you
might run it once or twice a day. Both the Teacher Attendance Submission Status and
PowerTeacher Attendance reports indicate which teachers have not submitted attendance.
To view examples of both of these reports, see Appendix B.

Copyright © 2010 Pearson 31


Attendance Reports

The Absentee Report


Now you are ready to find students who are marked absent. Run this report in either Daily
mode or Meeting mode. Just like the PowerTeacher Attendance report, you can run the
Absentee report multiple times each day, according to the requirements of your school
policy.
Use the Absentee report to generate single-day, period-by-period attendance information.
The report lists students who have the attendance code(s) you specify, and additional
information such as student number, grade level, phone number, and verification
information. Search using any attendance code or combination of codes your school uses,
except for the Present code (blank). See Appendix B for an example of this report.

Activity 1 – Run the Teacher Attendance Submission Status and


Absentee Reports
1. On the Start Page, click Attendance > Teacher Attendance Submission Status
2. Select No Att taken first from the Order By list, and click Submit to see who hasn’t
taken attendance yet
3. On the main menu, click Attendance > Absentee Report
4. Choose Meeting from Attendance Mode menu
5. Include all students in the report
6. Select a single grade level (9, 10, 11, or 12)
7. Click A (Absent) from Attendance Codes list
8. Select 1 in the Period(s) list
9. Enter 2 in the “Number of Blank Lines Below Student Names” field
10. Select Include Verification Line
11. Do not change the remaining defaults
12. Click Submit
13. If necessary, click Refresh next to Report Queue - My Jobs
14. When the status is Completed, click View

Have Attendance Records Been Verified?


Remedy small errors in attendance records by providing teachers with weekly verification
reports. Both of the following reports can help you identify potential attendance errors, and
may also provide you with a “paper trail” when your attendance records are audited. Some
schools distribute these reports and require that teachers look them over carefully, sign to
verify that the attendance on the report is correct, and submit the signed report to the
office. View samples of these reports in Appendix B.

Weekly Attendance Summary (Meeting) and (Daily)


These attendance reports give a snapshot of the week’s attendance according to the specific
attendance codes you request. All students enrolled in the class appear on the report,
regardless of their attendance. Run the report for all teachers and periods or for specific
teachers and periods. The report you choose depends on which attendance method
(meeting or daily) your school uses.

Copyright © 2010 Pearson 32


Attendance Reports

Period Attendance Verification


The Period Attendance Verification report is helpful for schools that use meeting attendance.
Use this report to find students who have been marked absent in all of their classes, except
the number you specify. For example, if your school has seven periods per day, use this
report to find students who have been marked absent in six of the seven periods. Then,
have the one teacher who marked the student present, verify that the student was, in fact,
present on that day.

Activity 2 – Run the Weekly Attendance Summary Report


1. On the main menu, click Reports > Weekly Attendance Summary (Meeting)
2. Choose Week 5: 6/28/10 – 7/2/10 from the Weeks menu
3. Select the name of one teacher in the Teachers list
4. Leave the Period(s) check box(es) blank
5. Choose Meeting Mode from the Attendance Mode menu
6. Enter P,S,I,O,V,F in the Absent field
7. Enter A,U,X in the Unexcused field
8. Enter T,TE in the Tardy field
9. Choose Ever in Class from the Audit Students menu
10. Select Include Verification Line
11. Click Submit
12. If necessary, click Refresh next to Report Queue - My Jobs
13. When the status is Completed, click View

Which Students Have Attendance Problems?


Another extremely important attendance task is finding students who have chronic
attendance issues. PowerSchool contains several different reports that are used to find
students who have excessive attendance problems. The report you choose depends on what
attendance information you need and which report supports your school’s attendance
policies. Run each of these reports for either daily or meeting attendance. Refer to Appendix
B to view samples of these reports.

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.

Copyright © 2010 Pearson 33


Attendance Reports

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.

Activity 3 – Run the Attendance Count Report


1. On the main menu, click Reports > Attendance Count
2. Choose Meeting from the Attendance Mode menu
3. Include all students in the report
4. Select either 10 or 11 in the Grades list
5. Press and hold Control (PC) or Command (Mac) and select A (Absent), U
(Unexcused), and X (Truant) from the Attendance Codes list
6. Enter 6/1/2010 and 6/30/2010 in the Begin Date and Ending Date fields
7. Leave the Period(s) check box(es) blank
8. Enter 5 in the “Minimum Number of Total Occurrences” field
9. Click Submit
10. If necessary, click Refresh next to Report Queue - My Jobs
11. When the status is Completed, click View
12. Choose a student from the list and enter his/her name here (you will use this student
in another activity): _______________________________

What is the Overall Attendance Picture?


There are several reports that can help you get a good understanding of the overall picture
of your school’s attendance any time during the school year. Use this information to help
complete a quick internal audit of your school’s attendance records before you submit state
reports. The attendance method your school uses and the information you need determine
which report you use. For samples of these reports, refer to Appendix B.

Class Attendance Audit


The Class Attendance Audit generates a section-specific attendance roster for meeting
attendance schools. This report calculates membership and totals for the specified date
range. Run this report for vocational classes only if your school reports attendance for a
state-funded vocational program. Teachers also have access to this report through
PowerTeacher.

Student Attendance Audit


The Student Attendance Audit generates a student roster detailing the daily attendance
value, the total attendance and membership for a requested date range. In addition, the
report displays the number of days a student was enrolled. Use this report to audit daily
attendance values as well as total attendance and membership for the specified date range.

Copyright © 2010 Pearson 34


Attendance Reports

Monthly Student Attendance


Use the Monthly Student Attendance report to generate a student roster, divided by grade
level, that denotes the days during the month that students were present, absent, or not
enrolled for a specified month. In addition, the report shows the total number of days not
enrolled, days absent, and days present. At the end of each grade-level list is a summary of
the total number of students at the beginning of the month, the number of students gained
or lost, and the total number of students at the end of the month.

Attendance Summary by Grade


This report summarizes the total number of students at the beginning of the reporting
period, the number of students gained or lost, and the total number of students at the end
of the reporting period for each grade level in your school. In addition, the ADA (Average
Daily Attendance) for each grade level is also summarized. Specify the reporting period
either by choosing a reporting segment or entering the beginning and ending dates. Also,
use this report to view the same attendance information for specific special programs in
your school, such as Gifted and Talented and Special Education.

Year-to-Date Attendance Summary


The Year-to-Date Attendance Summary reports the total number of membership days,
number of calendar days, and the ADA for each reporting segment for your school. This
information is displayed for each grade level. In order to use this report, you MUST have
Reporting Segments set up. For more information about your school’s reporting segments,
contact your PowerSchool system administrator.

Activity 4 – Run the Student Attendance Audit Report


1. On the main menu, click Reports > Student Attendance Audit
2. Choose Use Defaults for both the Attendance Mode and Attendance Conversion
3. Include all students in the report
4. Choose a single grade level (9, 10, 11, or 12)
5. Choose to enter a date range and enter 6/1/10 and 6/30/10 in the Begin Date and
Ending Date fields
6. Click Submit
7. If necessary, click Refresh next to Report Queue - My Jobs
8. When the status is Completed, click View

Average Daily Attendance and Average Daily Membership


(ADA/ADM) Reports
Average Daily Attendance, or ADA, is the average number of days that a student attended
school during a specified period of time. Average Daily Membership, or ADM, is the average
number of days that a student was enrolled during a specified period of time.
ADA is the mean of the daily attendance value. Attendance Conversions set up at your
school determine the daily attendance value for each day based on these variables:
• Student attendance records
• Student FTE (Full Time Equivalency)

Copyright © 2010 Pearson 35


Attendance Reports

• School Bell Schedule


Most state reports require some type of attendance and membership information. Use the
ADA/ADM reports to preview your school’s overall attendance picture before you submit
your state reports. In addition, use these reports to help you troubleshoot reporting
discrepancies. If you find a possible discrepancy, begin troubleshooting with your school’s
Attendance Conversions and all of the associated variables.
PowerSchool includes these built-in ADA/ADM reports:
• ADA/ADM by Date — this report produces attendance and membership information
expressed as the total number of students who attend school each day versus the
total number of students who are enrolled each day for a specified date range
• ADA/ADM by Student — this report produces attendance and membership
information expressed as the total number of days attended versus the total number
of days enrolled for each individual student for a specified date range
• ADA/ADM by Minute — this report produces attendance and membership
information expressed as the total minutes attended versus the total minutes
enrolled, aggregated for all students for a specified date range
For examples of these reports, refer to Appendix B.

Activity 5 – Run the ADA/ADM by Student Report


1. On the main menu, click Reports > ADA/ADM by Student
2. Choose Use Defaults for both the Attendance Mode and Attendance Conversion
3. Include all students in the report
4. Choose a single grade level (9, 10, 11, or 12)
5. Enter 6/1/10 and 6/30/10 in the Begin Date and Ending Date fields
6. Select Include Absent Column
7. Click Submit
8. If necessary, click Refresh next to Report Queue - My Jobs
9. When the status is Completed, click View

How Can I Communicate Student Attendance Issues To


Parents/Guardians?
Although up-to-the-minute attendance information is available to parents and guardians
through the PowerSchool parent portal, many schools prefer to mail official attendance
letters home for students who exhibit attendance problems that will impact their academic
performance.

Import a Report Template


Create attendance letters using the Form Letter or Report Card template features in
PowerSchool. In addition, import reports that other PowerSchool users have created and
adapt them for your own needs. One of the best sources for custom reports is the Download
Center in PowerSource. To access the Download Center, log in to PowerSource
(http://powersource.pearsonschoolsystems.com) and click Community > Download
Center.

Copyright © 2010 Pearson 36


Attendance Reports

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.

Activity 6 – Import a Report Template


1. On the main menu, click System > Import Report Template
2. Choose the appropriate Character set for your computer’s operating system from the
menu
3. Click Choose File
4. Navigate to the template in the PSU activity files titled Attendance_Letter.pst and
click Open (PC) or Choose (Mac)
5. Click Import when directed by the trainer
6. Return to the Start Page, and click Reports > Setup > Report Cards
7. Choose one of the imported Attendance Letter reports, as directed by the trainer
8. Click the name of the report
9. Add your initials to the name of the report in the Template Name field; for example
Attendance Letter – EC
10. Click Submit

Using Attendance Data Access Tags


Use attendance data access tags (DATs) on form letters, report cards, and object reports to
include information about student attendance.
Some commonly used attendance DATs include:
• Membership Days ^(*DM)
• Days Attended ^(*DA)
• Days Absent ^(*DABS)
Specify which term’s attendance totals you want by adding the term abbreviation to the
data access tag. For example, to print the total number of a student’s daily absences for
first quarter, enter ^(*DABS;Q1) in your report. Also, dynamically format the code to print
attendance totals for the term selected in the navigation bar. For example, to reformat the
code from the previous example, enter ^(*DABS;^(termabbr)).

Activity 7 – Use Attendance Data Access Tags


1. On the main menu, click Reports > Setup > Report Cards
2. Select your Attendance Letter report
3. Click Heading
4. In the field replace the text, (insert DM code here), (insert DA code here), and
(insert DABS code here) with the appropriate data access tags

Your completed Report Card Heading field should look like this:

<center><b>^(schoolname)</b>

Copyright © 2010 Pearson 37


Attendance Reports

^([39]schooladdress)
^([39]schoolcity), ^([39]schoolstate) ^([39]schoolzip)
^([39]schoolphone)</center>

<hr>
^[letter.date]

To the Parents/Guardians of:


^(first_name) ^(last_name)
^(mailing_street)
^(mailing_city), ^(mailing_state) ^(mailing_zip)

Dear Parent or Guardian:

Attendance is an essential component to a student's academic success.


Often, the number of days that students are absent accumulates without
parents realizing how many days have been missed. According to our
records, ^(first_name) has been enrolled ^(*DM;^(termabbr)) days this
term, and has attended ^(*DA;^(termabbr)) of those days.

This letter is to inform you that ^(first_name) has accumulated


^(*DABS;^(termabbr)) days of absences during the ^(termname) term. At
this time, you and ^(first_name) have an opportunity to work towards
improving attendance without further intervention.

Below is a summary of ^(first_name)'s class schedule that includes the


number of absences and tardies in each class.
<br>
5. Click Submit
6. Click PowerSchool
7. Search for the student you identified in Activity 2
8. Click Print A Report
9. Choose your attendance letter from the “Which report to print” menu
10. Click Submit
11. If necessary, click Refresh next to Report Queue - My Jobs
12. When the status is completed, click View

Which Students Have Perfect Attendance?


Whether at the end of each term or at the end of the school year, many schools give special
recognition to students who have perfect attendance. Some schools even create a perfect
attendance certificate and print the certificates right from PowerSchool. When you search
for students with perfect attendance, students who meet the criteria become your current
selection.

Copyright © 2010 Pearson 38


Attendance Reports

Activity 8 – Search for Students with Perfect Attendance


1. On the Start Page, click a grade level in the Browse Students area
2. Choose Search For Perfect Attendance from the Group Functions menu
3. Choose Meeting from the “Attendance mode to use” menu
4. Click The selected X students option for which students to scan
5. In the “Date range to scan” fields, enter 6/1/2010 – 6/30/2010
6. In the “Disregard these codes when searching” field, enter T,TE,S,F
7. Click Submit

Attendance Tracking & Notification


Use the Attendance Tracking & Notification reports to identify students who have reached
the attendance thresholds and triggers you set up at the District Office.
1. Refresh the attendance data

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

At the bottom of the report is a link to open Reportworks. In ReportWorks, choose


the Truancy template and make any changes. To learn more about using
ReportWorks templates, take the Basic ReportWorks class.
To review which students actually reached the levels, use the Truancy and Attendance -
Levels Reached report.

Copyright © 2010 Pearson 39


Attendance Reports

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.

Copyright © 2010 Pearson 40


Automated Walk-in
Scheduling

Automated Walk-in Scheduling


During this class, you will learn how to:
• Install the scheduling engine
• Complete the scheduling setup
• Define the courses and relationships
• Format any schedule constraints
• Finalize a student’s schedule

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)

Copyright © 2010 Pearson 41


Automated Walk-in
Scheduling

11. Click Close (Mac) or close the install window (Windows)


12. The program can be opened from the Applications (Mac) or Program Files (Windows)
There are times when the server will need to be restarted, so set the engine to
automatically start when the server is restarted.
These files will be created upon installation:
• The engine executable
• The “Loader”
• (OS X only) a default LocalEngine.properties file
Upon running the engine, two more files may be created:
• engine.properties, which collects information from LocalEngine.properties and
information sent for the SIS to tell the engine what it should do
• engine.log, which is a log file of what the engine is doing, created when the “log
output” setting in LocalEngine.properties is set to “append” or “overwrite”

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.

Copyright © 2010 Pearson 42


Automated Walk-in
Scheduling

Activity 1a – Creating Course Relationships


Create a course relationship to allow students to enroll in both courses, Drawing and Design
and Painting, during the same school year. The PostReq relationship forces students to take
Drawing and Design first if both courses are selected in the same school year.
1. From the Start Page, click School > Courses
2. Scroll down, and click Drawing and Design
3. Click Relationships > New
4. Click Associate
5. Choose ART2200 Painting
6. Click Submit
7. Choose Postreq as the Relationship Type
8. Click Submit

Activity 1b – Submit Some Course Changes


A course at Apple Grove called Chamber Singers has been moved to a new room with a
smaller capacity. Change the maximum enrollment size to accommodate the new room
allowances.
1. From the Start Page, click School > Sections
2. Click Chamber Singers from the list of courses
3. Click the section number
4. Change the Maximum Enrollment amount to 85
5. Click Submit

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.

Copyright © 2010 Pearson 43


Automated Walk-in
Scheduling

• 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.

Activity 2 – Create and Assign Section Types


Learn how to create a special section of a course such as Honors, Special Education, and
other section types.
1. On the Start Page, click School > Preferences (beneath the Scheduling section)
2. Click Section Types > New
3. Enter Honors in the Section Type field
4. Enter Hn in the Section Type Code field
5. Click Submit
6. Click New
7. Enter Special Education in the Section Type field
8. Enter Sp in the Section Type Code field
9. Click Submit
10. Click School Setup in the breadcrumbs
11. Click Sections > Art
12. Click one of the section numbers
13. Scroll until you find the Section Type field, and choose Special Education
14. Click Submit
15. Click English 2
16. Click one of the section numbers
17. Scroll until you find the Section Type field, and choose Honors
18. Click Submit

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

Copyright © 2010 Pearson 44


Automated Walk-in
Scheduling

• 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

Activity 3 – Enter “Avoid” Constraints


Learn to use avoidance constraints which prevent associations between students, or if
necessary, between students and teachers.
1. On the Start Page, click School > Constraints
2. Click Student Avoid > New
3. Click Associate next to Student 1
4. Choose a student, and click Submit
5. Click Associate next to Student 2
6. Choose a different student, and click Submit
7. Click Submit
8. Click Teacher Avoid > New
9. Click Associate next to Student
10. Choose a student, and click Submit
11. Click Associate next to Teacher
12. Choose one teacher, and click Submit
13. Click Submit

Copyright © 2010 Pearson 45


Automated Walk-in
Scheduling

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.

Copyright © 2010 Pearson 46


Automated Walk-in
Scheduling

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.

Activity 4 – Schedule a Walk-In


Select a student in PowerSchool, and modify his or her schedule by hand, selecting different
sections.
1. On the Start Page, search for and select a student
2. Click Modify Schedule > Requests
3. Click New
4. Click Associate
5. Hold down the Command key (Mac) or Ctrl key (Windows), and choose some
classes

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

Copyright © 2010 Pearson 47


Basic HTML in
PowerSchool Custom Pages

Basic HTML in PowerSchool Custom Pages


Maybe you are just starting to customize PowerSchool for your school or district. Maybe you
have started but feel you need more information to really get going. PowerSchool pages,
just like any web page, use HTML and other web technologies. But PowerSchool pages have
their own traits, and sometimes use proprietary technologies. In this class, you will learn
the basics of HTML and CSS that you need to start modifying PowerSchool pages. You will
also learn about some of PowerSchool pages’ special features. To really go wild with
customizations, you’ll need to move on to other classes, but this session will give you the
fundamentals you need to get under way.
By the end of this session you will be able to answer these questions:

• How is a good web page built?

• What makes PowerSchool pages complicated?

• How can you use what you’ve learned about web technologies and PowerSchool
pages to add useful information to pages?

HTML and the Document Object Model (DOM)


Web pages are written using simple tags to structure the document. Early in the history of
web pages, HTML tags were used to give style and behavior to pages. Currently, accepted
practice is to use HTML tags for only structure, CSS for style, and JavaScript for behavior.
The Document Object Model (DOM) is a hierarchical model for writing pages this way.
Later classes will discuss more about the DOM and CSS and about adding interactivity with
JavaScript. This activity will give you the foundation to build upon in those later classes.

Activity 1 – A Page from Scratch—HTML


Write a simple web page from scratch, using the tags most commonly encountered in
PowerSchool pages.

1. Open a new file in your text editor

Save it to your Desktop with the name new.html.

2. Put in the tags which mark the document as HTML:


<html>

</html>

3. Inside those tags, put in the tags to mark the three sections of a web page:
<head><title></title>

</head>

Copyright © 2010 Pearson 48


Basic HTML in
PowerSchool Custom Pages

<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?

Style with CSS


Cascading Style Sheets (CSS) provide style for elements of web pages. CSS indicates the
page element to be styled, and then describes what characteristics the element should
have. CSS can apply to HTML elements or to elements you define in your HTML.
There are several advantages of CSS over in-line HTML style definitions. Removing the style
references from the HTML makes it cleaner and easier to read. Using CSS means that you
can give several elements on the page the same style with one set of code. You can also put
your CSS in one external file and style all your web pages with that one file. That way, if
you want to give your site a new look, you only have to edit one file.

Activity 2 – Add Some Style—CSS


In this activity you will use CSS to add style formatting to your new web page. Feel free to
add your own data and your own choices of style.

1. In the Head of new.html, add a reference explaining what kind of code you are
adding to the page:

Copyright © 2010 Pearson 49


Basic HTML in
PowerSchool Custom Pages

<style type="text/css"></style>

2. Add styles that will apply to everything in the whole body:


body {

font-family: verdana, trebuchet, sans-serif;

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;

Activity 3 – Do Your Own Thing


In this activity you will add in some information of your own into the page. Add text,
another table, or a link. Use the table below to find details and get ideas for what to do.

Copyright © 2010 Pearson 50


Basic HTML in
PowerSchool Custom Pages

HTML Function Example


<a></a> Anchor; sets link to <a href=
a place on a page or
"http://PowerSchoolUniversity.com"> Click here
to another page
to go to the PSU site</a>
<p></p> Paragraph; will add <p>Basic HTML is an awesome class</p>
spaces between
<p>Are you going to take other customization
paragraphs
classes too?</p>
<br/> Break; will add a <p>HTML is really cool<br/>
line break but not
But add CSS to make style rules<br/>
extra space
JavaScript is next</p>
<img/> Image; embeds an <img
image in a page src=”http://s3.amazonaws.com/theoatmeal-
img/comics/apostrophe/1.png” />
<!--…--> Comments; contents <!--JavaScript isn’t covered in this class, but it’s
are ignored by how you add interactivity to your pages. Take
browser Basic JavaScript for more details -->

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">

Copyright © 2010 Pearson 51


Basic HTML in
PowerSchool Custom Pages

<meta name="Author" content="Power School">


<meta name="Keywords" content="register for PowerSchool University 2010">

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.

How PowerSchool Pages Are Delivered


Many sites will have dynamic pages. In other words, instead of making a new page for
every bit of information a user wants to see, the code running the site takes user requests
and delivers that information to pages built on the fly. Commonly, you will see sites using
PHP (with pages having the extension .php) or pages using Java services (extension .jsp) or
the Microsoft version of Java services, called Active Server Pages (extension .asp).
PowerSchool uses its own mixture of 4D and Java in pages and on the server to dynamically
build pages. This means that there is, for example, no individual Quick Lookup page for
each student, but only one Quick Lookup screen that fills with the appropriate information
depending upon the student the user has chosen.
The way this works is that the user sends a request for a page, embedded with information
about students queried, along with the user’s access permissions. The PowerSchool server
responds (if the user has proper access) with a page filled with the appropriate information.
That page will be filled with data pulled from the database using queries, and the structure
of the page may be built from multiple files stored in server web-root.
Before customizing a PowerSchool page, you should understand how a PowerSchool page is
built and how the request for data on the page is sent. PowerSchool uses wildcards, xcodes,
and other tags to build and fill pages.
Wildcards are tags that refer to text files stored on the server that hold code. If a page
holds a reference to a wildcard, the server fills the page with the text from that wildcard
when the server sends the page data to the user’s browser. This is a way to dynamically
load HTML code into all the pages that need it. Since the code is in the wildcard in one
place, it can be changed easily. If, instead of being loaded via a wildcard, that code was
permanently on lots of different pages, imagine how much work it would take to change it.
Xcodes are tags for the PowerSchool server to read. When the server reads the xcode, it
engages the specified function, usually filling the page with complex information and HTML
code.
PowerSchool uses other tags, too. The server reads the tags and then places data on the
page as specified by the tags.

Tag Type Function


[wc:commonscripts] wildcard Inserts into a page references to common
scripts needed by PowerSchool pages

Copyright © 2010 Pearson 52


Basic HTML in
PowerSchool Custom Pages

[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.

Activity 5 – Get an Un-rendered Page Through the Browser


In the following two activities, use two different methods to get an un-rendered page:

1. Open your web browser and log in to your assigned PowerSchool server with your
assigned user ID and password

2. Choose a student and navigate to the Attendance page

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

5. Choose to view the source of the un-rendered page

How many wildcard tags are there? How many xcodes? How many other tags?

Activity 6 – Get an Un-rendered Page from the Web Root


1. Go to the PowerSchool Start Page and choose Administrator from the main menu

2. Log in to System Administrator using your user name and password

3. Choose Application Configuration

4. In the folder hierarchy, choose Admin > Students > quicklookup.html

5. Select the code from the Original Page panel and copy it into a file in your text editor

6. Save it to your desktop as download.html

Modifying a PowerSchool page


Now that you know the basics of how to build a PowerSchool page, and you know a little
HTML, you are ready to customize a PowerSchool page for yourself. Users usually start with
an existing PowerSchool page. This way, the page will have the same basic look and

Copyright © 2010 Pearson 53


Basic HTML in
PowerSchool Custom Pages

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.

Activity 7 – A Page of Your Own


1. Open the file findmexx.html from the activities folder for this class and immediately
save it to your desktop, replacing the xx with your assigned number

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

5. Remove the comments from around the T list-SQL

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

3. Make sure it links to YOUR folder and pages

4. While you are in the code of the page, check out how the code works, especially all
of the if tags

5. Save it to your folder

What tricks must you do to get to the version of the page in your folder?

Copyright © 2010 Pearson 54


Basic HTML in
PowerSchool Custom Pages

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

Copyright © 2010 Pearson 55


Basic JavaScript for
PowerSchool

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 – What Is It?


JavaScript is simply a scripting language designed to make web pages more interactive. Due
to the way browsers communicate with web servers, HTML pages without any scripting are
not very interactive. Think of how an HTML page is requested. You find something that looks
interesting on a web page, and you access this information by clicking some text or an
object. This click is sent from your browser to a web server that has to determine what you
requested and send it back.
While the time for this round-trip data transfer is getting shorter every day, you still must
wait. If you apply this model to a web form that has many pieces of data, such as
PowerSchool, and you would like to have the data validated, this transfer method is not
very efficient for that validation.
This is where JavaScript comes in. Since JavaScript runs in the browser, there is no data
transfer. The browser simply does the work with the data and instantly returns the results.
There are limitations to what JavaScript can do. These limitations are generally enforced to
ensure JavaScript cannot pose a security risk.
JavaScript cannot:
• Allow reading or writing files to the client’s computer
• Allow writing of files to the server
• Close a window that it has not opened
• Read information from an opened web page from another server

Copyright © 2010 Pearson 56


Basic JavaScript for
PowerSchool

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.

Activity 1 – Quick Codes


Throughout this class, you will be asked to use Firebug, which is an add-on for Firefox. With
Firebug you do things such as view JavaScript, discover errors, and explore the DOM. You
also type JavaScript directly into the Firebug console and execute it. This will be the method
used in class to explore many of the JavaScript commands you learn.
1. Install Firefox and Firebug
2. Launch Firebug from the Tools menu by selecting Firebug > Open Firebug
3. If you get a window that says Firebug is disabled, click Enable Firebug
4. You should now have a Firebug window at the bottom of your screen

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.

Copyright © 2010 Pearson 57


Basic JavaScript for
PowerSchool

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

Copyright © 2010 Pearson 58


Basic JavaScript for
PowerSchool

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.

Functions and Events


Using functions is the process of breaking code into small pieces that can be called when
needed. This method helps keep scripts efficient by only executing code when it is needed.
For example, assume you were asked to build a house. It would be a very daunting task
and, for most people, probably not possible. Instead, if you were asked to paint a room, this
seems much simpler and takes much less time than building the entire house. If there is
more than one room to be painted, you can be called multiple times to paint a room. Each

Copyright © 2010 Pearson 59


Basic JavaScript for
PowerSchool

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.

Copyright © 2010 Pearson 60


Basic JavaScript for
PowerSchool

Three of the most common built-in functions are:


Function Explanation
alert() Generates an alert window with the message being the text
passed to the function (OK button only)
confirm() Generates a confirm window with the message being the
text passed to the function (OK and Cancel buttons) and
returns true or false
prompt() Generates a prompt window, allowing for the user to enter
text, with the message being the text passed to the function
(OK and Cancel buttons) returns text
There are also some built-in PowerSchool functions that can be reused. These functions can
be included in your script by referencing the external file that contains the function.

Events and Event Handlers


Events are special actions that happen on a web page, and are typically initiated by the
user. For example, clicking an object is an event. These events can be monitored, and when
they occur, can initiate a script. The process of monitoring events and initiating scripts is
called Event Handler. There are many event handlers that can be used in JavaScript; some
of the most common are listed in the presentation slides.
Another method for executing JavaScript in a browser is to enter the code directly in the
address bar as a URL. You simply precede the code with javascript: indicating to the
browser that what follows will be JavaScript. The code would look something like this:
javascript:alert(‘Hello’);
If you have entered this code in the address bar, it will execute when you press Enter or
Return.
This function can be seen in PowerSchool in the Help icon. If you click the question mark in
the top right of most PowerSchool screens, you will see how this event is used. JavaScript is
used in a link to run a script that opens a popup window. The actual link looks like this:

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.

Activity 2 – Years and Terms Popup


In this activity you will write a small script that will open the Years and Terms custom page
in a popup when a link is clicked. There are two custom pages that have already been
loaded to your server. These are essentially read-only years and terms pages with no
PowerSchool wrapper around them. This allows the years and terms to be viewed with a
small window.

1. Open the transferinfo.html activity file from the Basic JavaScript Activity folder

This is the Transfer Info page from the PowerSchool server.

Copyright © 2010 Pearson 61


Basic JavaScript for
PowerSchool

2. In the transferinfo.html screen, look for the end of the table that contains the
transfer info

The last line of the table should look like this:

<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.</td>

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

6. Switch to this tab, and then in the url change transferinfo.html to


transferinfo##.html where ## is your number

Activity 3 – Graduation Year Validation


In this activity you will check the Graduation Year field on the Demographics page to ensure
it is not blank and it is a valid 4-digit year.

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

The code will look like this:


<script>

</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

Copyright © 2010 Pearson 62


Basic JavaScript for
PowerSchool

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

The code would be:


if(gradYearVal<2000 || gradYearVal>2050){

}
6. In the if statement, create an alert that indicates the Graduation Year is not valid

This statement would look like this:


alert('Gradution Year must be a valid four digit year between 2000 and
2050, and may not be blank.');

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):

<td><input type="text" name="[01]graduation_year" value="" size="5"


onChange="checkGradYear('~(JSFieldParam;[01]graduation_year)');"></td>

8. Save the file as generaldemographics##.html, replacing ## with your number, and


upload to the server

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.

Copyright © 2010 Pearson 63


Basic Object Reports

Basic Object Reports


Use PowerSchool’s Object Reports functionality whenever you need to produce a report that
pulls information from a PowerSchool data file and need complete control of the layout, or
need to include graphics. In other words, create an Object Report when the System reports
do not meet your needs. This type of report is called an Object Report because it is built by
placing several different kinds of objects on the page. The types of objects that can be
placed are Text, Line, Box, Circle, Transcript, Fee List, Picture, and Sequence.
In this class you will:
• Learn about the elements of object reports
• Create and manage Object Reports, including layout grids, student information
reports, fee receipt, and transcripts

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.

Creating Your Object Report


Use Object Reports for reports as complicated as a student transcript or as simple as a
student demographic information sheet. It is important to understand the basic elements in
order to be successful. These elements include the following: text, lines, boxes, and
pictures. Complete the following activities to practice using each element.

Activity 1 – Basic Grid Report: Creating a New Object Report


To obtain a good working knowledge of object reports, set up a report that has a grid
containing numbers in the individual cells. Begin by setting up the report parameters. No
matter the type of object report you are creating, these parameters must be formatted.
1. On the Start Page, click Reports > Setup > Object Reports > New
2. In the Title field, enter your initials and Grid Report, for example JLS Basic Grid
Report
3. This report will use student data, so choose the Students table
4. Choose the appropriate font type and font size for your report
5. Enter the desired width (in points) of the space between lines in the “Default text
line height” field

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.

Copyright © 2010 Pearson 64


Basic Object Reports

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

Activity 2 – Basic Grid Report: Report Title


Now you need to add a title to the top of your report.
1. On the Object Reports Page, click on your report
2. Click Text
3. Name your object “Heading”
4. In the text box enter <tabc 4.25>Basic Grid Report
5. Enter 0 for X or leave the box blank
6. Enter .75 for Y
7. Leave the default values in the remaining fields and hit Submit

Activity 3 – Basic Grid Report: Horizontal Lines


Next, place horizontal lines in your grid using a line object. There is no need to add an
object for each line; instead, format the line object to repeat the horizontal line.
1. To get back into your report setup, click the name of your report
2. In the New Object area, click Line
3. Enter Horizontal Lines in the Object Label field
4. Enter 1 for X, and 1 for Y in the Starting point (X,Y) fields
5. Enter 7.5 for X and 1 for Y in the Ending point (X,Y) fields
6. Enter 26 in the Times to Repeat field
7. Enter .25 in the Vertical Change field
8. Use the default values for the remaining fields, and click Submit

Activity 4 – Basic Grid Report: Vertical Lines


The next objects to add to your grid are vertical lines. Similar to the Horizontal Lines
activity, format a repeating line object.
1. In the New Object area, click Line
2. Enter Vertical Lines in the Object Label field
3. Enter 1 for X, and 1 for Y in the Starting point (X,Y) fields

Copyright © 2010 Pearson 65


Basic Object Reports

4. Enter 1 for X and 10 for Y in the Ending point (X,Y) fields


5. Enter 36 in the Times to Repeat field
6. Enter .25 in the Horizontal Change field
7. Use the default values for the remaining fields and click Submit

Activity 5 – Basic Grid Report: Adding Text to the Grid


So far you have placed horizontal and vertical lines on your report. Now place numbers for
measurements in the cells of your grid’s first row using a text object.
1. In the New Object area, click Text
2. Enter Horiz Letters in the Object Label field
3. Enter the following information in the Text field:
<tabc 1.125>A<tabc 1.375>B<tabc 1.625>C<tabc 1.875>D<tabc 2.125>E<tabc 2.375>F
<tabc 2.625>G<tabc 2.875>H<tabc 3.125>I<tabc 3.375>J<tabc 3.625>K<tabc 3.875>L
<tabc 4.125>M<tabc 4.375>N<tabc 4.625>O<tabc 4.875>P<tabc 5.125>Q<tabc 5.375>R
<tabc 5.625>S<tabc 5.875>T<tabc 6.125>U<tabc 6.375>V<tabc 6.625>W<tabc 6.875>X
<tabc 7.125>Y<tabc 7.375>Z

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

Creating an Award Certificate


If creating reports with the object reports functionality seems tedious, it’s because the
feature is so open-ended: use object reports to create an almost endless variety of
documents. The reports that you are about to create demonstrate the breadth of
possibilities.

Activity 6 – Award Certificate: Creating a New Object Report


Begin by formatting the parameters for your award certificate.
1. Navigate to the Object Reports page and click New
2. Enter Award Certificate followed by your initials in the Title field, for example
Award Certificate JLS
3. This report will use student data, so choose the Students table
4. Choose the appropriate font and font size for your report
5. Enter 0 for the Left, Top, Right, and Bottom margin fields

Copyright © 2010 Pearson 66


Basic Object Reports

6. Choose the Landscape (horizontal) Orientation


7. Use the default values for the remaining fields and click Submit

Activity 7 – Award Certificate: Boxes and Layers


Build an award certificate with filled boxes and layered objects. These boxes will be the
borders of your certificate. Format two boxes and remember to format the layering.
1. On the Object Reports page, click the name of your report
2. Click Box
3. Enter Red Border in the Object Label field
4. Refer to the Award Certificate example handout in the Appendix, and enter the
correct measurements in the Left, Top, Right and Bottom fields
5. Enter darkred in the Line Color field

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

Activity 8 – Award Certificate: Graphics


You are now ready to place your school logo in the certificate using a picture object.
Graphics need to be loaded into PowerSchool and must be in JPEG format.
1. If you have access to an electronic copy of your school’s logo in JPEG format, or you
can download one to your desktop quickly from the Internet, feel free to use it for
this activity; otherwise skip to Step 6 and use mini_tiger_copy.jpg for Step 9.
2. On the Start Page, click Reports > Setup > Pictures
3. Click Choose File (Mac) or Browse… (PC)
4. Navigate to and choose your graphic, and click Choose (Mac) or Open (PC)
5. Click Submit

Copyright © 2010 Pearson 67


Basic Object Reports

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

Activity 9 – Award Certificate: Signature Lines and Text


The next item you need to add is text. Not only do you need signature lines, but the school
and student information too. Create the lines and place text in the certificate.
1. In the New Object area, click Line
2. Enter Signature Lines in the Object Label field
3. Refer to the Award Certificate example handout in the Appendix, and enter the
correct information in the fields

Format the X and Y coordinates and the repeat fields.


4. Choose 2 from the Layer menu
5. Use the default values for the remaining fields and click Submit
6. In the New Object area, click Text
7. Enter Certificate Text in the Object Label field
8. Refer to the Award Certificate example handout in the Appendix, and enter the
correct information in the fields

Format the needed text and the X and Y coordinates.


9. From the Layer menu, click 2
10. Use the default values for the remaining fields and click Submit
11. Repeat steps 6-10 to complete the remaining text objects or try using HTML and tab
codes to combine the lines of text

Copyright © 2010 Pearson 68


Basic Object Reports

Activity 10 – Award Certificate: Circles and Starburst Points


The last object you need to add to your certificate is a gold seal. Create the seal using a
circle object.
1. In the New Object area, click Circle
2. Enter Award Seal in the Object Label field
3. Refer to the Award Certificate example handout in the Appendix, and enter the
correct information for X and Y in the Center Point fields
4. Enter 0.9 in the Radius field
5. Enter goldenrod in the Line Color field
6. Enter goldenrod in the Fill Color field
7. Enter 30 in the Starburst Points field
8. Enter 0.7 in the Starburst Radius field
9. Choose 3 from the Layer menu
10. Use the default values for the remaining fields and click Submit

Exporting an Object Report as Template


Another great feature of PowerSchool Object Reports is that after all the hard work and time
you put into developing a report, you can export a copy of the setup. Once you have
exported the setup, you can save it as a file, transfer it just as you would any other type of
file, and import it to any other PowerSchool server.

Creating a Student Demographic Report


One of the most basic uses of object reports is to pull students’ general demographic
information from the data file into a detailed report. Use this type of report to print a paper
copy for a permanent record, or as a form for parents to complete when information is
missing. Specify page numbers in your objects if your report has more than one page per
student.

More Than One Student on a Page


Most object reports present information about one student on one page, as in a report card
for example. Using the Special function in the setup of a text object, however, you can tell
PowerSchool to print the text object for one student, and then move to the next student
record. Repeat the text object for as many students as you want to include on one page,
and select the box for Special on the setup screen for each object except the last one.

Copyright © 2010 Pearson 69


Basic Object Reports

Activity 11 – A Multi-Student Page


Create a report that pulls some basic demographic information for ten students onto one
page. Accomplish this task using text objects, horizontal lines, and the Special function.
1. Navigate to the Object Reports page and click New
2. In the Title field, enter your initials and Demographics, for example JLS
Demographics
3. This report will use student data, so choose the Students table
4. Choose the appropriate font and font size for your report
5. Enter 0 for the Left, Top, Right, and Bottom margin fields
6. Use the default values for the remaining fields, and click Submit
7. On the Object Reports page, click the name of your report
8. Create a text object for a title at the top of the page using <tabc
4.5>Demographics, and the X coordinate of .5 and Y coordinate of .5; then click
Submit
9. In the New Objects area, click Line
10.Enter Horizontal Lines in the Object Label field
11.Enter 0.5 for X, and 0.75 for Y in the Starting point (X,Y) fields
12.Enter 8 for X and 0.75 for Y in the Ending point (X,Y) fields
13.Enter 1 in the Line Width field
14.Enter 10 in the Times to Repeat field
15.Enter 1 in the Vertical Change field
16.Use the default values for the remaining fields, and click Submit
17.Create a new text object starting with the label Student 01
18.In the Text field, enter the following:
<tabl .55>^(lastfirst)<tabl 2.5>Gender:
^(decode;^(gender);m;Male;f;Female)<tabl 4>Grade: ^(Grade_Level)<tabl
4.5> Phone: ^(home_phone)
<tabl .55>Guardian: Father: ^(father) - Mother: ^(mother)
<tabl .55>^(street)
<tabl .55>^(city), ^(state) ^(zip)
19.Notice the code used for the gender of the students—
^(decode;^(gender);m;Male;f;Female). Instead of printing an M or F, it will print
the word Male or Female.
20.Enter 0.5 for X, and 1 for Y in the Position fields
21.Enter 10 in the Line Height field
22.Check Special to move to the next record after printing this text

Copyright © 2010 Pearson 70


Basic Object Reports

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

Creating a High School Transcript


As you think about what is involved in creating a transcript, you’re probably a bit
intimidated. Don’t be. Because a transcript is quite complex, much of the work has been
done for you and is available as one of the types of objects that you can place in a report.
Besides defining the invisible box for the transcript information and the columns, you also
need to create an overflow box for historical grades than won’t fit in the transcript box.

Activity 12 – High School Transcript


Your final task is to create a high school transcript. Depending on how detailed you need
your transcript to be, you might use many objects. Create the main portion of the transcript
with a transcript object, but you will also need text objects for student information, boxes to
surround the information, lines to separate columns of information, and even a school logo.
1. Navigate to the Object Reports page, and click New
2. In the Title field, enter your initials and Transcript, for example JLS Transcript
3. This report will use student data, so choose the Students table
4. Choose the appropriate font and font size for your report
5. Enter 0 for the Left, Top, Right, and Bottom margin fields
6. Use the default values for the remaining fields, and click Submit
7. On the Object Reports page, click the name of your report
8. In the New Object area, click Transcript
9. Refer to the High School Transcript example report on the demo server as you work
on your transcript report

Creating a Fee Receipt


Another useful object report option is creating a fee receipt to show all debits and credits.
Because a fee report is quite complex, much of the work has been done for you and is
available as one of the types of objects that can be placed in a report. You will define an
invisible box for the fee information to reside in and the columns that you want to use to
pull information for this report.

Copyright © 2010 Pearson 71


Basic Object Reports

Activity 13 – Fee Report


1. Navigate to the Object Reports page and click New
2. In the Title field, enter your initials and Fee Receipt, for example JLS Fee Receipt
3. This report will use student data, so choose the Students table
4. Choose the appropriate font and font size for your report
5. Enter 0 for the Left, Top, Right, and Bottom margin fields
6. Use the default values for the remaining fields, and click Submit
7. On the Object Reports page, click the name of your report
8. In the New Object area, click Fee
9. Refer to the Fee example report on the demo server as you work on your fee report

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

Copyright © 2010 Pearson 72


Basic ReportWorks

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

Managing ReportWorks in PowerSchool


PowerSchool administrators must set up ReportWorks in PowerSchool:
• Set report categories
• Set preferences
• Give access to ReportWorks Developer users
Report categories are needed in the publishing phase of creating a report. The categories
you establish here populate a menu on the Publish page.
Select ReportWorks Preferences to edit report queue and developer preferences.

Activity 1 – Set Up Categories and Preferences


1. On the Start Page, click System > ReportWorks Administration
2. Click Report Categories
3. Click Add New Report Category
4. In the blank field, type the name of a category for a type of report

You might have reports that contain only demographic information, so a


Demographics category could be made available. Please use your initials with your
category name.
5. Click Submit
6. Repeat steps 4, 5, and 6 for all the categories you need
7. Click ReportWorks Administration in the breadcrumbs; then click ReportWorks
Preferences

In this basic class, we will not change anything during the rest of this activity but
just observe what and where the preferences are.

Copyright © 2010 Pearson 73


Basic ReportWorks

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.

Activity 2 – Set Up ReportWorks Developer Users


Give a staff member permission to use ReportWorks.
1. On the Start Page, click Staff
2. Search for and select a staff member
3. Click Security Settings
4. Select Yes for “ReportWorks Developer user?”
5. Click Submit

Getting Started
To access ReportWorks:
1. On the Start Page, click ReportWorks or click Reports > Setup > ReportWorks
2. Click Launch

ReportWorks will launch as a separate application using Java™.

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.

Activity 3 – Create Student List Schedules from a Template


ReportWorks contains pre-fabricated report projects, including some that can do almost
everything you might need to do with student schedules. When you need a report in a
hurry, a template is a good way to go.
1. Log in to ReportWorks, and click Project based on a template
2. Select Student Schedule List, and click Create
3. Change the Project Name and Description to fit your project
4. Click Layout > Preview to see examples of student schedules

Copyright © 2010 Pearson 74


Basic ReportWorks

5. Click Edit to look at how the report is set up

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.

Activity 4 – Create Mailing Labels


Create a basic label with the student's first name, last name, address, city, state, and zip.
Also, set a Boundary (filter) to confine the report to active students only.
1. To start a new report project, click +add in the upper-left corner of the screen, and
choose Add Project

The new report project name is “Untitled Report.”


2. Right-click, Control-click, or double-click Untitled Report and select Load Report

Copyright © 2010 Pearson 75


Basic ReportWorks

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

Copyright © 2010 Pearson 76


Basic ReportWorks

32. Click Edit to close the preview

Activity 5 – Add a Logo to Your Labels


Now it's time to personalize your labels with the school mascot.
1. Click the first label so that it has a light-red border around it
2. In your PSU activity files, go to the ReportWorks folder, and find the file named
mini_tiger.png
3. Resize the ReportWorks window so that you can see both the window and the
mini_tiger.png file at the same time
4. Drag the mini_tiger.png to the first label
5. In the Image Import box, click Image Shape
6. Resize the label text, so that the image has room

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

Creating Student Lists


Since you are now acquainted with how to create your own label, turn your attention to
another report project. Use some of the design features in ReportWorks to create a student
list.

Activity 6 – Create a Simple Student List


Begin your student list by getting students' names, genders, and ethnicities; then sort the
list by students’ last names.
1. Start a new report project: click +add in the upper-left corner of the screen, and
choose Add Project
2. Right-click Untitled Report and select Load Report
3. Give your project a title that includes your initials, such as Simple Student
List_gb, then give it a description
4. Select the “Student: Basic” Data Set
5. Click the Scope tab, and repeat steps 8–13 in activity 4
6. Click Layout
7. You will be offered at least 5 choices, click Table and then OK
8. In the Data Set panel, click Contact to expand the set
9. Drag Last_Name to the first cell of the table
10. Drag First_Name to the second cell of the table

Copyright © 2010 Pearson 77


Basic ReportWorks

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

Activity 7 – Format the Student List


The list is working well so far and you have appropriate spacing between the students’
information. But it's quite plain. It could use a little dressing up. Change fonts and colors,
and add a header to your report project.
1. Resize the first and second columns so that they take up most of the row
2. Resize the third and fourth columns, so that each column width is appropriate to the
data

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

Click the Table Inspector, and then click Header.


4. Drag School_Name into the first cell of the Student Header
5. Click in the Text Inspector after the School_Name data object; type a space and then
enter Student Roster
6. Click the box next to the word “Standard” on the Student Header to merge the four
cells into one

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

Copyright © 2010 Pearson 78


Basic ReportWorks

Activity 8 – Alternate Row Colors


So, you now have a colored background for your page header. Wouldn't the rows of
students’ names benefit from a little color, too? The problem is, if you make every row the
same color, nothing really stands out. It would be better to use a color for every other row.
1. Click Standard on the Student Details row
2. Choose Add Alternate to have a different color for the alternate rows
3. Click the Paint/Fill Inspector (paint bucket), click Fill, and choose a color

A good choice is a light, subtle gray color.


4. Click Preview to see how the data will look

Note that the gray rows will be the even-numbered rows.


5. Click Edit to go back to the design of your table
6. Click Alternate on the Student Details row, and choose Standard

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

Activity 9 – Sort Data and Add Page Numbers


You've previewed the report a couple of times. Notice that the report will span more than
one page. Knowing that, it makes sense to have page numbers so that when you print the
report, it's easier to keep the pages in order. Sort the students by last name, making the
data easier to read.
1. Click inside the table, then click Table Inspector on the Inspector Pane
2. Click Contact, then click Last_Name and drag the Last_Name data object to the
Sort area of the Table Inspector
3. In the Data Set’s first column, click Page of PageMax and drag it to the bottom of
the page, below the edge of the table
4. To get the page number to the center of the page, expand the placeholder so that
it's the width of the page, and then center align the text using the Text Inspector
5. Click Preview
6. Click Edit to close the preview

Publishing and Unpublishing a Project


In order to use your reports in PowerSchool, you must publish them. Publishing a project
makes it a report. Once you have published a report to a school, it appears in that school’s
list of ReportWorks reports. The only way to remove a report from PowerSchool’s list is to
go back into ReportWorks and unpublish it.

Copyright © 2010 Pearson 79


Basic ReportWorks

Activity 10 – Publish 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

Activity 11 – Unpublish 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

Using ReportWorks Reports in PowerSchool


Running a ReportWorks report is very intuitive except for a couple of things:
• ReportWorks reports have their own location in PowerSchool—a tab on the Reports
page
• ReportWorks has its own report queue

Activity 12 – Print ReportWorks Reports


1. Log in to PowerSchool
2. Click Reports
3. Click ReportWorks

The reports will be sorted by category.


4. Click the name of the report you want to run
5. On the report’s Runtime Parameters page, select the appropriate parameters for
your desired results
6. Under Scheduling, select Run Now, and click Submit
7. In the Report Queue, there are two tabs; click ReportWorks if it is not already
selected

Copyright © 2010 Pearson 80


Basic ReportWorks

Your report will be in the Queued Reports panel.


8. If the status says Pending or Running, at the top of the pane, click Refresh
occasionally until the job’s status says Completed
9. 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.

Creating a Report Containing a Student Bell Schedule


How many times during a school year do you need a document containing a student class
schedule? With ReportWorks you are able to make a report with a table containing the
schedule, or place a schedule in other types of documents, such as a letter to parents. A
template is included with ReportWorks, making this project very easy to create.

Activity 13 – Create a Student Bell Schedule


1. Log on to ReportWorks, and click Project based on a template
2. On the list of templates, click Student Bell Schedule, and click Create
3. Name and describe the project (include your initials in the name), and make sure the
Data Set is Student: Basic + Bell Schedule
4. Click Scope and set up appropriate Boundaries and Runtime Controls
5. Click Layout; then click Preview to see whether the template pulls the information
you want in your report
6. Click Edit, and using the techniques you learned in this course, modify the project to
fit your needs

How would you add the expression to the schedule listing?

Using ReportWorks to Fill in Forms


It might be a letter to parents, a 504 plan, or a permission slip. Whatever it might be, you
can't get too far in your school day without having to fill out a form for multiple students.
ReportWorks has some tools to make this a little bit easier.
In the next two activities, you will see two different examples. In the first example, use an
existing permission slip, which is in PDF format, and use ReportWorks to help fill in the
fields. In the second example, copy and paste some text directly into the ReportWorks
window, and edit the text.

Activity 14 – Use a PDF Letter and Add Data objects


In this activity, you already have a PDF form letter to drag and drop into the report project
Layout window.
1. Create a new report project titled PDF Form Letter
2. For the Data set, choose Student: Basic

Copyright © 2010 Pearson 81


Basic 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

Activity 15 – Create an Impromptu Form Letter


Sometimes you have a form letter file that a colleague has given you. It's not quite what
you need, but it's a good start. Using ReportWorks, take the existing text and modify it for
your purposes.
1. Create a new report project titled RTF Form Letter, and choose the Student: Basic
data set
2. Click the Scope tab, and set appropriate Boundaries and Runtime Controls
3. Click Layout
4. From the options, click Form Letter and then OK
5. Click the Text tool on the tool bar, and add a text box to the layout
6. Resize that field to take up most of the page, and then double-click the text box to
add text to it
7. In your PSU activity files, open the file named permission_slip.rtf
8. Copy the text from that file, and paste it into the ReportWorks window
9. Drag the FirstLast_Name data object to where the student’s name should appear
10. Replace the underline in the line that reads “no later than __________” with a date
11. Click Preview
12. Click Edit to close the preview

Copyright © 2010 Pearson 82


Basic ReportWorks

Importing and Exporting Projects


Since you have gone to all the trouble to create new projects, export them to take them to
your school and put them on your server.

Activity 16 – Export & Import a Project


1. Select a report you worked on today that you want to take with you to use on your
server
2. Use the steps below to export that file to your computer, thumb drive, etc.

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

Activity 17 – Use the Help Section and PowerSource


In this handout, you have covered a lot of things, but not everything. Use the Help section
of ReportWorks for context-sensitive help, and PowerSource for additional help and
information.
1. On any tab/screen on ReportWorks, click the question mark symbol for help

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

Copyright © 2010 Pearson 83


Basic Schedule-Building
Concepts

Basic Schedule-Building Concepts


You can complete all your scheduling tasks in PowerSchool via PowerScheduler.
PowerSchool can build your master schedule from scratch, load students’ requests into the
schedule, or make minor modifications to an existing schedule. However, before you begin,
you need to understand the basic concepts of schedule-building. This course covers the
following topics:

• Common scheduling terms

• Preliminary tasks for building a master schedule

• Using the course request tally to determine course offerings

• How to analyze and adjust the master schedule

Understanding the Basics


You need to address a few items before schedule-building begins. The first is to verify that
the student course requests are satisfied. This involves offering the correct courses. Next,
make sure the sections are balanced. This includes offering enough sections as well as
making sure one section is not overloaded with students. Finally, teacher assignments must
fit the staff requirements. For example, you can’t offer French classes if you don’t have a
qualified teacher. Finally, you need a master schedule that promotes student success. All
these items encompass “the criteria for success” for schedule-building.

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

Copyright © 2010 Pearson 84


Basic Schedule-Building
Concepts

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

Common Schedule Types


There are three common schedule types:

• 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.

Activity 1 – Reviewing Course Offerings


Imagine you have been the master schedule builder for your district for the past several
years. Based on your experience, think about how many sections of each course you can
offer. Place an S, D, or M in the Sections column. Then, answer the question below.
S=Singleton D=Doubleton M=Multi-Section Course

High School Middle School


Course Title # Sections Course Title # Sections
Algebra Chorus
American History PE 6
American Literature Language Arts 6
Ceramics Math 6
French 1 Science 6
Keyboarding Reading 6
Marching Band History 6
PE 9 Exploratory Music
Science 9 Exploratory Computers

Spanish 1 Exploratory Foods

Copyright © 2010 Pearson 85


Basic Schedule-Building
Concepts

High School Middle School


Course Title # Sections Course Title # Sections
Swing Choir Exploratory Art

Theater Arts Exploratory Woods

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. _____________________________________________________________

Activity 2 – Understanding Class Schedule Types


Complete the following statements with the correct schedule type.

1. A ___________________________ contains courses that meet the same time every


day.

2. A ___________________________ contains courses that meet different times every


day.

3. A ___________________________ contains courses that are the same all year, but
meet every other day.

4. A ___________________________ contains some courses that meet every day,


while others meet specific days.

5. A ___________________________ contains four courses scheduled for Semester 1


and four courses scheduled for Semester 2 that meet for two periods.

The Request Process


The first step in the request process is to consider curriculum changes. Look at last year’s
offerings and then decide which modifications are necessary. This may include adding new
courses, new rooms, or making changes to existing courses and rooms. Each course offered
for the next school year needs to be in the course catalog in order for sections to be
created. You can add new courses at the district level or school level.
When adding courses to PowerSchool, the course number may not seem very important.
But how you number your courses can make organizing them easier. There are three
common numbering systems: by department, by term, or by grade level.

Copyright © 2010 Pearson 86


Basic Schedule-Building
Concepts

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.

Activity 3 – Adding a New Course


You decided to offer study hall next year. Since you don’t have that course listed in
PowerSchool, you need to add it. The course name is Study Hall, and contains a number
assigned by the instructor. This assigned number follows the course number.
1. On the Start Page, click School > Courses > New Course
2. Enter the course name, for example Study Hall 01
3. Enter the course number, for example EL0001
4. Enter 1 credit hour
5. Use the default values for the remaining fields
6. Click Submit

Activity 4 – Exploring Methods of Collecting Requests


You’re uncertain which method of collecting course requests is going to work best for your
school. To help you decide, list at least one advantage and one disadvantage of the
following methods.

Method Advantages Disadvantages

Distribute course
request forms and
course catalogs during
Homeroom

Copyright © 2010 Pearson 87


Basic Schedule-Building
Concepts

Method Advantages Disadvantages

Students enter course


requests online

Counselors meet
individually with each
student to determine
course requests and
then enter the course
requests into
PowerSchool

Reviewing Course Requests


After all course requests are submitted, you need to review them and consider the following
questions:
• Will the class be offered based on the number of requests?
• How many sections will be offered for each class?
• Do any sections need to be combined?
• What is the maximum enrollment for each class?
• Are additional staff allocations needed?
PowerScheduler contains a valuable report to answer most of these questions - the Course
Request Tally report. This report lists the primary requests, alternate requests, and total
requests. You can also use the Calculate Sections function in PowerScheduler to help
determine the number of sections needed based on the number of course requests and
maximum enrollment per section.

Activity 5 – Determining Sections


Use the following Course Request Tally report and your basic scheduling knowledge to
answer the questions below.

Copyright © 2010 Pearson 88


Basic Schedule-Building
Concepts

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?

______________________________________________________________

C. Technical English is currently a course restricted to students in grades 11 and 12.


Six students in grade 10 requested this course. Based on the Criteria for Success
slide, what are two possible courses of action you can take? Why?

______________________________________________________________

Activity 6 – Solving Potential Conflicts


PowerScheduler has several conflict matrix reports. These reports help you find which
courses pose the most conflicts when scheduled. Singletons and doubletons such as AP,
Honors, or high-level Foreign Language courses need to be evaluated for section placement.
Multi-section courses such as English, Algebra, or Physical Education do not pose as many
conflicts since there are plenty of sections for the students.

Copyright © 2010 Pearson 89


Basic Schedule-Building
Concepts

Use the following Potential Conflicts table to answer the questions below.

1040 AP Am Lit & Comp A

1045 AP Am Lit & Comp B

1065 Technical English


1050 Creative Writing

7050 Swing Choir


7040 Jazz Band
Potential Conflicts Report

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?

______________________________________________________________

Copyright © 2010 Pearson 90


Basic Schedule-Building
Concepts

Constructing the Schedule


As with building a school, you must lay the foundation first when constructing the schedule.
First, review the parameters and constraints. Determine which courses have to go in a
specific period based on any of the following restrictions. Prescheduled sections - you know
when, where, and who will teach this section based on teacher or room availability. Teacher
restrictions include common planning periods for teaming. Room restrictions consider which
rooms are course-specific such as science lab rooms. Constraints are used to limit the build
from scheduling.
Second, start building the singletons. The goal is to build the schedule so the most number
of students are placed in the singletons. To do this, distribute the singletons throughout the
day to maximize the students getting into these courses. Next, schedule the doubletons.
The goal is to have no conflicts with the singletons. Place the sections in different periods
for the singletons, and again allocate throughout the day.
Finally, build the multi-section courses by number of sections from lowest to highest. Place
in as many different periods as possible and spread throughout the day. Try to avoid
conflicts with the singletons and doubletons. For example, if all 8th graders have to take PE,
place multi-section courses such as Language Arts, in opposite periods. All of this building
can be done with PowerScheduler.

Activity 7 – Constructing a Schedule


In the master schedule below, designate three teams in the TEAM column (A, B, C) so that
each team has all six classes in the schedule.
Raymond
Johnson
Teacher

Teacher

Teacher

Teacher

Teacher

Teacher
Adams
Turner

Brown
Smith
TEAM

TEAM

TEAM

TEAM

TEAM

1 US Hist Am Lit Chem TEAM


2 US Hist Eng 11 Alg II
3 Eng 11 Am Lit Chem
4 US Hist Alg II Psych
5 Eng 11 Alg II Psych
6 Am Lit Chem Psych

Copyright © 2010 Pearson 91


Basic Schedule-Building
Concepts

Activity 8 – Entering a Constraint


You are almost ready to build your master schedule. But, it has come to your attention that
the Band class must meet 1st period. Enter a pre-schedule constraint for the class.

1. On the Start Page, click PowerScheduler > Constraints > Pre-Schedule > New

2. Click Associate in the Course Number row

3. Select Band and click Submit

4. Select Full Year

5. Select 1st period both A and B

6. Associate a room and teacher to this section

7. Click Submit

Evaluating and Publishing


After you build your schedule, use the following reports to evaluate if you need to make any
adjustments:
• Summary of scheduling results
• Students with non-scheduled course requests
• Student Schedule List
• Master Schedule report
• Schedule Course Enrollment report
In addition, there are many formats available to publish the master schedule. Whether it is
a paper copy of the master schedule or actual student schedules to hand out, PowerSchool
has a report for it. The following are useful reports to publish your schedule:
• Master Schedule
• Student Schedules
• Teacher Schedules
• Class Rosters

Activity 9 – Creating a Student Schedule


You decide that the Report Card Template is the best option to create a student schedule.
Format your schedule with period, course, teacher, and room information. Remember to
include your initials in the title of the report.

1. On the Start Page, click Reports > Setup > Report Cards > New

2. Title your template, Student Schedule, followed by your initials

3. Remove the default title and enter 2010-2011 Schedule

4. Click Submit

Copyright © 2010 Pearson 92


Basic Schedule-Building
Concepts

5. Select your template and then click Heading

6. From the Heading text style menu, choose Center

7. Enter Name: ^(lastfirst) Grade: ^(grade_level) and click Submit

8. Click Schedule Listing and enter the following information:


Column Title: Times 10 (B)
Class Listings: Times 10
Use Future Schedule: LEAVE CLEARED
Listing Line Height: 12 points
Frame: 1 Width, 6 Corner Rounding
Divider Line Width: .5 Horizontal, .5 Vertical

9. Click Submit

10. Select the report to be available to only users at (your school) and click Submit

11. To view the schedule, navigate to a student’s pages

12. Click Print A Report

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

Copyright © 2010 Pearson 93


Basic SQL in PowerSchool
Queries

Basic SQL in PowerSchool Queries


The PowerSchool database contains a lot of data, which you normally have access to
through a web page interface. This interface is easy to use, but sometimes that ease comes
at the expense of power and flexibility. As your database grows, you find the need to search
in a detailed manner or pull data from across schools, and the web interface is not the
easiest way to do that. With SQL (Structured Query Language), you have the power to
make detailed queries across the entire database.
By the end of this session, you will be able to:

• Describe the basic database structure of PowerSchool

• Use SQL to write basic queries with filters and simple joins of two tables

• Use SQL with PowerViews

Relational Database Concepts


Spreadsheets are used to collect and organize data. Columns contain fields, and rows
contain instances of the fields. Schools could use spreadsheet programs like Excel to hold
student data, but the spreadsheets would grow too large and unwieldy very quickly.
Relational databases work much like a set of interlinked spreadsheets. They are sets of
tables that can be connected by data shared across the tables. For example, in
PowerSchool, the Students table connects to the Stored Grades table using a student ID
that they have in common. The tables have different names for the data (ID in the Student
table and StudentID in the Stored Grades table), but the data is the same.
In these tables, the columns represent fields, and the rows are filled with instances. To read
the tables, go down to the row you want, and then read across to find all the data for that
instance. For example, in the Students table you read down until you find the correct last
and first name, and then read across to find grade level, gender, and other information
about the student.
You can make database diagrams to represent the relationships between tables. In these
diagrams, tables are represented by boxes filled with their field names and connected by
lines to show how they link.
You can find information on PowerSchool’s data structure of 200 tables in the Data
Dictionary available through PowerSource, or by going to Direct Database Export (DDE).
Access DDE by clicking System > Direct Database Export (DDE).

Activity 1 – Examining Tables and Diagrams


In this activity, use one of the two ways to get information about PowerSchool’s data
structure to find out about how some tables are related.
1. Using either the Database Dictionary or DDE (Direct Database Export), find the Students
and Stored Grades tables.
What fields link the two tables? _____________________________

Copyright © 2010 Pearson 94


Basic SQL in PowerSchool
Queries

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: _________________________________________________________

Why use SQL?


SQL is a big, powerful tool, but sometimes a power saw is too much, and a paring knife
would be just fine. So how do you decide which tool to use—Quick Export, DDE, or SQL? It
depends on the details of the job.
If you want just a few fields from the Students table, then it makes sense to use Quick
Export or even DDE. You can join two tables in Quick Export and DDE, but to do so in SQL is
much easier. Of course, once you find out how easy and fun it is to use SQL, you might
never go back to using the other methods, even for simple queries.

The Basics of SQL


SQL is the language of databases. Your PowerSchool user rights allow you to construct SQL
statements called queries to pull data directly from the database. This course covers the
basics for how to write these queries.
SQL queries have three main sections—the SELECT clause (get what data?), the FROM
clause (from what tables?), and the final clause which holds special instructions (like filter or
order the data).
To get data from more than one table, add a JOIN statement and specify where to match
the rows in the different tables (ON). For each table you add to the query, an additional
JOIN is required. In a query of two tables, use one JOIN; in a query drawing from three
tables, use two JOINs, and so on.
You can also sort data and filter data using the SQL commands ORDER BY and WHERE.
Other SQL functions to make calculations and formatting changes are covered in the
Advanced Querying class.
When typing SQL queries, the convention is to make the SQL commands in all caps. The
database doesn’t care, but using all caps makes reading the queries or checking them for
errors much easier.
When joining tables, you need to indicate the tables from which the fields in your SELECT
clause are coming. In the SELECT clause, type each field name preceded by the appropriate

Copyright © 2010 Pearson 95


Basic SQL in PowerSchool
Queries

table name, separated by a period. This syntax helps the query to scan the correct table for
the field names containing information you specified.

Activity 2 – Writing SQL Queries


You are going to build a SQL query, working sequentially and adding layers of complexity.
Open SQL Developer, connect to your assigned server, and open the query pane.
1. You want to analyze the distribution of letter grades in your student population. To
start, type this basic query:
SELECT lastfirst
FROM students
WHERE schoolid=100
Click Execute Statement. What did the query return?
__________________________________________________________

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

Copyright © 2010 Pearson 96


Basic SQL in PowerSchool
Queries

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

Copyright © 2010 Pearson 97


Basic SQL in PowerSchool
Queries

Save this query and open another.

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.

SELECT COUNT(s.id), sc.name, s.enroll_status


FROM schools sc
JOIN students s
ON s.schoolid=sc.school_number
GROUP BY sc.name, s.enroll_status

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.

SELECT COUNT (*), sc.name, s.enroll_status


FROM schools sc
JOIN students s
ON s.schoolid=sc.school_number
GROUP BY sc.name, s.enroll_status
ORDER BY s.enroll_status

What does the resulting data look like? How does it change if you reverse the order of
the fields in the GROUP BY?
________________________________________________________________

Copyright © 2010 Pearson 98


Basic SQL in PowerSchool
Queries

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.

Activity 3 – Using PowerViews in SQL Queries


Enhance some of your previous queries with data from PowerViews. These activities are
only a sample of what you can do with PowerViews.

1. PowerViews make it easier to add ethnicity data to an analysis of grades. Add in a


JOIN to Student Demographics, and then add the ethnicity name to the SELECT
clause.
SELECT s.lastfirst, s.gender, s.grade_level, d.ethnicity_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
WHERE s.schoolid=100
AND sg.termid>=2000
ORDER BY s.lastfirst

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.

Copyright © 2010 Pearson 99


Basic SQL in PowerSchool
Queries

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.

Copyright © 2010 Pearson 100


Building FusionCharts Using
SQL, JavaScript, and XML

Building FusionCharts Using SQL, JavaScript, and XML


FusionCharts is the technology behind the PowerSchool dashboard, which displays graphs
representing data from the PowerSchool database. By allowing users to view data in a
graphical format rather than textual, it allows for easy comparison or spotting trends.
Implementing FusionCharts into a PowerSchool page requires the use of SQL to retrieve the
data, XML to pass the data, and JavaScript to manipulate the data.
This class will:
• Discuss the creation and use of FusionCharts
• Explore the functionality of TList SQL and XML
• Show how to make a FusionChart for grade distribution
• Teach you how to include FusionCharts in the existing PowerSchool Dashboard

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.

Activity 1 – Exploring the Dashboard and Enrollment Summary


In this activity, explore the built-in PowerSchool Dashboard, as well as the use of Fusion
Charts with the Enrollment Summary.

1. Log into your assigned PowerSchool server with your username and password

2. Click Dashboard

3. Navigate through the Dashboard, looking at the various pieces of data

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.

5. Add a widget by selecting it, and clicking Add Widget

6. Click Enrollment Summary on the main menu

7. Click the row and column headers such as Asian or 11

Notice how the data displays in a graphical form.

Copyright © 2010 Pearson 101


Building FusionCharts Using
SQL, JavaScript, and XML

TList SQL and XML


The main task when creating a FusionChart is acquiring the data. Since charts are generally
a summary of a large amount of data, simply requesting data from a PowerSchool table will
not work. Most of the time, you need to query data from multiple tables, and then
summarize the results. You most likely need to use TList SQL, which is a command that can
be inserted into a web page that uses the SQL query language, to extract data from the
PowerSchool database. TList SQL can only be used in PowerSchool Premier.
SQL queries must contain a SELECT statement, which tells the database which fields are
being requested, and a FROM statement, which defines the tables the data will be pulled
from. Optional commands include the WHERE clause, a conditional statement that defines
which records will be requested, and a GROUP BY statement that allows grouping of data in
a summary format. The GROUP BY is an important piece in developing FusionCharts.
The code for TList SQL uses the same pieces of code as a SQL query. The following is an
example of a TList SQL statement:
~[tlist_sql;SELECT sg.Grade LetterGrade, COUNT(*) GradeCount
FROM StoredGrades sg
WHERE sg.TermID>=~(curyearid)*100 AND sg.SchoolID=~(curschoolid) AND
sg.Grade IS NOT NULL
GROUP BY sg.Grade]
[/tlist_sql]

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.

Copyright © 2010 Pearson 102


Building FusionCharts Using
SQL, JavaScript, and XML

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.

Activity 2 – Building a SQL query


In this activity, you use DBVisualizer to query a distribution of grades.

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

Copyright © 2010 Pearson 103


Building FusionCharts Using
SQL, JavaScript, and XML

subCaption Sub-caption underneath the title


Bgcolor Defines the background color
Yaxisname Title for the Y axis
Xaxisname Title for the X axis
decimalPrecision Number of decimal points numbers will be
displayed in
formatNumberScale Formats numbers to be shown as actual numbers,
or append K for Thousands, or M for Millions
canvasBorderThickness Sets the border thickness

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.

Activity 3 – Building the XML File


1. Open a text editor and create a new file called gradeDistAll##.xml, where “##” is
replaced with your number from class

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'>

Copyright © 2010 Pearson 104


Building FusionCharts Using
SQL, JavaScript, and XML

</graph>

3. Copy and paste the SQL statement from the previous exercise after the graph
attributes but before the closing graph tag </graph>

4. Add the opening and closing tlist_sql tags to the query

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

The final code will be:


~[tlist_sql;SELECT sg.Grade LetterGrade, COUNT(*) GradeCount
FROM StoredGrades sg
INNER JOIN Students s
ON sg.StudentID=s.ID AND s.Enroll_Status=0 AND
s.SchoolID=~(curschoolid)
WHERE sg.TermID>=~(curyearid)*100 AND sg.Grade IS NOT NULL
GROUP BY sg.Grade]<set name='~(LetterGrade;t)'
value='~(GradeCount;l)' color="3300CC"/>
[/tlist_sql]

6. Save the file to the custom web_root in the /admin/portlets/ folder

7. Navigate to the file in a web browser

8. Explain the results you get from the page


____________________________________________________________

Building the FusionChart


Now that you have the data file for the FusionChart, the next step is to pass the data into a
page that will display the chart. This is done using the Object and Embed tags. The actual
code used in object/embed can be found in the presentation slides.
The Object and Embed tags are generally used together, and define the same information.
The difference is in the receiving browser. Internet Explorer uses the Object tag. All other
browsers use the Embed tag. These tags instruct the browser to use the specified plug-in to
generate an object, in our case a graph.
Below are the attributes that will be used to define the grade distribution chart:

Attribute Explanation
WIDTH & HEIGHT Width and height of the entire canvas
chartWidth & chartHeight Width and height of the chart

Copyright © 2010 Pearson 105


Building FusionCharts Using
SQL, JavaScript, and XML

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)

Activity 4 – Putting it all Together


In this activity, use the XML file just created to produce a graph.

1. Open pscharttemplate.html from the PSU activities file and save it as


gradeDistAll##.html where “##” is your number from class

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

4. Save the file to the custom web_root in the /admin/portlets/ folder

5. Open the page in a browser and you should see a graph

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.

Dashboards and Widgets


A widget is a term used to define a small piece of HTML code that can be inserted or
removed from a webpage by the end user. In PowerSchool, examples of widgets may be
enrollment trends, server status, or a summary of in-session days. A widget may be a
FusionChart, but can also be plain text or a graphic, and is not intended to be viewed
outside of a dashboard.
Dashboards are simply a collection of widgets shown on a single page. These widgets are
generally grouped by areas of interest. For example, when in District mode, the widgets
would relate to district information. School widgets display information relating to that
school. Widgets may also be referred to as “portlets.”
Modifying the HTML of an existing page to function as a widget requires removing the extra
data so that only the object you want is displayed, and then enclosing this object in a table.
The table allows a title to be added for the widget, as well as an “X” to be included for
closing the widget. There is also a small piece of JavaScript that is inserted, which closes
the widget when the X is clicked.

Activity 5 – Creating a Widget


1. Open the file pswidgettemplate.html from the flash drive and save it as
gradeDistAll##.html where “##” is your number from class
2. Replace “Widget Name Goes Here” with Grade Distribution

Copyright © 2010 Pearson 106


Building FusionCharts Using
SQL, JavaScript, and XML

3. Replace “widget-key-goes-here” with grade-distribution


4. Replace “datasourcegoeshere.xml” with gradeDistAll##.xml in both the object and
embed tags, replacing “##” with your number
5. Save the file to the custom web_root in the /admin/portlets/ folder

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

Copyright © 2010 Pearson 107


Building FusionCharts Using
SQL, JavaScript, and XML

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.

Activity 6 – Include the Widget in the Dashboard


Now modify the Dashboard to include the new widgets.

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)

Any extra spaces will be blank.

3. Modify the populateDashboard function to load the new widget at startup

Since this is a school-related Dashboard, make sure it is in the if(ctx==”School”)


section. The code you will insert will be:
portlets['grade-distribution'] =
createPortalObject('/admin/portlets/gradeDistAll##.html', true, 'Total
Grade Distribution', 'grade-distribution', false);
(Replace “##” with your number)

4. Save this file to the custom web_root in the folder /admin/dashboard/

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>&nbsp;</td></tr>
Repeat this code for the 5 additional portlets.

7. Save this file to your custom web_root in the folder /admin/dashboard/

8. Navigate to the school Dashboard and once it loads, insert your number after index
(i.e. index12.html) to load your version

Extension Activity – Clean-up the Data

1. Open and view gradeDist.xml in a text editor

Copyright © 2010 Pearson 108


Building FusionCharts Using
SQL, JavaScript, and XML

(This file is located in /Fusion Charts/Completed Files/Extra Files/ in your PSU


activities file)

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

c. It groups grades by the subject, passes as a gpv value

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

7. The instructor will show the results of these 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.

Copyright © 2010 Pearson 109


Conducting Student Searches

Conducting Student Searches


Knowing how to search for individual students or groups of students is the key to managing
PowerSchool data effectively. PowerSchool provides several powerful tools for conducting
student searches.

Searching for Students


Use the Search Students area to search for an individual student or groups of students. You
can search for students in several ways. The "How to Search" link provides instructions for
querying the database.

Browse Students
Using the links on the Browse Students page, you can search for students by:

• The first letter of the student’s last name

• The student's grade level or gender

• All students who are currently enrolled

You can also see a list of students who were selected in the previous search by clicking
Current Selection.

Search by Last Name or Student Number


To search for a student by last name, type the student’s last name (or partial last name) in
the Search Students field on the PowerSchool Start Page; then press Enter.

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.

Activity 1 - Basic Searches


A. Practice using the Browse Students functionality by clicking the appropriate link

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 _____

3. Record the number of male students at the school _____

Copyright © 2010 Pearson 110


Conducting Student Searches

B. Search for student schedules and activities

1. Click the letter B under Browse Students

2. Click the first student in the list, and view the Quick Lookup student page

3. Record the student’s 1st period teacher _____________

4. Click Activities under Enrollment on the student pages menu to see which sports
and clubs the student is involved in

C. Search for discipline records

1. Click the letter B under Browse Students

2. Click the name of the last student in the list

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.

A search command is a statement of search instructions. The following search command


searches for all the active students with the first name “Maria”:

Field Name Comparator Search Argument


First_name = Maria

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.

Copyright © 2010 Pearson 111


Conducting Student Searches

Prefix Effect on Search Line

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.

Activity 2 – Using Search Commands


A. How many students have the first name "John"?

1. In the Search Students field on the Start Page, enter first_name=John

Remember—you can either type the field name or open the field list and click the
field name first_name.

2. Press Enter

Copyright © 2010 Pearson 112


Conducting Student Searches

B. How many football players have a Discipline alert?

Use the following search criteria: football#;Alert_Discipline#

C. How many students have a hyphenated last name?

Use the following search criteria: last_name contains -

D. How many 9th- and 10th-grade students are Hispanic?

Use the following search criteria: grade_level<11;ethnicity=H

E. How many inactive students have the last name “Smith”?

Use the following search criteria: /enroll_status=2;last_name=smith

F. How many students have a last name that ends in “ski”?

Use the following search criteria: @ski

G. Which students with a last name of Adams or Wilson have Medical alerts? Who is allergic
to bee stings?

1. In the Search Students field, enter last_name in Adams,Wilson;alert_medical#

2. Press Enter and open the first student’s record

3. Click the Medical alert icon at the top of the screen

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

H. How many students play soccer or football?

1. In the Search Students field on the Start Page, enter soccer#

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

Copyright © 2010 Pearson 113


Conducting Student Searches

*as_of=10/1/2009;grade_level=12. (When using the *as_of code in a compound search,


the search code must come first.)
For more examples of search codes, review or download your IPT workbook.

Activity 3 – Using Search Codes


A. How many students are in the Gifted and Talented program?

In the Search Students field, enter *special_program=gifted and talented

B. How many students have a fee balance?

Enter this query: *fee.fee_balance>0

C. How many seniors were active as of the beginning of June?

Enter the following search criteria: *as_of=6/1/2010;grade_level=12

D. How many students do not have a 1st period class?

Enter this query: *not_enrolled_in_period=1

E. What’s the home phone number for the 12th graders who have fewer than 12 cumulative
credits?

1. In the Search Students field, enter grade_level=12;*cumulative_credit_hours<12

2. To find the phone number, click the Demographics student page

F. Which students have a birthday in November?

Enter this query: *birthday>=11/1;*birthday<=11/30

G. How many middle school students are taking a class at the high school?

Enter this query: *secondarystudents=all

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

Copyright © 2010 Pearson 114


Conducting Student Searches

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.

Activity 4 – Using Stored Searches and Stored Selections


A. Create a stored search for the soccer team, then run the search and print mailing labels
for the students on the soccer team

1. On the Start Page, click Stored Searches > New to create a new stored search

2. Name the stored search <Your name> Soccer Team

3. Enter the search instructions soccer# and click Submit

4. Click Run Search

5. On the Group Functions page, click Print Mailing Labels

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

8. Click View to view the labels

B. Save the soccer team as a stored selection

1. Enter soccer# in the Search Students field and press Enter

2. Choose Save Stored Selection from the Group Functions menu

3. Select SAVE the current selection with a new name

4. Title the selection <your name> Soccer and click Submit

C. Find the soccer students in each grade level

1. On the Start Page, click Stored Selections

2. Click Go Functions in the row for the stored selection you created

3. Click Enrollment Summary to view the number of students in each grade

Copyright © 2010 Pearson 115


Conducting Student Searches

Search Using the Enrollment Summary


The Enrollment Summary page displays a table that breaks down student enrollment by
grade level, gender, and ethnicity. Click column or row headings to display ethnicity
information on Flash-based charts. Click the blue number on the left of the fraction sign to
view a list of males in the group, and click the pink number on the right of the fraction sign
to view a list of females in the group. Click the number above the fraction to view a list of
males and females in the group. You can access the Enrollment Summary page from the
main menu to view the enrollment summary for your entire school or district, or from the
Group Functions menu to view the enrollment summary for a specific group of students.

Search Using the Parent/Guardian Account


When using the single sign-on feature for Parent Access, other relatives aside from parents
and guardians have the ability to create an account. As long as the user has the access ID
and password for a student, he or she can create an account linked to that student.
What do you do when a guardian’s account needs to be disabled or you want to reset the
password? On the Start Page, click Search Parents/Guardians. Use the search to quickly
find the account no matter which student(s) it is attached to. On the Search
Parents/Guardians page, click New Parent/Guardian Entry to create a new account. You
can even look up an email address or remove a student from the account as long as you
know the name on the account.

Search Using the Master Schedule or Teacher Schedules


The master schedule contains enrollment numbers for each section. Select the enrollment
number for a section to view the class roster. You can choose to add students from the class
roster to the current selection or make them the current selection.

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.

Activity 5 - Creating a Selection of Students


Find all the students enrolled in one teacher’s classes.

1. On the Start Page, click Teacher Schedules

2. Click Carlson, Steven on the menu of teacher names

3. Click Make all students listed above the current selection

4. Record the total number of students in your "current selection" _________

5. On the Group Functions page, click Enrollment Summary

6. Record whether he teaches more male or female students ____________

Copyright © 2010 Pearson 116


Conducting Student Searches

Special Functions Searches


Use searches on the Special Functions page to find students with grade or attendance
problems. Use the Search By Grades/Attendance function to search for students with
particular current or historical grades. Use the Search By GPA function to find students
receiving above or below a particular grade point average. Use Search For Perfect
Attendance to find students with perfect attendance as defined by your school or district.
Search By Grades/Attendance, Search By GPA, and Search For Perfect Attendance are also
Group Functions that you can access through the Group Functions page or menu.

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.

Activity 6 – Finding Discipline Logs


Create a list of the discipline logs for the 2009-2010 school year.

1. On the Start Page, click Special Functions > Search Log Entries

2. Choose Discipline for the Log Type

3. In the Entered on or before this date field, enter 6/1/2010

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

Copyright © 2010 Pearson 117


Creating Dynamic Custom
Pages using SQL

Creating Dynamic Custom Pages Using SQL


Not every page needs to be static—sometimes you need a page that will reveal information
as it changes in the database. You can do this by using a PowerSchool technology called
Table Lists (tlists). Every time the page is loaded, it will send a query to get the appropriate
data from the database and then format it into a table.
PowerSchool has two kinds of tlists, one that, on its own, will query the database and
format the data into a table, and one that embeds SQL to make a more powerful query. This
class will focus on the SQL-embedded tlists, called tlist_sql.
This session assumes that you have a basic knowledge of HTML and SQL, and that you are
familiar with the procedures used to examine and customize PowerSchool pages.
By the end of this session, you will be able to:

• Apply your knowledge of SQL to make dynamic pages

• Properly format tlist_sql

• Apply some basic JavaScript

• Use conditional statements to shape how pages function

• Take some great customizations back to your site and implement them

Display Section Details


Administrators frequently want to have a list showing what teachers are teaching which
sections and how many students are in each section. And they want it sorted all sorts of
different ways.
For this customization, you will use tlist_sql. The following table explains the anatomy of
tlist_sql statements and related HTML. The columns defined in the SQL should be in the
same in order as those defined in the table.

The Parts For Example


Table heading tag (PowerSchool pages only <th>Name</th>
rarely use these tags, but the sortable table
JavaScript needs them)
Indicate the beginning and end of a tlist_sql ~[tlist_sql; SQL Query Here;]
statement <tr><td>~(SQL column title;
datatype)</td>…</tr>[/tlist_sql]
Specify that the color of each row will alternate alternatecolor;
in the table (follows the SQL statement)

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.

Copyright © 2010 Pearson 118


Creating Dynamic Custom
Pages Using SQL

Activity 1 – Sections Detail Report


Start by creating your query. This is best done outside of PowerSchool, using SQLDeveloper.

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

Make sure you are seeing the results you expect.

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>

This will allow the table to be sorted by the column headings.

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>

4. Embed the query in the tags to make it proper TList_SQL


~[tlist_sql;SELECT t.lastfirst, c.course_name, cc.course_number,
cc.section_number, 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
ORDER BY t.lastfirst, cc.course_number,
cc.section_number;alternatecolor;]
[/tlist_sql]

Copyright © 2010 Pearson 119


Creating Dynamic Custom
Pages Using SQL

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.

6. Add in the column definitions


~[tlist_sql;SELECT t.lastfirst, c.course_name, cc.course_number,
cc.section_number, 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=~(curschoolid) AND termid>=(~(curyearid)*100)
GROUP BY t.lastfirst, c.course_name, cc.course_number,
cc.section_number
ORDER BY t.lastfirst, cc.course_number,
cc.section_number;alternatecolor;]
<tr bgcolor="#edf3fe">
<td>~(t.lastfirst;t)</td>
<td>~(c.course_name;t)</td>
<td>~(cc.course_number;t)</td>
<td>~(cc.section_number;l)</td>
<td>~(Students;l)</td>
</tr>
[/tlist_sql]

7. Save that file as sectionsdetail##.html, changing the ## to your number

8. Put the file in the custom webroot’s admin/reports/sectionsdetail folder

9. Test it out, and troubleshoot any problems

A Birthday List Page


Some staff members want a list that displays students who have a birthday in a particular
month. You can make this list even better by using JavaScript to make the table holding the
student information sortable.
This customization requires two new pages and a JavaScript file. The first page is where
users will select a birth month, and the second will hold the sortable list, built using tlist_sql
and the external JavaScript file. The first page needs a little bit of JavaScript to handle the
submission of the birth month data.

Activity 2 – Interactive Birthday List


Start with the initial page on which the staff member will select birth month.

1. Open the birthdaylist1.html file from the activity files

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:

Copyright © 2010 Pearson 120


Creating Dynamic Custom
Pages Using SQL

<script type="text/javascript" language="JavaScript">


function actionChange() {
document.birthdayform.action =
'birthdaylist2##.html?' + document.birthdayform.birthdayselect.value ;}
</script>
3. Add the month input:
<table border="0" cellspacing="0" cellpadding="4">
<tr bgcolor="#f6f6f6">
<td class="bold">Month</td>
<td class="bold">
<select name="birthdayselect">
<option value="monthname=January&monthnum=01">January
<option value="monthname=February&monthnum=02">February
<option value="monthname=March&monthnum=03">March
<option value="monthname=April&monthnum=04">April
<option value="monthname=May&monthnum=05">May
<option value="monthname=June&monthnum=06">June
<option value="monthname=July&monthnum=07">July
<option value="monthname=August&monthnum=08">August
<option value="monthname=September&monthnum=09">September
<option value="monthname=October&monthnum=10">October
<option value="monthname=November&monthnum=11">November
<option value="monthname=December&monthnum=12">December
</select></td>
</tr>
</table>
4. Save that file as birthdaylist1##.html, changing 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

7. Add the table and the column titles:


<table class="sortable" border="0" cellspacing="0" cellpadding="4"
id="sortedtable">
<tr>
<th>Birthday</th>
<th>Name</th>
<th>Gender</th>
<th>Grade Level</th>
<th>Homeroom</th>
</tr>
The table class and ID allow the JavaScript to make 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.)

Copyright © 2010 Pearson 121


Creating Dynamic Custom
Pages Using SQL

~[tlist_sql; SELECT to_char(DOB,'DD') Birthday, LastFirst, Gender,


Grade_Level, Home_Room
FROM Students
WHERE to_char(DOB,'MM')=~[gpv:monthnum])
AND SchoolID=~(curschoolid) AND enroll_status=0
ORDER BY to_char(DOB,'DD'), LastFirst; alternatecolor;]
<tr bgcolor="#edf3fe">
<td>~(Birthday;l)</td>
<td>~(LastFirst;t)</td>
<td>~(Gender;t)</td>
<td>~(Grade_Level;l)</td>
<td>~(Home_Room;t)</td>
</tr>
[/tlist_sql]
9. Save that file as birthdaylist2##.html, changing the ## to your number (Make
sure this is the same name you used in Step 2)

10. Open the JavaScript file sortable.js and look it over

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.

11. Put birthdaylist1##.html and birthdaylist2##.html in the custom webroot’s


admin/reports/birthdaylist folder

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.

12. Test it out, and troubleshoot any problems

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.

Activity 3 – Activity List


1. Using SQL Developer, write a SQL query that will find all the activities in a school
(use schoolid=100) or district and return the name and custom field name; save that
query

2. From the activity files, open activitylist.html in a text editor

Copyright © 2010 Pearson 122


Creating Dynamic Custom
Pages Using SQL

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.

4. Next, create the drop-down menu space

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))

Copyright © 2010 Pearson 123


Creating Dynamic Custom
Pages Using SQL

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)

10. Put the file in the custom webroot’s admin/reports/activitylist folder

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]

13. Next, create a table with class=”sortable” and id=”sortedtable”


<table class="sortable" border="0" cellspacing="0" cellpadding="4"
id="sortedtable">
</table>

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>

Copyright © 2010 Pearson 124


Creating Dynamic Custom
Pages Using SQL

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.

17. Navigate to your activitylist##.html page and try it out

Troubleshoot any problems.

Copyright © 2010 Pearson 125


Custom Alerts

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

How Student Alerts Work


The built-in alerts hold data and a time range, and display conditionally depending upon
that time range. This means that alert icons only show up on a student page when certain
conditions are met. Clicking on an alert icon engages a JavaScript function to open an alert
window.
How many times a day does someone in the office have to log in to PowerSchool to locate a
student? Wouldn’t it be great if they could get that information with fewer clicks and less
mental computation? Wouldn’t you be a rock star if you could make an alert like the other
student alerts that would locate the student for you?
The logic and functions already in PowerSchool can be used to build a new alert called "Find
Me." However, since the Find Me alert will be present for all students at all times, it does not
have to reproduce the conditionals hidden in the wildcard [studentalert].

Activity 1 – How Does It Know to Show?


How does the student page know whether to show an alert or not? By the end of this
activity you will be able to answer that question. Follow along on your assigned server as
the presenter demonstrates with rendered and un-rendered pages how the alerts work on
student pages.
1. Open PowerSchool and navigate to a student’s Quick Lookup page
2. From your browser’s window, choose View > Page Source

This is the rendered code.

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.

Copyright © 2010 Pearson 126


Custom Alerts

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?

6. How can the new alert be embedded in the student page?

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

Copyright © 2010 Pearson 127


Custom Alerts

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.

Activity 2 – Building the Alert


Put the query in the alert window that will open when a user clicks the alert icon.
1. Open findmealert.html in your text editor

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?

3. Put a variable in the title so the student’s name will appear:


<title>Where is ~(studentname)?</title>

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">

6. Insert the Tlist SQL query:


~[tlist_sql;SELECT sec.Room, c.Course_Name, t.LastFirst, cc.Expression,
to_char(sysdate,'HH.MI.SS AM') TimeNow
FROM CC cc
INNER JOIN Students s
ON cc.StudentID=s.ID
INNER JOIN Courses c
ON cc.Course_Number=c.Course_Number
INNER JOIN Teachers t
ON cc.TeacherID=t.ID
INNER JOIN Sections sec
ON cc.SectionID=sec.ID

Copyright © 2010 Pearson 128


Custom Alerts

INNER JOIN Section_Meeting sm


ON sm.SectionID=sec.ID
INNER JOIN (SELECT p.Period_Number, cyd.Letter
FROM Bell_Schedule_Items bsi
INNER JOIN Period p
ON bsi.Period_Id=p.ID
INNER JOIN Bell_Schedule bs
ON bsi.Bell_Schedule_ID=bs.ID
INNER JOIN Calendar_Day cd
ON cd.Bell_Schedule_ID=bs.ID AND
cd.date_value=to_char(sysdate,'mm/dd/yyyy') AND cd.InSession=1 AND
cd.SchoolID=~(curschoolid)
INNER JOIN Cycle_Day cyd
ON cd.Cycle_Day_ID=cyd.ID
WHERE
bsi.Start_Time<((to_number(to_char(SYSDATE,'hh24'))) * 3600) +
((to_number(to_char(SYSDATE,'mi'))) * 60)
AND
bsi.End_Time>((to_number(to_char(SYSDATE,'hh24'))) * 3600) +
((to_number(to_char(SYSDATE,'mi'))) * 60)
) sched
ON sm.Period_Number=sched.Period_Number AND
sm.Cycle_Day_Letter=sched.Letter
WHERE cc.StudentID=~(curstudid) AND
cc.DateEnrolled<=to_char(sysdate,'mm/dd/yyyy') AND
cc.DateLeft>to_char(sysdate,'mm/dd/yyyy')]
7. At the end of the Tlist SQL statement, construct the row template:

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

Copyright © 2010 Pearson 129


Custom Alerts

Student Notes Alert


The Find Me alert was built on the fly from a dynamic search of data all over the database.
The Medical alert and the Discipline alert are different; their data come from specific fields
designed to appear in the alert. You can make an alert like that on your own.
Sometimes, people working with a particular student work in different parts of the school
and may not see each other often. It would be nice if there were a quick and easy way for
those staff members to make notes about their work with a student and share those notes
with each other. The notes would be like a little conversation about the student, but stored
alongside the student’s other information, so that it’s more useful than it might be in an
email.
The server you are working on has had some custom fields and a custom screen built to
make this activity work. You will need to do this on your own server for the activity to work
for you at your own site.

Activity 3 – Student Notes Alert


In this activity, you will put together an alert window to show student notes.
1. Open notesalert.html in your text editor (this file has been modified from one of the
other alert windows) and find the query inside the Tlist SQL at the bottom of the
page
2. What is the query searching for? What are the columns of data?

3. Put the query where it belongs in the body of the page


4. Save the file to your desktop with your number in the name

Your presenter will choose one person to upload.

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

Copyright © 2010 Pearson 130


Custom Alerts

9. Edit the page title to match the page’s function:


<title>Notes Entry Page</a>
10. Insert the rows and cells of the table which will hold the notes:
<tr bgcolor="#edf3fe">
<td class="bold">Note Alert Text</td>
<td colspan="3"><textarea name="[01]Notes1" rows="4"
cols="40"></textarea></td>
</tr>
<tr>
<td class="bold">Response Alert Text</td>
<td colspan="3"><textarea name="[01]Notes2" rows="4"
cols="40"></textarea></td>
</tr>
<tr bgcolor="#edf3fe">
<td class="bold">Follow-up Alert Text</td>
<td colspan="3"><textarea name="[01]Notes3" rows="4"
cols="40"></textarea></td>
</tr>

11. How does this code tell PowerSchool to display the correct custom field data?

12. Why do only two of the rows specify a color?

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.

Extension—Your Own Alert


If there is time, your presenter will lead you through the introduction to this customization
and as much of the activity as time permits.
PowerSchool has its own set of codes to use on pages that allows conditional examination of
fields. All PowerSchool-specific codes are held within square brackets ([]) that distinguish
them from HTML’s angled brackets (<>). As you saw in the last activity, PowerSchool has
an IF tag to represent conditions.
If we can add in code to mimic the logic of the standard alerts, then we can add alerts that
have expiration dates or that apply only to some students.

Copyright © 2010 Pearson 131


Custom Alerts

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.

Your idea: The __________________________ alert

Field(s) to use:

Table(s) holding these field(s):

Conditions to trigger the alert:

Copyright © 2010 Pearson 132


Custom Parent Pages

Custom Parent Pages


Education research shows when there is good communication between schools and parents,
schools are more effective. But, you already know this based on your own experience. With
so many parents to contact, and many other priorities, how can you get feedback from your
students’ guardians? PowerSchool can’t knock on doors to make home visits, but it can help
you get up-to-date information from parents by customizing the parent pages.
In this session, you will build Custom Parent Pages and learn how to:
• Use basic JavaScript
• Use SQL and Tlists to gather and display information
• Use XML files to feed data to Flash applications
• Go back to your site and add some great customizations to your implementation of
PowerSchool

Demographics Update Page -Change of Address Form


Wouldn’t it be great if parents could submit a change of address form online? This would be
convenient for both parents and the office staff. Of course, you do not want to have parents
submitting changes without the office approving it. This means that you need more than
one page; one in the Parent pages that the parents have access to and the other in the
Admin pages for the office to check and approve or disapprove.

Activity 1 – Form for Parents


You will need three files to make this customization work—two HTML pages and one
JavaScript file. In this activity you will make the form for parents to submit.
1. Open the parentdemographics.html file in the folder for this class on your PSU
CD. Use a plain text editor.
2. You need to tell the page how to submit the data and what page to display to the
user after the form is submitted. Put this code right under the guardian header
wildcard:
<form action=”changesrecorded.html” method=”POST”>
3. Begin to build the table where the current data will appear and where parents can
submit new data. Go to the place indicated in the file’s comments and enter the code
for the beginning of the table rows:
<table border="0" cellspacing="0" cellpadding="4">
<tr bgcolor="#ffffff">
<td bgcolor="#ffffff" class="bold">&nbsp;</td>
<td width="200">On file with the school</td>
<td bgcolor="#ffffff">Please make your updates or changes.</td>
</tr>
<tr bgcolor="#edf3fe">
<td bgcolor="#edf3fe" class="bold">Name (last, first MI)</td>

Copyright © 2010 Pearson 133


Custom Parent Pages

<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>&nbsp;</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.

Activity 2 – Admin Form to Review Changes


In this activity, you will make a table that holds the current data in one column and the
newly submitted data in the next. It also allows the reviewer to accept and submit the
changes.
1. Open the parentdemochange.html file in the folder for this class on your PSU CD.
2. Add the beginning rows to the table which holds current data next to recently
submitted changes:
<tr bgcolor="#ffffff">
<td bgcolor="#ffffff" class="bold">&nbsp;</td>
<td width="200">On file with the school</td>
<td></td>
<td bgcolor="#ffffff">Parent/Guardian Submitted Changes.</td>
</tr>
<tr bgcolor="#edf3fe">
<td bgcolor="#edf3fe" class="bold">Name (last, first MI)</td>
<td>~([01]lastfirst)</td>
<td></td>
<td bgcolor="#edf3fe"><em>If you make changes, using the formatting
shown is appreciated.</em></td>

Copyright © 2010 Pearson 134


Custom Parent Pages

</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.

Parent Survey Page


In designing a survey, a primary concern is the response rate. One way to increase the
number of responses is to make the survey easy to access and complete. You can make a
customization to include a survey page for parents in the Guardian portal. Please note that
this survey would not be anonymous, since responses will be stored in the student table.

Activity 3 – Parent Survey Page


In this activity you will make a page with tables to hold the survey and some code to handle
its submission. Begin by opening the survey.html file in the folder for this class on your
PSU CD.
1. Look at the code immediately following the end of the page title, shown below. What
does it do? How does it do it?
___________________________________________________________
~[if.isstudent]
<!-- don't allow students to change guardian email settings. -->

Copyright © 2010 Pearson 135


Custom Parent Pages

<!-- start of content and bounding box -->


<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td colspan="2" background="/images/bond_3000_top.gif"
align="right"><img src="/images/bound_box_top_right1.gif"
width="15" height="9" alt="" border="0"></td>
<td width="25"><img src="/images/bound_box_top_right2.gif"
width="25" height="9" alt="" border="0"></td>
</tr>
<tr>
<td width="23" background="/images/bond_box_left_edge.gif"><img
src="/images/spacer.gif" width="23" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td>Your account does not allow access to this page.</td>
</tr>
</table>
</td>
<td width="25" background="/images/bond_box_right_edge.gif"><img
src="/images/spacer.gif" width="25" height="1"></td>
</tr>
<tr>
<td colspan="2" background="/images/bond_3000_bot.gif"
align="right"><img src="/images/bound_box_bot_right1.gif"
width="15" height="12" alt="" border="0"></td>
<td width="25"><img src="/images/bound_box_bot_right2.gif"
width="25" height="12" alt="" border="0"></td>
</tr>
</table>
<!-- end of content of bounding box -->
[else]
2. In the following section is the message to the parent/guardian. How does it know the
names of the school and the principal?
___________________________________________________________
<td><p>Dear Parents/Guardians:</p>
<p>Thank you for signing up for one of the up-coming School
Information Nights. We are excited to show you what is happening this
year at ~(schoolname).<br>
Please indicate whether you plan to attend on September 13, September
14, or September 15, or September 16. Please let us know when you will
be attending by September 8, 2010.<br>
If you would like to meet with a counselor during the evening, please
respond yes to Question 2.<br>
If you have any specific concerns you would like to discuss, please
enter them in Question 3.</p>
<p>Thank you again for your time.</p>
<p>Sincerely,</p>
<p>~([39]principal)</p>

Copyright © 2010 Pearson 136


Custom Parent 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.

Seeing the Survey Data


Once the surveys have been submitted, it would be nice if there were an easy way to see
and analyze the data. PowerSchool has a function called widgets that can help do this. You
can make a widget to set in the Dashboard, or show the widget on its own page.
Widgets use Flash applets to display data from the database. To make a customized widget
you need to build a SQL query to pull the data from the database, use XML to format the

Copyright © 2010 Pearson 137


Custom Parent Pages

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.

Activity 4 – Seeing the Data


In this activity you will make a page with a chart to show the results of Question 1 and a
table to show the results of Questions 2 and 3. You will also see how to create the code to
create the xml file.
1. Open the file surveydata.xml. This is the file that will take data from the database,
format it, and make it available for the widget file. Follow along as your presenter
shows you the important parts of the file.
2. What is the background color of the graph? What are its axes? What other
information is included?
___________________________________________________________
3. What are the fields supplying the data in the TList SQL statement?
___________________________________________________________
4. Append your number to the file and save it, and then move it to the custom webroot
in the admin/survey/results folder.

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.

Copyright © 2010 Pearson 138


Custom Student Pages

Custom Student Pages: Intermediate Page


Customization
In this class, you will learn how to create your own custom pages in PowerSchool. First,
review the basic concepts of custom fields and screens. Next, review the basic concepts of
html and the difference between rendered and un-rendered pages. Then learn about
modifying pages and how to break the 32k limit. Finally, learn the tricks to modifying a
wildcard.

Accessing & Uploading PowerSchool Pages


You can make two types of customizations in PowerSchool. One of these methods, as
covered in the “Simple Custom Fields and Screens in PowerSchool” class, is using the built-
in screen generator to create a custom screen. Custom screens are built into the database.
While this process is simple, there are limitations in layout and the use of advanced features
such as JavaScript.
The second is to create a new page or modify an existing page using HTML. Using
customization in PowerSchool requires an understanding of the data structure. All custom
pages are stored in what is referred to as the “custom web_root.” Navigate to the
customization screen located at Start Page > System > System Settings >
Customization to enable customization.
PowerSchool 6.x PowerSchool Administrator’s Application Configuration can be used to
upload new customized HTML pages or modify existing PowerSchool pages. The server URL
for PowerSchool Administrator is http://tomcatserverurl:7880/powerschool-sys-mgmt. You
will need to log in with the default PowerSchool Administrator account (username: system
and password: manager). Click Account Management and immediately create a new
account and either update the default user with a new username and password or remove
the account.
Once logged in, click the Application Configuration tab. Use this screen to set up your
custom page information. Click Setup, and select Enable Custom Web Page
Management, and click OK. You may then choose to either migrate your existing custom
web_root or only enable the custom web management. You have the option to migrate your
existing custom web_root at a later time if you choose.
You can now perform several tasks in the Application Configuration tab. If you choose to
migrate existing pages, click Setup and follow the steps. You can also modify an existing
system page, create new folders or files in the directory, or upload a newly created custom
HTML page.
If customization is enabled, the PowerSchool server checks if there is a custom page located
in PowerSchool Administrator’s web_root. If one exists, the custom page loads. If there is
no custom page, then the built-in page in the web_root is used.
At any point in time, you can disable custom web page management and revert back to the
system pages. If you disable the custom web page application, custom files contained in the
PowerSchool Administrator database no longer appear in PowerSchool. It is important to
note that files contained in the custom web page application cannot be exported from the
PowerSchool Administrator database. You can copy and paste this code into an HTML file

Copyright © 2010 Pearson 139


Custom Student Pages

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.

Activity 1 – Accessing System Management


In this activity, log into the PowerSchool Admin portal and access PowerSchool
Administrator:
1. Log into PowerSchool Admin using the username and password provided
2. Click Administrator under Setup on the main menu
3. Log into PowerSchool Administrator using the username and password provided
4. Click Application Configuration
5. Locate your folder under admin
6. Click your folder number and create a folder inside titled studentpages
7. Inside the studentpages folder, create a folder titled custompages
8. Once complete, navigate to admin > students > generaldemographics.html
9. View the code
10. Navigate to admin > students > studentpages

Notice the instructor has created a folder titled custompages.

PowerSchool Pages & Limitations


There are a few “gotchas” to be aware of when modifying PowerSchool pages. These
include, X Code limitations, a 32k maximum size limit on each page, and wildcards.
(Wildcards are covered later in this course.)

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.

32k Size Limit


PowerSchool has an internal maximum of 32k size limit on every page. This is a limit
enforced on the un-rendered page. Since any wildcards included on the page will be

Copyright © 2010 Pearson 140


Custom Student Pages

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.

Breaking the 32k Limit


By re-using the X Code insertfile, it is possible to work around the 32k limit. Since the limit
is applied to the pre-rendered page, any modifications made to the page after rendering are
not subject to the 32k limit. The X Code insertfile will insert the HTML code found in another
file, but it does so after rendering.
An example of this is using the State/Province pages or adding a large drop-down menu to
an existing page. The code that is inserted is as follows:
~[x:insertfile;filename.html]

Deciphering a PowerSchool Page


Most pages are structured in a table layout, so look for table rows that contain the area you
would like to modify. HTML table rows begin with the tag <tr> and end with </tr>. Looking
for these tags enclosing the field you are interested in is a quick way to find “chunks of
code” that may be reused. For example, examine the code:
<tr bgcolor="#edf3fe">
<td class="bold">Home Room</td>
<td><input type="text" name="[01]home_room" value="" size="25"></td>
</tr>
Notice the beginning table row tag <tr>, and the ending table row tag </tr>. These two
tags enclose the table row data, or <td> tags. You probably noticed the opening <tr> tag
contained other information (bgcolor=”#edf3fe”). Many PowerSchool pages using this
alternate between blue and white backgrounds in table rows. However, many newer
PowerSchool pages use a code <tr class="~[evenoddrow]">, and a link to a CSS file, <link
href="/images/powerschool.css" rel="stylesheet"> placed under the title. The evenodd row
tag is used on every <tr> tag.
The next line begins with <td which indicates table data, or in terms of a table, a column.
The first column in this example is the text Home Room in bold, which is the field label. The
next line contains the second column in the HTML table, which is the actual field. In this
example, it is a field from the Students table (table 001), and is the field home_room.
If you wanted to add another field below the Home Room in the above example, you could
simply copy all of the code from <tr> to </tr> and paste it below the existing code. Most
likely, you would want the background color to be white so the alternating colors would
continue. To do this, remove the bgcolor=”#edf3fe” which would cause the background
color to be white. You would then change the field label, for example, you could change
Home Room to Preferred Name. Last, you would change the field name to the desired field.
In this example, you could use a custom field called CF_PREFERREDNAME. This would mean
your code would be name= “[01]CF_PREFERREDNAME”. These changes would produce a
custom page where the first row would be in blue and have the field label “Home Room”
with the student’s name after the label. The next row would have a white background, and

Copyright © 2010 Pearson 141


Custom Student Pages

have the field label “Preferred Name” and the custom field CF_PREFERREDNAME populating
the field value.

Activity 2 – Analyzing a PowerSchool Page


To better understand how a PowerSchool page is built, you need to open up an un-rendered
version of a page. This can be accomplished by using your browser and the htmlr method.
In this activity, extract three pages out of PowerSchool to modify later. Save these as their
name in the file path.

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

3. From the student pages menu, click State/Province

4. From this page, right-click (control-click on a Mac) on Fall/Spring Submission and


click Open Link in New Window

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

6. Add the letter r after .html and press Enter

7. View the page

How many x:insertfile codes are present?

8. From your browser’s menu, select View Source to see the un-rendered page

9. Look at the HTML tags, codes, and CSS styling used

10. Find these codes, tags, and styles: ~[evenoddrow], ~[evenoddrow;reset],


“headerrow”, ~[if.~(studentscreenaccess; , [students], <tr class , <td
class , powerschool.css, ~[wc;title_student_end.txt]

Modifying & Creating PowerSchool Pages


There may be a need to personalize a PowerSchool page at some point. It might be because
the data you want to view is on multiple pages. Or, it could be that there is data you want
to display but there are no fields available to use. Customizing PowerSchool is the perfect
way to meet all of your needs.

Activity 3 – Extracting Pages Using PowerSchool Administrator


In this activity, extract three pages out of PowerSchool Administrator to modify later. You
will save these as their name in the file path.

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

2. Navigate to Admin > Students > generaldemographics.html

Copyright © 2010 Pearson 142


Custom Student Pages

3. Copy the original code beginning with <tr class="~[evenoddrow]">


<td class="bold">Name (last, first MI)</td>down to and including
<td><input type="text" name="[01]student_number" value=""
size="13"></td></tr>

4. Paste this code into a new HTML document

5. Save the file as xxinsert1.html replacing xx with your assigned number

6. Navigate to Admin > Students > emergency.html

7. Copy the original code beginning with <tr bgcolor="#edf3fe"><td class="bold"


rowspan="2">Contact #1</td> down to and including <td colspan="2"> ><input
type="text" name="[01]Alert_MedicalExpires" value="" size="10"
onChange="checkDates('~(JSFieldParam;[01]Alert_MedicalExpires)');">
(0/0/0 to never expire)</td></tr>

8. Paste this code into a new html document

9. Save the file as xxinsert2.html replacing xx with your assigned number

10. Navigate to Admin > Students > modifydata.html

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>

12. Paste this code into a new html document

13. Save the file as xxinsert3.html replacing xx with your assigned number

Editing Using HTML


Once you have a copy of the page on your local machine, you can begin editing. You may
use any HTML editor, such as Dream Weaver, Text Wrangler, or BBEdit. When editing a
page, you can use field names or field labels to find the part of the page you would like to
edit. You may create custom fields in PowerSchool to use in your custom pages. You may
either do this using the custom field generator or by defining a new field name in your
custom page. Once the custom page is populated with data and submitted, the field will be
created. Use caution, as a misspelled field name on a custom page will create a misspelled
custom field in your database. When creating custom fields, it is good practice to use special
characters to indicate the field is your custom field, such as all capital letters or a prefix (i.e.
PREFERREDNAME or CF_PREFERREDNAME). Using a prefix will group all your custom fields
when viewing a field list.
Once you have made all your page modifications, it is time to save the page. The location of
the page is very important, as it determines how you will navigate to the page. If you are
replacing an existing page, then the page will need to have the same path and file name as
the original, except it will reside in the custom web_root. If you are creating a new page,
you can determine the location of the file, but you will need to add a link for your new page
to one of the existing pages.

Copyright © 2010 Pearson 143


Custom Student Pages

Activity 4 – Modifying Pages Using HTML


In this activity, modify three pages (time permitting) to use later. First, customize the
xxinsert1.html page by adding extra cells. Next, customize the xxinsert2.html page by
including three phone numbers for each contact and an employer: Home, Work, and Cell,
and Employer. Since these fields do not exist, they are added automatically as custom fields
once we populate them with data. Then, customize the xxinsert3.html.html page. (Time
permitting – all completed files are provided in the PSU Activity Files.)
xxinsert1.html Instructions:
Because the file we are modifying is only two columns wide and will be combined using
x:insertfile with one that is three columns wide, we need to modify the column span of
several <td> tags.

1. Open xxinsert1.html in an HTML editor

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)

4. Save the file

xxinsert2.html Instructions:

1. Open xxinsert2.html in an HTML editor

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.

3. Select the line of HTML that reads:


<td>Phone<br><input type="text" name="[01]Emerg_Phone_1" value=""
size="15"></td><td>Phone Type<br><select
name="[01]Emerg_1_Ptype"><option><option value="Cell">Cell<option
value="Home">Home<option value="Work">Work</select></td>. Replace
<td>Phone<br> with <td>Home Phone<br>

a. Replace (from <td>Phone<br>) with <td>Home Phone<br>

b. Replace the piece of code (from <td>Phone Type<br>) with <td>Cell


Phone<br>

c. Replace the piece of code (from <select


name="[01]Emerg_1_Ptype"><option><option value="Cell">Cell<option
value="Home">Home<option value="Work">Work</select>) with <input
type="text" name="[01]EMERG_CELL_1" value="" size="15">

d. This final code will read: <tr bgcolor="#edf3fe"><td>Home


Phone<br><input type="text" name="[01]Emerg_Phone_1" value=""
size="15"></td><td>Cell Phone<br><input type="text"
name="[01]EMERG_CELL_1" value="" size="15"></td></tr>

Copyright © 2010 Pearson 144


Custom Student Pages

4. Change the rowspan in this code to “3” <td class="bold" rowspan="2">Contact


#1</td>

5. Copy the previously changed code: <tr bgcolor="#edf3fe"><td>Home


Phone<br><input type="text" name="[01]Emerg_Phone_1" value=""
size="15"></td><td>Cell Phone<br><input type="text"
name="[01]EMERG_CELL_1" value="" size="15"></td></tr> and paste one hard
return after the <input type="text" name="[01]EMERG_CELL_1" value=""
size="15"></td></tr> row

a. Type Employer to replace Home Phone and change the size to “25”

b. Change the field name for [01]Emerg_Phone_1 to [01]EMERG_EMP_1

c. Type Work Phone to replace Cell Phone

d. Change the field name [01]EMERG_CELL_1 to [01]Emerg_1_Ptype – an


existing PowerSchool field

e. this final code will read: <tr bgcolor="#edf3fe"><td>Employer<br><input


type="text" name="[01]EMERG_EMP_1" value=""
size="25"></td><td>Work Phone<br><input type="text"
name="[01]Emerg_1_Ptype" value="" size="15"></td></tr>

6. Add a table row and a cell in the very first row of the file

7. Type Emergency Information in that cell

8. Add class=“bold” and colspan=“3” to the <td> tag

9. Add class=”headerrow” to the <tr> tag

10. The final code will read: <tr class=”headerrow”><td class="bold"


colspan="3">Emergency Information</td></tr>

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

13. Save the file

xxinsert3.html Instructions:

1. Open xxinsert3.html in an HTML editor

2. Immediately preceding the first <tr> tag add the code <tr class=”headerrow”>
</tr>

3. This adds another Table Row to the page

4. After the <tr class=”headerrow”> add the code <td class=”bold”


colspan=”3”></td>

5. Type District Specific Information between the tags <td class=”bold”


colspan=”3”> and </td>

Copyright © 2010 Pearson 145


Custom Student Pages

6. Perform a “Find and Replace” of the code <td> with the new code <td colspan="2">
(4)

7. Save the file

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.

Using the ~[x:insertfile] code


All three pages have been built and are now ready to be inserted into a pre-built page
available in your PSU Activity Files.

Activity 5 – Using the x:insert Code


In this activity, modify the xxregistration.html page to include a your custom pages.

1. Open the page xxregistration.html from your PSU Activity Files in an HTML editor

2. Locate the section of code that reads: <title>xx Registration


Information</title>

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>

4. Locate the section of code that reads:


~[x:insertfile;custompages/xxinsert1.html]

a. Replace “xx” with your user number. It should match the previous file you
created

b. Repeat for the following codes:


~[x:insertfile;custompages/xxinsert2.html]
~[x:insertfile;custompages/xxinsert3.html]

5. Save this file as xxRegistration.html

If you are logged in as user 15 your file will read “15Registration.html”

Copyright © 2010 Pearson 146


Custom Student Pages

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/

Linking to your page


When you replace an existing page in PowerSchool, the old link will continue to work as long
as the path and file name are the same. The problem is when you create a new page, how
to you get to it? There are a few different methods for linking to new pages.
The first is relatively simple. By placing this HTML page in the folder
/admin/students/studentpages/ in the custom web_root, then rebuilding your custom page
links or resubmitting customizations, the link will automatically appear in the Custom
Screens page via the Custom Screens link. The Custom Screens function will automatically
organize your links, placing the custom screens at the top of the list and custom pages at
the bottom. To rebuild the custom page links, navigate to the page System > Special
Operations, and select Rebuild custom page links from the menu, and click Submit.
This will automatically build the links for you. To resubmit customization, navigate to
System > System Settings > Customization (make sure Customization Enabled is
selected) and click Submit.
The second method for creating a link to your custom page is to include it in the student
pages menu. To do this, you must first retrieve a copy of the more2.html page for the
server. This page is located at /admin/students/more2.html. You can download this page
using the same method you used for your custom page. Open the page in an HTML editor
and find the navigation links. You will notice each line starts with an “if” statement. This is
the code that shows or hides the page depending on the group setting of the person viewing
the page. If you would like your page to appear for all users, you can leave out the "if"
statement. Otherwise, you can find a page that has similar security as yours, and use that if
statement. The easiest way to accomplish this is to copy the code for one link, and paste it
in, then modify it for your link.
Once you modify the page and upload it to the custom web_root, you see the new link. If
you included the security, you need to log out and log back in to see the changes.

Activity 6 – Modifying the more2.html Page


In this activity, modify the more2.html page to include a link to a custom page.

1. Download the more2.html page from PowerSchool Administrator and save as


xxmore2.html replacing xx with your assigned number

2. Open this page in an HTML editor (this page is also available in your PSU Activity
Files)

3. Locate the section of code that begins: <tr><td class="preference-


g">Information</td> and ends with: Access Accounts</a><br>[/if] and copy it

4. Paste this code after the code in front of what you just copied and add </td></tr>

5. Move the code [/if] after the </tr>

6. Move the code ~[if.~(studentscreenaccess;addresses.html)=1] to the start of


the pasted code <tr><td class="preference-g">Information</td>

Copyright © 2010 Pearson 147


Custom Student Pages

7. Replace Information with Registration

8. We are going to change the security access "if" statement from address.html to
generaldemographics.html

9. Modify the URL and page title <a


href="accessaccounts.html?frn=~(studentfrn)">Access Accounts</a><br> to
reflect your Registration screen. For example <a
href="studentpages/registration.html?frn=~(studentfrn)">Registration
Information</a><br>

10. For aesthetics, add a <br> after the code ending Information</a><br>

11. Save the file

12. Upload your file to admin/xxfolder/

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

Copyright © 2010 Pearson 148


Custom Student Pages

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)

2. Find the section of code that reads: ~([01]student_number) &nbsp; &nbsp;

3. Add <b>HR:</b> ~([01]Home_Room) &nbsp; after the code

4. Save the file

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

6. Navigate to a page to see the added information

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.

Copyright © 2010 Pearson 149


Decipher and Use
PowerSchool Codes

Decipher and Use PowerSchool Codes


Use codes to customize reports and labels, calculate GPAs, and export data. Add parameters
and delimiters to the codes to modify or limit the field display. In this session, you will learn
how to:

• Modify a field display using PowerSchool codes


• Enter codes that mirror PowerSchool fields
• Utilize delimiters and attributes for code parameters
• Use test score codes

Use Codes to Modify a Field Display


Use PowerSchool codes to modify how the data output is displayed. For example, you need
to specify a date format, print a student’s name in uppercase, or format gender on a report
as “male” rather than “m.”
To include PowerSchool fields on a custom report or label, use this format: ^(fieldname). To
modify the field display, insert a semicolon after the field, and then specify the format:
^(fieldname;XXXX).
Refer to the table below for examples of how to modify a field to specify the format.

Code Modified Code Does This Prints This


^(Last_Name) ^(Last_Name;uppercase) Prints the student’s name SMITH
in uppercase or lowercase
^(First_Name) ^(First_Name;lowercase) smith
letters.
^(LastFirst) ^(LastFirst;uppercase) SMITH, JOHN A
^(LastFirst;lowercase) smith, john a
^[date] ^[date;dateformat=YYYY Prints the date as year, 2001-03-15
-MM-DD] month, and day, separated
by a dash.
^(dob) ^(dob;dateformat=MMM Prints the date of birth as March 15, 2001
M D, YYYY) text for the month and
letters for the day and
year.
^(gender) ^(decode;^(gender);m; Prints the gender as Male Male
Male;f;Female;Blank) or Female rather than “m”
Female
or “f.” If there is no gender
entered, prints the word Blank
Blank.

Copyright © 2010 Pearson 150


Decipher and Use
PowerSchool Codes

Activity 1 – Create a Folder Label


Your school nurse needs labels for student health and emergency folders. The labels need to
include the student’s name, date of birth, gender, ethnicity, and additional information that
you will add in the next activity.

1. On the Start Page, click School on the navigation bar and choose the elementary
school

2. Click Reports > Setup > Mailing Labels > New

3. Enter the following label parameters:

a. Layout Name—enter your name and “label,” for example, smithjohnlabel

b. Table—choose Students

c. Font—choose Times or Helvetica

d. Font Size—enter 10

e. Line Height—enter 14

f. Page Left Margin—enter .5

g. Page Top Margin—enter .5

h. Label Width—enter 4

i. Label Height—enter 2

j. How Many Columns of Labels—enter 2

k. How many Rows of Labels—enter 5

l. Space Between Each Column—enter .2

m. Leave all remaining layout fields blank

4. In the Label Content field, enter the following information:


Name: ^(lastfirst;uppercase)

Date of Birth: ^(dob;dateformat=MMMM D, YYYY)

Gender: ^(decode;^(gender);m;Male;f;Female;Blank)

Ethnicity: ^(ethnicity)

Entry Date: ^(entrydate;dateformat=MM-DD-YYYY)

5. Make the label accessible to only users at Washington Elementary

6. Click Submit

Copyright © 2010 Pearson 151


Decipher and Use
PowerSchool Codes

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.

8. Choose the label you created

9. For “How Many Pages?” choose One page only

10. Use the default sort order “Student’s last name,” then click Submit

11. Click Refresh next to Report Queue – My Jobs

12. When the status for your label is completed, click View

How does the student’s gender appear on the label? Why?

Use Codes that Mirror PowerSchool Fields


Some codes look like PowerSchool fields, but aren’t. For example, the code ^(Schoolname)
is not a field in PowerSchool, but is code used when you want to print the name of the
school for any student in the district. This way, you do not need to create a separate report
or label for each school.
Refer to the table below for examples of codes that mirror PowerSchool fields.
Code Example Does This Prints This
^(age) John is ^(age) old. Prints the student’s John is 10 years
age in years and and 4 months old.
or or
months or years,
or
^(age;long) John is ^(age;long) old. months, and days.
John is 10 years, 4
months, and 6
days old.
^(he/she) Your ^(son/daughter) said Substitutes the Your son said that
that ^(he/she) was appropriate he was excused.
^(son/daughter)
excused. pronoun for to the
gender.
^(schoolname) Welcome to Prints the full name Welcome to Apple
^(schoolname). of the school or the Grove High School.
or
abbreviated school
or or
^(schoolabbr) name.
Welcome to Welcome to AGHS.
^(schoolabbr).
^(yearname) Welcome to the Prints the full name Welcome to the
^(yearname) school year. of the school year. 2009-2010 school
year.

Copyright © 2010 Pearson 152


Decipher and Use
PowerSchool Codes

^[letter.date] Today is ^[letter.date]. Prints the current Today is June 21,


date and spells out 2010.
the month.
^[short.date] Today is ^[short.date]. Prints the current Today is
date in numbers. 6/21/2010.

Activity 2 – Modify the Label


Your school nurse needs additional information on the label you created in the previous
activity. Add the school name, school year, the student’s age, and grade level on the label.

1. Verify that you are still in the elementary school

2. On the Start Page, click Reports > Setup > Mailing Labels

3. Click the label you created and modify the label content as follows:

a. Insert at new line under the student’s name and add:


^(schoolabbr)

^(yearname)

Grade: ^(grade_level)

b. Insert a new line under the date of birth and add Age: ^(Age)

4. Follow the steps in Activity 1 to preview the label

5. Return to the Reports menu to modify the label

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?

Use Delimiters for Code Parameters


Sometimes, when you print a report or a list of students, you need to limit the records that
print. For example, you may want to print a specific group of students, specific periods, or
teachers.
The following table lists examples of how you can add delimiters to PowerSchool codes.
Codes that include an asterisk (*) complete a calculation and display the result on the
report.
Code Example Does This Prints This
*period_info;XX;teac *period_info;1(A);teacher_ Prints the first Adams, John L
her_name name period teacher’s
name.

Copyright © 2010 Pearson 153


Decipher and Use
PowerSchool Codes

*period_info;XX;roo *period_info;1(A);room Prints the first 247


m period room
number.
*period_info;XX;cou *period_info;1(A);course_n Prints the first Math 8
rse_name ame period course
name.
NOTE: To use these codes in reports, include a caret and parentheses.

Activity 3 – Create a Student List


Generate a list of 8th-grade students and their first period classes.

1. From the School menu, choose the middle school

2. In the Browse Students area, click 8

3. Choose List Students from the Group Functions menu

4. Enter the following parameters for the list:

a. Report Title—enter 1st Period

b. Enter the following:

Field Name Column Title


lastfirst Student Name

*period_info;1(A);teacher_name Teacher

*period_info;1(A);room Room

c. Padding in Each Cell—enter 5

5. Leave all other fields blank

6. Click Submit and view the list

7. Click Student List in the breadcrumbs

8. Add the code for the name of the first period class with a column title of Class

9. Select Gridlines

10. Click Submit

11. Return to the Student List page

12. Choose Export

Since teacher, room, and course are not fields in the Student table, you cannot sort
by these fields.

Copyright © 2010 Pearson 154


Decipher and Use
PowerSchool Codes

13. Save the file to your desktop and open with a spreadsheet application

Now sort by teacher, room, or course.

Use Attributes for Code Parameters


Instead of using a semicolon to separate code parameters, use an equals sign. The following
table contains code that returns a student’s first semester GPA for English courses. Use
these codes to print GPA results on form letters, object reports, and report cards. Also, use
these codes to display results on the Cumulative Info page in Student Pages.

Type Calculation Term Type parameter Credit parameter


of parameter parameter
Code
GPA method=”weighted” term=”S1” type=”current” Credittype=”ENG”
^(*GPA method=”weighted” term=”S1” type=”current” credittype=”ENG”)
NOTE: The ^ and ~ are interchangeable characters in PowerSchool.

Activity 4 – Use GPA Codes


View the Cumulative Info page to see a student’s GPA, class rank, and credit hours.

1. Change to the high school

2. On the Start Page, click School > GPA Student Screens

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)

4. Search for and select any 12th-grade student

5. Click Cumulative Info and review the information

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

Copyright © 2010 Pearson 155


Decipher and Use
PowerSchool Codes

Understanding Test Score Codes


When using test data in a report, an export, or when setting up codes to appear on the
Cumulative Info page, format the test codes much like you format GPA codes.
The following example shows the components of the code you could use to export the math
ACT score for a student’s most recent test.

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)

Activity 5 – Create an Export Template


Create a template to export the ACT composite scores from PowerSchool so you can view
the scores in your current spreadsheet application.

1. Verify that you are in the high school

2. Search for students whose last name begins with ”R”

3. Click Special Functions > Importing & Exporting > Templates for Exporting >
New

4. Enter your last name and ACTComposite for Name of this template

5. Choose Students from the table menu

6. For Column Titles, select Put column titles on first row

7. Use the remaining default values, and click Submit

8. From the list of templates, click the blue 0 under the column next to the export
template you just created

9. Click New

10. For the first column, enter the following information:

Title/Heading: Student ID

Data to Export (fields): Student_Number

Column Number: 1

11. Use the remaining default values, and click Submit

12. Click New, and use the information in the table below to add your next column of
data, starting with column 2

Copyright © 2010 Pearson 156


Decipher and Use
PowerSchool Codes

13. Use the remaining defaults, and click Submit

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

16. Add a new column for the ACT composite score

17. Return to the Importing & Exporting page and click Export Using Template

18. Choose Students from the Type of Export menu and click Submit

19. Choose your template from the Export Template menu

20. Select The selected XX students, and click Submit

21. Save the file on your desktop, and open it to verify that the data was successfully
exported

Activity 6 – Create a Form Letter


Create a letter to the parents of sophomore students announcing the upcoming Driver’s
Education classes. This activity is designed to review all the codes and concepts learned in
this class.

1. Click Reports > Setup > Form Letters > New

2. For the title of the form letter, enter your name and DriverEd; for example,
SmithJohnDriverEd

3. Use the remaining default values and click Submit

4. Click the name of your letter

5. At the bottom of the page, click Report Body

6. Type the following letter, replacing the bold items in brackets with the appropriate
PowerSchool codes:

Copyright © 2010 Pearson 157


Decipher and Use
PowerSchool Codes

[Apple Grove High School]

School year: [2009-2010]

To the parents of:

[SMITH, JOHN A]

Gender: [Male]

Date of Birth: [April 13, 1994]

Current GPA: [3.52]

We are pleased to announce we have scheduled your [son] for Driver’s


Education training. Since John is [16 years and 4 months] old, [he] is
eligible for this training. Additionally, students who have a GPA of 3.5
or greater may qualify for a student driver discount.

Please call the school office if you have any questions.

Sincerely,

Alice Wilson

Principal, [AGHS]

7. When you have finished typing the letter, click Submit

8. Click Print

9. Choose the letter you created, and click Submit

10. Click Refresh next to “Report Queue – My Jobs”

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

Copyright © 2010 Pearson 158


Edustructures

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

Copyright © 2010 Pearson 159


Edustructures

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.

Copyright © 2010 Pearson 160


Edustructures

”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.

How Does SIF Work?


There are some important components to make SIF work:
• The first component needed for seamless data transfers is a ZIS (sometimes called a
Zone Integration Server). This is a software program similar to the job an air traffic
controller does. It knows where the information came from and where it needs to go.
The SIFWorks Enterprise ZIS is Edustructures.

Copyright © 2010 Pearson 161


Edustructures

• 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

Copyright © 2010 Pearson 162


Edustructures

• Scales by organizing groups of applications and data into SIF Zones

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.

Copyright © 2010 Pearson 163


Edustructures

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.

SIF Data Object Groups


Work groups, in conjunction with SIFA, maintain various data objects. SIFA, the association
responsible for promoting and maintaining the SIF specs, is also responsible for educating
the industry about the value of SIF.
Listed below are the most common data groups used in the SIF specs:
• Student Information
• Library Automation
• Transportation & Geographic Information
• Human Resources & Finance
• Data Analysis & Reporting
• Food Services
• Grade Book
• Instructional Services
• Vertical Choreography

Copyright © 2010 Pearson 164


Edustructures

SIF Data Objects


When you drill down from the group to the individual data objects, you can see that data
objects model common data types that can be shared between systems, like:
• StudentPersonal
• StaffPersonal
• SchoolInfo
• StudentSchoolEnrollment
• StudentContact
Note that system integrators must be knowledgeable of SIF objects in order to determine
what is possible with SIF. The SIF specification itself is the best resource for information
that will help you become familiar with the SIF Data Objects.
Data Objects are relational. A StudentSchoolEnrollment object links a StudentPersonal with
a SchoolInfo object. A LibraryPatronStatus object links a StudentPersonal with CircTx library
circulation objects, and so forth.
Each object has only one authoritative Publisher and potentially many Subscribers. For
example, the SIS would be the authoritative source for student name, address, and phone
number. These elements together are listed under StudentPersonal. All of the other
applications may want to have that information, so they subscribe to the data that is
published by the Student Information System.
Remember that Data Objects are XML elements (Extensible Markup Language, similar to
HTML). For example:
<StudentPersonal RefId=“0982F30F635468C24567B7837FB2F211”>
<OtherId Type=“06”>8841</OtherId>
<Name Type=“02”>
<LastName>Petersen</LastName>
<FirstName>Eric</FirstName>
</Name>
</StudentPersonal>

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.

Copyright © 2010 Pearson 165


Edustructures

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.

PowerSchool SIF Agent in Action


Use the space provided below to list important ideas garnered during the demonstration of
how SIF agents work with PowerSchool in the integrated Zone:

Copyright © 2010 Pearson 166


Elementary School Setup
& Management

Elementary School Setup & Management


Elementary Schools have unique needs for scheduling, recording attendance, grading, and
student management.
This session covers how to:
• Copy and modify an elementary school master schedule
• Mass enroll students into classes at the elementary level using Dependent Sections
• Enroll and schedule new elementary school students
• Explain options for elementary school attendance and grading
• Use the Home_Room field to search for students in a specific teacher’s class
• Use the family_rep field to print one form letter per family

Overview of Elementary Schedules


How you configure your elementary schedule determines what subjects are printed on
report cards and how the Bell Schedule page appears. Look at courses and periods by
subjects and how they affect the school day. Specialty subjects may affect how you
configure days, such as A days or B days. Think of terms as the months that a student
works on specific subjects in class. This might be for the full year term, a semester, a
quarter, or another designated part-year term.

Activity 1 – Elementary School Courses


Think for a moment about a typical elementary school in your district. List the subjects that
appear on your school district’s cumulative folders or report card.

1. _____________________________________________________________
2. _____________________________________________________________
3. _____________________________________________________________
4. _____________________________________________________________
5. _____________________________________________________________
6. _____________________________________________________________
7. _____________________________________________________________
8. _____________________________________________________________
9. _____________________________________________________________
10. _____________________________________________________________

Copyright © 2010 Pearson 167


Elementary School Setup
& Management

Elementary Master Schedules


A Master Schedule requires taking several factors into consideration:
• Subjects or Courses
• Periods
• Days
• Terms
The schedule you develop will be affected by the following factors:
• Attendance
• How you organize your subjects or courses
o Into periods and days, or
o By core, specialty courses and attendance

Activity 2 – Elementary Schedule


Use the courses you listed in Activity 1 and draw a diagram to map out your periods and
days to accommodate the courses.

Copyright © 2010 Pearson 168


Elementary School Setup
& Management

Mass Scheduling for the Elementary School


The sequence of scheduling is related to your End of Year processing schedule. The Basic
process sequence is:
1. Setup Years and Terms
2. Copy your Master Schedule from the previous year
3. Update staff records
4. Update the Master Schedule
5. Add/Update information for Dependent Sections
6. Mass enroll students into sections
End of Year (EOY) is typically the last thing done to “close out” the current school year,
since this operation affects all schools on the server. EOY is usually run after completing all
reports for all schools, committing the master schedule if using PowerScheduler, and after
summer school is over. Elementary schools can start scheduling before running end of year
and finish if needed afterwards.

Activity 3 – Add New Teachers


You have several new teachers this year, and those teachers will have classes and rooms
assigned to them, which means that they have to be added as PowerTeacher users in
PowerSchool. Your job is to create those teacher accounts.
1. Once you log in, select School and choose Washington Elementary
2. On the Start Page, click Staff > New Staff Entry
3. For Name (Last, First MI), enter your name
4. For Email Address, enter any e-mail address
5. Choose the appropriate Gender and Ethnicity
6. For ID, enter the person’s last name followed by 2010; for example smith2010
7. For Staff Status, choose Teacher
8. Click Submit

Activity 4 – Add New Rooms


Your school has added several new portable classrooms this year. Now it's time to add those
classroom numbers into PowerSchool.
1. On the Start page, click School > Rooms > New
2. For the Room Number, enter the Admin Login ID number you were assigned to log
on to PowerSchool Admin, such as 1, 2, 3, and so on
3. For Room Description, enter Classroom and your Login number, for example,
Classroom 1
4. For Room Maximum, enter 35

Copyright © 2010 Pearson 169


Elementary School Setup
& Management

5. Click Submit

Activity 5 – Add a New Homeroom Section


Now that you have the room numbers in PowerSchool, it's time to assign homeroom
sections to those new classrooms.
1. On the Start Page click School > Sections > Homeroom > New
2. For Term, choose 2010-2011
3. For Expression, check 1A
4. For Teacher, choose your name
5. For Room, enter your classroom number
6. For the Section Number, enter your last name
7. For Grade Level, enter any grade level from 1-5
8. For Maximum Enrollment, enter 30
9. Leave all other options at the default and click Submit

Activity 6 – Add More New Sections


Those portable classrooms were added because your school population is expanding. Since
there are more students, your school will want more sections of each subject into which
you'll enroll those students.

1. On the Start Page click School > Sections

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

4. For Term, choose 2010-2011

5. For Expression, click 2A

6. For Teacher, choose your name

7. For Room, enter your room number

8. For the Section Number, enter your last name

9. For Grade Level, enter the grade level you chose

10. For Maximum Enrollment, enter 30

11. Click Submit

12. Repeat these steps for Math, Social Studies, and Science, and be sure to select the
appropriate Expression: 3A, 4A, 5A respectively

Copyright © 2010 Pearson 170


Elementary School Setup
& Management

Activity 7 – Specify Dependent Sections


When you enroll a student in a teacher's homeroom, that student will be automatically
enrolled in the Dependent Sections that are tied to the homeroom section. Set up the
Dependent Sections for your homeroom section.
1. On the Start Page, click School > Sections
2. Click Homeroom
3. Click the section number for your Homeroom section
4. For the Dependent Sections field, enter the course.section numbers for your other
sections, separated by commas
5. Click Submit

Activity 8 – Mass Enroll Students


You've got the rooms, the teachers, and the sections. Now it's time to put some students
into the mix.

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

4. Click Functions then choose Mass Enroll

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

6. For Enrollment date, enter today’s date

7. Click Submit

Enrolling and Scheduling Individual Students


Once the Dependent Sections are set up, you can easily enroll and schedule students.

Activity 9 – Enroll a New Student


When you enroll a new student, PowerSchool evaluates the student’s last name, Social
Security Number, date of birth, and home phone number to prevent the creation of a
duplicate student record. If no match is found, the system enrolls the student. If a possible
match is found, the system displays the possible matches.

1. On the Start Page, click Enroll New Student

2. For Student’s Name (Last, First, MI) enter any last name, first name, and middle
initial

Copyright © 2010 Pearson 171


Elementary School Setup
& Management

3. For Phone Number, enter any phone number

4. For Full-Time Equivalency, click Full Time

5. Choose any Grade Level, 1 through 5, and Entry Code

6. For District of Residence, choose Apple Grove Unified School District

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

Activity 10 – Schedule a Student in Classes


Now that you've enrolled the new student, that new student requires a homeroom.

1. Click Modify Schedule

2. For Period, click 1 and then click Find

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

Overview of Elementary School Attendance Options


Student attendance is recorded using one of three options:
• For Meeting attendance, teachers typically record attendance once or twice each day
• For strictly Daily attendance, the attendance clerk in the office typically records
attendance once per day
• For Meeting and Daily attendance combined, teachers take attendance in one
subject, like Homeroom, once a day

Activity 11 – Attendance Preferences and Bell Schedules


Now that you know the attendance options for an elementary school, it's time to set up
some scheduling preferences for your school.

1. On the Start page, click School > Preferences

2. Your instructor will point out to you the Preferences set-up items

3. Click School > Bell Schedules

4. For the Regular Schedule, click Edit Schedule

Copyright © 2010 Pearson 172


Elementary School Setup
& Management

5. For Period, click 1

6. Your instructor will point out to you the additional setup items

7. Click Submit

Activity 12 – Change Daily Attendance for a Student


Now that your attendance preferences and bell schedules are set up, you can take
attendance. Follow these steps to record Daily attendance, change the code, and enter time
in and time out.

1. On the Start Page, search for and select the student you enrolled in Activity 9

2. Click Attendance

3. Click the letter of the day for the current week

4. For Attendance Code, choose T(Tardy)

5. For Time In, enter 9:35 AM

6. For Time Out, enter 2:55 PM

7. Click Submit

Elementary School Grading


PowerSchool accommodates both assignment grades and standards grades. Final grades are
calculated from assignment scores entered in PowerTeacher gradebook. Teachers can
assess student mastery on standards directly in PowerTeacher gradebook as well.

Using Home_Room and family_rep Fields


You can use two fields in PowerSchool to make it easier to search for teachers’ classes from
the Start Page and to limit the number of form letters printed to one per household. These
fields are Home_Room and family_rep.

Activity 13 – Set the Home Room Field


You want to use the Home_Room field search for students who are assigned to a specific
teacher’s homeroom. To do that, enter the teacher’s name in the Home_Room field for each
of the students in that class.
1. On the Start Page, click Teacher Schedules
2. Click your name on the left.
3. Click the number displayed in the Size column of your Homeroom section
4. Click Make this the current selection of students > Student Field Value
5. For Field to Change, enter home_room
6. For New Field value, enter your last name

Copyright © 2010 Pearson 173


Elementary School Setup
& Management

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

Activity 14 – Set the Family Rep Field


Some schools check the family_rep field for the youngest family member so they can search
on this field for one-per-family mailings. Choose one student per family for the family_rep
field search to work properly. This means that even for families with only one student
enrolled, you must choose that student as the family_rep in order for the family_rep search
to work. Check the field for a group of students, and then conduct the search.
1. On the Start Page in Browse Students, click All
2. In the list of functions below the student list, click Select Students By Hand
3. Hold the Command key (Mac) or CTRL key (Windows) and select 5 students
4. Click Functions > Student Field Value
5. In Field to Change, enter family_rep
6. In New Field Value, enter 1
7. Click Submit
8. On the Field Value page, review the data change you are about to make and click
Submit
9. Return to the Start Page. Enter family_rep# in the Search Students field
10. Click the Search icon

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

Copyright © 2010 Pearson 174


Excel: Clean Up and Analyze
Data from PowerSchool

Excel: Clean Up and Analyze Data from


PowerSchool
Excel is not a database—it is an effective tool for analyzing data from databases. Excel is a
powerful program for summarizing large lists, and analyzing relationships in various types of
data such as demographics, test scores, and immunization records.
In this course you will learn how to:
• Extract parts of a cell using text functions
• Calculate dates using date functions
• Organize Excel data using Filter and Sort
• Analyze data in-depth using PivotTables
• Display data graphically using Charts
When you have to clean up and take data from PowerSchool to another system such as
transportation, fee management, or lunch or return it to PowerSchool from another system,
Excel is the tool of choice.

Leveraging Data with Text and Date Functions


When you need data to look different from the way it looks in Excel, use text functions. Text
functions are designed to help you extract a smaller piece of text from a cell. For example, if
you have the name Deborah L Davis in a cell, you can split that text out into as many
columns as you need.

Activity 1 – Text to Columns


Use the Text to Columns tool to split text in a cell into different columns.
1. Open the Excel_Analyze workbook and select the Staff Names worksheet
2. Copy the contents of the LastFirst column to column B to keep the original LastFirst
data intact
3. Select column B

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.

Copyright © 2010 Pearson 175


Excel: Clean Up and Analyze
Data from PowerSchool

6. In Step 2, select Comma and Space

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.

Activity 2 – Joining Cells


Now that you have separated the names out into different cells, create email addresses for
your staff members that will use this convention: Deborah.Davis@aghs.edu.
1. Click cell E2 in the Email Address column
2. Get the first name value by starting the formula with =C2
3. To place the period between the first and last name, add &"." so that the formula reads
=C2&"."
4. Add the last name by entering &B2, so that the formula reads =C2&"."&B2
5. Finally, add the end of the email address by entering &"@aghs.edu", so that the
formula reads =C2&"."&B2&"@aghs.edu"
6. AutoFill the formula down the rows

Activity 3 – Creating User Names


Next, create usernames for your staff members that will use the first four letters of the first
name, the middle initial, and the first initial of the last name.
1. Click cell F2
2. To get the first four letters of the first names, begin the formula with =LEFT(B2,4)

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

Activity 4 – Figure Out a Student's Age


Since you know the students' birthdays, you can figure out their ages.
1. Go to the Student Data worksheet

Copyright © 2010 Pearson 176


Excel: Clean Up and Analyze
Data from PowerSchool

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 and Filtering Data


Sorting and filtering are related, but separate, operations. Before you begin, here’s the
difference between the two:
• Sorting is like alphabetizing

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 5 – Sort Your Students by Last Name


You may be used to selecting all your data before you sort it. Good news! There is an easier
way to do this.
1. In the Student Data worksheet, select cell C5 in the Last Name column
2. On the Standard toolbar click Sort Ascending

Office 2007 (Windows) users click Data > Sort Ascending.


3. Notice that the data sorts by last name, and the rows stay together

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) users click Data > Sort.


2. Choose Grade Level in the first menu
3. Choose Last Name in the second menu

Office 2007 (Windows) click Add Level to display the second menu.

Copyright © 2010 Pearson 177


Excel: Clean Up and Analyze
Data from PowerSchool

4. Choose First Name in the third 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

Activity 7 – Filter for Students who are Within an Age Range


Since you calculated the students’ ages in Activity 4, you can use that data to find all of the
students who are between 15 and 17 years old.
1. Go to the Student Data worksheet
2. Select AutoFilter in Data > Filter to turn on Filtering

Office 2007 (Windows) users click Filter in the Data tab.


3. Click the up and down arrows next to the Age column header in cell H1 and select
(Custom Filter…)

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

Activity 8 – Filter for Students who are Missing Vaccinations


Now that you know how to use filters, use them to find which student records are missing
dates for an MMR vaccination.
1. Go to the Student Data worksheet
2. Select Show All from the Filter > Data menu to clear the previous filter

Office 2007 (Windows) users click Clear in the Data tab.


3. Click the up and down arrows next to the MMR column header in cell I1 and select
(Show Blanks)

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?

Copyright © 2010 Pearson 178


Excel: Clean Up and Analyze
Data from PowerSchool

Organizing Data with PivotTables


PivotTables are integral to summarizing large data sets. For example, if you have a list of
students’ names, including their gender, ethnicity, and current math class, you can examine
whether the distribution of students in class represents the local demographics.
A PivotTable is comprised of four parts: the Page Field, the Row Field, the Column Field, and
the Data Field:

• The Row Field shows one unique value per row


• The Column Field shows one unique value per column
• The Data field is where the Row and Column Field meet
• The Page Field is an easy way to filter data for a specific value
A PivotTable requires a worksheet of data with more than one row and more than one
column of data. PivotTables are most effective when there's repeating data.

Activity 9 – Create a Math and Demographics PivotTable


You have a list of students, including their gender, ethnicity, and what math class they're
taking. Create a matrix showing how they're distributed.
1. Select the Student Data worksheet
2. Select cell A1
3. Select PivotTable Report from the Data Menu to start creating the PivotTable

Office 2007 (Windows) users click the PivotTable button in the Insert tab.
4. Click OK

Office 2007 (Windows) users click Finish.


5. Drag Gender to the Row Field
6. Drag Course Name to the Column Field

Copyright © 2010 Pearson 179


Excel: Clean Up and Analyze
Data from PowerSchool

7. Drag StudentID to the Data field


8. Rename this new worksheet Ethnicity Summary
9. Has Excel added or counted the Student ID numbers in cell B5?
10. Right-click or control-click cell B5 and select Field Settings…

Office 2007 (Windows) users select Value Field Settings.


11. Click Count to count the Student ID numbers instead of adding them
12. Click OK

Activity 10 – The Page Field


You now have the class distribution broken out by gender, but what about ethnicity? Using a
PivotTable you can show both. Place the ethnicity data in the Page Field to filter for an
individual group.
1. Continue using the Ethnicity Summary worksheet you created in Activity 9
2. Drag Ethnicity to the Page Field
3. Click the up and down arrows next to (Show All) and select Hispanic

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 select (All) and click OK.

Activity 11 – Show Pages


The Page Field is useful for filtering by a group, such as a student's ethnicity or gender, and
creating multiple worksheets based on the same PivotTable.
1. Select Show Pages… from the PivotTable menu in the PivotTable toolbar

Office 2007 (Windows) users click the PivotTable tab and select Show Report Filter
Pages.
2. Select Ethnicity
3. Click OK

Examine the worksheet tabs. What has changed?

Activity 12 – Stacking Fields


Now that you have used a PivotTable to display different data, create a group and sub-
group using two row fields to display that data in a different view.
1. Select the Ethnicity Summary worksheet

Copyright © 2010 Pearson 180


Excel: Clean Up and Analyze
Data from PowerSchool

2. Drag Ethnicity underneath Gender in the Row Labels area

Activity 13 – Using Two Page Fields


Another way to alter the display of data is to show it from more than one angle. Make both
ethnicity data and gender data Page Fields, in order to filter for one or both.
1. Use the Ethnicity Summary worksheet
2. Drag Ethnicity to the Page Field area
3. Drag Gender underneath Ethnicity

Activity 14 – Changing Field Settings to Display Percentages


The PivotTable you created has a list of the number of students in each class. Change the
PivotTable to display those numbers as percentages, with the class containing the highest
percent first.
1. Select cell B6
2. Select Field Settings… from the PivotTable menu

Office 2007 (Windows) users select Value Field Settings.


3. Click Options
4. In the Show Data As section, change Normal to % of row
5. Click OK
6. Select cell B6 and click the Sort Descending button in the Standard toolbar

Office 2007 (Windows) users click the Sort Descending button in the PivotTable Tools
Options tab.

Activity 15 – One Data Set, Many PivotTables


Aside from looking at data in different views, it can be useful to analyze the same data
using another PivotTable. How do you create a new PivotTable? Make a copy of the
PivotTable worksheet.
1. Right-click the Ethnicity Summary worksheet tab
2. Choose Move or Copy
3. Select Create a copy
4. Click OK

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

Copyright © 2010 Pearson 181


Excel: Clean Up and Analyze
Data from PowerSchool

7. Drag “S1 % Grade” to the Data field


8. Right-click cell B6, and choose Field Settings…

Office 2007 (Windows) users select Value Field Settings.


9. Change the field to be Average instead of Sum
10. Click Number…, change the format to Percentage, and then click OK
11. Click OK

Presenting Data with Charts


Aside from PivotTables, another way to present data is to use charts. Use charts to show
causality between one or more variables or to show growth over time.

Activity 16 – Quick Chart Creation


To create a chart:
1. Select cells A1:F6 in the ACT Test Scores worksheet
2. Select Chart… from the Insert menu

Office 2007 (Windows) users press the F11 key.


3. Click Next > Next > Next > Finish

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

Excel 2007 (PC) – Under Axis Options, select Text Axis


Excel 2008 (Mac) - Under Scale, select Text as the Axis Type
8. Experiment with various ways to display the dates below the chart

Activity 17 – Is it Just Me, or are Those Colors Boring?


When you create a chart, Excel automatically chooses the colors for the graphed lines.
Change the color for the ACT_English graphed line.
1. Right-click the red line representing ACT_English and select Format Data Series
2. In the Line section, pick the color Rose from the Color menu
3. In the Marker section, pick the color Rose from the Foreground and Background
menus, and click OK

Copyright © 2010 Pearson 182


Excel: Clean Up and Analyze
Data from PowerSchool

To change the color for any other part of the chart, just right-click that part, and choose the
Format option.

Activity 18 – Create a PivotChart (Office 2007 Only)


PivotCharts are a perfect complement to PivotTables. A PivotChart works closely in
conjunction with the underlying PivotTable. Because it is related to the PivotTable, you do
not have as much flexibility with a PivotChart as you do when using a regular chart.
1. Go to the Ethnicity Summary worksheet
2. Select cell A1
3. Click the Insert tab, and choose Column under Charts

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

Copyright © 2010 Pearson 183


Excel: Fundamentals

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:

• Learn basic Excel terminology

• Use formulas and functions to calculate data

• Improve the appearance of the data using cell background colors and conditional
formatting

• Control how the worksheet prints using Page Setup

Basic Excel Concepts


Open Excel and look at the top of your screen at the toolbar. Depending on which version
you are using, it should look something like this:

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.

Copyright © 2010 Pearson 184


Excel: Fundamentals

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

Activity 1 – Find Your Way Around in Excel


Learn how to move around in Excel and enter some text.
1. Open the ExcelFund.xls file
2. Click cell A8, enter Copy Paper, and click the check mark on the Formula Bar
3. Click the Undo icon
4. Click cell A8, type Copier Paper, and click the check mark on the Formula Bar
5. Save your file
6. Look at the Undo button; what's different?

Office 2007 (Windows) users will not see a difference.

Formulas and Functions in Excel


Formulas and functions are the cornerstones for success in Excel. There are over 200
different functions in Excel in the following categories:
• Date and time (add months or years to a date, add hours to a time)
• Math and trig (most have to do with trigonometry)
• Statistical (average, minimum, maximum)
Most people use 5–6 functions on a regular basis, while advanced users might use 15–20
functions.

Activity 2 – Create Your First Formula


Now that you know how to navigate in Excel, add three numbers in a cell.
1. Click cell E3
2. Type the formula =B3+C3+D3 and press ENTER
3. Click cell C3, change the entry to 201 and press Enter; what happens?
4. Now click the Undo icon to replace the cell with the original value

Copyright © 2010 Pearson 185


Excel: Fundamentals

Activity 3 – Use the SUM function


The SUM function is a more efficient way to add up a series of numbers.
1. Select cells B4 through E4

2. Click the AutoSum button on the Formatting toolbar


3. Click cell E4, click the Copy icon, click cell E5 and click the Paste icon to copy the
formula from E4 to E5

What is the formula in E5?

Activity 4 – Paste Special


When you copy and paste in Excel, unexpected results can occur. Paste Special can help
you control the results.
1. Copy cell E3
2. Click cell B15
3. Select Paste Special from the Edit menu
4. Select Values, and click OK
5. Look at the Formula Bar; what does the formula say?

Activity 5 – Lock Formulas


When you copy and paste a formula in Excel, the rows and columns change. To keep a row
or column reference consistent, use absolute references. Absolute references provide more
flexibility in which rows and columns change. To keep a column or row from changing when
you copy and paste a formula, use the dollar sign.
1. Click cell A10
2. Enter Sales Tax
3. Enter .01 in cell B10 to establish a 1% tax rate
4. Press Enter
5. Click cell F3
6. Enter the formula =E3*B10
7. Press Enter
8. Copy the formula from cell F3 to cell F4
9. What's the formula in cell F4? What went wrong?
10. To fix the formula so that it consistently refers to B10, change the formula in cell F3
to =E3*B$10 and press Enter

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

Copyright © 2010 Pearson 186


Excel: Fundamentals

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

Activity 6 – Use Parentheses in Formulas


As you prepare to set up a formula, recall the mnemonic you were taught in grade school to
help you remember the order of operations: “Please Excuse My Dear Aunt Sally,” Excel
follows the same order when completing calculations, which is: parentheses, exponents,
multiplication, division, addition, and subtraction.
1. Click cell G3
2. Find the sum of the toner for January, February, and March by entering =B3+C3+D3
3. To find the average, divide by 3
4. Type =B3+C3+D3/3
5. Is the average calculated correctly?
6. Add parentheses so the formula will be correct
7. Enter =(B3+C3+D3)/3

Activity 7 – Find the Average Amount You Spent on Supplies


You don't have to manually enter data in each cell or figure out how many cells you're
averaging. Instead of typing =(B3+C3+D3)/4, use the AVERAGE function.
1. Click cell G4
2. Click the arrow next to the AutoSum button, and select Average
3. Click cell B4 and drag the mouse to D4; then click the check mark in the Formula
Bar

Activity 8 – Find the Lowest Dollar Amount You Spent on Supplies


The MIN function finds the smallest number in a range of selected cells.
1. Click cell H3
2. Click the arrow next to the AutoSum button, and select Min
3. The cell formula is =MIN(B3:G3), which means data from columns B through G are
included in the calculation
4. Change the formula to =MIN(B3:D3) so that only the individual months are being
looked at to find the minimum dollar amount
5. Press Enter

Copyright © 2010 Pearson 187


Excel: Fundamentals

Activity 9 – Find the Most Money You Spent on Supplies


The MAX function is the opposite of MIN, but works the same way.
1. Click cell I3
2. Click the arrow next to the AutoSum button, and select Max
3. The cell formula is =MAX(B3:H3), which means data from columns B through H are
included in the calculation
4. Change the formula to =MAX(B3:D3) so that only the individual months are being
looked at to find the maximum dollar amount
5. Press Enter

Activity 10 – Copy Formulas the Easy Way


Copy and paste is a convenient way to re-use a formula in Excel. However, AutoFill is the
most effective approach.
1. Click cell E5

2. Put your cursor in the lower right-hand corner of the cell


3. When your cursor changes to a black plus sign, double-click your mouse
4. Look at the result in cell E7, and notice that you copied the formula down
5. Why does it work?
6. Repeat the result for cells F4, G4, H3, and I3

Activity 11 – AutoFill a Built-in List


AutoFill can also populate cells with values from a list. The list can be predefined, such as
the days of the week, a series of dates, or a list of numbers.
1. Click Sheet2
2. Click cell A1 and enter Mon
3. Press Enter
4. Place your cursor in the lower right-hand corner of the cell
5. Click and drag down to cell A7
6. Notice the pattern
7. Click cell C1
8. Enter January
9. Place your cursor in the lower right-hand corner of the cell
10. Click and drag across to cell P1

Copyright © 2010 Pearson 188


Excel: Fundamentals

Activity 12 – Create A Custom List


AutoFill can be customized to fit your needs. Create lists of staff members, building names,
or students to fill cell values. First, use predefined lists to maximize efficiency.
1. Click the Excel menu, then select Preferences

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.

Copyright © 2010 Pearson 189


Excel: Fundamentals

Formatting Your Data


Excel offers a range of options to change the appearance of your data, including:
• Insert rows and columns
• Freeze rows and columns in place
• Change the font and font color
• Alter the cell background color
• Modify the border around the cell
• Format a cell conditionally—only formats cells that meet a certain condition

Activity 13 – Insert a Row


1. Click cell A2
2. From the Insert menu select Rows
3. Which row moves down? Why?

Activity 14 – Freeze Panes


1. Return to the PSU worksheet by clicking the PSU Excel tab at the bottom of the
worksheet
2. Click cell B3
3. Select Freeze Panes from the Window menu

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

Activity 15 – Use the Formatting Toolbar to Create a Heading


One way to change a cell's appearance in Excel is to use the Formatting toolbar. It’s fast
and simple. Make a heading row that stands out at the top of the page.
1. Select cells A1 through I1
2. Click the Merge and Center button to merge the nine cells into one cell and center
the text

Office 2007 (Windows) users click this button .


3. Click the arrow next to the paint bucket and select a color for the cell background
4. Change the size and color of the text
5. Click Undo; what gets undone?
6. Click Redo to return the formatting

Copyright © 2010 Pearson 190


Excel: Fundamentals

Activity 16 – One-Stop Shop Formatting Using Format Cells


Another way to change a cell's appearance in Excel is to use Format Cells. Use this method
when you want a wide variety of options for formatting.
1. Click cell B4
2. From the Format menu, select Cells

Office 2007 (Windows) users select Format Cells.


3. Click Font and select size 12
4. Click Patterns and choose a color

Office 2007 (Windows) click Fill and choose a color.


5. Click OK
6. Click Undo; what gets undone?

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

Activity 17 – Easy Money


When you have cells in a spreadsheet that are dollar amounts, it’s best to represent those
cells in currency format.
1. Select cells B3 through I8

2. Click Currency Style ( )

Activity 18 – Use the Format Painter


The Format Painter is the fastest way to copy formatting from one cell to another. Now that
you have the formatting in B4 the way you want, you can transfer that formatting to other
cells in the sheet.
1. Click cell B4

2. Click Format Painter ( )


3. Select cell B3 and drag your mouse to cell I8
To copy the formatting to multiple ranges of cells, double-click Format Painter and apply
the formatting. To release the button, press esc.

Activity 19 – Conditional Formatting


When you have a large sheet of values, it's important to be able to spot the unusual values
right away. Conditional formatting can help you find anomalies in your data.
1. Select cells B3 through D8

Copyright © 2010 Pearson 191


Excel: Fundamentals

2. In the Format menu select Conditional Formatting

Office 2007 (Windows) users click Home, and in the Styles section of the toolbar,
click Conditional Formatting > New Rule > Format only cells that contain.

3. Select Cell Value . . . from the first menu


4. Select greater than from the comparator menu
5. Enter 20 in the third field
6. Click Format
7. Click Patterns

Office 2007 (Windows) users click Fill.


8. Click a red box and click OK
9. Click OK

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 click Fill.


16. Click a green box and click OK
17. Click OK

Copyright © 2010 Pearson 192


Excel: Fundamentals

Formatting and Printing a Worksheet


By default, a workbook in Excel has three worksheets. The worksheets are labeled Sheet1,
Sheet2, and Sheet3.
When you have two or more worksheets in a book, each one can have its own margins,
page orientation, headers, and footers. But when you have four worksheets, each of which
deals with the same data for a different quarter, having them all look the same is useful.

Activity 20 – Changing a Worksheet's Name


Worksheet names like Sheet1 and Sheet2 don't tell you much. If you have one worksheet
for students, another for teachers, and a third for quarters, naming the sheets students,
teachers, and quarters respectively makes them identifiable.
1. Right-click or control-click Sheet2

2. Select Rename from the menu and type PSU Practice


3. Press Enter

Activity 21 – Page Setup


Use Page Setup to make sure your worksheet prints the way you want.
1. Return to the PSU Excel worksheet
2. From the File menu select Page Setup

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

Activity 22 – Copy a Worksheet


It's customary to have multiple worksheets in a workbook that have common formatting.
The fastest way to duplicate a worksheet's formatting correctly is to copy the original
worksheet.
1. Right-click the PSU Excel worksheet tab

Copyright © 2010 Pearson 193


Excel: Fundamentals

2. Choose Move or Copy from the menu


3. Select Sheet3
4. Check Create a Copy
5. Click OK
6. From the File menu select Page Setup
7. Click Margins
8. Notice that the margins, headers, and footers in the original and the copy are the
same
9. Click Cancel

Activity 23 – Delete a Worksheet


If you have an unneeded worksheet, delete it now.
1. Click Sheet3
2. Right-click the worksheet tab
3. Choose Delete from the menu
4. Click OK
5. Can you undo the sheet deletion?

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

Copyright © 2010 Pearson 194


Excel: Using Functions to Find
and Match PowerSchool Data

Excel: Using Functions to Find and Match


PowerSchool Data
It's no secret that Excel is a powerful data analysis tool. But, it also can be used to
troubleshoot PowerSchool data. When there are missing or duplicate records, grades to
verify, or course names that are too long, Excel is often the most effective tool to use to
find them. By the end of this course you will be able to:
• Lookup and reference functions such as LEN, VLOOKUP, INDEX, and MATCH to
connect a value in one worksheet to a value in another
• Apply logical functions such as IF, AND, OR, ISNA, and NOT to evaluate whether a
record meets criteria or not
• Use conditional math functions such as COUNTIF and SUMIF to count and add rows
that meet certain criteria
• Customize the Excel environment for maximum performance and efficiency
Using Excel at the higher level requires more time sharpening your skills. This course
provides the techniques to accomplish that.

Using Lookup and Reference Functions to


Find and Match Data
Activity 1 – Finding Course Names That Are Too Long
When storing grades, sometimes you get an error. After some investigation, you find that
it's because some of your course names are too long. But how do you know which ones?
The LEN function is the answer—it will count the number of characters in a cell.
In the worksheet called Courses List, you have a list of all the course ID numbers and their
names. All you have to do now is find out how long the course names are, in order to
identify the problem courses.
1. Go to the Courses List worksheet
2. Go to cell C2
3. Type =LEN(B2) which will give you the number of characters in cell B2
4. AutoFill the formula down the rows
5. Under the Data menu, select Filter > AutoFilter to turn on Filtering

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

Copyright © 2010 Pearson 195


Excel: Using Functions to Find and
Match PowerSchool Data

Activity 2 – Finding Missing Records Using the MATCH Function


You have a list of all students at Apple Grove High School on the Students worksheet and a
list of the students who have portraits on the Photos worksheet. You have to determine
which students did not have portraits. The field that the two worksheets have in common is
the Student Number, which you will use to verify matching records.
1. Go to the Students worksheet
2. Select cell D2 and type =MATCH(
3. The Lookup_Value, or the common piece of information, is in cell A2, the Student
Number, so change the formula to =MATCH(A2
4. The Lookup_Array is on the Photos worksheet, in cells A$2:A$427 (the dollar signs
ensure that the row references stay consistent as you copy the formula down the
rows); now your formula should read =MATCH(A2,Photos!A$2:A$427
5. The Match_Type is 0, since you want an exact match; the complete formula should
read =MATCH(A2,Photos!A$2:A$427,0)
6. AutoFill the formula down the rows and you'll see that some of the cells return #N/A,
which means that no match was found on the Photos worksheet; later, we'll make
that look better

Activity 3 – Matching a SectionID to a Course Number and Course


Name
The PGFinalGrades worksheet has the Section ID Number, but not the Course Number, or
the Course Name. Use the Section ID Number to find the Course Number and the Course
Name using VLOOKUP. The Sections worksheet has the Section ID and Course Numbers,
while the Courses worksheet has the Course Number and Name.
1. Go to the PGFinalGrade worksheet
2. Select cell B2 and type =VLOOKUP(
3. The Lookup_Value is the Section ID Number in cell A2, so add this to your formula so
that it reads =VLOOKUP(A2,
4. Add the Table_Array on the Sections worksheet, cells A$2:C$2651, so your formula
looks like =VLOOKUP(A2,Sections!A$2:C$2651,
5. The Col_Index_Num is 2, the second column in the Sections worksheet, so add that
to the formula so it reads =VLOOKUP(A2,Sections!A$2:C$2651,2
6. Since you want an exact match rather than an approximate match, the
Range_Lookup is FALSE, and the final formula should read
=VLOOKUP(A2,Sections!A$2:C$2651,2,FALSE)
7. Repeat the process in cell C2 for the Course Name, using Course Number as the
Lookup_Value and the Courses worksheet as the Table_Array:
=VLOOKUP(B2,Courses!A2:B273,2,FALSE)

Copyright © 2010 Pearson 196


Excel: Using Functions to Find and
Match PowerSchool Data

Activity 4 – Fixing Grades and Percentages


Notice how the data in the Grades Lookup worksheet is arranged and formatted;
specifically, how the formatting of the percentages in each worksheet is different. You want
to match the percentages to the letter grades and grade points in the PGFinalGrade
worksheet. However, the cells in column F of the PGFinalGrade worksheet have to be
reformatted as a percentage, otherwise they won’t match the percentages in the Grades
Lookup worksheet correctly.
1. Go to cell K2 and enter .01
2. Copy the cell
3. Select cells F2:F303
4. From the Edit menu, select Paste Special… and choose Multiply; this multiplies all
the selected cells by .01, which turns them to percentages

Office 2007 (Windows) users click the Home ribbon and select the menu below Paste.

Activity 5 – Matching a Percentage to a Letter Grade


Now that you have converted the numbers in column F of the PGFinalGrade worksheet to
percentages, find the corresponding letter grades and grade points.
1. Go to the PGFinalGrade worksheet
2. Insert the VLOOKUP function in cell G2 as follows:
=VLOOKUP(F2,'Grades Lookup'!A$1:C$12,2,TRUE)
a. The first argument is F2, the percent
b. The second argument is range A$1:C$12 in the Grades Lookup worksheet
c. The third argument is 2, the second column, where the letter grade is
d. The fourth argument is the word TRUE, since you're looking for a match
within a range, not an exact match
3. AutoFill the formula down the rows

Activity 6 – No More Dollar Signs in Your Functions!


In the last three activities, you put dollar signs in front of the row arguments in the
formulas. Therefore, when copying the formula down the rows, it consistently referred to
the same list, instead of changing rows. There is another way to do this using named
ranges.
What's a named range? A named range is a mechanism in Excel for referring to a cell or a
range of cells by a name. Those named ranges are absolute by definition. Instead of
entering 'Grades Lookup'!A$1:C$12 in a formula, you can just enter Grades_Table, for
example.
When using this feature:
• Named ranges cannot contain spaces
• Named ranges cannot exceed 255 characters

Copyright © 2010 Pearson 197


Excel: Using Functions to Find and
Match PowerSchool Data

Now, time to use what you've learned.


1. Go to the Grades Lookup worksheet
2. Select cells A1:C12
3. Click inside the Name Box, which is on the left side of the Formula Bar:

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.

Activity 7 – Look Up the Grade Points Associated with a Percentage


With the named range now in place, using the VLOOKUP function to get the Grade Points
will be easier.
1. Go back to the PGFinalGrade worksheet
2. Select cell H2 and insert the following formula =VLOOKUP(F2,Grades_Table,3,TRUE)
a. The first argument is the percentage, which is in F2
b. For the second argument, the formula looks at the Grades_table named
range, which refers to cells A1:C12 in the Grades Lookup worksheet
c. For the third argument, you want the third column of the table, so the
number here is 3
d. The fourth argument is TRUE, since you're looking for the closest match
3. AutoFill the formula down the rows to get all the Grade Point values

Activity 8 – Reverse Lookup


There are limits when using VLOOKUP. One of those is that the matching value has to be in
the first column. For example, when you matched the course number to the course name,
the course number had to be in the left column. What happens if it is not? Then it's time to
combine INDEX and MATCH.
INDEX, when combined with MATCH, is how you perform a reverse lookup when the value
you know isn't in the first column. The INDEX function returns a value from the intersection
of a row and a column in a table, and the MATCH function defines the row
1. In the Reverse Lookup worksheet, go to cell B2
2. Write the first part of the formula =INDEX(
3. Go to the Photos worksheet, and select cells A2:D427, which is the table you will
look for your value; the formula will now read =INDEX(Photos!A2:D427
4. Create the row reference:
a. Add a comma, then MATCH( so that your formula now looks like
=INDEX(Photos!A2:D427,MATCH(

Copyright © 2010 Pearson 198


Excel: Using Functions to Find and
Match PowerSchool Data

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!

Using Logical Functions


You probably used PivotTables in the past to summarize and differentiate data. They are
effective for narrowing the data and finding subsets. Using the IF function and other logical
functions with PivotTables, create additional fields with which to differentiate data.

Activity 9 – The IF Function


In the Scholarship Data worksheet, identify students who are ethnic minorities and then
create a field that lists this information.
1. In the Scholarship Data worksheet, go to cell F2 and insert the IF function
=IF(D2="Caucasian","Non-Minority","Minority")
a. The first argument, logical_test, is whether or not D2="Caucasian", since all
other ethnicities would be considered minority
b. The second argument, value_if_true, is what the formula returns if the
student's ethnicity is Caucasian. Since the student is not a minority, the
argument would read "Non-Minority"

Copyright © 2010 Pearson 199


Excel: Using Functions to Find and
Match PowerSchool Data

c. The third argument, value_if_false, is what the formula returns if the


student's ethnicity is not Caucasian. Since the student is a minority, the
argument would read "Minority"
2. AutoFill the formula down the rows, and then filter column F2 to see which students
show as Minority and as Non-Minority
3. Select Show All when done

Activity 10 – The AND Function


The AND function is also useful and powerful when used with the IF function. To understand
how AND fits in the picture, examine your list to find students who are both African-
American and female, since they're eligible for a particular scholarship. Remember with the
AND function, all listed conditions have to be met (up to 255).
1. Continue using the Scholarship Data worksheet
2. Go to cell G2, and insert the AND function.
=AND(D2="African-American",E2="Female")
a. The first test is whether or not the student is African-American, which is
written D2="African-American"
b. The second test is whether or not the student is female, which is written
E2="Female"
3. AutoFill the formula down the rows
4. The formula will return either TRUE or FALSE; TRUE if the student is both African-
American and female, FALSE if the student does not meet both criteria
5. Filter the list for African-American students in column D, then filter for TRUE in
column G
6. Select Show All when done

Activity 11 – Change TRUE or FALSE to a More Meaningful Message


In the last activity, you used the AND function to find African-American female students, but
the only information Excel could give you was the word TRUE or the word FALSE. Use IF in
conjunction with AND to customize what the message says.
In this activity, you'll wrap an IF function around your existing AND function. The result will
be either "Eligible" instead of TRUE, or "Non-Eligible" instead of FALSE.
1. In the Scholarship Data worksheet, go back to cell G2
2. Modify your formula to read
=IF(AND(D2="African-American",E2="Female"),"Eligible","Non-Eligible")
a. The condition you're testing is twofold: whether or not the student is female,
and whether or not the student is African-American; both conditions have to
be met
b. If both conditions are met, then write the words Eligible
c. If both conditions are not met, then write the words Non-Eligible

Copyright © 2010 Pearson 200


Excel: Using Functions to Find and
Match PowerSchool Data

3. AutoFill the formula down the rows


4. Filter column G to see eligible students
5. Select Show All when done

Activity 12 – The OR Function


The OR function is similar to the AND function, in that you are able to test multiple (up to
255) different conditions. However, the difference with OR is that only one of the conditions
has to be met for the function to return a TRUE result.
In this activity, test for students who are either a minority or female. Since you already
established a column to test for minority status, test against that value.
1. Continue using the Scholarship Data worksheet
1. Go to cell H2, and insert the OR function
=OR(F2="Minority",E2="Female")
a. The first test is whether or not the student is a minority, which is written
F2="Minority"
a. The second test is whether or not the student is female, which is written
E2="Female"
2. AutoFill the formula down the rows
3. Again, just like the AND function, you see either TRUE or FALSE

Activity 13 – Combining the IF and OR Functions


Just like the AND function, the OR function is practical on its own. But wrap the IF function
around it, and your TRUE/FALSE messages transform into useful messages, like "EEOC
Group" and "Non-EEOC Group."
1. Go back to cell H2, and modify your formula to read
=IF(OR(F2="Minority",E2="Female"),"EEOC Group","Non-EEOC Group")
2. AutoFill the formula down the rows
3. Just like the AND function, substitute the word TRUE with the words EEOC Group, and
the word FALSE with Non-EEOC Group

Activity 14 – Missing Pictures, Part 2


Recall in Activity 2 you used the MATCH function to find which students did not take
portraits. If the student's name is on the Photos worksheet, then you see the corresponding
row number of the Students worksheet in column D. If the student is not listed on the
Photos worksheet, the error message #N/A shows.
That's not bad. But, there is a better way to display the data. Use the ISNA function and the
NOT function to change the message displayed in column D.
1. In the Students worksheet, go to cell D2 and modify the formula to read
=ISNA(MATCH(A2,Photos!A$2:A$427,FALSE))
2. AutoFill the formula down the rows

Copyright © 2010 Pearson 201


Excel: Using Functions to Find and
Match PowerSchool Data

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.

Using Conditional Math Functions


Activity 15 – Adding Just the Art Supplies Fees
You have a worksheet with student names and the fees they owe. Use a PivotTable to get a
breakdown of each fee amount, or a breakdown for each student.
But if you want just one fee total, it is easier to use SUMIF. As the name implies, SUMIF
gives you the ability to add up cells that meet a certain criteria—cells in column A that are
of type Art Supplies—and then total the corresponding dollar amounts in column B.
1. In the Student Fees worksheet, go to cell B198 and insert the SUMIF function
=SUMIF(A2:A196,"Art Supplies",B2:B196)
a. The first argument is the range of cells in which the words Art Supplies could
appear, which is A2:A196
b. The second argument is the criteria; enter "Art Supplies"
c. The third argument is the corresponding cells to add, which are B2:B196
To verify that the result is correct:
1. Filter column A for “Art Supplies”
2. Select the visible cells in column B
3. Look at the bottom of your screen, and see this:

Copyright © 2010 Pearson 202


Excel: Using Functions to Find and
Match PowerSchool Data

Activity 16: – Finding Duplicate Records


As previously mentioned, Excel is a powerful data analysis tool. Excel can find duplicate
records considerably well if the right tools are used.
In this case, the right tool is a function called COUNTIF, which is one of three conditional
math functions. As the name implies, COUNTIF counts how many times a certain cell value
occurs in a range. Notice that in the Enrollment Records worksheet there are duplicate
records—multiple students enrolled in multiple classes on different enrollment dates. Figure
out which of these enrollment records are duplicates.
This list presents two problems:
• There's no individual column of data that's unique—the same student, course name,
and enrollment dates can all show up multiple times
• There can be two different enrollment dates for a student for the same course
Thus, you have to be creative and make your own unique field. Then, use the COUNTIF
function to see how many times that created field shows up.
1. Go to the Enrollment Records worksheet
2. Select cell I2
3. To create the unique field, start by combining the Course Number and the Student
Number, using the following formula: =A2&" "&D2
4. The DateEnrolled is a necessary addition, so append the formula to read
=A2&" "&D2&" "&MONTH(G2)
5. Add the DateLeft by appending &MONTH(H2) to the string. The entire formula should
read
=A2&" "&D2&" "&MONTH(G2)&MONTH(H2)
6. Autofill the formula down the rows
This is the basis for your verification process; now, count how many times that unique
string shows up.
7. Go to cell J2
8. Insert the COUNTIF function
=COUNTIF(I$2:I$73,I2)
a. The range to count is I$2:I$73 (remember that you can also use a named
range)
b. The criteria is I2; in effect, you're counting how many times the value in I2
shows up in the range I$2:I$73
9. AutoFill the formula down the rows
Now, let’s add an IF function to make potential issues easier to see:
10. Go back to cell J2 and modify the formula to read
=IF(COUNTIF(I$2:I$73,I2)>1,"Possible Duplicate","Unique")

Copyright © 2010 Pearson 203


Excel: Using Functions to Find and
Match PowerSchool Data

a. The Logical_test is asking if our COUNTIF function returns a value greater


than 1
b. The Value_if_true is “Possible Duplicate”
c. The Value_if_false is “Unique”

Customizing Your Excel Environment


Excel shares a characteristic with other Microsoft Office applications—it's fairly customizable.
The toolbars and preferences are the two major areas where you are able to customize the
Excel environment. Change the preferences for such aspects as colors, default save
location, and calculations. In many cases, there are buttons on toolbars that you don't use,
and some that are missing that you could really use. Time to fix that.

Activity 17 – Add the Insert Columns Button


Don’t you ever get tired of going through multiple steps to insert columns and rows? Make
the process easier by adding a button to your toolbar.
1. Select Customize Toolbars and Menus... from View > Toolbars
2. Click the Commands tab
3. Select the Insert category
4. Click and drag Columns to an existing toolbar
Office 2007 (Windows)
1. Click the Office button in the upper left-hand corner of Excel; this is the colored
icon with no label
2. Click Excel Options at the bottom of the menu
3. Select Customize
4. From the “Choose commands from” menu, choose Popular Commands
5. Scroll down, and select Insert Sheet Columns, and click Add
6. Click OK
The remove buttons tip works in any Microsoft Office application—Word, Excel, Access,
PowerPoint, or Outlook.

Activity 18 – Change your User Name


Now that know how to change your toolbars in Excel, it's time to start addressing some
individual settings that can improve the performance of Excel.
When you insert a comment in Excel, you might notice that the author of the comment is
something like Apple Grove High School instead of your name. Change this and many
other Excel default settings.
1. Go to the Preferences at Excel > Preferences

Office 2007 (Windows) users click Office > Excel Options.

Copyright © 2010 Pearson 204


Excel: Using Functions to Find and
Match PowerSchool Data

2. Select General

Office 2007 (Windows) users click Popular.


3. Enter your preferred name in the User Name field, and click OK

Activity 19 – In Case of Emergency


When you have large workbooks open, Excel can start to run more slowly. Temporarily
disable Auto-Calculation and AutoRecover to keep Excel from freezing when you have a
large project.
1. Go to the Preferences at Excel > Preferences

Office 2007 (Windows) users click Office > Excel Options.


2. Select Calculation

Office 2007 (Windows) users click Formulas.


3. Under the Calculation section, change the setting from Automatic to Manual

This prevents Excel from constantly updating your formulas.


4. Next, select Save from the Preferences window
5. Clear the box that says “Save AutoRecover information every __ minutes”

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

Copyright © 2010 Pearson 205


Extreme PowerSchool Makeover

Extreme PowerSchool Makeover


Making changes to PowerSchool is common practice for most schools. The ability to
customize screens and pages for such things as registrations, data validation, and even
charts and graphs, is widely used. But what about adapting the PowerSchool look for your
school? It is time for a PowerSchool re-decoration.
In this class, discover what happens behind the scenes of PowerSchool. Cascading Style
Sheets (CSS) are the basis of all this. Once you learn CSS and understand the Document
Object Model (DOM) a whole new world of web design and PowerSchool customization will
open for you. Use two Firefox add-ons—Web Developer and Firebug—to help you examine
and manipulate CSS code on sites. You can get information about installing and using these
add-ons in documentation we’ve provided in your PSU Tech Documents files.
By the end of this class, you will be able to:

• Change graphics and icons

• Describe how CSS works with the DOM to add style to pages

• Modify the look of PowerSchool by changing one page of CSS code

• Use wildcards to add fun new features to multiple pages

PowerSchool Gets a Facelift


An easy way to adapt the PowerSchool look for your district is by changing the image, or
should we say images, such as changing the image on the parent login screen to the school
mascot. Since this class is more about looks than functionality, do not expect styling tricks
to make your life easier. Instead, along with compliments on how good the site looks, be
ready for “Is that all you learned at PSU?” Therefore, you should also take a customization
class so your work not only looks good, but you can also dazzle them with code they will not
understand.
For your first customization, try changing the logo on the login screen. There are two
methods to accomplish this: modify the image or modify the page.
The first option is to modify the image. If you look at the source of the public login page,
you will find that the image name is pss_logo.gif and is located in the images folder. Saving
a new logo with the name pss_logo.gif in the custom web_root may or may not work. Most
likely, it will not because the new image has to be the exact same size as the pss_logo.gif
image, which is 201 X 25 pixels. If your image were that size, then saving it into the custom
web_root/images folder would take care of the customization. Since this is the same logo
used on other login pages, you would see the new logo on the admin login screen as well.
This is not the best practice for customizing logos, although it may be popular. The second
method is considered best practice.
The second method for changing the logo on the login screen is to customize the page. This
allows you to change not only the name of the image to use, but also the size. The following
activity goes through the process.

Copyright © 2010 Pearson 206


Extreme PowerSchool Makeover

Activity 1 – Logo Facelift


In this activity, change the logo on the student/parent login screen. By customizing the
pw.html file, you can display an image of your school mascot or whatever image you like,
on the login screen.

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.

Copyright © 2010 Pearson 207


Extreme PowerSchool Makeover

Getting Crazy with CSS


Activity 2a – The Power of CSS
In this activity, follow along with the presenter and see how to view and test CSS using
Firefox’s add-ons Firebug and Web Developer.

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

Copyright © 2010 Pearson 208


Extreme PowerSchool Makeover

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.

Style location Example


Inline style <p font-size:20px>My text</p>
Internal style <STYLE type="text/css">
H1 {font-size:25 px}
</STYLE>
External style <link href="/images/powerschool.css" rel="stylesheet">
Browser default The default set in the browser

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

Copyright © 2010 Pearson 209


Extreme PowerSchool Makeover

font-family Prioritized list of font names to be used


font-size Sets the size of the font
font-weight Sets the weight of the font
text-decoration Sets decoration such as underline and blink

Activity 2b – Exploring PowerSchool CSS


In this activity, find the location of the PowerSchool CSS file, and open it in a text editor.
Navigate through the file to start to become familiar with the layout.

1. Find the path of the Powerschool CSS file, and write it in the space below
_________________________________________________________

2. Enter the path to the style sheet in a web browser to open it

3. What is the font style used for the bold elements?


_________________________________________________________

4. What is the font color used for active links?


_________________________________________________________

5. What is the purpose of TR.evenRow and TR.oddRow?


_________________________________________________________

Using Class Selectors


Notice the word “body” appears twice in the style sheet from the previous activity. The first
is in all capitals with other names such as TD, P, UL, and DIV. This is an example of
grouping classes which defines a class that includes the elements BODY, TD, etc. All
elements that fall within the group will be assigned to the class. The second appearance of
the word “body” is with a period in front of it. This is an example of using a class selector to
define different styles for the same elements. For example, if you need two different types
of headers, you could define them as follows:
h1.black {color:#000000}
h1.blue {color:#000080}
By using the period, there are now two different H1 styles. To use these classes in the
HTML, you would reference them like this:
<h1 class=”black”>This is black text</h1>
<h1 class=”blue”>This is blue text</h1>
You may also omit the tag name in the selector to define a style that will be used by all
HTML elements that have a certain class. The code used in the powerschool.css style sheet
was:
.body {

Copyright © 2010 Pearson 210


Extreme PowerSchool Makeover

font-family: Geneva, Verdana, Arial, Helvetica;


font-size: 10px;
color: #FFFF00;}
By using “.body”, the style sheet is assigning a class selector for all HTML elements with the
name body. This means it can be used wherever the code class=”body” is found.

Activity 3 – Easter Egg Hunt


In this activity, first change the color of various classes in the style sheet, and then try to
find the page that the style affects in PowerSchool.

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)

Getting Psyched with Pseudo-Class


You may have noticed as you were browsing the CSS file, that the definitions for anchor
tags are slightly different. There are multiple classes listed for <a>, including hover, link,
visited, and active. Pseudo-classes are used to add effects to selections. In the case of
anchor tags, the text formatting can be changed depending on if the link is active, visited,
or currently has the mouse focus.
In the PowerSchool CSS, you see several pseudo-classes with odd properties and results.
Active is set so that when a user clicks a link, it turns grey. You can see this when you click
any link in PowerSchool. Notice though, that it only turns grey the moment you click it, then
it returns to blue. This is because visited is set so that the color stays blue for all visited
links. On most web pages, links are a different color after they have been visited. According
to the CSS definition for hover, the link should become underlined when a user hovers over
it. Have you ever seen a link become underlined in PowerSchool? Probably not, unless it has
been modified. This is because of the order of the definitions. In order for hover to work, it
must be listed after both link and visited. Since it is not, the browser ignores that pseudo-
class definition.

Activity 4 – Modify the Link Pseudo-Class


In this activity, modify the pseudo-class for the links in PowerSchool. Currently, the
underline for the hover link does not work because of its positioning in the list.

1. Open the powerschool.css file in Firebug

Copyright © 2010 Pearson 211


Extreme PowerSchool Makeover

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

Getting Wild with 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 from each PowerSchool page that
needs it. The benefit of this is that modifying one wildcard file will modify every page that
uses it.
Wildcards can be found in the HTML page by looking for the code “~[wc:”. This will insert
whatever file is specified. For example, the statement “~[wc:admin_header_frame]” will
insert the code found in the file admin_header_frame.txt into the HTML page. As a result,
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 you modify the wildcard, and conduct thorough
testing afterwards. 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 in a path into the address bar. So, for example, you would type
http://powerschool.myserver.com/admin/tech/executecommand.html
2. Once this page has loaded in the Command Execution text box, type the command
**setuphtmlwcs and click Submit
This will force PowerSchool to reload the wildcards so the new wildcard will take effect.

Activity 5 – Modify the admin_header Wildcard


In this activity, you will modify the wildcard admin_header.txt to include the current date
and time. You will notice that this wildcard is used on just about every admin page, so it is a
great place to add important information.
1. Find the admin_header.txt file in the curriculum files. Open this file in a text editor and
find the table that contains the school and term information.
2. At the end of the table, add a new row using the following code:
<tr>
</tr>
3. Inside the new row, create four new columns using the following code:
<tr>
<td></td><td></td>
<td></td><td></td>
</tr>

Copyright © 2010 Pearson 212


Extreme PowerSchool Makeover

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]

so that the added columns will look like this:


<tr>
<td></td><td align=”right”>~[letter.date]</td>
<td>~[time]</td><td></td>
</tr>
6. Since there is only one wildcard, there are special instructions for uploading this file to
the server (your instructor will give you those instructions)
7. Navigate to the page admin/tech/executecommand.html and enter the command
setuphtmlwcs to activate the wildcard once it is loaded to the server

8. What page does not include the admin_header wildcard?


_________________________________________________________

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.

Copyright © 2010 Pearson 213


GPA and Honor Roll

GPA and Honor Roll


PowerSchool has several methods of calculating grade point averages (GPAs), honor rolls,
and class rank because there are almost as many ways to compute them as there are
school districts. In this course, you’ll learn to define methods for these academic
measurements.
After completing this course, you will be able to:

• Describe the elements of GPA calculations

• Create GPA formulas, GPA calculation methods, and honor roll methods

• Display GPAs and honor roll records on reports and form letters

• Set up class rank

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

Activity 1 – Planning Your GPA Methods


In any school district, a great deal of planning goes into the reporting of how students are
progressing in meeting the objectives of the schools. Some of this planning is determined by
what colleges and universities want to know about students’ academic achievement, as well
as what students and their parents want to know along the way.
In this activity, brainstorm reasons for, calculations of, and publishing of GPAs. Choose a
partner who is sitting near you to discuss your school’s needs. Some volunteers will share
their answers with the group.

1. What kinds of GPAs does your school need?


2. When and where will your school be displaying or publishing GPAs?

3. What are the purposes behind calculating and publishing student GPAs?

Copyright © 2010 Pearson 214


GPA and Honor Roll

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

Activity 2 – Create a GPA Method


Create a GPA method based on the needs you defined in Activity 1.

1. Work out your GPA formula

2. Log in to PowerSchool, and navigate to the District Start Page

3. Click District > GPA Calculations > Calculation Methods

4. Click one of the existing methods, and look at how it is set up

5. Click GPA Calculations Methods in the breadcrumbs

6. Click New to create your own method

7. Enter a name in the Method name field, followed by your initials

8. Enter the complete formula for your method

9. Choose a Calculation type and Grade scale

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

Using GPA Codes


If you understand the anatomy of the GPA code, then you can place a GPA on any report.
Begin with the name of the calculation method, which must match the name of the
calculation method at the district level. The second element of the code is the GPA type,
which narrows the information further. Use the term element to show GPAs for different
time periods, not just for the whole history. This information can help motivate students.

Copyright © 2010 Pearson 215


GPA and Honor Roll

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.

Placing GPAs on Reports


Use that example GPA code to place the GPA on any report. Each code may vary depending
on the report. For example, middle schools often use current simple GPAs on each quarter
report. The code would contain the method, type, and term GPA elements. However, high
schools often use overall cumulative GPAs on transcripts. In this case, the code would
contain only the method and type GPA elements.

Activity 3 – Display Student GPAs


Divide into two groups for this activity so that, as a whole, you can see different aspects of
displaying student GPAs.
Group One
1. Navigate to Cherry Hill Middle School

2. Click Reports > Setup > Report Cards > New

3. Enter a name for the report card, followed by your initials

4. Use the default values for the remaining fields, and click Submit

5. Select your report card, and click Footer

6. Enter GPA and then the GPA code

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.

9. Click Submit > Submit > PowerSchool

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

Copyright © 2010 Pearson 216


GPA and Honor Roll

Group Two
1. Navigate to Apple Grove High School

2. Click Reports > Setup > Form Letters

3. Click New

4. Enter a title for your form letter, followed by your initials

5. Use the default values for the remaining fields, and click Submit

6. Select your form letter

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

Honor Roll & Class Rank


The honor roll setup is similar to GPAs. You’ll need to format a few items, but make sure to
set the evaluation order properly. The highest level is always evaluated first, so you must
enter it first. Students must meet all of the criteria you specify to receive that honor level.
If your honor roll needs a separate GPA calculation method, define the method first. Then,
define the honor roll method. Unlike GPAs, you set up honor roll at the school level on the
School Setup page. Begin by adding a new honor roll method. Then, define each level for
the honor roll method. Set the criteria for each student to meet that level. Format the GPA
requirements, credit requirements (optional), and grade requirements. Grade requirements
specify which grades the students received or grades they shouldn’t receive. When the
setup is complete, wait until the end of term. Then, calculate the honor roll by going to
System > Calculate Honor Roll. Select the students, and enter the term that you’re
storing honor roll for. Finally, choose the honor roll method. If you use multiple methods for
the same school, calculate each one separately. Navigate to the Honor Roll student page to
find students who made the honor roll, or run the Honor Roll report. Use the Honor Roll
report to notify the parents of students who qualified, or to notify the local newspaper.
Honor roll records can’t be overwritten, so if you make a mistake, delete the records
through Direct Database Access (DDA).

Honor Roll DATs


The honor roll data access tag (DAT) returns data based on existing honor roll records. Use
any of the following DATs to place the student’s honor roll record on a report card,
certificate, or form letter.
^(*honorroll method=”High Honors” term=”S1”)
This DAT returns the level value for any High Honors honor roll records awarded for the S1
term.

Copyright © 2010 Pearson 217


GPA and Honor Roll

^(*honorroll method=”Principal’s List” term=”Q2” grade=”6,7”)


This DAT returns the level value for any Principal’s List honor roll records awarded during
the student’s 6th and 7th grades in the Q2 term.
^(*honorroll method=”Scholarship” term=”S2” year=”2009,2010”)
This DAT returns the level value for any Scholarship honor roll records awarded for the S2
terms in the 2009-2010 and 2010-2011 school years. Use only the first year in a school
term that spans multiple years; for instance, because most schools start in the summer, a
full year name like “2009-2010” is common. However, you should use only the first year in
the DAT – 2009 in this case. If this parameter is omitted from the DAT, honor roll records
from the current school year are scanned.
^(*honorroll method=”Scholarship” term=”Q3” result=”message”)
This DAT returns the level value for any Scholarship honor roll records awarded for the Q3
term. The message value prints the text message for the honor roll level as defined on the
Honor Roll Level page. For example, the message may read, “Congratulations! You have
been awarded the Gold Team scholarship for this year!”

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.

Activity 4 – Set Up an Honor Roll Method


In this activity, you will set up an honor roll using the GPA method you defined.

1. On the school’s Start Page, click School > Honor Roll > New

2. Enter a name for the method, followed by your initials

3. Use the default values for the remaining fields, and click Submit

4. Next to your method, click Levels > New

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

Copyright © 2010 Pearson 218


GPA and Honor Roll

9. Click Submit

10. Repeat for all levels of your honor roll

Activity 5 – Set Up Class Rank


In this activity, set up class rank using your new GPA method.

1. On the Start Page, click School > Class Rank > Class Rank Methods > New

2. Enter a description, followed by your initials

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

5. Click Class Rank Settings in the breadcrumbs

6. Click Recalculation Frequency

7. Choose how often to recalculate class ranks


8. 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

Copyright © 2010 Pearson 219


Health Record Management

Health Record Management


Use Health Management to record student immunizations and health information needed for
enrollment and state reporting. It’s likely that you will need to set up the Health
Management page to conform to the requirements of your state. In this session, you will
learn to:

• Format security for the Health pages

• Set up the needed Health information

• Enter immunizations for students

• Record other student health information

Formatting Health Security


Restrict access to the Health student page using Group Security. The Edit Group page
contains four Health and Immunization menus. Use the menus to assign one of four levels
of access for Certification, Immunization, Office Visit, and Screening. When No Access is
assigned, users will see an insufficient security privileges message when they attempt to
gain access. The default value is No Access. But if you want to keep a group of users from
seeing the Health page altogether, clear the Health check box listed under Accessible
Student Screens.
Some health information is set up at the District Office level. You’ll explore that district-level
Health Setup in the next section, but first you need to secure the setup pages. Group
security doesn’t apply to the setup pages, so use Page Permissions instead. After you select
the level of access for each group and submit the changes, go back to the “Access to Page
Permissions” page and turn off the access.

Activity 1 – Set up Group Security


You’re ready to start setting up Health information. The first step is to give yourself access
to the Health student page with Group Security. Remember, only change the settings for
your assigned group.
1. On the Start Page, click System > Security > Groups
2. Select your assigned group, such as Group 12
3. Under Health and Immunization, choose one of the following options from the
Certification, Immunization, Office Visit, and Screening menus if different from the
default value, No Access
a. View Only
b. View/Modify
c. View/Modify/Delete
4. Check Health under Accessible Student Screens
5. Click Submit

Copyright © 2010 Pearson 220


Health Record Management

Activity 2 – Use Page Permissions


You need to perform one more task before setting up Health information. Navigate to the
District Office and the Health Setup page to format the Page Permissions for your assigned
group. Don’t forget to turn off Page Permissions when you finish.
1. Navigate to the District Office and click System > Security > Access to Page
Permissions
2. Choose On from the “Turn modify permissions” menu
3. Click Submit
4. Click District > Health Setup > Modify access privileges for this page
5. Select the Full option for your assigned group
6. Click Submit
7. Click System > Security > Access to Page Permissions
8. Choose Off from the “Turn modify permissions” menu
9. Click Submit

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.

Name Code Name Code

Polio IPV Rotavirus RV

DTP DTP Tetanus or Td Td

MMR MMR Tb TB

HIB Meningitis HIB Influenza INF

Hepatitis B HepB Pneumococcal Conjugate PCV

Hepatitis A HepA Pneumococcal Polysaccharide PPV

Varicella (Chicken pox) VCP

You will look walk through the steps involved in setting up vaccines later in Activity 1.

Copyright © 2010 Pearson 221


Health Record Management

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

Copyright © 2010 Pearson 222


Health Record Management

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

The same three fields are present for each menu.


3. Enter the visit type in the Display Value field; for example, enter Ice Pack
4. 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.
5. Click Add
6. Click Submit to confirm the changes

Grade Level Entry Certifications


Use Grade Level Entry Certifications to specify enrollment rules for specific grade levels. For
example, a district may require that students at some grade levels have specific
immunizations and a complete physical. Others at different grade levels are required to also
have such items as proof of age and identity. To add a certification, select the grade level
and describe the requirements. To keep track of the status for each certification, enter
certification status values, such as Complete or In Progress.
Complete the following steps to add a grade level entry certification.
1. Click the Grade Level Entry Certifications tab
2. Click Add next to “Grade Entry Level Certification”
3. Choose a grade level from the Grade Level menu
4. Enter the immunization requirements in the Description field
5. Click Add

Repeat steps 2-5 for every grade level that requires certification.

Copyright © 2010 Pearson 223


Health Record Management

6. Click Add next to “Certification Status Values (All Grades Levels)”


7. Enter the status of the certification in the Display Value field; for example, enter All
Requirements Met
8. Leave the “State Report Name” and “State Report Code” fields blank, and click Add

Repeat steps 6-8 to add the remaining statuses


9. Click Submit to confirm the changes

Activity 3 – Set Up Vaccines


Your system administrator created fields for several required vaccines, but you realize you
need one more. Add an Influenza vaccine, and identify it as optional. Make sure to include
your initials for vaccines you enter.
1. On the Start Page, click District > Health Setup
2. On the Immunizations tab, click Vaccines > Add
3. Enter the name of the vaccine and your initials in the Vaccine Name field; for
example, enter Influenza xx
4. Enter the code and your initials in the Vaccine Code field; for example, enter INF_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. 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.

Activity 4 - Format a Screening


The nurse would like to enter Vital Signs screening information, but some information is
missing. Several students are losing weight, but that option is not on the menu. Enter a
menu option for the “Vital Signs/Biometrics Weight Status” menu. Make sure to include your
initials to identify which option is yours.

Copyright © 2010 Pearson 224


Health Record Management

1. Click the Screenings tab


2. Select the screening type; for example, click Vital Signs/Biometrics
3. Click Add next to “Weight Status”

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.

Activity 5 - Record Immunizations


A parent just handed you an immunization notification for DTP and an exemption for
Hepatitis A. You know the nurse is swamped, so record the immunization information for
her. Don’t forget to use your assigned student.
1. On the Start Page, search for and select your student
2. Click Health from the Information section of the student pages menu
3. Click in the 4th dose cell next to DTP
4. Click the Calendar icon and select yesterday’s date
5. Choose Health Clinic Records from the Certificate Type menu and press Enter to
close the window
6. Click Hepatitis A
7. Choose Medical from the Exemption Type menu

Copyright © 2010 Pearson 225


Health Record Management

8. Press Enter to close the window


9. Enter Recorded DTP 4th dose and Hepatitis exemption in the “Description Of
Change” text box

The “Description Of Change” field is required.


10. Check I attest that all values I entered are accurate and reflective of the
certificate data presented to me to verify the updates

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

Other Health Information


Health information doesn’t end with vaccines, you have three more tabs: Screenings, Office
Visits, and Grade Level Entry Certifications.

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.

Grade Level Entry Certifications


Use the Grade Level Entry Certifications tab to keep track of where the student is in
reference to fulfilling health enrollment requirements. Only certain grade levels require
certifications. Even if the student hasn’t completed the certification, enter a certification to
track the status. Complete the following steps to add a Grade Level Entry Certification.
1. Select the Grade Level Entry Certification tab
2. Click Add Grade Level and choose a grade level
3. Choose the status from the Certification Status menu; for example, if the student
has met the requirements, choose All Requirements Met
4. Enter the certifier’s information in the “First Name of Certifier” and “Last Name of
Certifier” fields
5. Click the Calendar icon and select a date

Copyright © 2010 Pearson 226


Health Record Management

6. If necessary, enter a comment in the Comment field


7. Click Add and click Submit to save the certification

Activity 6 – Enter a Screening


You decide to help ease the nurse’s workload by helping her with the Vital Signs/Biometrics
screenings. Enter the screening you performed for your assigned student.
1. On the Start Page, search for and select your student
2. Click Health from the Information section of the student pages menu
3. Select the Screenings tab
4. Click Add Screening and choose Vital Signs/Biometrics Screening

Each screening window is slightly different.


5. Enter your name in the “Screening Provider Name” field
6. Click the Calendar icon and select today’s date
7. Choose District Employee from the “Screening Provider Type” menu
8. Choose the student’s current grade level
9. Record the student’s height and weight
10. Choose Normal from the Weight Status menu
11. Choose Passed from the Screening Outcome menu
12. Click Add > Submit

Activity 7 – Record an Office Visit


Since you’re giving the nurse a hand today, you decide to help her with the office visits. You
saw your student during gym classes. Your student had a collision with another student, and
you provide an ice pack. Record the details of the office visit.
1. Select the Office Visits tab
2. Click Add
3. Choose Ice Pack from the Visit Type menu
4. Enter your name in the Provider Name field
5. Click the Calendar icon and select today’s date
6. Enter the time in and time out of the visit
7. Use the Visit Reasons fields to record additional information about the visit, but since
the Visit Type menu describes everything, leave the fields blank
8. Choose Sent back to class from the Visit Outcome menu
9. Click Add > Submit

Copyright © 2010 Pearson 227


Incident Management

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

Incident Management Benefits


Whether you are a principal or other district/school administrator, you need to conduct a
quick and thorough retrieval of incident details. Incident search functions are designed to
simplify the procedure and link details logically, so you can analyze incident data more
easily, identify problems, and act to create a safer learning environment. By using a set of
templates, data fields, and menus in PowerSchool, you are sure to record data in a
consistent format.
The special features of Incident Management include:
• Search options for students and staff
• Drag and drop functionality
• Reporter, victim, offender, action and object relationships
• Icon designations for quick detail identification
Incident Management provides a system for extremely detailed event recording. It does not
replace or update discipline logs that are part of Log Entries. Record an incident via the
Incidents student page, or navigate to Incident Management on the Special Functions menu.

Activity 1 – Exploring Incident Management


Spend a little time exploring the Incident Management system. While exploring, complete
the following statements:
1. On the Start Page, click Special Functions > Incident Management
2. Click Create New Incident
3. Indicate the category of an incident in the _____________________ field
4. If financial damages were incurred, list them in ___________________
5. Add an additional attribute by clicking ______________________
6. To expand or collapse each section, click its _________________

Copyright © 2010 Pearson 228


Incident Management

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.

Copyright © 2010 Pearson 229


Incident Management

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.

Activity 2 – Adding an Incident


Teacher Elizabeth Carruthers has come into the office with several students to report an
incident of bullying out on the school track field. Student Cody Anderson has a small cut on
his arm that needs minor first aid. Their shouts alerted the teacher to two boys attempting
to pick a fight with Cody. One of the boys is student Steven Scott and the other boy is from
a nearby junior high, and is Steven’s friend. Steven refuses to reveal his friend’s name.
During the bullying, the junior high student used a small two-inch pocketknife to threaten
Cody and then nicked Cody’s arm before running away off school grounds. The event
occurred May 10, 2010 at approximately 1:30 PM.
1. On the Start Page, click Special Functions > Incident Management > Create
New Incident
2. From the Incident Type menu, choose Bullying
3. Use the Calendar icon, Time, and Time Frame menus to designate the incident date
and time of occurrence
4. Enter a short descriptive title and event description, and make sure to include your
initials in the title
5. Choose the location High School and enter a short statement in the Location
Description field
6. Type your name in the Prepared By field
7. Click + located next to Participants
8. In the Last Name field, enter Anderson, choose Students, and click Search
9. Select Cody’s name and click Add
10. Choose Victim from the Select Role(s) menu, and click Add Participant Attributes
11. Click + located next to Participants
12. In the Last Name field, enter Scott, and click Search
13. Select Steven’s name, and click Add

Copyright © 2010 Pearson 230


Incident Management

14. Click + located next to Attributes, and choose Offensive language


15. Click + again, and choose Weapon
16. Choose Offender from the Select Role(s) menu, and click Add Participant
Attributes
17. Click + located next to Participants
18. Click Create Other to add the unknown offender
19. Check Mark Person as Unknown, choose Male from the Gender menu, and click
Add
20. Choose Offender from the Select a role menu, and click Add Participant
Attributes
21. Add the reporter from the story example, and remember to click Staff when
searching
22. Click + located next to Incident Elements, and choose Add Behavior
23. Choose Assault with Physical Injury, and choose With Weapon
24. Click Add Behavior
25. Click + located next to Incident Elements, and choose Add Action
26. Choose Law Enforcement or Juvenile Justice from the Action Code menu
27. In the Action Taken Detail field, enter Contacted police, awaiting information
28. Click Add Action
29. Click + located next to Incident Elements, and choose Add Object
30. Choose Weapons and Knives 5a from the Object Code menus
31. Enter Small 2" blade pocketknife with green cover in the description field,
and enter 1 in the Quantity field
32. Click Add Object
33. Click Submit Incident to save the record

Activity 3 – Adding Another Incident


Add another incident concerning Emily Miller smoking in the girl’s bathroom. Clara Schaefer
witnessed and reported the incident at 8:00 AM today. Don’t forget to include your initials in
the incident title.
1. On the Start Page, click Special Functions > Incident Management > Create
New Incident
2. Choose Smoking from the Incident Type menu
3. Complete the Date, Time, Title, and Description fields
4. Choose High School from the Location menu, and choose Restroom
5. Click + located next to Participants
6. In the Last Name field, enter Miller, and click Search

Copyright © 2010 Pearson 231


Incident Management

7. Select Emily’s name, and click Add


8. Choose Offender from the Select Role(s) menu, and click Add Participant
Attributes
9. Add the reporter and witness to the incident
10. Click + located next to Incident Elements, and choose Add Object
11. Choose Other and Cigarette from the Object Code menus
12. Click Add Object
13. Drag the object to the offender
14. Click Submit Incident

Activity 4 – Editing an Incident


You just found out you need to correct the bullying incident. You need to create links
between the weapon used in the incident, the resulting action, and the offender.
1. On the Start Page, click Special Functions > Incident Management
2. Click the Incident Date column to sort the incidents by date
3. Select the incident by clicking the ID, Title, or School hyperlinks
4. Move the object to the offender by clicking the object and dragging it to the unknown
offender
5. Move the resulting action to Steven by clicking the action and dragging it to his name
6. In the Change Reason section, enter a description explaining the reason(s) for the
change
7. Click Submit Incident

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

Copyright © 2010 Pearson 232


Incident Management

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.

Activity 5 – Searching Incidents


Use the Search Filters to find the bullying incident you created earlier.

1. On the Start Page, click Special Functions > Incident Management

2. Click Search Filter to expand the search section

3. Check Incident Type, and choose Bullying

4. Click Search

5. If your incident is not listed on the first page, use the page navigation links to find
the incident

6. Click the ID, Title, or School hyperlink

Activity 6 – Using Filters for Analysis


Use the Search Filters and page navigations to complete the following statements:
1. Due to the excitement of school coming to an end, there were ______ discipline
incidents in the month of May
2. To be more specific, _________ of the incidents were insubordination
3. However after some analysis, ___________ contains more incidents than any
another month
4. The last discipline ID created was _________
5. Due to such well-behaved students, Washington Elementary has only ________
incidents

Copyright © 2010 Pearson 233


Incident Management

Incident Management Setup


Because of the sensitive and perhaps legal nature of information involved in disruptive
incidents, careful planning and setup of the incident record is vital. Therefore, the setup of
Incident Management is done at the district level to ensure conformity and accuracy of
recorded incidents completed at the school level.

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

Incident Codes and Subcodes


Incident Management includes 11 system-defined code types to which you associate user-
created codes and subcodes. Although the types themselves cannot be deleted or modified,
you can create different codes and subcodes for the types. The system-defined types are:

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

Action Change Codes Describes why the action changed

Describes further details about the action taken (May


Action Attributes
relate to state, local, or other categories)

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.

Copyright © 2010 Pearson 234


Incident Management

Adding and Editing Codes and Subcodes


To add a new code, click + located next to the section name. When you click a code from
the Codes section, the Subcodes section expands, and available subcodes appear. To add a
new subcode, click + located next to the codes name.
Editing codes and subcodes is straightforward. Each code or subcode is associated with a
Pencil icon. To edit or delete a code or subcode, click the associated Pencil icon to open the
Edit pane. Correct the information if necessary, and click Submit to complete; otherwise, if
removing the code/subcode, click Delete.

User-Defined Incident Types


Incident Types group incidents with a general description, such as Theft. Incident Types are
also used to control which groups have access to specific types of incidents, such as
Insubordination.
You can change the order of Incident Types with the drag-and-drop function. Click the
type’s three-line symbol, and drag it up or down to the desired location. You can edit the
type by correcting the text in the Current Incident Types field, and delete the type by
clicking -. Remember to click Submit to save your changes. To add a new type, click Add
New Incident Type. A Name field appears at the bottom of the list. Enter the new name
and click Submit.

Activity 7 – Entering a Code, Subcode, and Incident Type


You tried to enter a new incident when you realize that the codes and subcodes you need
for this kind of disruptive incident have not yet been set up. The incident involved
aggressive behavior and speech based upon religious and racial discrimination, resulting in
a student’s loss of personal property. Enter a new code, subcode, and incident type to
describe this incident. Then, make the incident type available.

1. Navigate to the District Office and click District > Incident Management > Code
& Subcode Setup

2. Click Behavior Codes > +

3. Enter a name for the new Code in the Category field; for example, enter Hate Crime

4. Enter a Subcode such as Property Destruction

5. Enter a short description such as Destruction of victim’s property and a


longer description such as Destruction or defacement of victim’s personal
property for reasons of racial or religious hatred

6. Check Police Reportable, and click Submit

7. Click your new Behavior Code, and click +

8. In the Subcode field, enter Hate Speech

9. In the Short Description field, enter Offensive racial or religious hate


language

Copyright © 2010 Pearson 235


Incident Management

10. In the Full Description field, enter Offensive and discriminating language based
on racial or religious hatred

11. Check Police Reportable, and click Submit

12. Click Incident Management Setup in the breadcrumbs

13. Click Incident Types > Add New Incident Type

14. Enter Discrimination, and click Submit

15. Click System > Security > Groups > Office Staff

16. Check the new incident type you created, and click Submit

Copyright © 2010 Pearson 236


Interactivity in Your
PowerSchool Custom Pages

Interactivity in Your PowerSchool Custom Pages


This class provides a continuation of the material covered in Basic JavaScript for
PowerSchool. By utilizing the Document Object Model (DOM), participants will learn how to
design interactive PowerSchool pages. As you will see in this class, the DOM is an important
piece when creating interactivity in PowerSchool custom pages.
This class assumes participants have a working knowledge of JavaScript and PowerSchool
customizations.
Participants in the class will be able to:

• Explain what the Document Object Model is

• Explain the role of the DOM and how to utilize it with PowerSchool pages

• See the different methods available for the DOM

• Explore ways to use the DOM to build interactive pages

Document Object Model


The Document Object Model is a very important part of understanding JavaScript. The DOM
simply refers to the organization of the objects on a web page into a tree model. The top of
the tree is the document. In, or underneath the document are the <head> and the <body>.
Underneath the head is the <title>. Each of these is referred to as a node or object. The
organization of these objects into a tree allows you to navigate the DOM to reference a
single object in the tree. You can then use JavaScript to modify these objects, including
adding, deleting, accessing, and modifying them.
To help explain the DOM, it is best to start with an object other than a web page. For this
object, let’s explore a dog. Dogs can come in all shapes, sizes, and colors, but there are
certain characteristics or objects that all dogs have, such as ears, hair, eyes, and a tail. To
indicate that these objects belong to a dog, something called dot syntax is used. Dot syntax
is simply taking the parts of an object and separating them with periods to indicate the
progression. For example, since the object is a dog and that dog has ears, the dot syntax
would be dog.ears. To refer to the dog’s eyes we would use dog.eyes.
To further explain, the properties can be used to describe the different objects such as
color, length, or name. Properties, sometimes called attributes, describe objects, and they
fit into the dot syntax using the equal sign (=). Examples of properties for the dog may be:
dog.name=”Toby”
dog.hair.color=”brown”
dog.hair.length=”short”
dog.tail.length=”long”
Different objects can use the same attributes to describe them. For example, the ears may
have hair that has color, and the tail may also have hair color. These colors may or may not
be the same. The dog’s eyes would also have a color to describe them. The same property
can describe many parts of an object.

Copyright © 2010 Pearson 237


Interactivity in Your
PowerSchool Custom 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.

Activity 1 – Creating the DOM


Write the following HTML page into the correct DOM structure.
<html>
<head>
<title>Welcome to PSU</title>
</head>
<body>
<h1>DOM Lesson</h1>
<a href="http://www.powerschooluniversity.com/">PSU Info</a>
</body>
</html>

Copyright © 2010 Pearson 238


Interactivity in Your
PowerSchool Custom Pages

1. What is the root node?

Answer: _________________________________________________________

2. How many children does <html> have?

Answer: _________________________________________________________

3. What are the child node(s) of <head>?

Answer: _________________________________________________________

4. What are the child node(s) of <body>?

Answer: _________________________________________________________

5. What are the names of the leaf nodes?

Answer: _________________________________________________________

Activity 2 – Using Firebug


Throughout this class, you will have chances to try out small snippets of code, or explore
the DOM. To do this, you will need Firefox with the Firebug add-on installed and enabled.

1. The Firebug add-on can be found on the website http://getfirebug.com

Once installed, Firebug needs to be enabled.

2. From the Tools menu, select Firebug > Open Firebug

If it is not enabled, you will be given the option to enable Firebug.

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.

Copyright © 2010 Pearson 239


Interactivity in Your
PowerSchool Custom Pages

Activity 3 – Navigating the DOM


In this activity, you will be using the DOM navigator in Firebug to explore the Document
Object Model.

1. For any student, open the Demographics page in a new window by right-clicking the
link and selecting Open in new window

2. From Firebug, click the DOM tab

3. Click each node to drill down to the street field

4. What is the path to the street field?

Answer: _________________________________________________________

Jumping Into Change with the DOM


The power of using the Document Object Model is the ability to make changes to different
parts of a web page after the page has been loaded. “Why would I make changes AFTER the
page is loaded?” you ask.
Usually, when users want to change a PowerSchool page, they modify the HTML file and
save the new custom page to the custom web_root. This works great for pages that can be
modified, but what about that pesky X Code? Those that have started down the path of
PowerSchool modifications inevitably find a page that has a simple little code that starts
with ~[x:. This is the famous X Code.
The benefit of X Code is a great amount of power with a small amount of HTML. The
problem is that they cannot be modified. Since the code is stored on the server in a format
that does not allow for modification, the only option is to modify the page once it has been
loaded. This is where the power of the DOM can be realized.
While the concept of the DOM seems simple at the surface, the navigation of the DOM can
prove to be difficult. Since it is not feasible to navigate the entire DOM tree when
referencing an object deep in the web page, there are shortcuts that can be used. Three of
these shortcuts are covered in this class.
The getElementsById() method allows you to reference an object in the DOM simply by
using an ID. This method is the simplest and most common method of accessing objects.
The problem is that you must have an ID assigned to the object in the HTML code. When
you are the creator of the page, you can just add an ID tag. These IDs can be assigned to
many objects such as select, div, span, and input, to name a few. Once the ID is assigned
to the object, referencing that object is as simple as using getElementsByID(myObject),
where myObject is the ID that was assigned.
Unfortunately, if you are referencing a page that someone else developed, the ID may not
be available. This is the case with many pages in PowerSchool. While certain pages will
allow for a modification to add the ID, other pages have the data dynamically generated. In
this case, it is not possible to assign the ID to the object to be referenced. This leaves the
other two options.

Copyright © 2010 Pearson 240


Interactivity in Your
PowerSchool Custom Pages

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

Copyright © 2010 Pearson 241


Interactivity in Your
PowerSchool Custom Pages

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.

Time For a Change


Once the object is located on the page using the DOM, it is time to make some changes.
Again, the power of using the DOM in PowerSchool is the ability to make changes to a page
once it is loaded. There are various methods for making changes to a page. The methods
covered in this class are setAttribute, innerHTML, nodeValue, and value.
The setAttribute method is used when the object that is being referenced has an attribute
that needs to be viewed or modified. An attribute describes the object and should not be
confused with the value. Examples of attributes are alignment, text format such as bold,
color, etc.
The format for setAttribute is element.setAttribute(name,value); where name is the name of
the attribute to be changed and value is the new value of the attribute.
One of the most common codes used to modify a page is inner.HTML. This command, when
used in combination with an object in the DOM, will reference the HTML code of that object.
This code allows you to modify a web page even after it has been loaded from the server.
For example, the list of schools on the Change Schools screen is generated by an X Code, so
modification at the page level is not possible. By using the inner.HTML method, the option
list could be modified after the page has been rendered.
The format for innerHTML is: element.innerHTML=”new html code”; where new html code
can be any valid HTML code.
The last two methods, value and nodeValue, go hand in hand when looking at the DOM.
While they seem to be one and the same, they are very different. The major difference is
that value references elements and nodeValue references attributes and text nodes.
The value property is most commonly used with PowerSchool when referencing a form
input. The input element value is the data stored in the input field. To validate the data or
change it, the value method would be used to access the data. For example,
document.getElementById(“myID”).value would set or retrieve the data in the field with the
ID myID.
The nodeValue method, on the other hand, is used when referencing text nodes. If value
were used to access the data in a text element, it would return null. If, on the other hand, it
were referenced using nodeValue, the text of the element would be returned. For example,
if there was a text object with the ID myTextObj, the code
document.getElementById(“myTextObj”).nodeValue would return the text of that object. If
value were used in this example instead of nodeValue, the result would be null.

Copyright © 2010 Pearson 242


Interactivity in Your
PowerSchool Custom Pages

Activity 4 – DOB Requirement


In this activity you will be adding to the Demographics page a JavaScript function that will
ensure that the DOB field is valid on form submission. With the current version of
PowerSchool, a date validation happens using the onChange event handler. This notifies the
user that the date entered was invalid, but still allows the form to be submitted. By using
the event handler onSubmit, the DOB field is checked when the submit button is clicked,
and if the field is not valid, the form will not submit. This requires a user to enter valid data
in the field.

1. Open the generaldemographics.html activity file, from your activity files

2. Define a new script in the <head> of the page

The code looks like this:


<script>

</script>
3. In the script tags, create a function called checkDOB which will be passed a value
into a variable called dobID

The code looks like this:


function checkDOB(dobID){

};
4. Create a variable called dobVal and set it equal to the value of the element that was
passed to the function

The code is:


dobVal=document.forms[0].elements[dobID].value;
5. Using an if/else statement, check to see if the dob value is equal to 0/0/0, which
means it is empty

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

Copyright © 2010 Pearson 243


Interactivity in Your
PowerSchool Custom Pages

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)')";>

7. Save the file as generaldemographics##.html, replacing ## with your number, and


upload to the server

8. To test your page, select a student, right-click Demographics, and select Open in a
new tab from the contextual menu

9. Switch to this tab, and then in the url change generaldemographics.html to


generaldemographics##.html where ## is your number

Activity 5 – Validate Phone


In this activity, you will use an external script to validate the phone number field on the
Demographics page to ensure it is in the format ###-###-####.

1. Using a text editor, open the file validate_phone.js from the activity files

2. Create a function called validatePhone, and define a variable called phoneID to


receive the passed value
function validatePhone(phoneID){

}
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.");

Copyright © 2010 Pearson 244


Interactivity in Your
PowerSchool Custom Pages

}
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.

Copyright © 2010 Pearson 245


Intermediate ReportWorks

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)

Managing ReportWorks in PowerSchool


PowerSchool administrators set up categories, preferences, and developers for ReportWorks
in PowerSchool. Report categories are needed in the publishing phase of creating a report.
The categories you establish here populate a menu on the Publish page in ReportWorks.
Use ReportWorks Preferences to edit report queue and developer preferences.

Activity 1 – Categories and Preferences


1. On the Start Page, click System > ReportWorks Administration

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.

Copyright © 2010 Pearson 246


Intermediate ReportWorks

Activity 2 – ReportWorks Developers


In this activity you will set the permission for a ReportWorks developer and check his or her
security group.
1. Navigate to the record of the staff person to be a ReportWorks Developer
2. Click Security Settings, and select Yes for “ReportWorks Developer user?”
3. Click Submit
4. Review the Security Group for this user because it will impact the data he or she can
use in report development

Activity 3 – Data map


The data map guide is critical to determining the heritage of your data objects. Using this
extract from the data map guide you should be able to answer the questions below.
ReportWorks Data ReportWorks Node PowerSchool Database Location
Element Interface Location

From the data set Student Basic + Schedule

Current_House Schedule Setup (1:1) Student Selection > Students.house


Sections
From Student Basic + Bell Schedule

Room_Number Class Meetings Schedule Setup > Section.Room


(1:many) Sections
From Incident

Participant_Gender Participant (1:many) Special Functions > Students.gender or


Incident Mgt > Teachers.gender
Choose Incident

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.

___________________________________________________________________

Copyright © 2010 Pearson 247


Intermediate ReportWorks

Activity 4 – Find That Object


Data is divided up into subsets, object groups and data objects. Based on this diagram fill
in the blanks below:

List the three data subsets in the diagram above:

From the subset of Students give three examples of the following:

Object Groups Data Objects

From the subset of Class Enrollments give two examples of the following:

Object Groups Data Objects

Copyright © 2010 Pearson 248


Intermediate ReportWorks

Getting Started on a Free-form Incident Letter


In Activities 5, 6, and 7 you will create and modify a free-form letter based on the Incident
data subset. In Activity 5 you will start the report from scratch and then determine its
Scope or boundaries at “Conjunction Junction.” In Activity 6 you will further refine the
report runtime controls with “How do you want that Cooked?” Finally in Activity 7 you will
enter the data objects on the layout screen on their own data “layer.”

Activity 5 – Conjunction Junction


Start a report from scratch and then refine the boundaries of the report.
1. Launch ReportWorks and on the opening screen click Start Project from Scratch
2. Give your project a title that includes your initials, such as Free-form Incident
Report acb; give it a description; and then click Create
3. Select the Incident Management: Incident Data Set and click the Scope tab
4. On the Boundaries screen, drag and drop Participant_Role_Code, and when
prompted, enter = Offender
5. On the Boundaries screen, drag and drop Participant_Gender and when prompted,
enter = F
6. On the Boundaries screen, drag and drop Time_Frame_Code and when prompted,
enter > 6/1/2009
7. Hold your mouse over the Time_Frame_Code and when two blue arrows appear,
select the lower one
8. On the Boundaries screen, drag and drop Incident_Id to the level created in step 7,
and when prompted, enter > 1
9. Hold your mouse over the Incident_Id and when two blue arrows appear, select the
lower one
10. Click the Or/And button above Incident_Id and toggle it to Or
11. Explain to the class why these boundaries are redundant

__________________________________________________________________

Activity 6 – How Do You Want That Cooked?


ReportWorks provides predefined runtime controls that report developers can select to
provide flexibility for report generators. For example, when running the report, the report
generator can choose which grade level will appear on the report output from the list that
displays in the PowerSchool. These options are available in Runtime Controls mode on the
Scope window. Preview settings are also contained in this area. Use Preview settings in
conjunction with Boundary filters to determine the data contained in the sample data set
that is used when previewing the report in Layout. Preview settings do not affect published
reports. So you get to decide “How you want that data cooked.”

Copyright © 2010 Pearson 249


Intermediate ReportWorks

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.

(Start where we left off in Activity 5)


12. Click Runtime Controls; for Developer Preview Controls choose District Office as
your Context Filter and choose a Sample Size of 30
13. Under “Published Reports Runtime Controls,” select Selection of Incident Dates;
and use a value of June 1, 2009 through May 30, 2011 for the Preview
14. For Incident Type choose Insubordination for the Preview
15. Select Show Results for Current School Only; select Yes for the Preview

Activity 7 – Form Letter with Layering


So far, you have chosen the data set on the Details page and established filtering under
Scope. Now you are going to define the Layout of the report and set up layers. Layers are
not required but they are very helpful for the developers.
1. When you select the Layout tab, you will be presented with an “Add New Data
Structure” dialog box; click Cancel
2. Click the Page Inspector; click Layer 1, click Rename, name it Background
3. From your PSU activity files, drag and drop Background.png onto the layout and
lock it in the Page Inspector
4. Click Add, click Rename, and rename Layer 2 as Data
5. Click the Add DataSet Object icon; select Form Letter; click OK
6. Drag and drop the following data objects to the left margin of the layout screen with
each data object on a separate line

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:

Copyright © 2010 Pearson 250


Intermediate ReportWorks

9. Click Tools; then click Toggle Rulers to help align fields


10. Preview your work

Activity 8a – Table Structure


To get the most out of a table, you need to understand its structure. Knowing where and
what to click will save you a lot of time and energy. Follow the steps below and complete
the matching exercise. You are going to use a template to create a new report.
1. Select Project based on a Template; select Incident Management District
Summary; select Create; and rename it by replacing “copy of” with your initials
2. Click Scope; drag and drop Incident.id onto Boundaries; and set the filter for >0
To demonstrate your understanding of the table structure and how to manipulate it, match
which item on the right you would click to edit the item on the left. Write the letters of your
answers in the middle column.

Choose Portrait or Landscape A. Text Inspector


Add, rename, and remove B. Table Row Inspector
Layers
Set grouping C. Table Inspector
Set sorting D. Page Inspector
Add a header E. Document Inspector
Define the Number of F. Incident Details
columns
Create Standard and/or G. School District Name
Alternate formatting Details
Merge the header columns
into one
Change the title of the report

Activity 8b – Table Grouping


Adding a table group can impact the output even if you add nothing more to the layout.
Follow the steps below to demonstrate that.
3. Click Preview to see how the report looks before we change anything, click Edit
4. Click the data table open the Table Inspector
5. Drag and drop Attribute.Attribute_Code onto the Grouping area; you should see
that your layout has changed already; now click Preview to see the impact on the
grouping of your data
6. Don’t like where it is? Then right-click Attribute Code; select Move Down

Copyright © 2010 Pearson 251


Intermediate ReportWorks

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

Creating Three More Types of Projects from Scratch


If you have been with us since the Basic class, so far you have created reports using the
label, table, and form letter layouts. Now you are going to add three more layouts to your
repertoire: the graph report, the cross tab report and the table grid report.

Activity 9 – Create a Graph


You have been asked to create a graph of all the students taking math and science classes.
You know how to select them in PowerSchool now you will see how to put that current
selection into a graph.
1. Click Details; click + Add; click Add a Project; and double-click Untitled Project
2. Give your project a name (with your initials included) and a description; then select
the Student Basic data set
3. Select the Scope tab and for Boundaries set the filter to Demographic.Student
Enrollment Status of 0
4. Click Runtime Controls and select Use of Current Student Selection
5. Select Layout and from the Add a Data Structure dialog, select Graph
6. Drag the graph structure to the desired position on the layout window
7. Click and drag the resize boxes located on the perimeter of the structure to change
the size of the graph (Double-click specific elements within the graph to access
element-specific resize controls.)
8. Drag and drop the data object of Gender from the Data Set panel to the graph
body
9. Click the border of the graph structure, and then click the Inspector icon

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

Copyright © 2010 Pearson 252


Intermediate ReportWorks

Create a Cross Tab Report


The Cross Tab Report in ReportWorks is similar to a PivotTable in Excel. It's a report that
shows how sets of data intersect; for example, it could show student populations broken
down by both gender and ethnicity for those math and science classes mentioned above.

The Cross Tab report project layout looks like this:

2
1. Column field – one unique value in each column
2. Row field – one unique value in each row 3

3. Data field – where the column meets the row

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

total Calculates the total for numerical values

average Calculates the average for numerical values

count Provides a count of how many data objects are in a list or


group

max Provides the maximum

min Provides the Minimum

Activity 10 – Create a Cross Tab Report


1. On the Details page click +add under the Projects pane to start a new report project
2. The new report project will be called Untitled Report; right-click the name and then
click Load Project

Copyright © 2010 Pearson 253


Intermediate ReportWorks

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

Creating a Report with a Student Bell Schedule


How many times during a school year do you need a document containing a student class
schedule? With ReportWorks you can make a report that is just a table containing the
schedule, or you can place a schedule in other types of documents, such as a letter to
parents. A convenient template is included with ReportWorks, making this project very easy
to create, but, of course, we want to know how to do that from scratch, ergo Activity 11.

Activity 11 – Create a Table Grid Student Bell Schedule


You are going to use the TableGrid layout to create a student bell schedule from scratch.
1. Click Details; click + Add; click Add a Project; and double-click Untitled Project
2. Give your project a name (with your initials included) and a description; then select
the Student Basic + Bell Schedule data set
3. Select the Scope tab and for Boundaries set the filter to Demographic.Student
Enrollment Status of 0
4. Select Layout and from the Add a Data Structure dialog, select TableGrid
5. From the data pane drag and drop from Class_Meetings Course_Name and
Room_Number to the data cell directly below @Calendar.Date@
6. Drag and Drop Cycle_Day_Abbreviation from Class_Meetings to the column cell
with @Calendar.Date@
7. Click Preview; notice there is no student name yet
8. Click the table; open the Table Inspector; click to add a Header, drag and drop
Contact.FirstLast_name to the sorting area

Copyright © 2010 Pearson 254


Intermediate ReportWorks

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.

Quick Reference Guide for Intermediate Class

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 and Unpublishing a Project


In order to use your reports in PowerSchool, you must publish them. Publishing a project
makes it a report. Once you have published a report to a school, it appears in that school’s
list of ReportWorks reports. The only way you can remove a report from PowerSchool’s list
is to go back into ReportWorks and unpublish it.

Copyright © 2010 Pearson 255


Intermediate ReportWorks

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

Using ReportWorks Reports in PowerSchool


Running a ReportWorks report is very intuitive except for a couple of things:
• ReportWorks reports have their own location in PowerSchool—a tab on the Reports
page
• ReportWorks has its own report queue

Print ReportWorks Reports


1. On the Start Page, click Reports > ReportWorks

The reports will be sorted by category.


2. Click the name of the report you want to run
3. On the report’s Runtime Parameters page, select the appropriate parameters for
your desired results
4. Under Scheduling, select Run Now, and click Submit
5. In the Report Queue, you see two tabs; click ReportWorks if it is not already
selected

Your report will be in the Queued Reports panel.

Copyright © 2010 Pearson 256


Intermediate ReportWorks

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.

Importing and Exporting Projects


Of course since you have gone to all the trouble to create new projects you want to take
them home and put them on your server:

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

Copyright © 2010 Pearson 257


Managing Fees

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:

• Create fee categories and fee types

• Assess fees

• Record and distribute payments

• Issue refunds

• Use Fee Functions

• Use fee search codes

• Display fee balances

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.

Activity 1 - Set up a Fee Type


The Apple Grove HS principal tells you that the school is adding a school enrollment fee for
all students. Since “school” is a default fee category, you need to set up a new fee type,
“enrollment,” in order to assess the new fee.

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

3. For Fee Category, choose School

4. For Fee Type Description, enter School enrollment fee

Copyright © 2010 Pearson 258


Managing Fees

5. Click Submit

Activity 2: - Set Up a Fee Category and a Fee Type


The Apple Grove HS principal also informs you that a uniform fee will be assessed for
students participating in sports. Create a fee category for sports. Also, set up a new fee
type, “uniform,” in order to assess the new fees.

1. On the Start Page, change to the District Office

2. Click District > Fee Categories > New

3. Enter your last name and “Sports” for the fee category, for example, SmithSports

4. Click Submit

5. Change to Apple Grove High School

6. Click School > Fee Types > New

7. For Fee Type, enter your last name and “Uniform,” for example, SmithUniform

8. For Fee Category, choose Sports

9. For Fee Type Description, enter Sport uniform fee

10. Click Submit

Assessing School Fees


You can set up fees to be assessed automatically when you enroll students. Examples of
such fees include textbook rental, tuition, and parking. At the bottom of the Edit School
page is the School Enrollment Fees section. If fees are already created, they will be listed
here under Fee Type, along with the fee amount.

Activity 3 - Assess a School Enrollment Fee


You already created the enrollment fee type in Activity 1. The next step is to make sure the
enrollment fee is assessed automatically when you enroll a new student. The enrollment fee
is $50.

1. Change to the District Office

2. Click District > Schools/Schools Info > Apple Grove High School > New

3. For Fee Type, choose the enrollment fee type you just created

4. Leave the Department field blank

5. For Amount, enter $50

6. For Description, enter School enrollment fee

Copyright © 2010 Pearson 259


Managing Fees

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

Assessing Course Fees


Just like enrollment fees, you can automatically assess a course fee when you enroll a
student in a course. Examples of course fees might be a lab fee, textbook fee, or supplies
fee. Course fees are set up and assessed at the school level, but the course fee category is
a default category at the district level.
When creating course enrollment fees, you can indicate whether or not you want the fee to
be pro ratable. If you choose Pro Ratable, the course enrollment fee will be assessed on the
basis of the number of days in the term for the course section. If a student enrolls in the
course after the start date, or drops the course before the end date, the student will only be
charged for that portion of the course.

Activity 4 - Assess a Course Enrollment Fee


The science department recently decided to charge a $35.00 lab fee. This fee is assessed to
students taking a biology or chemistry course. You need to create a fee type for “lab.” The
fee category is “course,” and the fee description is “lab fee.”

1. Verify that you are in Apple Grove High School

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

3. Set up the fee so it is assessed automatically when a student enrolls in biology

4. Click School > Courses

5. From the course list, choose any biology course, and then click Fees > New

6. For Fee Type, choose Lab Fee you just created

7. For Department, choose Science

8. For Amount, enter 35.00

9. For Description, enter Lab fee

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

Copyright © 2010 Pearson 260


Managing Fees

Create New Fee menu, choose the applicable fee type to assess a new student fee to an
individual student.

Activity 5 - Assess Student Fees


A new student is going on the field trip to the History Museum. Since not all students from
the history class are participating, the field trip is not created as a course fee. Therefore,
you need to add a fee category at the district office, add the fee type at Apple Grove High
School, and assess the fee.

1. Verify that you are at the District Office

2. Refer to the steps in Activity 2 to set up a fee category called Field Trip

3. Change to Apple Grove High School

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

6. Click Fee Transactions

7. For Create New Fee, choose the fee type History Museum you just created

8. For Department, choose History

9. For Description, enter History Museum Field Trip

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.

Activity 6 - Record Fee Payments


An 11th-grade student brought in a check for $50.00 to pay for the activity fees throughout
the year. Record this payment transaction.

1. Verify that you are at Apple Grove High School

Copyright © 2010 Pearson 261


Managing Fees

2. Search for and select any 11th-grade student whose last name begins with the same
letter as yours

3. Click Fee Transactions

4. Click Payment next to the activity fee

5. Enter the payment information, and then click Submit

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

2. Click Fee Transactions > Distribute

3. Enter the distribution information, and then click Submit

4. Verify that the payment was distributed

Exempting Students from School and Course Fees


When you set up school and course enrollment fees, they are assessed automatically to all
students when they enroll in school or in a particular course. Students can be exempt from
having these fees assessed. Search for and select the student, then click Other
Information and choose the appropriate fee exemption status. Other fees can still be
assessed manually.

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.

Activity 7 - Exempt Students from School and Course Fees


1. On the Start Page, search for and select any student

2. Click Other Information

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

Copyright © 2010 Pearson 262


Managing Fees

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.

Fee Functions includes the following options:

• 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

• New Transaction – used to record payments for a group of students

• 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

• Reverse Transaction Using Group Transaction ID – used to reverse a fee transaction


for a group of students
To use the Reverse Transaction function, you must know the group transaction ID. To view
the group transaction ID, click the date on the Fee Transactions page. The group transaction
ID number is at the bottom of the View Fee Transactions page.

Activity 8 - Use Fee Functions


An elementary school teacher is taking the class to the zoo. A $5.00 fee is assessed to the
entire class for this field trip. You need to create this fee for the class.
1. Switch to Washington Elementary
2. Click Teacher Schedules

3. Click a teacher’s name and then, in the Size column, click the number of students in
the class

4. Click Make this group the current selection of students

5. Click Fee Functions > New Fee

6. For Fee Type, choose Field Trip

7. For Description, enter Zoo Field Trip

Copyright © 2010 Pearson 263


Managing Fees

8. For Amount of Fee, enter 5.00, and then click Submit

9. Search for and select a student to verify that the fee was assessed

10. Click Fee Transactions

11. Click the date the fee was assessed

12. What is the Group Transaction ID? ________________

Activity 9 - Reverse a Fee Action


The field trip was cancelled due to weather. Now you need to reverse the $5.00 fee
assessment created in Activity 8.

1. On the Start Page, click the number next to Current Selection

2. From the list of functions below the student list, choose Fee Functions

3. Click Reverse Action Using Group Transaction ID

4. Enter the group transaction ID

5. Add a description explaining why you are reversing the transaction, and click Submit

Using Fee Search Codes


To search for students based on a particular fee status, enter the following fee search codes
into the Search Student field from the Start Page.

Search code What is displayed

*fee.id=noschool Students who are not related to a school fee record


*fee.id=nocourse Students who are not related to a course fee record
*fee.fee_balance=partial Students who have at least one fee balance that is
partially paid
*fee.fee_balance>0 Students who have at least one fee balance that is partially
paid
*fee_balance.balance>0 Students with a fee balance greater than zero
*fee_balance.balance=0 Students with a fee balance equal to zero
*fee_balance.balance=null Students with no fee_balance record

Copyright © 2010 Pearson 264


Managing Fees

Activity 10 - Fee Searches


1. How would you search for all students who have a fee balance?

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?

Printing Fee Balances on Reports


To print a fee balance on a report, such as a report card or form letter, you use this syntax:
^(Fee_GetStudentBalance)

Summary
After completing this course, you learned how to:

• Create fee categories and fee types

• Assess fees

• Record and distribute payments

• Issue refunds

• Use Fee Functions

• Utilize fee search codes

• Display and print fee balances

Copyright © 2010 Pearson 265


Managing Test Scores

Managing Test Scores


In this course, you will learn to:

• Set up a Standardized Test

• Use Quick Import to import test scores

• Use Direct Database Export (DDE) and an export template to export student test
scores

• Add test scores to a transcript and the Cumulative Info page

Set up a Standardized Test


Before you can import standardized test scores, you must first create a test and its scores.
Tests and test scores are created at the district level so they are available to all schools.

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.

Activity 1 - Create a Test and Test Score Type


1. Verify you’re at the District Office

2. On the Start Page, click District > Tests > New

3. Enter the test name ACT followed by your last name; for example, ACT_Smith

4. Choose National from the Type menu

5. Enter College entrance exam in the Description field

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

Copyright © 2010 Pearson 266


Managing Test Scores

11. Switch to Apple Grove High School

12. Search for and select any student, and then click Test Scores

13. Select the test you just created

14. Enter scores for the test and click Submit

Import Test Scores


What if you need to enter test scores for all 11th-grade students? While it makes sense to
enter scores for individual students manually, it’s probably best to use the Quick Import
special function to import test scores for a group. Import the scores from an ASCII text file,
preferably tab delimited. Be careful not to import test scores more than once for the same
test. If you do, a new student test record will be created and the previous test score will not
be overwritten.
The following table is an example of an ASCII import file for 11th graders who took the ACT.

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

Activity 2 - Import Test Scores


1. Follow your instructor’s directions to browse to the location of the ASCII text file that
contains test scores that match the test created in Activity 1

2. Note the name of one student, review the file format, and close the file

3. Verify that you’re at Apple Grove High School

4. On the Start Page, click Special Functions > Importing & Exporting > Quick
Import

5. Choose Test Scores from the Table menu

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

9. Check Suggest field map, and click Import

10. Choose your ACT test, and click Submit

Copyright © 2010 Pearson 267


Managing Test Scores

11. When you see the Import Records window, choose the following PowerSchool fields:

From your file To PowerSchool

Student Number Student Number

LastFirst leave blank

Grade Level Grade Level

Test_date Test Date

english_1 English Num

Reading_1 Reading Num

math_1 Math Num

science_1 Science Num

composite_1 Composite Num

12. Check the Check to exclude first row field

13. Do NOT click Submit

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

16. Click Test Scores

17. Verify that the scores were successfully imported

Direct Database Export (DDE)


Use Direct Database Export (DDE) to search for data in the internal tables on your server or
when you need to create an export file or report that contains records from the tables. Use
another application, such as a spreadsheet application, to view or organize the records.
When you export data from DDE, the system creates an independent export file that you
can open or update using any application you want.

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.

Copyright © 2010 Pearson 268


Managing Test Scores

Activity 3 - Use DDE to Export Student Test Scores


Use DDE to export ACT test score information.

1. On the Start Page, click System > Direct Database Export (DDE)

2. Choose Test from the Current Table menu

3. Click Select all [x] records in this table, and then click List View

4. Note the ID for the test you created in Activity 1 ______________________

5. Click Direct Database Export (DDE) in the breadcrumbs

6. Choose TestScore from the Current Table menu

7. Choose TestID from the first menu under Search TestScore

8. Choose = from the Comparator menu

9. Enter the ID number of your test in the blank field

10.Click Search all [x] records in this table, and then click List View

11.Note the ID for the Math component _________________

12.Click Direct Database Export (DDE) in the breadcrumbs

13.Choose StudentTestScore from the Current Table menu

14.Choose TestScoreID from the first menu under Search StudentTestScore

15.Choose = from the Comparator menu

16.Enter the math component ID in the blank field

17.Click Search all [x] records in this table, and then click Export Records

18.Enter the following fields

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

Copyright © 2010 Pearson 269


Managing Test Scores

k. [testScore]Name

19.Check Column titles on 1st row

20.Use the remaining default values, and then click Submit

21.Save the file on your desktop, and open it in Excel to verify that the data was
successfully exported

Create an Export Template


As an alternative to using DDE to export student scores, you can export them using a
template you created. Then, open the template with Excel. Use an export template to
quickly produce a simple list of students and information from the Student table, or change
the parameters to produce a more detailed list.
Create an export template by first creating the template structure and then adding columns
to the template. In the columns section, enter the fields to be included on the export. Enter
as many fields as you need for the export. Enter one field per line and separate multiple
fields with a hard return. The field delimiter is the item that separates fields in the exported
data. The record delimiter refers to the item that will separate the records in the exported
data. The default extension for an export file is .text or .txt.
When you export test data, create object reports with test data, or add test data to the
Cumulative Info page, you use formatted codes to extract the data. The following example
explains the components of the code you could use to export the math ACT score for the
student’s most recent test. The code options should be used in conjunction with each other.
The code is surrounded by parentheses and begins with either a caret or tilde.

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)

Activity 4 - Create an Export Template


1. On the Start Page, click Special Functions > Importing & Exporting >
Templates for Exporting > New

2. Enter your last name and TestScores in the “Name of this template” field; for
example, SmithTestScores

3. Choose Students from the “Export from this table” menu

4. Check Put column titles on first row

5. Use the remaining default values, and click Submit

6. Click 0 next to the template you just created, and click New

Copyright © 2010 Pearson 270


Managing Test Scores

7. For the first column, enter the following information:

Title/Heading: Student Number

Data to Export (fields): Student_Number

Column Number: 1

8. Use the remaining default values, and click Submit

9. Click New

10. Repeat the previous steps to set up the following columns

Title/ Data to Export (fields) Column


Number
Heading
Name LastFirst 2
Grade Grade_Level 3
Test Date ~(tests;name=ACT;which=last;type=num;result=date) 4
ACT Eng ~(tests;name=ACT;score=act_english;type=num;result=v 5
alue)
ACT Read ~(tests;name=ACT;score=act_reading;type=num;result=v 6
alue)
ACT Math ~(tests;name=ACT;score=act_mathematics;type=num;resu 7
lt=value)
ACT Sci ~(tests;name=ACT;score=act_science;type=num;result=v 8
alue)
ACT Comp ~(tests;name=ACT;score=act_composite;type=num;result 9
=value)

11. Click Back to Templates for Exporting

12. Click Export Using Template in the breadcrumbs

13. Choose Students

14. Choose the template you created, and click Submit

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:

Copyright © 2010 Pearson 271


Managing Test Scores

• 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.

Activity 5 - Add Student Test Data to a Transcript


Select an existing transcript, and add test scores to that transcript.

1. On the Start Page, click Reports > Setup > Object Reports > HS Test Scores
Transcript

2. At the bottom of the page, click Export this report as a template

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>

5. Return to the Start Page in PowerSchool

6. Click System > Import Report Template

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

12. Enter Test Score Labels in the Object Label field

13. Enter the following in the Text field:


ACT-English
ACT-Reading
ACT-Math
ACT-Science
ACT-Comp.
ACT Date

14. Enter 6.1 and 7.25 for the X and Y Position fields

Copyright © 2010 Pearson 272


Managing Test Scores

15. Use the remaining default values, and then click Submit

16. Click Text to add another text box

17. Enter Test Scores in the Object Label field

18. Enter the following in the Text field:


~(tests;name=ACT;score=act_english;type=num;result=value)
~(tests;name=ACT;score=act_reading;type=num;result=value)
~(tests;name=ACT;score=act_mathematics;type=num;result=value)
~(tests;name=ACT;score=act_science;type=num;result=value)
~(tests;name=ACT;score=act_composite;type=num;result=value)
~(tests;name=ACT;which=last;type=num;result=date)

19. Enter 7.4 and 7.25 for the X and Y Position fields

20. Use the remaining default values, and then click Submit

21. Click PowerSchool

22. Search for and select any student

23. Click Print A Report

24. Choose the transcript you imported

25. Use the remaining default values, and click Submit

26. When the report is completed, click View to verify that the test scores are displayed
on the transcript

Cumulative Info Page


Cumulative Info is a view-only student page that schools use to display cumulative grades
for the currently selected term. Because this information is school-specific, your
PowerSchool administrator sets up this page to best meet your school’s needs. The
Cumulative Info page is not restricted to grades information. You can also use it as a quick
reference for test scores. To set up the Cumulative Info page, click School > GPA Student
Screens.

Activity 6 - Add Test Scores to the Cumulative Info Page


Review the GPA Student Screens page and the Cumulative Info page. Your trainer will then
demonstrate how to add test score data to the Cumulative Info page.

1. On the Start Page, click School > GPA Student Screens

2. What information from the GPA Student Screens would you expect to see on a
student’s Cumulative Info page?
_________________________________________________________

Copyright © 2010 Pearson 273


Managing Test Scores

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?
_________________________________________________________

5. On the Start Page, search for and select any student

6. Click Cumulative Info and review the information

7. Your trainer will demonstrate how to add test scores to the Cumulative Info page

Pivot Tables and Charts


Sometimes you need to organize and summarize test data and present the information in a
way that highlights specific aspects of test data, such as the grade level, gender, or test
date. Pivot tables and charts in Excel can help you accomplish this. Pivot tables are
interactive tables that help you organize and compare data so you can see patterns, trends,
and relationships. From the pivot table, you can also create a chart to graphically display
the information.

Before creating a pivot table, decide how to organize your data.

• Row - individual items that determine how you want to display the data

• Column - unique categories of data

• Data - the values to be summarized

For more detailed information on pivot tables and charts, check out the PowerSchool
University course: “Excel: Clean Up and Analyze Data from PowerSchool.”

Activity 7 - Create a Pivot Table and Chart


1. Open the text file you created in Activity 3 in Excel
2. Choose PivotTable Report from the Data menu
3. In the Wizard, choose Microsoft Office Excel list or database, and then click
Next
4. In the Wizard, verify that the data are included in the range, and click Next
5. In the Wizard, choose New worksheet, and click Finish
6. On the PivotTable page, do the following:
a. Drag Grade_Level to the Row Fields section
b. Drag TestDate to the Column Fields section
c. Drag LastFirst to the Data Items section
7. You will see the number of students who took the test on each date

Copyright © 2010 Pearson 274


Managing Test Scores

8. To view details, double-click a data item


9. To view a chart, choose Chart from the Insert menu and follow the Wizard steps

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

Copyright © 2010 Pearson 275


PowerLunch

PowerLunch
PowerLunch activities are modeled after tasks you may perform every month. In this
course, you will learn how to:

• Set up PowerLunch to fit the needs of your school

• Enter the eligibility requirements and understand how to submit free and reduced
lunch applications

• Understand the different options available when serving meals

• Use the reporting functions of PowerLunch

Preparing for Lunch


Before using PowerLunch, set up the following items: lunch IDs, prices and options,
deposits, and lunch staff security. Every student must be assigned a lunch ID. Assign lunch
IDs by importing, assigning manually, or assigning automatically.

Auto-Assigning Lunch IDs


Whether you are assigning IDs by grade level, school, or district, you first have to decide
who gets an ID. One consideration when working with the auto-assign function is not
changing any IDs that may already be assigned. Selecting “Don’t overwrite any existing IDs
or passwords” ensures that previously created IDs will not be altered.

Prices and Options


Enter lunch prices separately for each school. Then, choose from the following lunch
options:
• Auto-calculate cash if account is deficit – Select this option to automatically
calculate how much cash is needed if the patron’s account does not have enough of a
balance to cover the meal.
• Use single-screen lunch process (Quicksale) – Select this check box to have the
lunch process (Quicksale) display and to set a full-priced meal as the default.
• Show student photo on screen – Select this check box to display the patron’s
photo on the page.
• Don’t use false balances for free lunch students – Select this check box if you
do not use false balances for free lunch students. This will show the student’s free or
reduced lunch price as well as the account balance on the page. Low-balance
messages will also appear.
• Allow students from any school through the lunch line (affects all schools) –
Select this check box to allow students from any school through the lunch line. This
affects all schools on your PowerSchool system.
Selecting “Allow students from any school through the lunch line” means that you may enter
deposits for students at different schools. For example, a parent with four students in the

Copyright © 2010 Pearson 276


PowerLunch

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.

Keeping a Student’s Lunch Status Private


Lunch status is a field that staff can query. Because this information is private and only a
select few need access to it, disable the query option from the District > Miscellaneous
page. This action disables the search for everyone.

Default Login Page


Set the PowerLunch menu as your default login page by clicking Personalize > Default
login page. Then, choose PowerLunch from the menu.

Activity 1 – Assigning a Lunch ID for One Student


Auto-assign a lunch ID for your assigned student.

1. Search for and select your student, then navigate back to the Start Page

2. Click Special Functions > Assign IDs & Passwords

3. Select For (your student’s name) only

4. Clear “Don’t overwrite any existing IDs or passwords”

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

7. Click PowerSchool to return to the Start Page

8. Search for and select your student

9. Click Modify Info, and locate the Lunch ID field

10. Write down your student’s lunch ID __________

Copyright © 2010 Pearson 277


PowerLunch

Activity 2 - Setting Prices and Options


Now, it’s time to set up PowerLunch. Enter the prices from Section 2 of your class handout.

1. On the Start Page, click PowerLunch > Set Prices and Options

2. Enter the lunch prices

3. Select the options that apply to your school

4. Click Submit

Note: Only one class participant working at each school can click Submit.

Activity 3 - Taking Deposits


Record a deposit for your student using Section 3 of your class handout.
1. On the PowerLunch page, click Take Deposits
2. Enter your student’s lunch ID, and press Enter
3. Enter the amount of the check, and select Check as the Tender Type
4. Click Submit

Managing Free and Reduced Lunch Students


Use PowerLunch to manage records of free and reduced lunch students. You can set
eligibility levels, process applications, notify parents of lunch status, and even change the
amount charged for previous meals that were recorded incorrectly.
Because applications for free or reduced lunch may be submitted at any time, a student
whose application is approved may have been charged the wrong amount of money for
meals purchased previously. Fortunately, you can use the Manager Screen to recalculate the
money charged for all the previous meals that the student purchased.

Activity 4 - Formatting Eligibility Levels and Letters


Format an eligibility level and the letter for the Meal Program Eligibility function. Use Section
4 of your class handout.

1. On the Start Page, click PowerLunch > Meal Program Eligibility > Set Eligibility
Levels > New

2. Enter the household size

3. Enter the maximum monthly income to qualify for free meals

4. Enter the maximum monthly income to qualify for reduced meals

5. Click Submit

6. Click Meal Program Eligibility in the breadcrumbs

7. Click Free next to Edit Evaluation Letters

Copyright © 2010 Pearson 278


PowerLunch

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.

8. Insert the following fields into the letter:

a. ^(schoolname) – on the top line

b. ^[date] – on the second line

c. ^(name_and_address) – on the third line

d. ^(LunchApplicNo) – on the fourth line, after "RE:"

e. ^(student_names) – in 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.

10. Click PowerLunch > Meal Program Eligibility

11. Click Reduced next to Edit Evaluation Letters

12. Repeat step 8 for the Reduced and Not eligible letters

Below is a sample Free lunch notification letter


<center>~(schoolname)
~([39]schooladdress)
~([39]schoolcity), ~([39]schoolstate) ~([39]schoolzip)
~([39]schoolphone)</center>
~[letter.date]

~(name_and_address)

<b>RE: Free/Reduced Lunch Application Status</b>

Application Number: ~(LunchApplicNo)

To the Parents or Guardian of:


~(student_names),

We have evaluated your Free/Reduced Lunch Application and have


determined that your student(s) qualify for a FREE daily lunch.

Please let us know if there are any changes in family income over the
next 6 months.

Copyright © 2010 Pearson 279


PowerLunch

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)

Activity 5 – Processing a Student's Application


Process your assigned student’s lunch application found in Section 5 of your class handout.
1. On the Start Page, click PowerLunch > Meal Program Eligibility
2. Enter the student’s last name in the Evaluate Student(s) field, and click Submit
3. Select the check box next to the student’s name, and fill in the following fields:
Household size, Monthly income, and “Guardian name and address”
4. Click Submit

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.

Activity 6 - Serving Lunch


Serving a meal follows the same process as taking a deposit. You need to hand enter or
scan in the student’s lunch ID. Many schools use an ID badge that the school supplies. A
small school may use a printed list that the lunch staff use to look up the lunch ID for each
student, or students may know their lunch ID because it is used for additional purposes.

Copyright © 2010 Pearson 280


PowerLunch

1. On the Start Page, click PowerLunch > Serve Lunch

2. Enter your student’s lunch ID in the field

3. Select or clear the Quicksale check box

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.

Meal Count Report


The Meal Count Report reports a quick list of meals for a specific date range.

Meal Count Listing


The Meal Count Listing report is a more detailed version of the Meal Count report. It will
show you meal totals for a specific date broken out by lunch status. In addition, the
numbers within the parentheses are the total number of students eligible for that status.

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.

Transaction Detail Report


The Transaction Detail report is the most detailed report. It displays every meal charged,
meal earned, and deposit taken, along with the date each transaction occurred and totals.
You can run this report for a date range.

Activity 7 – Running Reports


It is time to make the bank deposit for the day. Run a Cash report to double-check that
what was entered in PowerLunch matches the amount of cash and checks on hand. You also
need to double-check the details of lunch today. Run the Meal Count Listing and Meal Count
reports.

1. On the Start Page, click PowerLunch > Cash Report

Copyright © 2010 Pearson 281


PowerLunch

2. To produce a Cash report for the current day, click Submit

3. In the breadcrumbs, click PowerLunch > Meal Count Listing

4. Verify that today’s date is in the Date Range fields, choose Lunch for the meal, and
click Submit

5. In the breadcrumbs, click PowerLunch > Meal Count Report

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.

Transaction For a Different Date


You rely on technology every day, but you need to have a backup plan for times when
service is disrupted. For example, in the event of a power outage, you may have to keep
track of meals purchased on paper. Afterward, lunch staff can access PowerLunch and enter
the transactions that took place on the day the power outage occurred so that every
transaction is stored with the proper date.

Copyright © 2010 Pearson 282


PowerScheduler:
Advanced Troubleshooting

PowerScheduler: Advanced Troubleshooting


During this class, you will learn to:

• Run and interpret Build Reports

• Understand and work with constraints

• Become familiar with scheduler errors

• Troubleshoot builds and loads

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.

Copyright © 2010 Pearson 283


PowerScheduler:
Advanced Troubleshooting

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

The following reports help you evaluate a completed master schedule.

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.

Copyright © 2010 Pearson 284


PowerScheduler:
Advanced Troubleshooting

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.

Activity 1 – View Build Reports


Explore several Build reports.

1. On the Start Page, click PowerScheduler > Reports

2. Click Requests by Student

3. Click Scheduling Reports in the breadcrumbs

4. Click Student Request Tally

5. Click Scheduling Reports in the breadcrumbs

6. Click Under-scheduled Students

7. Click Scheduling Reports in the breadcrumbs

8. Click Master Schedule

9. Select to sort by Teacher and click Submit

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

Copyright © 2010 Pearson 285


PowerScheduler:
Advanced Troubleshooting

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.

Copyright © 2010 Pearson 286


PowerScheduler:
Advanced Troubleshooting

Direct Database Access (DDA) Codes


You can use DDA when managing constraints, but querying constraints requires knowing
the code. Each constraint is identified with the following codes:
• Course Optimize (18) • Teacher Part-Time (02)
• Course Restrict (09) • Teacher Team (94)
• Course Room (11) • Balance Adjustment (20)
• Course Team (93) • Student Avoid (07)
• Pre-Schedule (16) • Teacher Avoid (05)
• Room Free (97) • Student Free (06)
• Schedule Break (31) • Section Link (92)
• Teacher Dovetail (17) • Student Preference (05)
• Teacher Free (01)

Activity 2a – Enter a Pre-Schedule Constraint


1. On the Start Page, click PowerScheduler > Constraints > Pre-Schedule > New

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

4. Click Associate next to Room, select a room, and click Submit

5. Click Associate next to Teacher, select a teacher, and click Submit

6. Use the default values for the remaining fields and click Submit

Activity 2b – Enter a Teacher Free Constraint


1. On the Constraints menu, click Teacher Free > New

2. Click Associate next to Teacher, select a teacher, and click Submit

3. Choose a term from the menu

4. On the Schedule, check 4 and click Submit

Activity 2c – Enter a Balance Adjustment Constraint


1. On the Constraints menu, click Balance Adjustment > New

2. Click Associate next to Course Number, select a course, and click Submit

3. Enter 3 in the Section Number field

4. Enter 5 in the Number of Reserved Seats field and click Submit

Copyright © 2010 Pearson 287


PowerScheduler:
Advanced Troubleshooting

Activity 2d – Enter a Student Free Constraint


1. On the Constraints menu, Click Student Free > New

2. Click Associate next to Student, select a student, and click Submit

3. Choose Semester One from the menu

4. On the