Problem with if - elseif - endif.
Hi,
Pls see this code
IF g_error = 'X'.
WRITE: / "File formatted incorrectly.".
ELSEIF tot_betrg NE g_tot_betrg OR g_tot_rec NE l_tot_rec .
WRITE: / 'summary record count does not match.'.
SKIP.
ENDIF.
This is giving me syntax error "Field elseif if unknown. It is neither in one of the specified tables nor defined by a 'data' statement.
Please help
Thanks
Pranati
Hi Pranati,
Modify your code in this way.
IF g_error = 'X'.
WRITE: / "File formatted incorrectly.".
ELSEIF.
tot_betrg NE g_tot_betrg OR g_tot_rec NE l_tot_rec .
WRITE: / 'summary record count does not match.'.
SKIP.
ENDIF.
Hope this resolves your query.
<b>Reward all the helpful answers.</b>
Regards
Similar Messages
-
Problems with a call transaction
Hi, I'm having some problems with a call transaction and I cannot understand why. I put A in the mode, and I am seeing the dynpros and I am pressing enter it works perfectly but when I use mode N it tells me that there is not information for one of the dynpros and it doesn't work. Does anybody know the problem and how to solve it??
Thanks in advanceHi,
First of all thank you very much for your time.
I am using FB05 and the problem is in dynpro SAPLKACB 0002, and it says that batch input data doesn't exist. Here is the code, maybe you can see what is happening
LOOP AT t_resumen WHERE belnr = t_batch-belnr AND
( contador = 3 OR contador = 4 or CONTADOR = 5 ).
READ TABLE t_clave WITH KEY belnr = t_resumen-belnr.
d_clave = t_clave-bschl.
i = i + 1.
CASE i.
WHEN 1.
PERFORM bdc_dynpro USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'RF05A-NEWBS' t_resumen-bschl.
PERFORM bdc_field USING 'RF05A-NEWKO' t_resumen-hkont.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
j_wrbtr = t_resumen-wrbtr.
REPLACE '.' WITH ',' INTO j_wrbtr.
PERFORM bdc_field USING 'BSEG-WRBTR' j_wrbtr.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
WHEN t.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'RF05A-NEWBS' t_resumen-bschl.
PERFORM bdc_field USING 'RF05A-NEWKO' t_resumen-hkont.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
j_hkont = t_resumen-hkont.
j_clave = t_resumen-bschl.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
j_wrbtr = t_resumen-wrbtr.
REPLACE '.' WITH ',' INTO j_wrbtr.
PERFORM bdc_field USING 'BSEG-WRBTR' j_wrbtr.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
WHEN OTHERS.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'RF05A-NEWBS' t_resumen-bschl.
PERFORM bdc_field USING 'RF05A-NEWKO' t_resumen-hkont.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
j_hkont = t_resumen-hkont.
j_clave = t_resumen-bschl.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
j_wrbtr = t_resumen-wrbtr.
REPLACE '.' WITH ',' INTO j_wrbtr.
PERFORM bdc_field USING 'BSEG-WRBTR' j_wrbtr.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
ENDCASE.
READ TABLE t_porcentajes WITH KEY gjahr = t_resumen-zzbad
zzbtd = t_resumen-zzbtd.
IF j_hkont = t_porcentajes-cfacpr.
PERFORM bdc_field USING 'COBL-PRCTR' t_porcentajes-prctrfac.
PERFORM bdc_field USING 'COBL-ZZBTD' t_resumen-zzbtd.
PERFORM bdc_field USING 'COBL-ZZBAD' t_resumen-zzbad.
ELSEIF t_resumen-hkont = t_porcentajes-cadmin.
PERFORM bdc_field USING 'COBL-KOSTL' '20801'.
ELSEIF t_resumen-hkont = t_porcentajes-creca.
PERFORM bdc_field USING 'COBL-KOSTL' '20401'.
ELSE.
IF d_clave = 01 OR d_clave = 04 OR d_clave = 40 OR d_clave = 09.
IF j_hkont >= 424001 AND j_hkont <= 424005.
PERFORM bdc_field USING 'COBL-PRCTR' 'DUMMY'.
ELSEIF j_hkont >= 424601 AND j_hkont <= 424605.
IF j_clave = 40.
PERFORM bdc_field USING 'COBL-PRCTR' 'DUMMY'.
ENDIF.
ENDIF.
ELSEIF d_clave = 11 OR d_clave = 12 OR d_clave = 14 OR d_clave = 50.
IF j_hkont >= 424001 AND j_hkont <= 424005.
PERFORM bdc_field USING 'COBL-PRCTR' 'DUMMY'.
ELSEIF j_hkont >= 424601 AND j_hkont <= 424605.
IF j_clave = 50.
PERFORM bdc_field USING 'COBL-PRCTR' 'DUMMY'.
ENDIF.
ENDIF.
ENDIF.
*Fin modificacion marzo 2007.----
PERFORM bdc_field USING 'COBL-ZZBTD' t_resumen-zzbtd.
PERFORM bdc_field USING 'COBL-ZZBAD' t_resumen-zzbad.
PERFORM bdc_field USING 'COBL-ZZBTT' t_resumen-zzbtt.
PERFORM bdc_field USING 'COBL-ZZBTU' t_resumen-zzbtu.
PERFORM bdc_field USING 'COBL-ZZBTS' t_resumen-zzbts.
PERFORM bdc_field USING 'COBL-ZZBAG' t_resumen-zzbag.
PERFORM bdc_field USING 'COBL-ZZBRE' t_resumen-zzbre.
PERFORM bdc_field USING 'COBL-ZZBC8' t_resumen-zzbc8.
PERFORM bdc_field USING 'COBL-ZZBC9' t_resumen-zzbc9.
ENDIF.
ENDLOOP. -
Hi Experts,
I'm having a problem with decimal.
I have a alv data grid that can be edited.Once I press enter the value for the decimal fields are changed.
Example: If i input 5.00 in the field then I press enter it converts it to 0.05
And If I input 2.01 in the field it shows an error Too many decimal places(Maximum 0)
DATA INPUT for my internal table:
DATA: BEGIN OF it_data OCCURS 0,
docno LIKE zit_haul_line-docno,
line LIKE zit_haul_line-line,
eqpno LIKE zit_haul_line-eqpno,
rpt LIKE zit_haul_line-rpt,
notrip LIKE zit_haul_line-notrip,
trc LIKE zit_haul_line-trc,
escfee LIKE zit_haul_line-escfee,
tollfee LIKE zit_haul_line-tollfee,
repr LIKE zit_haul_line-repr,
others LIKE zit_haul_line-others,
tba LIKE zit_haul_line-tba,
dik LIKE zit_haul_line-dik,
locorg LIKE zit_haul_line-locorg,
locdes LIKE zit_haul_line-locdes,
END OF it_data.
DATA: wa_data LIKE it_data.
Here is my code in change ALV Change.
FORM data_changed USING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.
DATA ls_modi TYPE lvc_s_modi.
DATA: ratepertrip LIKE zit_haul_line-rpt,
nooftrip LIKE zit_haul_line-notrip,
lv_value TYPE lvc_value ,
totalrent LIKE zit_haul_line-trc,
escortfee LIKE zit_haul_line-escfee,
tollfee LIKE zit_haul_line-tollfee,
represent LIKE zit_haul_line-repr,
others LIKE zit_haul_line-others,
lv_value1 TYPE lvc_value,
totalbill LIKE zit_haul_line-tba.
DATA: eqpno LIKE equi-equnr,
gv_equnr LIKE equi-equnr.
* Check each modification:
LOOP AT ir_data_changed->mt_mod_cells INTO ls_modi.
CASE ls_modi-fieldname.
WHEN 'EQPNO'.
CONDENSE ls_modi-value.
SELECT SINGLE equnr
INTO gv_equnr
FROM equi
WHERE equnr EQ ls_modi-value.
IF sy-subrc NE 0.
CALL METHOD ir_data_changed->add_protocol_entry
EXPORTING
i_msgid = '00'
i_msgty = 'E'
i_msgno = '398'
i_msgv1 = 'Equipment Number does not exist:'
i_msgv2 = ls_modi-value
i_msgv3 = ''
i_msgv4 = ''
i_fieldname = ls_modi-fieldname
i_row_id = ls_modi-row_id.
ENDIF.
ENDCASE.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'RPT'
IMPORTING e_value = ratepertrip.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'NOTRIP'
IMPORTING e_value = nooftrip.
CLEAR totalrent.
ls_modi-fieldname = 'TRC'.
IF ratepertrip = ''.
ratepertrip = 1.
ELSEIF nooftrip = ''.
nooftrip = 1.
ENDIF.
totalrent = ratepertrip * nooftrip.
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = ls_modi-fieldname
i_value = totalrent.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'ESCFEE'
IMPORTING e_value = escortfee.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'TOLLFEE'
IMPORTING e_value = tollfee.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'REPR'
IMPORTING e_value = represent.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'OTHERS'
IMPORTING e_value = others.
CLEAR totalbill.
ls_modi-fieldname = 'TBA'.
totalbill = escortfee + tollfee + represent + others.
totalbill = totalrent + totalbill.
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = ls_modi-fieldname
i_value = totalbill.
ENDLOOP.
ENDFORM. "data_changedHi,
Can you check my code. I've tried changing the data types of my internal table and my output is stll same when I press enter.
The output should be 2.00 3.00 5.00 7.00
Also if I enter 12345.00 the output should be 12,345.00.
Thank you so much for the help.
* ALV required data objects.
TYPE-POOLS: sdydo, icon, slis.
DATA: w_title TYPE lvc_title,
w_repid TYPE sy-repid,
w_comm TYPE slis_formname,
w_status TYPE slis_formname,
x_layout TYPE slis_layout_alv,
ls_events TYPE LINE OF slis_t_event,
t_events TYPE slis_t_event,
t_fieldcat TYPE slis_t_fieldcat_alv,
x_sort type LINE OF slis_t_sortinfo_alv,
t_sort TYPE slis_t_sortinfo_alv,
ls_heading TYPE slis_listheader,
t_heading TYPE slis_t_listheader,
ls_fieldcat TYPE slis_fieldcat_alv,
gs_variant LIKE disvariant,
gt_events TYPE slis_t_event,
gs_events TYPE slis_alv_event.
DATA:
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.
TYPES: BEGIN OF t_header,
line01(555) TYPE c,
line02(555) TYPE c,
END OF t_header.
DATA: is_print TYPE slis_print_alv,
gset TYPE lvc_s_glay,
%runmode TYPE aqlimode.
data: it_sortcat type slis_sortinfo_alv occurs 1.
DATA: gw_header TYPE t_header.
" END OF ALV DATA
"========================================================================================================================
DATA: BEGIN OF it_data OCCURS 0,
docno LIKE zit_haul_line-docno,
line LIKE zit_haul_line-line,
eqpno LIKE zit_haul_line-eqpno,
rpt TYPE p DECIMALS 2, "LIKE zit_haul_line-rpt,
notrip TYPE p DECIMALS 2,
trc TYPE p DECIMALS 2,
escfee TYPE p DECIMALS 2,
tollfee TYPE p DECIMALS 2,
repr TYPE p DECIMALS 2,
others TYPE p DECIMALS 2,
tba TYPE p DECIMALS 2,
dik LIKE zit_haul_line-dik,
locorg LIKE zit_haul_line-locorg,
locdes LIKE zit_haul_line-locdes,
END OF it_data.
DATA: wa_data LIKE it_data.
DATA: it_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.
DATA: wa_modified TYPE STANDARD TABLE OF zit_haul_line WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: r_create RADIOBUTTON GROUP rad1 USER-COMMAND a DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: r_proj RADIOBUTTON GROUP rad2 MODIF ID A.
PARAMETERS: r_cost RADIOBUTTON GROUP rad2 MODIF ID A.
SELECTION-SCREEN END OF BLOCK b2.
PARAMETERS: r_post RADIOBUTTON GROUP rad1.
PARAMETERS: r_rev RADIOBUTTON GROUP rad1.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME.
PARAMETERS: p_docno LIKE mseg-belnr MODIF ID B,
p_post LIKE sy-datum MODIF ID B.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME.
PARAMETERS: p_trand LIKE sy-datum,
p_cost LIKE csks-kostl,
p_proj TYPE string,
p_wbs TYPE string,
p_nwa TYPE string.
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF r_create = 'X'.
IF screen-group1 = 'A'.
screen-active = 1.
ENDIF.
ELSE.
IF screen-group1 = 'A'.
screen-active = 0.
ENDIF.
ENDIF.
IF r_post = 'X' OR r_rev = 'X'.
IF screen-group1 = 'B'.
screen-active = 1.
ENDIF.
ELSE.
IF screen-group1 = 'B'.
screen-active = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
START-OF-SELECTION.
PERFORM get_data.
PERFORM display_report.
FORM get_data.
it_data-line = '001'.
APPEND it_data.
it_data-line = '002'.
APPEND it_data.
it_data-line = '003'.
APPEND it_data.
it_data-line = '004'.
APPEND it_data.
it_data-line = '005'.
APPEND it_data.
it_data-line = '006'.
APPEND it_data.
it_data-line = '007'.
APPEND it_data.
it_data-line = '008'.
APPEND it_data.
it_data-line = '009'.
APPEND it_data.
it_data-line = '010'.
APPEND it_data.
ENDFORM.
"ALV DISPLAY ====================================================================================================================================
"& Form PF_WRITE_FIELDCAT
*& Form pf_write_fieldcat
* text
* -->FNAME text
* -->TNAME text
* -->TEXT text
* -->LEN text
FORM pf_write_fieldcat USING fname
tname
text
len
edt.
* key
* sum.
ls_fieldcat-fieldname = fname.
ls_fieldcat-tabname = tname.
ls_fieldcat-seltext_l = text.
ls_fieldcat-outputlen = len.
* ls_fieldcat-key = key.
* ls_fieldcat-do_sum = sum.
ls_fieldcat-edit = edt.
IF len = '0'.
ls_fieldcat-outputlen = '1'.
ls_fieldcat-no_out = 'X'.
ENDIF.
APPEND ls_fieldcat TO t_fieldcat.
CLEAR ls_fieldcat.
* To set ENTER Event!
gs_events-name = 'CALLER_EXIT'.
gs_events-form = 'CALLER_EXIT'.
APPEND gs_events TO gt_events.
* To change the ALV Changed Protocoll
gs_events-name = 'DATA_CHANGED'.
gs_events-form = 'DATA_CHANGED'.
APPEND gs_events TO gt_events.
ENDFORM. " PF_WRITE_FIELDCAT
*& Form display_report
FORM display_report.
is_print-no_print_selinfos = 'X'.
is_print-no_print_listinfos = 'X'.
is_print-print_ctrl = 'X'.
PERFORM pf_write_fieldcat USING:
* 'DOCNO' 'IT_DATA' 'Line' ' ' '',
'LINE' 'IT_DATA' 'Line' ' ' '',
'EQPNO' 'IT_DATA' 'Equipment No.' ' ' 'X',
'RPT' 'IT_DATA' 'Rate per Trip' ' ' 'X',
'NOTRIP' 'IT_DATA' 'No of Trip' ' ' 'X',
'TRC' 'IT_DATA' 'Total Rental Charges' ' ' '',
'ESCFEE' 'IT_DATA' 'Escort Fee' ' ' 'X',
'TOLLFEE' 'IT_DATA' 'Toll Fee' ' ' 'X',
'REPR' 'IT_DATA' 'Representation' ' ' 'X',
'OTHERS' 'IT_DATA' 'Others' ' ' 'X',
'TBA' 'IT_DATA' 'Total Billable Amount' ' ' '',
'DIK' 'IT_DATA' 'Distance in KM' ' ' 'X',
'LOCORG' 'IT_DATA' 'Location Origin' ' ' 'X',
'LOCDES' 'IT_DATA' 'Location Destination' ' ' 'X'.
* Layout
x_layout-zebra = 'X'.
x_layout-no_keyfix = ' '.
x_layout-colwidth_optimize = 'X'.
* GUI Status
w_status = 'SET_PF_STATUS'.
w_repid = sy-repid.
* User commands
w_comm = 'USER_COMMAND'.
* gs_variant-variant = p_var1.
* gs_variant-handle = space.
* gs_variant-report = sy-repid.
gs_variant-report = sy-repid.
gs_variant-username = sy-uname.
gset-no_colwopt = 'X'.
* Displays the ALV grid
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = t_fieldcat
is_layout = x_layout
"it_sort = t_sort
it_sort = it_sortcat
* i_callback_pf_status_set = w_status
"i_callback_user_command = w_comm
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* i_callback_html_top_of_page = 'TOP_OF_PAGE'
i_callback_top_of_page = 'TOP-OF-PAGE'
* i_callback_html_end_of_list = 'END-OF-PAGE'
is_variant = gs_variant
i_save = 'A'
is_print = is_print
it_events = gt_events
* i_grid_title = w_title
TABLES
t_outtab = IT_DATA
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " display_report
FORM data_changed USING ir_data_changed TYPE REF TO cl_alv_changed_data_protocol.
DATA ls_modi TYPE lvc_s_modi.
DATA: ratepertrip LIKE zit_haul_line-rpt,
nooftrip LIKE zit_haul_line-notrip,
lv_value TYPE lvc_value ,
totalrent LIKE zit_haul_line-trc,
escortfee LIKE zit_haul_line-escfee,
tollfee LIKE zit_haul_line-tollfee,
represent LIKE zit_haul_line-repr,
others LIKE zit_haul_line-others,
lv_value1 TYPE lvc_value,
totalbill LIKE zit_haul_line-tba.
DATA: eqpno LIKE equi-equnr,
gv_equnr LIKE equi-equnr.
* Check each modification:
LOOP AT ir_data_changed->mt_mod_cells INTO ls_modi.
CASE ls_modi-fieldname.
WHEN 'EQPNO'.
CONDENSE ls_modi-value.
SELECT SINGLE equnr
INTO gv_equnr
FROM equi
WHERE equnr EQ ls_modi-value.
IF sy-subrc NE 0.
CALL METHOD ir_data_changed->add_protocol_entry
EXPORTING
i_msgid = '00'
i_msgty = 'E'
i_msgno = '398'
i_msgv1 = 'Equipment Number does not exist:'
i_msgv2 = ls_modi-value
i_msgv3 = ''
i_msgv4 = ''
i_fieldname = ls_modi-fieldname
i_row_id = ls_modi-row_id.
ENDIF.
ENDCASE.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'RPT'
IMPORTING e_value = ratepertrip.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'NOTRIP'
IMPORTING e_value = nooftrip.
CLEAR totalrent.
ls_modi-fieldname = 'TRC'.
IF ratepertrip = ''.
ratepertrip = 1.
ELSEIF nooftrip = ''.
nooftrip = 1.
ENDIF.
totalrent = ratepertrip * nooftrip.
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = ls_modi-fieldname
i_value = totalrent.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'ESCFEE'
IMPORTING e_value = escortfee.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'TOLLFEE'
IMPORTING e_value = tollfee.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'REPR'
IMPORTING e_value = represent.
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = 'OTHERS'
IMPORTING e_value = others.
CLEAR totalbill.
ls_modi-fieldname = 'TBA'.
totalbill = escortfee + tollfee + represent + others.
totalbill = totalrent + totalbill.
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_modi-row_id
i_fieldname = ls_modi-fieldname
i_value = totalbill.
ENDLOOP.
ENDFORM. "data_changed
FORM caller_exit USING is_data TYPE slis_data_caller_exit.
* Switch to OO_ALV:
DATA: lr_alv TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_alv.
* Register ENTER as edit event:
CALL METHOD lr_alv->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
* pls. use MC_EVT_MODIFIED if leaving the cell should trigger the edit event!
ENDFORM. "CALLER_EXIT
*& Form TOP-OF-PAGE
* text
FORM top-of-page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
wa_header TYPE slis_listheader,
t_line LIKE wa_header-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
DATA: text TYPE sdydo_text_element,
a_right TYPE REF TO cl_dd_area.
DATA: tran TYPE string,
send TYPE string,
wbs TYPE string,
nwa TYPE string.
text = 'Create Hauling Charges for Project'.
wa_header-typ = 'S'.
wa_header-info = text.
APPEND wa_header TO t_header.
CLEAR: wa_header.
gw_header-line01 = text.
CONCATENATE 'Transaction Date: ' p_trand INTO tran SEPARATED BY space.
text = tran.
wa_header-typ = 'S'.
wa_header-info = text.
APPEND wa_header TO t_header.
CLEAR: wa_header.
gw_header-line01 = text.
CONCATENATE 'Sender Cost Center: ' p_cost INTO send SEPARATED BY space.
text = send.
wa_header-typ = 'S'.
wa_header-info = text.
APPEND wa_header TO t_header.
CLEAR: wa_header.
gw_header-line01 = text.
CONCATENATE 'Receiver WBS: ' p_wbs INTO wbs SEPARATED BY space.
text = wbs.
wa_header-typ = 'S'.
wa_header-info = text.
APPEND wa_header TO t_header.
CLEAR: wa_header.
gw_header-line01 = text.
CONCATENATE 'Receiver Network and NWA: ' p_nwa INTO nwa SEPARATED BY space.
text = nwa.
wa_header-typ = 'S'.
wa_header-info = text.
APPEND wa_header TO t_header.
CLEAR: wa_header.
gw_header-line01 = text.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. "top-of-page
FORM pf_set_top_page_heading USING typ
key
info.
ls_heading-typ = typ.
ls_heading-key = key.
ls_heading-info = info.
APPEND ls_heading TO t_heading.
ENDFORM. " PF_SET_TOP_PAGE_HEADING
*& Form PF_SET_TOP_PAGE_EVENTS
FORM pf_set_top_page_events USING name
form.
ls_events-name = name.
ls_events-form = form.
APPEND ls_events TO t_events.
CLEAR ls_events.
ENDFORM. " PF_SET_TOP_PAGE_EVENTS
*& Form REUSE_ALV_GET_VARIANT
FORM reuse_alv_get_variant
USING value(iv_repid) TYPE sy-repid
value(iv_handle) TYPE slis_handl
CHANGING iv_variant TYPE disvariant-variant.
DATA: lv_exit(1) TYPE c,
ls_variant TYPE disvariant. " Structure for Variant
MOVE: iv_variant TO ls_variant-variant,
iv_handle TO ls_variant-handle,
iv_repid TO ls_variant-report.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = ls_variant
i_save = 'A'
IMPORTING
e_exit = lv_exit
es_variant = ls_variant
EXCEPTIONS
not_found = 1
program_error = 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.
IF lv_exit = space.
MOVE ls_variant-variant TO iv_variant.
ENDIF.
ENDFORM. " REUSE_ALV_GET_VARIANT "
FORM user_command USING w_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE w_ucomm.
WHEN '&DATA_SAVE'.
* READ TABLE it_data INTO wa_data." INDEX rs_selfield-tabindex.
DELETE it_data WHERE eqpno IS INITIAL.
LOOP AT it_data INTO wa_data.
CONDENSE wa_data-eqpno.
MOVE-CORRESPONDING wa_data TO wa_modified.
APPEND wa_modified TO it_modified.
ENDLOOP.
MODIFY zit_haul_line FROM TABLE it_modified.
ENDCASE.
ENDFORM. "user_command -
hello
here is my problem
say i have an amount of 8,765.43, some times in sap this value is comming as 8.765,43
i mean to say its displaying . in the place of , and , in the palce of .
now if my value is displayed like 8.765,43 how can i change this to original format 8,765.43
please do not give answers considering only this value
this is just an example
ramHi,
DATA : lv_dcpfm TYPE xudcpfm.
SELECT SINGLE dcpfm FROM usr01 INTO lv_dcpfm
WHERE bname = sy-uname.
DATA lv_amt_formt(17) TYPE c value '8.765,43'.
IF lv_dcpfm = 'X'.
REPLACE ALL OCCURRENCES OF ',' IN:
lv_amt_formt WITH '' .
ELSEIF lv_dcpfm = ''.
REPLACE ALL OCCURRENCES OF '.' IN:
lv_amt_formt WITH '' .
REPLACE ALL OCCURRENCES OF ',' IN:
lv_amt_formt WITH '.' .
ENDIF.
Regards,
Durai.V -
Problem with sub-screen actions on Cancel button
Hi all,
I have a problem with sub-screen.
I created a subscreen (screen sequence in MM01/MM02/MM03). When users leave this screen, I call POPUP_TO_CONFIRM to ask if they want to save the data.
1) My goal is: when they choose Cancel, no actions are performed and users will see the current screen. However, I cannot use command: SET SCREEN 0 or LEAVE TO SCREEN 0 because the system gives an error message:
*SET SCREEN not allowed in subscreens*.
2) How can we determine when the user leaves the screen? which value of SY-UCOMM will be used to check this?
Thanks in advance.for dis SET SCREEN is not required.
Consider d code given below as n eg:
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'SAVE'
text_question = 'SOME _QUS'
text_button_1 = 'YES'
text_button_2 = 'NO'
default_button = '2'
display_cancel_button = ' '
IMPORTING
answer = l_ans
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e066.
ENDIF.
IF l_ans EQ '1'. " when yes is pressed
MODIFY db.
commit work.
leave program.
ELSEIF l_ans EQ '2'. "when no is pressed
leave program.
ELSE. " when cancel is pressed
ENDIF.
In above module when Yes is pressed it saves data den leave prog.
As no action is specified for cancel button it will remain on that screen only from which popup is called, in this way ur problem can be solved.
Reward properly. -
Problem with BAPI_SALESORDER_CHANGE function module
I know lot of posts have been done about problems with this function module. However I was not able to find the answer to my problem. Hence posting a new thread
I have the following code which changes the reason rejection (if required to 'ZF') and also updates the sales order quantity.
The code works absolutely fine as long as the PGI date of the order item is either today or in the future. However if the PGI date of the order item is in the past. I get an error in the t_return table with error type 'E' saying 'PGI date is in the past hence could not update the item'.
If I try to update the same order quantity in VA02 for the item with PGI date in the past it does so without any problem.
Can someone please suggest what the problem might be. Or if there is some other way I can update the quantity. (I dont want to use BDC)
FORM change_sales_order_item USING value(r_rtb_posnrs) TYPE zpsd_ztsdrtb_ro_track
CHANGING r_return TYPE type_t_bapiret2.
DATA: v_order_header_in TYPE bapisdh1,
v_order_header_inx TYPE bapisdh1x,
t_schedule_lines TYPE bapischdl OCCURS 0 WITH HEADER LINE,
t_schedule_linesx TYPE bapischdlx OCCURS 0 WITH HEADER LINE,
v_temp_rtb_vbeln TYPE vbeln,
v_temp_rtb_posnr TYPE posnr,
wa_old_rtb_posnrs TYPE ztsdrtb_ro_track,
t_item_in TYPE bapisditm OCCURS 0 WITH HEADER LINE,
t_item_inx TYPE bapisditmx OCCURS 0 WITH HEADER LINE,
v_rtb_old_vbeln TYPE zrtbvbeln,
v_rtb_old_posnr TYPE zrtbposnr,
v_ro_old_vbeln TYPE zrovbeln,
v_ro_old_posnr TYPE zroposnr,
v_rtb_count TYPE i,
v_next_row_index TYPE i,
v_update_order_flg TYPE char1, "Update the sales order flag
v_rtb_record_counter TYPE i,
v_original_vbeln TYPE vbeln,
t_bapiret TYPE STANDARD TABLE OF bapiret2.
FIELD-SYMBOLS: <wa_r_rtb_posnrs> TYPE ztsdrtb_ro_track,
<wa_r_rtb_posnr_next> TYPE ztsdrtb_ro_track.
CONSTANTS: c_updateflag TYPE bapisditmx-updateflag VALUE 'U'.
v_order_header_inx-updateflag = 'U'.
Get rid of the duplicate records for the same RTB order. Just use
the last record quantity in the internal table
LOOP AT r_rtb_posnrs ASSIGNING <wa_r_rtb_posnrs>.
v_rtb_record_counter = v_rtb_record_counter + 1.
<wa_r_rtb_posnrs>-seqnr = v_rtb_record_counter.
ENDLOOP.
SORT r_rtb_posnrs DESCENDING BY zrtbvbeln zrtbposnr seqnr zrtbconsumedflg.
DELETE ADJACENT DUPLICATES FROM r_rtb_posnrs COMPARING zrtbvbeln zrtbposnr.
DESCRIBE TABLE r_rtb_posnrs LINES v_rtb_count.
v_rtb_record_counter = 0.
v_update_order_flg = space.
LOOP AT r_rtb_posnrs ASSIGNING <wa_r_rtb_posnrs>.
v_rtb_record_counter = v_rtb_record_counter + 1.
v_update_order_flg = space.
Popluate the item quantity update flags for schedule lines
t_schedule_linesx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_schedule_linesx-sched_line = '0001'.
t_schedule_linesx-updateflag = c_updateflag.
t_schedule_linesx-req_qty = 'X'.
APPEND t_schedule_linesx.
CLEAR t_schedule_linesx.
*Item (Order QQuantity Field to be changed "KWMENG")
t_schedule_lines-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_schedule_lines-sched_line = '0001'.
t_schedule_lines-req_qty = <wa_r_rtb_posnrs>-zrtbchgqty.
APPEND t_schedule_lines.
CLEAR t_schedule_lines.
If fully consumed then set the rejection flag
IF <wa_r_rtb_posnrs>-zrtbconsumedflg = 'X'.
t_item_inx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_inx-updateflag = 'X'.
t_item_inx-reason_rej = 'X'.
APPEND t_item_inx.
CLEAR t_item_inx.
t_item_in-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_in-reason_rej = 'ZF'.
APPEND t_item_in.
CLEAR t_item_in.
ELSE.
t_item_inx-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_inx-updateflag = 'X'.
t_item_inx-reason_rej = 'X'.
APPEND t_item_inx.
CLEAR t_item_inx.
t_item_in-itm_number = <wa_r_rtb_posnrs>-zrtbposnr.
t_item_in-reason_rej = ' '.
APPEND t_item_in.
CLEAR t_item_in.
ENDIF.
If you have reached the last line of the RTB intern table update the sales order
*Index pointing to the next row
v_next_row_index = v_rtb_record_counter + 1.
IF v_rtb_record_counter = v_rtb_count.
v_update_order_flg = 'X'.
ELSEIF v_rtb_record_counter < v_rtb_count.
Get the next row data
READ TABLE r_rtb_posnrs INDEX v_next_row_index ASSIGNING <wa_r_rtb_posnr_next>.
IF sy-subrc = 0.
IF <wa_r_rtb_posnrs>-zrtbvbeln <> <wa_r_rtb_posnr_next>-zrtbvbeln.
v_update_order_flg = 'X'.
ENDIF.
ENDIF.
ELSE.
v_update_order_flg = space.
ENDIF.
update the rtb orders with quantities and the rejection flag (if required)
IF v_update_order_flg = 'X'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE' STARTING NEW TASK 'SOUPDATE'
PERFORMING callbk_bapi_salesorder_change ON END OF TASK
EXPORTING
salesdocument = <wa_r_rtb_posnrs>-zrtbvbeln
order_header_in = v_order_header_in
order_header_inx = v_order_header_inx
TABLES
return = t_return
schedule_lines = t_schedule_lines
schedule_linesx = t_schedule_linesx
order_item_in = t_item_in
order_item_inx = t_item_inx.
WAIT UNTIL t_return[] IS NOT INITIAL.
READ TABLE t_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc <> 0.
ELSE.
r_return[] = t_return[].
MESSAGE ID 'ZSD' TYPE 'E' NUMBER 613.
RAISE errorinorderupdate.
ENDIF.
REFRESH t_schedule_linesx.
REFRESH t_schedule_lines.
REFRESH t_item_in.
REFRESH t_item_inx.
REFRESH t_return.
ENDIF.
ENDLOOP.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
IMPORTING
return = t_bapiret.
ENDFORM. "Change_Sales_Ordersee the following example and try to do this:
i_hdrx-updateflag = 'U'.
*" Fill required SCHEDULE_LINES data.
i_sched-itm_number = p_posnr.
i_sched-sched_line = p_etenr.
i_sched-req_qty = p_reqqty.
i_schedx-updateflag = 'U'.
i_schedx-itm_number = p_posnr.
i_schedx-sched_line = p_etenr.
i_schedx-req_qty = 'X'.
APPEND i_sched.
APPEND i_schedx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_in = i_hdr
order_header_inx = i_hdrx
TABLES
return = i_ret
schedule_lines = i_sched
schedule_linesx = i_schedx. -
Hi there,
i've got a little problem with my ALV header. every time when i run my program and want to go back to the selection screen with the BACK-button i see my header again. so i've got to push the BACK-button again to get to the selection screen.
here's my alv-code
FORM TOP_OF_PAGE.
REFRESH header_itab[].
CLEAR wa_header.
wa_header-typ = 'H'.
* wa_header-key = 'ausw1'.
wa_header-info = text-001.
APPEND wa_header TO header_itab.
CLEAR wa_header.
IF radio1 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton1'.
wa_header-info = text-002.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio2 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton2'.
wa_header-info = text-003.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio3 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton3'.
wa_header-info = text-004.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio4 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton4'.
wa_header-info = text-005.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSE.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton5'.
wa_header-info = text-006.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ENDIF.
wa_header-typ = 'S'.
wa_header-key = 'Benutzer:'.
wa_header-info = sy-uname.
APPEND wa_header TO header_itab.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = header_itab.
ENDFORM.
* FORM alv_füllen *
FORM alv_fuellen .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = my_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
* i_grid_title = my_title
it_fieldcat = feldkatalog_itab
is_layout = gs_layout
* it_events = event_itab
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
* FORM layout_allg_build *
FORM layout_allg_build.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
ENDFORM.
hope someone can help me.
regards tobiashi,
i tried some of your ideas but none helped my.
so here's my complete code
maybe this is helpful.
*& Report z_cd_tool_awdimaiob
REPORT z_cd_tool_awdimaiob.
* G L O B A L I N T E R N A L T A B L E S
DATA: BEGIN OF itab OCCURS 100,
status TYPE dimaiobpar-zstatus,
rtyp TYPE dimaiobpar-zrtyp,
zahlweg TYPE dimaiobpar-ezawe_x,
a_status TYPE i,
a_rtyp TYPE i,
a_partner TYPE i,
a_vertraege TYPE i,
END OF itab .
* G L O B A L D A T A
DATA: ok_code LIKE sy-ucomm,
wa_test_tab LIKE dimaiobpar,
my_title TYPE lvc_title,
my_repid LIKE sy-repid.
TYPE-POOLS: slis.
DATA: feldkatalog_itab TYPE slis_t_fieldcat_alv,
wa_feldkatalog TYPE slis_fieldcat_alv,
event_itab TYPE slis_t_event,
header_itab TYPE slis_t_listheader,
gs_layout TYPE slis_layout_alv,
alv_event TYPE slis_alv_event,
wa_header TYPE slis_listheader.
DATA: t_tab LIKE dimaiobpar.
*selection-screen
SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test WITH FRAME TITLE text-010.
SELECT-OPTIONS: partner FOR t_tab-partner,
astatus FOR t_tab-zstatus.
SELECTION-SCREEN END OF BLOCK test.
*Radiobutton
SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test2 WITH FRAME TITLE text-020.
PARAMETERS: radio1 RADIOBUTTON GROUP test DEFAULT 'X',
radio2 RADIOBUTTON GROUP test,
radio3 RADIOBUTTON GROUP test,
radio4 RADIOBUTTON GROUP test,
radio5 RADIOBUTTON GROUP test.
SELECTION-SCREEN END OF BLOCK test2.
* S T A R T - O F - S E L E C T I O N.
START-OF-SELECTION.
* Select-Abfrage
PERFORM select_data.
*END-OF-SELECTION.
* Feldkatalog fuellen.
PERFORM feldkatalog_fuellen .
* Feldkatalog übergeben
PERFORM alv_feldkatalog.
* ALV-Event
perform alv_event.
* Layout bestimmen.
PERFORM layout_allg_build.
* header aufbau
PERFORM top_of_page.
SORT itab.
my_title = 'Auswertung Dimaiobpar'.
my_repid = sy-repid.
PERFORM exit_program.
END-OF-SELECTION.
* ALV mit daten füllen
PERFORM alv_fuellen.
* FORM alv_event *
FORM alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = event_itab.
READ TABLE event_itab
WITH KEY name = 'TOP_OF_PAGE'
INTO alv_event.
IF sy-subrc EQ 0.
MOVE 'TOP_OF_PAGE' TO alv_event-form.
APPEND alv_event TO event_itab.
ENDIF.
ENDFORM.
* FORM alv_feldkatalog *
FORM alv_feldkatalog.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = my_repid
i_internal_tabname = 'ITAB'
i_inclname = my_repid
* i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = feldkatalog_itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
* FORM header *
FORM top_of_page.
CLEAR wa_header.
wa_header-typ = 'H'.
* wa_header-key = 'ausw1'.
wa_header-info = text-001.
APPEND wa_header TO header_itab.
CLEAR wa_header.
IF radio1 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton1'.
wa_header-info = text-002.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio2 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton2'.
wa_header-info = text-003.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio3 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton3'.
wa_header-info = text-004.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSEIF radio4 = 'X'.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton4'.
wa_header-info = text-005.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ELSE.
wa_header-typ = 'S'.
wa_header-key = 'Radiobutton5'.
wa_header-info = text-006.
APPEND wa_header TO header_itab.
CLEAR wa_header.
ENDIF.
wa_header-typ = 'S'.
wa_header-key = 'Benutzer:'.
wa_header-info = sy-uname.
APPEND wa_header TO header_itab.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = header_itab.
REFRESH header_itab.
ENDFORM.
* FORM alv_füllen *
FORM alv_fuellen .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = my_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
* i_grid_title = my_title
it_fieldcat = feldkatalog_itab[]
is_layout = gs_layout
* it_events = event_itab
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
* FORM layout_allg_build *
FORM layout_allg_build.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.
ENDFORM.
* FORM feldkatalog_fuellen *
FORM feldkatalog_fuellen.
*Feldkatalog erstellen/füllen mit hilfe der if-schleife anhand des
*gewählten Radiobuttons
IF radio1 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STATUS'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RTYP'.
wa_feldkatalog-seltext_m = 'Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'A_RTYP'.
wa_feldkatalog-seltext_m = 'Anzahl Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio2 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RTYP'.
wa_feldkatalog-seltext_m = 'Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'A_STATUS'.
wa_feldkatalog-seltext_m = 'Anzahl Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio3 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STATUS'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RTYP'.
wa_feldkatalog-seltext_m = 'Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'A_VERTRAEGE'.
wa_feldkatalog-seltext_m = 'Anzahl Verträge'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio4 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STATUS'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RTYP'.
wa_feldkatalog-seltext_m = 'Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'A_PARTNER'.
wa_feldkatalog-seltext_m = 'Anzahl GPartner'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSE.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'STATUS'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'RTYP'.
wa_feldkatalog-seltext_m = 'Rechungstyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'ZAHLWEG'.
wa_feldkatalog-seltext_m = 'Zahlweg'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'A_PARTNER'.
wa_feldkatalog-seltext_m = 'Anzahl GPartner'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ENDIF.
ENDFORM.
* FORM select_data *
FORM select_data.
*select-abfrage mit hilfe der if-schleife, analog zum Feldkatalog
IF radio1 = 'X'.
* Radiobutton1: Rechungstypen je Satus
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT zrtyp ) AS a_rtyp
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus.
APPEND itab.
ENDSELECT.
ELSEIF radio2 = 'X'.
* Radiobutton2: Status je Rechungstyp.
SELECT
zrtyp AS rtyp
COUNT( DISTINCT zstatus ) AS a_status
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZRTYP
ORDER BY zrtyp.
APPEND itab.
ENDSELECT.
ELSEIF radio3 = 'X'.
* Radiobutton3: Anzahl Verträge je Status und Rtyp.
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT insobject ) AS a_vertraege
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus.
APPEND itab.
ENDSELECT.
ELSEIF radio4 ='X'.
* Radiobutton4: Anzahl GPartner je Status und RTyp.
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT partner ) AS a_partner
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus zrtyp.
APPEND itab.
ENDSELECT.
ELSE.
* Radiobutton5: Anzahl Kunden nach Zahlweg.
SELECT
zstatus AS status
zrtyp AS rtyp
ezawe_x AS zahlweg
COUNT( DISTINCT partner ) AS a_partner
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus AND
ezawe_x IN ('E', 'F', space)
GROUP BY ZSTATUS zrtyp EZAWE_X
ORDER BY zstatus zrtyp.
APPEND itab.
ENDSELECT.
ENDIF.
ENDFORM.
* FORM EXIT_PROGRAM *
FORM exit_program.
IF sy-ucomm = 'BACK' OR
sy-ucomm = 'EXIT' OR
sy-ucomm = 'CANCEL'.
LEAVE PROGRAM.
endif.
ENDFORM. -
hello all,
i've got a little problem with the output of an internal table with the ALV Grid.
i have made the declaration of my internal table (itab) with DATA: Begin of itab... and i have build my own fieldcatalog.
the output of the fieldcatalog is correct but i don't get the results of my itab shown.
it only shows me the numbers of lines in my itab but not the content.
for this im using 'REUSE_ALV_FIELDCATALOG_MERGE' and 'REUSE_ALV_GRID_DISPLAY'
*ALV-Grid
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'itab'
i_structure_name = 'itab'
i_client_never_display
i_inclname = sy-repid
CHANGING
ct_fieldcat = feldkatalog_itab
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
*ALV call
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = feldkatalog_itab
i_structure_name = 'itab'
it_events = event_itab
TABLES
t_outtab = itab[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
when i debug my programm the lines of the itab are filled.
thanks and regards
Ayse
REPORT z_test_auswertung.
G L O B A L I N T E R N A L T A B L E S
DATA: BEGIN OF itab OCCURS 100,
status TYPE dimaiobpar-zstatus,
rtyp TYPE dimaiobpar-zrtyp,
zahlweg TYPE dimaiobpar-ezawe_x,
a_status TYPE i,
a_rtyp TYPE i,
a_partner TYPE i,
a_vertraege TYPE i,
END OF itab .
G L O B A L D A T A
DATA: ok_code LIKE sy-ucomm,
wa_test_tab LIKE dimaiobpar,
my_title TYPE lvc_title.
TYPE-POOLS: slis.
DATA: feldkatalog_itab TYPE slis_t_fieldcat_alv,
wa_feldkatalog TYPE slis_fieldcat_alv,
event_itab TYPE slis_t_event,
header_itab TYPE slis_t_listheader,
wa_header TYPE slis_listheader.
DATA:
mycontainer TYPE scrfname VALUE 'BCALV_VARIANTS_0100_C1',
my_grid TYPE REF TO cl_gui_alv_grid,
my_custom_container TYPE REF TO cl_gui_custom_container.
DATA: t_tab LIKE dimaiobpar.
*selection-screen
SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test WITH FRAME TITLE text-010.
SELECT-OPTIONS: partner FOR t_tab-partner,
astatus FOR t_tab-zstatus.
SELECTION-SCREEN END OF BLOCK test.
*Radiobutton
SELECTION-SCREEN: SKIP, BEGIN OF BLOCK test2 WITH FRAME TITLE text-020.
PARAMETERS: radio1 RADIOBUTTON GROUP test DEFAULT 'X',
radio2 RADIOBUTTON GROUP test,
radio3 RADIOBUTTON GROUP test,
radio4 RADIOBUTTON GROUP test,
rafio5 RADIOBUTTON GROUP test.
SELECTION-SCREEN END OF BLOCK test2.
S T A R T - O F - S E L E C T I O N.
START-OF-SELECTION.
PERFORM select_data.
CALL SCREEN 100.
DATA ttab LIKE itab.
MOVE itab TO ttab.
Feldkatalog fuellen.
PERFORM feldkatalog_fuellen .
Feldkatalog übergeben
PERFORM alv_feldkatalog.
ALV mit daten füllen
PERFORM alv_füllen.
END-OF-SELECTION.
SORT itab.
my_title = 'Auswertung Dimaiobpar'.
PERFORM exit_program.
FORM alv_feldkatalog *
FORM alv_feldkatalog.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'ITAB[]'
i_structure_name = 'TTAB'
i_client_never_display
i_inclname = 'ITAB[]'
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = FELDKATALOG_ITAB
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
FORM alv_füllen *
FORM alv_füllen .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_grid_title = my_title
it_fieldcat = FELDKATALOG_ITAB
i_structure_name = 'ITAB'
it_events = event_itab
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
FORM EXIT_PROGRAM *
FORM exit_program.
CALL METHOD G_CUSTOM_CONTAINER->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH.
LEAVE PROGRAM.
ENDFORM.
FORM feldkatalog_fuellen *
FORM feldkatalog_fuellen.
IF radio1 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'status'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'rtyp'.
wa_feldkatalog-seltext_m = 'RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'a_rtyp'.
wa_feldkatalog-seltext_m = 'Anzahl RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio2 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'rtyp'.
wa_feldkatalog-seltext_m = 'RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'a_status'.
wa_feldkatalog-seltext_m = 'Anzahl Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio3 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'status'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'rtyp'.
wa_feldkatalog-seltext_m = 'RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'a_vertraege'.
wa_feldkatalog-seltext_m = 'Anzahl Vertraege'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSEIF radio4 = 'X'.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'status'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'rtyp'.
wa_feldkatalog-seltext_m = 'RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'a_gpartner'.
wa_feldkatalog-seltext_m = 'Anzahl GPartner'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ELSE.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'status'.
wa_feldkatalog-seltext_m = 'Status'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'rtyp'.
wa_feldkatalog-seltext_m = 'RTyp'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'zahlweg'.
wa_feldkatalog-seltext_m = 'Zahlweg'.
APPEND wa_feldkatalog TO feldkatalog_itab.
CLEAR wa_feldkatalog.
wa_feldkatalog-fieldname = 'a_gpartner'.
wa_feldkatalog-seltext_m = 'Anzahl GPartner'.
APPEND wa_feldkatalog TO feldkatalog_itab.
ENDIF.
ENDFORM.
FORM select_data *
FORM select_data.
IF radio1 = 'X' .
WRITE / 'Radiobutton1: Rechungstypen je Satus'.
WRITE / 'Status, Rtyp, Anzahl-Rtyp'.
ULINE.
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT zrtyp ) AS a_rtyp
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus.
APPEND itab.
WRITE: / itab.
ENDSELECT.
ELSEIF radio2 = 'X'.
WRITE / 'Radiobutton2: Status je Rechungstyp'.
WRITE /.
SELECT
zrtyp AS rtyp
COUNT( DISTINCT zstatus ) AS a_status
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZRTYP
ORDER BY zrtyp.
APPEND itab.
WRITE: / itab-rtyp, itab-a_status.
ENDSELECT.
ELSEIF radio3 = 'X'.
WRITE / 'Radiobutton3: Anzahl Verträge je Status und Rtyp'.
WRITE /.
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT insobject ) AS a_vertraege
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus.
APPEND itab.
WRITE: / itab-status, itab-rtyp, itab-a_vertraege.
ENDSELECT.
ELSEIF radio4 ='X'.
WRITE: / 'Radiobutton4: Anzahl GPartner je Status und RTyp'.
WRITE: /.
SELECT
zstatus AS status
zrtyp AS rtyp
COUNT( DISTINCT partner ) AS a_partner
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus
GROUP BY ZSTATUS zrtyp
ORDER BY zstatus zrtyp.
APPEND itab.
WRITE: / itab-status, itab-rtyp, itab-a_partner.
ENDSELECT.
ELSE.
WRITE / 'Radiobutton5: Anzahl Kunden nach Zahlweg'.
WRITE /.
SELECT
zstatus AS status
zrtyp AS rtyp
ezawe_x AS zahlweg
COUNT( DISTINCT partner ) AS a_partner
INTO CORRESPONDING FIELDS OF itab
FROM dimaiobpar
WHERE
insobject LIKE 'V%' AND
partner IN partner AND
zstatus IN astatus AND
ezawe_x IN ('E', 'F', space)
GROUP BY ZSTATUS zrtyp EZAWE_X
ORDER BY zstatus zrtyp.
APPEND itab.
WRITE: / itab-status, itab-rtyp, itab-zahlweg, itab-a_partner
ENDSELECT.
ENDIF.
APPEND itab.
ENDFORM=Hi,
Make itab into capital letters as below
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = feldkatalog_itab
i_structure_name = 'ITAB'
* it_events = event_itab
TABLES
t_outtab = itab[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
<b>Reward for helpful answers</b> -
Problem with READ Statement in the field routine of the Transformation
Hi,
I have problem with read statement with binary search in the field routine of the transformation.
read statement is working well when i was checked in the debugging mode, it's not working properly for the bulk load in the background. below are the steps i have implemented in my requirement.
1. I selected the record from the lookuo DSO into one internal table for all entried in source_packeage.
2.i have read same internal table in the field routine for each source_package entry and i am setting the flag for that field .
Code in the start routine
select source accno end_dt acctp from zcam_o11
into table it_zcam
for all entries in source_package
where source = source_package-source
and accno = source_package-accno.
if sy-subrc = 0.
delete it_zcam where acctp <> 3.
delete it_zcam where end_dt initial.
sort it_zcam by surce accno.
endif.
field routine code:
read table it_zcam with key source = source_package-source
accno = source_package-accno
binary search
transportin no fields.
if sy-subrc = 0.
RESULT = 'Y'.
else.
RESULT = 'N'.
endif.
this piece of code exist in the other model there its working fine.when comes to my code it's not working properly, but when i debug the transformation it's working fine for those accno.
the problem is when i do full load the code is not working properly and populating the wrong value in the RESULT field.
this field i am using in the report filter.
please let me know if anybody has the soluton or reason for this strage behaviour.
thanks,
Rahim.i suppose the below is not the actual code. active table of dso would be /bic/azcam_o1100...
1. is the key of zcam_o11 source and accno ?
2. you need to get the sortout of if endif (see code below)
select source accno end_dt acctp from zcam_o11
into table it_zcam
for all entries in source_package
where source = source_package-source
and accno = source_package-accno.
if sy-subrc = 0.
delete it_zcam where acctp 3.
delete it_zcam where end_dt initial.
endif.
sort it_zcam by surce accno.
field routine code:
read table it_zcam with key source = source_package-source
accno = source_package-accno
binary search
transportin no fields.
if sy-subrc = 0.
RESULT = 'Y'.
else.
RESULT = 'N'.
endif. -
Problem with an update page.
I have a problem with an update page on my website
Here's how it work
values are defualted in from the advert table - this works fine
I should then be able to change the fields and click on the update button
This works fine but ONLY when the O_year field is populated.
There doesn't seem to be anything special about the O_year field
I thought spry text validation would of been causing the issues, but I removed them and have the same problem.
For some reason the POST_MMupdate value is not being set to 'form4', which it is doing if O_year is set.
Please can someone have a look at this, code,
Also, is there a way of 'stepping through' dreamweaver code to debug it?
Thanks
Adam
$colname_Advert = "-1";
if (isset($_GET['advert_id'])) {
$colname_Advert = $_GET['advert_id'];
mysql_select_db($database_guitarswap_db, $guitarswap_db);
$query_Advert = sprintf("SELECT * FROM advert WHERE advert_id = %s", GetSQLValueString($colname_Advert, "int"));
$Advert = mysql_query($query_Advert, $guitarswap_db) or die(mysql_error());
$row_Advert = mysql_fetch_assoc($Advert);
$totalRows_Advert = mysql_num_rows($Advert);
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form4"))
//Сheck that we have a file
if((!empty($_FILES["PictureLocation"])) && ($_FILES['PictureLocation']['error'] == 0))
//Check if the file is JPEG image and it's size is less than 350Kb
$filename = basename($_FILES["PictureLocation"]["name"]);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "jpg") && ($_FILES["PictureLocation"]["type"] == "image/jpeg") &&
($_FILES["PictureLocation"]["size"] < 350000))
//Determine the path to which we want to save this file
$newname = dirname(__FILE__).'/upload/'.$filename;
//Check if the file with the same name is already exists on the server
if (!file_exists($newname))
//Attempt to move the uploaded file to it's new place
if ((move_uploaded_file($_FILES['PictureLocation']['tmp_name'],$newname)))
// echo "It's done! The file has been saved as: ".$newname;
else
// echo "Error: A problem occurred during file upload!";
else
// echo "Error: File ".$_FILES["PictureLocation"]["name"]." already exists";
else
// echo "Error: Only .jpg images under 350Kb are accepted for upload";
else
// echo "Error: No file uploaded";
$filename=$row_Advert['PictureLocation'];
// set default opentoalloffers
if (!isset($_POST['checkopentoalloffers']))
$_POST['checkopentoalloffers'] = 'n';
$updateSQL = sprintf("UPDATE advert SET PictureLocation=%s, O_Make=%s, O_Model=%s, O_Country=%s, O_Year=%s, O_Colour=%s, O_Body=%s, O_Neck=%s, O_Fingerboard=%s, O_Pickups=%s, `value`=%s, `condition`=%s, W_Make=%s, W_Model=%s, W_Country=%s, W_Year=%s, W_Colour=%s, W_Body=%s, W_Neck=%s, W_Fingerboard=%s, W_Pickups=%s, Comments=%s, opentoalloffers=%s, ChangeFlg = %s WHERE advert_id=%s",
GetSQLValueString($filename, "text"),
GetSQLValueString($_POST['O_Make'], "text"),
GetSQLValueString($_POST['O_Model'], "text"),
GetSQLValueString($_POST['O_Country'], "text"),
GetSQLValueString($_POST['O_Year'], "date"),
GetSQLValueString($_POST['O_Colour'], "text"),
GetSQLValueString($_POST['O_Body'], "text"),
GetSQLValueString($_POST['O_Neck'], "text"),
GetSQLValueString($_POST['O_Fingerboard'], "text"),
GetSQLValueString($_POST['O_Pickups'], "text"),
GetSQLValueString($_POST['value'], "int"),
GetSQLValueString($_POST['condition'], "text"),
GetSQLValueString($_POST['W_Make'], "text"),
GetSQLValueString($_POST['W_Model'], "text"),
GetSQLValueString($_POST['W_Country'], "text"),
GetSQLValueString($_POST['W_Year'], "date"),
GetSQLValueString($_POST['W_Colour'], "text"),
GetSQLValueString($_POST['W_Body'], "text"),
GetSQLValueString($_POST['W_Neck'], "text"),
GetSQLValueString($_POST['W_Fingerboard'], "text"),
GetSQLValueString($_POST['W_Pickups'], "text"),
GetSQLValueString($_POST['Comments'], "text"),
GetSQLValueString($_POST['checkopentoalloffers'], "text"),
GetSQLValueString('y', "text"),
GetSQLValueString($_POST['advert_id'], "int"));
mysql_select_db($database_guitarswap_db, $guitarswap_db);
$Result1 = mysql_query($updateSQL, $guitarswap_db) or die(mysql_error());
$updateGoTo = "Member2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
header(sprintf("Location: %s", $updateGoTo));
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="Layout3.css" rel="stylesheet" type="text/css" /><!--[if IE 5]>
<style type="text/css">
/* place css box model fixes for IE 5* in this conditional comment */
.twoColFixLtHdr #sidebar1 { width: 230px; }
</style>
<![endif]--><!--[if IE]>
<style type="text/css">
/* place css fixes for all versions of IE in this conditional comment */
.twoColFixLtHdr #sidebar1 { padding-top: 30px; }
.twoColFixLtHdr #mainContent { zoom: 1; }
/* the above proprietary zoom property gives IE the hasLayout it needs to avoid several bugs */
</style>
<![endif]-->
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-color: #FFF;
margin-left: 20px;
.twoColFixLtHdr #container #main3 #form1 div fieldset {
border: thin ridge #CCC;
-->
</style>
<script type="text/javascript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
//-->
</script>
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
</head>
<body class="twoColFixLtHdr">
<div id="container">
<div id="header">
<div id="Righty">
<ul id="MenuBar2" class="MenuBarHorizontal">
<li><a href="index.php">Search</a> </li>
<li><a href="Member2.php">Members</a></li>
</ul>
<p> </p>
</div>
<span id="LoginDiv">
<?php
if (isset($_SESSION['MM_Username']))
echo "hello ". $_SESSION['MM_Username']. "";
echo " <a href='Logout.php'>Log out</a> ";
else
echo "
<a href='Login.php'>Login</a> / <a href='Register.php'>Register</a>
?>
</a></span>
<div id="Middle">
<h1 align="center">GuitarSwap</h1>
</div>
</div>
<div id="sidebar1">
<h4>Members Area</h4>
<ul id="MenuBar1" class="MenuBarVertical">
<li><a href="Member2.php">My Adverts</a></li>
<li><a href="NewAdvert.php">Create new Advert</a></li>
<li><a href="UpdateUserDets.php">My Account</a></li>
</ul>
<h3> </h3>
</div>
<div id="mainContent">
<h4>Update Advert</h4>
<!-- end #mainContent -->
</div>
<!-- This clearing element should immediately follow the #mainContent div in order to force the #container div to contain all child floats -->
<div id="main3">
<div id="main">
<fieldset>
<legend>Please update advert details and confirm</legend>
<form action="<?php echo $editFormAction; ?>" enctype="multipart/form-data" method="post" name="form4" id="form4">
<input type="hidden" name="advert_id" value="<?php echo $row_Advert['advert_id']; ?>" />
<p></p>
<table width="650" align="center">
<tr valign="baseline">
<td width="17" rowspan="15" valign="middle" nowrap="nowrap"><?php echo "<img src='upload/" .$row_Advert['PictureLocation']."' width='64' height='180'/>" ?></td>
<td width="133" align="right" nowrap="nowrap"> </td>
<td width="240" align="center" bgcolor="#CCCCCC"><strong>Offered</strong></td>
<td width="240" align="center" bgcolor="#CCCCCC"><strong>Wanted</strong></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Make:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Make" type="text" value="<?php echo $row_Advert['O_Make']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Make" type="text" value="<?php echo $row_Advert['W_Make']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Model:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Model" type="text" value="<?php echo $row_Advert['O_Model']; ?>" size="30" maxlength="30" /></td>
<td bgcolor="#CCFFFF"><input name="W_Model" type="text" value="<?php echo $row_Advert['W_Model']; ?>" size="30" maxlength="30" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Country:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Country" type="text" value="<?php echo $row_Advert['O_Country']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Country" type="text" value="<?php echo $row_Advert['W_Country']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Year:</strong></td>
<td bgcolor="#CCFFCC"><span id="sprytextfield1">
<input name="O_Year" type="text" value="<?php echo $row_Advert['O_Year']; ?>" size="4" maxlength="4" />
<span class="textfieldInvalidFormatMsg">Invalid format.</span><span class="textfieldMinValueMsg">The entered value is less than the minimum required.</span><span class="textfieldMaxValueMsg">The entered value is greater than the maximum allowed.</span></span></td>
<td bgcolor="#CCFFFF"><span id="sprytextfield2">
<input name="W_Year" type="text" value="<?php echo $row_Advert['W_Year']; ?>" size="4" maxlength="4" />
<span class="textfieldInvalidFormatMsg">Invalid format.</span><span class="textfieldMinValueMsg">The entered value is less than the minimum required.</span><span class="textfieldMaxValueMsg">The entered value is greater than the maximum allowed.</span></span></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Colour:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Colour" type="text" value="<?php echo $row_Advert['O_Colour']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Colour" type="text" value="<?php echo $row_Advert['W_Colour']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Body:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Body" type="text" value="<?php echo $row_Advert['O_Body']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Body" type="text" value="<?php echo $row_Advert['W_Body']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Neck:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Neck" type="text" value="<?php echo $row_Advert['O_Neck']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Neck" type="text" value="<?php echo $row_Advert['W_Neck']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Fingerboard:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Fingerboard" type="text" value="<?php echo $row_Advert['O_Fingerboard']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Fingerboard" type="text" value="<?php echo $row_Advert['W_Fingerboard']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Pickups:</strong></td>
<td bgcolor="#CCFFCC"><input name="O_Pickups" type="text" value="<?php echo $row_Advert['O_Pickups']; ?>" size="30" maxlength="15" /></td>
<td bgcolor="#CCFFFF"><input name="W_Pickups" type="text" value="<?php echo $row_Advert['W_Pickups']; ?>" size="30" maxlength="15" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Condition:</strong></td>
<td bgcolor="#CCFFCC"><label for="condition">
<select name="condition" size="1" id="condition">
<option selected="selected" value="" <?php if (!(strcmp("", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>---select---</option>
<option value="immaculate" <?php if (!(strcmp("immaculate", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>immaculate</option>
<option value="excellent" <?php if (!(strcmp("excellent", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>excellent</option>
<option value="good" <?php if (!(strcmp("good", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>good</option>
<option value="well used" <?php if (!(strcmp("well used", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>well used</option>
<option value="poor" <?php if (!(strcmp("poor", $row_Advert['condition']))) {echo "selected=\"selected\"";} ?>>poor</option>
</select>
</label></td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Value:</strong></td>
<td bgcolor="#CCFFCC"><span id="sprytextfield3">
<input name="value" type="text" value="<?php echo $row_Advert['value']; ?>" size="11" maxlength="11" />
<span class="textfieldInvalidFormatMsg">Invalid format.</span></span></td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr valign="baseline">
<td align="right" valign="top" nowrap="nowrap"><strong>Comments:</strong></td>
<td bgcolor="#CCFFCC"><textarea name="Comments" cols="25" rows="3"><?php echo $row_Advert['Comments']; ?></textarea></td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><strong>Picture location</strong></td>
<td bgcolor="#CCFFCC"><label for="checkopentoalloffers"></label> <input type="file" name="PictureLocation" value="<?php echo $row_Advert['PictureLocation']; ?>" size="20" /></td>
<td bgcolor="#FFFFFF"> </td>
</tr>
<tr valign="baseline">
<td height="26" align="right" nowrap="nowrap"><strong>Open to all offers:</strong></td>
<td bgcolor="#CCFFCC"><input name="checkopentoalloffers" type="checkbox" id="checkopentoalloffers" value="y" <?php if (!(strcmp($row_Advert['opentoalloffers'],"y"))) {echo "checked=\"checked\"";} ?> /></td>
<td bgcolor="#FFFFFF"> </td>
</tr>
</table>
<p> </p>
<div id="submitdiv">
<input type="hidden" name="MM_update" value="form4" />
<input name="submit button" type="submit" id="submit button" value="Update Advert" />
</div>
<div id="exitdiv">
<label for="button15"></label>
<input name="button" type="button" id="button15" onclick="MM_goToURL('parent','Member2.php');return document.MM_returnValue" value="Exit" />
<label for="button16"></label>
</div>
<p> </p>
</form>
</fieldset>
<script type="text/javascript">
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "integer", {validateOn:["blur"], minValue:1900, maxValue:2010, isRequired:false});
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "integer", {validateOn:["blur"], minValue:1900, maxValue:2010});
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "integer", {minValue:1900, maxValue:2010, validateOn:["blur"], isRequired:false});
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "currency", {validateOn:["blur"], isRequired:false});
</script>
<br class="clearfloat" />
<!-- end #container -->
</div></div></div>
<script type="text/javascript">
<!--
var = new Spry.Widget.MenuBar("", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
</html>
<?php
mysql_free_result($Advert);
if (is_resource($Result1)) mysql_free_result($Result1);
?>Please note,
Removing I investigated spry a little more, in the end I settled for removing spry altogether,
Maybe it was because the text field in a $GET (for the default) AND a $PUT (for the update) -
Problem with iterator in tableview
Hi, Im having a problem with an iterator in a tableview. Sometime ago I use an iterator in a BSP with flow logic, I created the class fill the methods GET_COLUMN_DEFINITIONS and RENDER_CELL_START. And worked fine.
Now, Im working in another BSP and this time I wanted to use MVC, so I have been reading but cant figure it out what Im missing out.
In the controller of my page I add the Interface IF_HTMLB_TABLEVIEW_ITERATOR
I ridefine the methods GET_COLUMN_DEFINITIONS and RENDER_CELL_START (I think that you dont have to redifine GET_COLUMN_DEFINITIONS but did it anyway just in case).
This is my RENDER_CELL_START
IF NOT ( p_column_key = 'ICON' ).
RETURN.
ENDIF.
FIELD-SYMBOLS: <row> TYPE ANY, <col> TYPE ANY.
DATA: ti_results TYPE ZBSPREP_VEND_T,
wa_results TYPE ZBSPREP_VEND.
ASSIGN p_row_data_ref->* TO <row>.
ASSIGN COMPONENT p_column_key OF STRUCTURE <row> TO <col>.
wa_results = <col>.
DATA: html_bee TYPE REF TO CL_BSP_BEE_HTML.
CREATE OBJECT html_bee.
LOOP AT it_results INTO wa_results.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_GREEN_LIGHT' ).
ENDLOOP.
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id src = icon ).
In my table view the column ICON doesnt show anything and the rare part is if I put breakpoint in the method and execute the page doesnt stop.
So I dont know if Im missing something.
My tableview layout is this:
<htmlb:tableView id = "Monitor"
selectionMode = "SINGLESELECT"
onRowSelection = "rowSelection"
table = "<%= it_results %>"
iterator = "<%= iterator %>"
design = "ALTERNATING"
filter = "SERVER"
sort = "SERVER"
headerVisible = "FALSE"
footerVisible = "FALSE">
I declare a attribute iterator TYPE IF_HTMLB_TABLEVIEW_ITERATOR.
Someone could give a hand ?Solved, I forget to set the attribute of the view in the REQUEST Method.
result_view->set_attribute( name = 'iterator' value = me ). -
Facing problem with logo in the PDF attachment when sending mail...
hi friends,
i'm facing problem with logo in the PDF attachment to the mail.
my requirement:
1. enter spool number and mail id in the selection screen.
process:
1. now the program will fetch the spool data and converts it to PDF.
2. but when i'm trying to send mail with this PDF as attachment.
when i open the PDF file from the mail, logo is not coming properly (looks disturbed).
can anyone help me how to resolve this issue...
thanks in advance, murashali.hi dinakar, thanks for your mail...
logo looks good in spool/script/smartform.
even it look good when i download this spool to pdf and to the presentation server as pdf file.
i'm using CONVERT_OTFSPOOLJOB_2_PDF.
when i used CONVERT_ABAPSPOOLJOB_2_PDF, is gives a msg - 'spool number not found'.
here i'm using folloing code to pass pdf to the function module: SO_NEW_DOCUMENT_ATT_SEND_API1.
code:
Transfer the 132-long strings to 255-long strings
lt_mtab_pdf[] = pdf[].
LOOP AT lt_mtab_pdf INTO lwa_mtab_pdf.
TRANSLATE lwa_mtab_pdf USING ' ~'.
CONCATENATE lv_gd_buffer lwa_mtab_pdf INTO lv_gd_buffer.
CLEAR lwa_mtab_pdf.
ENDLOOP.
TRANSLATE lv_gd_buffer USING '~ '.
DO.
lwa_mess_att = lv_gd_buffer.
APPEND lwa_mess_att TO lt_mess_att.
CLEAR lwa_mess_att.
SHIFT lv_gd_buffer LEFT BY 255 PLACES.
IF lv_gd_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
NOTE: problem i believe is with ''. i'm getting this tilt symbol () in my pdf internal table. here in the above code the line TRANSLATE lv_gd_buffer USING '~ ' is changing the existing tilt to space. so my logo is getting disturbed.
even i tried with REPLACE this tilt with other char, but it doent work.
can you give any idea... -
Problem with DATE_CONVERT_TO_FACTORYDATE' FM
Hi,
I am experiencing problem with DATE_CONVERT_TO_FACTORYDATE' FM. It is throwing 'DATE_AFTER_RANGE' exception. This error is throwing for the 09/10/2007(mm/dd/yyyy) date only. This factory calendar is defined from 1990 to 2010 and 09/10/2007 is a working day.
Could you please let me know why the FM is throwing the DATE_AFTER_RANGE' exception even the date is within the defined periods of factory calendar.
Points will be awarded for the solution
Thanks in Advance,
Chandra Mohan VempatiHi,
i try it like this:
DATA: DATE LIKE SCAL-DATE.
DATA: DATE_NEW LIKE SCAL-DATE.
DATA: FACDATE LIKE SCAL-FACDATE.
DATA: INDICATOR LIKE SCAL-INDICATOR.
DATE = SY-DATUM.
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
CORRECT_OPTION = '+'
DATE = DATE
FACTORY_CALENDAR_ID = 'ZO'
IMPORTING
DATE = DATE_NEW
FACTORYDATE = FACDATE
WORKINGDAY_INDICATOR = INDICATOR
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
CORRECT_OPTION_INVALID = 2
DATE_AFTER_RANGE = 3
DATE_BEFORE_RANGE = 4
DATE_INVALID = 5
FACTORY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
IF SY-SUBRC <> 0. WRITE: / SY-SUBRC. EXIT. ENDIF.
WRITE: / DATE_NEW, FACDATE, INDICATOR.
<b>DATE = '20071009'.</b>
CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
EXPORTING
CORRECT_OPTION = '+'
DATE = DATE
FACTORY_CALENDAR_ID = 'ZO'
IMPORTING
DATE = DATE_NEW
FACTORYDATE = FACDATE
WORKINGDAY_INDICATOR = INDICATOR
EXCEPTIONS
CALENDAR_BUFFER_NOT_LOADABLE = 1
CORRECT_OPTION_INVALID = 2
DATE_AFTER_RANGE = 3
DATE_BEFORE_RANGE = 4
DATE_INVALID = 5
FACTORY_CALENDAR_NOT_FOUND = 6
OTHERS = 7.
IF SY-SUBRC <> 0. WRITE: / SY-SUBRC. EXIT. ENDIF.
WRITE: / DATE_NEW, FACDATE, INDICATOR.
Perhaps you do a mistake in filling the value of date
Regards, Dieter -
Problem with checkbox in the selection screen
Hi guys,
I have a problem with the check box in the selection screen.When i select a check box then a field in the selection screen should be enabled for entering a value.Again if i unselect the checkbox then the field should be disabled for entering a value.I have written the code in at selection-screen output.
The problem is when i select the check box ,the field is not enabled.But when i press enter after selecting the checkbox then the field is enabled for input.It is the same when i unselect the checkbox,after i press enter only the field is getting disabled.What could be the problem.Any suggestions please?
Thanks.Hi d p
Please try this code . I think this code have some way that you would like.
REPORT zdownload_to_application_server.
TABLES : caufvd, jest.
I N C L U D E P R O G R A M *
*INCLUDE znrpstnd.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.
PARAMETERS: p_outb RADIOBUTTON GROUP g1 USER-COMMAND outb DEFAULT 'X' ,
p_inb RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS : p_werks LIKE caufvd-werks MODIF ID a. " Plant "OBLIGATORY
SELECT-OPTIONS : s_auart FOR caufvd-auart MODIF ID a, " Order Type
s_aufnr FOR caufvd-aufnr MODIF ID a. " Order number
PARAMETERS: p_path TYPE string DEFAULT 'C:\SchedulerInterface-OutboundTextFile\' MODIF ID a,
p_actual AS CHECKBOX MODIF ID a. " Transfer Actual
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.
PARAMETERS : p_werks2 LIKE caufvd-werks MODIF ID b, " Plant "OBLIGATORY
p_path2 TYPE string DEFAULT 'C:\SchedulerInterface-InboundTextFile\' MODIF ID b,
p_path3 TYPE string DEFAULT 'C:\SchedulerInterface-InboundTextFile\' MODIF ID b,
p_sessio TYPE apqi-groupid MODIF ID b. " BDC Session
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT.
IF p_outb EQ 'X'. " Outbound --> Hide inbound
LOOP AT SCREEN.
"IF screen-name = '%BT02011_BLOCK_1000'.
IF screen-group2 = 'BLK'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'A'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'B'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
"IF screen-name = '%BT01004_BLOCK_1000'.
IF screen-group3 = 'BLK'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'A'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'B'.
screen-active = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path2.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = 'C:\SchedulerInterface-InboundTextFile\'
mask = ',Text Files,.txt,All files,.*.'
IMPORTING
filename = p_path2
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path3.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = 'C:\SchedulerInterface-InboundTextFile\'
mask = ',Text Files,.txt,All files,.*.'
IMPORTING
filename = p_path3
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
TOP-OF-PAGE.
START-OF-SELECTION.
Regards
Wiboon -
Some problems with 3 counters on PCI 6601
Good afternoon,
after a lot of time i'm here yet.
The problem with the PCI 6601 aren't finished in sense that i have tried a lot of solution but my sistem crashed after some acquisition.
The code that had write on Visual Basic 6 are :
'Inizializzo la scheda PCI-6601
Public Sub init_6601(NumSens As Integer)
Dim edge As DAQmxEdge1
On Error GoTo ErrorHandler
MyChannel(NumSens) = "My Channel" & NumSens 'Definisce il nome per il canale (optional)
'Creo i tre task che servono per il funzionamento del programma
DAQmxErrChk DAQmxCreateTask("", taskHandle(NumSens))
'Questa funzione serve a creare il canale dalla quale poi viene effettuata la misura
If (NumSens = 0) Then
DAQmxErrChk DAQmxCreateCIPulseWidthChan(taskHandle(NumSens), "Dev1/ctr1", MyChannel(NumSens), 0.00001, _
0.0009, DAQmx_Val_TimeUnits3_Seconds, DAQmx_Val_Edge1_Rising, "") ' DAQmx_Val_TimeUnits3_Ticks, DAQmx_Val_Edge1_Rising, "")
ElseIf (NumSens = 1) Then
DAQmxErrChk DAQmxCreateCIPulseWidthChan(taskHandle(NumSens), "Dev1/ctr2", MyChannel(NumSens), 0.00001, _
0.0009, DAQmx_Val_TimeUnits3_Ticks, DAQmx_Val_Edge1_Rising, "") 'DAQmx_Val_TimeUnits3_Seconds, DAQmx_Val_Edge1_Rising, "")
Else
DAQmxErrChk DAQmxCreateCIPulseWidthChan(taskHandle(NumSens), "Dev1/ctr3", MyChannel(NumSens), 0.00001, _
0.0009, DAQmx_Val_TimeUnits3_Seconds, DAQmx_Val_Edge1_Rising, "")
End If
DAQmxErrChk DAQmxSetReadReadAllAvailSamp(taskHandle(NumSens), False)
'Con questa funzione si sincronizza il timebase della scheda con il segnale da leggere
DAQmxErrChk DAQmxSetCIPulseWidthDigSyncEnable(taskHandle(NumSens), MyChannel(NumSens), True)
'DAQmxErrChk DAQmxSetReadOverWrite(taskHandle(NumSens), DAQmx_Val_OverwriteMode1_OverwriteUnreadSamps)
'DAQmxErrChk DAQmxCfgSampClkTiming(taskHandle(NumSens), "", 100000, DAQmx_Val_Rising, DAQmx_Val_AcquisitionType_ContSamps, 10000)
'provare queste due funzioni per aspettare che il campione sia realmente disponibile.
'La seconda èdovrebbe essere quella che da il migliore compromesso tra uso CPU e velocità.
'DAQmxErrChk DAQmxSetReadWaitMode(taskHandle(NumSens), DAQmx_Val_WaitMode_WaitForInterrupt)
'DAQmxErrChk DAQmxSetReadWaitMode(taskHandle(NumSens), DAQmx_Val_WaitMode_Yield)
'Setta il numero di campioni da acquisire ogni volta che va in lettura e
'il modo di lettura. Si è impostato "contsamps" per avere la lettura continua
'La dimensione del buffer è determinata da quel 10000 che va messo così secondo le specifiche del daqmx
DAQmxErrChk DAQmxCfgImplicitTiming(taskHandle(NumSens), DAQmx_Val_AcquisitionType_ContSamps, 10000) 'DAQmx_Val_AcquisitionType_ContSamps
'La scheda NI PCI 6601 ha soltanto un canale per il DMA (Direct Memory Access) quindi non riesco a leggere
'contemporaneamente tre task per volta. Quindi devo attivare un meccanismo diverso per la lettura
'basato sugli interrupt, ogni volta che ho una lettura automaticamente leggo il dato
DAQmxErrChk DAQmxSetCIDataXferMech(taskHandle(NumSens), MyChannel(NumSens), DAQmx_Val_DataTransferMechanism_Interrupts)
'La funzione di seguito serve semplicemente per leggere il campione più recente generato
DAQmxErrChk DAQmxSetReadRelativeTo(taskHandle(NumSens), DAQmx_Val_ReadRelativeTo_MostRecentSamp)
'La seguente funzione è complementare ad una utilizzata nell'inizializzazione e serve per impostare la lettura
'sull'ultimo campione generato
DAQmxErrChk DAQmxSetReadOffset(taskHandle(NumSens), -1)
DAQmxStartTask taskHandle(NumSens)
taskIsRunning(NumSens) = True
Exit Sub
ErrorHandler:
For i = 0 To 2
If taskIsRunning(i) = True Then
DAQmxStopTask taskHandle(i)
DAQmxClearTask taskHandle(i)
taskIsRunning(i) = False
End If
Next i
MsgBox "Error: " & Err.number & " " & Err.Description, , "Error"
End Sub
For the reading i use :
DAQmxErrChk DAQmxReadCounterF64(taskHandle(NumSens), -1, 0.5, temp(NumSens, 0), 10000, ReadSamp(NumSens), ByVal &O0)
Well, my problem are very simple, I want an continuos acquisition on three channel and the input signal's frequency that i have to measure is 1 kHz .
when i try to keep 2 channel after some cycles appears the error -200141 (buffer overwriting). Why?
The read function is called some times every ms and evry time keep out an different value, even if that are impossible because the input signal is at 1 kHz, and why the buffer fill up? What is wrong in my code?
Thanks in advance for your help
Have a nice day!!
Igor Piero PratoHI Igor84,
Error 200141 occurs when the data acquisition device acquires data faster than the computer can read it from the FIFO (first-in-first-out) input buffer.
You can see this document:
Error 200141 Occurs When Doing Buffered Event Counting
http://digital.ni.com/public.nsf/allkb/83656593DCF1FB0F862570B6004D7222?OpenDocument
and this forum :
Buffer Overflow -200141
http://forums.ni.com/t5/Measurement-Studio-for-VC/Buffer-Overflow-200141/m-p/607234
I hope that these links can help you.
Regards
Maybe you are looking for
-
Creative Cloud Packager fails when downloading Media Encoder 7.2.2 update
Hi all, I am wondering if anyone else is seeing this. I am attempting to use CCP 1.4 (Macintosh platform) to build a package for deployment to the Macs in our department. It is failing, specifically, when trying to download the Adobe Media Encoder 7.
-
Raw LUN access from guest LDOM
Hi, Is it possible to have raw access to LUNs from guest LDOM ? Scenario is - 2 mpxio HBAs conected to control domain, 20 LUNs presented, 10 for ZFS filesystems inside LDOMs and 10 with raw access for HORCM operations inside LDOMs for switching TrueC
-
'Description' info not showing up in itunes u store
We've uploaded an m4v that has its own invidual artwork and description metadata that I put in 'Comments' and also in 'Description' under 'Video' (when you do 'get info' on the track in my library). Once in the store, only the course artwork is showi
-
Error will not let me connect to my web service. adobe flash 4.7 (trial)
Good afternoon, I want to know why I can not connect to the service web service in adobe flex 4.7 (trial mode), do not know if that's why. I need your help. thank you, there is nothing more, do not charge anything.
-
Safari did something I've never seen before
This is regarding my bookmarks. I went to click on a bookmark and my bookmark got deleted and there was this little dust cloud animation when I clicked. Nothing bad happened. I just had to go make another bookmark but I have never seen this happen be