How to create anchors on a CFLoop

Well first of all let me just say that I am a beginner on CF.
And I say this so that whom ever is so kind on answering would do
so in a way that it is easy for me to understand.
I have actually created a site that reads off a database and
selects categories.
the categories are all in one page so when I click on
Category C I need the link to take it to the middle of the page
where I have category B products.
I have never done this with CF and I read that this is
possible , but just dont see one answer that I would understand.
I am not even sure if I am making sense?
Anyone
could help?

You want to set anchors line so:
<a name="CategoryA">CategoryA</a>
and you link to that part of the page like so:
<a href="#CategoryA">CategoryA</a>
Here is some test code to show the concept:
<a name="Top">Jump to category: </a>
<a href="#Category100">100</a>
<a href="#Category200">200</a>
<a href="#Category300">300</a>
<!--- big loop with a lot of iterations to illustrate page
links --->
<cfloop index="i" from="1" to="300">
<br>
<cfif ListFindNoCase("100,200,300", i)>
<cfoutput>
<a name="Category#i#">Category#i#</a> <a
href="##Top">Back to top</a>
</cfoutput>
</cfif>
</cfloop>
Now in your example, you page may be set up like so:
<!--- make the links --->
<cfoutput query="QueryResults" group="Category">
<a href="###Category#">#Category#</a>
</cfoutput>
<!--- output the data --->
<cfoutput query="QueryResults" group="Category">
<a name="#Category#">#Category#</a>
<cfoutput>
#Column1# #Column2#.....
</cfoutput>
<br>
</cfoutput>

