How to set mandatory a InputField in standard Web Dynpro component?

Hi guys.
A very weird thing is happening. I am trying to validate that a non-mandatory STANDARD input field (COST_ASSIGNMENT) does not to be empty. This input field belongs to GENERAL_DATA_VIEW, FITE_VC_GENERAL_DATA WD component. The entry fields at screen belong to this GENERAL_DATA_VIEW, but navigation is allocated in buttons that belong to another component (LAYOUT_VIEW in the FITV_FPM WD component). All the views and components are standard and they seem to be in the same screen from user's point of view. I was able to put my own code at WDDOAFTERACTION method in LAYOUT_VIEW to raise an error message.
Incredibly, my error text message appears in the MESSAGEAREA, and the UI components from GENERAL_DATA_VIEW are rightly still in the screen waiting for user answer since I set CANCEL_NAVIGATION = 'X', but the UI components from LAYOUT_VIEW (the buttons with navigate functions) changed like they had accepted my entry in spite of I set the code in this view. In fact, below my error text displayed, there is other (success) text which communicates "Standing approval for business trips exists" with a green tick.
The success text should not be displayed since I raised an error message, even after (I think so) the system created the success message.  I suspect that the standard positive message with the green tick indicates that my error is being taking into acccount by the system to be displayed but the LAYOUT_VIEW UI components dont stop navigation and the data is wrongly saved from the code where the success message was generated.
I think there would be another way to define an standard inputfield mandatory, but I dont know how to do it. Do you know that? I really appreciate all help. Thanks

hi,
just make the input feild as mandatory in properties and use the following code.
data:
lo_view_controller type ref to if_wd_view_controller,
lo_dyn type ref to cl_wd_dynamic_tool.
Create Object
create object lo_dyn.
data lt_messages type lo_dyn->t_check_result_message_tab.
Get view controller reference
lo_view_controller = wd_this->wd_get_api( ).
Call Method to verify the element has the value or not
call method cl_wd_dynamic_tool=>check_mandatory_attr_on_view
exporting
view_controller = lo_view_controller
display_messages = ABAP_TRUE
importing
messages = lt_messages .
endmethod.
Regards,
Kranthi

