0% found this document useful (0 votes)
71 views

Unleashing The Power of Object-Oriented Programming

The document discusses JavaScript and how it is used in Hyperion Intelligence. It introduces JavaScript, describes Hyperion's proprietary object model, and outlines what topics will and won't be covered. The main topics that will be covered are object-oriented programming concepts like objects, properties, and methods, as well as functions, statements, operators, and built-in objects like String, Number, Date, Array, and Math.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views

Unleashing The Power of Object-Oriented Programming

The document discusses JavaScript and how it is used in Hyperion Intelligence. It introduces JavaScript, describes Hyperion's proprietary object model, and outlines what topics will and won't be covered. The main topics that will be covered are object-oriented programming concepts like objects, properties, and methods, as well as functions, statements, operators, and built-in objects like String, Number, Date, Array, and Math.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 46

Native JavaScript in Hyperion Intelligence

Unleashing the Power of ObjectOriented Programming

What is JavaScript?
   

Created in 1995 by Brendan Eich of Netscape as LiveScript Interpreted, object-oriented/procedural programming language Extensively used in web pages in conjunction with HTML Event-driven, case-sensitive, ignores extra spaces

How Does Hyperion Intelligence Use JavaScript?




 

Introduced Netscape v1.4 JavaScript interpreter in v6.0 Supports all standard JavaScript commands Used in dashboards, computed items (except in query sections), calculated report fields and document scripts Proprietary object model

Proprietary Object Model


 

 

Web object model uses objects like window, document, and location Hyperion object model uses objects like Application, ActiveDocument and ActiveSection Properties and methods will vary Core objects such as String, Number and Date will be unchanged

What About _____?


   

We will not cover anything proprietary to Hyperion Intelligence We will not cover the basics (syntax, conditional statements, loops, etc.) We will not cover redundancies (for example, the concat() method of a string object) We will not cover advanced topics that would require a separate presentation altogether (for example, regular expressions) We will cover everything else!

Object-Oriented Programming
 

Objects, sub-objects and object collections Methods


Actions performed on or by an object Called with parenthesis at the end to allow for the passing of parameters Descriptive traits of objects Sometimes read-only

Properties

Other JavaScript Terms


   

Functions: parameters are passed in parenthesis returning a result Statements: cause an action or series of actions Operators: Used for mathematical calculations, value comparisons and shortcuts Constants: Built-in variables (Infinity, NaN, null and undefined)

Functions


eval() evaluates a string of code and (optionally) returns a result


eval(Alert(1)) //returns no value var x = eval(10 * 10) //returns a value of 100

Functions (cont.)


isFinite() returns true if the number is neither positive nor negative infinity
var x = isFinite(10) //returns true var x = isFinite(Infinity) //returns false

Functions (cont.)


isNaN() returns true if the parameter is not or cannot become a number


var x = isNaN(10) //returns false var x = isNaN(Adam12) //returns true var x = isNaN(1000) //returns false

Functions (cont.)


Number() converts a non-numeric value to a numeric value


var x = Number(10) //returns the numeric value 10

String() converts any value to its string representation


var x = String(10) //returns the string value 10

Statements
  

  

break breaks a loop or conditional statement // - comments out a line of code /* - comments out several lines of code (closed with */) continue opposite of break do{} while() executes a loop at least once for(){} executes a loop

Statements (cont.)
     

function(){} declares a local function if(){} else{} executes a condition return returns a value from a function var declares a local variable while(){} executes a loop with(){} declares top level object
with(ActiveDocument.Sections[Query]){ Name = MyQuery }

Statements (cont.)


switch(){} executes a conditional statement with multiple conditions possible


switch(x){ case A : var y = 1 break case B : var y = 2 break default : var y = 3 }

Statements (cont.)


try{} catch(){} attempts to execute a statement in the try{} and executes the catch(){} if an error occurs throw passes a value to the catch(){}