Similar Messages

  • How to create Anchored Object (CS2)

    Hi,
    Indesign CS2(PC version)
    Javascript
    Any one help me, How to create Anchored object within TextFrame and inside anchor object i want to paste one image.
    by
    Sudar

    Hi Hemi,
    Sure--tell the insertion point to create the object. For example, to add a text frame:
    //Given a reference to an insertion point "myInsertionPoint"...
    var myFrame = myInsertionPoint.textFrames.add();
    Now you have a text frame anchored/inline in the story. Next, recompose the story containing the frame:
    myInsertionPoint.parentStory.recompose();
    ...and resize the frame.
    //Given a frame width and height "myFrameWidth" and "myFrameHeight"...
    var myX1 = myFrame.geometricBounds[1];
    var myY1 = myFrame.geometricBounds[0];
    var myX2 = myX1 + myFrameWidth;
    var myY2 = myY1 + myFrameHeight;
    myFrame.geometricBounds = [myY1, myX1, myY2, myX2];
    At this point, you can adjust the frame's anchored object settings (your settings will probably vary, but this should give you the idea).
    var myAnchoredProperties = myFrame.anchoredObjectSettings;
    myAnchoredProperties.anchorPoint = AnchorPoint.topLeftAnchor;
    myAnchoredProperties.anchoredPosition = AnchorPosition.anchored;
    //NOTE inconsistent "o" in "offset".
    myAnchoredProperties.anchorXoffset = 0;
    myAnchoredProperties.anchorYoffset = -13;
    Hope this helps!
    Thanks,
    Ole

  • How to create anchor links within a spry accordion?

    I am using the spry accordion from DW CS6. HAving 6 panels.
    I want to do this but can't manage it the usual html way...and I am clueless about javascript:
    I want to create a wordlink that forwards people to the content of a different panel within the same accordion.
    I tried the usual naming of anchor and creating link to such but nothing happens. I googled a bit for answers but I come up with js and that is abracadabra to me. The names in the js are nothing likie html classes that I can target so I have no clue what to do.
    Any help would be very appreciated on this matter.
    One other problem I am having is this:
    My accordion is broken in the Opera browser....anybody an idea what causes this? Do I miss some plug in my browser?

    I am using the spry accordion from DW CS6. HAving 6 panels.
    I want to do this but can't manage it the usual html way...and I am clueless about javascript:
    I want to create a wordlink that forwards people to the content of a different panel within the same accordion.
    I tried the usual naming of anchor and creating link to such but nothing happens. I googled a bit for answers but I come up with js and that is abracadabra to me. The names in the js are nothing likie html classes that I can target so I have no clue what to do.
    Any help would be very appreciated on this matter.
    One other problem I am having is this:
    My accordion is broken in the Opera browser....anybody an idea what causes this? Do I miss some plug in my browser?

  • How to create trend line in cfchart?

    I can create a scatter chart in cfchart - but I do not know how to create a linear regression trend line in the same chart as a second data series. Kodemonki provided an answer in a forum discussion a few years ago (http://forums.adobe.com/message/192848#192848) - but I am not able to make it work (I have a dangerously small knowledge of coldfusion and statisitcal formulas). Can someone tell me where i put in my to data query variables - such as for a query that gives results for two data fields, "Item1" and "Item2".
    Here is Kodemonki's solution:
    <!--- The min setting is a preference based on how you want the data to be displayed. --->
    <!---<cfset min = arrayMin(grabData["value"]) - 5>--->
         <cfset min = 0>
         <cfset max = ceiling(arrayMax(grabData["value"])) + 1>
         <cfset n = grabData.recordCount>
         <cfset sum_x = 0>
         <cfset sum_x2 = 0>
         <cfset sum_xy = 0>
         <cfloop from="1" to="#grabData.RecordCount#" index="i">
              <cfset sum_x = sum_x + i>
              <cfset sum_xy = (i*grabData.value[i]) + sum_xy>
              <cfset sum_x2 = sum_x2 + (i*i)>
         </cfloop>
         <cfset sum_y = arraySum(grabData["value"])>
         <cfset slope = round(((n*sum_xy) - (sum_x*sum_y))/((n*sum_x2) - (sum_x*sum_x)))>
         <cfset intercept = round((sum_y - (slope*sum_x))/n)>
         <cfset best_fit = QueryNew("id, value")>
         <cfloop from="1" to="#grabdata.RecordCount#" index="i">
              <cfset queryAddRow(best_fit)>
              <cfset value = round((slope*i) + intercept)>
              <cfset QuerySetCell(best_fit, "id", grabData.xlabel[i])>
              <cfset QuerySetCell(best_fit, "value", value)>
         </cfloop>
         <cfchart scalefrom="#min#" scaleto="#max#" title="#GrabDatapointInfo.label#" format="jpg" chartHeight="450" chartwidth="500" xaxistitle="Month/Year">
              <cfchartseries type="line" query="best_fit" valuecolumn="value" itemcolumn="id"/>
              <cfchartseries type="line" query="grabData" valuecolumn="value" itemcolumn="xlabel"/>
         </cfchart>

    Have you read the docs for CFCHART, CHCHARTSERIES, etc?  Did you mess around with the example code sufficiently so you understand how the tags work?
    http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-79 30.html
    Adam

  • How to create a trend line in cfchart?

    I  can create a scatter chart in cfchart - but I do not know how to create  a linear regression trend line in the same chart as a second data  series.
    Kodemonki provided an answer in a forum discussion a few years  ago (http://forums.adobe.com/message/192848#192848).
    But I am not able to make it work (I have a dangerously small  knowledge of coldfusion and statisitcal formulas).
    Can someone tell me  where i put in my to data query variables - such as for a query that  gives results for two data fields, "Item1" and "Item2".
    Thanks!
    Here is Kodemonki's solution:
    <!--- The min setting is a preference based on how you want the data to be displayed. --->
    <!---<cfset min = arrayMin(grabData["value"]) - 5>--->
         <cfset min = 0>
         <cfset max = ceiling(arrayMax(grabData["value"])) + 1>
         <cfset n = grabData.recordCount>
         <cfset sum_x = 0>
         <cfset sum_x2 = 0>
         <cfset sum_xy = 0>
         <cfloop from="1" to="#grabData.RecordCount#" index="i">
              <cfset sum_x = sum_x + i>
              <cfset sum_xy = (i*grabData.value[i]) + sum_xy>
              <cfset sum_x2 = sum_x2 + (i*i)>
         </cfloop>
         <cfset sum_y = arraySum(grabData["value"])>
         <cfset slope = round(((n*sum_xy) - (sum_x*sum_y))/((n*sum_x2) - (sum_x*sum_x)))>
         <cfset intercept = round((sum_y - (slope*sum_x))/n)>
         <cfset best_fit = QueryNew("id, value")>
         <cfloop from="1" to="#grabdata.RecordCount#" index="i">
              <cfset queryAddRow(best_fit)>
              <cfset value = round((slope*i) + intercept)>
              <cfset QuerySetCell(best_fit, "id", grabData.xlabel[i])>
              <cfset QuerySetCell(best_fit, "value", value)>
         </cfloop>
         <cfchart  scalefrom="#min#" scaleto="#max#" title="#GrabDatapointInfo.label#"  format="jpg" chartHeight="450" chartwidth="500"  xaxistitle="Month/Year">
              <cfchartseries type="line" query="best_fit" valuecolumn="value" itemcolumn="id"/>
              <cfchartseries type="line" query="grabData" valuecolumn="value" itemcolumn="xlabel"/>
         </cfchart>

    Have you read the docs for CFCHART, CHCHARTSERIES, etc?  Did you mess around with the example code sufficiently so you understand how the tags work?
    http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-79 30.html
    Adam

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

  • How to create ebook chapter cross-references with inDesign CS6?

    Hi, I'm creating a fairly technical ebook, and would like the reader to be able to easily link  "See Chapter X for more information" with Chapter X. My problem is that all the "See Chapter X for more information" phrases are set up as a character style... it doesn't seem that I can easily cross-reference because I didn't set these phrases up using paragraph styles (which doesn't make much sense to me as each cross-reference would need to be a new paragraph).
    I think I just need to anchor the "See Chapter X for more information," phrases, but that isn't proving to be easy to position, the text anchor boxes are showing up in crazy places... having a hard time figuring out how to position anchored text.
    Can anyone help?
    Thanks in advance.

    Hi Conrad,
    I'm running CS 5.5 so can't be sure of the differences with your version.
    The problem here is simply one of ID terminology.
    I suspect what you want to do is this:
    1. Select your destination text with the type tool. The destination text is what you want the reference to link to. Then, in the Hyperlinks control menu menu, choose "New Hyperlink Destination" and give it a simple and unique name.
    2. Find the text that you want to connect to the destination text. Select it and in the same control panel choose "New Hyperlink..." You'll have the choice of selecting from (what will ultimately be) a number of text anchors.
    I hope that makes sense. I quickly checked to see if ID exports a working cross-reference in EPUB and it does, although I didn't have time to examine the HTML.

  • How to create a window with its own window border other than the local system window border?

    How to create a window with its own window border other than the local system window border?
    For example, a border: a black line with a width 1 and then a transparent line with a width 5. Further inner, it is the content pane.
    In JavaSE, there seems to have the paintComponent() method for the JFrame to realize the effect.

    Not sure why your code is doing that. I usually use an ObjectProperty<Point2D> to hold the initial coordinates of the mouse press, and set it to null on a mouse release. That seems to avoid the dragging being confused by mouse interaction with other nodes.
    import javafx.application.Application;
    import javafx.application.Platform;
    import javafx.beans.property.ObjectProperty;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.collections.FXCollections;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.geometry.Point2D;
    import javafx.geometry.Pos;
    import javafx.scene.Node;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.ChoiceBox;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.layout.StackPane;
    import javafx.scene.layout.VBox;
    import javafx.scene.paint.Color;
    import javafx.stage.Stage;
    import javafx.stage.StageStyle;
    import javafx.stage.Window;
    public class CustomBorderExample extends Application {
      @Override
      public void start(Stage primaryStage) {
      AnchorPane root = new AnchorPane();
      root.setStyle("-fx-border-color: black; -fx-border-width: 1px; ");
      enableDragging(root);
      StackPane mainContainer = new StackPane();
        AnchorPane.setTopAnchor(mainContainer, 5.0);
        AnchorPane.setLeftAnchor(mainContainer, 5.0);
        AnchorPane.setRightAnchor(mainContainer, 5.0);
        AnchorPane.setBottomAnchor(mainContainer, 5.0);
      mainContainer.setStyle("-fx-background-color: aliceblue;");
      root.getChildren().add(mainContainer);
      primaryStage.initStyle(StageStyle.TRANSPARENT);
      final ChoiceBox<String> choiceBox = new ChoiceBox<>(FXCollections.observableArrayList("Item 1", "Item 2", "Item 3"));
      final Button closeButton = new Button("Close");
      VBox vbox = new VBox(10);
      vbox.setAlignment(Pos.CENTER);
      vbox.getChildren().addAll(choiceBox, closeButton);
      mainContainer.getChildren().add(vbox);
        closeButton.setOnAction(new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent event) {
            Platform.exit();
      primaryStage.setScene(new Scene(root,  300, 200, Color.TRANSPARENT));
      primaryStage.show();
      private void enableDragging(final Node n) {
       final ObjectProperty<Point2D> mouseAnchor = new SimpleObjectProperty<>(null);
       n.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent event) {
            mouseAnchor.set(new Point2D(event.getX(), event.getY()));
       n.addEventHandler(MouseEvent.MOUSE_RELEASED, new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent event) {
            mouseAnchor.set(null);
       n.addEventHandler(MouseEvent.MOUSE_DRAGGED, new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent event) {
            Point2D anchor = mouseAnchor.get();
            Scene scene = n.getScene();
            Window window = null ;
            if (scene != null) {
              window = scene.getWindow();
            if (anchor != null && window != null) {
              double deltaX = event.getX()-anchor.getX();
              double deltaY = event.getY()-anchor.getY();
              window.setX(window.getX()+deltaX);
              window.setY(window.getY()+deltaY);
      public static void main(String[] args) {
      launch(args);

  • How to create tick marks within an arched area

    I need to recreate this dial and I've learned how to create evenly spaced tick marks within a circle, but this is an ellipse.  Here, I attempted to draw two ellipse then used the scissors to cut them to size.  Then I used the line tool and drew each of the tick marks.  Then I adjusted the weights of each tick.  This is not a good method because the end ticks are not meeting the ends of the ellipse perfectly, leaving a tiny bit of tick mark outside the ellipse.  There must be a better way to do this. Here is what I ended up with:
    But this is what I need to create:
    (I only need to create the arched part with tick marks of this dial)
    Any help is appreciated, but please note that I am familiar with only the very basics of illustrator, I simply don't do this type of work often enough to completely understand the software.
    Thanks!!!!

    Jber,
    And this is an attempt to give a (hopefully sufficiently) more complete description of the ellipse way, as an amendment of post #4 (overdoing silly things like this makes it difficult to remember to mention all the crucial steps that seem to hide somewhere in the fingers):
    One way that results in constant thickness tick marks might be to (using Stroke>Round Cap/Join or Stroke>Projecting Cap/Miter Join or Stroke>Butt Cap and Miter Join depending on the desired end shape and length, see below, with the layer expanded in the Layers palette, and Smart Guides are your friends, telling you when you when you are in the right spots):
    If you wish to have the tick marks follow an ellipse and at the same time have constant widths (two different widths), you may (see below):
    0) Lock the image of the dial (shown as a grey area below), you may place it at X = 0 to facilitate symmetric building;
    1) Create the thickest tick mark and move a copy to the right, then create a one step blend (Object>Blend Options>Specified Steps = 1, then Object>Blend>Make);
    2) Create the thinnest tick mark and move a copy to the right, then create a five steps blend (Object>Blend Options>Specified Steps = 5, then Object>Blend>Make);
    3) Either of two ways (in both cases make sure to make it as symmetrical as possible):
    3a) Create the midway ellipse, adjusting the top of it to be midway between the two arcs (this is the first way I thought of and the way shown below), or
    3b) Create two ellipses corresponding to the two arcs, then create a one step blend and Object>Blend>Expand to get the midway ellipse and delete the other two;
    4) Drag horizontally with the Line Tool (hold Shift) to make a path between the two spots where the midway ellipse crosses the ends of the dial image (Smarts Guides say intersect), or just create a horizontal path and place it so it crosses the ellipse in the right spots (you can see the symmetry here);
    5) With the horizontal path still selected Object>Path>Divide Objects Below;
    6) Delete the lower superfluous part of the ellipse, then with the Direct Seletion Tool click the horizontal segment and delete it (only click delete once);
    7) Select the remaining midway ellipse part and Object>Path>Offset Path, using half the height of the dial image (at the middle), you may retry until you have it right, this will recreate the top and bottom of the dial and also make ends;
    8) Select the midway ellipse part and Object>Path>Add Anchor Points a few times (see below), and copy the midway ellipse, now you have two on top of each other, one for each of the blends;
    9) Select one of the midway ellipses along with the thin blend from 2) (hold Shift to have them both selected) and Object>Blend>Replace Spine, this will make that ellipse part disappear;
    10) Select the other midway ellipse and the thick blend from 1) (hold Shift to have them both selected) and Object>Blend>Replace Spine;
    11) Hide/Delete the image dial.
    Now you should have the whole dial with both sets of tick marks on top  of the elliptic arch set. In 9) and 10) you may select on the Artboard or through the Layers palette (you can see what you are selecting in both places), and the order (and stacking order) in 1)/2) and 9)/10) can be changed.
    If you wish to move/extend the thick tick marks upwards or both up and down, you may:
    12) Select the thick ticks blend and Object>Blend>Expand, and then Select each of the thick tick marks and tick the appropriate Reference Point in the Transform palette (if you want to extend upwards use the bottom ones (Right for left, Center for centre, Left for right), if you want to extend both up and down use the Center one), then multiply the H value by the desired amount and click Ctrl/Cmd+Enter to make them a bit longer up/outwardly.
    The Object>Path>Add Anchor Points in 8) is to get a even distribution of the thin tick mark blend (not necessary for the thick tick marks blend because it only has one step).

  • How to create links to the same page, how to create links to the same page

    How to create link to the same page with iweb?
    Thanks

    You're referring to anchors.  There are a couple of ways. These topics discuss them:
    iWeb FAQ - Anchors
    How do i hyperlink to certain portion...: Apple Support Communities
    OT

  • Create anchor on "intersection" not working, is always off

    When I use the new anchor tool to create a new point on an intersection, it is never EXACTLY on the intersecting section, but off by a little bit. Sure, I could manually edit the anchor, but the time spent doing this many times over adds up and a slight alteration to the geometry occurs as well.
    Both anchors were created on the same so called "intersection". I would appreciate it if someone could direct me as to how to make anchors on the true intersections.

    Howdy.
    Let me get this straight.
    When you hover the Add Anchor Point Tool over an intersection, "intersection" appears beside it, and then you click, but the new anchor is not at the intersection. Hmm. If your preferences are set as recommended above, you do have a problem.
    Your screen shot is pretty soft, and I'm not sure what is going on in your first example, but looking closely at the right image, this is what I see:
    The arc coming from the left is an open path. You can see its endpoint. It doesn't intersect the straight path at all. The strokes are aligned, not the paths. When you hover over what you think is the intersection (there isn't one), the tool picks up this endpoint and snaps to it, placing the new point there. The distance between the straight path and the endpoint of the arc could be less than the snapping tolerance set in your Smart Guides preferences, so even if you hover precisely over the straight path, the new point could snap to the endpoint of the arc. This will depend on which way you are moving the mouse. If you move the cursor over the arc endpoint first, it will pick it up and indicate "anchor". It will do this until the cursor excedes the snapping tolerance, then it looks for a new target. So you cursor could be over the straight path, but still locked to the arc endpoint. And will place the new point there. Coming from the right, if the cursor passes the straight path first, and reads "path", even if you move it over the anchor point. And will place the point on the path. With two targets within the snapping tolerance, the unexpected can happen. If this guess is right, when you hover over what you think is the intersection, the cursor will indicate "path" or "anchor", but never "intersection". There isn't one.
    Short story, strokes could be leading you astray. I usually do this kind of operation in paths only mode (Crl+Y). This way strokes and fills don't confuse the issue. The above image would look something like this.
    I could be barking up the wrong tree, but I hope not. Otherwise, you could have a software issue.
    Peace,
    Lee

  • Illustrator newbie here- how to create stationary?

    hi guys
    im a housewife doing a lot of handmade art (oil painting, watercolor, etc.) but trying my hand at using Adobe Illustrator for designing simple paper products like invitations and stationary. it's the only way i can help my husband, so im pretty determined to be the least bit knowledgable about it.
    anyone here who can teach me how to create a super simple stationary like this:
    http://ny-image1.etsy.com/il_fullxfull.253005569.jpg
    i'm referring to the "shape" enclosing the word "hello" - like, how can i create that shape on a blank document?
    any help would be greatly appreciated.

    Here's a little picture to explain how your example was done.
    The dotted lines are ruler guides, dragged from the rulers.
    If you don't see any rulers it's Cmd-R on a Mac and probably Ctrl+R on Windows.
    From the top:
    1) With your pen tool draw a curve. Click and drag to produce those handles. The fewer clicks (anchor points) the smoother the curve.
    Note that you can alter curves afterwards by dragging on those handles with the white arrow tool (A) or by holding down Cmd as you draw with the pen.
    2) Once you are satisfied with your curve, double-click on the the reflect tool (O). Use the dialogue to reflect-copy your curve. Move as necessary, snap the 2 ends together and Join them (Cmd+J).
    3) Reflect-copy the double curve and join the ends. Now you've got your basic frame. The others are produced by Option/Shift dragging vertically.
    Now you can experiment with colouring. You may need to re-arrange the objects. The one coloured pink here should be at the back.

  • How to Create the Custom print Quote Report ?

    Hi All,
    I want to create the custom Print Quote report . I know the below details and referred the below metalinks .
    Note: 780722.1 - How to Create a Custom Print Quote Template in Oracle Quoting ?
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=780722.1
    Note: 392728.1 - How to Modify the data source for the XML version of the Print Quote report
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=392728.1
    Note: 468982.1 - How To Customize The Asoprint.Xsl
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=468982.1.
    Oracle Metalink:
    Note: To add a column to the print quote report, following files need to be updated:
    LinesVO.xml --- xml files containing the sql query and attribute definition
    LinesVORowImpl.class - public class extending the framework class OAViewRowImpl.
    This class contains the set and get for the attributes defined in xml file.
    ASOPRINT.xsl - this is the xsl stylesheet file used to describe the report layout.
    This file needs to be modified to include the new column being added to the report
    QUESTION :
    My question is,
    1. wether my approach (below iare the details)of trying to extend the PromptVO is the right way or is there any other way to add the new columns.
    I want to add new fields on to the report . When i looked into the it says the below
    Here we find that to add a new column, oracle says to update the LINESVO.xml, do they really mean to update the base files.
    This report uses following VO's
    PROMPTVO
    HEADERVO,
    LINESVO.
    To create new Headers & Prompts, i tried extending the PROMPTVO. Once the extended VO is substitued , i dont even get the data for standard oracle Prompts. is this the right way to add columns?
    Thanks

    Hi All,
    I want to create the custom Print Quote report . I know the below details and referred the below metalinks .
    Note: 780722.1 - How to Create a Custom Print Quote Template in Oracle Quoting ?
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=780722.1
    Note: 392728.1 - How to Modify the data source for the XML version of the Print Quote report
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=392728.1
    Note: 468982.1 - How To Customize The Asoprint.Xsl
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=468982.1.
    Oracle Metalink:
    Note: To add a column to the print quote report, following files need to be updated:
    LinesVO.xml --- xml files containing the sql query and attribute definition
    LinesVORowImpl.class - public class extending the framework class OAViewRowImpl.
    This class contains the set and get for the attributes defined in xml file.
    ASOPRINT.xsl - this is the xsl stylesheet file used to describe the report layout.
    This file needs to be modified to include the new column being added to the report
    QUESTION :
    My question is,
    1. wether my approach (below iare the details)of trying to extend the PromptVO is the right way or is there any other way to add the new columns.
    I want to add new fields on to the report . When i looked into the it says the below
    Here we find that to add a new column, oracle says to update the LINESVO.xml, do they really mean to update the base files.
    This report uses following VO's
    PROMPTVO
    HEADERVO,
    LINESVO.
    To create new Headers & Prompts, i tried extending the PROMPTVO. Once the extended VO is substitued , i dont even get the data for standard oracle Prompts. is this the right way to add columns?
    Thanks

  • How to create a report based on a DataSet programatically

    I'm working on a CR 2008 Add-in.
    Usage of this add-in is: Let the user choose from a list of predefined datasets, and create a totally empty report with this dataset attached to is. So the user can create a report based on this dataset.
    I have a dataset in memory, and want to create a new report in cr2008.
    The new report is a blank report (with no connection information).
    If I set the ReportDocument.SetDataSource(Dataset dataSet) property, I get the error:
    The report has no tables.
    So I must programmatically define the table definition in my blank report.
    I found the following article: https://boc.sdn.sap.com/node/869, and came up with something like this:
    internal class NewReportWorker : Worker
          public NewReportWorker(string reportFileName)
             : base(reportFileName)
    public override void Process()
             DatabaseController databaseController = ClientDoc.DatabaseController;
             Table table = new Table();
             string tabelName = "Table140";
             table.Name = tabelName;
             table.Alias = tabelName;
             table.QualifiedName = tabelName;
             table.Description = tabelName;
             var fields = new Fields();
             var dbField = new DBField();
             var fieldName = "ID";
             dbField.Description = fieldName;
             dbField.HeadingText = fieldName;
             dbField.Name = fieldName;
             dbField.Type = CrFieldValueTypeEnum.crFieldValueTypeInt64sField;
             fields.Add(dbField);
             dbField = new DBField();
             fieldName = "IDLEGITIMATIEBEWIJS";
             dbField.Description = fieldName;
             dbField.HeadingText = fieldName;
             dbField.Name = fieldName;
             dbField.Type = CrFieldValueTypeEnum.crFieldValueTypeInt64sField;
             fields.Add(dbField);
             // More code for more tables to add.
             table.DataFields = fields;
             //CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo info =
             //   new CrystalDecisions.ReportAppServer.DataDefModel.ConnectionInfo();
             //info.Attributes.Add("Databse DLL", "xxx.dll");
             //table.ConnectionInfo = info;
             // Here an error occurs.
             databaseController.AddTable(table, null);
             ReportDoc.SetDataSource( [MyFilledDataSet] );
             //object path = @"d:\logfiles\";
             //ClientDoc.SaveAs("test.rpt", ref path, 0);
    The object ClientDoc referes to a ISCDReportClientDocument in a base class:
       internal abstract class Worker
          private ReportDocument _ReportDoc;
          private ISCDReportClientDocument _ClientDoc;
          private string _ReportFileName;
          public Worker(string reportFileName)
             _ReportFileName = reportFileName;
             _ReportDoc = new ReportDocument();
             // Load the report from file path passed by the designer.
             _ReportDoc.Load(reportFileName);
             // Create a RAS Document through In-Proc RAS through the RPTDoc.
             _ClientDoc = _ReportDoc.ReportClientDocument;
          public string ReportFileName
             get
                return _ReportFileName;
          public ReportDocument ReportDoc
             get
                return _ReportDoc;
          public ISCDReportClientDocument ClientDoc
             get
                return _ClientDoc;
    But I get an "Unspecified error" on the line databaseController.AddTable(table, null);
    What am i doing wrong? Or is there another way to create a new report based on a DataSet in C# code?

    Hi,
    Have a look at the snippet code below written for version 9 that you might accommodate to CR 2008, it demonstrates how to create a report based on a DataSet programmatically.
    //=========================================================================
    +           * the following two string values can be modified to reflect your system+
    +          ************************************************************************************************/+
    +          string mdb_path = "C:
    program files
    crystal decisions
    crystal reports 9
    samples
    en
    databases
    xtreme.mdb";    // path to xtreme.mdb file+
    +          string xsd_path = "C:
    Crystal
    rasnet
    ras9_csharp_win_datasetreport
    customer.xsd";  // path to customer schema file+
    +          // Dataset+
    +          OleDbConnection m_connection;                         // ado.net connection+
    +          OleDbDataAdapter m_adapter;                              // ado.net adapter+
    +          System.Data.DataSet m_dataset;                         // ado.net dataset+
    +          // CR variables+
    +          ReportClientDocument m_crReportDocument;          // report client document+
    +          Field m_crFieldCustomer;+
    +          Field m_crFieldCountry;+
    +          void CreateData()+
    +          {+
    +               // Create OLEDB connection+
    +               m_connection = new OleDbConnection();+
    +               m_connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdb_path;+
    +               // Create Data Adapter+
    +               m_adapter = new OleDbDataAdapter("select * from Customer where Country='Canada'", m_connection);+
    +               // create dataset and fill+
    +               m_dataset = new System.Data.DataSet();+
    +               m_adapter.Fill(m_dataset, "Customer");+
    +               // create a schema file+
    +               m_dataset.WriteXmlSchema(xsd_path);+
    +          }+
    +          // Adds a DataSource using dataset. Since this does not require intermediate schema file, this method+
    +          // will work in a distributed environment where you have IIS box on server A and RAS Server on server B.+
    +          void AddDataSourceUsingDataSet(+
    +               ReportClientDocument rcDoc,          // report client document+
    +               System.Data.DataSet data)          // dataset+
    +          {+
    +               // add a datasource+
    +               DataSetConverter.AddDataSource(rcDoc, data);+
    +          }+
    +          // Adds a DataSource using a physical schema file. This method require you to have schema file in RAS Server+
    +          // box (NOT ON SDK BOX). In distributed environment where you have IIS on server A and RAS on server B,+
    +          // and you execute CreateData above, schema file is created in IIS box, and this method will fail, because+
    +          // RAS server cannot see that schema file on its local machine. In such environment, you must use method+
    +          // above.+
    +          void AddDataSourceUsingSchemaFile(+
    +               ReportClientDocument rcDoc,          // report client document+
    +               string schema_file_name,          // xml schema file location+
    +               string table_name,                    // table to be added+
    +               System.Data.DataSet data)          // dataset+
    +          {+
    +               PropertyBag crLogonInfo;               // logon info+
    +               PropertyBag crAttributes;               // logon attributes+
    +               ConnectionInfo crConnectionInfo;     // connection info+
    +               CrystalDecisions.ReportAppServer.DataDefModel.Table crTable;+
    +               // database table+
    +               // create logon property+
    +               crLogonInfo = new PropertyBag();+
    +               crLogonInfo["XML File Path"] = schema_file_name;+
    +               // create logon attributes+
    +               crAttributes = new PropertyBag();+
    +               crAttributes["Database DLL"] = "crdb_adoplus.dll";+
    +               crAttributes["QE_DatabaseType"] = "ADO.NET (XML)";+
    +               crAttributes["QE_ServerDescription"] = "NewDataSet";+
    +               crAttributes["QE_SQLDB"] = true;+
    +               crAttributes["QE_LogonProperties"] = crLogonInfo;+
    +               // create connection info+
    +               crConnectionInfo = new ConnectionInfo();+
    +               crConnectionInfo.Kind = CrConnectionInfoKindEnum.crConnectionInfoKindCRQE;+
    +               crConnectionInfo.Attributes = crAttributes;+
    +               // create a table+
    +               crTable = new CrystalDecisions.ReportAppServer.DataDefModel.Table();+
    +               crTable.ConnectionInfo = crConnectionInfo;+
    +               crTable.Name = table_name;+
    +               crTable.Alias = table_name;+
    +               // add a table+
    +               rcDoc.DatabaseController.AddTable(crTable, null);+
    +               // pass dataset+
    +               rcDoc.DatabaseController.SetDataSource(DataSetConverter.Convert(data), table_name, table_name);+
    +          }+
    +          void CreateReport()+
    +          {+
    +               int iField;+
    +               // create ado.net dataset+
    +               CreateData();+
    +               // create report client document+
    +               m_crReportDocument = new ReportClientDocument();+
    +               m_crReportDocument.ReportAppServer = "127.0.0.1";+
    +               // new report document+
    +               m_crReportDocument.New();+
    +               // add a datasource using a schema file+
    +               // note that if you have distributed environment, you should use AddDataSourceUsingDataSet method instead.+
    +               // for more information, refer to comments on these methods.+
    +               AddDataSourceUsingSchemaFile(m_crReportDocument, xsd_path, "Customer", m_dataset);+
    +                              +
    +               // get Customer Name and Country fields+
    +               iField = m_crReportDocument.Database.Tables[0].DataFields.Find("Customer Name", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);+
    +               m_crFieldCustomer = (Field)m_crReportDocument.Database.Tables[0].DataFields[iField];+
    +               iField = m_crReportDocument.Database.Tables[0].DataFields.Find("Country", CrFieldDisplayNameTypeEnum.crFieldDisplayNameName, CeLocale.ceLocaleUserDefault);+
    +               m_crFieldCountry = (Field)m_crReportDocument.Database.Tables[0].DataFields[iField];+
    +               // add Customer Name and Country fields+
    +               m_crReportDocument.DataDefController.ResultFieldController.Add(-1, m_crFieldCustomer);+
    +               m_crReportDocument.DataDefController.ResultFieldController.Add(-1, m_crFieldCountry);+
    +               // view report+
    +               crystalReportViewer1.ReportSource = m_crReportDocument;+
    +          }+
    +          public Form1()+
    +          {+
    +               //+
    +               // Required for Windows Form Designer support+
    +               //+
    +               InitializeComponent();+
    +               // Create Report+
    +               CreateReport();+
    +               //+
    +               // TODO: Add any constructor code after InitializeComponent call+
    +               //+
    +          }+//=========================================================================

  • How to create a group calendar?

    Hello,
    i am sorry but this is one more question on wiki-group-calendars.
    *In short:*
    I am not able to create a group calendar with the wiki frontend. the calendar that is created with a wiki is owned by the admin of the wiki. So it is always a personal calendar that cannot be shared in iCal.
    LONG:
    I want to create a group calendar that is viewed and edited through iCal.app and the web service. Apple´s "wiki deployment" guide says on page 57:
    +"The web calendar allows you to easily schedule events for yourself or your group. ...+
    +There are *two types of web calendars: personal and group*. You can send and receive event invitations through the personal calendar but not through the group calendar. Also, *while anyone in a group can create or edit events in a group calendar*, you can edit only events in your own personal calendar or event invitations you send to other people.+
    +The web calendar uses iCal Server to store events and invitations. ..."+
    But there is not mentioned how to create a group calendar. The calendar created with the wiki web-frontend belongs to the admin of that particular wiki. This is why the calendar data ist stored in folder named with the UUID of the wiki admin. Also the alias "http://server.fqdn:8008/principals/groups/mygroupname/" which i provided in iCal turns into ..._uids_UUID-of-the-wiki-admin and only the wiki-admin can access this calendar in iCal.app.
    My research on this topic reveals that there were in issue that should be resolved in 10.6.4 (that is running on our Server). So, again, how to create a group calendar?
    Thanks, Philipp.
    10.6.4 OSX Server
    10.6.x Clients

    farmer tan wrote:
    you need to go to the wiki page and add the wiki's there and then in the setting of the wiki is where you set permissions and services such as calendar, blog, and podcast you can also set all permissions for the wiki in the settings tab
    fyi none of my groups were available unless i logged into the wiki as the Directory Admin not Server Admin
    migrated from 10.5.7 to 10.6
    Message was edited by: farmer tan
    Could you be more specific farmer tan, please?
    You said "you need to go to the wiki page and add the wiki's there...." What is the "wiki page" you mention? Is that some place I go to via the browser or the Server Admin tool?
    I went to http://ical.mysite.com/ical/ and logged in as the Directory Administrator but didn't see anything resembling what you described.
    Thanks in advance for any help you can provide.

