How can i see the code of SAP Exit for SAP Defined Variables
Hi,
It's very Urgent! How can i see the Source Code of SAP Provided Variables. I need to write code for User Defined Variables. please help me. It's very Urgent.
Thanks in Advance.
Nagesh.
hi Nagesh,
sample code for variable exit,
there is 'how to' docs, can't see your email address.
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA: LOC_VAR_RANGE LIKE RRRANGEEXIT.
CASE I_VNAM.
WHEN 'CUMMONTH'.
IF I_STEP = 2. "after the popup
LOOP AT I_T_VAR_RANGE INTO LOC_VAR_RANGE
WHERE VNAM = 'MONTH'.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4)."low value, e.g.200001
L_S_RANGE-LOW+4(2) = '01'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW. "high value = input
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
EXIT.
ENDLOOP.
ENDIF.
ENDCASE.
Similar Messages
-
How can we find the list of user exits for a transaction
hi all
iam new in user exits please send the basic details
how can we find the list of user exit for a perticular transaction and how can we determine that a particulr user exit is used for a field
regards
jagadishhi,
check the below links for userexits
http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
FAQ's
http://http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.ficoexpertonline.com/downloads/User%20ExitsWPedit.doc
http://www.easymarketplace.de/userexit.php
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
1. what is the defference between enhancement and user-exits?
http://www.sap-img.com/abap/difference-between-badi-and-user-exits.htm
Re: difference between user exits & customer exits
Some Questions ! Plz help...
http://searchsap.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid21_gci1190924_tax299358,00.html?bucket=ETA
2. Difference between CMOD and SMOD?
http://www.sap-img.com/abap/what-is-the-difference-between-smod-and-cmod.htm
http://www.sap-img.com/abap.htm
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236095
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-dev/diff-between-cmod-and-smod-236107
check these links..
http://www.sapgenie.com/abap/tips_and_tricks.htm
http://www.sap-img.com/abap/field-exits-smod-cmod-questions-and-answers.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
passing selet-option variable to subrouine...
Finding the user-exits of a SAP transaction code
Finding the user-exits of a SAP transaction code
Enter the transaction code in which you are looking for the user-exit
and it will list you the list of user-exits in the transaction code.
Also a drill down is possible which will help you to branch to SMOD.
Written by : SAP Basis, ABAP Programming and Other IMG Stuff
http://www.sap-img.com/*
report zuserexit no standard page heading.
tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
tables : tstct.
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
parameters : p_tcode like tstc-tcode obligatory.
select single * from tstc where tcode eq p_tcode.
if sy-subrc eq 0.
select single * from tadir where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir where name = tstc-pgmna.
if trdir-subc eq 'F'.
select single * from tfdir where pname = tstc-pgmna.
select single * from enlfdir where funcname =
tfdir-funcname.
select single * from tadir where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name eq enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
select * from tadir into table jtab
where pgmid = 'R3TR'
and object = 'SMOD'
and devclass = v_devclass.
select single * from tstct where sprsl eq sy-langu and
tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name hotspot on,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ 'No of Exits:' , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'.
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'.
endif.
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen.
*---End of Program
if u want to find the function exit
then check the below code
REPORT ZV_FIND_EXIT NO STANDARD PAGE HEADING.
TABLES : TSTC, TADIR, MODSAPT, MODACT, TRDIR, TFDIR, ENLFDIR.
TABLES : TSTCT.
DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
PARAMETERS : P_TCODE LIKE TSTC-TCODE OBLIGATORY.
SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
IF SY-SUBRC EQ 0.
SELECT SINGLE * FROM TADIR WHERE PGMID = 'R3TR'
AND OBJECT = 'PROG'
AND OBJ_NAME = TSTC-PGMNA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
IF SY-SUBRC NE 0.
SELECT SINGLE * FROM TRDIR WHERE NAME = TSTC-PGMNA.
IF TRDIR-SUBC EQ 'F'.
SELECT SINGLE * FROM TFDIR WHERE PNAME = TSTC-PGMNA.
SELECT SINGLE * FROM ENLFDIR WHERE FUNCNAME =
TFDIR-FUNCNAME.
SELECT SINGLE * FROM TADIR WHERE PGMID = 'R3TR'
AND OBJECT = 'FUGR'
AND OBJ_NAME EQ ENLFDIR-AREA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
ENDIF.
ENDIF.
SELECT * FROM TADIR INTO TABLE JTAB
WHERE PGMID = 'R3TR'
AND OBJECT = 'SMOD'
AND DEVCLASS = V_DEVCLASS.
SELECT SINGLE * FROM TSTCT WHERE SPRSL EQ SY-LANGU AND
TCODE EQ P_TCODE.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) P_TCODE,
45(50) TSTCT-TTEXT.
SKIP.
IF NOT JTAB[] IS INITIAL.
WRITE:/(95) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Exit Name',
21 SY-VLINE ,
22 'Description',
95 SY-VLINE.
WRITE:/(95) SY-ULINE.
LOOP AT JTAB.
SELECT SINGLE * FROM MODSAPT
WHERE SPRSL = SY-LANGU AND
NAME = JTAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 JTAB-OBJ_NAME HOTSPOT ON,
21 SY-VLINE ,
22 MODSAPT-MODTEXT,
95 SY-VLINE.
ENDLOOP.
WRITE:/(95) SY-ULINE.
DESCRIBE TABLE JTAB.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , SY-TFILL.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
AT LINE-SELECTION.
GET CURSOR FIELD FIELD1.
CHECK FIELD1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
or
1. in se11, goto table MODSAP
View table contents
2. in Type field, enter 'E' (for function exit)
3. For that tcode, u should know the program name.
eg. SAPLLMOB
4. then type SAPLLMOB and execute
or
REPORT z34331_user_exit .
TABLES : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.
SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK a01.
START-OF-SELECTION.
Validate Transaction Code
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
Find Repository Objects for transaction code
IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
MOVE : tadir-devclass TO v_devclass.
IF sy-subrc NE 0.
SELECT SINGLE * FROM trdir
WHERE name = tstc-pgmna.
IF trdir-subc EQ 'F'.
SELECT SINGLE * FROM tfdir
WHERE pname = tstc-pgmna.
SELECT SINGLE * FROM enlfdir
WHERE funcname = tfdir-funcname.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'FUGR'
AND obj_name = enlfdir-area.
MOVE : tadir-devclass TO v_devclass.
ENDIF.
ENDIF.
Find SAP Modifactions
SELECT * FROM tadir
INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = v_devclass.
SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
SKIP.
IF NOT jtab[] IS INITIAL.
WRITE:/(95) sy-uline.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
WRITE:/(95) sy-uline.
LOOP AT jtab.
SELECT SINGLE * FROM modsapt
WHERE sprsl = sy-langu AND
name = jtab-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 sy-vline,
2 jtab-obj_name HOTSPOT ON,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
ENDLOOP.
WRITE:/(95) sy-uline.
DESCRIBE TABLE jtab.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'Transaction Code Does Not Exist'.
ENDIF.
Take the user to SMOD for the Exit that was selected.
AT LINE-SELECTION.
GET CURSOR FIELD field1.
CHECK field1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
Regards,
Naveen -
How can I see the Salaried MRS is decreased for an employee ?
Hi ,
Do you know how I can determine that the salary (monthly reference salary) has been decreased during the plan year ?
thanks for your help,
Mariegoto properties of your Charecterstic which has hierarchy...you can see what hierarchy it is used, copy the technical name.
Goto RSH1 Transaction in Backend... provide your Charecterstic Name and you can see Hierarchy Name below (based on technical name). Select your hierarchy and gowith display.
You can see your hierarchy data.
Nagesh Ganisetti.
Assign points if it helps. -
How can I see the exact font being used for rendering ?
When I use firebug to watch the style of any object, I see the CSS input. For the textarea I'm writing this text into, for instance, it displays "13px/1.231 Georgia,freeserif,serif".
What I want to see is the result of the rendering process, in other words the output of the rendering engine, which is not only dependent on the styles defined with the web page displayed, but also depends on the system fonts being installed, my settings in about:config and something more:
I just pressed ctrl-+ what increased the displayed font size, but the element style displayed remains the same as above. I want to look elsewhere to see an increased font size in this event. Where do I have to go ?The rendering speed is entirely limited by the CPU's speed and the software's ability to utilize the processor's capabilities. If you need faster rendering speed then you simply need a faster computer or better rendering software.
-
How can I see the contents in a Ref Cursor
I have this code:
CREATE OR REPLACE PACKAGE APOD_LOG.APOD_C3_LOG_API_PKG
AUTHID CURRENT_USER
AS
type rc is ref cursor;
PROCEDURE Fetch_Log_Spec
in_LOCAL_IP_VALUE IN BINARY_INTEGER,
out_RESULT_SET OUT rc
END APOD_C3_LOG_API_PKG;
CREATE OR REPLACE PACKAGE BODY APOD_LOG.APOD_C3_LOG_API_PKG
AS
PROCEDURE Fetch_Log_Spec
in_LOCAL_IP_VALUE IN BINARY_INTEGER,
out_RESULT_SET OUT rc
IS
BEGIN
DBMS_APPLICATION_INFO.set_module(module_name => 'APOD_LOG.API_PKG',action_name => 'Fetch_Log_Spec');
DBMS_APPLICATION_INFO.set_client_info(client_info => 'Calling with in_LOCAL_IP_VALUE = ' ||to_char(in_LOCAL_IP_VALUE));
open out_RESULT_SET for
select
in_LOCAL_IP_VALUE as IN_LOCAL_IP_VALUE,
10002 as PORT,
APOD_CORE.UTIL_IP_PKG.IPAddressToIPValue2('''224.168.100.1''') as MULTICAST_IP_VALUE
from
dual
union
select
in_LOCAL_IP_VALUE as IN_LOCAL_IP_VALUE,
10002 as PORT,
APOD_CORE.UTIL_IP_PKG.IPAddressToIPValue2('''224.168.200.1''') as MULTICAST_IP_VALUE
from
dual
union
select
in_LOCAL_IP_VALUE as IN_LOCAL_IP_VALUE,
10002 as PORT,
APOD_CORE.UTIL_IP_PKG.IPAddressToIPValue2('''224.168.100.123''') as MULTICAST_IP_VALUE
from
dual
union
select
in_LOCAL_IP_VALUE as IN_LOCAL_IP_VALUE,
10002 as PORT,
APOD_CORE.UTIL_IP_PKG.IPAddressToIPValue2('''224.168.200.123''') as MULTICAST_IP_VALUE
from
dual;
DBMS_APPLICATION_INFO.set_client_info(client_info => 'Called Fetch_Log_Spec '||to_char(SQL%ROWCOUNT)||' row(s) returned with in_LOCAL_IP_VALUE = '||to_char(in_LOCAL_IP_VALUE) );
END Fetch_Log_Spec;
END APOD_C3_LOG_API_PKG;
And I am trying to test it like this:
DECLARE
IN_LOCAL_IP_VALUE BINARY_INTEGER;
OUT_RESULT_SET APOD_LOG.APOD_C3_LOG_API_PKG.rc;
BEGIN
IN_LOCAL_IP_VALUE := 23374048;
-- OUT_RESULT_SET := NULL; How do I see this
APOD_LOG.APOD_C3_LOG_API_PKG.FETCH_LOG_SPEC ( IN_LOCAL_IP_VALUE, OUT_RESULT_SET );
END;
How can I see the dataset returnd by the OUT_RESULT_SET in SQLPlus or Quest ScriptRunner?A ref cursor doesn't really contain rows but you can use them to reference a SQL statement that fetches the rows.
Re: returning resultset from procedure...or pkg -
How can I view the code for a routine in an update rule
on loading data for 0PLANT_ATTR, I am getting an error for No Local Currency found in Plant 1000 and SAles Org 6000.
in looking at the update rules for this, I see that there is a routine for the update of the local currency:
Perform GET_LOCCURRCY_FOR_PLANT
USING COMM_STRUCTURE-PLANT
COMM_STRUCTURE-SALESORG
CHANGING hlp_monitor
RESULT
hlp_subrc.
How do I see the code behind this? I want to make sure that I understand everything that needs to be populated in Master Data so that I can ask my functional consultant to update all the necessary fields.
Thanks
JPHi Riccardo,
When I double click on it, I get a message at the bottom that says program reindexed.
After looking again, I found that when I double clicked on the comm structure, then the routine, I was able to see it.
Thanks
JP -
In ST03 , how can i see the Query name, user id,how many times executed the
HI Experts,
In ST03 , how can i see the Query name, user id,how many times executed the query.
these details how do i get from the above transaction.
EX:-if there is one report name X,I want to know how many users had executed X report today,weekly,monthly.
ex:-query userid total number of execution
sales order 0000555 5 times
custmer 05855 2 times
fast reply will be appreciated,Hi,
Look here:
http://help.sap.com/saphelp_nw04/helpdata/en/3b/54df4204892a78e10000000a155106/frameset.htm
Also check these:
http://help.sap.com/saphelp_nw2004s/helpdata/en/2d/b8be3befaefc75e10000000a114084/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/25/ece73a39e74d27e10000000a114084/frameset.htm
Hope this helps..
Bye
Dinesh -
In ST03 , how can i see the Query name, user id,how many times .
HI Experts,
In ST03 , how can i see the Query name, user id,how many times executed the query.
these details how do i get from the above transaction.
Points will be awarded.
BR
sivsHi Siva,
Reporting statistics data is only written to the database table if BW statistics have been manually activated for the corresponding InfoProvider first. If this has not been done, it is therefore not possible to display any reporting statistics in transaction ST03.
Therefore activate the reporting statistics for all relevant InfoProviders. To do this, set the OLAP flag in the BW Administrator Workbench (transaction RSA1) in the area Tools ® BW Statistics for InfoProvider.
Check here...........
http://help.sap.com/saphelp_nw04/helpdata/en/ca/86df4254d81e1fe10000000a155106/content.htm
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c8c4d794-0501-0010-a693-918a17e663cc
Hope this will help you shiva.........
Regrads,
Vijay -
How can I see the alpha channel in the channels palette?
Hello, mi format plugin loads a rgba image. I see it with transparency, that's ok, but when I go to the channels tab I only see 4 items (RGB, Red, Green and Blue).
How can I see the alpha channel of my file in the channel tab?
Thanks!OK, something must be wrong... but I don't find it!
That's my whole code (resumed). I ommit some code (saving file code (not used) or main function, where I only call te "DoSomething" functions. You can see that I use layers. The DoReadContinue function is only used to show the preview.
In the DoReadStart function I set the parameters for the layers (and the preview), and I fill the "data" and "layerName" params in the DoReadLayerContinue function. I hope you can understand the code!
const int32 IMAGE_DEPTH = 32;
SPBasicSuite * sSPBasic = NULL;
SPPluginRef gPluginRef = NULL;
FormatRecord * gFormatRecord = NULL;
intptr_t * gMxiInfoHandle = NULL;
MXIInfo* gMxiInfo = NULL;
int16 * gResult = NULL;
#define gCountResources gFormatRecord->resourceProcs->countProc
#define gGetResources gFormatRecord->resourceProcs->getProc
#define gAddResource gFormatRecord->resourceProcs->addProc
CmaxwellMXI* cMax;
static void DoReadPrepare (void){
gFormatRecord->maxData = 0;
static void DoReadStart(void){
char header[2];
ReadScriptParamsOnRead (); // override params here
if (*gResult != noErr) return;
// Read the file header
*gResult = SetFPos (gFormatRecord->dataFork, fsFromStart, 0);
if (*gResult != noErr) return;
ReadSome (sizeof( header ) * 2, &header);
if (*gResult != noErr) return;
// Check the magic number for avoid no-mxi files
int headerID = CheckIdentifier (header);
if( headerID != HEADER_MXI ) *gResult = formatCannotRead;
if (*gResult != noErr) return;
// The file is OK. Let's continue to obtain the data of the image.
cMax = new CmaxwellMXI( 0 );
strlen((char*)gFormatRecord->fileSpec->name);
gMxiInfo->filename = _strdup((char *)gFormatRecord->fileSpec->name + 1);
bool res = cMax->getMXIIInfo(
(const char*)gMxiInfo->filename,
gMxiInfo->width, gMxiInfo->height,
gMxiInfo->burn, gMxiInfo->monitorGamma, gMxiInfo->iso,
gMxiInfo->shutter, gMxiInfo->fStop, gMxiInfo->intensity,
gMxiInfo->scattering,
gMxiInfo->nMultilightChannels, gMxiInfo->lightNamesList,
gMxiInfo->availableBuffersMask,
gMxiInfo->widthPreview, gMxiInfo->heightPreview,
gMxiInfo->bufferPreview);
if(!res) return;
// Check the available extra buffers
int count = 0;
if( gMxiInfo->availableBuffersMask & CmaxwellMXI::ALPHA_BUFFER ){
// We will use that string to obtain later the desired extra buffer.
gMxiInfo->extraBuffersList[count] = "ALPHA";
gMxiInfo->hasAlpha = true;
count++;
else{
gMxiInfo->hasAlpha = false;
gMxiInfo->nExtraBuffers = count;
switch( IMAGE_DEPTH ){
case 8:
gMxiInfo->mode = plugInModeRGBColor;
break;
case 16:
gMxiInfo->mode = plugInModeRGB48;
break;
case 32:
gMxiInfo->mode = plugInModeRGB48; //96 gives me an error
break;
// SET UP THE DOCUMENT BASIC PARAMETERS.
VPoint imageSize;
if( gFormatRecord->openForPreview ){
// Preview always RGB8.
imageSize.v = gMxiInfo->heightPreview;
imageSize.h = gMxiInfo->widthPreview;
gFormatRecord->depth = 8;
gFormatRecord->imageMode = plugInModeRGBColor;
gFormatRecord->planes = 3;
gFormatRecord->loPlane = 0;
gFormatRecord->hiPlane = 2;
gFormatRecord->colBytes = 3;
gFormatRecord->rowBytes = imageSize.h * gFormatRecord->planes;
gFormatRecord->planeBytes = 1;
else{
// Configure the layers. All RGBA32.
imageSize.v = gMxiInfo->height;
imageSize.h = gMxiInfo->width;
gFormatRecord->depth = IMAGE_DEPTH;
gFormatRecord->imageMode = gMxiInfo->mode;
gFormatRecord->layerData =
2 + gMxiInfo->nMultilightChannels + gMxiInfo->nExtraBuffers;
gFormatRecord->planes = 4; // RGBA.
gFormatRecord->loPlane = 0;
gFormatRecord->hiPlane = 3;
gFormatRecord->planeBytes = IMAGE_DEPTH >> 3;
gFormatRecord->rowBytes = imageSize.h * gFormatRecord->planes * ( IMAGE_DEPTH >> 3 );
gFormatRecord->colBytes = gFormatRecord->planes * ( IMAGE_DEPTH >> 3 );
gFormatRecord->transparencyPlane = 3;
gFormatRecord->transparencyMatting = 1;
gFormatRecord->blendMode = PIBlendLinearDodge;
gFormatRecord->isVisible = true;
SetFormatImageSize(imageSize);
gFormatRecord->imageHRes = FixRatio(72, 1);
gFormatRecord->imageVRes = FixRatio(72, 1);
VRect theRect;
theRect.left = 0;
theRect.right = imageSize.h;
theRect.top = 0;
theRect.bottom = imageSize.v;
SetFormatTheRect(theRect);
// No resources for now.
if (sPSHandle->New != NULL) gFormatRecord->imageRsrcData = sPSHandle->New(0);
gFormatRecord->imageRsrcSize = 0;
return;
/// Called for prewiew only.
static void DoReadContinue (void){
// Dispose of the image resource data if it exists.
DisposeImageResources ();
if( gFormatRecord->openForPreview ){
VPoint imageSize = GetFormatImageSize();
gFormatRecord->data = gMxiInfo->bufferPreview;
if (*gResult == noErr) *gResult = gFormatRecord->advanceState();
if( gFormatRecord->data != NULL ){
delete[] (Crgb8*)gMxiInfo->bufferPreview;
gMxiInfo->bufferPreview = NULL;
gFormatRecord->data = NULL;
// De momento nos olvidamos de los icc profiles [TODO]
//DoReadICCProfile ();
static void DoReadFinish (void)
// Dispose of the image resource data if it exists.
DisposeImageResources ();
WriteScriptParamsOnRead (); // should be different for read/write
// write a history comment
AddComment ();
// Clean some memory.
if( gMxiInfo->lightNamesList != NULL ){
for( unsigned int i = 0; i < gMxiInfo->nMultilightChannels; i++){
if( gMxiInfo->lightNamesList[i] != NULL ){
delete[] gMxiInfo->lightNamesList[i];
gMxiInfo->lightNamesList[i] = NULL;
delete[] gMxiInfo->lightNamesList;
gMxiInfo->lightNamesList = NULL;
if( gMxiInfo->bufferPreview != NULL ){
delete[] gMxiInfo->bufferPreview;
gMxiInfo->bufferPreview = NULL;
if( gMxiInfo->filename != NULL ){
delete[] gMxiInfo->filename;
gMxiInfo->filename = NULL;
if( cMax != NULL ){
delete cMax;
cMax = NULL;
static void DoReadLayerStart(void){
// empty
static void DoReadLayerContinue (void){
int32 done;
int32 total;
VPoint imageSize = GetFormatImageSize();
// Set the progress bar data
done = gFormatRecord->layerData + 1;
total = gMxiInfo->nMultilightChannels + gMxiInfo->nExtraBuffers + 2;
// Dispose of the image resource data if it exists.
DisposeImageResources ();
uint32 bufferSize = imageSize.v * gFormatRecord->rowBytes;
int nPixels = gMxiInfo->width * gMxiInfo->height;
char* lightName = NULL;
// SET THE BLACK BACKGROUND
if( gFormatRecord->layerData == 0 ){
gFormatRecord->data = (void*)new byte[bufferSize];
for( int i = 0; i < nPixels; i++ ){
((float*)gFormatRecord->data)[ i * 4 ] =
((float*)gFormatRecord->data)[ i * 4 + 1 ] =
((float*)gFormatRecord->data)[ i * 4 + 2 ] = 0.0;
((float*)gFormatRecord->data)[ i * 4 + 3 ] = 1.0;
// Set the layer name.
gFormatRecord->layerName = new uint16[64];
gFormatRecord->layerName[0] = 'B';
gFormatRecord->layerName[1] = 'a';
gFormatRecord->layerName[2] = 'c';
gFormatRecord->layerName[3] = 'k';
gFormatRecord->layerName[4] = 'g';
gFormatRecord->layerName[5] = 'r';
gFormatRecord->layerName[6] = 'o';
gFormatRecord->layerName[7] = 'u';
gFormatRecord->layerName[8] = 'n';
gFormatRecord->layerName[9] = 'd';
gFormatRecord->layerName[10] = '\0';
// LOAD THE LIGHT LAYERS
else if( gFormatRecord->layerData < gMxiInfo->nMultilightChannels + 1 ){
void* lightBuffer = NULL;
void* alphaBuffer = NULL;
byte foob;
dword food;
// Get the light buffer.
bool res = cMax->getLightBuffer(
(char*)gMxiInfo->filename,
gFormatRecord->layerData - 1, IMAGE_DEPTH,
lightBuffer,
gMxiInfo->width, gMxiInfo->height, lightName);
if(!res){
*gResult = readErr;
return;
if( gMxiInfo->hasAlpha ){
// Get the alpha buffer.
res = cMax->getExtraBuffer(
(char*)gMxiInfo->filename,
"ALPHA", IMAGE_DEPTH, alphaBuffer,
food, food, foob);
if(!res){
*gResult = readErr;
return;
else{
alphaBuffer = (void*)new float[ gMxiInfo->width * gMxiInfo->height * 3 ];
for( int i = 0; i < nPixels; i++ ){
// Only need to set the red channel.
((float*)alphaBuffer)[ i * 3 ] = 1.0;
// Put them together.
gFormatRecord->data = (void*)new byte[bufferSize];
for( int i = 0; i < nPixels; i++ ){
((float*)gFormatRecord->data)[ i * 4 ] = ((float*)lightBuffer)[ i * 3 ];
((float*)gFormatRecord->data)[ i * 4 + 1 ] = ((float*)lightBuffer)[ i * 3 + 1 ];
((float*)gFormatRecord->data)[ i * 4 + 2 ] = ((float*)lightBuffer)[ i * 3 + 2 ];
((float*)gFormatRecord->data)[ i * 4 + 3 ] = ((float*)alphaBuffer)[ i * 3 ];
delete[] (float*)lightBuffer;
delete[] (float*)alphaBuffer;
// Set the layer name.
//LOAD THE EXTRA CHANNELS
if( ... ){
//READ THE RENDER BUFFER
if( ... ){
// User can abort.
if (gFormatRecord->abortProc()){
*gResult = userCanceledErr;
return;
// Commit the layer.
if (*gResult == noErr) *gResult = gFormatRecord->advanceState();
// Update the progress bar.
(*gFormatRecord->progressProc)( done, total );
// Free memory.
if( gFormatRecord->data != NULL ){
delete[] (float*)gFormatRecord->data;
gFormatRecord->data = NULL;
if( lightName != NULL ){
delete[] lightName;
lightName = NULL;
static void DoReadLayerFinish (void)
// Nothing to do.
And that's the image that I obtain loading a 8 layer image:
The layers have transparency (when I set "transparencyPlane" to -1, or 0, or 1, or 2, or 3, or 4....., I got the same result!). The blending mode is still "normal". I had set it to "linear dodge" The "isVisible" param works OK.
Alpha 1 is still black.
Is possible that I need to set something in the .r file? I had to add "FormatLayerSupport { doesSupportFormatLayers }," to manage layers, for instance. -
How can we put program code which looks similar to SAP Program in SAP ?
when we copy the code and paste here in this editor, the setup of all the code becomes disturbed and we may not able to understand, plz suggest how can we post the code which is actully looks similar in SAP abap program ?
Thanks & Regards,
Amit
Edited by: akg.amit on Oct 20, 2010 8:35 AMHi Amit,
Check this thread.
How to post code in SCN, and some things NOT to do...
Regards,
Immanuel. -
How can i see the details of outstanding Vendor Report
Hello,
Can any one tell me how can we see the outstanding Vendor Balance..... Any Tcode for the same ?
Regards,
SAN2008Hi,
T code - FBL1N, and choose open items radio button for the period which you want to view the outstanding balance for a vendor
Hope this resolves your query,
J -
Dear Sirs ,
my I phone 4 is limited to some network so i wanna make my I phone free to all networkes all over , how can i get the code to unblock itThere is no "code to unblock it". It can only be unlocked by the carrier it's locked to. Contact them and see if they offer that service and if you qualify.
-
Runtime workbench , how can I see the receipients in the Alert category,
Hi guys,
Alert framework;=>
I have previosly created allert category in runtime wrokbench--->allert configuration.
Also allert rule is created with that allert category.
how can i see the recipients defined for that alert category
appreciate your help
IverHi,
There are two ways one can define the recipients of the configured alerts.
1) Fixed Recipients: - Use tcode ALRTCATDEF and select your alert category and click on fixed recipient. tab
2) Recipients via User Role: It will help you to define alerts recipients via kind of roles they play.
For more help on alerts kindly check the below mentioned links :
alert management Alerts all in one
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60c24b82-6da9-2a10-5a93-f1f729d89787
The specified item was not found. - Alert Configuration
Thanks!
Aditya -
How Can I see the CO-PA report
hi sap experts,
how can i see the CO-PA report and in detail configuriation,
and controlling reports.
Advance Thanks,For executing COPA - Tcode is KE30 (for define change etc... KE31 to KE34)
Standard reports available in controlling sub-components under information system
Regards
Radha -
How can I see the old backups of my previous Macbook done by Time machine in a Time capsule with my new iMac? I've changed from a Macbook to a iMac because that one stopped working and I cannot use it anymore. I've been able to import all the data of the last backup of the Macbook when setting the new iMac, but I cannot access now to the old backups of the Macbook and there are information that wasn't in the last backup and I would like to recover. Thank you very much.
Yes, you can ..
Read Q17 here.
http://pondini.org/TM/FAQ.html
Strongly recommend his whole section.. 14-17 and read it carefully to understand the ways you can make TM work for you.
Maybe you are looking for
-
CS6 - my print booklet presets keep disappearing
I just recently installed CS6 on my computer. I had to set up all of my print booklet presets again (I use them frequently to print booklets on our printer). I saved them, just as I had previously with CS5. And for awhile, all was right with the worl
-
Iomega SuperSlim drive won't burn on my new Mac Mini.
It recognizes and starts the burn the just sits there with the "State: Writing Track 1". Is it not compatiable or is there something different I have to do to make it work?
-
Hiding app won't hide the app, except at some random time later on
I've got this problem where hiding an application wont' hide it. You invoke HIDE and nothing happens. Then a while later the application hides and it's gone FOREVER. You can't get it back. You have to force quit it. 10.5 has some serious problems wit
-
Is there any other ways to find or identify backordered order line in 11.5.2 than look for order line status = Awaiting Shipping and trying to a open Pick Wave Move Order from Inventory and Move Orders? When backorder is created from Ship Confirm, on
-
Bootcamp partition won't load on startup after Yosemite upgrade
Hi! I have a similar problem like others before, but I tried to fix it like described but it didn't work. Here's my output: diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partit