Percentage on objects

hi,
can u just clarify my question that on which objects(dimension,detail,measure) possible for appling percentage calucation.
regards
sekhar

Hi Sekhar,
I Checked this with Demo Universe Island And Resort Marketing.
When the type of the Object is Number in universe then you can perform numeric operation on Dimension objects similar to Measure Objects.
I changed the qualification of objects Number of guests and sales revenue in universe then  I could perform percentage calculation.
Similar is the case with Detail objects but your detail objects position will be changed to the position of itu2019s associated Dimension object.
I Hope this Helpsu2026
Thanksu2026
Pratik

Similar Messages

  • The amount of free SGA memory available in the database

    Hi,
    How can we calculate the amount of free SGA memory available from the instance if the database is not set for Memory management.If the sga_max_size is set for a particular value and the db_cache_size and the shared_pool and all other components are specified,how can one determine whether all the memory allocated for SGA is in use?

    How can we calculate the amount of free SGA memory available from the instance if the database is not set for Memory management.When the SGA is allocated, the memory is fixed, and none of it is "free" really.
    how can one determine whether all the memory allocated for SGA is in use? Are you asking about usage WITHIN the pools? If so, shortly after startup the database buffer and shared_pool will fill-up and stay full . . . . .
    Here is the script that I use to see inside the data buffer contents:
    set pages 999
    set lines 80
    spool blocks.lst
    ttitle 'Contents of Data Buffers'
    drop table t1;
    create table t1 as
    select
    o.object_name object_name,
    o.object_type object_type,
    count(1) num_blocks
    from
    dba_objects o,
    v$bh bh
    where
    o.object_id = bh.objd
    and
    o.owner not in ('SYS','SYSTEM')
    group by
    o.object_name,
    o.object_type
    order by
    count(1) desc
    column c1 heading "Object|Name" format a30
    column c2 heading "Object|Type" format a12
    column c3 heading "Number of|Blocks" format 999,999,999,999
    column c4 heading "Percentage|of object|data blocks|in Buffer" format 999
    select
    object_name c1,
    object_type c2,
    num_blocks c3,
    (num_blocks/decode(sum(blocks), 0, .001, sum(blocks)))*100 c4
    from
    t1,
    dba_segments s
    where
    s.segment_name = t1.object_name
    and
    num_blocks > 10
    group by
    object_name,
    object_type,
    num_blocks
    order by
    num_blocks desc
    Hope this helps. . ..
    Don Burleson
    Oracle Press author

  • BUFFER_POOL KEEP问题

    question from oracler:
    SYS@orcl>select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE 11.2.0.1.0 Production
    TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    parameter set as :
    SYS@orcl>sho parameter cache_size
    NAME TYPE VALUE
    client_result_cache_size big integer 0
    db_16k_cache_size big integer 80M
    db_2k_cache_size big integer 0
    db_32k_cache_size big integer 0
    db_4k_cache_size big integer 0
    db_8k_cache_size big integer 0
    db_cache_size big integer 160M
    db_flash_cache_size big integer 0
    db_keep_cache_size big integer 128M
    db_recycle_cache_size big integer 0
    SYS@orcl>create table dna.t2 storage(buffer_pool keep) as select level id ,rpad('*',4000,'*') data from dual connect by
    level<=15000;
    表已创建。
    SYS@orcl>select count(*) from dna.t2;
    COUNT(*)
    15000
    SYS@orcl>set autotrace traceonly
    SYS@orcl>select count(*) from dna.t2;
    执行计划
    Plan hash value: 3321871023
    | Id | Operation | Name | Rows | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 4116 (1)| 00:00:50 |
    | 1 | SORT AGGREGATE | | 1 | | |
    | 2 | TABLE ACCESS FULL| T2 | 16126 | 4116 (1)| 00:00:50 |
    Note
    - dynamic sampling used for this statement (level=2)
    统计信息
    0 recursive calls
    0 db block gets
    15004 consistent gets
    15000 physical reads
    0 redo size
    528 bytes sent via SQL*Net to client
    519 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    SYS@orcl>select count(*) from dna.t2;
    执行计划
    Plan hash value: 3321871023
    | Id | Operation | Name | Rows | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 4116 (1)| 00:00:50 |
    | 1 | SORT AGGREGATE | | 1 | | |
    | 2 | TABLE ACCESS FULL| T2 | 16126 | 4116 (1)| 00:00:50 |
    Note
    - dynamic sampling used for this statement (level=2)
    统计信息
    0 recursive calls
    0 db block gets
    15004 consistent gets
    15000 physical reads
    0 redo size
    528 bytes sent via SQL*Net to client
    519 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    为什么会出现大量的physical reads现象,难道此存在于The KEEP buffer pool中的表,应该不会出现此现象?

    answered by maclean liu:
    SQL>
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE    11.2.0.3.0      Production
    TNS for Linux: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Production
    SQL> show parameter db_keep
    NAME                                 TYPE                             VALUE
    db_keep_cache_size                   big integer                      128M
    SQL> create table maclean_tan2 storage(buffer_pool keep) as select level id ,rpad('*',4000,'*') data from dual connect by
      2  level<=15000;
    Table created.
    SQL>  select count(*) from maclean_tan2;
      COUNT(*)
         15000
    Execution Plan
    Plan hash value: 1229461046
    | Id  | Operation          | Name         | Rows  | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |              |     1 |  4069   (1)| 00:00:49 |
    |   1 |  SORT AGGREGATE    |              |     1 |            |          |
    |   2 |   TABLE ACCESS FULL| MACLEAN_TAN2 | 15476 |  4069   (1)| 00:00:49 |
    Note
       - dynamic sampling used for this statement (level=2)
    Statistics
              4  recursive calls
              0  db block gets
          15081  consistent gets
          15000  physical reads
              0  redo size
            527  bytes sent via SQL*Net to client
            523  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> select count(*) from maclean_tan2;
      COUNT(*)
         15000
    Execution Plan
    Plan hash value: 1229461046
    | Id  | Operation          | Name         | Rows  | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |              |     1 |  4069   (1)| 00:00:49 |
    |   1 |  SORT AGGREGATE    |              |     1 |            |          |
    |   2 |   TABLE ACCESS FULL| MACLEAN_TAN2 | 15476 |  4069   (1)| 00:00:49 |
    Note
       - dynamic sampling used for this statement (level=2)
    Statistics
              0  recursive calls
              0  db block gets
          15004  consistent gets
          15000  physical reads
              0  redo size
            527  bytes sent via SQL*Net to client
            523  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> alter session set events '10046 trace name context forever,level 8';
    Session altered.
    SQL> select count(*) from maclean_tan2;
      COUNT(*)
         15000
    SQL> oradebug setmypid;
    Statement processed.
    SQL> oradebug tracefile_name
    /s01/orabase/diag/rdbms/vprod/VPROD1/trace/VPROD1_ora_29876.trc        
    PARSING IN CURSOR #140118795641360 len=33 dep=0 uid=0 oct=3 lid=0 tim=1340511245212199 hv=486583032 ad='76883110' sqlid='drryzcwfh1ars'
    select count(*) from maclean_tan2
    END OF STMT
    PARSE #140118795641360:c=6000,e=35195,p=0,cr=77,cu=0,mis=1,r=0,dep=0,og=1,plh=1229461046,tim=1340511245212192
    EXEC #140118795641360:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1229461046,tim=1340511245212328
    WAIT #140118795641360: nam='SQL*Net message to client' ela= 13 driver id=1650815232 #bytes=1 p3=0 obj#=79780 tim=1340511245212395
    WAIT #140118795641360: nam='asynch descriptor resize' ela= 11 outstanding #aio=0 current aio limit=235 new aio limit=265 obj#=79780 tim=1340511245214369
    WAIT #140118795641360: nam='direct path read' ela= 140 file number=1 first dba=200555 block cnt=1 obj#=79780 tim=1340511245276928
    WAIT #140118795641360: nam='direct path read' ela= 124 file number=1 first dba=200683 block cnt=1 obj#=79780 tim=1340511245294008
    WAIT #140118795641360: nam='direct path read' ela= 126 file number=1 first dba=201707 block cnt=1 obj#=79780 tim=1340511245425743
    WAIT #140118795641360: nam='direct path read' ela= 170 file number=1 first dba=201835 block cnt=1 obj#=79780 tim=1340511245454308
    WAIT #140118795641360: nam='direct path read' ela= 126 file number=1 first dba=201963 block cnt=1 obj#=79780 tim=1340511245472445
    WAIT #140118795641360: nam='direct path read' ela= 113 file number=1 first dba=202091 block cnt=1 obj#=79780 tim=1340511245488926
    WAIT #140118795641360: nam='direct path read' ela= 116 file number=1 first dba=202219 block cnt=1 obj#=79780 tim=1340511245505475
    WAIT #140118795641360: nam='direct path read' ela= 116 file number=1 first dba=202475 block cnt=1 obj#=79780 tim=1340511245539057
    WAIT #140118795641360: nam='direct path read' ela= 157 file number=1 first dba=202603 block cnt=1 obj#=79780 tim=1340511245556950
    WAIT #140118795641360: nam='direct path read' ela= 31 file number=1 first dba=202987 block cnt=1 obj#=79780 tim=1340511245608673
    WAIT #140118795641360: nam='direct path read' ela= 131 file number=1 first dba=203115 block cnt=1 obj#=79780 tim=1340511245624922
    WAIT #140118795641360: nam='direct path read' ela= 113 file number=1 first dba=203755 block cnt=1 obj#=79780 tim=1340511245706298
    WAIT #140118795641360: nam='direct path read' ela= 28 file number=1 first dba=203883 block cnt=1 obj#=79780 tim=1340511245722656
    WAIT #140118795641360: nam='direct path read' ela= 13 file number=1 first dba=204011 block cnt=1 obj#=79780 tim=1340511245738218
    WAIT #140118795641360: nam='direct path read' ela= 31 file number=1 first dba=204523 block cnt=1 obj#=79780 tim=1340511245801733
    direct path read  而非 db file scattered read
    11g new feature 对于大表 的FULL SCAN 可以直接采用 direct path read   读入PGA 而不经过 buffer cache
    ALTER SESSION SET EVENTS '10949 TRACE NAME CONTEXT FOREVER';
    10949 event 可以禁止 11g 的这种特性;
    [oracle@vrh1 ~]$ oerr ora 10949
    10949, 00000, "Disable autotune direct path read for full table scan"
    // *Cause:
    // *Action:  Disable autotune direct path read for serial full table scan.
    _small_table_threshold 设置为较大值  避免 optimizer 将这个表视为大表 buffer 被flush
    SQL>
    SQL> alter session set "_small_table_threshold"=999999;
    Session altered.
    SQL> ALTER SESSION SET EVENTS '10949 TRACE NAME CONTEXT FOREVER';
    Session altered.
    SQL> select count(*) from maclean_tan2;
      COUNT(*)
         15000
    SQL> set autotrace on;
    SQL> select count(*) from maclean_tan2;
      COUNT(*)
         15000
    Execution Plan
    Plan hash value: 1229461046
    | Id  | Operation          | Name         | Rows  | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |              |     1 |  4069   (1)| 00:00:49 |
    |   1 |  SORT AGGREGATE    |              |     1 |            |          |
    |   2 |   TABLE ACCESS FULL| MACLEAN_TAN2 | 15476 |  4069   (1)| 00:00:49 |
    Note
       - dynamic sampling used for this statement (level=2)
    Statistics
              0  recursive calls
              0  db block gets
          15011  consistent gets
              0  physical reads
              0  redo size
            527  bytes sent via SQL*Net to client
            523  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> select count(*) from maclean_tan2;
      COUNT(*)
         15000
    Execution Plan
    Plan hash value: 1229461046
    | Id  | Operation          | Name         | Rows  | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |              |     1 |  4069   (1)| 00:00:49 |
    |   1 |  SORT AGGREGATE    |              |     1 |            |          |
    |   2 |   TABLE ACCESS FULL| MACLEAN_TAN2 | 15476 |  4069   (1)| 00:00:49 |
    Note
       - dynamic sampling used for this statement (level=2)
    Statistics
              0  recursive calls
              0  db block gets
          15011  consistent gets
              0  physical reads
              0  redo size
            527  bytes sent via SQL*Net to client
            523  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    http://www.oracledatabase12g.com/archives/script-list-buffer-cache-details.html
    参考以上网址的脚本
    set pages 999
    set lines 92
    column c0 heading "Owner"                                    format a12
    column c1 heading "Object|Name"                              format a30
    column c2 heading "Object|Type"                              format a8
    column c3 heading "Number of|Blocks in|Buffer|Cache"         format 99,999,999
    column c4 heading "Percentage|of object|blocks in|Buffer"    format 999
    column c5 heading "Buffer|Pool"                              format a7
    column c6 heading "Block|Size"                               format 99,999
    select
       buffer_map.owner                                          c0,
       object_name                                       c1,
       case when object_type = 'TABLE PARTITION' then 'TAB PART'
            when object_type = 'INDEX PARTITION' then 'IDX PART'
            else object_type end c2,
       sum(num_blocks)                                     c3,
       (sum(num_blocks)/greatest(sum(blocks), .001))*100 c4,
       buffer_pool                                       c5,
       sum(bytes)/sum(blocks)                            c6
    from
       buffer_map,
       dba_segments s
    where
       s.segment_name = buffer_map.object_name
    and
       s.owner = buffer_map.owner
    and
       s.segment_type = buffer_map.object_type
    and
       nvl(s.partition_name,'-') = nvl(buffer_map.subobject_name,'-')
    group by
       buffer_map.owner,
       object_name,
       object_type,
       buffer_pool
    having
       sum(num_blocks) > 10
    order by
       sum(num_blocks) desc
                                                           Number of Percentage
                                                           Blocks in  of object
                 Object                         Object        Buffer  blocks in Buffer    Block
    Owner        Name                           Type           Cache     Buffer Pool       Size
    SYS          MACLEAN_TAN2                   TABLE         15,001         98 KEEP      8,192
    SYS          C_TOID_VERSION#                CLUSTER        1,765         57 DEFAULT   8,192
    SYS          C_OBJ#                         CLUSTER        1,428         93 DEFAULT   8,192
    SYS          OBJ$                           TABLE            931         91 DEFAULT   8,192
    SYS          I_OBJ2                         INDEX            760         99 DEFAULT   8,192
    SYS          C_FILE#_BLOCK#                 CLUSTER          198         77 DEFAULT   8,192
    SYS          I_FILE#_BLOCK#                 INDEX             40        100 DEFAULT   8,192
    SYS          I_OBJ1                         INDEX             37         14 DEFAULT   8,192
    SYS          INDPART$                       TABLE             16        100 DEFAULT   8,192
    SYS          I_HH_OBJ#_INTCOL#              INDEX             15         12 DEFAULT   8,192
    SYS          HIST_HEAD$                     TABLE             15          4 DEFAULT   8,192
    SYS          AQ$_SYS$SERVICE_METRICS_TAB_S  TABLE             14         88 DEFAULT   8,192
    SYS          C_TS#                          CLUSTER           13         81 DEFAULT   8,192
    SYS          I_DEPENDENCY1                  INDEX             13          2 DEFAULT   8,192
    SYS          I_ACCESS1                      INDEX             12          2 DEFAULT   8,192
    15 rows selected.
    可以看到 MACLEAN_TAN2 表在 keep buffer pool中的详细信息, 15,001 blocks=  117MB
                     

  • Generation count for classes in heap

    Hi
    I am trying to create a memory profiler, and one feature that I would like it to have is when you request a heap dump, it will be able to give you a generation count for each type of class. By the generation count, I mean the number of different ages of all objects of that class. Do you have any ideas how i would go about calculating this figure?
    To keep track of the object allocations, i think i will have to use BCI. Then, for each object allocation, I also want to be able to store the stack trace, so I can present on the front end gui what percentage of objects was created by which method. How would I be able to get the stack trace for each object allocation?
    Any help would be much appreciated
    Thanks
    Billy

    You can use BCI to track object allocation. If you look at the HPROF demo they you wil see an example which can record the stack trace too. This of course will be expensive if you do this for every object. Another point about tracking object allocation is that often it is more interesting just to know what is keeping an object alive and to find the place where it is inserted into a collection, or set as the value of a static field, etc. Information on generations and how many GCs an object survives is not available via JVM TI.

  • Warning triangle, percentages and smart objects

    Hi,
    As a new member, I imagine these two have come up before - but if not...
    1. I'd like to see the same Warning Triangle in Lightroom, as can be seen in Camera Raw to indicate when an image is fully loaded or 'ready' on screen.
    2. Why does LR use percentages, when CSx and Camera Raw use an 8bit value for RGB values etc - this seems crazy for interworking.
    3. Creating a smart object in CS can only be done from Camera Raw - can this be added to LR?
    4. Editing a previosuly generated PSD from LR - can I have the option of double-clicking from LR without creating a new file with -Edit - ie something more intelligent?
    Cheers,
    Mark

    > 1. I'd like to see the same Warning Triangle in Lightroom, as can be seen in Camera Raw to indicate when an image is fully loaded or 'ready' on screen.
    LR has tiles that come up that say things like "loading".
    > 2. Why does LR use percentages, when CSx and Camera Raw use an 8bit value for RGB values etc - this seems crazy for interworking.
    The RGB values are meaningless without a defined color space and/or profile.
    > 3. Creating a smart object in CS can only be done from Camera Raw - can this be added to LR?
    Not without changes to PS/ACR.
    > 4. Editing a previosuly generated PSD from LR - can I have the option of double-clicking from LR without creating a new file with
    -Edit - ie something more intelligent?
    Same as last answer.

  • WTK Memory Monitor, "Objects" view - how to interpret percentages?

    In the WTK Memory Monitor "Objects" view, a table of objects and memory sizes is shown. When clicking on an entry, a tree view is shown on the right hand side. Each item in the tree view has a percentage number next to it - how do I interpret this? Is it relative to the "Live", "Total" or "Total size" value of the corresponding object? More specifically, is it a count or size percentage?

    In the WTK Memory Monitor "Objects" view, a table of objects and memory sizes is shown. When clicking on an entry, a tree view is shown on the right hand side. Each item in the tree view has a percentage number next to it - how do I interpret this? Is it relative to the "Live", "Total" or "Total size" value of the corresponding object? More specifically, is it a count or size percentage?

  • Problem keeping percentage on linked objects

    Hi all, I think I have discovered an annoying bug.
    Software:
    Adobe Photoshop CC 14.2.1 x64
    Mac OS 10.9.2
    Recreate:
    Create an .ai file in Ai
    Place as linked in Ps
    Set size in percentage
    Go to another layer (not sure if this is necessary)
    Go back to the layer of linked file
    Cmd + t and the percentage you just set is changed.
    Setting an linked ai file to 65% changes by it self to 64,79% (width) and 65,28 (height).
    Anyone else experiencing this and have a fix?
    EDIT:
    Reported earlier: http://feedback.photoshop.com/photoshop_family/topics/smart_objects_retain_scaling_percent age_in_options_bar

    Could this be a case where the shape has snapped to a pixel boundary and the zoom percentage has been adjusted to show it?
    Does changing this setting affect your results?
    -Noel

  • Ideas on Percentage share of DB (data base) by different BW objects

    Dear experts,
    In our system, Different BW objects have the following share of DB (source ST14). What are your ideas on these numbers? Do these numbers seem Ok? Are they comparable to the numbers you have in your productive systems? Is there any thing that you think needs our immediate attention? Is there any benchmark from SAP about these % numbers?
    Type     Size of BW Objects (% Share of DB)
    OTHER                     35,04%
    PSA                             34,00%
    ODS                             0,01%
    F-Fact                          0,04%
    E-Fact                          0,17%
    Aggregate                       30,42%
    Master Data/Other BW Table      0,29%
    CHANGELOG                       0,03%
    Thanks in advance for your ideas.

    These numbers seem very strange to me.
    Your actual information in the BW system, i.e.
    ODS 0,01%
    F-Fact 0,04%
    E-Fact 0,17%
    Master Data 0,29%
    is only 0,5% of your database. Hence 99,5% of your data base is redundant information!
    Allthough redundant information is important in a BW system, this is too much. Are you sure these numbers are correct?
    'PSA' and 'CHANGELOG' can be used for data validation and easier reload, but should be deleted, when they are no longer used.
    'Aggregate's improve reporting performance.
    'OTHER' tables are usually standard table, you cannot affect.

  • Creating a percentage of marked objects from a bag help

    Hey guys, i've had good feedback and help from these forums before so thought i'd pick your brains again...
    I'm looking at making a sim/game based around random results.
    The experiment im supporting has (for example) 100 rubber ducks in a bag, you pick out 30 and mark them with a cross and place them back in the bag. Then you pick another 30 and note how many of the marked ducks you have found again.
    I have some knowledge of Flash and have managed to make a random dice simulator and a few others.
    I figure the best way is to forget about manually marking the ducks but instead have a drop down box where you can sellect how many of the 100 will be marked.Then have an action button which produces the results (in numbers?) underneath each corresponding duck (1 normal yellow, one marked).
    Anybody able to help?
    Thanks very much!!
    Ollie

    Yes, it makes sense, and the simulation I gave you does that and a bit more.  It actually let's you pick ducks more than just twice.
    I do want to make sure I understand the concept clearly, so I'll write things in "my words" just to be clear.
    When you say you wish to simulate the picking the ducks, you mean that when the user clicks the bag, the computer will pick the ducks randomly for him, the user will not actually see 100 ducks and start picking each one.  Correct?
    If the answer to that is YES, then the button that says "Draw", that's your bag.
    Now I separated the part that does the reporting, from the part that does the drawing to let it be more flexible and so that you could slice it better to suit your needs.
    My simulation does pick random ducks every time.  Basically what it does, takes 30 ducks out of the bag, marks them and puts them back it.  You click again and it picks 30 ducks out of the bag, marks them, and puts them back in.  So a duck can have more than one x.  Technically speaking, those are very special rubber ducks because they can have 2,147,483,648 'X's on them.
    Let's look at the code that actually does this in more detail
    function drawFromBucket(event:MouseEvent):void      // could be called drawFromBag
        var ducksPickedList:Array = new Array();       // this is how I keep track of which ducks have been taken OUT of the bag in each draw
        var amountOfDucksToPick:int = 30;               // How many ducks to take out, easily changed to suit your needs
        howManyDraws++;                                      // Keeping count of how many times have we taken ducks out of the bag
                                  // Here is where we pick the ducks  This is a loop that will go 30 times or how many you choose above
        for (var index:int = 0; index < amountOfDucksToPick; index++)
             // Pick a duck at random and check to see if we already picked it
             // if we did, pick another.
             var luckyDuckIndex:int;
             do
                  luckyDuckIndex  = Math.random() * howManyDucks;     // Pick a duck by it's number
              } while (ducksPickedList.indexOf(luckyDuckIndex) >= 0);  // Check to see if it's out of the bag, if it is out already pick anotherone.
              trace("Lucks duck #" + luckyDuckIndex.toString());   // So you can see in your Console which ducks have been picked.
                                                                    // put it in the list that stores the ducks that out of the bag.  This gets reset on every draw from the bag
             ducksPickedList.push(luckyDuckIndex);
            //  Mark that duck
            var luckyDuck:Object = bunchOfDucks[luckyDuckIndex];     // We just had a number this is how we grab the duck that belongs to that number
            luckyDuck.timesSelected++;                                           // We write an X on that duck.
      The reporting function basically tells you how many ducks are there than have more than x amount of 'X's on them, although interesting, not exactly what you needed.  What you need is not that complicated to get, there is multiple ways of doing this, but I'll just edit the function above.
    I got rid of the button that showed the results, and just show the results on each draw.
    Here is the final code:
    stop();
    var bunchOfDucks:Array = new Array();
    var howManyDucks:int = 100;
    var howManyDraws:int = 0;
    drawDucksButton.addEventListener(MouseEvent.CLICK,drawFromBucket);
    // Create the ducks
    for (var duckIndex:int=0; duckIndex < howManyDucks; duckIndex++)
        var oneDuck:Object = new Object();
        oneDuck.timesSelected = 0;
        bunchOfDucks.push(oneDuck);
    function drawFromBucket(event:MouseEvent):void
        var ducksPickedList:Array = new Array();
        var amountOfDucksToPick:int = 30;
        var amountOfFirstTimePicks:int = 0;
        var amountThatHaveAtLeastOneX:int = 0;
        howManyDraws++;
        for (var index:int = 0; index < amountOfDucksToPick; index++)
             // Pick a duck at random and check to see if we already picked it
             // if we did, pick another.
             var luckyDuckIndex:int;
             do
                  luckyDuckIndex  = Math.random() * howManyDucks;
              } while (ducksPickedList.indexOf(luckyDuckIndex) >= 0);
              trace("Lucks duck #" + luckyDuckIndex.toString());
             // put it in the list
             ducksPickedList.push(luckyDuckIndex);
            //  Find the duck that belongs to the number pulled
            var luckyDuck:Object = bunchOfDucks[luckyDuckIndex];
            // We check to see if the duck had a X previously and
            // count accordingly
            if (luckyDuck.timesSelected == 0)
                amountOfFirstTimePicks++;
            else
                amountThatHaveAtLeastOneX++;
                // Write an X on that duck.
            luckyDuck.timesSelected++;            
         showResultsBox.labelNotMarkedBefore.text = amountOfFirstTimePicks.toString();
         showResultsBox.labelHasPreviousX.text = amountThatHaveAtLeastOneX.toString();
         showResultsBox.labelAmountOfDraws.text = howManyDraws.toString();
         getStats();
    // Find out how many ducks where picked more than the amount
    // specified in the moreThanAmount parameter
    function howManyDucksPickedMoreThan(moreThanAmount:int):int
        var count:int = 0;
        for (var duckIndex:int=0; duckIndex < howManyDucks; duckIndex++)
            var oneDuck:Object = bunchOfDucks[duckIndex];
            if ( oneDuck.timesSelected > moreThanAmount)
                count++;
        return count;
    function getStats():void
        var pickAmount = 2;
        var resultAmount:int = howManyDucksPickedMoreThan(pickAmount);
        showResultsBox.resultText.text = "There were " +resultAmount.toString() + " ducks picked more than " + pickAmount.toString() + " times in a total of " + howManyDraws.toString() + " draws.";    
    Here is the screenshot.  Do not pay to much attention to my ducks. 
    What you could use is a reset button that sets everything back to 0 to start over again, also you could easily let the user choose the amount of ducks to pick from the bag, and to select the value that they want to use for the report,  Would probably need that report button again if you choose to add that.  I'll leave those to you.
    -Art

  • Poll: Development in ABAP Objects / Webdynpro vs. classical Dynpro

    Hey there ABAP developers,
    I just want to ask if you can give me one or two minutes of your attention for two poll questions.
    At the moment I´m writing my master thesis about the development of a monitoring tool in ABAP. One of my bigger chapters is about the decision, which programming paradigm should be used for new development projects in SAP. And another important one is about WebDynpro vs. classical Dynpros.
    Because of the fact, that I can´t create any polls in here, I just started this discussion and hope for many replies .
    It would be very nice if some of you could give me an answer to the following questions (only 2 ), so that I can maybe use the result of this poll in my master thesis, if there are enough responses.
    1. What percentage of new development projects are you developing in ABAP Objects? (Not to be considered small reports that just runs for only one time)
         A. 0 %
         B. less than 25%
         C. 25% - 49%
         D. 50% - 75%
         E. more than 75%
    2. Which GUI technology do you prefer?
         A. Classical Dynpro
         B. WebDynpro
         C. Business Server Pages (BSP)
         D. others (please mention)
    I want to thank you in advance for answering the questions,
    Best regards,
    Christoph

    Hi,
    Present SAP Implementation projects are very rare, maximum projects are support and up gradations only .
    If they want Implement the  SAP  newly  , defiantly they should creating ABAP Objects.
    Why Because  ABAP Objects are Object Oriented Concepts,  so,  for  future reference and re usability..etc .
    Now Come to the First Quetion.
    if it is implementation project   ABAP Objects are   25% - 49%.
    if it is Support project ABAP Objects are   25%
    Now Come to the Second Quetion.
    Depend upon Reqmnt, but Most of the Applications are Webdynpro .  i.e 70%.
    Remaining 30% All ( BSP and GUI ....Etc..)
    This is my opinion.
    Sambaiah.Paidipelli.

  • Please help with geometric objects in ARRAY...........

    I am facing a programming issue here;
    I am supposed to create an array of circle objects of random dimensions.
    Next, I am supposed to check each circle and make sure it does not intersect with any other circle in the array. If it does, I am expected to remove the circles that intersect with it from the array. I have found this technique more feasible, but in the question, it is suggested to check for intersection before the circle is added to the array. To quote "Check that the new circle does not intersect a previous one. You will need to iterate through the array list and verify that the current circle does not intersect with a circle in the array list. Add the circle to the array list if it does not intersect with another one." For some reason, I think my approach is more feasible. But feel free to differ.
    Then, I am supposed to draw the circles.
    The program compiles but when it is run, only one circle is drawn.
    Any advice would be appreciated, and as before thank you in advance.
    import java.util.Random;
    import java.awt.geom.Ellipse2D;
    import javax.swing.JComponent;
    import java.util.ArrayList;
    import java.awt.Graphics2D;
    import java.awt.Graphics;
    public class CirclesComponent extends JComponent
    public CirclesComponent(int numberCircles)
          NCIRCLES = numberCircles;
          circles = new ArrayList<Ellipse2D.Double>();
          final int XRANGE = 292;
          final int YRANGE = 392;
          final int RRANGE = 20;
             generator = new Random();
             double x = generator.nextInt(XRANGE) + 1;
             double y = generator.nextInt(YRANGE) + 1;
             double r = generator.nextInt(RRANGE) + 1;
             double w = 2 * r;
             double h = 2 * r;
             for (int i = 1; i <= NCIRCLES; i++)
             Ellipse2D anEllipse = new Ellipse2D.Double(x, y, w, h);
             circles.add(anEllipse);
          Test if two circles intersect.
          (distance between centers is less than sum of radii)
    public void circlesIntersect()
              Ellipse2D zeroEllipse = (Ellipse2D)circles.get(0);
               for (int v = 1; v <= circles.size(); v++)
                   Ellipse2D anotherEllipse = (Ellipse2D)circles.get(v);
                         double radius1 = zeroEllipse.getWidth() / 2;
                         double radius2 = anotherEllipse.getWidth() / 2;
                         double dx = zeroEllipse.getX() + radius1 - anotherEllipse.getX() - radius2;
                         double dy = zeroEllipse.getY() + radius1 - anotherEllipse.getY() - radius2;
                         double distance = Math.sqrt(dx * dx + dy * dy);
                         if (distance < radius1 + radius2)
                         circles.remove(v);
       public void paintComponent(Graphics g)
          Graphics2D g2 = (Graphics2D) g;
          for (int z = 0; z < circles.size(); z++) // iterate through every circle in the list
          g2.draw((Ellipse2D)circles.get(z)); // draw the circle
       public void getRejection()
           System.out.println("The percentage of rejected circles is " + ((circles.size() / NCIRCLES ) * 100));
           System.out.println("The size of the array is " + (circles.size()));
       private int NCIRCLES; 
       private ArrayList circles;
       private Random generator;
    import java.util.Scanner;
    import java.awt.Graphics2D;
    import java.awt.Graphics;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    public class CirclesTester
    public static void main(String[] args)
          Scanner thescanner = new Scanner(System.in);
          System.out.print("How many circles do you want? ");
          int totalCircles = thescanner.nextInt();
          CirclesComponent theCircle = new CirclesComponent(totalCircles);
          theCircle.getRejection();
          JFrame frame = new JFrame();
          frame.setSize(300, 400);
          frame.setTitle("Non-Intersecting Circles");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.add(theCircle);
          frame.setVisible(true);
    }

    homebrewed wrote:
    I am supposed to create an array of circle objects of random dimensions.
    Next, I am supposed to check each circle and make sure it does not intersect with any other circle in the array. If it does, I am expected to remove the circles that intersect with it from the array. I have found this technique more feasible, but in the question, it is suggested to check for intersection before the circle is added to the array. To quote "Check that the new circle does not intersect a previous one. You will need to iterate through the array list and verify that the current circle does not intersect with a circle in the array list. Add the circle to the array list if it does not intersect with another one." For some reason, I think my approach is more feasible. But feel free to differ.Gladly. It is much simpler to iterate over a List and check if the new circle is valid than to iterate over a List and remove those circles that make the new circle invalid. Note that the code you have now will skip items in the list when a circle is removed.
    Then, I am supposed to draw the circles.
    The program compiles but when it is run, only one circle is drawn. And why is that? Is it only drawing one of the circles? Is it drawing all the circles but they're all the same circle? Does your list only contain one circle?
    You need to run your program in a debugger or add println() statements to output your program state at important points along the execution path.
    Once you figure out why you're only getting one circle, it becomes much simpler to figure out how it happened.

  • Ie9 flash object not showing when wmode is set

    I'm searching and searching but do not find any solution for this.
    We're having a flex web application that is working fine until now. We're using until recently the google maps flash api, unfortunately this is already deprecated and will disappear completely in september 2014. Therefor we moved the whole integration to the js v3 api, which is working fine. The whole thing is an overlay over the application, since everything is moved to js, I added the property wmode to the object in html and set it to opaque in order to be able to layer everything. It's working fine for most people, but some (including my boss) are seeing a blank screen. Seems that nothing happens (although the swf loads), and I can not figure out why. Same browser (ie 9 or 10), same flash player version (11.6.xxx). Browser cache cleared, flash player cache cleared...
    Somebody having a clue? Removing the wmode-property solves the issue, but then I'm not be able to get my map on top of the application.
    The swf is definetly loading since I see calls made to the server in order to login etc. It's also not a flash player issue. The swf-file is directly accessable and rendering if done so.
    Thanks
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!-- saved from url=(0014)about:internet -->
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <!--
    Smart developers always View Source.
    This application was built using Adobe Flex, an open source framework
    for building rich Internet applications that get delivered via the
    Flash Player or to desktops via Adobe AIR.
    Learn more about Flex at http://flex.org
    // -->
    <head>
        <title>${title}</title>
        <meta name="google" value="notranslate" />  
        <meta http-equiv="X-UA-Compatible" content="IE=10; IE=9;"/>     
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <!-- Include CSS to eliminate any default margins/padding and set the height of the html element and
             the body element to 100%, because Firefox, or any Gecko based browser, interprets percentage as
             the percentage of the height of its parent container, which has to be set explicitly.  Fix for
             Firefox 3.6 focus border issues.  Initially, don't display flashContent div so it won't show
             if JavaScript disabled.
        -->
        <style type="text/css" media="screen">
            html, body  { height:100%; }
            body { margin:0; padding:0; overflow:hidden; text-align:center;
                   background-color: ${bgcolor}; }  
            object:focus { outline:none; }
            #flashContent { display:none;}
        </style>
        <!-- Enable Browser History by replacing useBrowserHistory tokens with two hyphens -->
        <!-- BEGIN Browser History required section ${useBrowserHistory}>
        <link rel="stylesheet" type="text/css" href="history/history.css" />
        <script type="text/javascript" src="history/history.js"></script>
        <!${useBrowserHistory} END Browser History required section --> 
        <!--  BEGIN OogScreening -->
        <script src="PlusOptixSync.js" language="javascript"></script>
        <!--  END OogScreening -->
         <script language="javascript">
            function getEIDxml()
              var strXML = document.MirageApplet.readCardAsXMLString() + " ";
              return strXML;
            function setOuterSize()
                var nomWidth = 1280;
                var nomHeight = 800; // 786 viewable in fullscreen
                var actWidth = nomWidth;
                var actHeight = nomHeight + 150 - 30; // fullscreen change coeff (ruimte die we winnen door f11) - taakbalk
                window.resizeTo(actWidth, actHeight);
                //window.outerWidth = actWidth;
                //window.outerHeight = actHeight;
                //script die de F1 help functionaliteit van de browser afzet. Dit is nodig omdat IE de F1 functionaliteit van de flex applicatie onderdrukt
                document.onhelp=new Function("return false");
                window.onhelp=new Function("return false");
        </script>  
        <script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript">
            // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection.
            var swfVersionStr = "${version_major}.${version_minor}.${version_revision}";
            // To use express install, set to playerProductInstall.swf, otherwise the empty string.
            var xiSwfUrlStr = "${expressInstallSwf}";
            var flashvars = {};
            var params = {};
            params.quality = "high";
            params.bgcolor = "${bgcolor}";
            params.allowscriptaccess = "sameDomain";
            params.allowfullscreen = "true";
            params.wmode = "transparent";
            var attributes = {};
            attributes.id = "${application}";
            attributes.name = "${application}";
            attributes.align = "middle";
            swfobject.embedSWF(
                "${swf}.swf", "flashContent",
                "${width}", "${height}",
                swfVersionStr, xiSwfUrlStr,
                flashvars, params, attributes);
            // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
            swfobject.createCSS("#flashContent", "display:block;text-align:left;");
        </script>
          <!-- Groeicurven 5.0 scripts -->
          <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
          <script src="http://code.highcharts.com/highcharts.js"></script>
          <script src="http://code.highcharts.com/modules/exporting.js"></script>
          <script type="text/javascript" src="../js/util/Namespace.js"></script> 
          <script type="text/javascript" src="../js/util/mirage-services.js"></script>
          <script type="text/javascript" src="../js/util/mirage-binding-utils.js"></script>
          <script type="text/javascript" src="../js/util/mirage-event-dispatcher.js"></script>
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-constants.js"></script>
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-theme.js"></script> 
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-config.js"></script>
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-factory.js"></script> 
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-zoomer.js"></script>
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-formatter.js"></script>      
          <script type="text/javascript" src="../js/util/groeicurven-highcharts-prototype.js"></script>
          <script type="text/javascript" src="../js/groeicurven-events.js"></script>             
          <script type="text/javascript" src="../js/groeicurven-controller.js"></script>
          <script type="text/javascript" src="../js/groeicurven-flex-bridge.js"></script>
          <script language="javascript">
                initGroeicurvenFlexBridge("${application}");
          </script>           
        <!--  BEGIN GoogleMaps -->
        <link rel="stylesheet" href="../css/google-maps.css">
        <script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/styledmarker/src/StyledMarker.js"></script>
        <script type="text/javascript" src="../js/util/cvi_busy_lib.js"></script>
        <script type="text/javascript" src="../js/google-maps-events.js"></script>
        <script type="text/javascript" src="../js/google-maps-controller.js"></script>
        <script type="text/javascript" src="../js/google-maps-mediator.js"></script>
        <script language="javascript">
            function openMaps(data)
                document.getElementById('mapsContent').style.visibility ="visible";
                document.getElementById('optionsList').style.visibility ="visible";
                document.getElementById('activeCheckboxDiv').style.visibility ="visible";
                document.getElementById('mapsContent').style.zIndex = 100;
                onLoadHandler(data);
            function adresFoundHandler(marker, filtereEnabled){
                document.getElementById('mapsContent').style.visibility ="hidden";
                document.getElementById('optionsList').style.visibility ="hidden";
                document.getElementById('activeCheckboxDiv').style.visibility ="hidden";
                document.getElementById('activeCheckbox').style.visibility ="hidden";
                document.getElementById('mapsContent').style.zIndex = 0;
                clearLocations();
                ${application}.responseGoogleMaps(marker, filtereEnabled);
        </script>         
        <!--  END GoogleMaps -->   
    </head>
    <body scroll="no" onLoad="setOuterSize();">
        <!-- SWFObject's dynamic embed method replaces this alternative HTML content with Flash content when enough
             JavaScript and Flash plug-in support is available. The div is initially hidden so that it doesn't show
             when JavaScript is disabled.
        -->
        <div id="flashContent">
            <p>
                To view this page ensure that Adobe Flash Player version
                ${version_major}.${version_minor}.${version_revision} or greater is installed.
            </p>
            <script type="text/javascript">
                document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='get_flash_player.gif' alt='Get Adobe Flash player' /></a>" );
            </script>
        </div>
        <noscript>
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="${width}" height="${height}" id="${application}">
                <param name="movie" value="${swf}.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="${bgcolor}" />
                <param name="allowScriptAccess" value="sameDomain" />
                <param name="allowFullScreen" value="true" />
                <param name="wmode" value="transparent" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="${swf}.swf" width="${width}" height="${height}">
                    <param name="quality" value="high" />
                    <param name="bgcolor" value="${bgcolor}" />
                    <param name="allowScriptAccess" value="sameDomain" />
                    <param name="allowFullScreen" value="true" />
                <!--<![endif]-->
                <!--[if gte IE 6]>-->
                    <p>
                        Either scripts and active content are not permitted to run or Adobe Flash Player version
                        ${version_major}.${version_minor}.${version_revision} or greater is not installed.
                    </p>
                <!--<![endif]-->
                    <a href="http://www.adobe.com/go/getflashplayer">
                        <img src="get_flash_player.gif" alt="Get Adobe Flash Player" />
                    </a>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>
        </noscript> 
        <noscript>Your browser does not support JavaScript!</noscript>
        <applet
          id ="MirageApplet"
          codebase = "AppletLibs"
          archive  = "kg-eid-tools-2.6.jar,beidlib-1.1.jar,jdom-1.0.jar,joda-time-1.6.jar,commons-lang-2.4.jar"
          code     = "be.kg.mirage.MirageApplet.class"
          name     = "MirageApplet"
          hspace   = "0"
          vspace   = "0"
          style="width: 0px; height: 0px;">
            <param name="Reader" value="">
            <param name="OCSP" value="0">
            <param name="CRL" value="0">
            <param name="DisableWarning" value="true">
        </applet>
        <div id ="mapsContent">
            <h3 id="typeLabel">Google Maps</h3>
            <select id="optionsList"></select>
            <input id="searchInput" type="text"></input>
            <div id="activeCheckboxDiv">
                <input id="activeCheckbox" type="checkbox"></input>
                <label for="activeCheckbox">Toon enkel actieve locaties</label>
            </div>
            <button id="searchButton" type="button" class="secondElementButton">Zoeken</button>
            <button id="annuleerButton" type="button" class="annuleerButton">Annuleer</button>
            <ul id="locations" class="thirdElement"></ul>
            <div id="canvasMap"></div>
        </div>

    This means that the SWF is written so that it only works when
    embedded in a web page. When you add the SWF to the stage as a
    stand-alone display object using addChild() it is not being hosted
    in the web page.
    You have 2 options:
    1. Modify the SWF code (if possible) to remove the
    ExternalInterface requirement. You can write code in your AIR
    application javascript to subscribe directly to events from the SWF
    using addListener() and call functions directly on the SWF object
    (Flash/Actionscript is not my primary development environment... so
    if I have gotten the terminology wrong I apologize, but I HAVE
    written a flash application that worked as I describe). My SWF
    actually works embedded in HTML or not using the code "if
    (ExternalInterface.available) {
    ExternalInterface.addCallback("setIsPlaying", setIsPlaying ); }"
    2) Somehow add a HTMLLoader in a new child window (with
    transparent = false) to the stage as a new child. I have not yet
    figured out exactly how to do this, so If anyone can provide
    information on how to do this, I too would be appreciative.

  • U261B An Issue due to 3 Decimal Places in Percentage - Help Required

    I've an Issue in BEX report output, which is like when I try to create a 'Percentage' computation on a Key Figure Value, I'm getting 3 decimal places as 'default' output.
    The 'Calculations' settings I made for this KF is
    > Calculate Result as ... Nothing Defined
    > Calculate Single Values as .... Normalize According to Next Group Level Result
    > [✔] Apply to results
    > Calculation Direction - Along Rows
    ☹  I ran SAP_RSADMIN_MAINTAIN and set object 'IGNORE_T006_ANDEC' to the value 'X' - Not woking! Should I choose Update/Insert/Delete??
    ☹  T006-ANDEC & T006-DECAN for '%' has 0 decimal places only. Am I checking the correct stuff?
    ☹  OSS note 866505 not helpful for my issue. BW 7.0 Stack
    I'm getting my output as expected, but the only worrying factor is 3 decimal places due to the 'Calculations'. I'm unable to resolve using existing methods. Should I raise an OSS Note for this?
    Please help...

    Hi, I posted a message to SAP on this topic and got an explanation - it is a behaviour that cannot be changed in certain cases:
    it is the known design that it is always displayed with three decimal
    places for normalized values and the setting in Query Designer for
    decimal place doesn't take effect. This is because that normalization
    changes the number dimension of this structure element.
    You may refer to below notes about more details.
    > 869135 Decimal places and scaling for "Calculate Single Values As"
    You cannot set the number of decimal places or the scaling for some
    columns or structural components.
    For 2: Some "Calculate As" functions change the number dimension of a
    KID. In this case, the scaling and the number of decimal places set for
    the KID are no longer relevant. In this case, the system ignores the
    original setting and selects a setting that corresponds to the new
    number dimension. This cannot be overwritten. The following functions
    are affected:
    Calculate Single Values as Scale to Result, Overall Result or Query
    Result: Scaling 1 and three decimal places.
    > 501930 Number of decimal places setting is not applied
    As a result, normalized values resulting from the list calculation are
    displayed with three decimal places and without scaling by default.
    best regards, thom

  • How can I importing when create object?

    Hi Gurus,
    I’m beginner with OO Abap. Please give me a hand with this.
    I’m using the programming interface REPORT  Z_TEST_ST_TEXT_EDITOR for text editor found on /people/igor.barbaric/blog/2005/06/06/the-standard-text-editor-oo-abap-cfw-class which is good and useful for me (highly recommended) but I need to import the text created (t_text)  in method constructor in order to send it via e.mail.
    Could anybody tell me how to get/import the text created?
    Thank you in advance.
    Below is the coding. (program which uses the developed class and method consisting the created text)
    DATA: o_txe     TYPE REF TO <b>zcl_standard_text_editor</b>,
          v_caption TYPE char100,
          s_thead   TYPE thead.
    call screen
    CALL SCREEN 0100.
    MODULE s0100_start
    MODULE s0100_start OUTPUT.
        SET PF-STATUS 'BASIC'.
        s_thead-tdname   = 'VENDOR0000000011'.
        s_thead-tdid     = 'ST'.
        s_thead-tdobject = 'TEXT'.
        s_thead-tdspras  = sy-langu.
        CONCATENATE 'Standard text:' s_thead-tdname
                    INTO v_caption SEPARATED BY space.
        IF o_txe IS INITIAL.
    <b>       CREATE OBJECT o_txe</b>         
    EXPORTING i_thead   = s_thead
                       i_caption = v_caption. 
    <b>IMPORTING????</b>
         ENDIF.
    ENDMODULE.
    <b>method CONSTRUCTOR</b>.
    DATA: o_dialogbox TYPE REF TO cl_gui_dialogbox_container,
          t_text      TYPE STANDARD TABLE OF tdline,
          s_event     TYPE cntl_simple_event,
          t_events    TYPE cntl_simple_events,
          t_lines     TYPE STANDARD TABLE OF tline,
          v_text      TYPE tdline,
          v_text_temp TYPE tdline,
          v_line_temp TYPE tdline,
          v_line_len  TYPE i,
          v_index     TYPE i.
    FIELD-SYMBOLS: <line> TYPE tline.
    me->thead   = i_thead.
    me->caption = i_caption.
    *------ containers
    IF i_container IS INITIAL.
        CREATE OBJECT o_dialogbox
                EXPORTING top     = 50
                          left    = 200
                          height  = 150
                          width   = 500
                          caption = i_caption.
        me->main_container = o_dialogbox.
        SET HANDLER me->on_container_close FOR o_dialogbox.
    ELSE.
        me->main_container = i_container.
    ENDIF.
    IF me->splitter IS INITIAL.
        CREATE OBJECT me->splitter
                EXPORTING
                     parent        = me->main_container
                     orientation   = me->splitter->orientation_vertical
                     sash_position = 10. "percentage of containers
       ------ toolbar
        CREATE OBJECT me->toolbar
              EXPORTING parent = me->splitter->top_left_container.
        CALL METHOD me->toolbar->add_button
             EXPORTING  fcode       = me->c_save
                        is_disabled = ' '
                        icon        = '@2L@' "icon_system_save
                        butn_type   = cntb_btype_button.
        CALL METHOD me->toolbar->add_button
             EXPORTING  fcode       = me->c_close
                        is_disabled = ' '
                        icon        = '@3X@' "icon_close
                        butn_type   = cntb_btype_button.
    *------ register events
        REFRESH t_events.
        s_event-eventid = cl_gui_toolbar=>m_id_function_selected.
        s_event-appl_event = ' '.
        APPEND s_event TO t_events.
        CALL METHOD me->toolbar->set_registered_events
              EXPORTING events = t_events.
        SET HANDLER: me->on_toolbar_func_sel FOR me->toolbar.
    *------ create textedit control
        CREATE OBJECT me->textedit
           EXPORTING parent = me->splitter->bottom_right_container.
    ENDIF.
    get text
    CALL FUNCTION 'READ_TEXT'
            EXPORTING ID       = me->thead-tdid
                      LANGUAGE = me->thead-tdspras
                      NAME     = me->thead-tdname
                      OBJECT   = me->thead-tdobject
            TABLES    LINES    = t_lines
            EXCEPTIONS ID                      = 1
                       LANGUAGE                = 2
                       NAME                    = 3
                       NOT_FOUND               = 4
                       OBJECT                  = 5
                       REFERENCE_CHECK         = 6
                       WRONG_ACCESS_TO_ARCHIVE = 7
                       OTHERS                  = 8.
    *------- convert text to text editor format
    LOOP AT t_lines ASSIGNING <line>.
        IF <line>-tdformat = space OR <line>-tdformat = '=' OR sy-tabix = 1.
            v_line_temp = <line>-tdline.
            CONCATENATE v_text v_line_temp INTO v_text_temp.
        ELSE.
            CONCATENATE: cl_abap_char_utilities=>cr_lf <line>-tdline
                         INTO v_line_temp.
            CONCATENATE  v_text v_line_temp   INTO v_text_temp.
        ENDIF.
        IF sy-subrc = 0.
            v_text = v_text_temp.
        ELSE.
            APPEND v_text TO t_text.
            v_text = v_line_temp.
        ENDIF.
    ENDLOOP.
    IF sy-subrc = 0.
        APPEND v_text TO <b>t_text</b>.
    ENDIF.
    *------- display text
    CALL METHOD me->textedit->set_text_as_stream
             EXPORTING text = t_text.
    me->t_initial_text = t_text.
    endmethod.

    good book on ABAP objects(OOPS)
    http://www.esnips.com/doc/bc475662-82d6-4412-9083-28a7e7f1ce09/Abap-Objects---An-Introduction-To-Programming-Sap-Applications
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    Rewards if useful......................
    Minal

  • How can I display a letter grade in my gridview after calculating percentage into a hidden field in Visual Studio?

    For school I am working on an app using C# in visual studio that allows a student to enter their name, the number of points they earned and the points possible. When they click a submit button, the grade percentage is calculated in a hidden field and then
    the percentage and letter grade should spit out into the gridview. THe issue I am having is trying to figure out how to translate within the if statements regarding the percentage amount equalling whatever letter grade, and then spit that letter grade out
    into the gridview. Here is the code I have so far:
            protected void btnSubmit_Click(object sender, EventArgs e)
                SqlStudent.Insert();
                hdnGradePercent.Value = (((int.Parse("txtPointsEarned.Text")) / (int.Parse("txt.PointsPoss.Text")) * 100)).ToString();
                if ((int.Parse(hdnGradePercent.Value) >= 0) & ((int.Parse(hdnGradePercent.Value) <= 59)))
    (this is where I am having trouble. I can't figure out how to get the letter grade and percent to spit out into the   gridview.)
                else if ((int.Parse(hdnGradePercent.Value) >= 60) & ((int.Parse(hdnGradePercent.Value) <= 69)))
                else if ((int.Parse(hdnGradePercent.Value) >= 70) & ((int.Parse(hdnGradePercent.Value) <= 79)))
                else if ((int.Parse(hdnGradePercent.Value) >= 80) & ((int.Parse(hdnGradePercent.Value) <= 89)))
                else if ((int.Parse(hdnGradePercent.Value) >= 90) & ((int.Parse(hdnGradePercent.Value) <= 100)))
    Any help would be greatly appreciated! I've been stuck on this for hours and I"m losing my mind!!

    Please post ASP.NET questions in the ASP.NET forums (http://forums.asp.net ).

Maybe you are looking for

  • Travelling with access to no external drive - show what's available now

    Ok this is kinda like another unanswered post I have. If I am travelling with my MB and want to listen to my music in itunes it still shows my entire library which is 80% not available because its on an external drive at home. How do I get itunes to

  • Printing Problems with PDF - Adobe Acrobat

    Printer - HP Deskjet 3070A Laptop - Asus Zenbook running Windows 7 Home Premium Issue: Printing problems with PDF (Adobe Acrobat Reader) Dear All, Please help! My printer was working absolutely perfectly until my brother in law recently needed to bor

  • Material case ID and material quantity for a pick number.

    Hello All, Con any one please tell me where we can get the CASEID of amaterial. case ID and quantity of  the material assigned to a  one picking number. Thanks in advance, Kumar.

  • Post Source Code Comments in DTR

    Is there a way to configure the DTR to take the activity check-in comments and add them as comments to the header of the source file(s)?  It would be nice if you could put the version number and the last author and the change comments at the begining

  • Installation of  10.1.3 version of oracle application server

    Hi I have to install this version of apps server. I went to this link http://www.oracle.com/technology/software/products/ias/index.html I need to know the files are .bin files Can i just unzip them using unzip utility or how to extract the files