ADF 12c Rendering Problems at design time

Hi all,
I am experimenting the following unexpected rendering problems at Design time with JDEV 12c:
-  Sometimes a complete page is showed empty or blank but the components exists on the page (you can see them in the structure panel) and the page has no warnings.
-  Sometimes I cannot click a component because it is behind the container.
-  Sometimes the containers are rendered in other place on the page.
-  Sometimes the containers not stretching
I remember some posts about this problem in 11.1.2.x but I think it was not fixed in 12c. For this reason, I have some questions:
What is the "real" memory requirement  of Jdev 12c to avoid render problems?
What is the best configuration in jdev.conf?
Is it only a memory issue or Is it also a dependency reference problem? According to a blog post of Frank Nimphius:
Though with Oracle JDeveloper 11g the problem of the IDE not rendering JSF pages properly in the visual editor has become rare, there always is a way for the creative to break IDE functionality. A possible reason for the visual editor in JDeveloper to break is a failed dependency reference, which often is in a custom JSF PhaseListener configured in the faces-config.xml file. To avoid this from happening, surround the code in your PhaseListener class with the following statement (for example in the afterPhase method)
public void afterPhase(PhaseEvent phaseEvent) {   if(!ADFContext.getCurrent().isDesigntime()){ ... listener code here ... } }
The reason why the visual editor in Oracle JDeveloper fails rendering the WYSIWYG view has to do with how the live preview is created. To produce the visual display of a view, JDeveloper actually runs the ADF Faces view in JSF, which then also invokes defined PhaseListeners. With the code above, you check whether the PhaseListener code is executed at runtime or design time.If it is executed in design time, you ignore all calls to external resources that are not available at design time.
source:
https://blogs.oracle.com/jdevotnharvest/entry/when_jdeveloper_ide_doesn_t
if it is a known problem, then Why is not fixed in 12c?
Jhon
Jdev 12c

