Create tree and store it's value in an array

I have to create a tree as shown below:
2--->7-->6-->5-->3
---->4
---->8
Here the numbers are the nodes of the tree and --->denotes the connection between them.
2
7 8
6
5 4
3
Another representation
2 is connected to 7and 8, 7 is connected to 6 and 4, 6 is connected to 5 and then 5 to 3.
Currently I am able to display the graph as shown in the first diagram but while storing the value, I am facing a problem.
I have declared a double dimensional array to store the array index.This gives me 2 as a[0][0],7 as[0][1],6 as [0][2],5 as [0][3], 3 as [0][4] and 8 as [0][1] and lower(2nd) 5 as [0][2].
Now since the timestamps are same for 7 and 8 and that for 6 and 5 so I saved them in the same array location.Instead I want 7 as [0][1][0] and 8 as[0][1][1].
I am using recursion to built and I knw I cant add a new [] everytime.
Can any1 of u suggest me how to store my array?
Thanks
The display I am trying to show instead coming proper in this windows so ------- means the connection between parent and children.
Edited by: abheyb on 25 Mar, 2008 5:45 PM

Hi,
Here you have to use the pure object oriented concept rather than using procedure oriented(like c).
Design a user defined class according to your problem that extends with any Collection. For Example. TableCell
Declare a attribute TableCell tableCell in your class.
Write the method called addCell(TableCell tableCell)
and printTablecell()
In this method you need to follow the recursion concept.
Design as u need...! If you are designing for binary tree, then you need to declare two attribute called tableCell1 and tableCell2
Bye.....!

