cancel
Showing results for 
Search instead for 
Did you mean: 

multiple forms in smartforms

Former Member
0 Kudos

can we call multiple forms in a smartform?

in script we do so by calling start_form FM from driver program

in smartform how to achieve this?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi ,

Check the following code . I have done it a couple of weeks back.

Reward points if useful

  • &---------------------------------------------------------------------*

  • & Report ZLOK_TEST_SMARTF_SPOOL

  • &

  • &---------------------------------------------------------------------*

  • &

  • &

  • &---------------------------------------------------------------------*

REPORT zlok_test_smartf_spool.

TABLES: imrg.

CONSTANTS : c_x TYPE c VALUE 'X'.

DATA: v_ssf_name TYPE tdsfname,

v_func_mod_name TYPE rs38l_fnam.

TYPES: BEGIN OF ty_mdocm,

mdocm TYPE imrg-mdocm,

point TYPE imrg-point,

codgr TYPE imrg-codgr,

vlcod TYPE imrg-codgr,

END OF ty_mdocm,

tt_mdocm TYPE STANDARD TABLE OF ty_mdocm.

DATA: wa_mdocm TYPE ty_mdocm.

DATA: it_mdocm TYPE tt_mdocm.

DATA: v_formname TYPE tdsfname.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 NO INTERVALS .

  • PARAMETERS : p_ssfnam TYPE tdsfname OBLIGATORY.

PARAMETERS: p_copy TYPE ssfcompop-tdcopies DEFAULT '001'. " No. of copies

PARAMETERS: p_prtr TYPE ssfcompop-tddest DEFAULT 'LOCL'. " Printer name

PARAMETERS: p_pv AS CHECKBOX DEFAULT 'X'. " Print Preview

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002 .

SELECT-OPTIONS: so_mdocm FOR imrg-mdocm OBLIGATORY. " Measuring Document

SELECT-OPTIONS: so_point FOR imrg-point OBLIGATORY. " Measuring Point

  • PARAMETERS:p_mdocm TYPE imrc_mdocm OBLIGATORY,

  • p_point TYPE imrc_point OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b2.

  • SELECTION-SCREEN BEGIN OF BLOCK RAD1

  • WITH FRAME TITLE TEXT-003.

  • PARAMETERS icdcloop RADIOBUTTON GROUP GR1.

  • PARAMETERS snub RADIOBUTTON GROUP GR1.

  • PARAMETERS Rts RADIOBUTTON GROUP GR1.

  • SELECTION-SCREEN END OF BLOCK RAD1.

START-OF-SELECTION.

IF so_mdocm[] IS NOT INITIAL.

SELECT mdocm point codgr vlcod INTO TABLE it_mdocm

FROM imrg WHERE mdocm IN so_mdocm

AND point IN so_point.

ENDIF.

  • call Generated Fun module

PERFORM call_smartform.

  • &---------------------------------------------------------------------*

  • & Form call_smartform

  • &---------------------------------------------------------------------*

  • text

  • ----------------------------------------------------------------------*

  • --> p1 text

  • <-- p2 text

  • ----------------------------------------------------------------------*

FORM call_smartform .

DATA: v_form_type(15) TYPE c.

DATA: wa_ssfctrl TYPE ssfctrlop.

DATA: v_lines TYPE i.

DATA:x_output_options TYPE ssfcompop.

x_output_options-tdimmed = space.

x_output_options-tdnewid = c_x.

x_output_options-tdreceiver = sy-uname.

x_output_options-tdcopies = p_copy. " No. of copies

x_output_options-tddest = p_prtr. " Printer name

DESCRIBE TABLE it_mdocm LINES v_lines.

LOOP AT it_mdocm INTO wa_mdocm.

IF sy-tabix EQ 1.

wa_ssfctrl-no_open = space.

wa_ssfctrl-no_close = c_x.

ELSEIF sy-tabix EQ v_lines.

wa_ssfctrl-no_open = c_x.

wa_ssfctrl-no_close = space.

ELSE.

wa_ssfctrl-no_open = c_x.

wa_ssfctrl-no_close = c_x.

ENDIF.

if v_lines eq 1.

wa_ssfctrl-no_open = space.

wa_ssfctrl-no_close = space.

endif.

