Count field using fields at another tables
Hi. I have invoice and deliveries:
Create table Invoices (
InvoiceID number primary key,
OrganizationName varchar2(30),
InvoiceDate date,
TotalPrice money
Create table Deliveries (
InvoiceID number,
ProductName varchar2(30),
ProductPrice money,
Amount number,
Second table has information about products with in invoice.
I would like not to count all Products:
Select InvoiseID ,COUNT(ProductPrice*Amount) as "Total invoice Price"
From somewhere
Where something has the same InvoiceID
Group by invoiceID
I want it to count automaticlly and put it in TotalPrice field. How can I do it?
some notes...
Create or replace Procedure CountInvoiceSums IS
begin
cursor c1 is
select *
from Invoices;
records number;
records=(select COUNT(*) from Invoices);
invoiceN varchar2(5);
for j 1..records
LOOP
--get invoice name:
invoiceN=
--change invoice Total price for
(select SUM(ProductPrice*Amount)
from Products p
where p.INVOICENAME=invoiceN)
END LOOP
end;
--=========================================
Create or replace trigger InvoiceTotalPrice
after update of ProductPrice on Products
call CountInvoiceSums;
Am I on the right way? If I am, I have 2 questions:
1)how to edit field in j record? delete old the add new?
2)how to get field in j record?
Thanks in advance.
P.S. please just advice not make for me, i want to lean it myself.
Similar Messages
-
Search help from one field used to populate another on subscreen.
I have a subscreen with 2 fields; Plant & Batch. Search help MCH1F displays batches for plants. When a batch for a plant is selected in the search help for the batch field, I want to populate the plant field in addition to the batch. The batch number comes back from the search help selection, but I need to get the plant associated with that batch just selected and populate the subscreen plant field. SET/GET doesn't work either in the screen field setup or abap flow logic. Any tips would be appreciated. Thanks.
Hi Kurt,
i think that way its not possible but the closest way is
i HAVE TWO TABLES
ZPHY
ZPROC
I HAVE SCREEN IN WHICH I HAVE TO GET VALUE FOR PHY BASED ON ID.
AND FOR OTHER FIELD IN THE SCREEN I HAVE PROC BASED ON THE ID I USED TO GET PHY AND FOR THE SAME ID I AHVE MULTIPLE PROC AND I HAVE SELECT ONE OF THOSE , HERE WHEN YOU PRESS F4 IT WILL GIVE ALL THE PROC ASSOCIATED TO
ID THATI USED IN THE SELECTION OF PHY.
AND I THINK YOURS IS THE SAME CASE RIGHT.
FIRST GET
process on value-request.
FIELD zabc-def MODULE VALUE_REQUEST_PHYACT.
FIELD zabc-proc MODULE VALUE_REQUEST_PROC.
MODULE VALUE_REQUEST_PHYACT INPUT.
DATA: progname TYPE sy-repid,
dynnum TYPE sy-dynnr.
CLEAR zabc.
CLEAR : zabc-def, zabc-id, zabc-proc,
zabc-ZSHECPROC.
CLEAR FINAL.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'ZPHY'
FIELDNAME = 'def'
SEARCHHELP = 'ZPHY'
SHLPPARAM = ' '
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = ' '
STEPL = 0
VALUE = ' '
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
SUPPRESS_RECORDLIST = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
TABLES
RETURN_TAB = IT_RETURN4
EXCEPTIONS
FIELD_NOT_FOUND = 1
NO_HELP_FOR_FIELD = 2
INCONSISTENT_HELP = 3
NO_VALUES_FOUND = 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.
read table it_return4 index 1.
zabc-def = it_return4-fieldval.
select single id into zabc-id FROM ZPHY
WHERE def = zabc-def.
FINAL-def = zabc-def.
FINAL-id = zabc-id.
HERE BASED ON ID I AM RETRIEVING DEF FIELD ,THIS IS FROM SEARCH HELP USING SE11.
AND FOR THE SAME ID I HAVE TO GET PROC FIELD FROM ANOTHER TABLE
ENDMODULE. " VALUE_REQUEST_PHYACT INPUT
MODULE VALUE_REQUEST_PROC INPUT.
DATA : SERVICE LIKE zabc-id.
select single id into SERVICE FROM ZPHY
WHERE def = zabc-def.
SELECT * INTO TABLE ITAB_TEST4 FROM ZPROC
WHERE id = SERVICE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'proc'
PVALKEY = ' '
DYNPPROG = ' '
DYNPNR = ' '
DYNPROFIELD = ' '
STEPL = 0
WINDOW_TITLE = 'PROCEDURE'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
TABLES
VALUE_TAB = ITAB_TEST4
FIELD_TAB =
RETURN_TAB = IT_RETURN4
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 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 sy-subrc = 0.
clear itab_TEST4.
read table it_return4 index 1.
zabc-proc = it_return4-fieldval.
read table itab_TEST4 with key id = itab_details-def
itab_zMOR-def = itab_details-def.
itab_zMOR-zzfname = itab_details-zzfname.
endif.
SELECT SINGLE ZSHECPROC INTO zabc-ZSHECPROC FROM ZPROC
WHERE proc = zabc-proc.
FINAL-proc = zabc-proc.
final-zshecproc = zabc-zshecproc.
*********AGAIN THIS IS NOT THE SEARCH HELP FROM SE11
ENDMODULE. " VALUE_REQUEST_PROC INPUT
hope this helps
Thanks -
Modify DB by single field using Field Symbol
Hi,
please help me ,actually i have not use the field symbol in any object. i have one requirement ,i have to modify the DB by field STATUS using Field symbol ,
I am sending u my code so please help me how can i modify DB using field symbol..
gw_msg3_status1 = k_status1 .
LOOP AT gi_msg3 INTO gs_msg3.
gs_msg3-status = gw_msg3_status1 .
gs_msg3-issue = lw_issuno.
MODIFY gi_msg3 FROM gs_msg3 TRANSPORTING status.
MODIFY gi_msg3 INDEX sy-tabix FROM gs_msg3 TRANSPORTING issue status.
ENDLOOP.
Thanks & Regards,
Meenakshiperform dboperation_table using 'SET' 'BIRTHDT' '=' <fs>.
perform dboperation_table using 'WHERE' 'PARTNER' '=' <fs>
perform dboperation_update using 'BUT000'.
form dboperation_table
using p_type
p_var1
p_var2
p_var3.
data: t_l type cmst_str_data.
data: d_cx_root type ref to cx_root,
d_text type string.
try.
clear t_l.
if p_var3 is not initial.
t_l = p_var3.
condense t_l.
concatenate '''' t_l '''' into t_l.
endif.
concatenate p_var1 p_var2 t_l into t_l
separated by space.
case p_type.
when 'SET'. append t_l to g_s_t.
when 'WHERE'. append t_l to g_w_t.
endcase.
catch cx_root into d_cx_root.
d_text = d_cx_root->get_text( ).
message a398(00) with d_text.
endtry.
endform. "DBOPERATION_table
form dboperation_update
using p_tabname type zdboperation-tabname.
data: tabname type bus_table.
data: d_cx_root type ref to cx_root,
d_text type string.
try.
tabname-tabname = p_tabname.
call function 'ZDBOPERATION_UPDATE'
in update task
exporting
tabname = tabname
tables
where_table = g_w_t
set_table = g_s_t.
catch cx_root into d_cx_root.
d_text = d_cx_root->get_text( ).
message a398(00) with d_text.
endtry.
endform. "DBOPERATION_update
Hope it will help you.
Regards,
Madan. -
Updating a field from info from another table
I am trying to update a field in a table by the data from another lookup table. These tables have to be linked by two columns, not just one. It seems like I have to use a sub query to extract data from the lookup table. I am unable to get a correct syntax for the SQL statements.
Does anyone has any ideas??UPDATE table_B t2 SET t2.col1 = (SELECT t1.col1 FROM table_A t1 WHERE t1.col2 = t2.col2 AND t1.col3 = t2.col3);
table_B is the table whose col1 needs to be updated with col1 of table_A. The join conditions are two (with col2 and col3)
Hope this is what you are looking for!!
Cheers
r@m@ -
Transfer a binary file stored in a table field in oracle to another table different schema in oracle
I would like to know if it is possible to use ssis to transfer a binary file of a datatype of long raw in a field in one table in oracle to a new table in a different schema of a datatype blob in oracle? The binary file is a Crystal reports executable
which is used in a application that I support. I are trying to consolidate data fields over many schemas into one main schema to simplify the support issues.Hi r_peterser,
SQL Server Integration Services maps DT_IMAGE data type to LONG RAW and BLOB in Oracle. So, you can directly use an OLE DB Source or Oracle Source adapter to extract the LONG RAW column from the Oracle database, and then load the data to the BLOB column
of the Oracle table through an OLE DB Destination or Oracle Destination adapter.
Reference:
http://technet.microsoft.com/en-us/library/ms141036.aspx
Regards,
Mike Yin
If you have any feedback on our support, please click
here
Mike Yin
TechNet Community Support -
How to display the fields using field catelog in ALV Report
Hi,
I have rquiremrnt in ALV report.I would need to add the new fileld in the ALV output screen.I have added the field but its appearing in the layout set but not directly displaying in the output screen.
I have written the below logic for field catelog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'LOGGR'.
wa_fieldcatalog-ref_tabname = 'MARC'.
wa_fieldcatalog-col_pos = l_pos.
wa_fieldcatalog-outputlen = 13.
wa_fieldcatalog-seltext_s = 'Log. group'.
wa_fieldcatalog-seltext_m = 'Logistics group'.
wa_fieldcatalog-seltext_l = 'Log. handling group'.
wa_fieldcatalog-reptext_ddic = 'Log. handling group'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
l_pos = l_pos + 1.
Please let me know why the added field was not displaying automaticaly in the output screen.
Regards,
Reddyhi,
try this
clear wa_fieldcatalog.
wa_fieldcat-tabname = 'ITAB' ( give the internal table which has the field LOGGR)
wa_fieldcatalog-fieldname = 'LOGGR'.
wa_fieldcatalog-ref_tabname = 'MARC'.
wa_fieldcatalog-col_pos = l_pos.
wa_fieldcatalog-outputlen = 13.
wa_fieldcatalog-seltext_s = 'Log. group'.
wa_fieldcatalog-seltext_m = 'Logistics group'.
wa_fieldcatalog-seltext_l = 'Log. handling group'.
wa_fieldcatalog-reptext_ddic = 'Log. handling group'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
l_pos = l_pos + 1. -
Hello experts,
I have added one field using append structure in table MARC. I want to updated this field usnign BAPI_MATERIAL_SAVEDATA. can anybody tell me the procedure to do that?
Thanks in advance.Hello,
Check the documentation of the function module BAPI_MATERIAL_SAVEDATA. There is a parameter in the FM - EXTENSIONIN where in new fields added to the table can be used to be updated.
The documentation of that parameters tells you how this can be achieved.
Create 2 structures of the type BAPI_TE_MARA and BAPI_TE_MARAX
Now assign the field structure of the workarea of type BAPIPAREX. Assume gs_extensionin is of type BAPIPAREX and gs_bapi_te_mara is of type BAPI_TE_MARA (this should have the fields that have been added in the table)
gs_extensionin-structure = 'BAPI_TE_MARA'.
gs_extensionin-valuepart+0(18) = gs_bapi_te_mara-matnr.
gs_extensionin-valuepart+18(length of the new field) = ga_bapi_te_mara-<new field added in the structure>.
append gs_extensionin to gt_extensionin.
gs_extensioninx-structure = 'BAPI_TE_MARAX'.
gs_extensioninx-valuepart+0(18) = gs_bapi_te_mara-matnr.
gs_extensioninx-valuepart+18(1) = 'X'..
append gs_extensioninx to gt_extensioninx.
Now pass these tables gt_extensionin and gt_extensionx to the parameters extensionin and extensioninx of the function module BAPI_MATERIAL_SAVEDATA.
Also try searching SDN using Extending BAPI's
Hope this will help in solving your query.
Regards,
Sachin -
How to report texts - using infoset or another way?
I have a requirement to report long text fields in EHS incidents - such as an incident "Description of Events" and "Immedaite Actions". I have tried creating an infoset with the incident table EHHSSD_INC_BINFA joined to /BOBF/D_TXCCON, with an additional field to extract part of the TEXT field, but am getting the error ""/BOBF/D_TXCCON" must be a flat structure. You cannot use internal tables, strings, references, or structures as components. -".
How can I report on this TEXT field using infoset or another method?
Thank you,
SteveHi Steve,
Just wanted to check if you are able to resolve this issue? i am in the same boat and wanted to check if you have any solution.
Thanks -
How to populate one internal table from another using field symbols
Hi Gurus,
I have a problem. I have to populate one internal table (sructure t_otput) from another internal table (sructure t_from) using field symbol.
Structure for from table.
types: begin of t_from,
year(4) type c,
ww(2) type c,
site type marc-werks,
demand type i,
end of t_from.
Structure for output table.
types: begin of t_display,
title(30),
WW1(10),
WW2(10),
WW3(10),
end of t_display.
The from table looks like this:
Year | WW | Site | Demand
2005 | 1 | OR1 | 12.00
2005 | 2 | OR1 | 13.00
2005 | 3 | OR1 | 14.00
The display table which has to be populated should look like this:
Title | WW1 | WW2 | WW3
OR1 | | |
Demand | 12.00 | 13.00 | 14.00
How to populate display table using field symbol?
Please give code snippets
Thanks,
GopalGopal,
Here is the code, however I am not vary clear about the ORG1 and Demand display that you have shown in the display. I am sure with this code it should not be a big deal to tweak in whatever manner you want.
TABLES : marc.
TYPES: BEGIN OF type_display,
title(30),
ww1(10),
ww2(10),
ww3(10),
END OF type_display.
TYPES: BEGIN OF type_from,
year(4) TYPE c,
ww(2) TYPE c,
site TYPE marc-werks,
demand TYPE i,
END OF type_from.
data : t_from type table of type_from,
t_display type table of type_display.
field-symbols : <fs_from> type type_from,
<fs_display> type type_display.
data : wa_from type type_From,
wa_display type type_display.
wa_from-year = '2005'.
wa_from-ww = '1'.
wa_from-site = 'OR1'.
wa_from-demand = '12.00'.
insert wa_from into table t_from.
wa_from-year = '2005'.
wa_from-ww = '2'.
wa_from-site = 'OR1'.
wa_from-demand = '13.00'.
insert wa_from into table t_from.
wa_from-year = '2005'.
wa_from-ww = '3'.
wa_from-site = 'OR1'.
wa_from-demand = '14.00'.
insert wa_from into table t_from.
data : variable(3) type c.
field-symbols : <fs_any> type any.
break-point.
Loop at t_from assigning <fs_from>.
variable = 'WW'.
wa_display-title = <fs_from>-site.
concatenate variable <fs_from>-ww into variable.
assign component variable of structure wa_display to <fs_any>.
<fs_any> = <fs_from>-demand.
endloop.
append wa_display to t_display.
clear wa_display.
loop at t_display assigning <Fs_display>.
write :/ <fs_display>.
endloop.
Note : Please award points if this helps you.
Regards,
Ravi -
Hi,
I am using dynamic table concepts.I am using field symbols.I need to maintain two tables of similar structure.
when i append data it will enter into both tables.when i unassign first table and reassign it ,i am getting back that data again into first table ..how to slve this problem.i need to start first table as fresh table and second table contain copy of the first table.Hi,
maybe you should clarify your problem a bit more by pasting some code and try to explain it a bit more in detail.
Roy -
Is it possible to write a result of query to a CLOB field in another table
Hi all,
I have a table with 50 columns which will ideally have around 250,000 rows. I want to select all the rows from this table and insert the result in to another
table's CLOB or BLOB column. ( I think CLOB is preferred for strings !!)
f.i
Table1 : SELECT ID, COL1||','||COL2||','||COL3||','||COL4||','||COL5 FROM TF_TEMPREP
ORDER BY COL1
will have the output
A001, 1,ABN LAYOUT,01-APR-11,30-APR-11,REMARK1
A001, 2,CTS ,01-APR-11,10-APR-11,REMARK2
A001, 3,BTS,01-APR-11,20-APR-11,REMARK3
A001, 4,CWWS,01-JAN-11,31-JAN-11,REMARK4
A001, 5,ZYNC,01-MAR-11,31-MAR-11,REMARK5
I would like to store these rows into another table (TF_TEMPREP_OUTPUT) CLOB/BLOB column ,
so the table TF_TEMPREP_OUTPUT will have one row with all the rows from TF_TEMPREP in the CLOB/BLOB column.
TF_TEMPREP_OUTPUT will have column OUTPUTID (VARCHAR2) , OUTPUTDATA (CLOB DATATYPE)
Will this be possible !!.
Thanks in advance
Regards
MuraliHi all
Thanks for your reply,
The reason we would like to store the data in a CLOB file is that,
Currently we are fetching the data from the table TF_TEMPREP and the recordset is passed into a function and writing the ouput to a CSV file in the local drive using the VB (front end application). once the process is completed, the temporary table will be deleted. this is used only for printing purpose.
we are using the VB function
Public Function RecordsetToCSV(rsData As ADODB.Recordset, pFileSeparator As String, Optional ShowColumnNames As Boolean = True, Optional NULLStr As String = "") As String
Dim k As Long
Dim RetStr As String
On Error GoTo Errh
If ShowColumnNames Then
For k = 0 To rsData.Fields.Count - 1
RetStr = RetStr & pFileSeparator & """" & rsData.Fields(k).Name & """"
Next k
RetStr = Mid(RetStr, 2) & vbNewLine
End If
rsData.MoveFirst
RetStr = RetStr & """" & rsData.GetString(adClipString, -1, """" & pFileSeparator & """", """" & vbNewLine & """", NULLStr)
RetStr = Left(RetStr, Len(RetStr) - 3)
RecordsetToCSV = RetStr
Exit Function
Errh:
RecordsetToCSV = ""
Exit Function
End Function
But in this operation, as the number of records is more the system often throws out with the message "Not enough storage is available to complete this operation.". The Local HD is having around 50GB of free space. when we have less number of records (say around 30-40K), the above process works perfectly.
Storing the File in the database server will be an issue, as the database server will be in a different location and it will not be possible/advisable to access the
local directory thru mapped directory in the database server.
our plan was if the data is available in a clob field, then we could try to read the clob and write to a file in the local directory thru our VB application itself. Not sure, will this also gives a same error as it was giving when reading from the table?.
Hope I have clarified what we are aiming at.
Regards
Murali -
How to Read data from a table which is defined as a field in another table
Hi
Iam working with FM: 'CUCB_GET_CONFIGURATION'
<b> Import parameter configuration as a table.</b>
<u>but configuration has another table as a field.</u>
i want to read the inner table fields.
how can i read the table which is defined as field in configuration table.
Please try to give me a solution.
can i have the declartions too....
Thanks,
sriHi jonnakuti,
1. simple
2.
DATA : CONFG TYPE IBCO2_INSTANCE_TAB2.
<b>DATA : WA TYPE LINE OF IBCO2_INSTANCE_TAB2.</b>
3. just copy paste
4.
report abc.
TYPE-POOLS : IBCO2.
DATA : INSTANCE TYPE CUIB_CUOBJ.
DATA : CONFG TYPE IBCO2_INSTANCE_TAB2.
DATA : WA TYPE LINE OF IBCO2_INSTANCE_TAB2.
CALL FUNCTION 'CUCB_GET_CONFIGURATION'
EXPORTING
INSTANCE = INSTANCE
IS_BUSINESS_OBJECT =
IV_MOMENT =
IV_WITH_DB_INSTANCE =
IMPORTING
IBASE =
CONFIGURATION = CONFG
EO_CBASE_REF =
EXCEPTIONS
INVALID_INPUT = 1
INVALID_INSTANCE = 2
INSTANCE_IS_A_CLASSIFICATION = 3
OTHERS = 4
read like this
LOOP AT CONFG INTO WA.
ENDLOOP.
regards,
amit m. -
Error while linking user defined table to user defined field using vb6.0
Hi,
I am creating a userdefined field on a SAPB1 table(PDN1) using vb 6.0
I am trying to link this field to a user defined table.
When i do that i get the following error:
"The field 'Related table' should consist of 8 alphanumeric chracters with no valid or default values"
When i try to do the same thing from SAPB1(not using code) there is no such problem.
My vb code is as follows:
Set oUserFieldsMD = oCmp.GetBusinessObject(oUserFields)
oUserFieldsMD.TableName = "PDN1"
oUserFieldsMD.Name = "OB_Locn"
oUserFieldsMD.Description = "WH Location"
oUserFieldsMD.Type = db_Alpha
oUserFieldsMD.EditSize = 30
lRetCode = oUserFieldsMD.Add
If lRetCode <> 0 Then
oCmp.GetLastError lErrCode, sErrMsg
MsgBox sErrMsg
GoTo Err_
End If
If Not oUserFieldsMD.GetByKey("PDN1", 0) Then
MsgBox "Error"
GoTo Err_
End If
oUserFieldsMD.LinkedTable = "OB_TEST"
lRetCode = oUserFieldsMD.Update
Your help will be much appreciated.
Thanks.Great Sébastien!
Looks like we could not survive here one day without your contribution
Best regards,
Frank
PS: For readers of this thread who don't understand why
EditSize
must be "8":
This is the size of the
Code
field in the user-defined table to which the new field OB_Locn (in the DB it will be U_OB_Locn) is linked to...
So, it should be preferrably of the same size. -
How to update field values in a database table using module pool prg?
hi
how to update field values in a database table using module pool prg?
we created a customized table, and we put 2 push buttons in screen painter update and display.
but update is not working?
data is enter into screen fields and to internal table, but it is not updated in database table.
thanks in adv
vidyaHI,
we already used the update statement. but its not working.
plz check this.
*& Module Pool ZCUST_CALL_REC
PROGRAM ZCUST_CALL_REC.
TABLES: ZCUST_CALL_REC,ZREMARKS.
data: v_kun_low like ZCUST_CALL_REC-kunnr ,
v_kun_high like ZCUST_CALL_REC-kunnr,
v_bud_low like ZCUST_CALL_REC-budat,
v_bud_high like ZCUST_CALL_REC-budat.
ranges r_kunnr for ZCUST_CALL_REC-kunnr .
ranges r_budat for zcust_call_rec-budat.
DATA: ITAB TYPE STANDARD TABLE OF ZCUST_CALL_REC WITH HEADER LINE,
JTAB TYPE STANDARD TABLE OF ZREMARKS WITH HEADER LINE.
*data:begin of itab occurs 0,
MANDT LIKE ZCUST_CALL_REC-MANDT,
kunnr like ZCUST_CALL_REC-kunnr,
budat like ZCUST_CALL_REC-budat,
code like ZCUST_CALL_REC-code,
remarks like ZCUST_CALL_REC-remarks,
end of itab.
*data:begin of Jtab occurs 0,
MANDT LIKE ZCUST_CALL_REC-MANDT,
kunnr like ZCUST_CALL_REC-kunnr,
budat like ZCUST_CALL_REC-budat,
code like ZCUST_CALL_REC-code,
remarks like ZCUST_CALL_REC-remarks,
end of Jtab.
CONTROLS:vcontrol TYPE TABLEVIEW USING SCREEN '9001'.
CONTROLS:vcontrol1 TYPE TABLEVIEW USING SCREEN '9002'.
*start-of-selection.
*& Module USER_COMMAND_9000 INPUT
text
MODULE USER_COMMAND_9000 INPUT.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR sy-ucomm.
WHEN 'ENQUIRY'.
perform multiple_selection.
perform append_CUSTOMER_code.
PERFORM SELECT_DATA.
call screen '9001'.
WHEN 'UPDATE'.
perform append_CUSTOMER_code.
PERFORM SELECT_DATA.
call screen '9002'.
perform update on commit.
WHEN 'DELETE'.
perform append_CUSTOMER_code.
PERFORM SELECT_DATA.
call screen '9002'.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
*& Module STATUS_9000 OUTPUT
text
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'ZCUSTOMER'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_9000 OUTPUT
*& Module USER_COMMAND_9001 INPUT
text
MODULE USER_COMMAND_9001 INPUT.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR sy-ucomm.
endcase.
ENDMODULE. " USER_COMMAND_9001 INPUT
*& Module STATUS_9001 OUTPUT
text
MODULE STATUS_9001 OUTPUT.
SET PF-STATUS 'ZCUSTOMER'.
SET TITLEBAR 'xxx'.
move itab-MANDT to zcust_call_rec-MANDT.
move itab-kunnr to zcust_call_rec-kunnr.
move itab-budat to zcust_call_rec-budat.
move itab-code to zcust_call_rec-code.
move itab-remarks to zcust_call_rec-remarks.
vcontrol-lines = sy-dbcnt.
ENDMODULE. " STATUS_9001 OUTPUT
*& Module USER_COMMAND_9002 INPUT
text
module USER_COMMAND_9002 input.
CASE sy-ucomm.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
SET SCREEN 0.
LEAVE SCREEN.
CLEAR sy-ucomm.
WHEN 'UPDATE'.
perform move_data.
UPDATE ZCUST_CALL_REC FROM TABLE ITAB.
IF SY-SUBRC = 0.
MESSAGE I000(0) WITH 'RECORDS ARE UPDATED'.
ELSE.
MESSAGE E001(0) WITH 'RECORDS ARE NOT UPDATED'.
ENDIF.
WHEN 'DELETE'.
perform move_data.
DELETE ZCUST_CALL_REC FROM TABLE ITAB.
IF SY-SUBRC = 0.
MESSAGE I000(0) WITH 'RECORDS ARE DELETED'.
ELSE.
MESSAGE E001(0) WITH 'RECORDS ARE NOT DELETED'.
ENDIF.
endcase.
endmodule. " USER_COMMAND_9002 INPUT
*& Module STATUS_9002 OUTPUT
text
module STATUS_9002 output.
SET PF-STATUS 'ZCUSTOMER1'.
SET TITLEBAR 'xxx'.
endmodule. " STATUS_9002 OUTPUT
*& Module update_table OUTPUT
text
module update_table output.
move itab-MANDT to zcust_call_rec-MANDT.
move itab-kunnr to zcust_call_rec-kunnr.
move itab-budat to zcust_call_rec-budat.
move itab-code to zcust_call_rec-code.
move itab-remarks to zcust_call_rec-remarks.
vcontrol-lines = sy-dbcnt.
endmodule. " update_table OUTPUT
***Selection Data
FORM SELECT_DATA.
SELECT mandt kunnr budat code remarks FROM zcust_call_rec INTO
table itab
WHERE kunnr IN r_kunnr AND BUDAT IN R_BUDAT.
ENDFORM.
****append vendor code
FORM APPEND_CUSTOMER_CODE.
clear r_kunnr.
clear itab.
clear r_budat.
refresh r_kunnr.
refresh itab.
refresh r_kunnr.
IF r_kunnr IS INITIAL
AND NOT v_kun_low IS INITIAL
AND NOT v_kun_high IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kun_low
IMPORTING
OUTPUT = r_kunnr-low.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kun_high
IMPORTING
OUTPUT = r_kunnr-high.
r_kunnr-option = 'BT'.
r_kunnr-sign = 'I'.
append r_kunnr.
PERFORM V_BUDAT.
ELSEIF r_kunnr IS INITIAL
AND NOT v_kun_low IS INITIAL
AND v_kun_high IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kun_low
IMPORTING
OUTPUT = r_kunnr-low.
r_kunnr-SIGN = 'I'.
r_kunnr-OPTION = 'EQ'.
APPEND r_kunnr.
PERFORM V_BUDAT.
ELSEIF r_kunnr IS INITIAL
AND v_kun_low IS INITIAL
AND NOT v_kun_high IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kun_low
IMPORTING
OUTPUT = r_kunnr-low.
r_kunnr-SIGN = 'I'.
r_kunnr-OPTION = 'EQ'.
APPEND r_kunnr.
PERFORM V_BUDAT.
ELSEIF r_kunnr IS INITIAL
AND v_kun_low IS INITIAL
AND v_kun_high IS INITIAL.
IF SY-SUBRC = 0.
MESSAGE I003(0) WITH 'ENTER CUSTOMER NUMBER'.
CALL SCREEN '9000'.
ENDIF.
PERFORM V_BUDAT.
ENDIF.
ENDFORM.
FORM V_BUDAT.
IF R_BUDAT IS INITIAL
AND NOT v_BUD_low IS INITIAL
AND NOT v_BUD_high IS INITIAL.
r_budat-low = v_bud_low.
r_budat-high = v_bud_high.
r_budat-option = 'BT'.
r_budat-sign = 'I'.
append r_budat.
ELSEIF R_BUDAT IS INITIAL
AND NOT v_BUD_low IS INITIAL
AND v_BUD_high IS INITIAL.
r_budat-low = v_bud_low.
r_budat-high = v_bud_high.
r_budat-option = 'EQ'.
r_budat-sign = 'I'.
append r_budat.
ELSEIF R_BUDAT IS INITIAL
AND v_BUD_low IS INITIAL
AND NOT v_BUD_high IS INITIAL.
r_budat-HIGH = v_bud_HIGH.
r_budat-option = 'EQ'.
r_budat-sign = 'I'.
append r_budat.
ELSEIF R_BUDAT IS INITIAL
AND v_BUD_low IS INITIAL
AND v_BUD_high IS INITIAL.
IF SY-SUBRC = 0.
MESSAGE I002(0) WITH 'ENTER POSTING DATE'.
CALL SCREEN '9000'.
r_budat-low = ''.
r_budat-option = ''.
r_budat-sign = ''.
ENDIF.
ENDIF.
ENDFORM.
*& Form update
text
--> p1 text
<-- p2 text
form update .
commit work.
endform. " update
*& Form move_data
text
--> p1 text
<-- p2 text
form move_data .
clear itab.
refresh itab.
move-corresponding zcust_call_rec to itab.
MOVE ZCUST_CALL_REC-MANDT TO ITAB-MANDT.
MOVE ZCUST_CALL_REC-KUNNR TO ITAB-KUNNR.
MOVE ZCUST_CALL_REC-BUDAT TO ITAB-BUDAT.
MOVE ZCUST_CALL_REC-CODE TO ITAB-CODE.
MOVE ZCUST_CALL_REC-REMARKS TO ITAB-REMARKS.
APPEND ITAB.
delete itab where kunnr is initial.
endform. " move_data
thanks in adv
vidya -
How to populate field catalogue fields in ALV using dynamic internal table
Hi All,
Please let me know how to populate field catalogue fields in ALV using dynamic internal table.
I have created <dyn_table> using code below.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = g_t_ifc
it_fieldcatalog = g_t_fieldcat
IMPORTING
ep_table = dy_table.
ASSIGN dy_table->* TO <dyn_table>.
Create dynamic work area and assign to FS
CREATE DATA dy_line LIKE LINE OF <dyn_table>.
ASSIGN dy_line->* TO <dyn_wa>.
Now this <dyn_table> has fields like idoc no.,creation date ,
segment field 1, segment field 2 etc..Now idoc no.,creation date are static fields from table EDIDC. And segment field 1, segment field 2 etc are dynamic fields from table EDSAPPL.
In my ALV report I am getting the final layout properly but I am unable to move values to corresponding fields in the final layout shown.Please let me know how to populate these fields from different tables.
I tried this way but its not working.
SORT g_t_edid4 BY docnum.
LOOP AT g_t_edidc INTO g_r_edidc.
READ TABLE g_t_edid4 into g_r_edid4
WITH KEY docnum = g_r_edidc-docnum
BINARY SEARCH.
IF sy-subrc = 0.
<dyn_wa> = g_r_edid4-sdata.
MOVE-CORRESPONDING g_r_edid4 to <dyn_wa>.
CLEAR g_r_edid4.
ENDIF.
MOVE-CORRESPONDING g_r_edidc to <dyn_wa>.
APPEND <dyn_wa> TO <dyn_table>.You have to assign each field to field symbol and then assign the value to that field symbol and asssign that field symbol to workarea field symbol.
LOOP AT g_t_edidc INTO g_r_edidc.
READ TABLE g_t_edid4 into g_r_edid4
WITH KEY docnum = g_r_edidc-docnum
BINARY SEARCH.
IF sy-subrc = 0.
ASSIGN COMPONENT 'SDATA' OF STRUCTURE <DYN_WA> TO <DYN_FLD>.
<DYN_FLD> = g_r_edid4-sdata.
" <dyn_wa> = g_r_edid4-sdata.
" Assign each fields like this.
" MOVE-CORRESPONDING g_r_edid4 to <dyn_wa>.
CLEAR g_r_edid4.
ENDIF.
" MOVE-CORRESPONDING g_r_edidc to <dyn_wa>.
APPEND <dyn_wa> TO <dyn_table>.
Regards,
Naimesh Patel
Maybe you are looking for
-
Preferences in Sql Datamodeler are not saved
Hello all, I seem to do something wrong: I would like to change certain preferences, but they SDM does not save their status. As soon as I open the preference menu option again, the preferences are in their previous state. Saving the complete design
-
Value in cusotm subtotal field is not updating in LIS (S) tables
Hello Experts, All the existing subtotal vlues (provided by SAP) we have consumed based on the pricing procedure's requriement and we have created a new Z subtotal field (like ZZKZWI11) in pricing, it is working fine and the values are getting update
-
How to get Internet Explorer to ask for Open/Save
For most binary file types, Internet Explorer asks whether you want to open or save the file, and gives you a further choice of skipping that prompt in the future. Nothing I do gives me access to this prompt for PDFs and Adobe Reader. On a computer o
-
Can you generate separate audio tracks from a Multi-Output Instrument?
Is there a way to use the "export all tracks as audio files" function and have the multi-output assignments generate separate audio tracks? There doesn't appear to be a way to do this. Ideas?
-
Error while adding producer from registry.
Got this error when i tryed add one producer from a third party registry. Need reason for this error. java.lang.NullPointerException at com.bea.wsrp.consumer.registry.find.uddi2.RegistryFinderImpl.findRegistryEntries(RegistryFinderImpl.java:423)