Statements (cont.)
try{ if(x == 1){throw "Error 1"} else if(x == 2){throw "Error 2"} } catch(er){ if(er == "Error 1"){Alert(Contact SysAdmin")} if(er == "Error 2"){Alert("Please Reload the page")} }

Operators


Mathematical
+ Add/Concatenate ++ Increment += Add/Append - Subtract -- Decrement -= Subtract/Remove / Divide * Multiply % Modulus

Comparison
== Equal != Not Equal > Greater >= Greater or Equal < Less <= Less or Equal

Assignment
= Assign

Operators (cont.)


Backslash Escaped
\ Quote \ Double Quote \\ Backslash \b Backspace \f Form Feed \n New Line \r Carriage Return \t Tab

Logical
&& And || Or ! Not

Special

Operators (cont.)


Question mark & colon executes a single condition


(rowCount > 0) ? var x = Rows : var x = No Rows

new creates an object


function makeBook(title){this.Title = title} var book = new makeBook(Don Quixote) Alert(book.Title) //returns Don Quixote as a property

Operators (cont.)


typeof returns the type of object


var x = typeof(10) // returns number var x = typeof(ABC) // returns string var x = typeof(true) // returns boolean var x = typeof(null) // returns object Methods & functions return function

Operators (cont.)
 

Comma used to separate multiple values delete deletes an object, property or array element this used to refer to the parent object
Alert(this.Name) //returns the name of the object used

Objects
    

String Number Date Array Math

String Object
 

The length property returns the string length Methods include charAt(), charCodeAt(), fromCharCode(), indexOf(), lastIndexOf(), slice(), split(), substr(), substring(), toLowerCase(), toUpperCase() We will NOT be discussing regular expressions in this presentation

String Object - Methods




String.charAt() takes 1 argument, returns the character at the index of the argument
var x = AdamFranz Alert(x.charAt(0)) // returns A

String.charCodeAt() takes 1 argument, returns the ASCII value of the character at the index of the argument
Alert(x.charCodeAt(0)) // returns 65 (ASCII for A)

String Object Methods (cont.)




String.fromCharCode() builds a character from the ASCII value specified in the argument
Alert(String.fromCharCode(65)) // returns A

String Object Methods (cont.)




String.indexOf() takes one or two arguments, returns the index of the first argument in the string (starting from the index of the second argument)
Alert(x.indexOf(a)) // returns 2 Alert(x.indexOf(a, 4)) // returns 6

String.lastIndexOf() same as above but returning the index of the last instance of the argument

String Object Methods (cont.)




String.slice() returns a portion of the string between 2 specified indexes


Alert(x.slice(1, 3)) // returns da

String.split() returns an array from the string being broken on a designated character
var y = A, B var z = y.split(,) Alert(z[0]) // returns A Alert(z[1]) // returns B

String Object Methods (cont.)




String.substr() returns a portion of the string starting at the index of the first argument for the length of the second argument (defaults to end of string)
Alert(x.substr(2, 2)) // returns am

String.substring() basically the same as String.slice()

String Object Methods (cont.)




String.toLowerCase() returns the string in all lower case


Alert(x.toLowerCase()) // returns adamfranz

String.toUpperCase() opposite of above


Alert(x.toLowerCase()) // returns ADAMFRANZ

Number Object
   

Represents a solely numeric value Number.MAX_VALUE = 1.79769e+308 Number.MIN_VALUE = 5e-324 Number.NaN, Number.NEGATIVE_INFINITY and NUMBER.POSITIVE_INFINITY for comparison purposes

Date Object


It is always a good idea to explicitly declare dates before performing any comparisons, calculations or calling any methods
var x = new Date(yourDateValue)

Date Object - Methods




Date objects have a series of get & set methods used to return or set any specific portion of the date object A get method, such as getFullYear(), returns the year from the date object whereas a set method, such as setFullYear(), sets the year portion of the date to the argument passed A getUTC or setUTC gets or sets according to Universal Time (not discussed)

Date Object Methods (cont.)


       

.getDate() .getDay() .getFullYear() .getHours() .getMilliseconds() .getMinutes() .getMonth()* .getSeconds() * - zero-based, watch out!

       

.setDate() .setDay() .setFullYear() .setHours() .setMilliseconds() .setMinutes() .setMonth()* .setSeconds()

Date Object Methods (cont.)




Date.getTimezoneOffset returns the difference in minutes between local time and Greenwich Mean Time Date.getTime(), Date.parse() and Date.valueof() used to return the number of milliseconds since 1/1/1970

Array Object


Contains a series of values of any datatype designated by their array index (starting with zero) The length property will return the total amount of elements in the specified array

Array Object - Methods




Array.concat() joins two or more array objects (passed as arguments) into a single array object (without effecting the original array) Array.join() converts an array object to a string separated by the character used in the argument (or a comma by default)

Array Object Methods (cont.)




Array.pop() removes the last element of an array Array.push() adds an element specified as the argument to the end of an array and returns the new array length Array.shift() removes and returns the first element of the array

Array Object Methods (cont.)




Array.slice() Returns a new array from a portion of the original array starting at the index of the first argument and ending at the second (or to the end of the array by default) Array.sort() - re-indexes the array in ascending order by default or in the order provided as an argument in the form of a function

Array Object Methods (cont.)




Array.splice() used to add, remove or replace elements of an array


Array_name.splice(starting_index, how_many_to_remove, replacement_value_1, replacement_value_2, etc.)

Math Object


A native object accessible by direct reference without requiring instantiation Used for performing calculations and to access unique mathematical values such as Pi, random numbers, etc. Includes geometrical properties and methods such as Math.tan for calculating Tangent (not discussed)

Math Object - Properties


       

Math.E Eulers constant Math.LN10 Natural logarithm of 10 Math.LN2 Natural logarithm of 2 Math.LOG10E Base 10 logarithm E Math.LOG2E Base 2 logarithm of E Math.Pi Pi Math.SQRT1_2 1 divided by sq. rt. of 2 Math.SQRT2 Square root of 2

Math Object - Methods


 

Math.abs(x) returns the absolute value of x Math.ceil(x) returns x rounded up to nearest whole number Math.exp(x) returns Eulers constant to the power of x Math.floor(x) - returns x rounded down to nearest whole number Math.log(x) returns the natural logarithm (base E) of x

Math Object Methods (cont.)


   

 

Math.max(x,y) returns the greater of x or y Math.min(x,y) returns the lesser of x or y Math.pow(x,y) returns x to the power of y Math.random() returns a pseudo-random number (based on the current time) between 0 and 1 Math.round(x) returns x rounded off Math.sqrt(x) returns square root of x

Conclusion


JavaScript is a powerful scripting language which extends beyond the Hyperion platform All applicable JavaScript is valid in Hyperion Intelligence JavaScript can be used in dashboards, document scripts, and any computed items (other than in a query) Get out there and get scripting!!!

Helpful Websites


http://www.devguru.com - an excellent JavaScript reference http://www.adamfranz.com - sample code and presentations available for download

The End

fin

You might also like