Jhon, what Frank mentioned can't be fixed from the outside. You or the developers who use phase listens without thinking about the design view are the ones to fix this. Frank provided you with the solution for this.
However, we don't know if you use any self written phase listener. If you don't do this you have another problem. I do see some of your symptoms but can't reproduce them at the moment. As long as we can't reproduce the problem somehow it's difficult to to get a solution.
My advise is to keep your eyes open (add I do) and whenever you can reproduce this behaviour come back and tell us about it. It's hard or impossible to give the 'best' settings for Jdev.conf as they depend on other factors e.g. operating system, memory, other applications running at the same time and many more.
Personally I don't change the parameters as long as I can't put the problems to low memory (which I can't at the moment).
Timo

Similar Messages

  • ADF taskflow rendering problem during run time

    Hi
    I have my webcenter portal application created with login.jspx page
    I have dragged and dropped my bounded taskflow(login-taskflow.xml) into my page as region
    I can able to see my default page fragment content  at design time. But it is displaying empty page at in run time. Region contents are not getting displayed
    Login-taskflow.xml contains two page fragments login.jsff,firstTimeHere.jsff
    Code of Login.jspx:
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
       <f:loadBundle basename="oracle.webcenter.portalframework.sitestructure.resource.PortalAppPageResource"
                    var="portalResource"/>            
      <f:view>
          <af:document title="#{portalResource['login_title']}" id="d1">
           <af:form id="f1">
         <af:panelStretchLayout id="psl1" bottomHeight="0px">
              <f:facet name="center">
              <af:panelStretchLayout id="psl2">
                   <f:facet name="center">
                    <af:panelGroupLayout id="pgl1" halign="center">           
               <af:region value="#{bindings.Logintaskflow1.regionModel}" id="r1"/>
              </af:panelGroupLayout></f:facet></af:panelStretchLayout></f:facet></af:panelStretchLayout>
          </af:form> </af:document>
              </f:view></jsp:root>
    I want to confirm is it because of surrounded tag elements of <af:region>.
    Help me in this.

    loginPageDef.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
                    version="11.1.1.55.96" id="loginPageDef"
                    Package="oracle.webcenter.portalapp.pages">
      <parameters>
        <parameter id="page_info"
                   value="title=login;desc=;keywords=;createdBy=weblogic;createDate=2014-12-22T15:54:32;lastUpdatedBy=weblogic;lastUpdateDate=2014-12-22T15:54:32;permissionClass=oracle.webcenter.security.auth.HierarchicalResourcePermission;target=serviceID=oracle.webcenter.page,scopeID=s8bba98ff_4cbb_40b8_beee_296c916a23ed,resourceID=/oracle/webcenter/portalapp/pages/login.jspx;excluded=false;style="/>
        <parameter id="page_title" value="login"/>
      </parameters>
      <executables>
        <variableIterator id="variables"/>
        <page viewId="${preferenceBean.defaultPageTemplate}"
              id="pageTemplateBinding" Refresh="ifNeeded"/>
        <taskFlow id="Logintaskflow1"
                  taskFlowId="/WEB-INF/Login-taskflow.xml#Login-taskflow"
                  activation="deferred"
                  xmlns="http://xmlns.oracle.com/adf/controller/binding"/>
      </executables>
      <bindings/>
      <permission permissionClass="oracle.webcenter.security.auth.HierarchicalResourcePermission"
                  target="serviceID=oracle.webcenter.page,scopeID=s8bba98ff_4cbb_40b8_beee_296c916a23ed,resourceID=/oracle/webcenter/portalapp/pages/login.jspx"
                  xmlns="http://xmlns.oracle.com/adf/security">
        <privilege-map operation="create" privilege="create"/>
        <privilege-map operation="delete" privilege="delete"/>
        <privilege-map operation="edit" privilege="update"/>
        <privilege-map operation="personalize" privilege="personalize"/>
        <privilege-map operation="view" privilege="view"/>
      </permission>
    </pageDefinition>
    But the same code is working in Fusion web application project.

  • Adf components not seen at design time

    Hi All,
    At design time pages are displayed like:
    <>Root
    <>Output @page directive
    <>View
    <>Html,
    and so on, for any page in the application. In another application all the pages look fine (if I copy their contents). Tag libraries and libraries in project properties tab are the same as in normal projects. What settings should I check to be able to see all components in normal mode at design time? This is JDeveloper 10.1.3.2.0.
    Thanks
    SNikiforov

    http://blogs.oracle.com/Didier/2007/02/diagnosing_problems_with_the_v_1.html

  • Layout Editor is not rendering widgets during Design time

    Hi,
    I am new in ADF development and my page has suddenly stop rendering in Design Tab. Initially, when I was running unbounded task flow, it is just showing a blank page.
    Can anybody help me in resolving this issue? I have seen Franks note on PhaseListener. I would appreciate if some one can guide me with the detailed class and how to create the same.
    Parvez

    Hi Timo,
    Sorry for the late response and not specifying more in detail.
    My Jdeveloper version is 11.1.1.6 R1.  When I ran for the first time, it was working fine. Then later on, when I was running it was opening completely blank screen.
    I thought it is something to do with the permission to the task flow. I have opened web.xml and jazn-data.xml file to check and closed without tweaking these files.
    Now, I was not able to open the page in the designer also. It was just showing hierarchy of all the components.
    I copied the backup again and it worked. What could be the reason so that I can avoid doing this in future?
    Is this related to Jdeveloper bug as I have seen on other forums highlighting this issue.

  • Updating tag attributes in design time

    I have a design time renderer for my custom component... As the component renders itself in design time, I set some of the component properties from within the renderer... The property sheet correctly shows those values... However, the associated JSP tag in the source view does not show those attributes... The JSP tag attributes dictate the runtime behavior and since they are not set properly, my component misbehaves.
    How do I make sure that the tag attributes sync up with the property sheet values?
    Also, what is the motivation behind the property sheet displaying the component values and not the JSP tag values? Having it the way it is right now opens itself up to a bunch of out-of-sync problems like the one I encountered.
    Thanks,
    Keyur

    Ok - here are a couple of scenarios:
    1. I have a component, say chart component associated with a connection component like this:
    <my:connection id="connection1" />
    <my:chart connectionId="connection1" />The user first drags and drops the connection component. The ID connection1 is automatically associated to it. Next he drops the chart component. Now, I would like to automatically populate the connectionId attribute without the user having to type it in manually. I am able to do that (in design time) in the renderer of the chart component - I programmatically look for a connection component on the page and set the connectionId attribute of the control. And when I do that it correctly shows the connectionId attribute populated in the property sheet but the corresponding tag attribute is not.
    Sure enough, at runtime, it is the tag attribute values that count and since those are not updated by the IDE, it does not work as expected.
    2. Creator updates the style attribute when I move or resize the component. Now, I also have position attributes left and top defined on my component and I use these attributes at runtime to position my component. So, in design time I extract the left and top values from the style attribute and set them on the component. But again, the tag attributes are not populated and so the component is not positioned properly.
    #1 is to convenience the user so that he doesn't have to manually enter values for attributes which can be automatically populated at design time.
    In fact for #1, I would ideally like to show the user a drop down list of all the connections available to him in the property sheet and select the first one by default. Is this possible?
    #2 is for backward compatibility reasons - We already have runtime renderers in place which use left and top attributes explicitly to render the components at runtime. And this is not restricted to left and top only but other client attributes as well - such as borders, backgrounds etc. which we expose as separate attributes.

  • ADF Faces: Design-time problems

    Hi!
    We are working at JetBrains on several JSF features, and we have some serious problems with components' behavior on design time. Can we recieve an engineer contact, who can be discussed these problems with?

    I think your question is still confusing - are you saying JetBrains is not used? Is this a pure ADF Faces issue? - it would also help people on the list if you can explain WHAT the actual component is and WHAT the problem you are seeing....
    Regards
    Grant

  • JSF Design Time View Not working correctly for ADF/JSF components

    My project is not using any external tag libraries. It is based purely on ADF core/html and JSF core/html components. The design time view does not show the appropriate presentation, everything is shown as nexted frame containers (I suppose how you would show a component that does not have a visual representation).
    If I create a new project and copy my jsp (jsf) pages over they show perfectly. I did this activity and all was going well in the new project and then I lost the design time view again. I cannot tell you what I did to cause the issue, maybe it was a modification to the web.xml as has been suggested in some other threads. Can anyone tell me what I should be looking for that causes this problem, what corrective actions I might take to eliminate the issues

    Ok I have isolated this issue. In my phase listener I had this line of code:
    private static final Logger _logger =  Logger.getLogger(EigRequest.class.getPackage().getName());
    and I changed it to
    private static final Logger _logger =
    Logger.getLogger(EigRequest.class.getName());
    and design mode started to work. I guess either of the above works for me although I do not understand why the line works when you run the application but not in design mode.
    Moral to the story is if something fails in any one of these types of decorators you will drop into a raw view mode. The question I have is if errors are occuring how do I figure out where they may be. There is no indication that anything is wrong with the exception that you lose most of the design mode functionality.
    This was not a compile issue, this was not a runtime issue. It took me quite a few hours of writing a test program to validate that it was not just writing a phase-listener issue; then launching, editing, relaunching the application to find the problem. I will say that a good portion of the code came from a Eclipse project. If you add the offending lines of code while using JDeveloper you do not loose design mode immediately. You only see the problem the next time you start JDeveloper which complicates finding the problem.

  • This region cannot be rendered at design time

    hi i have created a method call for createInsert in my bounded task flow,i drag and drop my data control createInsert to my task flow and make it a default activity,but when i go to my jspx page is showing the error ,This region cannot be rendered at design time,am in jdeveloper 11.1.1.6.0
    i what to Set inputtext in insert mode ,when the page load,this is what amtrying to do
    http://docs.oracle.com/cd/E12839_01/web.1111/b31974/web_form.htm#CACECCJA
    Edited by: adf0994 on 2012/11/22 10:17 AM

    did you see this post? Re: Jsf page not rendering in Jdeveloper
    i had a similar problem, but not sure if it is the same. Frank mentioned something about mixing facelets and jspx pages, but did not elaborate. someone else mentioned to comment out some xml...

  • Using Design-Time API problems

    I've been using the design time API to create an effect similar to that achieved in the examples section of the User guide for the HtmlDataTable. I'm not having any luck with my beanCreatedSetup method. I've done simething similar to the example and have created DesignBeans as table columns but in my examplecode the JSP code is not correct. In the JSP none of the children elements appear as children of the table,. I'm passing in the correct parent design bean when I call createBean, so I'm not sure what I'm doing wrong.
    My code is pretty much the same as in the example.
    Any ideas would help. Or a look at the complete source to HtmlDataTableDesignInfo.
    Don

    I was looking for a more immediate response to this specific problem, the other thread was a request for better examples in the docs. They are related, a complete example could solve my problem, but I'm nore sure there isn't a problem with the createBean() call. No matter what I do, I can't create a bean for component that get's persisted as a child component of a parent. In this case the parent DesignBean is derived from HtmlTableData and I'm trying to add children DesignBeans that are columns. After adding them they are persisted into the jsp page but not as children of the table component.
    Don

  • Question on PG design-time web bean: rendered false

    Is there a rule or documentation on the behavior of web beans in PG when design-time property rendered is set to False?
    Bean instance is unpredictable when using findChildRecursive method of OAWebBean.
    Use Case:
    Update is needed on an existing page. We want this new item to display only on specific scenario.
    public void processRequest(final OAPageContext pageContext, final OAWebBean webBean) {
        final boolean metCriteria = true;
        if (metCriteria) {
            final OAWebBean bean = (OAWebBean)webBean.findChildRecursive("BeanId"); //alas! bean can be null!
            bean.setRendered(true); 
    }Workaround is do it negatively w/c is a little inconvenient. Set design-time render to true, and do setRendered(false) in PR when new scenario criteria is not met. You want rendered property to be false by default so you are a little sure that original behavior is not affected.
    public void processRequest(final OAPageContext pageContext, final OAWebBean webBean) {
        final boolean metCriteria = false;
        if (!metCriteria) {
            final OAWebBean bean = (OAWebBean)webBean.findChildRecursive("BeanId");//Bean is never null.
            bean.setRendered(false);
    }Any ideas?

    Hi
    Better to segregate the EJB's and put it in seperate controller keep atmost 30 in one controller (you have around 3-4 component ). Any component which is going to use in other component is basically based on create on demand priniciple automatically by framework.
    or
    as given in point third create a component , with say 8-10 Custom Controller  implement the all the methods and put a same method signature in Component Controller, call the same through interface thats it.
    Best Regards
    Satish Kumar

  • Design Time Customization in ADF

    HI,
    I like to know more about How to achieve Design Time Customization in ADF.
    Please guide me about this. (You can Share link, sample example, study material about the same.)
    Thanks In Advanced.

    Did you try asking Google?
    http://www.oracle.com/technetwork/developer-tools/jdev/adfmds-128339.pdf is one of the things you'd find if you had

  • Design Time Bean Customizer validate Rule and use multiple time problem

    Hi,
    I have implement a custom validation rule ,add a design time bean customizer for my rule then register on datamodel project,i can use the graphic design time bean customizer and add my validate rule to my entity xml file,but when i add another instance to the same entity,data added to entity xml file was not correct,it may be not integrity or all data are same ,how can i do ? I found all bean validation with the same name ,it is the registered rule name "plsql rule", any suggestion are appreciative
    thank you advance
    li xin zhu 2007/09/08

    Hi,
    One thing you can do in the FOX would be to mark all fields in 'to be changed'. This will have the impact of having all data in the same data package and the FOX code will execute only once.

  • JDeveloper: Viewing a .css on JSP at design-time + run-time

    Hi,
    As a newbie to JDeveloper, i'm struggling to get a stylesheet reference to work in both the Design view and at run-time. Dragging a stylesheet on to the JSP works fine in the development enviroment, but when the JSP is called from a controlling servlet, the stylesheet doesn't render. From looking on the web it seems i have to use request.getContextPath() to get the path: doing this works at runtime, but in the design view of JDeveloper doesn't show anything (obviously wouldn't because the getContextPath is evaluated at runtime).
    Is there a work around so i can see a style sheet rendered in both design & runtime?
    Thanks,
    Phil

    Hi,
    Thanks for your reply. When I added my stylesheet (from the component palette) JDev put it in a 'css' folder. When I drag it on to the page it uses ..href = "css/stylesheet.css".. This doesn't work at runtime, neither does href = "/css/stylesheet.css".
    To explain the problem better...if I create a new project with 2 jsp files and link them together with Go to page 1 etc this is fine. As soon as I use the mvc method of controlling jsps thorough servlets I can call page 1 fine, but if I linked back to page 2 with the href calling the jsp directly (rather than through a servlet) it won't find the page, because the context root has an extra 'servlet' folder on the path, ie it's looking for page 2 in "Testing-Project-context-root/servlet/page2.jsp", when it's not located in a servlet folder. This is why the css file is not rendering, because it's looking for it in a servlet folder. I can only get round it at the moment by using:
    <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/stylesheet.css"/>. This of course is no good in the development environment.
    Thanks,
    Phil

  • Spry Menu Bar 2.0 (1.0) - Handling of widget generated CSS, placement and rendering problems in CSS

    Hello:
    I wanted to repost my question to re-frame the issue based on what I have learned thus far.
    I am working on a website that has been developed using the Spry Menu Bar Framework UI (2.0) I.0, that has some peculiar rendering problems that affect IE 6 in particular.  The CSS is reprinted below.
    In particular, when I post the widget generated CSS in the head as it is orginally situated by the framework, the menu bar works fine.  However, it seemed to me that I should be able to reduce page weight (an important consideration considering my target population) by placing it in the general style sheet governing the entire site.
    When I place the styles at the beginning of the style sheet the menu doesn't render at all in any of the browsers (IE 6+, Firefox, Opera, Safari, Netscape, etc.) as it conflicts with the general rules governing links that appear later in the style sheet.  When I place the styles specific to the Menu bar at the end of the style sheet, then the menu bar renders properly in all browsers except IE 6.
    The odd thing is that the only way to ensure that the menu bar works in IE 6 is to keep the menu related styles in the head of each page.  This raises problems related to page weight (not an insurmountable consideration if no other solution can be found) but still an issue.  Likewise I need to support IE 6, again given the target audience/population.  The issue obviously has something to do with specificity, but I am not certain that is the only consideration at work here.  I have not tried the !important selector in regard to the menu, as IE 6 seems to only partially support this.
    Thanks in advance for any advice or insight that can be provided.  Thanks in particular to Martin for his contributions to my earlier question related to this issue.
    Steve Webster.
    The CSS governing the horizontal menu bar is as follows:  (currently the following CSS is embedded in the head of the web page)
    <style type="text/css">
    /*  -- Begins Spry Menu Widget 2.0 (1.0) Horizontal menu bar Custom styles --  */
    /* BeginOAWidget_Instance_2141544: #MenuBar */
    /* Settable values for skinning a Basic menu via presets. If presets are not sufficient, most skinning should be done in
       these rules, with the exception of the images used for down or rightpointing arrows, which are in the file SpryMenuBasic.css
         These assume the following widget classes for menu layout (set in a preset)
       .MenuBar - Applies to all menubars - default is horizontal bar, allsubmenus are vertical - 2nd level subs and beyond are pull-right.
        .MenuBarVertical - vertical main bar; all submenus are pull-right.
       You can also pass in extra classnames to set your desired top levelmenu bar layout. Normally, these are set by using a preset.
        They only apply to horizontal menu bars:
            MenuBarLeftShrink - The menu bar will be horizontally 'shrinkwrapped' to be just large enough to hold its items, and left aligned
            MenuBarRightShrink - Just like MenuBarLeftShrink, but right aligned
            MenuBarFixedLeft - Fixed at a specified width set in the rule '.MenuBarFixedLeft', and left aligned. 
            MenuBarFixedCentered -  - Fixed at a specified width set in the rule '.MenuBarFixedCentered',
                            and centered in its parent container.
            MenuBarFullwidth - Grows to fill its parent container width.
        In general, all rules specified in this file are prefixed by #MenuBar so they only apply to instances of the widget inserted along
       with the rules. This permits use of multiple MenuBarBasic widgets onthe same page with different layouts. Because of IE6 limitations,
        there are a few rules where this was not possible. Those rules are so noted in comments.
    #MenuBar  {
        background-color:transparent;
       font-family: Arial, Helvetica, sans-serif; /* Specify fonts on onMenuBar and subMenu MenuItemContainer, so MenuItemContainer,
                                                    MenuItem, and MenuItemLabel
                                                    at a given level all use same definition for ems.
                                                    Note that this means the size is also inherited to child submenus,
                                                    so use caution in using relative sizes other than
                                                    100% on submenu fonts. */
        font-weight: normal;
        font-size: 17px;
        font-style: normal;
        padding:0;
    /* Caution: because ID+class selectors do not work properly in IE6, but we want to restrict these rules to just this
    widget instance, we have used string-concatenated classnames for our selectors for the layout type of the menubar
    in this section. These have very low specificity, so be careful not to accidentally override them. */
    .MenuBar br { /* using just a class so it has same specificity as the ".MenuBarFixedCentered br" rule bleow */
        display:none;
    .MenuBarLeftShrink {
        float: left; /* shrink to content, as well as float the MenuBar */
        width: auto;
    .MenuBarRightShrink {
        float: right; /* shrink to content, as well as float the MenuBar */
        width: auto;
    .MenuBarFixedLeft {
        float: left;
        width: 80em;
    .MenuBarFixedCentered {
        float: none;
        width: 80em;
        margin-left:auto;
        margin-right:auto;
    .MenuBarFixedCentered br {
        clear:both;
        display:block;
    .MenuBarFixedCentered .SubMenu br {
        display:none;
    .MenuBarFullwidth {
        float: left;
        width: 100%;
    /* Top level menubar items - these actually apply to all items, and get overridden for 1st or successive level submenus */
    #MenuBar  .MenuItemContainer {
        padding: 0px 0px 0px 0px;
        margin: 0;     /* Zero out margin  on the item containers. The MenuItem is the active hover area.
                    For most items, we have to do top or bottom padding or borders only on the MenuItem
                    or a child so we keep the entire submenu tiled with items.
                    Setting this to 0 avoids "dead spots" for hovering. */
    #MenuBar  .MenuItem {
        padding: 10px 10px 10px 4px;
        background-color:#000088;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Nav igation%20Bar%20Segment-Dark.png);
        background-repeat:repeat-x;       
    #MenuBar  .MenuItemFirst {
        border-style: none none none none;
    #MenuBar .MenuItemLast {
        border-style: none none none none;
    #MenuBar  .MenuItem  .MenuItemLabel{
        text-align:center;
        line-height:1.4em;
        color:#ffffff;
        background-color:transparent;
        padding: 0px 18px 0px 5px;
        width: 10em;
        width:auto;
    .SpryIsIE6 #MenuBar  .MenuItem  .MenuItemLabel{
        width:1em; /* Equivalent to min-width in modern browsers */
    /* First level submenu items */
    #MenuBar .SubMenu  .MenuItem {
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
        font-size: 15px;
        font-style: normal;
        background-color:#000088;
        padding:0px 2px 0px 0px;
        border-width:0px;
        border-color: #cccccc #cccccc #cccccc #cccccc;
        /* Border styles are overriden by first and last items */
        border-style: solid solid none solid;
    #MenuBar  .SubMenu .MenuItemFirst {
        border-style: none;
        padding: 0px;
    #MenuBar  .SubMenu .MenuItemFirst .MenuItemLabel{
        padding-top: 0px;
    #MenuBar .SubMenu .MenuItemLast {
        border-style: none none none none;
    #MenuBar .SubMenu .MenuItemLast .MenuItemLabel{
        padding-bottom: 10px;
    #MenuBar .SubMenu .MenuItem .MenuItemLabel{
        text-align:left;
        line-height:1em;   
        background-color:transparent;
        color:#ffffff;
        padding: 10px 10px 10px 10px;
        width: 240px;
    /* Hover states for containers, items and labels */
    #MenuBar .MenuItemHover {
        background-color: #2E35A3;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Nav igation%20Bar%20Segment%20Light2.png);
        background-repeat:repeat-x;
    #MenuBar .MenuItemWithSubMenu.MenuItemHover .MenuItemLabel{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    #MenuBar .MenuItemHover .MenuItemLabel{
        background-color: transparent;
        color: #ffffff;
    #MenuBar .SubMenu .MenuItemHover {
        background-color:#2E35A3;
    #MenuBar .SubMenu .MenuItemHover .MenuItemLabel{
        background-color: transparent;
        color: #ffffff;
    /* Submenu properties -- First level of submenus */
    #MenuBar .SubMenuVisible {
        background-color: transparent;
       min-width:0%;  /* This keeps the menu from being skinnier than theparent MenuItemContainer - nice to have but not available on ie6 */
        border-style: none none none none;
    #MenuBar.MenuBar .SubMenuVisible {/* For Horizontal menubar only */
        top: 100%;    /* 100% is at the bottom of parent menuItemContainer */
        left:0px; /* 'left' may need tuning depending upon borders or padding applied to menubar MenuItemContainer or MenuItem,
                        and your personal taste.
                       0px will left align the dropdown with the content area of theMenuItemContainer. Assuming you keep the margins 0
                        on MenuItemContainer and MenuItem on the parent
                        menubar, making this equal the sum of the MenuItemContainer & MenuItem padding-left will align
                        the dropdown with the left of the menu item label.*/
        z-index:10;
    #MenuBar.MenuBarVertical .SubMenuVisible {
        top: 0px;   
        left:100%;
        min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse */
    /* Submenu properties -- Second level submenu and beyond - these are visible descendents of .MenuLevel1 */
    #MenuBar .MenuLevel1 .SubMenuVisible {
        background-color: transparent;
        min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse*/
        top: 0px;    /* If desired, you can move this down a smidge to separate top item''s submenu from menubar -
                    that is really only needed for submenu on first item of MenuLevel1, or you can make it negative to make submenu more
                    vertically 'centered' on its invoking item */
        left:100%; /* If you want to shift the submenu left to partially cover its invoking item, you can add a margin-left with a
                    negative value to this rule. Alternatively, if you use fixed-width items, you can change this left value
                    to use px or ems to get the offset you want. */
    /* IE6 rules - you can delete these if you do not want to support IE6 */
    /* A note about multiple classes in IE6.
    * Some of the rules above use multiple class names on an element forselection, such as "hover" (MenuItemHover) and "has a subMenu"(MenuItemWithSubMenu),
    * giving the selector '.MenuItemWithSubMenu.MenuItemHover'.
    * Unfortunately IE6 does not support using mutiple classnames in aselector for an element. For a selector such as '.foo.bar.baz', IE6ignores
    * all but the final classname (here, '.baz'), and sets thespecificity accordingly, counting just one of those classs assignificant. To get around this
    * problem, we use the plugin in SpryMenuBarIEWorkaroundsPlugin.js to generate compound classnames for IE6, such as 'MenuItemWithSubMenuHover'.
    * Since there are a lotof these needed, the plugin does not generate the extra classes formodern browsers, and we use the CSS2 style mutltiple class
    * syntax for that. Since IE6 both applies rules where
    * it should not, and gets the specificity wrong too, we have to order rules carefully, so the rule misapplied in IE6 can be overridden.
    * So, we put the multiple class rule first. IE6 will mistakenly apply this rule.  We follow this with the single-class rule that it would
    * mistakenly override, making sure the  misinterpreted IE6 specificity is the same as the single-class selector, so the latter wins.
    * We then create a copy of the multiple class rule, adding a '.SpryIsIE6' class as context, and making sure the specificity for
    * the selector is high enough to beat the single-class rule in the "both classes match" case. We place the IE6 rule at the end of the
    * css style block to make it easy to delete if you want to drop IE6 support.
    * If you decide you do not need IE6 support, you can get rid of these,as well as the inclusion of the SpryMenuBarIEWorkaroundsPlugin.jsscript.
    * The 'SpryIsIE6' class is placed on the HTML element by the script in SpryMenuBarIEWorkaroundsPlugin.js if the browser isInternet Explorer 6. This avoids the necessity of IE conditionalcomments for these rules.
    .SpryIsIE6 #MenuBar .MenuBarView .MenuItemWithSubMenuHover .MenuItemLabel /* IE6 selector  */{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    .SpryIsIE6 #MenuBar .MenuBarView .SubMenu .MenuItemWithSubMenuHover .MenuItemLabel/* IE6 selector  */{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    .SpryIsIE6 #MenuBar .SubMenu .SubMenu  /* IE6 selector  */{
        margin-left: -0px; /* Compensates for at least part of an IE6 "double padding" version of the "double margin" bug */
    /* EndOAWidget_Instance_2141544 */
    /* Ends Spry Menu Bar Widget 2.0 (1.0) Horizontal Menu Custom styles */
    </style>
    The CSS governing the site generally is reproduced below:  (my belief is that it is the a:link, a:visited,  a:hover, a:active styles that may be in conflict).
    @charset "utf-8";
    body  {
        font: 100% Verdana, Arial, Helvetica, sans-serif;
       min-height: 0; /* This is necessary to overcome the "haslayout" bugthat is found in Windows 7 in conjuction with IE8.  For Moreinformation see: URL -- http://reference.sitepoint.com/css/haslayout.html */
        margin: 0; /* it's good practice to zero the margin and padding of the body element to account for differing browser defaults */
        padding: 0;
        text-align:center; /* This allows for the centering of the container and overcomes a bug inherent in IE 5 */
        color: #000000;
        list-style-image: none;
        background-color: #FCFCFC;
    h1,h2,h3,h4,h5,h6 {
    color:#000066;
    a:link {
        color: #151A96;
        text-decoration: underline;
    a:visited {
        text-decoration: underline;
        color: #1B8DCD;
    a:hover {
        text-decoration: none;
        color: #F30A0A;
    a:active {
        text-decoration: underline;
        color: #151A96;
    #container {
        width: 960px;   
        margin: 0 auto; /* the auto margins (in conjunction with a width) center the page */
        text-align: left; /* this overrides the text-align: center on the body element. */
        background-image:
        url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Website%20Midsection %20_960.png);
        background-repeat: repeat-y;
    #header {
           padding: 0;  /* this padding matches the left alignment of the elementsin the divs that appear beneath it. If an image is used in the #headerinstead of text, you may want to remove the padding. */
            width:960px;
            height:332px;
            background-image:
            url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Website%20Header_960 .png);
            background-repeat:no-repeat;
    #header h1 {
        margin-right: 0px; /* zeroing the margin of the last element in the #header div will avoid margin collapse - an unexplainable space between divs. If the div has a border around it, this is not necessary as that also avoids the margin collapse */
        padding: 0; /* using padding instead of margin will allow you to keep the element away from the edges of the div */
        display:none;
    #header img {
        display: none;
    #Main_nav_contents {
        padding: 0;
        margin-top: 0px;
        height: 39px;
        width: 950px;       
        padding-top: 275px; 
        padding-left: 39px;
        z-index: 3; 
    #MenuBarVertical {
        margin-bottom: 50px;
        padding-top: 50px;
        padding-bottom:200px;
        padding-left: 15px;
        padding-right: 15px;
    .mainContent_left {
       margin: 0;/* the right margin on this div element creates the columndown the right side of the page - no matter how much content thesidebar1 div contains, the column space will remain. You can removethis margin if you want the #mainContent div's text to fill the#sidebar1 space when the content in #sidebar1 ends. */
        padding-left:30px;
        padding-right:20px; /* remember that padding is the space inside the div box and margin is the space outside the div box */
        width: 600px;
        float: left;
    .sidebar_right {
        float: right; /* since this element is floated, a width must be given */
        width: 270px; /* the actual width of this div, in standards-compliant browsers, or standards mode in Internet Explorer will include the padding and border in addition to the width */
        margin-top: 30px;
        margin-left:0;
        margin-right:10px;
        font-size:90%;
    .mainContent_right {
        margin-left: 10px;
        padding-left:30px;
        padding-right:20px;
        width: 600px;
        float: right;
    .sidebar_left {
        float: left; /* since this element is floated, a width must be given */
        width: 270px; /* the actual width of this div, in standards-compliant browsers, or standards mode in Internet Explorer will include the padding and border in addition to the width */
        margin-top: 30px;
        margin-left:30px;
        margin-right:0;
        overflow: hidden;
        font-size:90%;
    .main_content_centered {
        width: 650px;
        margin-left: 155px;
    .main_content_centered_header {
        margin-left: 75px;
    .sidebar_textbox {
        margin: 0px;   
        width: 260px;
        padding: 2px;
    .sidebar_textbox_header {
        width:255px;
        height:58px;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Por trait%20Textbox%20Header.png);
    .sidebar_textbox_background_middle {
         width: 255px;   
        padding-top: 12px;   
        padding-bottom: 10px;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Por trait%20Textbox%20Middle.png);
        background-repeat: repeat-y;
    .sidebar_textbox_content {
       /* The width and padding are set as follows to accomodate quirks inbrowser rendering and to ensure that text is contained within thebackground of the text box */
        width: 230px;
        padding-left: 20px;
        padding-right: 40px;
    .sidebar_textbox_footer {
        width:255px;
        height:64px;
    background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Port rait%20Textbox%20Footer.png);
    #issues_menu a:link {
        color: #151A96;
        text-decoration: none;
        font-weight:bold;
    #issues_menu a:visited {
        color: #151A96;
        font-weight:bold;
        text-decoration: none;
    #issues_menu a:hover {   
        color: #F30A0A;
        font-weight:bold;
        font-style: oblique;
        text-decoration: none;
    #issues_menu a:active {
        color: #151A96;
        font-weight:bold;
        text-decoration: none;
    #archives {
        padding-top: 15px;
        padding-right: 15px;
        padding-bottom: 20px;
        padding-left: 0px;
    .landscape_textbox {
        width: 500px;
        margin-right: 0px;
        margin-left: 30px;
        padding-top:35px;
        padding-bottom: 25px;
        font-style: normal;
        font-weight: normal;
    .landscape_textbox_hdr {
        width:500px;
        height:38px;
        margin:auto;
        padding:0;
        background-image:
    url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Landscape%20Textbox%2 0Header.png);
    .landscape_textbox_middle {
        width:auto;
        margin:auto;
        padding-top: 12px;
        padding-bottom: 12px;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/lan dscapte%20Textbox%20Middle.png);
        background-repeat:repeat-y;
    .landscape_textbox_content {
        width:450px;
        padding:25px;
    .landscape_textbox_ftr {
        width:500px;
        height:44px;
        margin:auto;
        padding:0;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Lan dscape%20Textbox%20Footer.png);
    #footer {
        padding: 0; /* this padding matches the left alignment of the elements in the divs that appear above it. */
        width: 960px;
        height: 222px;
        background-image:
        url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Website%20Footer%20_ 960.png);
        background-repeat:no-repeat;
    #footer p {
       margin: 0px; /* zeroing the margins of the first element in the footerwill avoid the possibility of margin collapse - a space between divs */
        padding:0px; /* padding on this element will create space, just as the the margin would have, without the margin collapse issue */
        text-align:center;
        margin-left: 50px;
        margin-right: 50px;
        padding: 10px;
        font-size: small;
    #footer h5 {
    text-align:center;
    .fltrt { /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
        float: right;
        margin-left: 8px;
    .fltlft { /* this class can be used to float an element left in your page */
        float: left;
        margin-right: 8px;
    .clearfloat { /* this class should be placed on a div or break element and should be the final element before the close of a container that should fully contain a float */
        clear:both;
        height:0;
        font-size: 1px;
        line-height: 0px;
    .dropcap {
        display: block;
        float: left;
        line-height: 80%;
        font-size: 250%;
        font-weight: bolder;
        color: #000066;   
        padding: .03em .1em 0 0;
    .red_arrows {
        list-style-position: outside;
        list-style-image: url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Arrow%20Large.png);    
    .blue_bullets {
        list-style-position: outside;
        list-style-image: url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Bullet%20Medium%20Fu ll.png);   
    .attention {
        color: #F30A0A;
        font-size:x-large;
        font-family: Georgia, "Times New Roman", Times, serif;
        font-style: italic;
        font-weight:900;
    .attention_small {
        color: #F30A0A;
        font-size:large;
        font-family: Georgia, "Times New Roman", Times, serif;
        font-style: italic;
        font-weight:900;
    .table {
        table-layout:fixed;
    .blue {
        color: #00F;
    #container .mainContent_left p .blue {
        color: #0303A0;

    Hi Nancy:
    The specific code that I am referring to is the CSS code governing the styling of the spry menu widget that only works in IE 6 if, and only if, it remains in the head of the web page.  If removed and placed in a stylesheet, the IE plugins fail to compensate for the IE 6 "gap" bug.  As I said, it doesn't make sense to me that, assuming specificity is addressed, that these can not be included in an external style sheet.  I am looking for a) an explanation why they must remain embedded in the web page; and 2) any means by which I might be able to export them.
    I will reproduce the specific css style (code) below:  it should also be visable through reveal source --
    Thanks again, Steve Webster.
    The CSS governing the horizontal menu bar is as follows:  (currently the following CSS is embedded in the head of the web page)
    <style type="text/css">
    /*  -- Begins Spry Menu Widget 2.0 (1.0) Horizontal menu bar Custom styles --  */
    /* BeginOAWidget_Instance_2141544: #MenuBar */
    /* Settable values for skinning a Basic menu via presets. If presets are not sufficient, most skinning should be done in
       these rules, with the exception of the images used for down or rightpointing arrows, which are in the file SpryMenuBasic.css
         These assume the following widget classes for menu layout (set in a preset)
       .MenuBar - Applies to all menubars - default is horizontal bar, allsubmenus are vertical - 2nd level subs and beyond are pull-right.
        .MenuBarVertical - vertical main bar; all submenus are pull-right.
       You can also pass in extra classnames to set your desired top levelmenu bar layout. Normally, these are set by using a preset.
        They only apply to horizontal menu bars:
            MenuBarLeftShrink - The menu bar will be horizontally 'shrinkwrapped' to be just large enough to hold its items, and left aligned
            MenuBarRightShrink - Just like MenuBarLeftShrink, but right aligned
            MenuBarFixedLeft - Fixed at a specified width set in the rule '.MenuBarFixedLeft', and left aligned. 
            MenuBarFixedCentered -  - Fixed at a specified width set in the rule '.MenuBarFixedCentered',
                            and centered in its parent container.
            MenuBarFullwidth - Grows to fill its parent container width.
        In general, all rules specified in this file are prefixed by #MenuBar so they only apply to instances of the widget inserted along
       with the rules. This permits use of multiple MenuBarBasic widgets onthe same page with different layouts. Because of IE6 limitations,
        there are a few rules where this was not possible. Those rules are so noted in comments.
    #MenuBar  {
        background-color:transparent;
       font-family: Arial, Helvetica, sans-serif; /* Specify fonts on onMenuBar and subMenu MenuItemContainer, so MenuItemContainer,
                                                    MenuItem, and MenuItemLabel
                                                    at a given level all use same definition for ems.
                                                    Note that this means the size is also inherited to child submenus,
                                                    so use caution in using relative sizes other than
                                                    100% on submenu fonts. */
        font-weight: normal;
        font-size: 17px;
        font-style: normal;
        padding:0;
    /* Caution: because ID+class selectors do not work properly in IE6, but we want to restrict these rules to just this
    widget instance, we have used string-concatenated classnames for our selectors for the layout type of the menubar
    in this section. These have very low specificity, so be careful not to accidentally override them. */
    .MenuBar br { /* using just a class so it has same specificity as the ".MenuBarFixedCentered br" rule bleow */
        display:none;
    .MenuBarLeftShrink {
        float: left; /* shrink to content, as well as float the MenuBar */
        width: auto;
    .MenuBarRightShrink {
        float: right; /* shrink to content, as well as float the MenuBar */
        width: auto;
    .MenuBarFixedLeft {
        float: left;
        width: 80em;
    .MenuBarFixedCentered {
        float: none;
        width: 80em;
        margin-left:auto;
        margin-right:auto;
    .MenuBarFixedCentered br {
        clear:both;
        display:block;
    .MenuBarFixedCentered .SubMenu br {
        display:none;
    .MenuBarFullwidth {
        float: left;
        width: 100%;
    /* Top level menubar items - these actually apply to all items, and get overridden for 1st or successive level submenus */
    #MenuBar  .MenuItemContainer {
        padding: 0px 0px 0px 0px;
        margin: 0;     /* Zero out margin  on the item containers. The MenuItem is the active hover area.
                    For most items, we have to do top or bottom padding or borders only on the MenuItem
                    or a child so we keep the entire submenu tiled with items.
                    Setting this to 0 avoids "dead spots" for hovering. */
    #MenuBar  .MenuItem {
        padding: 10px 10px 10px 4px;
        background-color:#000088;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Nav igation%20Bar%20Segment-Dark.png);
        background-repeat:repeat-x;       
    #MenuBar  .MenuItemFirst {
        border-style: none none none none;
    #MenuBar .MenuItemLast {
        border-style: none none none none;
    #MenuBar  .MenuItem  .MenuItemLabel{
        text-align:center;
        line-height:1.4em;
        color:#ffffff;
        background-color:transparent;
        padding: 0px 18px 0px 5px;
        width: 10em;
        width:auto;
    .SpryIsIE6 #MenuBar  .MenuItem  .MenuItemLabel{
        width:1em; /* Equivalent to min-width in modern browsers */
    /* First level submenu items */
    #MenuBar .SubMenu  .MenuItem {
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
        font-size: 15px;
        font-style: normal;
        background-color:#000088;
        padding:0px 2px 0px 0px;
        border-width:0px;
        border-color: #cccccc #cccccc #cccccc #cccccc;
        /* Border styles are overriden by first and last items */
        border-style: solid solid none solid;
    #MenuBar  .SubMenu .MenuItemFirst {
        border-style: none;
        padding: 0px;
    #MenuBar  .SubMenu .MenuItemFirst .MenuItemLabel{
        padding-top: 0px;
    #MenuBar .SubMenu .MenuItemLast {
        border-style: none none none none;
    #MenuBar .SubMenu .MenuItemLast .MenuItemLabel{
        padding-bottom: 10px;
    #MenuBar .SubMenu .MenuItem .MenuItemLabel{
        text-align:left;
        line-height:1em;   
        background-color:transparent;
        color:#ffffff;
        padding: 10px 10px 10px 10px;
        width: 240px;
    /* Hover states for containers, items and labels */
    #MenuBar .MenuItemHover {
        background-color: #2E35A3;
        background-image:url(../ACLCO%20Graphics%20-%20Web%20site%20Parts/Nav igation%20Bar%20Segment%20Light2.png);
        background-repeat:repeat-x;
    #MenuBar .MenuItemWithSubMenu.MenuItemHover .MenuItemLabel{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    #MenuBar .MenuItemHover .MenuItemLabel{
        background-color: transparent;
        color: #ffffff;
    #MenuBar .SubMenu .MenuItemHover {
        background-color:#2E35A3;
    #MenuBar .SubMenu .MenuItemHover .MenuItemLabel{
        background-color: transparent;
        color: #ffffff;
    /* Submenu properties -- First level of submenus */
    #MenuBar .SubMenuVisible {
        background-color: transparent;
       min-width:0%;  /* This keeps the menu from being skinnier than theparent MenuItemContainer - nice to have but not available on ie6 */
        border-style: none none none none;
    #MenuBar.MenuBar .SubMenuVisible {/* For Horizontal menubar only */
        top: 100%;    /* 100% is at the bottom of parent menuItemContainer */
        left:0px; /* 'left' may need tuning depending upon borders or padding applied to menubar MenuItemContainer or MenuItem,
                        and your personal taste.
                       0px will left align the dropdown with the content area of theMenuItemContainer. Assuming you keep the margins 0
                        on MenuItemContainer and MenuItem on the parent
                        menubar, making this equal the sum of the MenuItemContainer & MenuItem padding-left will align
                        the dropdown with the left of the menu item label.*/
        z-index:10;
    #MenuBar.MenuBarVertical .SubMenuVisible {
        top: 0px;   
        left:100%;
        min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse */
    /* Submenu properties -- Second level submenu and beyond - these are visible descendents of .MenuLevel1 */
    #MenuBar .MenuLevel1 .SubMenuVisible {
        background-color: transparent;
        min-width:0px; /* Do not neeed to match width to parent MenuItemContainer - items will prevent total collapse*/
        top: 0px;    /* If desired, you can move this down a smidge to separate top item''s submenu from menubar -
                    that is really only needed for submenu on first item of MenuLevel1, or you can make it negative to make submenu more
                    vertically 'centered' on its invoking item */
        left:100%; /* If you want to shift the submenu left to partially cover its invoking item, you can add a margin-left with a
                    negative value to this rule. Alternatively, if you use fixed-width items, you can change this left value
                    to use px or ems to get the offset you want. */
    /* IE6 rules - you can delete these if you do not want to support IE6 */
    /* A note about multiple classes in IE6.
    * Some of the rules above use multiple class names on an element forselection, such as "hover" (MenuItemHover) and "has a subMenu"(MenuItemWithSubMenu),
    * giving the selector '.MenuItemWithSubMenu.MenuItemHover'.
    * Unfortunately IE6 does not support using mutiple classnames in aselector for an element. For a selector such as '.foo.bar.baz', IE6ignores
    * all but the final classname (here, '.baz'), and sets thespecificity accordingly, counting just one of those classs assignificant. To get around this
    * problem, we use the plugin in SpryMenuBarIEWorkaroundsPlugin.js to generate compound classnames for IE6, such as 'MenuItemWithSubMenuHover'.
    * Since there are a lotof these needed, the plugin does not generate the extra classes formodern browsers, and we use the CSS2 style mutltiple class
    * syntax for that. Since IE6 both applies rules where
    * it should not, and gets the specificity wrong too, we have to order rules carefully, so the rule misapplied in IE6 can be overridden.
    * So, we put the multiple class rule first. IE6 will mistakenly apply this rule.  We follow this with the single-class rule that it would
    * mistakenly override, making sure the  misinterpreted IE6 specificity is the same as the single-class selector, so the latter wins.
    * We then create a copy of the multiple class rule, adding a '.SpryIsIE6' class as context, and making sure the specificity for
    * the selector is high enough to beat the single-class rule in the "both classes match" case. We place the IE6 rule at the end of the
    * css style block to make it easy to delete if you want to drop IE6 support.
    * If you decide you do not need IE6 support, you can get rid of these,as well as the inclusion of the SpryMenuBarIEWorkaroundsPlugin.jsscript.
    * The 'SpryIsIE6' class is placed on the HTML element by the script in SpryMenuBarIEWorkaroundsPlugin.js if the browser isInternet Explorer 6. This avoids the necessity of IE conditionalcomments for these rules.
    .SpryIsIE6 #MenuBar .MenuBarView .MenuItemWithSubMenuHover .MenuItemLabel /* IE6 selector  */{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    .SpryIsIE6 #MenuBar .MenuBarView .SubMenu .MenuItemWithSubMenuHover .MenuItemLabel/* IE6 selector  */{
        background-color: transparent; /* consider exposing this prop separately*/
        color: #ffffff;
    .SpryIsIE6 #MenuBar .SubMenu .SubMenu  /* IE6 selector  */{
        margin-left: -0px; /* Compensates for at least part of an IE6 "double padding" version of the "double margin" bug */
    /* EndOAWidget_Instance_2141544 */
    /* Ends Spry Menu Bar Widget 2.0 (1.0) Horizontal Menu Custom styles */
    </style>

  • Report does not print exactly same as it appears at design time

    Hello,
    I am using SAP Crystal report with VS 2010.
    I designed a report. At design time every thing appears fine. Margins are set to 0, printer is selected and page size is custom.(right click on report, design>pagesetup)
    When I use <reportname>.printtoprinter(), it dramatically changes the text size and margins of the report in hard copy. I tried literally everything for this. Especially It adds nearly 2 inches extra margin at top.Also , at run time it changes the font size to 8 or 9 points if i have set it to 12 at design time.
    I get the same problem if I do following:
      crystalReportViewer1.ReportSource = rptRcAbh;
       crystalReportViewer1.PrintReport();
    HOWEVER!!
    When I do this:
      crystalReportViewer1.ReportSource = rptRcAbh;
    AND when I manually click the print button of crystal report viewer, i get EXACTLY SAME result as design time. This is what I am expecting from printoprinter() method. But Its changing result dramatically.
    Why is this happening? Am I forgetting any setting?
    I must use reprot.printtoprinter() method here. Because I am printing the bill receipt. I dont want the user to go to printpreview then click print. AND I must get same result as design on printed page.
    Please help me. I am in urgent need.

    Hi Don,
    Firstly I am very very thankful to you for replying me.
    I know I must have irritated you a bit cuz I was expecting everything ready which I should have :P
    but I was in urgent need and there was no time for me to read everything. I must say a thing that I did not get good search results on printcontroller when I used search box of this website.
    Well Thanks again for helping me in deed.
    I am sure this must be the problem for many people across the globe, hence I am posting the exact code that helped me to print the document Accurately:
       rptReceiptAbhishek rptRcAbh = new rptReceiptAbhishek();
            //        rptRcAbh.Load("rptReceiptAbhishek.rpt", OpenReportMethod.OpenReportByTempCopy); i did't need this line
    //////// Directly Entering data to the fields of the report.
                    CrystalDecisions.CrystalReports.Engine.TextObject txtname;
                    CrystalDecisions.CrystalReports.Engine.TextObject txtaddress;
                    txtname = (CrystalDecisions.CrystalReports.Engine.TextObject)rptRcAbh.ReportDefinition.ReportObjects["txtRptName"];
                    txtname.Text = cboInitials.Text + " " + cboDonarName.Text;
                    txtaddress = (CrystalDecisions.CrystalReports.Engine.TextObject)rptRcAbh.ReportDefinition.ReportObjects["txtRptAdd"];
                    txtaddress.Text = txtAddess.Text;
                    rptRcAbh.PrintOptions.PrinterName = Properties.Settings.Default.PrinterName;
                    System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
                    CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions rasPROpts = new CrystalDecisions.ReportAppServer.Controllers.PrintReportOptions();
                    CrystalDecisions.ReportAppServer.ReportDefModel.PrintOptions newOpts = new CrystalDecisions.ReportAppServer.ReportDefModel.PrintOptions();
                    pDoc.PrinterSettings.PrinterName = Properties.Settings.Default.PrinterName;
                    pDoc.PrinterSettings.SupportsColor.ToString();
                    //if (pDoc.PrinterSettings.SupportsColor)
                    //    MessageBox.Show("Printer Supports Color", pDoc.PrinterSettings.SupportsColor.ToString());
                    rasPROpts.PrinterName = Properties.Settings.Default.PrinterName;
                    //   rasPROpts.PaperSize = (CrPaperSizeEnum)pDoc.PrinterSettings.PaperSizes[cboCurrentPaperSizes.SelectedIndex].Kind;
                    //rasPROpts.PaperSource = (CrPaperSourceEnum) pDoc.PrinterSettings.PaperSources[cboDefaultPaperTrays.SelectedIndex].Kind;
          //          rptReceiptAbhishek rpt = new rptReceiptAbhishek();
                    var rptClientDoc = rptRcAbh.ReportClientDocument;
                    rptClientDoc.PrintOutputController.PrintReport(rasPROpts);
                    MessageBox.Show("Printing in progress. Make sure that printer is not turned off.", "RAS", MessageBoxButtons.OK, MessageBoxIcon.Information);

Maybe you are looking for