Similar Messages

  • Is their any standard web dynpro component for Sales Order Creation

    Hi ,
          I want to  create a web dynpro component for Sales order creation.So i want to know is their any stardard web dynrpo component to use or we need to develop custom component.
    Thanks & Regards,
      Aditya Tanguturi.

    Hi Aditya,
    There is a standard component for Sales order maintenance : LORD_MAINTAIN_COMP
    Note: It is also used to create / change /display the quotation/inquiry as well
    Regards,
    Rama
    Message was edited by: Ramakrishnappa Gangappa

  • How i use nwdi to modify existing standard web dynpro application

    Hi,
    I need  to change some existing application of web dynpro Java. I found solution nwdi would help in that. But how i use it can any one explain me in detail. Nwdi has already installed over here. So can i use it can explain me step by step.
    Regards,
    Gurprit Bhatia

    Hi,
    First you need to import the WD application to your NWDS and then you need to checkout the code for making any changes after making the chanhes you have to checkin the code.
    First you need to setup the portal path in
    1. WIndow->Preferences->Java Development Infrastructure->development Configurations.
    2. You have to create a client in DTR by going into DTR Perspective.
    3. Import the configuration from the track (this is your standard WD application) in Development Configurations Perspective.
    4. Create the project from Inactive DCs tab.
    5. Navigate to WD Perspective and build the project.
    6. Check out the code to make chnages
    7. Checkin the code after making the changes
    8. Test the application in Portal
    Regards,
    Lakshmi.

  • How to set value for table lines in web dynpro ?

    Hi experts,
    I'm new in webdynpro. My requirement is to set value to the second line when user press expand on first line.
    In method ONACTIONLOAD_CHILDREN , I use  get_static_attributes_table to get the current table records and change return table value .
    Then i user bind_table to pass table to the screen.
    It works fine for first time i press expand and collaps, but when i expand it again it throw out a dump 'OBJECTS_OBJREF_NOT_ASSIGNED'.
    Could any one please help to solve that?
    Thanks

    Hi Harsha,
    Thanks for your reply,I've check the dump details and it display like this:
    Information on where terminated
        Termination occurred in the ABAP program "CL_WDR_CONTEXT_ELEMENT========CP" -
         in "IF_WD_CONTEXT_ELEMENT~SET_ATTRIBUTE".
        The main program was "SAPMHTTP ".
        In the source code you have the termination point in line 40
        of the (Include) program "CL_WDR_CONTEXT_ELEMENT========CM007".
        The termination is caused because exception "CX_SY_REF_IS_INITIAL" occurred in
        procedure "IF_WD_CONTEXT_ELEMENT~SET_ATTRIBUTE" "(METHOD)", but it was neither
         handled locally nor declared
        in the RAISING clause of its signature.
        The procedure is in program "CL_WDR_CONTEXT_ELEMENT========CP "; its source
         code begins in line
        1 of the (Include program "CL_WDR_CONTEXT_ELEMENT========CM007 ".
    First time i debug it work fine but the next time it dump with same import values.  And it even did not reach the logic i add when i expand it again.
    I'm not sure why it happen.
    My code in ONACTIONLOAD_CHILDREN is like this.
    *navigate from <CONTEXT> to <ITEM_DATA> via lead selection
      lo_nd_item_data = wd_context->path_get_node( path =
      `COMP_CONTEXT.ITEM_DATA` ).
    *get element via lead selection
      lo_el_item_data = lo_nd_item_data->get_element( ).
    *get all declared attributes
      lo_nd_item_data->get_static_attributes_table(
        IMPORTING
          table = lt_item_data ).
      LOOP AT lt_item_data INTO ls_item_data.
        IF sy-tabix = 2.
          ls_item_data-description = 'TEST'.
          MODIFY lt_item_data FROM ls_item_data TRANSPORTING description.
        ENDIF.
      ENDLOOP.
        lo_nd_item_data->bind_table( new_items = lt_item_data
        set_initial_elements = abap_true ).
        lo_nd_item_data->set_lead_selection_index( 1 ).
    First line was set selected but still got dump.
    Could you please help to check this ?
    Thanks & Regards
    Eric Li

  • Inactive sap standard web dynpro component

    hi,
    I clicked "change" in se80 and canceled (at the screen with the registration key) changing a standard sap component.  so I didn´t change of course anything in the coding.
    then the status of this standard component was inactive and I tried to get the active version back via versioning...but it didn´t work.
    then I clicked on activate despite of errors and it works.
    what can I do better next time? is a solution to delete the inactive version of this component in se80 under inactive objects for my user?

    You need to come up with more information. Probably you need to analyse the error in ST22 to see where exactly this error is coming up.
    Looks like this view is embedded twice in the window?

  • How to set different header for different Standard report page

    How to set different header for different Standard report page

    Hi,
    A easy answer would be use the 'set report header text.vi' but maybe you are talking about something else ?

  • How to write the folder path in standard webi report - Most Accessed Documents

    How to write the folder path in standard webi report - Most Accessed Documents
    All
       -> Public Folders
                      -> Auditor
                      -> ABCD
    I want to give path of folder 'ABCD' and all the reports/ subfolders under it?
    Prompt - 'Enter the Folder Path(Add % at the end to include Sub Folders)' ?
    Give me exact path syntax

    Hi Daniel,
    But when I give my URL as
    http://serverA:80/irj/portal??NavigationTarget=ROLES://portal_content/crm-practice/14-Feb/Test_Page
    I am able to access the iview but the thing is I am getting TLN,Toolarea,Masthead,etc.
    I will tell my requirement,
    ServerA (EP 7.0) has some iviews,pages...
    I need to access these iviews from serverB(EP 6.0)....
    In ServerB only the iviews has to be displayed in the content area but not TLN,Toolarea,etc.
    Kindly help me in this regard.
    Thanks and regards,
    Purushothaman.
    Message was edited by: Purushothaman Vyasarao

  • How to set the Data Synchronisation mode for ADF BC component?

    Hi All,
    How to set the Data Synchronisation mode for ADF BC component
    Thanks
    Raghavendra

    Can you clarify what you mean by the data synchronization mode?
    If you mean the Sync Mode, then in 10.1.3 you set this property by:
    1. Selecting your DataBindings.cpx file
    2. Expanding the "Data Control Usages" section in the structure window
    3. Selecting the ADFBC-based data control
    4. Setting the "syncMode" property in the property inspector.

  • Accidently standard Web UI Component is deleted - How can we retrive

    Hi All,
    Accidently a standard WEB UI component is deleted CRMCMP_IBSEARCH.
    How can I retrive that component.

    Hi Narendra,
      Please go through the below link. Hope this helps.
    [Deletion of standard component Workbench. How to restore|Deletion of standard component Workbench. How to restore]
    Regards,
    Lakshmi.Y

  • How can I copy a standard Web Dynpro Abap?

    I have to make changes to some texts in a standard web dynpro: FITV_FPM_START. One of the texts is "Description" ("Descripción" in Spanish), which seems to be protected in the OTR. So the only option I see is to copy the whole Web Dynpro, locate the component in which the text appears, and replace it for the new one. If there is a simplest way I'd be glad to know...
    I've copied the Web Dynpro and then all the Web Dynpro Applications, with their parameters and so on.
    When I verify one of them most of the things are not appearing on the screen. I can only see the buttons. What have I missed to copy?
    Thank you in advance.

    Hi,
    If you just want to change some OTR text, I do not think that you need to copy the whole application.  Just get the alias for this OTR text.  (I just tested changing an OTR text from SAP...it did not ask me for any keys...so I hope it will be alright in your case as well....)
    To get Alias, go to your webdynpro application, than go to menu "Goto", select "online text repository browser", than double click on the OTR text you want to change the text for.  This will open up a new window...the first line is Alias Name.
    take this Alias Name....go to transaction SOTR_EDIT
    on the screen which shows up, you have following
    Language: Pick English here
    Text: *
    Alias: here put the alias name you found
    Concept: leave it blank
    click on display.
    Now on this screen go to the "EDIT" menu -top of the screen-where you also see system and help menu. Follow the following path:
    Edit->Context->Change
    As soon as you will click on Change....you will see a pop up coming up with following fields:
    Country:
    Industry:
    close this pop up box without filling out anything there....just click on red x and close this pop up box.
    After you close the pop up box you will find that the "Language" field is open for editing....
    In this field choose the language you want your Alias to be translated into or leave it as English if you want English..
    In the text field...type in your new text....
    Save your work...
    That is all...no need to do anything else.....
    you can check if your Alias is being translated...
    go back to transaction SOTR_EDIT...and than choose language and put in the Alias Name
    you should see your changed text...
    I guess you are copying a FPM application...if that is the case, than you might be missing the configuration for that application...that is why you see things missing there.... try to search in forum for FPM guide....
    I hope this helps...
    Thanks...
    AS

  • Error is in example  "How to Create Online and Offline Forms in Web Dynpro"

    Hi,
    I am developing " How to Create Online and Offline Forms in Web Dynpro " in nwds 7.0. This is standard example which is available at sdn. but when i run it gives me error like "
    Failed to process request. Please contact your system administrator.
    [Hide]
    Error Summary
    While processing the current request, an exception occured which could not be handled by the application or the framework.
    If the information contained on this page doesn't help you to find and correct the cause of the problem, please contact your system administrator. To facilitate analysis of the problem, keep a copy of this error page. Hint: Most browsers allow to select all content, copy it and then paste it into an empty document (e.g. email or simple text file).
    Root Cause
    The initial exception that caused the request to fail, was:
       java.lang.NullPointerException
        at com.travelrequestapp.TravelRequestComView.wdDoInit(TravelRequestComView.java:97)
        at com.travelrequestapp.wdp.InternalTravelRequestComView.wdDoInit(InternalTravelRequestComView.java:133)
        at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doInit(DelegatingView.java:61)
        at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
        at com.sap.tc.webdynpro.progmodel.view.View.initController(View.java:445)
        ... 34 more
    See full exception chain for details.
    System Environment
    Client
    Web Dynpro Client Type HTML Client
    User agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    Version null
    DOM version null
    Client Type msie6
    Client Type Profile ie6
    ActiveX enabled
    Cookies enabled
    Frames enabled
    Java Applets enabled
    JavaScript enabled
    Tables enabled
    VB Script enabled
    Server
    Web Dynpro Runtime Vendor: SAP, build ID: 7.0009.20060804145649.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:41:58[UTC], changelist=413534, host=pwdfm101), build date: Thu Feb 15 10:23:57 IST 2007
    J2EE Engine 7.00 patchlevel
    Java VM Java HotSpot(TM) Server VM, version:1.4.2_13-b06, vendor: Sun Microsystems Inc.
    Operating system Windows 2003, version: 5.2, architecture: x86
    Session & Other
    Session Locale en_US
    Time of Failure Mon Oct 29 12:13:24 IST 2007 (Java Time: 1193640204484)
    Web Dynpro Code Generation Infos
    local/TravelRequest
    SapDictionaryGenerationCore 7.0006.20051128142640.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:59:42[UTC], changelist=378068, host=PWDFM101.wdf.sap.corp)
    SapDictionaryGenerationTemplates (unknown)
    SapGenerationFrameworkCore 7.0006.20050713144242.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:48:59[UTC], changelist=357697, host=PWDFM101.wdf.sap.corp)
    SapIdeWebDynproCheckLayer 7.0006.20051128151834.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:05:10[UTC], changelist=378108, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCommon 7.0006.20050929162929.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:49:45[UTC], changelist=369752, host=PWDFM101.wdf.sap.corp)
    SapMetamodelCore 7.0006.20050929162929.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:49:38[UTC], changelist=369752, host=PWDFM101.wdf.sap.corp)
    SapMetamodelDictionary 7.0006.20051128142655.0000 (release=645_VAL_REL, buildtime=2006-01-14:14:57:39[UTC], changelist=378069, host=PWDFM101.wdf.sap.corp)
    SapMetamodelWebDynpro 7.0006.20051128151854.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:02:09[UTC], changelist=378109, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationCTemplates 7.0006.20060111154644.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:18:33[UTC], changelist=384368, host=pwdfm101)
    SapWebDynproGenerationCore 7.0006.20051128151834.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:05:21[UTC], changelist=378108, host=PWDFM101.wdf.sap.corp)
    SapWebDynproGenerationTemplates 7.0006.20060111154644.0000 (release=645_VAL_REL, buildtime=2006-01-14:15:18:33[UTC], changelist=384368, host=pwdfm101)
    sap.com/tcwddispwda
    No information available null
    sap.com/tcwdcorecomp
    No information available null
    Detailed Error Information
    Detailed Exception Chain
    java.lang.NullPointerException
         at com.travelrequestapp.TravelRequestComView.wdDoInit(TravelRequestComView.java:97)
         at com.travelrequestapp.wdp.InternalTravelRequestComView.wdDoInit(InternalTravelRequestComView.java:133)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doInit(DelegatingView.java:61)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
         at com.sap.tc.webdynpro.progmodel.view.View.initController(View.java:445)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:709)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:579)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.makeVisible(ViewManager.java:793)
         at com.sap.tc.webdynpro.progmodel.view.ViewManager.performNavigation(ViewManager.java:296)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.navigate(ClientApplication.java:767)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.navigate(ClientComponent.java:873)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doNavigation(WindowPhaseModel.java:498)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:144)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:299)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:711)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:665)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:232)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    So please help me to correct this error .....
    Help will be rewarded.
    Regards,
    Gurprit Bhatia

    Hi Gurprit,
    A null value is being passed at runtime. Make sure that you enter values when filling in the form.
    Also check for the cardinality of the nodes being used. You can also initiliaze your value attributes as follows:
    In wdDoInit() method:
    wdContext.currentNodeAElement.setValueA("");
    Context is as follows:
    RootNode
      |____NodeA
            |_____ValueA
    Hope it helps.

  • Customizing the standard web dynpro ABAP travel application

    Dear All,
    Scenario :
    We want to modify the existing travel application------> Create Travel Request should open an interactive adobe form
    which will capture all the data and update the backend table , instead of the web dynpro screen and similarly for plan trip .
    I wanted to know what is the best practice or approach for this and how to go about it.
    Regards,
    Geet

    Hi All,
    Need your valuable inputs on this.Also when I was trying to replace the standard web dynpro abap screen for create travel request...coudnt find the view.I mean on the overview of Trips and Expenses there is a button for Create Request but I am unable to find the view where this button is placed....I think its getting created dynamically.
    My concern is how to call my interactive form when the button for create request is clicked...dont know where to place it.
    Regards,
    Geet Bijlani

  • Adding Disclaimer text to standard web dynpro screens in ESS

    Hi,
    I need to add disclaimer text to the standard web dynpro screens of ESS. The disclaimer text is the same for all screens and there are around 20 different screens where I need to put the same disclaimer text on. Can anybody suggest me the best way to solve this problem.
    Thanks,
    Tom

    HI TOM
    u can specify this for each and every workset for ESS.
    u used the Additional Inforamation text under each workset.
    to change the text do the following
    In SAP R3 ecc system go to SPRO->IMG->cross application components->Homepage framework->Areas->define areas->double click on define areas->double click on area key
    (work set)
    under area description tab
    u can found following
    Area Description heading --->Additional Information
    Area Description (long text)--->
    u can change both text accoriding to ur requirement and specify <b>The disclaimer text</b> .
    this is done for all workset. one modificaton is finish.
    relese the created request.
    restart the j2ee server.
    regards,
    kaushal

  • Standard web dynpro enhancement

    I am trying to enhance the contract template in web dynpro component: /SAPSRM/WDC_CTR_DOTC_IT , view: V_CTR_DODC_ITEMS
    I added new customer options(lets say 'ABC' & 'XYZ') in drop down of 'ITEM CATEGORY' of the table control CTR_ITEMS by enhancing the domain of the data type of this field(which is binded to ITM_TYPE_DESC in context tab).
    Problem is, when I go to the portal and try to select my added dropdown option(ex: ABC) , then the entire row becomes disabled including my drop down option and nothing is diplayed there.
    Also the toolbar buttons get disabled.
    Initially I thought that just enhancing the domain of the binded attribute in component will be sufficietn and standard coding will take care of added options. but it is not so. What more changes do I need to do?
    How are the data being processed over here and being integrated with the other components?
    Has any one worked on enhancing the standard sap web dynpro?
    WHile trying to debug the functionality, I am getting confused in the 'FACADE' and many such classes standarad classes being used.
    Please help me in resolving this issue.
    Thank you for your inputs.
    Edited by: Poonam Pal on Aug 18, 2010 9:51 AM

    Hi Poonam,
    I have a similar requirement to enhance the Standard table control in Distribution tab of Contract. Can you please tell em how you have solved your problem.
    Thank you.
    Prasuna

  • How to Implement Sort, Filter funtinality in Normal web dynpro ABAP Table

    Hello,
    How to Implement Sort, Filter funtinality in Normal web dynpro ABAP Table ?
    Thanks

    hi,
    Check out this link for sorting in Table.
    Sorting option in WebDynPro ABAP UI Table
    steps to follow :
    ->Have the data in internal table (itab).
    ->Now use sort command for the particular column which ever you want to sort.
      e.g sort itab descending by <Column>.
    ->Now you can bind the internal table with the Context Node which is binded to Table.
    I hope it helps.
    Thanx.

