How to display or suppress a field in the group footer conditionally

Hi,
     I am working with crystal report XI R2
     My requirement is that suppress the filed on group footer if it is duplicating .Also display only once for the first record in  each page  if it runs in to more than one page .
For example suppose my report is to display all the students name in a college on department basis.
Then do the grouping on department ,then display the names  like
Page 1
Department                      +Student+
Computer                             Ram
                                                Ravi
                                                Seetha
Electronics                          Anvar
                                              Deepak
                                              Geetha
Page 2  
Electronics                          Hari
                                              Karthik
                                                Xavier
Maths                                     Sini   etc.......
  Inorder to suppress the duplcated department name ,i am taking the count of the student names for each department and if the   count is more than 1 then suppressing it.
    But i am not able to display it conditionall on each page for the first record ,if the repor is running in different pages..
   Please let me know if you require more information regarding teh same.
Thanks in advance,
Smitha
Edited by: smitha thomas on Nov 17, 2010 9:58 AM
Edited by: smitha thomas on Nov 17, 2010 9:59 AM
Edited by: smitha thomas on Nov 17, 2010 10:02 AM

Right click the department name column and go to format field and  select supress if duplicate...this will remove duplicates
to get it displayed in each page
create a formula say F1 and place the column inside the formula
and conditionally supress for each page
This may help
Thanks,
Ganesh

