2006 Sep 21 3:48 PM
hi friendz,
i am working on custom developed smartform and print program,
below is my driver program.
but am in a confusion how to define the <b>form interface in smartform.
</b> according my requirement it is needed to use a inner join for the following select queries
plz guide me.
TABLES:vekp, "Handling Unit - Header Table
vevw, "Where-Used List for Handling Units
afvc, "Operation within an order
resb, "Reservation/dependent requirements
makt, "Material Descriptions
ausp. "Characteristic Values
----
Types
----
TYPES:BEGIN OF ty_resb_makt,
matnr TYPE resb-matnr,
bdmng TYPE resb-bdmng,
meins TYPE resb-meins,
charg TYPE ausp-objek,
aufpl TYPE resb-aufpl,
aplzl TYPE resb-aplzl,
objnr TYPE resb-objnr,
maktx TYPE makt-maktx,
END OF ty_resb_makt.
TYPES:BEGIN OF ty_ausp,
objek TYPE ausp-objek,
atwrt TYPE ausp-atwrt,
atinn TYPE ausp-atinn,
END OF ty_ausp.
TYPES:BEGIN OF ty_vekp,
exidv TYPE vekp-exidv,
handle TYPE vekp-handle,
vpobjkey TYPE vekp-vpobjkey,
END OF ty_vekp.
TYPES:BEGIN OF ty_vevw,
objkey TYPE vevw-objkey,
handle TYPE vevw-handle,
END OF ty_vevw.
TYPES:BEGIN OF ty_afvc,
objnr TYPE afvc-objnr,
ltxa1 TYPE afvc-ltxa1,
aufpl TYPE afvc-aufpl,
aplzl TYPE afvc-aplzl,
END OF ty_afvc.
----
Internal tables Declaration
----
DATA:gt_resb_makt TYPE STANDARD TABLE OF ty_resb_makt INITIAL SIZE 0,
gt_ausp TYPE STANDARD TABLE OF ty_ausp INITIAL SIZE 0.
----
Work area Declaration
----
DATA:wa_resb_makt TYPE ty_resb_makt,
wa_ausp TYPE ty_ausp,
wa_vekp TYPE ty_vekp,
wa_vevw TYPE ty_vevw,
wa_afvc TYPE ty_afvc.
----
Variables *
----
DATA: g_objkey TYPE objkey,
g_ltxa1 TYPE ltxa1.
DATA : lf_fmname TYPE rs38l_fnam.
CONSTANTS: c_fmname(25) TYPE c VALUE 'ZWM_HANDLING_UNIT_LABEL'.
----
S e l e c t O p t i o n s *
P a r a m e t e r s *
----
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_exidv LIKE vekp-exidv, "Handling Unit Number
p_objkey LIKE vevw-objkey, "Process Order Number
p_ltxa1 LIKE afvc-ltxa1, "Phase Description
p_copies(3) TYPE N. "NO of Copies to be print
SELECTION-SCREEN END OF BLOCK block1.
----
AT SELECTION-SCREEN
----
AT SELECTION-SCREEN.
IF p_exidv IS NOT INITIAL.
SELECT single exidv
handle
vpobjkey
FROM vekp
INTO wa_vekp
WHERE exidv = p_exidv.
ENDIF.
IF p_objkey IS NOT INITIAL.
SELECT single objkey
FROM vevw
INTO wa_vevw
WHERE handle = wa_vekp-handle
AND objkey = wa_vekp-vpobjkey
AND objkey = p_objkey.
ENDIF.
IF p_ltxa1 IS NOT INITIAL.
SELECT single objnr
ltxa1
aufpl
aplzl
FROM afvc
INTO wa_afvc
WHERE objnr = wa_vevw-objkey
AND ltxa1 = p_ltxa1 .
ENDIF.
----
START-OF-SELECTION
----
START-OF-SELECTION.
SELECT a~matnr
a~bdmng
a~meins
a~charg
a~aufpl
a~aplzl
a~objnr
b~maktx
INTO TABLE gt_resb_makt
FROM resb AS a INNER JOIN makt AS b
ON amatnr = bmatnr
WHERE a~objnr = wa_afvc-objnr
AND a~aufpl = wa_afvc-aufpl
AND a~aplzl = wa_afvc-aplzl.
IF gt_resb_makt[] IS NOT INITIAL.
SELECT objek
atwrt
atinn
FROM ausp
INTO TABLE gt_ausp
FOR ALL ENTRIES IN gt_resb_makt
WHERE objek = gt_resb_makt-charg
AND atinn IN ('LOBM_VFDAT','LOBM_QNDAT').
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = c_fmname
IMPORTING
FM_NAME = lf_fmname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
am not able to solve this problem,
regards,
siri.
hi friendz,
i am working on custom developed smartform and print program,
below is my driver program.
but am in a confusion how to define the <b>form interface in smartform.
</b> according my requirement it is needed to use a inner join for the following select queries
plz guide me.
TABLES:vekp, "Handling Unit - Header Table
vevw, "Where-Used List for Handling Units
afvc, "Operation within an order
resb, "Reservation/dependent requirements
makt, "Material Descriptions
ausp. "Characteristic Values
----
Types
----
TYPES:BEGIN OF ty_resb_makt,
matnr TYPE resb-matnr,
bdmng TYPE resb-bdmng,
meins TYPE resb-meins,
charg TYPE ausp-objek,
aufpl TYPE resb-aufpl,
aplzl TYPE resb-aplzl,
objnr TYPE resb-objnr,
maktx TYPE makt-maktx,
END OF ty_resb_makt.
TYPES:BEGIN OF ty_ausp,
objek TYPE ausp-objek,
atwrt TYPE ausp-atwrt,
atinn TYPE ausp-atinn,
END OF ty_ausp.
TYPES:BEGIN OF ty_vekp,
exidv TYPE vekp-exidv,
handle TYPE vekp-handle,
vpobjkey TYPE vekp-vpobjkey,
END OF ty_vekp.
TYPES:BEGIN OF ty_vevw,
objkey TYPE vevw-objkey,
handle TYPE vevw-handle,
END OF ty_vevw.
TYPES:BEGIN OF ty_afvc,
objnr TYPE afvc-objnr,
ltxa1 TYPE afvc-ltxa1,
aufpl TYPE afvc-aufpl,
aplzl TYPE afvc-aplzl,
END OF ty_afvc.
----
Internal tables Declaration
----
DATA:gt_resb_makt TYPE STANDARD TABLE OF ty_resb_makt INITIAL SIZE 0,
gt_ausp TYPE STANDARD TABLE OF ty_ausp INITIAL SIZE 0.
----
Work area Declaration
----
DATA:wa_resb_makt TYPE ty_resb_makt,
wa_ausp TYPE ty_ausp,
wa_vekp TYPE ty_vekp,
wa_vevw TYPE ty_vevw,
wa_afvc TYPE ty_afvc.
----
Variables *
----
DATA: g_objkey TYPE objkey,
g_ltxa1 TYPE ltxa1.
DATA : lf_fmname TYPE rs38l_fnam.
CONSTANTS: c_fmname(25) TYPE c VALUE 'ZWM_HANDLING_UNIT_LABEL'.
----
S e l e c t O p t i o n s *
P a r a m e t e r s *
----
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_exidv LIKE vekp-exidv, "Handling Unit Number
p_objkey LIKE vevw-objkey, "Process Order Number
p_ltxa1 LIKE afvc-ltxa1, "Phase Description
p_copies(3) TYPE N. "NO of Copies to be print
SELECTION-SCREEN END OF BLOCK block1.
----
AT SELECTION-SCREEN
----
AT SELECTION-SCREEN.
IF p_exidv IS NOT INITIAL.
SELECT single exidv
handle
vpobjkey
FROM vekp
INTO wa_vekp
WHERE exidv = p_exidv.
ENDIF.
IF p_objkey IS NOT INITIAL.
SELECT single objkey
FROM vevw
INTO wa_vevw
WHERE handle = wa_vekp-handle
AND objkey = wa_vekp-vpobjkey
AND objkey = p_objkey.
ENDIF.
IF p_ltxa1 IS NOT INITIAL.
SELECT single objnr
ltxa1
aufpl
aplzl
FROM afvc
INTO wa_afvc
WHERE objnr = wa_vevw-objkey
AND ltxa1 = p_ltxa1 .
ENDIF.
----
START-OF-SELECTION
----
START-OF-SELECTION.
SELECT a~matnr
a~bdmng
a~meins
a~charg
a~aufpl
a~aplzl
a~objnr
b~maktx
INTO TABLE gt_resb_makt
FROM resb AS a INNER JOIN makt AS b
ON amatnr = bmatnr
WHERE a~objnr = wa_afvc-objnr
AND a~aufpl = wa_afvc-aufpl
AND a~aplzl = wa_afvc-aplzl.
IF gt_resb_makt[] IS NOT INITIAL.
SELECT objek
atwrt
atinn
FROM ausp
INTO TABLE gt_ausp
FOR ALL ENTRIES IN gt_resb_makt
WHERE objek = gt_resb_makt-charg
AND atinn IN ('LOBM_VFDAT','LOBM_QNDAT').
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = c_fmname
IMPORTING
FM_NAME = lf_fmname
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
am not able to solve this problem,
regards,
siri.
2006 Sep 21 3:51 PM
2006 Sep 21 3:52 PM
Hi,
After getting the Function module name in in the variable call this function module using call statement and pass your internal table to this Function module.
Hope this helps.
2006 Sep 21 4:15 PM
Check the the following example from SAP system similar to your case.
SF_EXAMPLE_01
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |