[AS] Fractions script

A very long time ago I adapted a "Make Fractions" written by Sal Sogohian for Quark.
There are a variety of things that can be improved upon. But as it is it works
-peter
*** User modifiable variables
useFractionGlyphs has two possible values:
none:      *fractions are created by modifying the attributes of the actual text
normal:      *fractions that have glyphs in normal fonts are replaced with those glyphs
          *other fractions are created by modifying the attributes of the actual text
property useFractionGlyphs : "normal" -- one of these values:"none","normal"
-- *** End user modifiable variables
-- When replacing a fraction that contains mulitple characters with one glyph,
-- then the offsets we calculate when we start become incorrect. This
-- propery keeps track of the difference in offset.
property extraOffset : 0
-- This maps the fractions found in all fonts and their unicode value
property fractionGlyphMap : {¬
     {"1/4", "00BC"}, ¬
     {"1/2", "00BD"}, ¬
     {"3/4", "00BE"} ¬
tell application "InDesign 2.0.1"
     set extraOffset to 0
     -- Make sure a text box is selected
     set theSelection to selection
     if (count of theSelection) is 0 or class of item 1 of theSelection is not text frame then
          beep
          tell me to display dialog "Please select a text box." buttons {"OK"} default button 1
          return
     end if
     set theFrame to item 1 of selection
     tell theFrame --only work on the selected frame
          -- get the indicess of all the slash characters
          set slashCharacterList to (index of (every character whose contents is "/")) as list
          if slashCharacterList is {} then
               tell me to display dialog "No fractions in this text flow to format."
               return
          end if
          set theCounter to 0 -- keep track of how many factions we process
          repeat with i from 1 to the number of items in slashCharacterList
               set slashCharIndex to (item i of slashCharacterList) as number
               set wordBefore to object reference of word 1 of character (slashCharIndex - extraOffset - 1) of theFrame
               set wordAfter to object reference of word 1 of character (slashCharIndex - extraOffset + 1) of theFrame
               tell me to set IsFraction to VerifyIsFraction(wordBefore, wordAfter)
               tell me to set replacedWithGlyphs to HandleUseFractionGlyphs(wordBefore, wordAfter)
               if IsFraction is true then
                    -- if we already replaced it with a built-in fraction, just increment the counter
                    if replacedWithGlyphs is true then
                         set theCounter to theCounter + 1
                    else -- If this is a fraction, and we haven't already replaced with a built in fraction
                         -- Handle the slash
                         tell character (slashCharIndex - extraOffset)
                              set contents to ASCII character 218 --virgule
                              set kerning value to -15
                         end tell
                         -- Handle the first character before the slash
                         tell character (slashCharIndex - extraOffset - 1)
                              set leadingSize to leading
                              if leadingSize = "auto" then
                                   set mySize to point size
                                   set myAutoPct to auto leading
                                   set leadingSize to mySize * (myAutoPct * 0.01)
                              end if
                              set fontSize to point size * 0.5
                              set point size to fontSize
                              set baseShift to leadingSize * 0.3
                              set baseline shift to baseShift
                              if contents is in {"3", "1", "5"} then
                                   set kerning value to -30
                              else
                                   set kerning value to -15
                              end if
                         end tell
                         -- Handle the first character after the slash
                         tell character (slashCharIndex - extraOffset + 1)
                              set point size to fontSize
                              if contents is in {"1"} then
                                   set kerning value to -10
                              end if
                         end tell
                         -- Handle the second character before the slash
                         tell character (slashCharIndex - extraOffset - 2)
                              set point size to fontSize
                              set baseline shift to baseShift
                              set kerning value to -5
                         end tell
                         -- Handle the second character after the slash
                         tell character (slashCharIndex - extraOffset + 2)
                              set point size to fontSize
                         end tell
                         --beep
                         set theCounter to theCounter + 1
                    end if
               end if
          end repeat
          beep 2
          tell me to display dialog "Scan complete." & return & theCounter & ¬
               " fractions formatted." buttons {"OK"} default button 1
     end tell
end tell
VerifyIsFraction takes the characters before and after a slash and
determines whether this meets the criteria for a fraction
on VerifyIsFraction(wordBefore, wordAfter)
     tell application "InDesign 2.0.1"
          -- we only support fractions with up to 2 digits for the numerator/demoninator
          if (count of characters of wordBefore) > 2 or (count of characters of wordAfter) > 2 then return false
          -- To qualify as a fraction, all the charactere of the numerator/demoninator must be numbers
          set characterList to every character of wordBefore & every character of wordAfter
          repeat with oneCharacter in characterList
               if oneCharacter is not in {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"} then return false
          end repeat
          -- if we got this far, then it all checks out
          return true
     end tell
end VerifyIsFraction
HandleUseFractionGlyphs takes the characters before and after a slash and
if they match 1/4, 1/2 or 3/4, then they are replaced by the unicode value
for the appropriate glyph
on HandleUseFractionGlyphs(wordBefore, wordAfter)
     tell application "InDesign 2.0.1"
          if useFractionGlyphs is "normal" then
               repeat with oneFractionMap in fractionGlyphMap
                    if contents of wordBefore is item 1 of item 1 of oneFractionMap and contents of wordAfter is item -1 of item 1 of oneFractionMap then
                         tell me to HandleOneGlyph(wordBefore, wordAfter, "<" & item 2 of oneFractionMap & ">")
                         return true
                    end if
               end repeat
          end if
          return false
     end tell
end HandleUseFractionGlyphs
HandleOneGlyph is called from HandleUseFractionGlyphs. It takes the
characters before and after a slash and
a unicode value for the replacement glyph.
It replaces thefraction with the unicode value
and updates the extraOffset property
on HandleOneGlyph(wordBefore, wordAfter, unicodeChar)
     tell application "InDesign 2.0.1"
          set shouldReplace to true
          set theParent to parent of wordBefore
          set wordBeforeIndex to index of wordBefore
          set wordAfterIndex to index of wordAfter
          set contents of text from character wordBeforeIndex to character wordAfterIndex of theParent to unicodeChar
          set extraOffset to extraOffset + 2
     end tell
end HandleOneGlyph

I edited the topic to eliminate the bug discussed here:
Dave Saunders ""Make fraction" script" 5/11/03 4:32am
I've also elevated the status of this topic so that it won't be discarded and it will sort to the top (or near the top) of the archive.
Dave

Similar Messages

  • IDCS6 - How do I create tables with large whole numbers and small fractions?

    I have a lot of engineering data, dimensions, etc, to enter into an existing IDCS6 Table. I need whole numbers to display full size, but fractions to be small size. I know I can use Open Type and select the Fractions option for each individual fraction, but that would take forever and give me a roaring headache.
    How do I create a style (or whatever) that will allow me to just type in the numbers and have them automatically apply small formatting to the fraction portion of the number whenever it sees a "/"?
    Along a similar line, I was trying to copy table data from a PDF document from Acrobat X Pro and paste that into an IDCS6 table, so each cell is populated by the appropriate cell data from the PDF file, but didn't have any success. That would really save me a lot of time, because I have many complete tables in PDF format. The data is not protected in the PDF, but I'm having a hard time figuring out how to bring it over to IDCS6.
    On a Mac, OSX 10.8.5.
    Thanks,
    Lou

    There are a number of ways to do it, but I make fractions using Dan Rodney's excellent (and free) Proper Fraction script. After it's installed; assign it a keyboard shortcut. Then type your numerator/denominator, select it, and invoke the script. With just a couple keystrokes, you've got a perfectly formatted fraction.
    As for the PDF tables, I'd try exporting the host file to RTF and copy/pasting from there. In case you're unaware, to paste values into InDesign table cells, the number of (pre-existing), cells/rows/columns in InDesign must match those copied (from) exactly, and must be pre-selected when the Paste command is executed. So...
    1. Set up empty destination table in InDesign which matches the source structure.
    2. Select source cells and Copy.
    3. In Indesign, select exact same (x, y, qty), range of destination cells and Paste.

  • Equation not showing properly in word 2013

    Hello,
    I have a problem with my MS Word 2013. It seems that when i want to use the equation, under the design ribbon at the equation tools, there's few options for the structures (eg: fractions, script etc.). If you can see there's drop down button for each of
    the options. For instance if you click the fraction drop down, it will have a few kind of fraction to choose but in my case when i click the drop down button, nothing is shown. The slot for each type is there but it does not show the picture so it is hard
    for me to use it. But when I use MS PowerPoint 2013, it seems to be working. It is really weird.
    I tried a few things to solve this but nothing solve this problem for me. Here are a few things that I already tried:
    Repair MS Office 2013 in the installation setup
    Uninstall MS Office 2013 and re-install
    Install Office Compatibility Pack
    None of the above solve the problem. Can anybody help me solve this please? I have no idea what to do anymore.
    See attached picture to see what I explained about and understand my problem better.

    Hi,
    If the Building Blocks template file that comes with Microsoft Word is corrupt, it may cause Equations to not work correctly. To resolve this problem, move the damaged copy of the Building Blocks template out of the user data folder. After you do this,
    Word creates a new Building  Blocks template by using the default content. 
    To do this, please follow:
    1. Exit all Office programs.
    2. Open the file explorer and navigate to:
    C:\Users\%username%\AppData\Roaming\Microsoft\Document Building Blocks\1033\15
    Note: 1033 is the locale identification (LCID) number for English U.S version of Microsoft Office. For a list of locale ID numbers, see
    Locale identification numbers for language-specific files.
    3. Rename the Built-In Building Blocks.dotx
    file to Built-In Building Blocks.old.
    4. Then, navigate to
    C:\Program Files\Microsoft Office\Office15\Document Parts\1033\15
    5. Rename the Built-In Building Blocks.dotx file to
    Built-In Building Blocks.old.
    6. Close both folders.
    7. Now, click Start, click Run, type
    appwiz.cpl, and the click OK.
    8. In the Currently installed programs list, right-click the version of the Office that is installed on the computer, click
    Change, click Repair, and then click Continue.
    9. Restart Word to check the result.
    Regards,
    Steve Fan
    TechNet Community Support
    It's recommended to download and install
    Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
    programs.

  • Automate fractions using a script.

    Hi,
    i was looking to automate the layout of fraction with a script.
    The script has to change 1/200, 1/20, 1/33 to fractions:
    When we do it manually, we insert an anchored textframe which contains a 2 row/1 column table.
    We then copy the numbers in the cells.
    I found the script below in a previous discussion.
    But i get an error 30480 on line 14.
    I'm a bit of a dummy when it comes to scripting, so can anyone tell me what's wrong with it?
    var theDoc = app.activeDocument;
    var myTableStyle = "tabelbreuk"; //MUST  be set!!
    var myCellStyle = "celbreuk"//MUST  be set!!
    var myObjectStyle = "TF-breuk"//MUST  be set!!
    app.findGrepPreferences = null; 
    app.findGrepPreferences.findWhat = "\\d+/\\d+";   //should find all occurrences of number(s) + / + numbers(s)
    var searchResults = theDoc.findGrep(); 
    for(var i = searchResults.length -1; i >= 0; i--)
    var foundFraction = searchResults[i];
    var newTextFrame = foundFraction.insertionPoints[0].textFrames.add({geometricBounds: [0,0,foundFraction.leading, foundFraction.parentTextFrames[0].geometricBounds[3] - foundFraction.parentTextFrames[0].geometricBounds[1]], appliedObjectStyle:theDoc.objectStyles.itemByName(myObjectStyle)});
    var tmpDest = foundFraction.move(LocationOptions.AT_BEGINNING, newTextFrame);
    var fractionTable= tmpDest.convertToTable('\r', '/', 1);
    fractionTable.appliedTableStyle = "tabelbreuk"
    setTableWidth(fractionTable);
    newTextFrame.fit(FitOptions.FRAME_TO_CONTENT);
    function setTableWidth(fractionTable){
        var widthArray = [];
            var allCells = fractionTable.cells;
       for(var c = 0; c < fractionTable.cells.length; c++){
            var aCell = fractionTable.cells[c];
                    aCell.appliedCellStyle = "celbreuk"
    widthArray.push((aCell.texts[0].endHorizontalOffset - aCell.texts[0].horizontalOffset) + aCell.leftInset + aCell.rightInset)
    widthArray.sort(Numsort);
    fractionTable.width = widthArray[widthArray.length-1]
    function Numsort(a,b){return a - b}
    thx

    Hi Ariel,
    thank you for your answer.
    But the fractions made with the openType feature are not the kind of fraction we need.
    Our fractions have to look like this:
    I don't think this is possible by changing the opentype settings.
    regards
    Arne

  • Script putting fractions instead of ABCDEF

    Running Acrobat Standard X.
    I have a little bit of Javascript which is pulling the initials from a full name in one form field and placing the persons initials into a textbox throughout my document.
    My script works very well, except if there is a capital A,B,C,D,E, or F. In those instances it puts 1/2 for A, 1/4 for B, 3/4 for C, 1 for D, 2 for E, and 3 for F.
    Jane Doe would become J.1. (The 1,2,and 3 are shown as exponents). If I replace event.value in my script with an app.alert everything shows correctly in the message box.
    Can someone please help, starting to pull my hair out. Below is the script. NameC2 is my Full Name field. Thanks
    function Intials(cString) {
    return cString.replace(/\W*(\w)\w*/g, '$1.').toUpperCase()
    } // end Initials function;
    var cName = "NameC2";
    event.value = "";
    var oName = this.getField(cName);
    if(oName ==  null) {
    app.alert("Error accessing field \"" + cName + "\"", 0, 0);
    } else {
    event.value = Intials(oName.value); // set field value;

    That's odd... What happens if you run this code from the JS console:
    Intials("Jane Doe");
    I'm getting "J.D." as the result...
    On Wed, Oct 22, 2014 at 8:52 PM, mach1rcode <[email protected]>

  • Hel with modifying cs5/6 script...create anchored frames from text

    hello
    I have one great time saver script for cs5 for create anchored frames from text tagged with/or charachter style/paragraph style. This work in cs6 but have some "bugs" for me. Script need to be compatible with InDesign CS6.
    1. script in original (look bellow) create text frame which is fitted to lenght of the text. I make change and change 466 line:
    AnchoredTextFrame.fit(FitOptions.FRAME_TO_CONTENT);
    now frame is wide as I write in check box, good. But frame not resize to lenght of the text so I add after above lines 466-470:
        var FO = FitOptions.FRAME_TO_CONTENT,
        tfs = ([]).concat.apply([], app.activeDocument.stories.everyItem().textContainers),
        t, i = tfs.length;
    while( i-- ) (t=tfs[i]).overflows && ( t.locked || t.fit(FO) );
    now all is ok but is here better way to make this to work? Simply, i want to spec text frame width in dialog box, frame will resize only verticaly in direction to amount text in frame. I dont want any overset text.
    2. One "bug". For some reason script alter paragraph style of other text which is not subject to be cutted in anchored frame.
    How to resolve this?
    #targetengine "session"
              Automating anchored object creation
              Version: 2
        Script by Thomas Silkjær
              http://indesigning.net/
    Модификация Б. Кащеев, www.adobeindesign.ru
    Скрипт предназначен для создания привязанных фреймов из текста, отформатированного
    каким-либо абзацным или символьным стилем. Эти стили задаются пользователем в диалоговом
    окне скрита. Там же необходимо задать объектный стиль для привязанного фрейма, в котором
    пользователь должен заранее задать оформление и параметры привязки. Далее необходимо
    указать ширину привязанного фрейма, а его высота будет рассчитана автоматически исходя из
    объема текста. При вводе дробных значений ширины привязанного фрейма в качестве
    разделителя целой и дробной части следует использовать не запятую, а точку, следуя западным
    стандартам разработчиков программы  Adobe InDesign. Первоначально идея и скрипт по созданию
    привязанных фреймов принадлежит Thomas Silkjær для версии ID CS4. C появлением версий CS5
    и CS5.5 скрипт перестал в них выполняться, да и в версии CS4 не всегда корректно работал.
    Анализируя недочеты скрипта в данной его версии были исправлены ошибки и внесены
    функциональные дополнения исходя из понимания задачи автором модификации. Добавлена
    возможность выбора стилей, если они они находятся в группах (папках), возможность выбора
    единиц измерения из выпадающего списка, изменены GREP-выражения для поиска текста,
    область действия скрипта ограничена материалом (Story), а не документом.
    var myMeasureUnits = ["Milimeters","Centimeters","Points","Inches", "Picas", "Ciceros"];
    var selectUnits;
    var pStyleIndex = null;
    var cStyleIndex = null;
    var oStyleIndex = null;
    var myH, myW;
    function main()
        app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
              if (app.documents.length == 0)
                        alert ("Document is not open. Open document first");
                        return;
        var myParaStyleList = myGetParagraphStyleNames();
        var myCharStyleList = myGetCharacterStyleNames();
        var myObjStyleList = myGetObjStyleNames();
        if(app.selection.length && app.selection[0].hasOwnProperty("baseline"))
            var myStory = app.selection[0].parentStory;
            var myWin = myDialog(myParaStyleList, myCharStyleList, myObjStyleList);
            if ( myWin.show()  == 1 )
                var myDocument = app.activeDocument
                with (myDocument.viewPreferences){
                    // Сохраняем старые единицы измерения в переменных myOldXUnits, myOldYUnits
                    var myOldXUnits = horizontalMeasurementUnits;
                    var myOldYUnits = verticalMeasurementUnits;
                    // Устанавливаем новые единицы измерения
                    switch(selectUnits)
                        case 0:                   
                            horizontalMeasurementUnits = MeasurementUnits.millimeters;
                            verticalMeasurementUnits = MeasurementUnits.millimeters;
                            break;
                        case 1:
                            horizontalMeasurementUnits = MeasurementUnits.centimeters;
                            verticalMeasurementUnits = MeasurementUnits.centimeters;
                            break;
                        case 2:
                            horizontalMeasurementUnits = MeasurementUnits.points;
                            verticalMeasurementUnits = MeasurementUnits.points;
                            break;                  
                        case 3:
                            horizontalMeasurementUnits = MeasurementUnits.inches;
                            verticalMeasurementUnits = MeasurementUnits.inches;
                            break;
                        case 4:
                            horizontalMeasurementUnits = MeasurementUnits.picas;
                            verticalMeasurementUnits = MeasurementUnits.picas;
                            break;
                        case 5:
                            horizontalMeasurementUnits = MeasurementUnits.ciceros;
                            verticalMeasurementUnits = MeasurementUnits.ciceros;
                            break;
                        default: break;
                    } // switch
                if(cStyleIndex == null)
                {/*поиск по стилю абзаца*/
                    var pStyle = getParagraphStyleByName(myParaStyleList[pStyleIndex]);
                    resetGREPfindChange();
                    app.findGrepPreferences.appliedParagraphStyle = pStyle;
                    app.findGrepPreferences.findWhat = NothingEnum.nothing;
                else //
                    // поиск по стилю символов
                    var cStyle = getCharacterStyleByName(myCharStyleList[cStyleIndex]);
                    resetGREPfindChange();
                    app.findGrepPreferences.appliedCharacterStyle = cStyle;
                    //app.findGrepPreferences.findWhat = ".+";
                    app.findGrepPreferences.findWhat = NothingEnum.nothing;
                var foundItems = myStory.findGrep();
                if(!foundItems.length) {
                    alert("Found the text to be placed in a linked frames"); exit();
                //alert(foundItems.length);
                //alert (foundItems[0].contents)
                //alert (foundItems[1].contents)
                var oStyle = getObjectStyleByName(myObjStyleList[oStyleIndex]);
                for(var i = foundItems.length-1; i >=0; i--)
                    //alert (foundItems[i].contents)
                    createAnchoredFrame(foundItems[i], oStyle);
                with (myDocument.viewPreferences){
                    try{
                        horizontalMeasurementUnits = myOldXUnits;
                        verticalMeasurementUnits = myOldYUnits;
                    catch(myError){
                        alert("Unable to return to the original unit");
            } //if ( myWin.show()
        } //if(app.selection.length && app.selection[0].hasOwnProperty("baseline"))
        else
            alert("Place the cursor in the text and run the script again")
    } // main
    function myGetParagraphStyleNames()
    // Получаем список стилей абзацев
              var curGroup;
              var curGroupName;
              var curNameInGroup;
              var myParagraphStyleNames = app.activeDocument.paragraphStyles.everyItem().name;
              myParagraphStyleNames.shift(); // удаление стиля No Paragraph Style
              var paraGroups = app.activeDocument.paragraphStyleGroups;
              var paraGroupsLen = paraGroups.length;
              for(var i = 0; i < paraGroupsLen; i++) {
                        curGroup = paraGroups[i];
                        curGroupName = paraGroups[i].name;
                        curGroupStyleNames = curGroup.paragraphStyles.everyItem().name
                        for (j=0; j< curGroupStyleNames.length; j++)
                                  curNameInGroup = curGroupName +":"+ curGroupStyleNames[j];
                                  myParagraphStyleNames.push(curNameInGroup);
              return myParagraphStyleNames;
    function myGetCharacterStyleNames()
    // Получаем список символьных стилей
              var curGroup;
              var curGroupName;
              var curNameInGroup;
              var myCharacterStyleNames = app.activeDocument.characterStyles.everyItem().name;
              myCharacterStyleNames.shift(); // удаление стиля None
              var charGroups = app.activeDocument.characterStyleGroups;
              var charStyleGroupLen = charGroups.length;
              for(var i=0; i < charStyleGroupLen; i++)
                        curGroup = charGroups[i];
                        curGroupName = charGroups[i].name;
                        curGroupStyleNames = curGroup.characterStyles.everyItem().name;
                        for (j=0; j< curGroupStyleNames.length; j++)
                                  curNameInGroup = curGroupName +":"+ curGroupStyleNames[j];
                                  myCharacterStyleNames.push(curNameInGroup);
              } //for
              return myCharacterStyleNames;
    } // fnc
    function myGetObjStyleNames()
        var curGroup;
              var curGroupName;
              var curNameInGroup;
              var myObjStyleNames = app.activeDocument.objectStyles.everyItem().name;
        myObjStyleNames.shift();
        var objGroups = app.activeDocument.objectStyleGroups;
        var objStyleGroupLen = objGroups.length;
        for(var i=0; i < objStyleGroupLen; i++)
                        curGroup = objGroups[i];
                        curGroupName = objGroups[i].name;
                        curGroupStyleNames = curGroup.objectStyles.everyItem().name;
                        for (var j=0; j< curGroupStyleNames.length; j++)
                                  curNameInGroup = curGroupName +":"+ curGroupStyleNames[j];
                                  myObjStyleNames.push(curNameInGroup);
              } //for
        return myObjStyleNames;
    } // fnc
    function myDialog(myParaStyleList, myCharStyleList, myObjStyleList)
        var myDialog = new Window('dialog', 'Create anchored text frames');
        this.windowRef = myDialog;
              myDialog.orientation = "column";
        myDialog.alignChildren = ['fill', 'fill'];
        // добавляем панель 1 с элементами управления
        myDialog.Pnl1 = myDialog.add("panel", undefined, "Move the text in linked frames");
              myDialog.Pnl1.orientation = "column";
        myDialog.Pnl1.alignChildren = "left";
        myDialog.Pnl1.pstyle = myDialog.Pnl1.add('checkbox', undefined, "Text with the paragraph style");
        myDialog.Pnl1.pstyle.value = false;
        myDialog.Pnl1.dropdownParaStyle = myDialog.Pnl1.add("dropdownlist", undefined, myParaStyleList);
        myDialog.Pnl1.dropdownParaStyle.title = "Select the paragraph style ";
        myDialog.Pnl1.dropdownParaStyle.minimumSize = [250,20];
        myDialog.Pnl1.dropdownParaStyle.enabled = false;
        myDialog.Pnl1.dropdownParaStyle.selection = 0;
        if(myCharStyleList.length)
            myDialog.Pnl1.сstyle = myDialog.Pnl1.add('checkbox', undefined, "Text with character style");
            myDialog.Pnl1.сstyle.value = false;
            myDialog.Pnl1.dropdownCharStyle = myDialog.Pnl1.add("dropdownlist", undefined, myCharStyleList );
            myDialog.Pnl1.dropdownCharStyle.title = "Select the character style ";
            myDialog.Pnl1.dropdownCharStyle.minimumSize = [250,20];
            myDialog.Pnl1.dropdownCharStyle.enabled = false;
            myDialog.Pnl1.dropdownCharStyle.selection = 0;
            myDialog.Pnl1.pstyle.onClick = function()
                if(this.value) {
                    myDialog.Pnl1.dropdownParaStyle.enabled = true;
                    myDialog.Pnl1.dropdownCharStyle.enabled = false;
                    myDialog.Pnl1.сstyle.value = false;
                else
                    myDialog.Pnl1.dropdownParaStyle.enabled = false;
                    myDialog.Pnl1.dropdownCharStyle.enabled = true ;
                    myDialog.Pnl1.сstyle.value = true;
            }// fnc
            myDialog.Pnl1.сstyle.onClick = function()
                if(this.value)
                    myDialog.Pnl1.dropdownCharStyle.enabled = true;
                    myDialog.Pnl1.dropdownParaStyle.enabled = false;
                    myDialog.Pnl1.pstyle.value = false;
                else
                    myDialog.Pnl1.dropdownCharStyle.enabled = false;
                    myDialog.Pnl1.dropdownParaStyle.enabled = true ;
                    myDialog.Pnl1.pstyle.value = true;
            }// fnc
        }//  if(myCharStyleList.length)
        else
            myDialog.Pnl1.pstyle.onClick = function()
                if(this.value)
                    myDialog.Pnl1.dropdownParaStyle.enabled = true;
                else
                    myDialog.Pnl1.dropdownParaStyle.enabled = false;
    //  Вторая панель
        myDialog.Pnl2 = myDialog.add("panel", undefined, "Parameters of the text frame");
              myDialog.Pnl2.orientation = "column";
        myDialog.Pnl2.alignChildren = "left"; 
        myDialog.Pnl2.dropdownObjStyle = myDialog.Pnl2.add("dropdownlist", undefined, myObjStyleList );
        myDialog.Pnl2.dropdownObjStyle.title = "Select an object style ";
        myDialog.Pnl2.dropdownObjStyle.minimumSize = [250,20];
        myDialog.Pnl2.dropdownObjStyle.enabled = true;
        myDialog.Pnl2.dropdownObjStyle.selection = 0;
        myDialog.Pnl2.Group1 = myDialog.Pnl2.add( "group" );
        myDialog.Pnl2.Group1.stxt1 = myDialog.Pnl2.Group1.add("statictext", undefined, "The width of the text frame");
        myDialog.Pnl2.Group1.etxt = myDialog.Pnl2.Group1.add("edittext", undefined, "40");
        myDialog.Pnl2.Group1.etxt.characters = 10;
        myDialog.Pnl2.Group1.dropdownMeasurementUnits = myDialog.Pnl2.Group1.add("dropdownlist", undefined, myMeasureUnits );
        myDialog.Pnl2.Group1.dropdownMeasurementUnits.maximumSize = [80,20];
        myDialog.Pnl2.Group1.dropdownMeasurementUnits.selection = 0;
        //myDialog.Pnl2.Group1.stxt2 = myDialog.Pnl2.Group1.add("statictext", undefined, "mm ");
        /*myDialog.Pnl2.Group2 = myDialog.Pnl2.add( "group" );
        myDialog.Pnl2.Group2.stxt1 = myDialog.Pnl2.Group2.add("statictext", undefined, "Высота привязанного фрейма  ");
        myDialog.Pnl2.Group2.etxt = myDialog.Pnl2.Group2.add("edittext", undefined, "30");
        myDialog.Pnl2.Group2.etxt.characters = 10;
        //myDialog.Pnl2.Group2.stxt2 = myDialog.Pnl2.Group2.add("statictext", undefined, "mm ");*/
        myDialog.Pnl2.stxt1 = myDialog.Pnl2.add("statictext", undefined, "Attention! When you enter fractional values as");
        myDialog.Pnl2.stxt2 = myDialog.Pnl2.add("statictext", undefined, "the decimal part, should be used");
        myDialog.Pnl2.stxt3 = myDialog.Pnl2.add("statictext", undefined, "point, not comma.");
        myDialog.Pnl2.stxt1.graphics.foregroundColor = myDialog.Pnl2.stxt1.graphics.newPen (myDialog.Pnl2.stxt1.graphics.PenType.SOLID_COLOR, [1, 0, 0, 1], 1);
        myDialog.Pnl2.stxt2.graphics.foregroundColor = myDialog.Pnl2.stxt2.graphics.newPen (myDialog.Pnl2.stxt2.graphics.PenType.SOLID_COLOR, [1, 0, 0, 1], 1);
        myDialog.Pnl2.stxt3.graphics.foregroundColor = myDialog.Pnl2.stxt3.graphics.newPen (myDialog.Pnl2.stxt3.graphics.PenType.SOLID_COLOR, [1, 0, 0, 1], 1);
        // --------- кнопки --------------
        var myGroup = myDialog.add( "group" );
        myGroup.orientation = 'row';
        myGroup.alignChildren = ['fill', 'fill']; 
        myGroup.okButton = myGroup.add( "button", undefined, "OK" );
        myGroup.okButton.onClick = function()
            if(myCharStyleList.length) // есть символьные стили в документе
                if(!myDialog.Pnl1.pstyle.value && !myDialog.Pnl1.сstyle.value)
                    alert("You must select a paragraph style or character style");
                    return ;
                if(myDialog.Pnl1.pstyle.value) { pStyleIndex= myDialog.Pnl1.dropdownParaStyle.selection.index; cStyleIndex = null;}
                else {cStyleIndex = myDialog.Pnl1.dropdownCharStyle.selection.index; pStyleIndex=null; }
            else // нет символьных стилей
                if(!myDialog.Pnl1.pstyle.value)
                    alert("You must select a paragraph style");
                    return;
                pStyleIndex = myDialog.Pnl1.dropdownParaStyle.selection.index;
                cStyleIndex = null;
            } //  else // нет символьных стилей
           oStyleIndex = myDialog.Pnl2.dropdownObjStyle.selection.index;
           if(myDialog.Pnl2.Group1.etxt.text =="")
               alert("Enter the width of the text frame");
               return;
            else
                myW = myDialog.Pnl2.Group1.etxt.text;
                myH = myW;
            /*if(myDialog.Pnl2.Group2.etxt.text == "")
                alert("Введите высоту привязанного фрейма");
                return;
            else
                myH = myDialog.Pnl2.Group2.etxt.text;
           selectUnits = myDialog.Pnl2.Group1.dropdownMeasurementUnits.selection.index;
            myDialog= this.window.close( 1 );
        myGroup.cancelButton = myGroup.add( "button", undefined, "Cancel" );
        myGroup.cancelButton.onClick = function() { myDialog = this.window.close( 0 ); }
        myDialog.Pnl3 = myDialog.add("panel", undefined, "");
        myDialog.Pnl2.alignChildren = "left";
        myDialog.Pnl3.stxt = myDialog.Pnl3.add("statictext", undefined, "(с) Thomas Silkjær        (с) Борис Кащеев, www.adobeindesign.ru ");
        return myDialog;   
    } // fnc
    function getParagraphStyleByName(myStyleName)
              var DocParaStyles = app.activeDocument.paragraphStyles;
              var DocParaGroups = app.activeDocument.paragraphStyleGroups;
              myStyleName = ""+myStyleName;
              var pos = myStyleName.indexOf(":")
              if(pos == -1)
              // стиль не в группе
              var myStyle = DocParaStyles.item(myStyleName);
                        return myStyle;
              } //if
              else
                        var myGroupAndStyleNames = myStyleName.split(":")
                        var myGroupName = myGroupAndStyleNames[0];
                        var myStyleName = myGroupAndStyleNames[1];
                        var myGroup =DocParaGroups.item(myGroupName);
                        return myGroup.paragraphStyles.item(myStyleName);
    } // fnc
    function getCharacterStyleByName(myStyleName)
              var DocChStyles = app.activeDocument.characterStyles;
              var DocCharGroups = app.activeDocument.characterStyleGroups;
              // Есть ли в имени полученного символьного стиля двоеточие? (двоеточие разделяет название группы стилей и название стиля)
              myStyleName = String (myStyleName);
              var pos = myStyleName.indexOf(":");
              if(pos == -1)
              // стиль не в группе
                        return DocChStyles.item(myStyleName)
              } //if...
              else
              {// Стиль в какой-то группе
                        var myGroupAndStyleNames = myStyleName.split(":")
                        var myGroupName = myGroupAndStyleNames[0];
                        var myStyleName = myGroupAndStyleNames[1];
                        var myGroup = DocCharGroups.item(myGroupName);
                        return myGroup.characterStyles.itemByName(myStyleName);
              } // else
    } // fnc()+
    function getObjectStyleByName(myStyleName)
        var DocObjStyles = app.activeDocument.objectStyles;
        var DocCObjGroups = app.activeDocument.objectStyleGroups;
        myStyleName = String (myStyleName);
        var pos = myStyleName.indexOf(":");
        if(pos == -1)
              // стиль не в группе
                        return DocObjStyles.item(myStyleName);
              } //if...
        var myGroupAndStyleNames = myStyleName.split(":");
        var myGroupName = myGroupAndStyleNames[0];
        var myStyleName = myGroupAndStyleNames[1];
        var myGroup = DocObjGroups.item(myGroupName);
                        return myGroup.objectStyles.itemByName(myStyleName);
    } //fnc
    function resetGREPfindChange()
        app.changeGrepPreferences = NothingEnum.nothing;
        app.findGrepPreferences = NothingEnum.nothing;
        app.findChangeGrepOptions.includeFootnotes = false;
        app.findChangeGrepOptions.includeHiddenLayers = false;
        app.findChangeGrepOptions.includeLockedLayersForFind = false;
        app.findChangeGrepOptions.includeLockedStoriesForFind = false;
        app.findChangeGrepOptions.includeMasterPages = false;
    function createAnchoredFrame(myText, myObjStyle)
        var myGeometricBounds = [];
        var myInsertionPoint = myText.insertionPoints[0];
        myInsertionPoint.select;
        var AnchoredTextFrame = myInsertionPoint.textFrames.add();
        myGeometricBounds = AnchoredTextFrame.geometricBounds;
        //alert(parseFloat(myH) + " " + parseFloat(myW))
        myGeometricBounds[2] = myGeometricBounds[0] + parseFloat(myH);
        myGeometricBounds[3] = myGeometricBounds[1] + parseFloat(myW);
        AnchoredTextFrame.geometricBounds = myGeometricBounds;
        AnchoredTextFrame.anchoredObjectSettings.anchoredPosition = AnchorPosition.anchored;
        myText.move(LocationOptions.before, AnchoredTextFrame.texts[0]);
        AnchoredTextFrame.appliedObjectStyle = myObjStyle;
        AnchoredTextFrame.fit(FitOptions.CONTENT_TO_FRAME);
        var FO = FitOptions.FRAME_TO_CONTENT,
        tfs = ([]).concat.apply([], app.activeDocument.stories.everyItem().textContainers),
        t, i = tfs.length;
    while( i-- ) (t=tfs[i]).overflows && ( t.locked || t.fit(FO) );
    } //fnc
    main();

    Hi Cari,
    I did create a new user account (admin level) and InDesign works like a charm.
    When I went back to the other account, plug-ins gone, I deleted the prefs and caches, restarted and still everything is crashing as before.
    At least I am working on one account and I will contiue to troubleshoot on the other account. And at some point either the new account will crash or the old account will work and I will go from there.
    Thanks for the info about Mac remembering info. Always trying to be helpful these Macs.
    And thanks for getting at least into a workable space!!! I am supremely grateful!

  • Execution time issues with SU01 demo script

    Having worked with Scripting in a Box for a while now I wanted to try out the examples there. I read FM: SO_USER_LIST_READ or another one explaining why my attempt to narrow the returned users failed (Craig, did you find out why the functionality was removed?) and Re: Issue with "Scripting in a Box" seeing that  Harry had the same problems with only ~200 users in his system. However, Craig's original post states he successfully managed with over 400 users. I'm a bit confused...
    I included some simple timing stuff and found out that processing of one user in the loop takes about 1.7 seconds - little surprise then that every script times out. This seems to be due to the additional calls to GetStatus() and GetValid() - by commenting them out I get the whole list rather quickly.
    Unfortunately commenting them out also means no nice icons for 'Status' and 'Valid', which is not desired. I probably could create a Z FM to deliver me the userlist with these two fields already added (which would save on rfc-calls, assuming the operation is much quicker on the server directly), but I hoped to get a solution based purely on PHP, not own ABAP coding (being aware that Craig also used a Z FM anyway, but still...)
    I'm a bit unsure now how easy it is to actually create useful frontends in PHP, with such long execution times. I assume this will happen in other occasions as well, not only for user lists. Is there an alternative? Or a general way to do those things quicker?
    :Frederic:

    Craig: you say it's easy to go from 1.7 seconds per user lookup down to a small fraction of it? Then apparently I'm lacking these skills. Could you please give me a hint what should be done there?
    I though about creating a Z function, but having to write custom wrappers - possibly for about any transaction in this style - I wanted to avoid.
    Bala: the two functions only take one user as input, not a list. So w/o modifying the ABAP side I can't feed the whole list in there. I wonder how much it would improve the result time anyway, so perhaps I'm trying it. It's just not a solution I'd prefer.
    Paging is a good idea, the actual call to get the whole userlist is quite quick. Having like 20 users displayed at a time is manageable - still slow, but the script won't timeout anymore. I think I'll implement this today.
    About AJAX: yes, I want to play around a bit with AJAX, however having the two columns valid and status removed and the information only displayed on mouseover etc is a bit like cheating. And 1.7+ seconds waiting for a hoover info is too long. So I'd like to optimize on the rfc-calling side primarily.
    Craig: surely it was just a demo, and I'm just trying to get it to work for understanding it
    :Frederic:

  • JAVA CODE Restricting users from entering Fractional numbers in Data forms

    Hi,
    is there anyone who can help me with the Java Script code of ValidateData.js file?? I am very novice in scripting and find it very difficult to write a proper javascript code to restrict the users from entering fractional numbers to HEADCOUNT cell. I would very much appreciate if i get some help from anyone out there.
    Users should be able to only enter whole numbers to the cells for Headcount entry.
    Kindly give me the layout of the script to be used. Has anyone out there ever done anything like this??
    Looking forward for a help.
    Thanks.

    Hi,
    I think customCellEnterPre and customCellValidatePre is the function you'd be using
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apas02s01.html
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apas02s03.html
    http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/apa.html
    You can refer to SampleValidateData.js that's within Planning deployment custom js folder for further reference and sample usage.
    Cheers,
    Alp

  • Can anyone explain how the JS script listener handles text items?

    i have created a script that asks for user input box and then uses the string to create a text item on the document. I've got the whole thing working. The only thing is that the text item creates the first 10 letters at 10 points, then the rest at around 3 points. this problem is rendering all the work i put into the script useless. Please help! i would like to know more about how the text item works.
    this is quite long, but it would be really great if anyone could point out how to make it so that the entire string is translated into 10 point artistic text. or point me somewhere where i can find that out. Thank you so much for any help you may be able to provide me with!
    function editText(variable){
        // =======================================================
    var idslct = charIDToTypeID( "slct" );
        var desc117 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref64 = new ActionReference();
            var idmoveTool = stringIDToTypeID( "moveTool" );
            ref64.putClass( idmoveTool );
        desc117.putReference( idnull, ref64 );
        var iddontRecord = stringIDToTypeID( "dontRecord" );
        desc117.putBoolean( iddontRecord, true );
        var idforceNotify = stringIDToTypeID( "forceNotify" );
        desc117.putBoolean( idforceNotify, true );
    executeAction( idslct, desc117, DialogModes.NO );
    // =======================================================
    var idsetd = charIDToTypeID( "setd" );
        var desc118 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref65 = new ActionReference();
            var idTxLr = charIDToTypeID( "TxLr" );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idTrgt = charIDToTypeID( "Trgt" );
            ref65.putEnumerated( idTxLr, idOrdn, idTrgt );
        desc118.putReference( idnull, ref65 );
        var idT = charIDToTypeID( "T   " );
            var desc119 = new ActionDescriptor();
            var idTxt = charIDToTypeID( "Txt " );
            desc119.putString( idTxt, variable );
            var idwarp = stringIDToTypeID( "warp" );
                var desc120 = new ActionDescriptor();
                var idwarpStyle = stringIDToTypeID( "warpStyle" );
                var idwarpStyle = stringIDToTypeID( "warpStyle" );
                var idwarpNone = stringIDToTypeID( "warpNone" );
                desc120.putEnumerated( idwarpStyle, idwarpStyle, idwarpNone );
                var idwarpValue = stringIDToTypeID( "warpValue" );
                desc120.putDouble( idwarpValue, 0.000000 );
                var idwarpPerspective = stringIDToTypeID( "warpPerspective" );
                desc120.putDouble( idwarpPerspective, 0.000000 );
                var idwarpPerspectiveOther = stringIDToTypeID( "warpPerspectiveOther" );
                desc120.putDouble( idwarpPerspectiveOther, 0.000000 );
                var idwarpRotate = stringIDToTypeID( "warpRotate" );
                var idOrnt = charIDToTypeID( "Ornt" );
                var idHrzn = charIDToTypeID( "Hrzn" );
                desc120.putEnumerated( idwarpRotate, idOrnt, idHrzn );
            var idwarp = stringIDToTypeID( "warp" );
            desc119.putObject( idwarp, idwarp, desc120 );
            var idtextGridding = stringIDToTypeID( "textGridding" );
            var idtextGridding = stringIDToTypeID( "textGridding" );
            var idNone = charIDToTypeID( "None" );
            desc119.putEnumerated( idtextGridding, idtextGridding, idNone );
            var idOrnt = charIDToTypeID( "Ornt" );
            var idOrnt = charIDToTypeID( "Ornt" );
            var idHrzn = charIDToTypeID( "Hrzn" );
            desc119.putEnumerated( idOrnt, idOrnt, idHrzn );
            var idAntA = charIDToTypeID( "AntA" );
            var idAnnt = charIDToTypeID( "Annt" );
            var idAnCr = charIDToTypeID( "AnCr" );
            desc119.putEnumerated( idAntA, idAnnt, idAnCr );
            var idbounds = stringIDToTypeID( "bounds" );
                var desc121 = new ActionDescriptor();
                var idLeft = charIDToTypeID( "Left" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc121.putUnitDouble( idLeft, idPnt, 0.000000 );
                var idTop = charIDToTypeID( "Top " );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc121.putUnitDouble( idTop, idPnt, -10.044067 );
                var idRght = charIDToTypeID( "Rght" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc121.putUnitDouble( idRght, idPnt, 24.923584 );
                var idBtom = charIDToTypeID( "Btom" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc121.putUnitDouble( idBtom, idPnt, 3.000000 );
            var idbounds = stringIDToTypeID( "bounds" );
            desc119.putObject( idbounds, idbounds, desc121 );
            var idboundingBox = stringIDToTypeID( "boundingBox" );
                var desc122 = new ActionDescriptor();
                var idLeft = charIDToTypeID( "Left" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc122.putUnitDouble( idLeft, idPnt, 1.062500 );
                var idTop = charIDToTypeID( "Top " );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc122.putUnitDouble( idTop, idPnt, -8.937515 );
                var idRght = charIDToTypeID( "Rght" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc122.putUnitDouble( idRght, idPnt, 24.273148 );
                var idBtom = charIDToTypeID( "Btom" );
                var idPnt = charIDToTypeID( "#Pnt" );
                desc122.putUnitDouble( idBtom, idPnt, 0.035721 );
            var idboundingBox = stringIDToTypeID( "boundingBox" );
            desc119.putObject( idboundingBox, idboundingBox, desc122 );
            var idtextShape = stringIDToTypeID( "textShape" );
                var list9 = new ActionList();
                    var desc123 = new ActionDescriptor();
                    var idTEXT = charIDToTypeID( "TEXT" );
                    var idTEXT = charIDToTypeID( "TEXT" );
                    var idPnt = charIDToTypeID( "Pnt " );
                    desc123.putEnumerated( idTEXT, idTEXT, idPnt );
                    var idOrnt = charIDToTypeID( "Ornt" );
                    var idOrnt = charIDToTypeID( "Ornt" );
                    var idHrzn = charIDToTypeID( "Hrzn" );
                    desc123.putEnumerated( idOrnt, idOrnt, idHrzn );
                    var idTrnf = charIDToTypeID( "Trnf" );
                        var desc124 = new ActionDescriptor();
                        var idxx = stringIDToTypeID( "xx" );
                        desc124.putDouble( idxx, 1.000000 );
                        var idxy = stringIDToTypeID( "xy" );
                        desc124.putDouble( idxy, 0.000000 );
                        var idyx = stringIDToTypeID( "yx" );
                        desc124.putDouble( idyx, 0.000000 );
                        var idyy = stringIDToTypeID( "yy" );
                        desc124.putDouble( idyy, 1.000000 );
                        var idtx = stringIDToTypeID( "tx" );
                        desc124.putDouble( idtx, 0.000000 );
                        var idty = stringIDToTypeID( "ty" );
                        desc124.putDouble( idty, 0.000000 );
                    var idTrnf = charIDToTypeID( "Trnf" );
                    desc123.putObject( idTrnf, idTrnf, desc124 );
                    var idrowCount = stringIDToTypeID( "rowCount" );
                    desc123.putInteger( idrowCount, 1 );
                    var idcolumnCount = stringIDToTypeID( "columnCount" );
                    desc123.putInteger( idcolumnCount, 1 );
                    var idrowMajorOrder = stringIDToTypeID( "rowMajorOrder" );
                    desc123.putBoolean( idrowMajorOrder, true );
                    var idrowGutter = stringIDToTypeID( "rowGutter" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc123.putUnitDouble( idrowGutter, idPnt, 0.000000 );
                    var idcolumnGutter = stringIDToTypeID( "columnGutter" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc123.putUnitDouble( idcolumnGutter, idPnt, 0.000000 );
                    var idSpcn = charIDToTypeID( "Spcn" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc123.putUnitDouble( idSpcn, idPnt, 0.000000 );
                    var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                    var idframeBaselineAlignment = stringIDToTypeID( "frameBaselineAlignment" );
                    var idalignByAscent = stringIDToTypeID( "alignByAscent" );
                    desc123.putEnumerated( idframeBaselineAlignment, idframeBaselineAlignment, idalignByAscent );
                    var idfirstBaselineMinimum = stringIDToTypeID( "firstBaselineMinimum" );
                    var idPnt = charIDToTypeID( "#Pnt" );
                    desc123.putUnitDouble( idfirstBaselineMinimum, idPnt, 0.000000 );
                    var idbase = stringIDToTypeID( "base" );
                        var desc125 = new ActionDescriptor();
                        var idHrzn = charIDToTypeID( "Hrzn" );
                        desc125.putDouble( idHrzn, 0.000000 );
                        var idVrtc = charIDToTypeID( "Vrtc" );
                        desc125.putDouble( idVrtc, 0.000000 );
                    var idPnt = charIDToTypeID( "Pnt " );
                    desc123.putObject( idbase, idPnt, desc125 );
                var idtextShape = stringIDToTypeID( "textShape" );
                list9.putObject( idtextShape, desc123 );
            desc119.putList( idtextShape, list9 );
            var idTxtt = charIDToTypeID( "Txtt" );
                var list10 = new ActionList();
                    var desc126 = new ActionDescriptor();
                    var idFrom = charIDToTypeID( "From" );
                    desc126.putInteger( idFrom, 0 );
                    var idT = charIDToTypeID( "T   " );
                    desc126.putInteger( idT, 6 );
                    var idTxtS = charIDToTypeID( "TxtS" );
                        var desc127 = new ActionDescriptor();
                        var idstyleSheetHasParent = stringIDToTypeID( "styleSheetHasParent" );
                        desc127.putBoolean( idstyleSheetHasParent, true );
                        var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                        desc127.putString( idfontPostScriptName, """MyriadPro-Regular""" );
                        var idFntN = charIDToTypeID( "FntN" );
                        desc127.putString( idFntN, """Myriad Pro""" );
                        var idFntS = charIDToTypeID( "FntS" );
                        desc127.putString( idFntS, """Regular""" );
                        var idScrp = charIDToTypeID( "Scrp" );
                        desc127.putInteger( idScrp, 0 );
                        var idFntT = charIDToTypeID( "FntT" );
                        desc127.putInteger( idFntT, 0 );
                        var idSz = charIDToTypeID( "Sz  " );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( idSz, idPnt, 12.000000 );
                        var idimpliedFontSize = stringIDToTypeID( "impliedFontSize" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( idimpliedFontSize, idPnt, 12.000000 );
                        var idHrzS = charIDToTypeID( "HrzS" );
                        desc127.putDouble( idHrzS, 100.000000 );
                        var idVrtS = charIDToTypeID( "VrtS" );
                        desc127.putDouble( idVrtS, 100.000000 );
                        var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                        desc127.putBoolean( idsyntheticBold, false );
                        var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                        desc127.putBoolean( idsyntheticItalic, false );
                        var idautoLeading = stringIDToTypeID( "autoLeading" );
                        desc127.putBoolean( idautoLeading, true );
                        var idTrck = charIDToTypeID( "Trck" );
                        desc127.putInteger( idTrck, 0 );
                        var idBsln = charIDToTypeID( "Bsln" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( idBsln, idPnt, 0.000000 );
                        var idimpliedBaselineShift = stringIDToTypeID( "impliedBaselineShift" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( idimpliedBaselineShift, idPnt, 0.000000 );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idAtKr = charIDToTypeID( "AtKr" );
                        var idmetricsKern = stringIDToTypeID( "metricsKern" );
                        desc127.putEnumerated( idAtKr, idAtKr, idmetricsKern );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idfontCaps = stringIDToTypeID( "fontCaps" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc127.putEnumerated( idfontCaps, idfontCaps, idNrml );
                        var iddigitSet = stringIDToTypeID( "digitSet" );
                        var iddigitSet = stringIDToTypeID( "digitSet" );
                        var iddefaultDigits = stringIDToTypeID( "defaultDigits" );
                        desc127.putEnumerated( iddigitSet, iddigitSet, iddefaultDigits );
                        var idkashidas = stringIDToTypeID( "kashidas" );
                        var idkashidas = stringIDToTypeID( "kashidas" );
                        var idkashidaDefault = stringIDToTypeID( "kashidaDefault" );
                        desc127.putEnumerated( idkashidas, idkashidas, idkashidaDefault );
                        var iddiacXOffset = stringIDToTypeID( "diacXOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( iddiacXOffset, idPnt, 0.000000 );
                        var iddiacYOffset = stringIDToTypeID( "diacYOffset" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( iddiacYOffset, idPnt, 0.000000 );
                        var idmarkYDistFromBaseline = stringIDToTypeID( "markYDistFromBaseline" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc127.putUnitDouble( idmarkYDistFromBaseline, idPnt, 100.000000 );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idbaseline = stringIDToTypeID( "baseline" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc127.putEnumerated( idbaseline, idbaseline, idNrml );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethrough = stringIDToTypeID( "strikethrough" );
                        var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                        desc127.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idUndl = charIDToTypeID( "Undl" );
                        var idunderlineOff = stringIDToTypeID( "underlineOff" );
                        desc127.putEnumerated( idUndl, idUndl, idunderlineOff );
                        var idligature = stringIDToTypeID( "ligature" );
                        desc127.putBoolean( idligature, true );
                        var idaltligature = stringIDToTypeID( "altligature" );
                        desc127.putBoolean( idaltligature, false );
                        var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                        desc127.putBoolean( idcontextualLigatures, false );
                        var idfractions = stringIDToTypeID( "fractions" );
                        desc127.putBoolean( idfractions, false );
                        var idordinals = stringIDToTypeID( "ordinals" );
                        desc127.putBoolean( idordinals, false );
                        var idswash = stringIDToTypeID( "swash" );
                        desc127.putBoolean( idswash, false );
                        var idtitling = stringIDToTypeID( "titling" );
                        desc127.putBoolean( idtitling, false );
                        var idconnectionForms = stringIDToTypeID( "connectionForms" );
                        desc127.putBoolean( idconnectionForms, false );
                        var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                        desc127.putBoolean( idstylisticAlternates, false );
                        var idornaments = stringIDToTypeID( "ornaments" );
                        desc127.putBoolean( idornaments, false );
                        var idjustificationAlternates = stringIDToTypeID( "justificationAlternates" );
                        desc127.putBoolean( idjustificationAlternates, false );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idfigureStyle = stringIDToTypeID( "figureStyle" );
                        var idNrml = charIDToTypeID( "Nrml" );
                        desc127.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                        var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                        desc127.putBoolean( idproportionalMetrics, false );
                        var idkana = stringIDToTypeID( "kana" );
                        desc127.putBoolean( idkana, false );
                        var iditalics = stringIDToTypeID( "italics" );
                        desc127.putBoolean( iditalics, false );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                        var idwithStream = stringIDToTypeID( "withStream" );
                        desc127.putEnumerated( idbaselineDirection, idbaselineDirection, idwithStream );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idtextLanguage = stringIDToTypeID( "textLanguage" );
                        var idenglishLanguage = stringIDToTypeID( "englishLanguage" );
                        desc127.putEnumerated( idtextLanguage, idtextLanguage, idenglishLanguage );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                        var iddefaultForm = stringIDToTypeID( "defaultForm" );
                        desc127.putEnumerated( idjapaneseAlternate, idjapaneseAlternate, iddefaultForm );
                        var idmojiZume = stringIDToTypeID( "mojiZume" );
                        desc127.putDouble( idmojiZume, 0.000000 );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                        var idroman = stringIDToTypeID( "roman" );
                        desc127.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                        var idnoBreak = stringIDToTypeID( "noBreak" );
                        desc127.putBoolean( idnoBreak, false );
                        var idClr = charIDToTypeID( "Clr " );
                            var desc128 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc128.putDouble( idRd, 0.000000 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc128.putDouble( idGrn, 0.000000 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc128.putDouble( idBl, 0.000000 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc127.putObject( idClr, idRGBC, desc128 );
                        var idstrokeColor = stringIDToTypeID( "strokeColor" );
                            var desc129 = new ActionDescriptor();
                            var idRd = charIDToTypeID( "Rd  " );
                            desc129.putDouble( idRd, 0.000000 );
                            var idGrn = charIDToTypeID( "Grn " );
                            desc129.putDouble( idGrn, 0.000000 );
                            var idBl = charIDToTypeID( "Bl  " );
                            desc129.putDouble( idBl, 0.000000 );
                        var idRGBC = charIDToTypeID( "RGBC" );
                        desc127.putObject( idstrokeColor, idRGBC, desc129 );
                        var idbaseParentStyle = stringIDToTypeID( "baseParentStyle" );
                            var desc130 = new ActionDescriptor();
                            var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                            desc130.putString( idfontPostScriptName, """MyriadPro-Regular""" );
                            var idFntN = charIDToTypeID( "FntN" );
                            desc130.putString( idFntN, """Myriad Pro""" );
                            var idFntS = charIDToTypeID( "FntS" );
                            desc130.putString( idFntS, """Regular""" );
                            var idScrp = charIDToTypeID( "Scrp" );
                            desc130.putInteger( idScrp, 0 );
                            var idFntT = charIDToTypeID( "FntT" );
                            desc130.putInteger( idFntT, 0 );
                            var idSz = charIDToTypeID( "Sz  " );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idSz, idPnt, 12.000000 );
                            var idimpliedFontSize = stringIDToTypeID( "impliedFontSize" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idimpliedFontSize, idPnt, 12.000000 );
                            var idHrzS = charIDToTypeID( "HrzS" );
                            desc130.putDouble( idHrzS, 100.000000 );
                            var idVrtS = charIDToTypeID( "VrtS" );
                            desc130.putDouble( idVrtS, 100.000000 );
                            var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                            desc130.putBoolean( idsyntheticBold, false );
                            var idsyntheticItalic = stringIDToTypeID( "syntheticItalic" );
                            desc130.putBoolean( idsyntheticItalic, false );
                            var idautoLeading = stringIDToTypeID( "autoLeading" );
                            desc130.putBoolean( idautoLeading, true );
                            var idTrck = charIDToTypeID( "Trck" );
                            desc130.putInteger( idTrck, 0 );
                            var idBsln = charIDToTypeID( "Bsln" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idBsln, idPnt, 0.000000 );
                            var idimpliedBaselineShift = stringIDToTypeID( "impliedBaselineShift" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idimpliedBaselineShift, idPnt, 0.000000 );
                            var idcharacterRotation = stringIDToTypeID( "characterRotation" );
                            desc130.putDouble( idcharacterRotation, 0.000000 );
                            var idAtKr = charIDToTypeID( "AtKr" );
                            var idAtKr = charIDToTypeID( "AtKr" );
                            var idmetricsKern = stringIDToTypeID( "metricsKern" );
                            desc130.putEnumerated( idAtKr, idAtKr, idmetricsKern );
                            var idfontCaps = stringIDToTypeID( "fontCaps" );
                            var idfontCaps = stringIDToTypeID( "fontCaps" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc130.putEnumerated( idfontCaps, idfontCaps, idNrml );
                            var iddigitSet = stringIDToTypeID( "digitSet" );
                            var iddigitSet = stringIDToTypeID( "digitSet" );
                            var iddefaultDigits = stringIDToTypeID( "defaultDigits" );
                            desc130.putEnumerated( iddigitSet, iddigitSet, iddefaultDigits );
                            var iddirOverride = stringIDToTypeID( "dirOverride" );
                            var iddirOverride = stringIDToTypeID( "dirOverride" );
                            var iddirOverrideDefault = stringIDToTypeID( "dirOverrideDefault" );
                            desc130.putEnumerated( iddirOverride, iddirOverride, iddirOverrideDefault );
                            var idkashidas = stringIDToTypeID( "kashidas" );
                            var idkashidas = stringIDToTypeID( "kashidas" );
                            var idkashidaDefault = stringIDToTypeID( "kashidaDefault" );
                            desc130.putEnumerated( idkashidas, idkashidas, idkashidaDefault );
                            var iddiacVPos = stringIDToTypeID( "diacVPos" );
                            var iddiacVPos = stringIDToTypeID( "diacVPos" );
                            var iddiacVPosOpenType = stringIDToTypeID( "diacVPosOpenType" );
                            desc130.putEnumerated( iddiacVPos, iddiacVPos, iddiacVPosOpenType );
                            var iddiacXOffset = stringIDToTypeID( "diacXOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( iddiacXOffset, idPnt, 0.000000 );
                            var iddiacYOffset = stringIDToTypeID( "diacYOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( iddiacYOffset, idPnt, 0.000000 );
                            var idmarkYDistFromBaseline = stringIDToTypeID( "markYDistFromBaseline" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idmarkYDistFromBaseline, idPnt, 100.000000 );
                            var idbaseline = stringIDToTypeID( "baseline" );
                            var idbaseline = stringIDToTypeID( "baseline" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc130.putEnumerated( idbaseline, idbaseline, idNrml );
                            var idotbaseline = stringIDToTypeID( "otbaseline" );
                            var idotbaseline = stringIDToTypeID( "otbaseline" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc130.putEnumerated( idotbaseline, idotbaseline, idNrml );
                            var idstrikethrough = stringIDToTypeID( "strikethrough" );
                            var idstrikethrough = stringIDToTypeID( "strikethrough" );
                            var idstrikethroughOff = stringIDToTypeID( "strikethroughOff" );
                            desc130.putEnumerated( idstrikethrough, idstrikethrough, idstrikethroughOff );
                            var idUndl = charIDToTypeID( "Undl" );
                            var idUndl = charIDToTypeID( "Undl" );
                            var idunderlineOff = stringIDToTypeID( "underlineOff" );
                            desc130.putEnumerated( idUndl, idUndl, idunderlineOff );
                            var idunderlineOffset = stringIDToTypeID( "underlineOffset" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idunderlineOffset, idPnt, 0.000000 );
                            var idligature = stringIDToTypeID( "ligature" );
                            desc130.putBoolean( idligature, true );
                            var idaltligature = stringIDToTypeID( "altligature" );
                            desc130.putBoolean( idaltligature, false );
                            var idcontextualLigatures = stringIDToTypeID( "contextualLigatures" );
                            desc130.putBoolean( idcontextualLigatures, false );
                            var idalternateLigatures = stringIDToTypeID( "alternateLigatures" );
                            desc130.putBoolean( idalternateLigatures, false );
                            var idoldStyle = stringIDToTypeID( "oldStyle" );
                            desc130.putBoolean( idoldStyle, false );
                            var idfractions = stringIDToTypeID( "fractions" );
                            desc130.putBoolean( idfractions, false );
                            var idordinals = stringIDToTypeID( "ordinals" );
                            desc130.putBoolean( idordinals, false );
                            var idswash = stringIDToTypeID( "swash" );
                            desc130.putBoolean( idswash, false );
                            var idtitling = stringIDToTypeID( "titling" );
                            desc130.putBoolean( idtitling, false );
                            var idconnectionForms = stringIDToTypeID( "connectionForms" );
                            desc130.putBoolean( idconnectionForms, false );
                            var idstylisticAlternates = stringIDToTypeID( "stylisticAlternates" );
                            desc130.putBoolean( idstylisticAlternates, false );
                            var idornaments = stringIDToTypeID( "ornaments" );
                            desc130.putBoolean( idornaments, false );
                            var idjustificationAlternates = stringIDToTypeID( "justificationAlternates" );
                            desc130.putBoolean( idjustificationAlternates, false );
                            var idfigureStyle = stringIDToTypeID( "figureStyle" );
                            var idfigureStyle = stringIDToTypeID( "figureStyle" );
                            var idNrml = charIDToTypeID( "Nrml" );
                            desc130.putEnumerated( idfigureStyle, idfigureStyle, idNrml );
                            var idproportionalMetrics = stringIDToTypeID( "proportionalMetrics" );
                            desc130.putBoolean( idproportionalMetrics, false );
                            var idkana = stringIDToTypeID( "kana" );
                            desc130.putBoolean( idkana, false );
                            var iditalics = stringIDToTypeID( "italics" );
                            desc130.putBoolean( iditalics, false );
                            var idruby = stringIDToTypeID( "ruby" );
                            desc130.putBoolean( idruby, false );
                            var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                            var idbaselineDirection = stringIDToTypeID( "baselineDirection" );
                            var idrotated = stringIDToTypeID( "rotated" );
                            desc130.putEnumerated( idbaselineDirection, idbaselineDirection, idrotated );
                            var idtextLanguage = stringIDToTypeID( "textLanguage" );
                            var idtextLanguage = stringIDToTypeID( "textLanguage" );
                            var idenglishLanguage = stringIDToTypeID( "englishLanguage" );
                            desc130.putEnumerated( idtextLanguage, idtextLanguage, idenglishLanguage );
                            var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                            var idjapaneseAlternate = stringIDToTypeID( "japaneseAlternate" );
                            var iddefaultForm = stringIDToTypeID( "defaultForm" );
                            desc130.putEnumerated( idjapaneseAlternate, idjapaneseAlternate, iddefaultForm );
                            var idmojiZume = stringIDToTypeID( "mojiZume" );
                            desc130.putDouble( idmojiZume, 0.000000 );
                            var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                            var idgridAlignment = stringIDToTypeID( "gridAlignment" );
                            var idroman = stringIDToTypeID( "roman" );
                            desc130.putEnumerated( idgridAlignment, idgridAlignment, idroman );
                            var idenableWariChu = stringIDToTypeID( "enableWariChu" );
                            desc130.putBoolean( idenableWariChu, false );
                            var idwariChuCount = stringIDToTypeID( "wariChuCount" );
                            desc130.putInteger( idwariChuCount, 2 );
                            var idwariChuLineGap = stringIDToTypeID( "wariChuLineGap" );
                            desc130.putInteger( idwariChuLineGap, 0 );
                            var idwariChuScale = stringIDToTypeID( "wariChuScale" );
                            desc130.putDouble( idwariChuScale, 0.500000 );
                            var idwariChuWidow = stringIDToTypeID( "wariChuWidow" );
                            desc130.putInteger( idwariChuWidow, 2 );
                            var idwariChuOrphan = stringIDToTypeID( "wariChuOrphan" );
                            desc130.putInteger( idwariChuOrphan, 2 );
                            var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                            var idwariChuJustification = stringIDToTypeID( "wariChuJustification" );
                            var idwariChuAutoJustify = stringIDToTypeID( "wariChuAutoJustify" );
                            desc130.putEnumerated( idwariChuJustification, idwariChuJustification, idwariChuAutoJustify );
                            var idtcyUpDown = stringIDToTypeID( "tcyUpDown" );
                            desc130.putInteger( idtcyUpDown, 0 );
                            var idtcyLeftRight = stringIDToTypeID( "tcyLeftRight" );
                            desc130.putInteger( idtcyLeftRight, 0 );
                            var idleftAki = stringIDToTypeID( "leftAki" );
                            desc130.putDouble( idleftAki, -1.000000 );
                            var idrightAki = stringIDToTypeID( "rightAki" );
                            desc130.putDouble( idrightAki, -1.000000 );
                            var idjiDori = stringIDToTypeID( "jiDori" );
                            desc130.putInteger( idjiDori, 0 );
                            var idnoBreak = stringIDToTypeID( "noBreak" );
                            desc130.putBoolean( idnoBreak, false );
                            var idClr = charIDToTypeID( "Clr " );
                                var desc131 = new ActionDescriptor();
                                var idRd = charIDToTypeID( "Rd  " );
                                desc131.putDouble( idRd, 0.000000 );
                                var idGrn = charIDToTypeID( "Grn " );
                                desc131.putDouble( idGrn, 0.000000 );
                                var idBl = charIDToTypeID( "Bl  " );
                                desc131.putDouble( idBl, 0.000000 );
                            var idRGBC = charIDToTypeID( "RGBC" );
                            desc130.putObject( idClr, idRGBC, desc131 );
                            var idstrokeColor = stringIDToTypeID( "strokeColor" );
                                var desc132 = new ActionDescriptor();
                                var idRd = charIDToTypeID( "Rd  " );
                                desc132.putDouble( idRd, 0.000000 );
                                var idGrn = charIDToTypeID( "Grn " );
                                desc132.putDouble( idGrn, 0.000000 );
                                var idBl = charIDToTypeID( "Bl  " );
                                desc132.putDouble( idBl, 0.000000 );
                            var idRGBC = charIDToTypeID( "RGBC" );
                            desc130.putObject( idstrokeColor, idRGBC, desc132 );
                            var idFl = charIDToTypeID( "Fl  " );
                            desc130.putBoolean( idFl, true );
                            var idStrk = charIDToTypeID( "Strk" );
                            desc130.putBoolean( idStrk, false );
                            var idfillFirst = stringIDToTypeID( "fillFirst" );
                            desc130.putBoolean( idfillFirst, true );
                            var idfillOverPrint = stringIDToTypeID( "fillOverPrint" );
                            desc130.putBoolean( idfillOverPrint, false );
                            var idstrokeOverPrint = stringIDToTypeID( "strokeOverPrint" );
                            desc130.putBoolean( idstrokeOverPrint, false );
                            var idlineCap = stringIDToTypeID( "lineCap" );
                            var idlineCap = stringIDToTypeID( "lineCap" );
                            var idbuttCap = stringIDToTypeID( "buttCap" );
                            desc130.putEnumerated( idlineCap, idlineCap, idbuttCap );
                            var idlineJoin = stringIDToTypeID( "lineJoin" );
                            var idlineJoin = stringIDToTypeID( "lineJoin" );
                            var idmiterJoin = stringIDToTypeID( "miterJoin" );
                            desc130.putEnumerated( idlineJoin, idlineJoin, idmiterJoin );
                            var idlineWidth = stringIDToTypeID( "lineWidth" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idlineWidth, idPnt, 1.000000 );
                            var idmiterLimit = stringIDToTypeID( "miterLimit" );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc130.putUnitDouble( idmiterLimit, idPnt, 4.000000 );
                            var idlineDashoffset = stringIDToTypeID( "lineDashoffset" );
                            desc130.putDouble( idlineDashoffset, 0.000000 );
                        var idTxtS = charIDToTypeID( "TxtS" );
                        desc127.putObject( idbaseParentStyle, idTxtS, desc130 );
                    var idTxtS = charIDToTypeID( "TxtS" );
                    desc126.putObject( idTxtS, idTxtS, desc127 );
                var idTxtt = charIDToTypeID( "Txtt" );
                list10.putObject( idTxtt, desc126 );
            desc119.putList( idTxtt, list10 );
            var idparagraphStyleRange = stringIDToTypeID( "paragraphStyleRange" );
                var list11 = new ActionList();
                    var desc133 = new ActionDescriptor();
                    var idFrom = charIDToTypeID( "From" );
                    desc133.putInteger( idFrom, 0 );
                    var idT = charIDToTypeID( "T   " );
                    desc133.putInteger( idT, 6 );
                    var idparagraphStyle = stringIDToTypeID( "paragraphStyle" );
                        var desc134 = new ActionDescriptor();
                        var idstyleSheetHasParent = stringIDToTypeID( "styleSheetHasParent" );
                        desc134.putBoolean( idstyleSheetHasParent, true );
                        var idAlgn = charIDToTypeID( "Algn" );
                        var idAlg = charIDToTypeID( "Alg " );
                        var idLeft = charIDToTypeID( "Left" );
                        desc134.putEnumerated( idAlgn, idAlg, idLeft );
                        var idfirstLineIndent = stringIDToTypeID( "firstLineIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idfirstLineIndent, idPnt, 0.000000 );
                        var idimpliedFirstLineIndent = stringIDToTypeID( "impliedFirstLineIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idimpliedFirstLineIndent, idPnt, 0.000000 );
                        var idstartIndent = stringIDToTypeID( "startIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idstartIndent, idPnt, 0.000000 );
                        var idimpliedStartIndent = stringIDToTypeID( "impliedStartIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idimpliedStartIndent, idPnt, 0.000000 );
                        var idendIndent = stringIDToTypeID( "endIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idendIndent, idPnt, 0.000000 );
                        var idimpliedEndIndent = stringIDToTypeID( "impliedEndIndent" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idimpliedEndIndent, idPnt, 0.000000 );
                        var idspaceBefore = stringIDToTypeID( "spaceBefore" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idspaceBefore, idPnt, 0.000000 );
                        var idimpliedSpaceBefore = stringIDToTypeID( "impliedSpaceBefore" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idimpliedSpaceBefore, idPnt, 0.000000 );
                        var idspaceAfter = stringIDToTypeID( "spaceAfter" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idspaceAfter, idPnt, 0.000000 );
                        var idimpliedSpaceAfter = stringIDToTypeID( "impliedSpaceAfter" );
                        var idPnt = charIDToTypeID( "#Pnt" );
                        desc134.putUnitDouble( idimpliedSpaceAfter, idPnt, 0.000000 );
                        var iddropCapMultiplier = stringIDToTypeID( "dropCapMultiplier" );
                        desc134.putInteger( iddropCapMultiplier, 1 );
                        var idautoLeadingPercentage = stringIDToTypeID( "autoLeadingPercentage" );
                        desc134.putDouble( idautoLeadingPercentage, 1.200000 );
                        var idleadingType = stringIDToTypeID( "leadingType" );
                        var idleadingType = stringIDToTypeID( "leadingType" );
                        var idleadingBelow = stringIDToTypeID( "leadingBelow" );
                        desc134.putEnumerated( idleadingType, idleadingType, idleadingBelow );
                        var iddirectionType = stringIDToTypeID( "directionType" );
                        var iddirectionType = stringIDToTypeID( "directionType" );
                        var iddirLeftToRight = stringIDToTypeID( "dirLeftToRight" );
                        desc134.putEnumerated( iddirectionType, iddirectionType, iddirLeftToRight );
                        var idkashidaWidthType = stringIDToTypeID( "kashidaWidthType" );
                        var idkashidaWidthType = stringIDToTypeID( "kashidaWidthType" );
                        var idkashidaWidthMedium = stringIDToTypeID( "kashidaWidthMedium" );
                        desc134.putEnumerated( idkashidaWidthType, idkashidaWidthType, idkashidaWidthMedium );
                        var idjustificationMethodType = stringIDToTypeID( "justificationMethodType" );
                        var idjustificationMethodType = stringIDToTypeID( "justificationMethodType" );
                        var idjustifMethodAutomatic = stringIDToTypeID( "justifMethodAutomatic" );
                        desc134.putEnumerated( idjustificationMethodType, idjustificationMethodType, idjustifMethodAutomatic );
                        var idhyphenate = stringIDToTypeID( "hyphenate" );
                        desc134.putBoolean( idhyphenate, true );
                        var idhyphenateWordSize = stringIDToTypeID( "hyphenateWordSize" );
                        desc134.putInteger( idhyphenateWordSize, 6 );
                        var idhyphenatePreLength = stringIDToTypeID( "hyphenatePreLength" );
                        desc134.putInteger( idhyphenatePreLength, 2 );
                        var idhyphenatePostLength = stringIDToTypeID( "hyphenatePostLength" );
                        desc134.putInteger( idhyphenatePostLength, 2 );
                        var idhyphenateLimit = stringIDToTypeID( "hyphenateLimit" );
                        desc134.putInteger( idhyphenateLimit, 0 );
                        var idhyphenationZone = stringIDToTypeID( "hyphenationZone" );
                        desc134.putDouble( idhyphenationZone, 36.000000 );
                        var idhyphenateCapitalized = stringIDToTypeID( "hyphenateCapitalized" );
                        desc134.putBoolean( idhyphenateCapitalized, true );
                        var idhyphenationPreference = stringIDToTypeID( "hyphenationPreference" );
                        desc134.putDouble( idhyphenationPreference, 0.500000 );
                        var idjustificationWordMinimum = stringIDToTypeID( "justificationWordMinimum" );
                        desc134.putDouble( idjustificationWordMinimum, 0.800000 );
                        var idjustificationWordDesired = stringIDToTypeID( "justificationWordDesired" );
                        desc134.putDouble( idjustificationWordDesired, 1.000000 );
                        var idjustificationWordMaximum = stringIDToTypeID( "justificationWordMaximum" );
                        desc134.putDouble( idjustificationWordMaximum, 1.330000 );
                        var idjustificationLetterMinimum = stringIDToTypeID( "justificationLetterMinimum" );
                        desc134.putDouble( idjustificationLetterMinimum, 0.000000 );
                        var idjustificationLetterDesired = stringIDToTypeID( "justificationLetterDesired" );
                        desc134.putDouble( idjustificationLetterDesired, 0.000000 );
                        var idjustificationLetterMaximum = stringIDToTypeID( "justificationLetterMaximum" );
                        desc134.putDouble( idjustificationLetterMaximum, 0.000000 );
                        var idjustificationGlyphMinimum = stringIDToTypeID( "justificationGlyphMinimum" );
                        desc134.putDouble( idjustificationGlyphMinimum, 1.000000 );
                        var idjustificationGlyphDesired = stringIDToTypeID( "justificationGlyphDesired" );
                        desc134.putDouble( idjustificationGlyphDesired, 1.000000 );
                        var idjustificationGlyphMaximum = stringIDToTypeID( "justificationGlyphMaximum" );
                        desc134.putDouble( idjustificationGlyphMaximum, 1.000000 );
                        var idsingleWordJustification = stringIDToTypeID( "singleWordJustification" );
                        var idAlg = charIDToTypeID( "Alg " );
                        var idJstA = charIDToTypeID( "JstA" );
                        desc134.putEnumerated( idsingleWordJustification, idAlg, idJstA );
                        var idhangingRoman = stringIDToTypeID( "hangingRoman" );
                        desc134.putBoolean( idhangingRoman, false );
                        var idautoTCY = stringIDToTypeID( "autoTCY" );
                        desc134.putInteger( idautoTCY, 0 );
                        var idkeepTogether = stringIDToTypeID( "keepTogether" );
                        desc134.putBoolean( idkeepTogether, true );
                        var idburasagari = stringIDToTypeID( "burasagari" );
                        var idburasagari = stringIDToTypeID( "burasagari" );
                        var idburasagariNone = stringIDToTypeID( "burasagariNone" );
                        desc134.putEnumerated( idburasagari, idburasagari, idburasagariNone );
                        var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                        var idpreferredKinsokuOrder = stringIDToTypeID( "preferredKinsokuOrder" );
                        var idpushIn = stringIDToTypeID( "pushIn" );
                        desc134.putEnumerated( idpreferredKinsokuOrder, idpreferredKinsokuOrder, idpushIn );
                        var idkurikaeshiMojiShori = stringIDToTypeID( "kurikaeshiMojiShori" );
                        desc134.putBoolean( idkurikaeshiMojiShori, false );
                        var idtextEveryLineComposer = stringIDToTypeID( "textEveryLineComposer" );
                        desc134.putBoolean( idtextEveryLineComposer, false );
                        var iddefaultTabWidth = stringIDToTypeID( "defaultTabWidth" );
                        desc134.putDouble( iddefaultTabWidth, 36.000000 );
                        var iddefaultStyle = stringIDToTypeID( "defaultStyle" );
                            var desc135 = new ActionDescriptor();
                            var idfontPostScriptName = stringIDToTypeID( "fontPostScriptName" );
                            desc135.putString( idfontPostScriptName, """MyriadPro-Regular""" );
                            var idFntN = charIDToTypeID( "FntN" );
                            desc135.putString( idFntN, """Myriad Pro""" );
                            var idFntS = charIDToTypeID( "FntS" );
                            desc135.putString( idFntS, """Regular""" );
                            var idScrp = charIDToTypeID( "Scrp" );
                            desc135.putInteger( idScrp, 0 );
                            var idFntT = charIDToTypeID( "FntT" );
                            desc135.putInteger( idFntT, 0 );
                            var idSz = charIDToTypeID( "Sz  " );
                            var idPnt = charIDToTypeID( "#Pnt" );
                            desc135.putUnitDouble( idSz, idPnt, 12.000000 );
                            var idHrzS = charIDToTypeID( "HrzS" );
                            desc135.putDouble( idHrzS, 100.000000 );
                            var idVrtS = charIDToTypeID( "VrtS" );
                            desc135.putDouble( idVrtS, 100.000000 );
                            var idsyntheticBold = stringIDToTypeID( "syntheticBold" );
                            desc135.putBoolean( idsyntheticBold, false );
                            var idsyntheticItalic = stringIDToTypeID( "syntheticItalic"

    Text is very complex Scriptlistiner records an action step in scripting code for the action manager interface. Expand an action step that add a text layer. and expand what is recorded it goes on forever.  Text is complex.

  • Some email script is changed to unreadable!

    Not all mail is unreadable, just some. It comes in an looks like the script used to show how words are pronounced... the script with accent marks, backwards b's and unusual (to me) symbols. If I email the note to my gmail account the script returns to roman letters and I can read it. I do not understand why "Mail" is acting this way. It seems the type is readable when sent, unreadable in Mail, forwarded to Gmail and readable again! Anyone else have this issue? I am wondering if it is a Vista setting and if it will become more pronounced as more people change to Vista; if it is a setting on the sender's computer for an unusual font; it happens from two (currently) emails I receive as subscriptions and you will note I did figure a workaround, but I'd rather know what is up.
    KaCe
    this began within the last two months only.

    This could be a font issue. Mail is probably substituting the wrong font for a similarly named font. Take a look at the following article:
    Font Management in Mac OS X Tiger and Panther
    Make sure first that the required fonts are installed in the right places and enabled in Font Book. Use Font Book to validate fonts and resolve duplicates. Get rid of Helvetica Fractions and Times Phonetic if you have any of those fonts installed.

  • Jquery slider is not consistently loads while running coded ui automation script

    Hello Guys,<o:p></o:p>
    I am doing coded ui automation testing for mvc application. Now there are some features where we are loading Jquery slider from left towards right. Actually those slider loads properly
    when users does it manually but when i ran it using coded ui script, so sometimes slider comes and go back within seconds .This means it is not loading properly but sometime its load fine.so due to that coded ui does not find respective control to click over.<o:p></o:p>
                I have tried to wait with different option of playback , wait , delay but the behavior is still same.
    That means my test fails to load proper slider window  most of the time.<o:p></o:p>
    Can anyone suggests me some inclinations to solve this problem. <o:p></o:p>
    Thanks in advance.<o:p></o:p>

    Actually i have tried to wait in all possible ways provided by coded ui . But issue happens only sometime during following scenario:
    1. I click on "x" button 
    2. Then that slider gets loaded from right towards left. There is again other internal ajax call which brings up data to show on slider. For that i have used webwaitforcontrolready=3 to disable ajax or js engine. 
    3. But sometimes problem occurs when automation scripts clicks on "x" button ,then slider comes and go back within fraction of seconds. I do not know whether it is due to network speed or any other issue. so due to that subsequent action on that slider are
    not getting executed or gets failed.
    could you please suggests me which wait should i use till that slider loads completely and then only move to next action?
    i have tried using wait(), thread sleep(),waitforcontrolready(),waitforcontrolexits(),waitforcontrolenabled(),playback.settings.waitforreadylevel=allthreads.

  • Fraction replacement

    Im not sure if I need a scripted solution but probably better to ask here first… So here goes… I have a catalogue coming up for this years updating and the client wants a few changes one of which is an increase of point size nothing drastic… Its all done with styles so some oversetting to handle not a problem. Where I could do with some guidance is fractions… The job as is was converted from Quark 2 years ago and done using postscript font… What I would like to do is swap this in favor of opentype… That should go OK I hope… While I am able to adjust my character styles it is not working with the fractions ( in Q there was a make fraction that did a 50% size and base line shift ) What Im looking for is to find all fractions down to 1/8's and replace with opentype glyphs… does this sound doable? Anyone already been there done it? Will I need script or will the GREP F&C in the GUI do this? TVM

    It shouldn't take more than 7 find and replaces to do that. No need for GREP even...
    FWIW, Dan Rodney has a script which does proper fractions:
    http://www.danrodney.com/scripts/properfraction.html
    Harbs

  • TSV or CSV files with fraction values

    Hello
    In the Pages forum, an user asked about the behavior of fractions values.
    As every user know, the input parser try to decipher them as dates and if it can't, it try to reduce the fractions.
    When we enter values by hand, the workaround is to set the cells format to text before entering the values.
    The problem remains when the values are imported from a TSV or a CSV file.
    In such case, we can't define the cells formats before the import task.
    This is why I wrote two scripts, one for TSV and one for CSV.
    They read the contents of such a file and, when a value contains a slash, it add a single quote in front of this value.
    So, during the import process, Numbers will treat these values as text and will not try to convert them.
    --[SCRIPT insertsingle_quote_in_front_of_fractions_inCSV]
    Enregistrer le script en tant que Script : insertsingle_quote_in_front_of_fractions_inCSV.scpt
    déplacer le fichier ainsi créé dans le dossier
    <VolumeDeDémarrage>:Users:<votreCompte>:Library:Scripts:
    Aller au menu Scripts , choisir insertsingle_quote_in_front_of_fractions_inCSV
    Naviguer jusqu'au fichier CSV à traiter.
    Le script placera une apostrophe devant toute valeur contenant un slash.
    Numbers traitera alors ces valeurs comme des chaînes de caractères et ne les convertira pas.
    On peut également enregistrer le script en tant qu'application.
    Glisser déposer un fichier CSV sur l'icône de l'application exécutera le script.
    --=====
    L'aide du Finder explique:
    L'Utilitaire AppleScript permet d'activer le Menu des scripts :
    Ouvrez l'Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
    Cochez la case "Afficher le menu des scripts dans la barre de menus".
    Sous 10.6.x,
    aller dans le panneau "Général" du dialogue Préférences de l'Éditeur Applescript
    puis cocher la case "Afficher le menu des scripts dans la barre des menus".
    --=====
    Save the script as a Script: insertsingle_quote_in_front_of_fractions_inCSV.scpt
    Move the newly created file into the folder:
    <startup Volume>:Users:<yourAccount>:Library:Scripts:
    Go to the Scripts Menu, choose "insertsingle_quote_in_front_of_fractions_inCSV"
    Browse to the CSV file to treat.
    The script will put a single quote in front of every value containing a slash.
    So Numbers will no longer convert these values into dates.
    We may also save the script as an application.
    Drag and drop the CSV onto the application's icon will run the script.
    --=====
    The Finder's Help explains:
    To make the Script menu appear:
    Open the AppleScript utility located in Applications/AppleScript.
    Select the "Show Script Menu in menu bar" checkbox.
    Under 10.6.x,
    go to the General panel of AppleScript Editor’s Preferences dialog box
    and check the “Show Script menu in menu bar” option.
    --=====
    Yvan KOENIG (VALLAURIS, France)
    2010/11/08
    --=====
    on run
    my commun(choose file of type {"public.csv", "public.comma-separated-values-text"} without invisibles)
    end run
    --=====
    on open (sel)
    local csvFile, uti
    set csvFile to first item of sel
    tell application "System Events"
    set uti to type identifier of disk item ("" & csvFile)
    end tell
    if uti is not in {"public.csv", "public.comma-separated-values-text"} then
    if my parle_Anglais() then
    error "The file “" & csvFile & "” isn’t a CSV file !"
    else
    error "Le fichier « " & csvFile & " » n’est pas un fichier CSV !"
    end if
    end if
    my commun(csvFile)
    end open
    --=====
    on commun(le_fichier)
    local delim, deci, des_paragraphes, un_paragraphe, une_liste, i
    set {delim, deci} to my get2LocalizedDelimiters()
    set des_paragraphes to paragraphs of (read le_fichier)
    repeat with un_paragraphe in des_paragraphes
    set une_liste to my decoupe(contents of un_paragraphe, delim)
    repeat with i from 1 to count of une_liste
    if item i of une_liste contains "/" then set item i of une_liste to "'" & item i of une_liste
    end repeat -- i
    set contents of un_paragraphe to my recolle(une_liste, delim)
    end repeat -- with un_paragraphe
    set eof of le_fichier to 0
    write my recolle(des_paragraphes, return) to le_fichier
    end commun
    --=====
    on decoupe(t, d)
    local oTIDs, l
    set oTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to d
    set l to text items of t
    set AppleScript's text item delimiters to oTIDs
    return l
    end decoupe
    --=====
    on recolle(l, d)
    local oTIDs, t
    set oTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to d
    set t to l as text
    set AppleScript's text item delimiters to oTIDs
    return t
    end recolle
    --=====
    Set the parameter delimiters which must be used in Numbers formulas
    set {delim, deci} to my get2LocalizedDelimiters()
    on get2LocalizedDelimiters()
    if character 2 of (0.5 as text) is "." then
    return {",", "."}
    else
    return {";", ","}
    end if
    end get2LocalizedDelimiters
    --=====
    on parle_Anglais()
    return (do shell script "defaults read 'Apple Global Domain' AppleLocale") does not start with "fr_"
    end parle_Anglais
    --=====
    --[/SCRIPT]
    --[SCRIPT insertsingle_quote_in_front_of_fractions_inTSV]
    Enregistrer le script en tant que Script : insertsingle_quote_in_front_of_fractions_inTSV.scpt
    déplacer le fichier ainsi créé dans le dossier
    <VolumeDeDémarrage>:Users:<votreCompte>:Library:Scripts:
    Aller au menu Scripts , choisir insertsingle_quote_in_front_of_fractions_inTSV
    Naviguer jusqu'au fichier TSV à traiter.
    Le script placera une apostrophe devant toute valeur contenant un slash.
    Numbers traitera alors ces valeurs comme des chaînes de caractères et ne les convertira pas.
    On peut également enregistrer le script en tant qu'application.
    Glisser déposer un fichier CSV sur l'icône de l'application exécutera le script.
    --=====
    L'aide du Finder explique:
    L'Utilitaire AppleScript permet d'activer le Menu des scripts :
    Ouvrez l'Utilitaire AppleScript situé dans le dossier Applications/AppleScript.
    Cochez la case "Afficher le menu des scripts dans la barre de menus".
    Sous 10.6.x,
    aller dans le panneau "Général" du dialogue Préférences de l'Éditeur Applescript
    puis cocher la case "Afficher le menu des scripts dans la barre des menus".
    --=====
    Save the script as a Script: insertsingle_quote_in_front_of_fractions_inTSV.scpt
    Move the newly created file into the folder:
    <startup Volume>:Users:<yourAccount>:Library:Scripts:
    Go to the Scripts Menu, choose "insertsingle_quote_in_front_of_fractions_inTSV"
    Browse to the TSV file to treat.
    The script will put a single quote in front of every value containing a slash.
    So Numbers will no longer convert these values into dates.
    We may also save the script as an application.
    Drag and drop the CSV onto the application's icon will run the script.
    --=====
    The Finder's Help explains:
    To make the Script menu appear:
    Open the AppleScript utility located in Applications/AppleScript.
    Select the "Show Script Menu in menu bar" checkbox.
    Under 10.6.x,
    go to the General panel of AppleScript Editor’s Preferences dialog box
    and check the “Show Script menu in menu bar” option.
    --=====
    Yvan KOENIG (VALLAURIS, France)
    2010/11/08
    --=====
    on run
    my commun(choose file of type {"public.plain-text"} without invisibles)
    end run
    --=====
    on open (sel)
    local tsvFile, uti
    set tsvFile to first item of sel
    tell application "System Events"
    set uti to type identifier of disk item ("" & tsvFile)
    end tell
    if uti is not in {"public.plain-text"} then my notatsvFile(tsvFile)
    my commun(tsvFile)
    end open
    --=====
    on commun(le_fichier)
    local le_texte, des_paragraphes, un_paragraphe, une_liste, i
    set le_texte to (read le_fichier)
    if le_texte contains tab then
    set des_paragraphes to paragraphs of le_texte
    repeat with un_paragraphe in des_paragraphes
    set une_liste to my decoupe(contents of un_paragraphe, tab)
    repeat with i from 1 to count of une_liste
    if item i of une_liste contains "/" then set item i of une_liste to "'" & item i of une_liste
    end repeat -- i
    set contents of un_paragraphe to my recolle(une_liste, tab)
    end repeat -- with un_paragraphe
    set eof of le_fichier to 0
    write my recolle(des_paragraphes, return) to le_fichier
    else
    my nota_tsvFile(lefichier)
    end if
    end commun
    --=====
    on nota_tsvFile(unfichier)
    if my parle_Anglais() then
    error "The file “" & un_fichier & "” isn’t a TSV file !"
    else
    error "Le fichier « " & un_fichier & " » n’est pas un fichier TSV !"
    end if
    end notatsvFile
    --=====
    on decoupe(t, d)
    local oTIDs, l
    set oTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to d
    set l to text items of t
    set AppleScript's text item delimiters to oTIDs
    return l
    end decoupe
    --=====
    on recolle(l, d)
    local oTIDs, t
    set oTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to d
    set t to l as text
    set AppleScript's text item delimiters to oTIDs
    return t
    end recolle
    --=====
    Set the parameter delimiters which must be used in Numbers formulas
    set {delim, deci} to my get2LocalizedDelimiters()
    on get2LocalizedDelimiters()
    if character 2 of (0.5 as text) is "." then
    return {",", "."}
    else
    return {";", ","}
    end if
    end get2LocalizedDelimiters
    --=====
    on parle_Anglais()
    return (do shell script "defaults read 'Apple Global Domain' AppleLocale") does not start with "fr_"
    end parle_Anglais
    --=====
    --[/SCRIPT]
    Yvan KOENIG (VALLAURIS, France) lundi 8 novembre 2010 11:30:20

    Hello Zahid,
    It is currently possible to create a relational multi-source universe with one data provider to an Excel document.
    for this to work for Web Intelligence the 62 bit drivers must be installed on the Webi Server for Excel.
    Here is a link to the kbase
    https://service.sap.com/sap/support/notes/1828466
    Also here is a link to the Information Design Tool Guide for how to create a multi-source universe:
    http://service.sap.com/sap/support/notes/1898185
    One of the new features in BI 4.0 is creating a list of values on a Table or custom SQL.
    also, here is the link to the available tutorials:
    Official Product Tutorials – SAP BusinessObjects Business Intelligence Platform 4.x
    Scroll down to the information design tool.
    Hope this helps!
    Jacqueline

  • Auto-script running clone?

    I would like to clone my running arch system's root partition (boot is on it, too) from one running system to another disk, possibly USB and possibly with a different size.
    I believe this should not be too hard.  it means I should boot in single-user mode (so that the root partition is read-only), then copy it with rsync (https://wiki.archlinux.org/index.php/fu … with_rsync), update the blkid in the new $dest/etc/ , and start worrying about the boot.  (there is a real nice aspect to Mac's---they can scan connected drives for bootable partitions when one holds down the alt-key.)  reading the doc, my guess is that syslinux is the easier solution.  this again means filling in the blkid to $dest/boot/syslinux.cfg, and then running syslinux.  ultimately, my script will be something like
        perl clone-my-install.pl /dev/sdx1
    with some additional safety checks (is root mount ro?  is /dev/sdx1 an ext4 partition, large enough, and empty? etc.)  come to think of it, this script would make a good additional boot-up menu choice for arch itself.
    before I write it myself, has someone already written this?
    /iaw

    Hi,
    1. I had run the below script:
    var start = new Date().getTime();
    var myDocument = app.activeDocument;
    myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;
    myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;
    myDocument.viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
    myDocument.textPreferences.superscriptPosition=33;
    myDocument.textPreferences.superscriptSize=70;
    myDocument.textPreferences.subscriptPosition=33;
    myDocument.textPreferences.subscriptSize=70;
    myDocument.textPreferences.smallCap=75;
    app.imePreferences.inlineInput=true;
    var end = new Date().getTime();
    var time = end - start;
    var seconds = Math.round(time/1000);
    var minutes = Math.round(seconds/60);
    var hr = Math.round(minutes/60);
    alert(hr + ":" + minutes + ":" + seconds);
         result is 0:0:0. because its running running within fraction of seconds.
    2. I had run the below script
    var start = new Date().getTime();
    var myDocument = app.activeDocument;
    myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.inches;
    myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.inches;
    myDocument.viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
    myDocument.textPreferences.superscriptPosition=33;
    myDocument.textPreferences.superscriptSize=70;
    myDocument.textPreferences.subscriptPosition=33;
    myDocument.textPreferences.subscriptSize=70;
    myDocument.textPreferences.smallCap=75;
    app.imePreferences.inlineInput=true;
    var 
        end = new Date().getTime(), 
        time = end - start, 
        mH = ("0" + Math.floor(time/3600000) ).slice(-2),     //     upto 99 hours be awared 
        mM = ("0" + Math.floor( (time%3600000) / 60000 ) ).slice(-2), 
        mS = ("0" + (time%60000) / 1000).slice(-2); 
    alert(mH + ":" + mM + ":" + mS); 
    result is 00:00:19. Heare what is 19, because this script is running within fraction of seconds.
    by
    hasvi

  • Script Time out issue

    I see lots of comments about how to set the script Timeout to greater then 15 seconds. 
    They say to go to fla and hit ctrl shift f12.  I can not even figure out what fla is.  I have searched and searched.
    I know I do not have an infinite loop, the app runs when the data is smaller.  This only started happening when I moved to using something like 40k records.  So, with that said, would someone please explain to me how to exend the script timeout like I was a forth grader?

    That’s for Flash, not Flex.  For Flex, you can use the scriptTimeLimit property on the Application tag, but it already defaults to the maximum (60 seconds).
    The FlashPlayer stops running code after that time limit, even if your code would have finished a fraction of a second later.  This means that heavy processing may not complete.  You may have to use pseudo-threading to guarantee completion.  See: http://blogs.adobe.com/aharui/2008/01/threads_in_actionscript_3.html
    Don’t forget that, even though it might take 30 seconds on your computer, if the user’s computer is slower or busy that 30 seconds can grow enough to time out.

Maybe you are looking for

  • Effects for real instruments

    Is there any way to get more effects to add to real instruments? I know you can add more software instruments to the library with jam packs and what not but do they add more effets that you can use on real instruments?

  • The general settings on my iphone has disappeared.  How do I get it back?

    I was putting a new case on my iPhone an may have brushed the screen. The next time I used the phone the General Settings icon was gone.  Does anyone know how to get it back!  Thank you so much. 

  • Movie doesn't fit on a disc

    Hi, I have a project set like this: - one mpeg 2 cbr (9000+384 bitrate), dvd compliant of 11 GB, that ancore, correctly, didnt transcode - about 4 mp3 songs - four photos - one dual layer dvd. Obviously 11 gigs couldnt fit on a single DL, so I trim m

  • BM 3.9 Access Rules Work Only Once

    What I want: Access Rule that blocks ALL attempts to download in a browser any file that ends with a specific extension (.exe for example). What I have: Access Rule: Type: Port Source DNS Hostname: Any Destination DNS Hostname: *.exe Origin Server Po

  • Oracle Export/Dump Requirements

    I have a client who wants to extract or dump their 9TB database (a selective backup) and then get it restored onto a suppliers environment for further processing. If a dump/export/backup is done, does the supplier need to have identical version of Or