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 -
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
BillyYou 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_barCould 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!!
OllieYes, 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,
ChristophHi,
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. -
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,
Im beginner with OO Abap. Please give me a hand with this.
Im 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 -
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