Similar Messages

  • Suppress a field in the page footer unless it's the last page of the group

    Hi,
    I have a report set up where one can pull invoice information.  There is a page footer used for every page which contains a field that I only want visible when it is the last page of the group.
    For example, one might pull several invoices, each invoice being its own group.  A field would be suppressed in the footer unless it is the last page of that particular invoice.
    Is this something that can be done in Crystal Reports XI?
    Thank you.

    Hi,
    Alright, it's a bit rusty but here's how you can do it:
    1) Create this formula and place it in the Report Header:
    whileprintingrecords;
    numbervar n1 := groupnumber;
    2) Create this formula and place it in the Group Footer:
    whileprintingrecords;
    numbervar n := groupnumber;
    3) Create this formula and place it on the Page Footer:
    whileprintingrecords;
    numbervar n;
    4) Right-click the above formula (Formula on the Page Footer) and select Format Field > Common tab > click the formula button beside 'Suppress' and use this formula:
    numbervar n1;
    numbervar x;
    if currentfieldvalue <> n1 then
      x := 1;
      true;
    else
      x := 0;
      true;
    5) Right-click the field that you wish to always suppress except on the last page and select Format Field > Common tab > click the formula button beside 'Suppress' and use this formula:
    numbervar x;
    if x = 1 then true;
    Let me know how this goes!
    -Abhilash

  • Special summary field in the group footer section.

    Post Author: Razzle00
    CA Forum: General
    I have a Crystal Report that reads a customer file grouped by custid.  In the group footer section I need to place the value of the category field from each customer record in a seperate field on the report to match the section text label.The output of the report would look something like this for each customer id (1 page per cusomter id)....
    Customer Table Example:Custid   Category  Section
    101        C         1101        B         3101        D         6101        A         2 230        B         2230        D         3 230        E         1115        A         5115        C         6
    Each page of report example output:************************************************<pageheader>
    Customer Number: 101
    <Details><groupfootersection>
    This customer has the follow for each section:
    Section 1: C  Section 2: A  Section 3: BSection 4:Section 5:Section 6: D
    <Pagefooter>************************************************
    How would I create a field that could diplay the category for each section in the groupfootersection of the report?I realize this could be done in the detail secion of the report for each record, but I do not have the optionto use the detail band.  It has to be done in the groupfootersection so that the fields can be placed in variousplaces depending on customers preference.
    Thanks,
    Razzle

    A group footer will dis[lay contents of the last record. You need to sort records to ensure that the last record contains link to your dynamic image.
    Ian

  • Dynamic Picture Displaying in the Group Footer Section

    Hi all,
    I am building a sales quotation layout for SBO in crystal 2008.
    The layout has only one group. The first line in each group in considered to be a slaes tree father.
    For every group i need to display the picture of the "father" in the group footer  (one picture for every group).
    I get up to the stage when for each line in the detailes section i have a picture, but for all the lines other then the "father" line the picture is supressed.
    My problem is moving the displayed fahter picture from the detailes section to the group footer section. Every time i copy the picture field to the group footer nothing is displayed.
    Any idea?
    Thanks,
    Udi

    A group footer will dis[lay contents of the last record. You need to sort records to ensure that the last record contains link to your dynamic image.
    Ian

  • Is it possible to display only dynamically selected fields in the out put?

    Is it possible to display only dynamically selected fields in the out put? i need to display set of columns in the selection criteria, but in the output i have display only input given fields. because i need to convert it into .csv file. So i have to display selected fields from internal table. In oracle they are using"execute immediate". is there any equivalent in SAP?
    thanks in advance.

    Hi Remya,
    Are you talking about dynamic programming in ABAP ?
    If yes, there are concepts like RTTS which facilitates it.
    Yes, the select query also supports dynamic selection of fields. ( Please care about ( ) in dynamic sql ).
    Do more research on Field Symbols and statements like ASSIGN COMPONENT OF.
    Regards,
    Philip.

  • How to display designer module version no. on the form?

    Hi,
    Does anyone know how to display designer module version no. on the form?
    Thanks in advance

    With Headstart, we suggest you create a module argument P_REVISION and manually populate this item with the current revision of your module. You can then see this argument in the 'About this Application' form that is supplied with Headstart. You could write a utility to query the module revision number for the module and populate P_REVISION with this value.
    Regards,
    Lauri

  • Previous record values displaying in the Group Footer row in the report.

    Hi Friends,
    I have 3 tables
    TableA:(PERNR BEGDA ENDDA are key fields)
    PERNR BEGDA    ENDDA      WERKS
    10001 1/1/2010 12/31/9999 1001
    TableB:(PERNR BEGDA ENDDA SUBTY are key fields)
    PERNR BEGDA    ENDDA       SUBTY  TYPES
    10001 1/1/2010 12/31/9999   01          COMS1
    10001 1/1/2010 12/31/9999   02         COMS2
    TableC:(PERNR BEGDA  ENDDA are key fields)
    PERNR BEGDA  ENDDA        AMNT
    10001 2/2/1997 4/3/2010      1000
    10001 4/4/2010 12/31/9999  2000
    I have joined these table by the key 'PERNR'( like A->B and A->C)
    Groped by the same key 'PERNR'
    My result rows in the report:
    PERNR BEGDA    ENDDA      WERKS  SUBTY  TYPES  BEGDA    ENDDA      AMNT
    10001 1/1/2010 12/31/9999 1001       01         COMS1  2/2/1997 4/3/2010    1000
    10001 1/1/2010 12/31/9999 1001       02         COMS2  2/2/1997 4/3/2010    1000
    10001 1/1/2010 12/31/9999 1001       01         COMS1  4/4/2010 12/31/9999 2000
    10001 1/1/2010 12/31/9999 1001       02         COMS2  4/4/2010 12/31/9999 2000
    But in the report format is like this in the Group Footer row:
    PERNR: 10001                     WERKS:1001
    SUBTY: 02                          AMNT :2000 (Current date)
                                                AMNT :1000 (Previous record)
    I created the format with "Previous" function
    but in the report it is giving the '2000' instead of '1000' in the AMT field
    Please help me, can i use the for loop in the report? or any sugessions?
    Thanks in advance.
    Regards,
    Venkata

    A group footer will dis[lay contents of the last record. You need to sort records to ensure that the last record contains link to your dynamic image.
    Ian

  • How to display image in blob field in ResultSet in SiteStudio?

    I am running Site Studio 10gR4. For a custom page, I created a component that basically runs a query. The structure of the underlying data is a combination of Varchar2, Date and a single BLOB field. The blob field either contains a simple jpeg image, or nothing.
    In my Page where I am looping through the data, how do I display the blob as an image?
    Currently the code looks like this:
         <!--$loop SQLRoutes-->
              <tr>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 0))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 1))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 2))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 3))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 4))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 5))--></td>
                   <td><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 6))--></td>
              </tr>
         <!--$endloop-->Field 1 is a blob and fields 5 and 6 are dates.
    So really two questions:
    1. How do I display field1 as an image?
    Example:
    <!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 1))-->doesn't do it. Is there a different function then getValue() that I should be using to get the blob contents?
    2. I want to compare the date fields to todays date, and either change the color or conditionally display the fields. I could do this with basic taglibs from jsp. How do I do this with IDocScript?
    Example:
    <!--$if getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 6)) > dateCurrent-->
      <span class="red"><!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 6))--></span>
    <!--$endif-->Thanks, Ken

    I actually don't know the answer to #1. If I were to guess, there's nothing out-of-the-box to handle blobs, so your best option is to write your own idoc function. Take a look at the How To component if you don't know how.
    For #2, you almost have it right. Insert bold:
    &lt;!--$if <b>parseDate(formatDate(</b>getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 6))<b>)) gt</b> dateCurrent<b>()</b>--&gt;
    &lt;span class="red"&gt;<!--$getValue("SQLRoutes",rsFieldByIndex("SQLRoutes", 6))-->&lt;/span&gt;
    <!--$endif-->

  • How to display attachments as a field and not in message body

    I'd like to attach files in Apple Mail through the use of an attachments field (a la Outlook/Entourage) rather than it being shown as an icon in the message body, but I can't seem to find out how to do it.
    I'm pretty sure it can be done as it's displayed in Lokisoft's 'Without Attachment Tamer screenshot' (top left image) http://lokiware.info/Attachment-Tamer .
    Any bright ideas? Nothing in the GUI seems to help and Apple Tech Support won't divulge a terminal command I can use to expose the attachments field.

    Right click the department name column and go to format field and  select supress if duplicate...this will remove duplicates
    to get it displayed in each page
    create a formula say F1 and place the column inside the formula
    and conditionally supress for each page
    This may help
    Thanks,
    Ganesh

  • Urgent help needed: how to display a list of records on the screen

    Hello,
    This is very urgent. Can anyone help me. I have posted this query of mine before also but still no reply came. My whole application is dependent on this problem. Actually I am developing an application for mobile phone using MIDP. I have a record store which contains personal details for users. I am able to add records to the record store. Now I want that these records can be edited. For this I want to display a list of firstname field on the screen (and not console) so that i can select a user to edit its details. I have written the code to read the records and individual fields and display it on the console but i want to display that list on screen. I tried list and array but it s giving some error.
    I am giving the code to read the records below. Please tell me how can I display it in a list on the screen.
    public void readStream(){
    try
    byte[] recData=new byte[50];
    String varname;
    ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
    DataInputStream strmData=new DataInputStream(strmBytes);
    if (rsperdt.getNumRecords() > 0){
    ComparatorString comp=new ComparatorString();
    int i=1;
    RecordEnumeration re=rsperdt.enumerateRecords(null, comp, false);
    while(re.hasNextElement()){
    rsperdt.getRecord(re.nextRecordId(), recData,0);
    System.out.println("Record #" + i );
    varname = strmData.readUTF();
    System.out.println("Name #"+varname);
    System.out.println("---------------------------");
    i=i+1;
    strmBytes.reset();
    comp.compareStringClose();
    re.destroy();
    strmBytes.close();
    catch(Exception e){
    System.err.println("read Records class:read");
    }

    I could not understand ur point "post the code in tags". I am pasting the code below. Please help as my whole application is stuck due to this problem and I have a deadline of 7th oct.
    This midlet is getting called from some other midlet.
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    import javax.microedition.rms.*;
    import java.io.*;
    import java.util.*;
    public class frmread extends Form implements CommandListener
    static final String rec_store="db_per";
    private RecordStore rsperdt=null;
    private Vector vecname;
    private ChoiceGroup chname;
    private boolean flagSortByPriority = false, flagShowPriority = true;
    private Form fmmain;
    private Command cmdBack;
    private teledoc midlet;
    public frmread(String title, teledoc midlet)
    super(title);
    this.midlet = midlet;
    openRecStore();
    this.setCommandListener(this);
         chname = new ChoiceGroup("new", Choice.EXCLUSIVE);
         vecname = new Vector();
         cmdBack = new Command("Back", Command.BACK, 1);
    fmmain = new Form("Record Search");
         addCommand(cmdBack);
    setCommandListener(this);
    readStream();
         rebuildTodoList();
         closeRecStore();
    * Process events for this form only
    protected void rebuildTodoList()
    for(int j=chname.size(); j>0; j--)
         chname.delete(j-1);
         int priority;
         todoitem item;
         String text;
         StringBuffer sb;
         for (int j=0; j<vecname.size(); j++)
              item=(todoitem) vecname.elementAt(j);
              priority = item.getPriority();
              text = item.getText();
              sb = new StringBuffer((flagShowPriority ? (Integer.toString(priority) + "-"): ""));
              sb.append(text);
              chname.append(sb.toString(), null);
    public void commandAction(Command c, Displayable s)
    if (c == cmdBack){
    midlet.displayteledoc();
    public void readStream(){
    try
    byte[] recData=new byte[100];
    String varname;
    int varname1=0;
         ByteArrayInputStream strmBytes = new ByteArrayInputStream(recData);
         DataInputStream strmData=new DataInputStream(strmBytes);
         if (rsperdt.getNumRecords() > 0){
    ComparatorString comp=new ComparatorString();
    int i=1;
              int id = 1;
              vecname.removeAllElements();
              RecordEnumeration re=rsperdt.enumerateRecords(null, comp, false);
    while(re.hasNextElement()){
         rsperdt.getRecord(re.nextRecordId(), recData,0);
    System.out.println("Record #" + i );
    varname = strmData.readUTF();
                   varname1 = strmData.readInt();
                   id = re.nextRecordId();
                   System.out.println("Name #"+varname);
                   todoitem item = new todoitem(varname1, varname, id);
                   vecname.addElement(item);
                   System.out.println("---------------------------");
                   i=i+1;
    strmBytes.reset();
              comp.compareStringClose();
              re.destroy();
    strmBytes.close();
    catch(Exception e){
    System.err.println("read Records class:read");
    public void openRecStore(){
    try{
    rsperdt=RecordStore.openRecordStore("db_per",true);
    catch(RecordStoreException e){
    db(e.toString());
    public void closeRecStore(){
    try{
    rsperdt.closeRecordStore();
    catch(Exception e){
    db(e.toString());
    public void db(String str){
    System.err.println("Msg:" + str);
    class ComparatorString implements RecordComparator{
    private byte[] recData = new byte[20];
    private ByteArrayInputStream strmBytes = null;
    private DataInputStream strmDataType = null;
    public void compareStringClose(){
    try{
    if(strmBytes != null)
         strmBytes.close();
    if(strmDataType != null)
         strmDataType.close();
         catch (Exception e)
    public int compare(byte[] rec1, byte[] rec2)
         String str1, str2;
         try {
              int maxsize = Math.max(rec1.length, rec2.length);
              if (maxsize > recData.length)
              recData = new byte[maxsize];
                   strmBytes = new ByteArrayInputStream(rec1);
                   strmDataType = new DataInputStream(strmBytes);
                   str1=strmDataType.readUTF();
                   strmBytes = new ByteArrayInputStream(rec2);
                   strmDataType = new DataInputStream(strmBytes);
                   str2=strmDataType.readUTF();
                   int result=str1.compareTo(str2);
                   if (result == 0)
                   return RecordComparator.EQUIVALENT;
                   else if (result < 0)
                   return RecordComparator.PRECEDES;
                   else
                   return RecordComparator.FOLLOWS;
                   catch (Exception e)
                   return RecordComparator.EQUIVALENT;

  • Anyone can Help on {suppress} [database fields] inside the [fields]

    Reason to put database fields inside the fields
    1. I put in (word and database fields) inside fields box in order to let my word display smoothly one by one.
    Problem is , i am in section report footer d, i plan to suppress {Qrev if the value is "AAA"}
    got this type of function?
    If the Qrev = "AAA" than  suppress/hide it.
    Design screen :
    We will the undersigned, hereby acknowledge my acceptance of the above quote and agreed to the rates, terms and conditions stated herein as per your reference no: {QRef}  dates
    Display screen=
    We will the undersigned, hereby acknowledge my acceptance of the above quote and agreed to the rates, terms and conditions stated herein as per your reference no: 2014    AAA dates 10 march 2009
    wanted display screen
    We will the undersigned, hereby acknowledge my acceptance of the above quote and agreed to the rates, terns and conditions stated herein as per your reference no: 2014   dates 10 march 2009

    As what u say, i try to key in a [formula fields] call Qrev
    here the code :
    if {Quotation.QRev} = "AAA" then
        {Quotation.QRev} = " "
    We will the undersigned, hereby acknowledge my acceptance of the above quote and agreed to the rates,
    terns and conditions stated herein as per your reference no: MKT-2009/05/0018 True dates 19 Jun 2009
    but the Qrev.wouldnt be go delete / as a blank value. The value will only become  true or false
    Edited by: chee85 on Sep 18, 2009 7:40 AM

  • How to view/use 0costcenter txt fields in the query

    Hi,
    How to use the fields defined in the text table (/BI0/TCOSTCENTER) of 0costcenter. I want to be able to include them as fields in the query I am configuring and I don't see them available for choose from in the Query Designer. The cube that I am using is CO-OM-CCA(cost and allocation), standard cube from the business content. Do I need to include them separately in the dimension of the cube first to be able to use them in the report? The fields that I want to use are DATETO, DATEFROM, CO_AREA and COSCENTER. I assume description is already available in the display tab of the query designer tool.
    Thanks,
    Sharon

    Hi,
    In the Query designer, select the characteristics Cost center in the Rows/ Columns tab.
    On the display properties tab there are display options available,
    1. Key - Will display cost center number only
    2. Key and Text - Will display the CC number and the associated text.
    Selecting the second option will solve your problem.
    Also check for the same in Business Explorer Tab of the info object.
    Regards,
    Shyam.

  • How to add a custom Project field in the "OData Projects Data.odc" connection file? Project server 2013

    Hi,
    I created a project Enterprise field named "Countries and Cities" which contains a lookup table with information such as "USA.Seattle". How can I add this field in the oData connection file?
    Thanks 

    Paul,
    How do you write the custom field name
    "Countries and Cities" which contains 2 spaces?
    I always get the error:
    "We couldn't get data from the Data Model, Here'is the error message we got:
    The content of the data feed is not valid for an Atom feed."
    Thanks

  • Need to know how to iterate a list of field from the req xml in page servic

    Hi All,
    Please help me out with java code in which i am able to iterate a list of field coming in the request xml to my page service class under read(Pageheader header) method of mine queryPagemaintenace class.
    package com.splwg.cm.domain.pageService;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import com.ibm.icu.math.BigDecimal;
    import com.splwg.base.api.businessObject.BusinessObjectDispatcher;
    import com.splwg.base.api.businessObject.BusinessObjectInstance;
    import com.splwg.base.api.businessObject.COTSInstanceListNode;
    import com.splwg.base.api.datatypes.Date;
    import com.splwg.base.api.lookup.BusinessObjectActionLookup;
    import com.splwg.base.api.service.DataElement;
    import com.splwg.base.api.service.ItemList;
    import com.splwg.base.api.service.PageHeader;
    import com.splwg.shared.common.ApplicationError;
    import com.splwg.shared.environ.FieldDefinition;
    import com.splwg.shared.environ.ListDefinition;
    import com.splwg.shared.logging.Logger;
    import com.splwg.shared.logging.LoggerFactory;
    * @author
    @QueryPage (program = CMUSER, service = CMUSER,
    * body = @DataElement (contents = { @ListField (name = USER_GROUP_LIST)
    * , @ListDataField (name = USR_GRP_ID)
    * , @DataField (name = MESSAGE_TEXT)
    * , @DataField (name = USER_ID)
    * , @DataField (name = PASSWORD)
    * , @DataField (name = LAST_NAME)
    * , @DataField (name = FIRST_NAME)
    * , @DataField (name = USER_TYPE_FLG)
    * , @DataField (name = EMAILID)}),
    * actions = { "add"
    * ,"read"
    * , "delete"
    * , "change"},
    * header = { @DataField (name = USER_TYPE_FLG)
    * , @DataField (name = EMAILID)
    * , @DataField (name = LAST_NAME)
    * , @DataField (name = FIRST_NAME)
    * , @DataField (name = PASSWORD)
    * , @DataField (name = USER_ID)},
    * headerFields = { @DataField (name = USER_TYPE_FLG)
    * , @DataField (name = USR_GRP_ID)
    * , @DataField (name = EMAILID)
    * , @DataField (name = LAST_NAME)
    * , @DataField (name = FIRST_NAME)
    * , @DataField (name = PASSWORD)
    * , @DataField (name = USER_ID)},
    * lists = { @List (name = USER_GROUP_LIST, size = 100, includeLCopybook = false,
    * body = @DataElement (contents = { @DataField (name = USR_GRP_ID)}))},modules = {})
    public class CMUSER extends CMUSER_Gen {
    public static final Logger logger = LoggerFactory.getLogger(CMUSER.class);
         DataElement root = new DataElement();
         PageHeader page = new PageHeader();
         protected DataElement read(PageHeader header) throws ApplicationError{
    I want to know how can i iterate this USER_GROUP_LIST in my read method and get the USR_GRP_ID field data from it.
    A Prompt reply from your end will help me to resolve this issue

    Guru Sir,
    i tried to override the add() method of the framework in that i was able to iterate the field from the list. But now the i am facing there is that i am not able to send back the response to the external system in XML format. I am getting a blank response in my SOAP UI Tool while testing here is the code:
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
    import com.ibm.icu.math.BigDecimal;
    import com.splwg.base.api.businessObject.BusinessObjectDispatcher;
    import com.splwg.base.api.businessObject.BusinessObjectInstance;
    import com.splwg.base.api.businessObject.COTSInstanceListNode;
    import com.splwg.base.api.datatypes.Date;
    import com.splwg.base.api.lookup.BusinessObjectActionLookup;
    import com.splwg.base.api.service.DataElement;
    import com.splwg.base.api.service.ItemList;
    import com.splwg.base.api.service.PageHeader;
    import com.splwg.shared.common.ApplicationError;
    import com.splwg.shared.logging.Logger;
    import com.splwg.shared.logging.LoggerFactory;
    * @author
    @QueryPage (program = CMUSER4, service = CMUSER4,
    * body = @DataElement (contents = { @DataField (name = MESSAGE_TEXT)
    * , @DataField (name = PASSWORD)
    * , @DataField (name = USER_ID)
    * , @DataField (name = LAST_NAME)
    * , @DataField (name = FIRST_NAME)
    * , @DataField (name = USER_TYPE_FLG)
    * , @DataField (name = EMAILID)
    * , @ListDataField (name = USR_GRP_ID)
    * , @ListField (name = USER_GROUP_LIST)}),
    * actions = { "add"
    * , "delete"
    * , "change"
    * , "read"},
    * header = { @DataField (name = USER_ID)
    * , @DataField (name = MESSAGE_TEXT)},
    * headerFields = { @DataField (name = USER_ID)
    * , @DataField (name = MESSAGE_TEXT)},
    * lists = { @List (name = USER_GROUP_LIST, size = 100,
    * body = @DataElement (contents = { @DataField (name = USR_GRP_ID)}))}, modules = {})
    public class CMUSER4 extends CMUSER4_Gen {
         public static final Logger logger = LoggerFactory.getLogger(CMUSER4.class);
         DataElement root = new DataElement();
         PageHeader page = new PageHeader();
         protected PageHeader add(DataElement item) throws ApplicationError{
              BusinessObjectInstance boInstance = BusinessObjectInstance.create("CM-USER");
              String USR_GRP_ID = null;
              try{
              logger.info("Data coming from the Service into the Application is :"+item.get(STRUCTURE.USER_ID));
              logger.info("Data coming from the Service into the Application is :"+item.get(STRUCTURE.FIRST_NAME));
              logger.info("Data coming from the Service into the Application is :"+item.get(STRUCTURE.LAST_NAME));
              logger.info("Data coming from the Service into the Application is :"+item.get(STRUCTURE.EMAILID));
              // logger.info("Data coming from the Service into the Application is :"+getInputHeader().getString(STRUCTURE.list_USER_GROUP_LIST.USR_GRP_ID));
              // Iterator it = STRUCTURE.
              ItemList sourceList = item.getList(STRUCTURE.list_USER_GROUP_LIST.name);
              List userGrpID = new ArrayList();
              logger.info("The Size of the User Group List here is :"+sourceList.size());
              Iterator iter;
              if ((sourceList != null) &&
              (sourceList.size() > 0)) {
              for (iter = sourceList.iterator(); iter.hasNext(); ) {
              DataElement myItem = (DataElement)iter.next();
              USR_GRP_ID = myItem.get(STRUCTURE.list_USER_GROUP_LIST.USR_GRP_ID);
              logger.info("The User Group Id coming in the List here is :"+USR_GRP_ID);
              logger.info("Data coming from the Service into the Application is :"+item.get(STRUCTURE.PASSWORD));
              boInstance.set("user", item.get(STRUCTURE.USER_ID));
              boInstance.set("firstName", item.get(STRUCTURE.FIRST_NAME));
              boInstance.set("lastName", item.get(STRUCTURE.LAST_NAME));
              boInstance.set("emailAddress", item.get(STRUCTURE.EMAILID));
              // COTSInstanceList userGrpList = boInstance.getList("userGroupUser");
              // COTSInstanceListNode userGroupList = userGrpList.newChild();
              COTSInstanceListNode userGroupList = boInstance.getList("userGroupUser").newChild();
              userGroupList.set("userGroup", USR_GRP_ID);
              logger.info("Data coming from the Service into the Application is :"+userGroupList.toString());
              /*boInstance.set
              boInstance.set("userGroup", getInputHeader().getString(STRUCTURE.HEADER.USR_GRP_ID));*/
              // UserTypeLookup.constants.TEMPLATE_USER
              //if(element.get(STRUCTURE.USER_TYPE_FLG))
              //boInstance.set("user", element.get(STRUCTURE.));
              boInstance.set("dashboardWidth","200");
              boInstance.set("homeNavigationOption","CI0000000574");
              boInstance.set("language","ENG");
              boInstance.set("toDoEntriesAge1", new BigDecimal(50));
              boInstance.set("toDoEntriesAge2",new BigDecimal(100));
              boInstance.set("displayProfileCode", "NORTHAM");
              String expirationDate = "2100-12-31";
              String[] array = expirationDate.split("-");
              userGroupList.set("expirationDate",new Date(Integer
                             .parseInt(array[0]), Integer
                             .parseInt(array[1]), Integer
                             .parseInt(array[2])));
              //boInstance.set("userGroupUser", userGroupList);
              COTSInstanceListNode roleUserList = boInstance.getList("roleUser").newChild();
              roleUserList.set("toDoRole","F1_DFLT");
              COTSInstanceListNode dataAccessList = boInstance.getList("dataAccessUser").newChild();
              dataAccessList.set("dataAccessRole","***");
              String expiryDate = "2100-01-01";
              String[] array1 = expiryDate.split("-");
              dataAccessList.set("expireDate",new Date(Integer
                             .parseInt(array1[0]), Integer
                             .parseInt(array1[1]), Integer
                             .parseInt(array1[2])));
              BusinessObjectDispatcher.execute(boInstance,
                             BusinessObjectActionLookup.constants.FAST_ADD);
              page.put(STRUCTURE.HEADER.MESSAGE_TEXT, "User Added Successfully");
              page.put(STRUCTURE.HEADER.USER_ID,item.get(STRUCTURE.USER_ID));
              }catch(Exception e){
                   e.printStackTrace();
                   page.put(STRUCTURE.HEADER.MESSAGE_TEXT, "Caught Exception in the ORMB System. Please reach out to the Admin"+e.getMessage());
                   page.put(STRUCTURE.HEADER.USER_ID,item.get(STRUCTURE.USER_ID));
              return page;
    If you can help me to find out what went wrong here while sending the response back it can close my issue.

  • How to use an infopath form field in the designer workflow

    Hi,
    I need to send an email to a person field from Infopath form. Can i access it in the workflow. If not, is there a way i can send an email on form submission from within the infopath form.
    Please help. Thank you.

    Hi Prajk,
    There are three ways of achieving it, one i will say its pretty straightforward and covers the basic of Infopath Forms Development
    1)Populate Fields From Infopath Form at the time of Publishing.
    The moment you done with your form and to publish you click FIle>Publish>SharePoint Server >Enter the Url of Site> Then Click Next twice upto a point where wizard asks "The fields listed below will be available as SharePoint Columns" ,
    Click Add, select the placeholder in myfields for Person Field , expand the "person" group field and choose "AccountId", give the name to column(this will be SharePoint List Column Name) and for function select "first" and then
    click next and Finish.
    And use this field in Designer Workflow to send email.
    2)Second way is to write VSTA based C# code on click of your  Submit action on the form and upload and activate this form on form library via Central Admin.
    3)Now other way of doing this is via Event Recievers.
    Every infopath Form is an XmL File so on ItemAdded event you can extract its content and implement email sending c# code there:-
    http://www.bizsupportonline.net/infopath2007/how-to-use-sharepoint-event-handler-object-model-submit-data-infopath-form-sharepoint-list.htm
    Mark as Answer if helped!! To be or Not to Be..The question is this only......

Maybe you are looking for