Maybe you are looking for

  • Short Dump in MIGO transaction

    When executing the transaction MIGO the transaction ends with the short dump as follows. is it because of SAPNOTE 385830 ? short text of error message : GET_SYTEM_BUSINESS_ERROR An error occurred while determining the business system ( No_business_sy

  • What does Reference #3.a6cafea5.1426103380.25299e4 mean?

    I'm trying to install an update on my MacBook Pro and get the following message Reference #3.a6cafea5.1426103380.25299e4

  • 5 Mobileme calendars?

    I have one active Mobileme account with a few calendars. Yet my iPhone has 5 different Mobileme sets of calendars synced on none are the exact one I have in iCal! Any one know how to change it? I've tried syncing just through iTunes but that doesn't

  • Farm Configuration SQL Server 2012 - Different licences

    Hello! Is it possible to run the following farm configuration: SSRS Server 1 ( SQL Server 2014 Enterprise Edition) SSRS Server 2 ( SQL Server 2014 Enterprise Edition) SSRS Server 3 ( SQL Server 2014 BI Edition) SSRS Database is hosted on Server 1. Th

  • Adding graphics or symbols to iCal

    As a new user of iCal I am trying to add a symbol such as a birthday cake or candle or modify the color of the event bars in iCal. Is there any way to do this? Thanks. Jerry