Maybe you are looking for

  • A Threshold of 50

    We are running ODP.Net 9.2.0.4, IIS 5.0, .Net Framework 1.1, ASP.Net 1.1, IE 6.0, Oracle Server and Client 9.2.0.4, all on Windows 2000 Server service pack 4. We have discovered a curious problem when the 50th user since IISRESET (aspnet_wp restart)

  • Ditching AcrobatPro 9.4.5

    I'm not a computer wizard. I'm a 'user.' When you think about the other industry that calls its customers 'users'--that would be the street drug industry--well, IT makes sense in a way it never did before, at least to me. Like tens of thousands of ot

  • How to solve conflict mail address when using aliased domain?

    Currently I am using domain1.com on messaging server. For some reason I have to merge users from domain2.com to the same messaging server. How can I solve the email address conflict problem if two users have the same username on domain1 and domain2?

  • Can I integrate Mac OS X 10.6.2 Update into a 10.6 DVD?

    Hi there, It's my first post on this forum. I am kind of new on Mac family. Well, I have been planning to reinstall Snow Leopard on my MBP as it is getting slow. My question is; for windows we can slipstream the updates (for example: we can slipstrea

  • How do I insert  input data into anoracle table using C#

    Hi guys, I am new in the .NET arena and I am using Visual Studio 2005 Pro edition.. For instance I have 2 forms one being the main form which calls another to to insert captured text onto a form with the idea of passing it into the oracle database. I