Field containing a list of sizes or a table ?

Iain was kind enough to advise on using a table instead of a field containing a list of 6 comma separated items.
I did this, but can I throw a new slant on why I'd prefer to use a field ?
JEWELLERY WEB PAGE
select * from merchandise where merchandise.category = "Jewellery"
PRODUCT DETAIL PAGE
When a user clicks on any items from above page, the hyperlink sends the unique merchandise_ID in the link, to a product detail page using a new query:
select * from merchandise where merchandise.merchandise_ID = URL.merch_ID'
This jewellery comes in various sizes. These sizes were in a comma separated list in a field called 'sizes' in the merchandise table. I'd been advised to move them to a table instead. If I moved the sizes to a separate table I'd have to add a LEFT JOIN to include the sizes table or run a separate query on the sizes table (where sizes.merchandise_ID = URL.merch_ID) - which is a performance hit.
All I need to do with the sizes is produce a drop down list the user can choose from - so isn't it better I just put the sizes in a single field, separated by commas ? Then use Coldfusions inbuilt functions to parse the list into a drop-down box ?

A thought experiment that might convince you.
Lets compare these two data schemas.
CSV
Item
Size
Shirt
Small,Medium,Large
Coat
Medium,Small,Large
Pants
Small,Large,Medium
Shoes
Large,Small,Medium
NORMALIZED
Size Table
Key
Size
1
Small
2
Medium
3
Large
Item - Size Join Table
ItemKey
SizeKey
1
1
1
2
1
3
2
1
2
2
2
3
3
1
3
2
3
3
4
1
4
2
4
3
Item Table
Key
Item
1
Shirt
2
Coat
3
Pants
4
Shoes
Now imagine these two systems extended to multiple thousands of items.
Then imaging that some marketing type decided that "Large" was an ugly description for that size so they want to change it to "Husky"  and|or they want to change the "Small" size to "Petite".
In the Normalized version you make one or two updated to the size table.  I don't even want to try and describe the ugly update you have to try and create that involves looping and string manipulations to try and update all the records in the CSV version.

