Title of Invention

A SYSTEM FOR NUMERIC FORMAT HANDLING

Abstract A SYSTEM FOR NUMERIC FORMAT HANDLING
Full Text FORM 2
THE PATENTS ACT, 1970 (39 of 1970)
COMPLETE SPECIFICATION (See Section 10, rule 13)
A SYSTEM FOR NUMERIC FORMAT HANDLING
COMPUTER ASSOCIATES THINK, INC. of ONE COMPUTER ASSOCIATES PLAZA, ISLANDIA NY 11749, U.S.A., AMERICAN Company
The following specification particularly describes the nature of the invention and the manner in_ which it is to be performed : -



SYSTEM AND METHOD FOR CLIENT-SIDE LOCALE SPECIFIC NUMERIC FORMAT HANDLING IN A WEB ENVIRONMENT
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based upon provisional application No. 60/373,772, filed on April 19,2002, the entire contents of which are incorporated herein by reference.
BACKGROUND
1. Field
The present disclosure generally relates to web development and, more specifically, relates to systems and methods for processing locale specific numeric formatting in web browsers.
2. Description of the Related Art
JavaScript™ is a scripting language which supports software applications on a variety of computer and computing devices regardless of the underlying operating system.The language has particular application in web documents, (e.g., Hypertext Markup Language (HTML) coded web pages) for processing or manipulating data in a web browser without invoking the web server. Such data manipulation is customarily referred to as client- side data manipulation. Currently, JavaScript™ is one of the most widely used scripting languages.
JavaScript™ technology, however, is deficient in handling and processing alternative numeric data formats which may be locale specific, i.e., numeric data formats which vary depending on the location of the client/user, and which contain characters not recognizable by JavaScript™. For example, in the United States, the number"one thousand five hundred forty-two and fifty-three cents"is customarily expressed and formatted by the client/user as "1,542. 53". In Germany, the same number is formatted as" 1.542, 53". Irregardless of the locale formatting utilized, JavaScript can only process this number when expressed as 1542.53.
Accordingly, software applications supported by JavaScript™ may be incapable of properly performing numeric calculations with numbers entered by the client/user using customary formatting symbols associated with the user locale. If a user in the United States types a number into a form on a web site with the comma grouping
2

separator discussed above,JavaScriptTM will not recognize the number as valid without additional manipulation of the data. Similarly, the period grouping separator methodology utilized in Germany is also unrecognizable by JavaScript. Thus, in order for software applications supported byJavaScriptz to acquire universal and international applicability, it is necessary that these software applications handle and display numbers sensitive to the locale of the user.
Therefore, it is desirable to provide a system and method for client-side locale or user specific numeric format handling in a web environment, specifically, in a web browser. It may also be desirable to provide systems and methods for removing a locale or user specific numeric format for performing numeric calculations using JavaScriptTM and then formatting the numeric data into one or more locale or user specific numeric formats for display purposes.
SUMMARY
The present disclosure provides a system and method for processing client-side user specific numeric formatting in a web environment for software applications supported by JavaScript. In one embodiment, the present disclosure enables software applications supported byJavaScript to perform client-side calculations on locale specific numeric data, and then display the numeric results in a format sensitive to the user"s locale or needs.
Accordingly there is provided a system for numeric format handling comprising: means for establishing a user connection with a server; means for providing user access to a computer document maintained at the server; means for receiving a numeric input in the computer document, the numeric input having a first numeric format; means for removing the first numeric format from the numeric input to provide a non-formatted number; means for performing at least one calculation using the non-formatted number by a programming language designed for operating among a plurality of operating systems in a web environment; means for generating a result from the at least one calculation; means for applying a second numeric format to the result; means for providing the result in the computer document. According to invention means for showing the result having the second numeric format to a user. Also means for applying the second numeric format includes means for formatting the result according to a locale or user specified decimal separator and/or grouping separator and the programming language is JavaScript.
3

BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the present disclosure are described hereinbelow with reference to the drawings wherein:
FIG 1 is an operational flow block diagram of one embodiment of a system and method in accordance with the principles of the present disclosure;
FIG 2 is an operational flow block diagram of a Remove Format function according to one embodiment of the system and method of FIG. 1;
FIG 3 is an operational flow block diagram of an Apply Format function according to one embodiment of the system and method of FIG. 1; and
FIG 4 is a block diagram of an intranet or internet network in which the systems and methods of the present disclosure can be implemented.
4