IF p_pv = c_x.

wa_ssfctrl-preview = c_x. " printpreview required

ENDIF.

wa_ssfctrl-device = 'PRINTER'. " Device

wa_ssfctrl-no_dialog = c_x. " Dialog

wa_ssfctrl-langu = sy-langu. " langauage

CLEAR: v_form_type.

CONCATENATE wa_mdocm-codgr '-' wa_mdocm-vlcod INTO v_form_type.

IF ( wa_mdocm-codgr EQ 'RTS' ) .

v_form_type = 'RTS-01'.

ELSEIF ( wa_mdocm-codgr EQ 'SNIB' ).

v_form_type = 'SNUB-01'.

ENDIF.

CASE v_form_type.

WHEN 'ICDC-01'.

MOVE 'ZPM1_ICDC01' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-02'.

MOVE 'ZPM1_ICDC02' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-03'.

MOVE 'ZPM1_ICDC03' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-04'.

MOVE 'ZPM1_ICDC04' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-05'.

MOVE 'ZPM1_ICDC05' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-06'.

MOVE 'ZPM1_ICDC06' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-07'.

MOVE 'ZPM1_ICDC07' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-08'.

MOVE 'ZPM1_ICDC08' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-09'.

MOVE 'ZPM1_ICDC09' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'ICDC-LOOP'.

MOVE 'ZPM1_ICDCLOOP' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name "'/1BCDWB/SF00000134'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'IST-BTO' OR 'IST-BTC' OR 'IST-AT' OR 'IST-AJ' OR 'IST-ILRT' OR 'IST-PUMP'.

MOVE 'ZPM1_IST' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name " '/1BCDWB/SF00000138'

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

WHEN 'RTS-01'.

MOVE 'ZPM1_RTS' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

WHEN 'SNUB-01'.

MOVE 'ZPM1_SNUB' TO v_formname. " move form name into the v_formname variable

PERFORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION v_func_mod_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

control_parameters = wa_ssfctrl

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

output_options = x_output_options

user_settings = space

mdocm = wa_mdocm-mdocm

point = wa_mdocm-point

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDCASE.

ENDLOOP.

ENDFORM. " call_smartform

*... Genate Smartform Fun module name

FORM call_generate_fm USING v_formname

CHANGING v_func_mod_name.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = v_formname

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

fm_name = v_func_mod_name

EXCEPTIONS

no_form = 1

no_function_module = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "call_generate_fm

Regards,

Nageswar

Vijay
Active Contributor
0 Kudos

hi

you can call mulltiple forms by calling FM that is calling your smartform inside the loop.

it will display the forms one by one.

here is the sample print program

_________________________________________________________________

report z_smartform.

tables vbrk.

data : lt_vbrk type standard table of vbrk ,

lt_vbrp type standard table of vbrp,

wa_vbrk type vbrk,

lt_adrc type standard table of adrc,

wa_vbrp type vbrp,

lv_adrnr type kna1-adrnr,

wa_adrc type adrc.

data: var_fmname type rs38l_fnam .

select-options so_vbeln for vbrk-vbeln.

select vbeln

fkdat

kunrg

xblnr

waerk

from vbrk

into corresponding fields of table lt_vbrk

where vbeln in so_vbeln.

loop at lt_vbrk into wa_vbrk.

select single adrnr from kna1 into lv_adrnr where kunnr = wa_vbrk-kunrg .

if sy-subrc = 0.

select single name1

street

city1

post_code1

country

tel_number

from adrc

into corresponding fields of wa_adrc

where addrnumber = lv_adrnr and date_from <= sy-datum and date_to >= sy-datum.

endif.

select matnr

arktx

fkimg

vrkme

netwr

from vbrp

into corresponding fields of table lt_vbrp

where vbeln = wa_vbrk-vbeln .

call function 'SSF_FUNCTION_MODULE_NAME'

exporting

formname = 'ZASG12_SMARTFORMS1'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

importing

fm_name = var_fmname

exceptions

no_form = 1

no_function_module = 2

others = 3

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

call function var_fmname

exporting

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

wa_invoice = wa_vbrk

wa_header = wa_adrc

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

tables

it_main = lt_vbrp

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endloop .

_________________________________________________________________

regards

vijay

reward points if helpful