Similar Messages

  • How do I create variables and store them?

    How do I create variables and store them?

    As someone already said, we need to know a little more about what you want to do with these variables, but in general, APEX Items are probably what you want. You can create APEX Items at the Application or Page level. Once you set the value of an item, you can reference it anywhere else in the application. So, if you have an item on page 1 called P1_ENAME, you can reference it on page 32 using bind variable syntax :P1_ENAME. If you just want to store but not display some information, you can use either a hidden page item or an Application Level item. Take a look at the 2 Day Developers Guide for more info.
    Tyler

  • Folio - Create Rendition and Store for View

    Hi,
    Has anybody created a mechanism so that a Rendition of a Folio can be created and stored to allow subsequent viewing?
    The scenario is where a folio may contain 100+ pages of content. If a user creates a PDF rendition, the concept is that it should be created once and then viewed as a download by many users rather than each user creating the rendition and downloading.
    Regards, Dave

    Hi,
    Yes, that security consideration is a good point. For the particular implementation I am looking at, all of the items within one Folio will have the same security settings. So it will not be an issue in this particular case.
    Yes, download and then check back in of the rendered folio is effectively what will happen, but from a user's perspective it will be automated. The key benefit, is being able to quickly get to the rendered item if it exists rather than having to wait for the rendering process to execute.
    Another consideration is that the rendered folio, once checked into the content server needs to be excluded from the full text index, otherwise it will be duplicating the information in the items that make up the folio content.

  • Store XML node value into an array with node element name

    Hi,
    I have the following code that displays the node element with the
    corresponding node value. I want to store the values in an array in
    reference to the node name.
    i.e.
    XML (my xml is much bigger than this, 300 elements):
    <stock>
    <symbol>SUNW</symbol>
    <price>17.1</price>
    </stock>-----
    would store the following:
    *data[symbol] = SUNW;*
    *data[price] = 17.1;*
    Thanks in advance,
    Tony
    test.jsp
    Here's my source code:
    <html>
    <head>
    <title>dom parser</title>
    <%@ page import="javax.xml.parsers.*" %>
    <%@ page import="org.w3c.dom.*" %>
    <%@ page import="dombean.*" %>
    </head>
    <body bgcolor="#ffffcc">
    <center>
    <h3>Pathways Info</h3>
    <table border="2" width="50%">
    <jsp:useBean id="domparser" class="dombean.MyDomParserBean" />
    <%
    Document doc = domparser.getDocument("c:/stocks/stocks.xml");
    traverseTree(doc, out);
    %>
    <%! private void traverseTree(Node node,JspWriter out) throws Exception {
    if(node == null) {
    return;
    int type = node.getNodeType();
    switch (type) {
    // handle document nodes
    case Node.DOCUMENT_NODE: {
    out.println("<tr>");
    traverseTree
    (((Document)node).getDocumentElement(),
    out);
    break;
    // handle element nodes
    case Node.ELEMENT_NODE: {
    String elementName = node.getNodeName();
    //if(elementName.equals("MOTHER-OCC-YRS-PREVIOUS")) {
    //out.println("</tr>");
    out.println("<tr><td>"+elementName+"</td>");
    NodeList childNodes =
    node.getChildNodes();     
    if(childNodes != null) {
    int length = childNodes.getLength();
    for (int loopIndex = 0; loopIndex <
    length ; loopIndex++)
    traverseTree
    (childNodes.item(loopIndex),out);
    break;
    // handle text nodes
    case Node.TEXT_NODE: {
    String data = node.getNodeValue().trim();
    //if((data.indexOf("\n")  <0) &#38;&#38; (data.length() > 0)) {
    out.println("<td>"+data+"</td></tr>");
    %>
    </table>
    </body>
    </html>
    {code}
    *MyDomParserBean.java*
    Code: package dombean;
    {code:java}
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.io.*;
    public class MyDomParserBean
    implements java.io.Serializable {
    public MyDomParserBean() {
    public static Document
    getDocument(String file) throws Exception {
    // Step 1: create a DocumentBuilderFactory
    DocumentBuilderFactory dbf =
    DocumentBuilderFactory.newInstance();
    // Step 2: create a DocumentBuilder
    DocumentBuilder db = dbf.newDocumentBuilder();
    // Step 3: parse the input file to get a Document object
    Document doc = db.parse(new File(file));
    return doc;
    {code}
    Edited by: ynotlim333 on Sep 24, 2007 8:41 PM
    Edited by: ynotlim333 on Sep 24, 2007 8:44 PM
    Edited by: ynotlim333 on Sep 24, 2007 8:45 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    I still need to store it in an array because its 300 elements in the XML stocks.
    I've done the following but its not working, i'm getting error codes. I think its an easy fix. I'd also like to pass a String instead of a .xml document b/c my xml is stored inside a DB. Any suggestions on that?
    <html>
    <head>
    <title>dom parser</title>
    <%@ page import="javax.xml.parsers.*" %>
    <%@ page import="org.w3c.dom.*" %>
    <%@ page import="org.*" %>
    </head>
    <body bgcolor="#ffffcc">
    <center>
    <h3>Pathways Info</h3>
    <table border="2" width="50%">
    <jsp:useBean id="domparser" class="org.MyDomParserBean" />
    <%
    Document doc = domparser.getDocument("c:/stocks/stocks.xml");
    traverseTree(doc, out);
    %>
    <%!
            public String element_store = null;
            public String[] stock_data = new String[400];
            private void traverseTree(Node node,JspWriter out) throws Exception {
            if(node == null) {
               return;
            int type = node.getNodeType();
            switch (type) {
               // handle document nodes
               case Node.DOCUMENT_NODE: {
                 out.println("<tr>");
                 traverseTree
                 (((Document)node).getDocumentElement(),
                 out);
                 break;
              // handle element nodes
              case Node.ELEMENT_NODE: {
                String elementName = node.getNodeName();
                element_store = elementName;
                 //if(elementName.equals("MOTHER-OCC-YRS-PREVIOUS")) {
                   //out.println("</tr>");
                 NodeList childNodes =
                 node.getChildNodes();     
                 if(childNodes != null) {
                    int length = childNodes.getLength();
                    for (int loopIndex = 0; loopIndex <
                    length ; loopIndex++)
                       traverseTree
                       (childNodes.item(loopIndex),out);
                  break;
               // handle text nodes
               case Node.TEXT_NODE: {
                  String data = node.getNodeValue().trim();
                  if((data.indexOf("\n")  <0) && (data.length() > 0)) {
                  out.println("<tr><td>"+element_store+"</td>");
                  out.println("<td>"+data+"</td></tr>");
                  stock_data[element_store]=data;
    %>
    </table>
    </body>
    </html>

  • How does this program group and cluster these button values into an array?

    In the attached program, there are 6 buttons in a cluster and 1 individual button. These buttons control a bunch of different relays to control power to different components of a single device. Right now the program works in that I can control the 6 buttons, the LED turns on in the board and the power is being transmitted. What I do not understand is how it is doing this.  I ran the program with the highlight execution on and at the start of the read from array component, if say I pressed button 6 and hit ok, it reads #6, where did these get defined and labled? and if i wanted to add another button/relay how do i do this? If someone could explain step by step how this is grouping the relays on the board into an array and then controling them I would really appreciate it. Thanks.
    Solved!
    Go to Solution.
    Attachments:
    Cluster to Array.vi ‏85 KB

    The #6 your seeing is the number of elements in the array not a value for the array. 
    Now for some deeper explainations.   From the code it appears that exactly 1 of 6 valves may be used and an additional valve may be in one of two possible states.
    When the program is run the cluster of buttons is initiallized to all False.  and we enter the outer while loop where a sequence structure starts.  In the first frame of the sequence we initiallize a shift register to hold the current value of "Buttons." and this loop runs unthrottled (Add a wait for next ms multiple to this loop to prevent using 100% of the CPU!) 
    For each iteration the buttons are read and if a change has occured to any value buttons that were previously True are reset to False to prevent opening more than one valve.
    When the user presses OK or stop- the current "Buttons" value is passed to the next frame.  This frame convertsthe 7 boolean values to a integer where each valve is controlled by a seperate bit of the integer (Isolation is bit 6 and bits 0-5 each control a mixing valve)
    Now I'd strongly recommend reworking the DAQmx calls- it is pointless to initiallize the task each time you want to use it- Create the task in the initialzation case and wait until the user exits to destroy the task.  And well a sequence structures are frowned on- (there are better ways to do this)
    As far as adding a relay- right now the relays are associated to the hardware by their index position in the cluster (element 1 = bit 0 etc....) to add a new valve you would need to decide what bit you would use to drive it and code in that bits' value to write a 0 in that bit.  (hint the 40 constant is realy 0x40 right-click>visable items>show radix )
    Let me know if you need further elaboration
    Jeff

  • Created by and creation date default values on form

    Hi Friends,
    I am a form newbie. I am creating a simple form.
    I have non-display column/fields:
    a.) CREATED_BY - how do I put the default value of the user login ID upon inserting record?
    b.) CREATION_DATE - how do I put the SYSDATE upon inserting the record?
    c.) UPDATED_BY - how do I put the default value of the user login ID when updating the record?
    d.) UPDATE_DATE - how do I put the SYSDATE when updating the record?
    Thanks a lot in advance

    Hi,
    In the PRE-INSERT trigger, write,
         :CREATED_BY    := GET_APPLICATION_PROPERTY(USERNAME);
         :CREATION_DATE := DATE;And in the PRE-UPDATE trigger, write,
         :UPDATED_BY  := GET_APPLICATION_PROPERTY(USERNAME);
         :UPDATE_DATE := DATE;Then your issue will be solved.
    Regards,
    Manu.
    If my response or the response of another was helpful, please mark it accordingly

  • I want to create a questionnaire and store the user answers in an array or a database

    My project is creating a questionnaire in Flash and then storing the user answers in an array or a database for later analysis. although i was excellent in coding when i was in college, recently i forgot many parts.. so i need help badly to finish my project...

    You should show what code you are having trouble with.

  • Need to validate file Name,split the file name and store the splited values into Variables

    Dear All,
    Below is the my requirement.
    I have a folder, in that folder I have bunch of text files. The file name is below format
    ACA_122_pay_20140430_001
    Initially the file name start with ACA code,groupid,group name and date time stamp. This is the standard structure of file name.
    I want to check each and every file in the folder with this structure. The structure should be standard for all the files. If the structure same for all files I need to get codes form file name. For example
    If you see the below file name, I need to get ACA and put into variable,I need to get 122 and put into variable. For group name and date time needs to put in variable.
    If the file format is not valid state then I need to log exception.
    Let me know if I am not clear.
    Kindly provide the C# code for achieving the above requirement.
    As I am new to .net programming. kindly help me.
    Thanks in Advance,
    Regards,
    Madhava Ganji
    Madhava Ganji

    Hi MadhavaGanji,
    I have post how to validate the file name, header row against definition table which stored the file name and column definition. 
    Take a look and see if this is helpful.
    http://sqlage.blogspot.com/2013/11/ssis-validate-file-header-against.html
    http://sqlage.blogspot.com/

  • Created By field and Modified By field and People Picker field values are hidden to other Users

    Hi,
    We have a strange permission issue in one of the MOSS-2007 server farm. The users are not able to see each other name in "created by" and "modified by" column value in lists and libraries. For example if "User A" create an item in a list then if "User B" opens that item then he cannot see "created by" and "modified by" column value and vice-versa. But they can see their name in "created by" and "modified by" column but not others. Both the users has contribute access to that list, so both can edit each other data but cannot see each other name.
    This become a bigger issue, if any of tje list has people picker column, then thay cannot see that column value(if that column value does not his/her own name). This means this column value will be always empty for "user A" when that peopel picker value is anything other than "User A". This happens for all the lists and libraries. 
    Even "User A" and "User B" are owner of that site, it behaves the same. But site collection administrator can see  "created by" and "modified by" for all items for all the users.
    It seems very strange for me. any help on this will be appreciated.
    Thanks in advance,
    Sanban

    Hi,
    You can try to create a new standard view, then select “created by” and “modified by” column under columns, next apply this view, finally check the effect.
    Did you customize the permissions of the list or document library? Did you customize the permission of the item? For example, break the permission inheritance form its parents. If so, try to inherit permission from its parents, after that create a new standard view according to the steps above, then check the effect.
    By default, permissions on lists, libraries, folders, items, and documents are inherited from the parent site. However, you can break this inheritance for any securable object at a lower level in the hierarchy by editing the permissions on that securable object (that is, creating a unique permission assignment) . For example, you can edit the permissions for a document library, which breaks the permissions inheritance from the site.
    You can also try to create a new document library, then create a new document with user A, after that log into with user B, check the effect.
    For more information about  SharePoint : page level permissions, please refer to the following article:
    SharePoint : page level permissions
    http://blogs.msdn.com/brettrobinson/archive/2009/04/24/sharepoint-page-level-permissions.aspx
    For more information about control access to sites, please look into the following articles:
    About controlling access to sites and site content
    http://office.microsoft.com/en-us/sharepointtechnology/HA101001441033.aspx
    Permission levels and permissions
    http://office.microsoft.com/en-us/sharepointtechnology/HA101001491033.aspx
    For more information about how to create a view, please refer to the following article:
    Create or change a view
    http://office.microsoft.com/en-us/help/HA100215771033.aspx
    Hope this helps.
    Rock Wang
    Rock Wang– MSFT

  • Help:create tree node dynamically from java code...

    hi there...can anyone give me solution how to create or add tree node dynamically from java code???
    currently i am using tree node to handle my menu...i try to create tree and add treenode dynamically from .java page, but it failed...can anyone give solution how to create tree ui from java code, so i can create a dynamic menu...thanz before...

    Hi:
    Just put the statements you would normally put on a sqlplus command line in jdbc statements and execute them?
    http://www-db.stanford.edu/~ullman/fcdb/oracle/or-jdbc.html#0.1_executeUpdate
    MJG

  • How to open and read many files from a directory and store contents in 2D array?

    I want to make a VI that opens and reads the data from various files contained in a directory (200 files each with 2 columns) and store these in a single 2D array. For file number 1 I want to store the data from both columns in the 2D array, but for files 2 to 200 I only want to store the second column of each file. Can someone please help?

    Hi Nadav,
    Thanks for your help. I have followed your instructions but i cannot get it to work. I used the LIST DIRECTORY to list the files in the directory - that works. However, how do I read each of the 200 files using READ FROM SPREADSHEET FILE without me having to manually select each of the 200 files? So, if I use LIST DIRECTORY to list all 200 files in an array, how do I get each of these to open and store the data in a 2D array? Here is what I have done (File called read_files.VI) Could you please help me? Thank you very much in advance.
    Attachments:
    read_files.vi ‏18 KB

  • How to take human task values and store them in DB table

    Hi, I have a workflow and when I assign the task to someone I want to store some info in a database table that I created.
    I have checked the box allow task and routing customization in bpel call backs.
    And under the on Assign message, I put an assign bpel construct and an invoke.
    in the assign construct I am trying to copy some of the elements from my humantasks_globalvariables to certain columns in my database table.
    I have found out you can't copy them directly because the humantasks_globalvariables are of type string and my database columns are anonymous. So I tried using parseEscapedXML(), when I do this I get the error that
    oracle.fabric.common.xml.xpath.XPathFunctionException: parseXML() expects the argument to be either a string or an XML element.
    The humantasks_globalvariable I am using says it's of type string but it gives me this error.
    I am obviously doing something wrong. If anybody know how to take values from a human task and store them in a database table any help would be greatly appreciated.

    In the actual database the column types are varchar2. But when I drag an invoke from the bpel constructs I associate it with by DBadapter partner link and click the button automatically create input variables. It creates an xsd and this is what one of the elements looks like.
    <xs:element name="anyvalue">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                 <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>When I do an assign and try to assign the values from the humantasks_globalvariables xsd there types look like this.
    task:title string
    and the input variable I automatically generated look like this.
    ns7:anyvalue <anonymous>

  • Create PDF based on spool ID and store on content server

    Hi all,
    I need to create a PDF file from a spool ID and store this in a repository on the content server (archive). How can I do this <b>without creating a physical file on the local workstation</b>?
    All helpful answers will be rewarded!
    - Mari Virik

    Hi Mari,
    This is a sample report pgm which create pdf file from spool id :
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_delspl  AS CHECKBOX.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Write statement to represent report output. Spool request is created
    if write statement is executed in background. This could also be an
    ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    Alternative way could be to submit another program and store spool
    id into memory, will be stored in sy-spono.
    *submit ZSPOOLTOPDF2
           to sap-spool
           spool parameters   %_print
           archive parameters %_print
           without spool dynpro
           and return.
    Get spool id from program called above
    IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
          FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
          FORM get_job_details                                          *
    FORM get_job_details.
    Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
          FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount            = gd_bytecount
           TABLES
                pdf                      = it_pdf_output
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11
                OTHERS                   = 12.
      CHECK sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
          FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    perform send_email using p_email2.
    ENDFORM.
          FORM send_email                                               *
    -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
          FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    <b>and then use archiving object to store the photo i have explained you as an example</b>
    You have to create a content repository "A2" or another . You have to follow then next steps :
    Create a content repository with storage type FILE archive.
    Tcode     OAC0
    IMG:      Basis Components  Basis Services  SAP Archive Link  Basic Settings  Maintain content repositories
    (Embedded image moved to file: pic00041.pcx)
    Swap from display to amend. Select a current entry and 'copy' or just hit 'create'. Then select .
    (Embedded image moved to file: pic18467.pcx)
    Then fill in the details as below:
    Choose a two char name
    Set DocArea to be 'Archive Link'
    Storage type FILE archive (see Note below on how to get this!)
    Choose Version no. 0031
    Enter the path name where the photos are to be loaded from. Note this is for loading only. When the photos are linked into the sap system (see later), actually, SAP takes a 'copy' and stores it elsewhere. The path may only need to be entered to 'Arch.path', but entering to all three doesn't seem to hurt.
    Note on storage type:
    Storage type 'FILE archive' may not be in the dropdown list, and F4 (poss entries) may not work! If this is the case, click on the field Storage type (left mouse button) and then click the right mouse button. Choose Possible entries and a full list of all
    possible storage types is shown. FILE archive is entry number 08 and then
    Check which content repository (Archive) is linked to document type HRICOLFOTO in object type PREL.
    Tcode     OAC3
    Table     TOAOM_C
    IMG:      Basis Components  Basis Services  SAP Archive Link  Basic Settings  Maintain Links
    (Embedded image moved to file: pic06334.pcx)
    Set the 'Content R' field to the one you've just set in the step above.
    Note the Ret.per. field is the retention period for the photo in MONTHS. (so the default is 833 years and 3 months!)
    Now you can link the photo to the employee.
    <b>Pls reward pts if found usefull :)</b>
    Regards
    Sathish

  • Create Custom List, store information and display the information on web part

    Hi,
    Working on a Custom visual web part in sharepoint 2010. Scenario is i would like to have two button on that web part, one is "I read it " button for users to tag the page and another one is "find the list of people who already tag/read that
    page". i have added a visual web part into my project and two buttons event within it. Now goal is once user click on "I read it button" it will create custom list to store urls and usersname. When click on "Find the list of people"
    get the username only for that specific page whoever read/tag it.
    1. How can i create the custom list to store all users information
    2. Retrieve the information from Custom List and Display the list of people based on specific page url who ever read/tag that page. 
    Any help will be greatly appreciated!

    Appreciated for your help!
    List has four columns Title, Hyperlink, Created by, and created. i just wanted to display Users and hyperlink column. i tried to retrieve the items from list but query is not returning any items and displaying. As you said in CAML query we can pass the page
    url to get the collection of user for that particular page. but is not something will be hard coded value, if we pass the page url into CAML query? is there something we can dynamically retrieve the users based on page url.  for example, if users visits
    30 different page url, i need to put all those urls into CAML Query. do i need to create custom user field or i can use Created by field to get the users? please correct me if i am wrong. Below is the code:
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using System.Data;
    namespace CustomUserControl.VisualWebPart1
        public partial class VisualWebPart1UserControl : UserControl
            protected void Page_Load(object sender, EventArgs e)
            protected void btnRead_Click(object sender, EventArgs e)
                using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID))
                    using (SPWeb web = site.OpenWeb())
                        web.AllowUnsafeUpdates = true;
                        SPList list = web.Lists["UserInformation"];
                        SPListItem newItem = list.Items.Add();
                        SPFieldUrlValue hyper = new SPFieldUrlValue();
                        //hyper.Description = "Google";
                        hyper.Url = System.Web.HttpContext.Current.Request.Url.AbsoluteUri.ToString();
                        newItem["Hyperlink"] = hyper;
                        newItem.Update();
                        web.AllowUnsafeUpdates = false;
            protected void btnDisplay_Click(object sender, EventArgs e)
                SPWeb web = SPContext.Current.Web;
                SPList list = web.Lists["UserInformation"];
                SPQuery query = new SPQuery ();           
                query.Query = "<Where><Eq><FieldRef Name='Hyperlink' Type='URL' /><Value>http://nyc01d1sptmp01:8080/diligent/wiki/cft/Pages/home.aspx</Value></Eq></Where>";
                DataGrid grdList = new DataGrid();
                SPListItemCollection items = list.GetItems(query);
                DataTable table;
                table = new DataTable();
                table.Columns.Add("Title", typeof(string));
                table.Columns.Add("Hyperlink", typeof(string));
           table.Columns.Add("Created by", typeof(string));
                DataRow row;
                foreach (SPListItem result in items)
                    row = table.Rows.Add();
                    row["Title"] = result.Title;
                    row["Hyperlink"] = result.Name;
           SPFieldUser userField = (SPFieldUser)result.Fields.GetField("Users");
                    SPFieldUserValue userFieldValue = (SPFieldUserValue)userField.GetFieldValue(result["Users"].ToString());
                    SPUser user = userFieldValue.User;
                    string name = user.LoginName;
           row["Created by"] = name;
                grdList.DataSource = table.DefaultView;
                grdList.DataBind();

  • How to select and store the dynamically clicked values in the checkboxes?

    Hi Gurus
    How to select and store the dynamically clicked values in the checkboxes?
    Scenario:-
    I am having a tree structure but I am not getting that user has clicked the which nodes.
    So how to do it.
    Pls.

    Hi,
    Once again, this is dependent on what your implementation expects. It would seem that your implementation is expecting all of the API to be coded in Java Card so it would make sense that you would load these packages like any other package. Loading an applet is not a special case, it just has an extra step of installing instances of it (and can actually be installed). Any other Java package just needs to be loaded. As such, just load your CAP files for each package of the API before loading any code that depends on it.
    Cheers,
    Shane

Maybe you are looking for

  • Photo thumbnails not displaying in Media Browser

    Every time I open a program that features the Media Browser (which is just about everything in Leopard, these days), I never see thumbnails for my iPhoto images. I just see exclamation point icons-- in other words, the images themselves are never dis

  • New line character when writing to a file

    Hi, I am relatively new to the whole logging aspect in JDK1.4, so this is all what I am trying to do. I have setup a logger , using the standard FIleHandler. This handler is using a custom formatter which I have written. My formatter is very simple a

  • Problem in Creating the Org Unit

    Hi Experts, I am only using the FM RH_INSERT_INFTY to create an Org unit with Infotypes 1000,1001 & 1028. We have recently upgraded our system to SRM 7.0 from 4.0. Problem: The BP  is not being created corresponding to the Org Unit. But, When i creat

  • File.renameTo

    Hi, Does file.renameTo work on AIX Server,and how much time will this method take to move a file of 35 million records? Regards KK

  • Count calculated conditions occurrences

    Hi gurus,   I have a Z scenario with PLANT--ITEM---STATUSBEGDATE-- ENDATE-----COUNTER    P---- 01---- IOPEN-----XXXXXX-- XXXXX---- 1    P---- 01---- EOPEN-----XXXXXX-- XXXXX---- 1    P---- 02---- IOPEN---- XXXXXX---- XXXXXX---- 1  Counter has aggrega