DETAILED DESCRIPTION
Referring now to the drawings which are presented for the purpose of
illustrating one or more embodiments of the present disclosure and not for the purpose
of limiting the scope of the disclosure in any manner, FIG 1 illustrates an operational
flow block diagram of an exemplary system methodology for client-side locale
specific numeric format handling in a web environment. In one embodiment, the
methodology incorporates two processes or steps, e.g., a Remove Format process or
function to remove any locale specific formatting from the data, and an Apply Format
process or function to apply a desired format to the manipulated data for presentation.
The processes can be scripts or code in the JavaScript™ language.
With reference to FIG. 1, the system operates as follows: Numeric data such as currency data is inputted by a user (Block 100). This data is typically entered in a web document in a format customary in the U.S., or a decimal separator format customary in the various European countries. Thereafter, the locale specific numeric data formatting is removed through the Remove Format process to produce numeric data recognizable by JavaScript™ (Block 110). A software application supported by JavaScript™ then performs calculations with the unformatted numeric data (Block 120). Once the calculations have been performed, the numeric data is formatted to one or more locale specific formats (e.g., in the customary format of a reader"s locale) and/or one or more user-defined formats through the Apply Format process (Block 130). The formatted numeric data is then displayed in the desired format (Block 140).
Utilization of the Remove Format and Apply Format functions provides web developers the ability to supply web applications which are sensitive to each users"locales and/or sensitive to each users"specific requests. The Remove Format and Apply Format functions will now be discussed in detail.
Remove Format Function
With reference now to FIG 2, the Remove Format function is adapted to remove specified numeric formatting (entered by the user inputting the numeric information) to convert the formatted number into a valid JavaScript™ number. The Remove Format function removes invalid or non-numeric characters from the user-inputted data and assign a valid JavaScript™ number for each user-inputted number. The removal of the formatting for the inputted numeric data is based on the specified
5

expected decimal separator of the locale and can be determined by the web designer or developer. The input parameters for this function are as follows:
1. Original formatted number; and
2. Locale (or user) specified decimal separator (e.g.,"."in U.S., or","in Europe).
An exemplary Remove Format function will now be described, using the formatted number"~3,456. 9876" (where the decimal separator is a"."). The desired decimal designation is to the hundredths as in typical U. S. currency designations:
"i. Accept the origina"! formatted number as a string varia"me representative of numerical data entered by the user. (Block 200)
2. Determine the length of the string using a known JAVASCRIPTTM STRING method, Length ()• (Block 205)
3. Locate, the position of the decimal separator within the string using the JavaScript string method, LastlndexOF () (Block 210). The position in this example number is 6.

4. Determine if the first character (position zero) of the string contains a negative symbol ("-") to ascertain if the number inputted by the user is a negative number. If the first character contains a negative symbol, set the negative flag to true, else set the negative flag to false (Block 215). For this example, the negative flag is set to true.
5. If the formatted number contains more than two characters after the decimal separator, determine if the number needs to be rounded to the next highest number or the next lowest number. In this regard, if the third character after the decimal separator is greater than four, then set the rounding flag to true, else set the rounding flag to false (Block 220). For this example, the third character after the decimal is 7 and this number is greater than four, so the rounding flag will be set to true.
6. A substring of the string is created including all characters from the zero position through three positions after the decimal separator (i.e., to include two characters after the decimal separator). For this example, the substring becomes-3,456. 98. (Block 225)
6

7. If the decimal separator was not found or there were less than two characters after the decimal separator, then add the necessary amount of zeros onto the end of the formatted number. If there are no characters after the decimal separator or the decimal separator does not exist, add"00""onto the end of the formatted number string. If there is only one character after the decimal separator, add"0"to the end of the formatted number string. If the decimal separator exists and there are more than two characters after the decimal separator, then do nothing. (Block 230) In this example, there were more than two characters after the decimal separator, therefore nothing will be done.
8. Use the JavaScript™ regular expression method, Replace (), to remove all non- numeric characters from the formatted number string by replacing them with an empty string or null (Block 235).In this example, the negative symbol, grouping separator ","and the decimal separator"."will each be replaced by nulls.
9. If the rounding flag is true, then treat the formatted number as a floating-point number instead of a string, and add one to the floating-point number (Block 240). In the example above, since the rounding flag is true, the formatted number will be treated as a floting-point number, and one will be added to the number.(e.g , 345698 + 1 =345699)

10. If the negative flag is set to true (as in the example above), multiply the floating-point number by-1 (Block 245) (e. G."345699* (-1) =345699.
11. Divide the floating point number by the desired multiple often, e.g., 100, to place the valid JavaScript™ decimal separator back into the number (Block 250) (e.g.,-345699/100+ = - 3456. 99)
12. Return the valid JavaScript™ value corresponding to the formatted number
(Block 255). For the example above, the return JavaScript™ value will be: "-
3456.99".
The return value of the Remove Format method is now a valid JavaScript™ number, enabling the software application supported by JavaScript™ to perform the desired numeric calculations. As appreciated, this methodology can be performed with the comma","as the decimal separator in lieu of the period"."separator. Similarly,
7

the desired designation could be set to any numeric designation, e.g., to the one-thousands. In this regard, the methodology would look to a fourth character after the decimal separator for rounding (Block 220) and would divide the floating point number by 1000 (Block 250)
Apply Format Function
With reference now to FIG 3, the Apply Format function will be discussed. As indicated above, the Apply Format function is used to apply specified numeric formatting by converting the valid JavaScript™ number into a locale and/or user specific numbeT. This method or function returns a iocaie (or user) specific number as a string. The input parameters for this function are as follows:
1. Valid JavaScript™ value or number;
2. Locale (or user) specified decimal separator; and
3. Locale (or user) specified grouping separator (e. g.,","in U. S. or"."in Europe).
The methodology for this function will now be presented. For exemplary purposes, the valid JavaScript™ number"-3456. 99" formatted in the Remove Format process described above will be used. The selected grouping seperator will be "," and the decimal separator will be"."for the example (U. S. format). The methodology is as follows:
1. Determine if the absolute value of the JavaScript™ number is greater than 999.99 (Block 300 in FIG 3), If yes, the grouping separator is utilized (Block 310). If no, proceed to step number 6. (Block 360) In the instant example, the absolute value is 3456.99 which is greater than 999.99 ; therefore, proceed to step 2.
2. Treat the JavaScript™ number as a string and locate the JavaScript™ decimal separator (Block 320).
3. Use the JavaScriptlM regular expression, Replace (), to replace the JavaScript™ decimal separator with the locale or user specific decimal separator (Block 330).
8

4. Use the location of the decimal separator and count backwards three characters in the string and split the string into two sub-strings using the JavaScript™ string method, Substring () (Block 340). For this example, there will be the following two sub- strings:"-3"and"456. 99".
5. Concatenate the first and second sub-strings with the locale or user specific grouping separator in the middle (Block 350). For this example, the concatenate process will be"-3"+","+"456. 99". After concatenation, the exemplary number will be"-3,456. 99".
6. If there is no grouping separator (number is less than or equal to 999.99), find location of the JavaScript™ decimal separator (Block 360) and replace the JavaScript™ decimal separator with the locale or user specific decimal separator (Block 370).
7. Return the locale or user specific formatted number as a string (Block 380).
The return value for the example above is"-3,456. 99".
The return value for this function is thus formatted per the grouping and the decimal separators given for the specific or user locale.
The numeric data is formatted using the Apply Format method by determining the grouping separator. It is typically up to the web developer to determine the expected decimal separator and grouping separator for the one or more locale specific formats and/or one or more user-defined formats not necessarily to the locale. It is envisioned that a user in Germany may desire to express the numeric data in the U. S. format or vice versa. Apply Format returns a string with the numeric data properly formatted as pre-specified by the decimal separator and/or grouping separator.
Referring now to FIG 4, an exemplary computer network suitable for use with the method and system of the present disclosure is shown. The network includes a plurality of computer workstations 400 and a plurality of servers 402 residing on host machine 404.
Each workstation 400 includes a web browser 406 which serves as a user interface to allow the user to access resources in the network. Each server 402 acts as a gateway to provide the user access to various resources, including web documents
9

408, back-end applications 410 (e.g., a database management system running on the same machine as the web server) and possibly external applications 412 (which run on a different machine than the web server).
Each server 402 is configured to allow access by a user to the server resources.
Each user may login to the network to access computer documents relating, e.g., to particular departments of an organization, specific programs or applications, etc., on one of the servers 402. For purposes of explanation, the network of FIG. 4 is part of an internet.
While the description relates to intranet environment, it will of course be appreciated that the principles of the present disclosure can be readily adapted for use in other network environments, e. g., LANS, WANS, and the internet.
Once logged in, the user accesses through the web browser a web document such as a static HTML web document for entry or review of data. The web document may request the entry of numerical data and, if so, may be coded with the aforementioned Remove Format and Apply Format methodologies to permit data manipulation independent of the customary locale of the user and subsequent presentation in a predetermined grouping format.
The systems and methods according to the present disclosure has particular applicability in products directed to assisting organizations in the planning, estimating, scheduling, building and reporting of software and other development projects such as the AHFusion™ Process Management Suite OF Islandia, New York. The documents associated with such products typically request entry of numerical data which may be formatted in the specific locale of the user. Thus, by incorporating the systems and methods of the present disclosure into the programming of these documents, universal and international applicability of such products will be facilitated.
It is envisioned that the above Remove Format and Apply Format functions are storable on a computer-readable medium, such as a WEB HTML document, and can be configured for execution by at least one processor of a computer system for implementing the system of the present disclosure, and for performing the processes of the Remove Format and Apply Format functions, as well as performing
10

calculations using valid Javascript numbers returned by the Remove Format method.
What has been described herein is merely illustrative of the principles of the present disclosure. For example, the number format methods, i.e., the Remove Format and Apply Format functions, described above and implemented as the best mode for operating the present disclosure are for illustration purposes only. Other arrangements and methods may be implemented by those skilled in the art without departing from the scope and spirit of this disclosure.
11

Claim:
1. A system for numeric format handling comprising:
means for establishing a user connection with a server (402);
means for providing user access to a computer document (408) maintained at the
server (402);
means for receiving a numeric input in the computer document (408), the numeric
input having a first numeric format;
means for removing the first numeric format from the numeric input to provide a
non-formatted number;
means for performing at least one calculation using the non-formatted number by a
programming language designed for operating among a plurality of operating
systems in a web environment;
means for generating a result from the at least one calculation;
means for applying a second numeric format to the result;
means for providing the result in the computer document (408).
2. The system according to claim 1, comprising means for showing the result having the second numeric format to a user.
3. The system according to claim 1 wherein the means for applying the second numeric format includes means for formatting the result according to a locale or user specified decimal separator and/or grouping separator.
4. The system according to claim 1 wherein the prograrruning language is JavaScript. Dated this 14th day of October, 2004.

Documents:

579-mumnp-2004-cancelled pages(11-03-2005).pdf

579-mumnp-2004-claims(granted)-(11-3-2005).doc

579-mumnp-2004-claims(granted)-(11-3-2005).pdf

579-mumnp-2004-correspondence(4-1-2006).pdf

579-mumnp-2004-correspondence(ipo)-(23-12-2005).pdf

579-mumnp-2004-drawing(11-3-2005).pdf

579-mumnp-2004-form 19(18-10-2004).pdf

579-mumnp-2004-form 2(granted)-(11-3-2005).doc

579-mumnp-2004-form 2(granted)-(11-3-2005).pdf

579-mumnp-2004-form 26(10-12-2005).pdf

579-mumnp-2004-form 3(11-3-2005).pdf

579-mumnp-2004-form 3(18-10-2004).pdf

579-mumnp-2004-form 5(18-10-2004).pdf

579-mumnp-2004-form-pct-ipea-409(18-10-2004).pdf

579-mumnp-2004-form-pct-isa-210(18-10-2004).pdf

579-mumnp-2004-petition under rule 137(4-1-2006).pdf

abstract1.jpg


Patent Number 203768
Indian Patent Application Number 579/MUMNP/2004
PG Journal Number 20/2007
Publication Date 18-May-2007
Grant Date 14-Nov-2006
Date of Filing 18-Oct-2004
Name of Patentee COMPUTER ASSOCIATES THINK, INC.
Applicant Address ONE COMPUTER ASSOCIATES PLAZA ISLANDIA NY 11749, U.S.A.
Inventors:
# Inventor's Name Inventor's Address
1 ASBURY , MARK BOTH ARE U.S.A. CITIZEN ONE COMPUTER ASSOCIATES PLAZA ISLANDIA NY 11749, U.S.A.
PCT International Classification Number N/A
PCT International Application Number N/A
PCT International Filing date 2003-04-18
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 60/373,772 2002-04-19 U.S.A.