Similar Messages

  • Site lookup columns that contain a list with lookup columns help needed

    Here is the theoretical scenario,
    I have a list called Shirts. The list contains name,color, and size columns.
    I have a list called Pants This list contains name, color and size columns as well.
    These two lists are contained at the root level of the site. I created site lookup columns for these two lists and used the name, color and size columns as additional fields on both lookup columns. Lets call these lkupPants and lkupShirts.
    On a sub site I have a list called people. It contains name,date,lkupPants and lkupShirts columns.
    The list looks something like this is dataview:
    Name Date lkupPantsName lkupPantsColor lkupPantsSize lkupShirtName lkupShirtColor lkupShirtSize
    This is the behavior I expected. The additional columns selected in the site lookup columns appear in the list.
    I now create another site lookup column this one is based on the list called people at this subsite level. When creating the site lookup column, the data from lkupPants and lkupShirts are not available.
    How can one create a lookup column that contains list data and any lookup columns contained in the list as additional fields.
    If anyone can see where I am going with this, can they provide another means to accomplish what I am trying to do?
    fr0stsp1re

    create additional columns in people list.  look up values are available in the workflow so populate the additional columns with the values you need.  this will allow you to create another look up column based on this list and all the fields needed.
     just a thought.
    kashif

  • Looking for a value in a list stored in a database table field

    Hello,
    I have a field in a database table that contains a comma
    separated list on numbers. In my CFQUERY I am attempting to extract
    records from the database table where a parsed number is present in
    the comma separated list. I have tried the code below, but it is
    throwing an error.
    variables.publicationID is the number that I am looking for
    in the database table field.
    publicationList is the name of the database table field
    containing the comma separated list of numbers.
    where <cfqueryparam value="#variables.publicationID#"
    cfsqltype="cf_sql_integer"> in publicationList
    Can anybody help?
    Many thanks,
    smnbin

    The only way to do it with the data model you currently have
    is as follows:
    WHERE publicationList LIKE '#variables.publicationID#' OR
    publicationList LIKE '#variables.publicationID#,%' OR
    publicationList LIKE '%,#variables.publicationID#,%' OR
    publicationList LIKE '%,#variables.publicationID#'
    You need to check for 4 cases:
    it's the only ID in the list
    it's the first ID in the list
    it's in the middle of the list
    it's the last ID in the list.
    The better solution would be to replace this comma-delimited
    list with a mapping table, where each row in this mapping table
    contains a reference to the main table as well as a single
    publicationID.

  • This field contains duplicate values. Remove all duplicate values and try the operation again.

    Greetings Everyone,
    I am getting the follow up errors: "This field contains duplicate values. Remove all duplicate values and try the operation again."
    when I tried to make the field "Claim Number" from the list in site collection library. See the screen below:
    1- I selected on the "List" and I clicked on the list name
    "Claim Tracking Report"
    2- After I clicked on the list name then I went to the ribbon and selected list setting to choose Enforce Unique for the Field Column
    "Claim Number"
    3- Then I went down and selected
    "Yes" to Enforced the Unique for the Field Column "Claim Number".
    4- Then after I clicked "Yes" I got the error
    "Sorry, something went wrong. This field contains duplicate values. Remove all duplicate values and try the operation again."  But I don't have any duplicates values Items, because I had them removed before I tried
    to Enforce the field column values to Unique. Can someone help or provide me a suggestions on how I can solve this issue please. Thank you
    FYI: I am using a Nintex Workflow

    Hope this is a list, how many total items are there?
    Please try to open this list as access(link in IE) and run this query in access
    SELECT Claim.[Claim Number], Count(*) AS Expr1
    FROM Claim
    GROUP BY Claim.[Claim Number]
    HAVING (((Count(*))>1));
    Hope it will show something! if this does not show you dups then better to create a separate list and migrate items after configuring unique column.
    Please 'propose as answer' if it helped you, also 'vote helpful' if you like this reply.

  • User pictures are not shown when users are added to person field in custom list

    Hi,
    Recently we have migrated our intranet from SP2010 to SP2013. We upgraded User profile service application, My sites and Intranet site to new environment. We haven't upgraded sites to use SP 2013 templates due to some business decisions. Everything
    is working fine and as expected.
    There are few lists in our environment where we have added users in a persons fields and allowed to show their pictures with details along with name. these user pictures are not being shown on to the page. After looking in picture property I found that "white
    Space" in a picture library name is replace by %2520 instead of %20 (/user%2520photos/profile%2520pictures).
    I tried reproducing problem on a new team site with SP 2010 template and it is reproduced however it is not occurring for a team site with SP 2013 template.
    Any suggestions would be very helpful for resolving this issue. Thanks in advance.
    -Amol Meshe

    We are experiencing the same issue. We get a /User%2520Photos/Profile%2520Pictures/ path anytime we use the people picker field with the option to display picture or the picture and details option.
    EDIT: This is only a problem on the list view. If you open the display form the image shows just fine. I can't see any setting view Edit Page and updating the web part that contains the list data to correct this.
    Michael Allen (.NET and SharePoint 2010 Developer)

  • Listing Mailbox Size Limits

    I am looking for an easy way to check individual mailbox limits without manually clicking my way through 3000 users.
    I have looked up the Admin API for running a simple vbscript but the mailbox limits field isn't listed in the API reference. Surely someone has had to do this before?
    thanks!

    Oppss!! Sorry for the confusion.
    You can have a listing of the Mailbox Size Limit for each user doing a maintenance of the post office.
    Try this.
    1.-Do a GroupWise Mailbox/Library Maintenance
    Select Action: Analyze/Fix Database
    Select: Structure
    Select: Contents
    Select: Collect Statistics
    Databases. Users (Selecet Message if you want)
    Results: Send the results to you email.
    2.- Wait by the end of the process
    3.- Open the log file and search for "Disk space management values"
    You can observe the following values for each user:
    .- Size Limit - (n)KB
    .- Threshold - (n)%
    .- (n)kbytes in use by user's mail
    I hope this help to you needs.

  • Sort on field containing Hebrew description in PowerView connected to MultiDimentional Model

    Hi,
    We are connected to MultiDimentional via Power View in SharePoint 2013.
    The Local Identifier Code is 1037 (Hebrew).
    The problem is that every time you check a field containing description in Hebrew
    the query is stuck, cause there is an automatic Order by clause on fetched fields
    in the query generated by the PowerView. For ex:
    EVALUATE
      FILTER(
        KEEPFILTERS(
          SUMMARIZE(
            VALUES('DW DIM CUSTOMERS'),
            'DW DIM CUSTOMERS'[BRANCH CD.Key0],
            'DW DIM CUSTOMERS'[BRANCH CD]
        NOT(ISBLANK('DW DIM CUSTOMERS'[BRANCH CD.Key0]))
    ORDER BY
      'DW DIM CUSTOMERS'[BRANCH CD], 'DW DIM CUSTOMERS'[BRANCH CD.Key0]
    If the order by on 'DW DIM CUSTOMERS'[BRANCH CD] (the desc of the branch)
    removed (manually in SSMS) the query runs without any performance issues.
    How this could be fixed?
    TY

    Hi Dimitri,
    According to your description, did you want to improve MDX query performance?
    In SQL Server, we can consider following conditions to improve SSAS query performance:
    Use calculated members with Scope assignments instead of using IIF.
    Remove empty tuples from MDX result.
    Optimize cube and measure group design, etc.
    Reference:
    http://technet.microsoft.com/en-gb/library/cc966527.aspx
    As per my understanding, there is no limit to the number of columns in the ORDER BY clause; however, the total size of the columns specified in an ORDER BY clause cannot exceed 8,060 bytes. It may be cause the similar issue.
    If there are any misunderstanding, please feel free to let me know.
    Regards,
    Alisa Tang
    Alisa Tang
    TechNet Community Support

  • Searching Web Apps with Data Source fields containing multiple values

    I have a Web App with a field allowing multiple values to be entered similar to the checkbox list. I need to restrict allowed values to a large, finite list of values currently stored in another Web App as the data source. I can't apply the Data Source field type as that only allows single value selection. I also need to be able to use the Web App Search form to search for items containing 1 OR more values in this field (the search functionality of a checklist field type). Here's what I've tried for field types:
    Text (string) or Text (multiline) field type - By saving a list of comma separated values (the same way that checkbox list outputs) to a text input or textarea, the search logic only searches for exact string (including commas) and doesn't parse the individual values.
    List (checkbox list) field type - This allows me to search multiple values using OR logic, but the web app will only store values that have been entered as options in the actual web app field setup. I tried using a checkbox list with minimal or empty options hoping that whatever values I sent over in a comma separated string value would still get stored, but because the values came from my Web App data source and not the list of options stored with the field, they were not saved.
    Has anyone found a way to do this?
    My other question is about how I might use a similar multi-value field as described above but return search results containing items with ALL selected values for that field (AND logic).
    Can anyone enlighten me to the inner workings of BC web app search logic?

    Thanks Robert.
    You'll need to create your own interface to the webapp database for those kind of data operations
    by this, are you speaking of the internal BC database which stores web app schema data? That would be great if it were possible to update that programmatically because I need to use the List (Checkbox List) field type (for the search functionality), but I need to supply the checkbox options from a web app rather than by manually updating the list entered in the Fields view of the web app settings (shown below).
    I'm curious if anyone else has tried this?
    Again, my reason for needing to use the List (Checkbox List) field type is that the page which processes searches knows to expect a comma separated list for this field type and then appears to be parsing out the individual values for searching out web app items with 1 or more matching values. You're right that text fields (string and multiline) just check for 'string contains' matches, and this would be ok if I was only ever needing to search just one value at a time. Here's an example of what I might do:
    Web App item field value (as recorded against the List (Checkbox List) field type:
    8294877,8294878
    Web App Search value (for this same field):
    8294879,8294877,8294885
    The search would return this web app item because the field contains 2 (1 or more) individual values even though they were entered into the search field in a different order. If this web app item were just a Text (string or multiline) field, the searched value is not a substring of the web app item's stored value, so it would not find a match. Hence the need to use Checkbox List field type.
    The web app will have thousands if not 10s of thousands of records, so dumping them all into one big array or object and searching on the front-end won't be practical (though it works great on smaller datasets).

  • Creating auto-increment field in SharePoint List

    In SharePoint, we can create the auto-incremental field by many ways, I am going to discuss two ways of doing it.
    Calculated field
    Item Event Receiver
    1. Using Calculated field:
    Using this we can accomplish it without doing any programing and it is a relatively simple way of doing it. By using “Calculated” column in SharePoint List we can create auto-increment field. We can accomplish this by creating a new column and choosing the
    column type as “Calculated (calculation based on other columns)”. And in Formula field, we have to enter [ID]
    In fact this will be using the values from “ID” field from SharePoint list that starts from 1.
    For example, if we want to start our auto-increment column from 100, we can modify the “Formula” field of Create New column screen, we can have to enter [ID] + 99
    For detailed info please follow the blog I wrote here: http://faisalrafique.wordpress.com/2011/03/19/creating-auto-increment-field-in-sharepoint-list/
    2. Using Item Event Receiver:
    By using this strategy, users have advantage to edit the existing values, we can also avoid it by making field read-only on feature activation. Using item event receiver, on ItemAdded event, we have to find the highest value among previously added items
    and then save the incremented value to current newly created auto-incremental column.
    For code of event reciever please follow the blog I wrote here:
    http://faisalrafique.wordpress.com/2011/03/19/creating-auto-increment-field-in-sharepoint-list/
    Happy Coding

    Use Sharepoint Designer to create a Workflow for the list containing the field to increment. For my project I had an Invoice field that I wanted to start with 1001 and increment from there so I made the following workflow to do this.
    In the new workflow screen in Sharepoint Designer create two actions in Step 1:
    Calculate Current Item:ID plus 1000 (Output to Variable: calc)
    then Set AutoIncrementNumber to Variable: calc
    This is just a guide. If you just want the auto-increment to start with 1 then you can just use this step
    Set AutoIncrementNumber to Current Item:ID
    Also, make sure you select the correct name for your field in the Workflow action instead of AutoIncrementNumber.
    Save the Workflow, close it, and then open it again in Sharepoint Designer. Check the box for "Start workflow automatically when an item is created." Save it again and then click on the Publish button to make it active on the sharepoint site. The value should
    now increment for each new item created in the list.

  • I cannot dowload all fields from ALV list to Excel - urgent, please help me

    I developed a report and displayed in ALV list using FM 'REUSE_ALV_GRID_DISPLAY'.The list contains 200 fields.But when i am trying to download in EXCEL file from ALV list, it is unable to download all the fields from ALV list into EXCEL.
    Thanks in advance,
    Katta.

    is your list having packed decimals or any fields which are of large length (around 128 char)?
    It can happen so.

  • List does not exist . The page you selected contains a list that does not exists. It may have been deleted by another user

    Hi everybody!
    I have a sharepoint 2013 farm with 5 sever. I upgraded a site from sharepoint 
    2007 to sharepoint 2013. I had some problems to install and configure workflow manager and register it. but by now I found problems and I can create a workflow and run it successfully. My big problem is when I try to get a lookup field in my flow. the
    flow suspended and I got the following error:
    “List does not exist . The page you selected contains a list that does not exists. It may have been deleted by another user.”
    Any solution???
    Thanks in advance!

    Hi,
    Please make sure the source list of the lookup column and the list which consumes the content from the lookup column exists on the site collection.
    In addition, to correct this problem the following steps should be applied:
    Delete the affected Workflow association
    Go to "Central Administration" - "Application Management"
    Select the affected web application and choose "General Settings" - "Resource Throttling"
    Increase the value configured as "List View Lookup Threshold"
    Perform an iisreset to ensure that all in memory instances of the web application settings are gone
    Add the Workflow association back to the list
    More information is here:
    http://social.technet.microsoft.com/Forums/en-US/3aeeba20-07dd-4e46-941b-a3db1bb3577e/sharepoint-2013-designer-workflow-the-page-you-selected-contains-a-list-that-does-not-exist?forum=sharepointcustomization
    Best Regards
    Dennis Guo
    TechNet Community Support

  • Invalid text value. A text field contains invalid data. Check the value and try again

    Hello,
    I am having a problem with the error mentioned in the title. I see alot of others have experienced the same problem, but I have quite a twist to it.
    I see the problem when I try to edit a list item, and then try to save the changes.
    Here what I see in the ULS log:
    System.Runtime.InteropServices.COMException: Invalid text value. A text field contains invalid data. Check the value and try again  
    at Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId,
    Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter
    pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)   
    at Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean
    bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback,
    ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback)
    I have 3 front end servers(fx wfe1, wfe2, wfe3).  And here is the twist.
    If I access the library directly through wfe1 and wfe2, I get the error. If I access the library via wfe3 if works just fine.
    So because of this, I think it is safe to assume that is has nothing to do with the character limit of 255. Nor does it have anything to do with the field type, since it is already set to mulitible lines of text.
    So. Any ideas?
    Regards,
    Michael
    mic

    Check if there is any change in web.config of these servers
    http://support.microsoft.com/kb/2880758
    To work around this issue, limit the length of the personal message in the invitation to 256 characters or less.
    This is a known issue. Microsoft is working to resolve this issue.
    http://social.msdn.microsoft.com/Forums/en-US/7bb16e51-e7cc-439e-a8b3-755683ccac1a/max-length-on-custom-field-types
    To solve the problem you may have to change the field's parent type to "note". To do that you have to open your fldtypes... file under Templates/xml and change the line to:
    "<Field Name="ParentType">Note</Field>" from "<Field Name="ParentType">Text</Field>"
    You might also have to add a sql type if your text needs to be longer than 255 characters
    <Field Name=”SQLType”>ntext</Field>
    and inherit from SPFieldMultiLineText instead of SPFieldText
    If this helped you resolve your issue, please mark it Answered

  • I want to add new field to this list

    hi all,
    i want to add new field to this list.
    kostenstelle from table zfmkstel
    *& Report  ZFM_MOBLIST                                                 *
    REPORT  ZFM_MOBLIST.
    TABLES: zfm_handy , pa0002.
    TYPE-POOLS : slis.
    DATA: g_repid LIKE sy-repid,
          gs_print            TYPE slis_print_alv,
          gt_list_top_of_page TYPE slis_t_listheader,
          gt_list_end_of_page TYPE slis_t_listheader,
          gt_events           TYPE slis_t_event,
          gt_sort             TYPE slis_t_sortinfo_alv,
          gs_layout           TYPE slis_layout_alv,
          gt_fieldcat         TYPE slis_t_fieldcat_alv,
          fieldcat_ln LIKE LINE OF gt_fieldcat,
          col_pos TYPE i.
    *DATA : BEGIN OF it_moblist OCCURS 0.
           INCLUDE STRUCTURE zfm_handy.
    *DATA :  nachn  TYPE  pa0002-nachn,     
           vorna TYPE  pa0002-vorna,
         END OF it_moblist.
    DATA : BEGIN OF IT_MOBLIST OCCURS 0,
           TELNUM TYPE ZFM_HANDY-TELNUM,
           KARTNR TYPE ZFM_HANDY-KARTNR,
           ZUTART TYPE ZFM_HANDY-ZUTART,
           PERNR TYPE ZFM_HANDY-PERNR,
           nachn  TYPE pa0002-nachn,
           VORNA TYPE pa0002-vorna,
           ZDATE TYPE ZFM_HANDY-ZDATE,
           PINNR TYPE ZFM_HANDY-PINNR,
           PUKNR TYPE ZFM_HANDY-PUKNR,
           TARIF1 TYPE ZFM_HANDY-TARIF1,
           TARIF2 TYPE ZFM_HANDY-TARIF2,
           TARIF3 TYPE ZFM_HANDY-TARIF3,
           GTYPE TYPE ZFM_HANDY-GTYPE,
           IMEI TYPE ZFM_HANDY-TARIF1,
            twincard type zfm_handy-twincard,
            twinbill type zfm_handy-twinbill,
            einbau type zfm_handy-einbau,
            beschr type zfm_handy-beschr,
            text1 type zfm_handy-text1,
             text2 type zfm_handy-text2,
              text3 type zfm_handy-text3,
              end of it_moblist.
    DATA : BEGIN OF IT_zfm_handy OCCURS 0,
         TELNUM TYPE ZFM_HANDY-TELNUM,
         KARTNR TYPE ZFM_HANDY-KARTNR,
         ZUTART TYPE ZFM_HANDY-ZUTART,
         PERNR TYPE ZFM_HANDY-PERNR,
         ZDATE TYPE ZFM_HANDY-ZDATE,
         PINNR TYPE ZFM_HANDY-PINNR,
         PUKNR TYPE ZFM_HANDY-PUKNR,
         TARIF1 TYPE ZFM_HANDY-TARIF1,
         TARIF2 TYPE ZFM_HANDY-TARIF2,
         TARIF3 TYPE ZFM_HANDY-TARIF3,
         GTYPE TYPE ZFM_HANDY-GTYPE,
         IMEI TYPE ZFM_HANDY-TARIF1,
          twincard type zfm_handy-twincard,
          twinbill type zfm_handy-twinbill,
          einbau type zfm_handy-einbau,
          beschr type zfm_handy-beschr,
          text1 type zfm_handy-text1,
           text2 type zfm_handy-text2,
            text3 type zfm_handy-text3,
            end of it_zfm_handy.
    *DATA : BEGIN OF it_zfm_handy OCCURS 0.
           INCLUDE STRUCTURE zfm_handy.
    *DATA END OF it_zfm_handy.
    DATA : BEGIN OF it_pa0002 OCCURS 0,
            pernr TYPE pa0002-pernr,
            nachn   TYPE pa0002-nachn,     
           vorna     TYPE pa0002-vorna,
           pernr TYPE pa0002-pernr,
           END OF it_pa0002.
    INITIALIZATION.
      g_repid = sy-repid.
      PERFORM print_build USING gs_print.      "Print PARAMETERS
    START-OF-SELECTION.
      PERFORM data_selection.
      PERFORM build_fieldcat.
      PERFORM eventtab_build CHANGING gt_events.
      PERFORM comment_build  CHANGING gt_list_top_of_page.
      PERFORM call_alv.
    *&      Form  TOP_OF_PAGE
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_list_top_of_page.
      WRITE: sy-datum, 'Page No', sy-pagno RIGHT-JUSTIFIED.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  END_OF_PAGE
    FORM end_of_page.
      WRITE: /.
      WRITE AT (sy-linsz) sy-pagno CENTERED.
    ENDFORM.                    "END_OF_PAGE
    ### PRINT SETTINGS
    FORM print_build USING ls_print TYPE slis_print_alv.
      ls_print-print              = ' '. "PRINT IMMEDIATE
      ls_print-no_print_selinfos  = 'X'. "NO SELECTION INFO
      ls_print-no_coverpage       = ' '. "NO COVER PAGE
      ls_print-no_new_page        = ' '. "NO NEW PAGE
      ls_print-no_print_listinfos = 'X'. "NO PRINT LIST INFO
      ls_print-reserve_lines      = 2.   " FOOTERLINE
    ENDFORM.                    "PRINT_BUILD
    *&      Form  data_selection
          text
    -->  p1        text
    <--  p2        text
    FORM  data_selection .
      data : n(8) type n.
      SELECT * FROM
                 zfm_handy
           INTO CORRESPONDING FIELDS OF TABLE it_zfm_handy where pernr ne space.
      IF NOT it_zfm_handy[] IS INITIAL.
        loop at it_zfm_handy.
          n = it_zfm_handy-pernr.
          it_zfm_handy-pernr = n.
          modify it_zfm_handy.
        endloop.
        SELECT  pernr  nachn        
               vorna     
         FROM  pa0002
         INTO TABLE it_pa0002
         FOR ALL ENTRIES IN it_zfm_handy
         WHERE pernr = it_zfm_handy-pernr and endda = '99991231'.
       SELECT  pernr  nachn        
              vorna     
        FROM  pa0002
        INTO TABLE it_pa0002
        FOR ALL ENTRIES IN it_zfm_handy
        WHERE pernr = it_zfm_handy-pernr and begda le sy-datum and endda ge sy-datum.
      ENDIF.                              " not it_zfm_handy
      LOOP AT it_zfm_handy.
        MOVE-CORRESPONDING  it_zfm_handy TO it_moblist.
        clear it_pa0002.
        READ TABLE it_pa0002  WITH KEY pernr = it_zfm_handy-pernr.
        if sy-subrc = 0.
          move it_pa0002-nachn to it_moblist-nachn.
          move it_pa0002-vorna to it_moblist-vorna.
          move it_pa0002-pernr to it_moblist-pernr.
        ENDIF.
        APPEND  it_moblist.
        CLEAR   it_moblist.
    *endif.
      ENDLOOP.
    ENDFORM.                    " data_selection
    *&      Form  BUILD
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat .
    Explain Field Description to ALV
      DATA: fieldcat_in TYPE slis_fieldcat_alv.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname = 'TELNUM'.
      fieldcat_ln-tabname   = 'IT_MOBLIST'.
      fieldcat_ln-no_out    = ' '.
      fieldcat_ln-seltext_l = 'TELNUM'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname = 'KARTNR'.
      fieldcat_ln-tabname   = 'IT_MOBLIST'.
      fieldcat_ln-no_out    = ' '.
      fieldcat_ln-seltext_l = 'KARTNR'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname = 'ZUTART'.
      fieldcat_ln-tabname   = 'IT_MOBLIST'.
      fieldcat_ln-no_out    = ' '.
      fieldcat_ln-seltext_l = 'ZUTART'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'PERNR'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'PERNR'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'NACHN'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l =  'NACHN'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'VORNA'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'VORNA'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'ZDATE'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'ZDATE'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'PINNR'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'PINNR'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'PUKNR'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'PUKNR'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TARIF1'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TARIF1'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TARIF2'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TARIF2'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TARIF3'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TARIF3'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'GTYPE'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'GTYPE'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'IMEI'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'IMEI'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TWINCARD'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TWINCARD'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TWINBILL'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TWINBILL'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'EINBAU'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'EINBAU'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'BESCHR'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'BESCHR'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TEXT1'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TEXT1'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TEXT2'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TEXT2'.
      APPEND fieldcat_ln TO gt_fieldcat.
      CLEAR fieldcat_in.
      fieldcat_ln-fieldname     = 'TEXT3'.
      fieldcat_ln-tabname       = 'IT_MOBLIST'.
      fieldcat_ln-no_out        = ' '.
      fieldcat_ln-seltext_l = 'TEXT3'.
      APPEND fieldcat_ln TO gt_fieldcat.
    DATA SORTING
      DATA: gs_sort TYPE slis_sortinfo_alv.
      CLEAR gs_sort.
      gs_sort-fieldname = 'TELNUM'.
      gs_sort-spos      = 1.
      gs_sort-up        = 'X'.
    GS_SORT-SUBTOT    = 'X'.
      APPEND gs_sort TO gt_sort.
    CLEAR GS_SORT.
    GS_SORT-FIELDNAME = 'KARTNR'.
    GS_SORT-SPOS      = 2.
    GS_SORT-UP        = 'X'.
    *GS_SORT-SUBTOT    = 'X'.
      APPEND gs_sort TO gt_sort.
    ENDFORM.                    " BUILD
    *&      Form  EVENTTAB_BUILD
          text
         <--P_GT_EVENTS  text
    FORM eventtab_build  CHANGING lt_events TYPE slis_t_event.
      CONSTANTS:
    gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
    gc_formname_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = lt_events.
      READ TABLE lt_events WITH KEY name =  slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO lt_events.
      ENDIF.
    define END_OF_PAGE event
      READ TABLE lt_events WITH KEY name =  slis_ev_end_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_end_of_page TO ls_event-form.
        APPEND ls_event TO lt_events.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  COMMENT_BUILD
          text
         <--P_GT_LIST_TOP_OF_PAGE  text
    FORM comment_build  CHANGING gt_top_of_page TYPE slis_t_listheader.
      DATA: gs_line TYPE slis_listheader.
      DATA: today_date(10) TYPE c.
      CONCATENATE
      sy-datum+6(2) '.'
      sy-datum+4(2) '.'
      sy-datum(4) INTO today_date.
      CLEAR gs_line.
      gs_line-typ  = 'H'.
      gs_line-info = 'MOBLIST DETAILS'.
      APPEND gs_line TO gt_top_of_page.
      CLEAR gs_line.
      gs_line-typ  = 'S'.
      gs_line-key  = 'Date:'.
      gs_line-info = today_date.
      APPEND gs_line TO gt_top_of_page.
    GS_LINE-KEY  = 'User:'.
    GS_LINE-INFO = sy-uname.
      APPEND gs_line TO gt_top_of_page.
      CLEAR gs_line.
      gs_line-typ  = 'A'.
      gs_line-info = 'ACTION'.
      APPEND gs_line TO  gt_top_of_page.
    ENDFORM.                    " COMMENT_BUILD
    *&      Form  CALL_ALV
          text
    -->  p1        text
    <--  p2        text
    FORM call_alv .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       i_callback_program = g_repid
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
       is_layout =  gs_layout
       it_fieldcat = gt_fieldcat
         it_sort = gt_sort
         it_events = gt_events
         is_print = gs_print
       TABLES
         t_outtab = IT_MOBLIST
       EXCEPTIONS
         program_error = 1
       OTHERS = 2.
    ENDFORM.                    "CALL_ALV.

    Hi,
    add:
    1) to IT_MOBLIST
    text3 type zfm_handy-text3,
    kostl type csks-kostl,
    end of it_moblist.
    2)...
    CLEAR fieldcat_in.
    fieldcat_ln-fieldname = 'KOSTL'.
    fieldcat_ln-tabname = 'IT_MOBLIST'.
    fieldcat_ln-no_out = ' '.
    fieldcat_ln-seltext_l = 'KOSTL'.
    APPEND fieldcat_ln TO gt_fieldcat.

  • Hi all   F4 on field in alv list

    hi all
    i would like to know how is it possible to give f4 help to a field in alv list.  this is field is input enable.
    if not in alv list, is it possible in alv grid.
    thanx
    rocky

    HI
    like this
    TYPES : BEGIN OF ST_OBJID_SH,
             OTYPE TYPE HRP1000-OTYPE,
             OBJID TYPE HRP1000-OBJID,
            END OF ST_OBJID_SH.
    DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.
    DATA : WA_OBJID_SH TYPE ST_OBJID_SH.
    ***********SELECTION SCREEN DESIGN***********************
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    *SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .
    SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .
    SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    **********END OF SELECTION SCREEN DESIGN*****************
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.
    IF S_OBJID IS NOT INITIAL.
        SELECT OTYPE OBJID FROM HRP1000
                     INTO TABLE IT_OBJID_SH
                     WHERE OTYPE = 'D'.
    IF SY-SUBRC EQ 0.
    SEARCH HELP FOR QUALIFICATION.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
          EXPORTING
                 DDIC_STRUCTURE         = ' '
            RETFIELD               =  'OBJID'
                 PVALKEY                = ' '
           DYNPPROG               = SY-REPID
           DYNPNR                 = SY-DYNNR
           DYNPROFIELD            = 'S_OBJID'
                 STEPL                  = 0
                 WINDOW_TITLE           =
                 VALUE                  = ' '
           VALUE_ORG              = 'S'
                 MULTIPLE_CHOICE        = ' '
                 DISPLAY                = ' '
                 CALLBACK_PROGRAM       = ' '
                 CALLBACK_FORM          = ' '
                 MARK_TAB               =
               IMPORTING
                 USER_RESET             =
          TABLES
            VALUE_TAB              =  IT_OBJID_SH
                 FIELD_TAB              =
                 RETURN_TAB             = RETURN_TAB
                 DYNPFLD_MAPPING        =
               EXCEPTIONS
                 PARAMETER_ERROR        = 1
                 NO_VALUES_FOUND        = 2
                 OTHERS                 = 3
        IF SY-SUBRC <> 0.
              MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.

  • Editable field in alv list display

    i WANT TO GIVE COLOR FOR EDITABLE FIELD IN ALV LIST DISPLAY.i TRIED WITH EMPHASIZE IN FIELD CATALOGUE ASSIGNING.bUT,IT IS NOT WORKING.HOW TO DO.tHANX IN ADVANCE.........

    HI,
    Please refer the link below:
    http://www.****************/Tutorials/ALV/Edit/demo.htm
    http://www.****************/Tutorials/ALV/ColorSALV/Demo.htm
    Thanks,
    Sriram Ponna.

Maybe you are looking for