Delete grid row using button in row
I want to create a grid, with each row containing several
textInputs and one delete button.
I will have another button that will add rows to the grid.
I can't find out how to tie the button in each row to delete
that row...
Alos, what is the best way to add a row to the grid ?
Please advise
Thanks.
Hi,
Why don't you use the function "excel inplace" in the ALV? With the ALV you have some buttons "SORT/TOTAL/FILTER... and you have PRINT and EXCEL INPLACE"?
Do you use the method call method g_grid->set_table_for_first_display in order to display your data alv?
Best regards
Similar Messages
-
How to delete an Item using Button control in InfoPath 2010
Dear Experts
In my SharePoint 2010 List, I have added and using below controls instead of Ribbons
1) Save (button control)
2) Cancel (button control)
3) Delete (button control)
My requirement is when i click on Delete (button control) in edit form then particular item has to be deleted
How to achieve this
Regards
SantoshHi Santosh,
Please check this
http://www.bizsupportonline.net/browserforms/delete-sharepoint-list-items-object-model-infopath-browser-form.htm
Please remember to click 'Mark as Answer' on the answer if it helps you -
How to move a selected row data from one grid to another grid using button click handler in flex4
hi friends,
i am doing flex4 mxml web application,
i am struck in this concept please help some one.
i am using two seperated forms and each form having one data grid.
In first datagrid i am having 5 rows and one button(outside the data grid with lable MOVE). when i am click a row from the datagrid and click the MOVE button means that row should disable from the present datagrid and that row will go and visible in the second datagrid.
i dont want drag and drop method, i want this process only using button click handler.
how to do this?
any suggession or snippet code are welcome.
Thanks,
B.venkatesan.Hi,
You can get an idea from foolowing code and also from the link which i am providing.
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="613" height="502" viewSourceURL="../files/DataGridExampleCinco.mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.binding.utils.BindingUtils;
[Bindable]
private var allGames:ArrayCollection;
[Bindable]
private var selectedGames:ArrayCollection;
private function initDGAllGames():void
allGames = new ArrayCollection();
allGames.addItem({name: "World of Warcraft",
creator: "Blizzard", publisher: "Blizzard"});
allGames.addItem({name: "Halo",
creator: "Bungie", publisher: "Microsoft"});
allGames.addItem({name: "Gears of War",
creator: "Epic", publisher: "Microsoft"});
allGames.addItem({name: "City of Heroes",
creator: "Cryptic Studios", publisher: "NCSoft"});
allGames.addItem({name: "Doom",
creator: "id Software", publisher: "id Software"});
protected function button1_clickHandler(event:MouseEvent):void
BindingUtils.bindProperty(dgSelectedGames,"dataProvider" ,dgAllGames ,"selectedItems");
]]>
</mx:Script>
<mx:Label x="11" y="67" text="All our data"/>
<mx:Label x="10" y="353" text="Selected Data"/>
<mx:Form x="144" y="10" height="277">
<mx:DataGrid id="dgAllGames" width="417" height="173"
creationComplete="{initDGAllGames()}" dataProvider="{allGames}" editable="false">
<mx:columns>
<mx:DataGridColumn headerText="Game Name" dataField="name" width="115"/>
<mx:DataGridColumn headerText="Creator" dataField="creator"/>
<mx:DataGridColumn headerText="Publisher" dataField="publisher"/>
</mx:columns>
</mx:DataGrid>
<mx:FormItem label="Label">
<mx:Button label="Move" click="button1_clickHandler(event)"/>
</mx:FormItem>
</mx:Form>
<mx:Form x="120" y="333">
<mx:DataGrid id="dgSelectedGames" width="417" height="110" >
<mx:columns>
<mx:DataGridColumn headerText="Game Name" dataField="name" width="115"/>
<mx:DataGridColumn headerText="Creator" dataField="creator"/>
<mx:DataGridColumn headerText="Publisher" dataField="publisher"/>
</mx:columns>
</mx:DataGrid>
</mx:Form>
</mx:Application>
Link:
http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/ae9bee8d-e2ac-43 c5-9b6d-c799d4abb2a3/
Thanks and Regards,
Vibhuti Gosavi | [email protected] | www.infocepts.com -
I downloaded Dreamweaver CC 2014.1, started using it but cannot find Show Fluid Grid Layout Guides button, Resize LI.link sizing handle and 'move up a Row' arrow. Where can I find them?
You have the latest version (CC 2014.1 or 2014.1.1) in which the interface condenses Design View with Live View buttons in normal layouts. See screenshot.
However, in FGLayouts, Live View is the only option which poses some editing problems and has been highly criticized.
Is there any way to display the Design View in fluid grid pages?
New Features in CC 2014.1 October Release
http://helpx.adobe.com/dreamweaver/using/whats-new.html
New Features in CC 2014.1.1 February Release
https://helpx.adobe.com/dreamweaver/using/whats-new.html#Enhancements%20to%20Live%20View%2 0editing
You can disable this restriction by adding an X to the FGLayout CSS.
Dreamweaver Fluid Grid Properties
dw-num-cols-mobile: X 4;
dw-num-cols-tablet: 8;
dw-num-cols-desktop: 12;
dw-gutter-percentage: 25;
=====================================
Having said that, it might just be simpler to revert to an earlier version. Log-in to Creative Cloud Desktop app. Go to Filters & Versions > Previous Version. See screenshot.
Nancy O. -
Delete datagridview row using right click context menu does not behave like the delete key
I have a datagridview with editing enabled. If I click the row header and press the delete key, the row is removed no questions asked. I don't recall doing any coding to make this happen but I couldn't do copy and paste using keys so I created a context
menu with copy, paste, & delete. The delete option calls
dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
The row is removed but the problem is this fires other events like RowValidating which fails. I presume because the row is no longer there.
The delete keypress is definitely a lot cleaner so my question is 3fold.
1) Why doesn't Rows.RemoveAt behave like the delete key?
2) Is it possible to issue a delete keypress to do the same thing?
3) Is it possible to suppress the RowValidating event or other events when Rows.RemoveAt is fired?Interesting. My delete key does not fire the row validating event. When I use the delete key I click on the row header which does fire the row validating event and then I press the delete key. Row is deleted and no event fires. Works
just the way I want it to. I wish my context menu delete worked that way. I wouldn't know what chunk of code I can provide to show the Row Validating NOT firing when delete key is pressed but here is the context menu code that does fire Row Validating.
private void cmsEditItemClick(object sender, ToolStripItemClickedEventArgs e)
ToolStripItem item = e.ClickedItem;
switch (item.Text)
case "Copy":
if (dgvVX130.GetCellCount(DataGridViewElementStates.Selected) > 0)
try
// Add the selection to the clipboard.
Clipboard.SetDataObject(
dgvVX130.GetClipboardContent());
// Replace the text box contents with the clipboard text.
catch (System.Runtime.InteropServices.ExternalException)
MessageBox.Show("The Clipboard could not be accessed. Please try again.");
break;
case "Paste":
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
ClipboardUtils.PasteFromClipboard(dgvVX130);
dgvVX130.NotifyCurrentCellDirty(true);
dgvVX130.EndEdit();
dgvVX130.NotifyCurrentCellDirty(false);
bindingSource1_PositionChanged(this, e);
break;
case "Delete":
dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
break;
default:
//code
break;
private void dgvVX130CellContentClick(object sender, DataGridViewCellEventArgs e)
//dgvVX130.IsUserSelectionEnabled = true;
dgvVX130.BeginEdit(false);
((TextBox)dgvVX130.EditingControl).SelectionStart = 0;
//((TextBox)dgvVX130.EditingControl).SelectionLength = 3;
public class ClipboardUtils
public static void PasteFromClipboard(DataGridView grid)
try
char[] rowSplitter = { '\r', '\n' };
char[] columnSplitter = { '\t' };
// Get the text from Clipboard
IDataObject dataInClipboard = Clipboard.GetDataObject();
string stringInClipboard = (string)dataInClipboard.GetData(DataFormats.StringFormat);
// split into rows
string[] rowInClipboard = stringInClipboard.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries);
// get current cell
int currentRow = grid.SelectedCells[0].RowIndex;
int currentColumn = grid.SelectedCells[0].ColumnIndex;
// get 1st cell in selected area
for (int i = 1; i < grid.SelectedCells.Count; i++)
if (currentRow > grid.SelectedCells[i].RowIndex)
currentRow = grid.SelectedCells[i].RowIndex;
if (currentColumn > grid.SelectedCells[i].ColumnIndex)
currentColumn = grid.SelectedCells[i].ColumnIndex;
// add more rows if need to paste data
/* if (grid.Rows.Count < rowInClipboard.Length + currentRow)
grid.Rows.Add(rowInClipboard.Length + currentRow - grid.Rows.Count); */
// paste
for (int iRow = 0; iRow < rowInClipboard.Length; iRow++)
if (iRow + currentRow < grid.Rows.Count)
string[] cellsInRow = rowInClipboard[iRow].Split(columnSplitter);
for (int iCol = 0; iCol < cellsInRow.Length; iCol++)
if (grid.ColumnCount > currentColumn + iCol)
DataGridViewCell currentCell = grid.Rows[currentRow + iRow].Cells[currentColumn + iCol];
if (!currentCell.ReadOnly) // H.NH added to avoid Read only case.
if (cellsInRow[iCol] == "")
if (grid.Columns[iCol].ValueType.Name == "String")
currentCell.Value = null;
else
currentCell.Value = DBNull.Value;
else
currentCell.Value = cellsInRow[iCol];
switch (iCol)
case 3:
currentCell.Value += "_ChangeColumnName";
break;
case 2:
currentCell.Value = grid.Rows[iRow].Cells[iCol].Value;
break;
else break;
catch (Exception e)
MessageBox.Show("Sorry, can not paste from the clipboard.\nError: " + e.Message, "Paste Error", MessageBoxButtons.OK, MessageBoxIcon.Error); -
How to get current row using submit button ?
Hello Friends ,
Is there any way i can capture the value of current row by submit button ?
Here is my requirement , i have seeded OAF screen and it has table region one of the column has radio button , the existing
functionality is when ever the radio button is selected and click on submit button ( submit button attached on top of the table region )
other oaf page is getting opened .
Now i wish to restrict the navigation based on some condition , but i don't know how to get the current row using submit button .
Note : there is no Fire Action event for radio button column ? I dont' know how orale is selecting a specific row
Any suggestion please ?
Regards ,
VamsiThanks sushant for your response ,
Well i have tried your approch , i am not getting values for current row .
if (pageContext.getParameter("paApply") != null)
OAApplicationModule am = pageContext.getApplicationModule(webBean);
OAViewObject localOAViewObject1 = (OAViewObject)am.findViewObject("ProjectDatesVO");
if(localOAViewObject1!=null) {
Row DateVoROw = localOAViewObject1.first();
RowSetIterator iterator = localOAViewObject1.createRowSetIterator("iterator");
iterator.setRangeStart(0);
iterator.setRangeSize(localOAViewObject1.getRowCount());
for(int i=0; i<iterator.getRowCount(); i++)
DateVoROw=iterator.getRowAtRangeIndex(i);
String vacancyValue= DateVoROw .getAttribute("vacancyname).toString();
Could you please let me know where i am going wrong
Thanks again ,
Vamsi -
Move rows within a table using buttons
Hello Guys,
I am trying to create a dynamic table and I have been trying to figure out how best to do it. Here are my requirements
1) The table will have 12 rows, the number of rows will not change.
2) The table will have 2 columns.
3) The point of the table is for the user to reorder based on priority.
4) The data must persist when saved (this one i know how to do).
I have been creating a subform around a row and adding a up and down arrow buttons to each one. I was going to use a moveinstance command but I don't quite understand how the indexing will work.
If you guys have a better suggestion or an example, i would really appreciate it.
Thanks,
roger.Hi,
Repeatable objects have a zero-based numbering system. So Row1 with 12 instances, would look like Row1[0], Row1[1], ... Row1[11].
So the following Javascript would move the row up:
if (Row1.index != 0)
var nIndexFrom = Row1.index;
var nIndexTo = Row1.index - 1;
_Row1.moveInstance(nIndexFrom, nIndexTo);
else
xfa.host.beep("3");
A similar script would move the row downwards. Note I have used Row1.index, you could also use this.parent.index if the button is in the row. If it is buried in subforms, you may need this.parent.parent.index, to get to the instance of the repeating object.
Hope that helps,
Niall -
Button in alv grid cell using REUSE_ALV_GRID_DISPLAY
Hi all,
I want to make the contents of 2 columns of my alv grid as push button with values as text on it. I am not using classes or methods but alv grid fm. On clicking the button one dialog box has to pop up which gives edit option for the values in that coloumn, my question is how to introduce button in alv grid cell? if i can use t_fieldcatalog-icon, then please give me the complete steps for that.
Thanks.this may helps u
u need to copy stadard screen elemetn to MARATAB1(at PF -STATUS)
You should copy the 'STANDARD' GUI status from program <b>SAPLSLVC_FULLSCREEN</b>
type this one in SE41 program name is:<b>SAPLSLVC_FULLSCREEN</b>
status : <b>STANDARD_FULLSCREEN</b>
and copy it ...
Type-pool
type-pools slis.
Tables
tables: mara,sscrfields.
Selection screen
select-options: s_matnr for mara-matnr.
PARAMETERS: p_email TYPE somlreci1-receiver.
TYPES: BEGIN OF t_charmara,
matnr(18) TYPE c, " Material Number
ernam(12) TYPE c, " Person Credited
aenam(12) TYPE c, " Person Changed Object
pstat(15) TYPE c, " Maintenance Status
END OF t_charmara.
Data Declarations
data: rt_extab type slis_t_extab, " Table of inactive function
codes
wa_charmara TYPE t_charmara, " work area of mara Table
fs_fieldcat type slis_t_fieldcat_alv,
" Field catalog with field
descriptions
t_fieldcat like line of fs_fieldcat,
" Table of Field catalog
r_ucomm like sy-ucomm, " User Command
rs_selfield TYPE slis_selfield. " cursor position ALV
data: filedlayout type slis_layout_alv,
heading type slis_t_listheader with header line,
t_event type slis_t_event.
data: fs_event like line of t_event.
data: fs_sort type slis_sortinfo_alv,
t_sort type slis_t_sortinfo_alv.
data: w_char(200) type c,
w_matnr type mara-matnr.
fs_sort-fieldname = 'MATNR'.
fs_sort-up = 'X'.
fs_sort-group = '*'.
append fs_sort to t_sort.
clear fS_sort.
DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc.
Internal Tables
data: begin of it_mara occurs 0,
matnr like mara-matnr, " Material Number
ernam like mara-ernam, " Person Credited
aenam like mara-aenam, " Person Changed Object
pstat like mara-pstat, " Maintenance Status
end of it_mara.
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE.
*at selection-screen on field event
AT SELECTION-SCREEN on s_matnr.
PERFORM f0100_VALIDATE_MATERIAL_NUMBER.
start-of-selection.
retrive Data from the data base table Mara
perform retrive_data_from_mara.
end-of-selection.
*Field catalog with field descriptions
perform fieldcat.
*perform top_of_page.
PERFORM EVENT_LIST.
*ALV Grid Display
perform alv_display.
Creating one Push button ENTER
perform maratab1 USING RT_EXTAB.
*& Form f0100_VALIDATE_MATERIAL_NUMBER
text
There are no interface parameters to be passed to this subroutine
FORM F0100_VALIDATE_MATERIAL_NUMBER .
select matnr " Material Number
from mara
up to 1 rows
into mara-matnr
where matnr in s_matnr.
endselect.
IF sy-subrc NE 0.
clear sscrfields-ucomm.
MESSAGE e000 WITH 'Enter valid Material number'(003).
ENDIF. " IF sy-subrc NE 0
ENDFORM. " f0100_VALIDATE_MATERIAL_NUMBER
*& Form retrive_data_from_mara
text
*There are no interface parameters to be passed to this subroutine
FORM retrive_data_from_mara .
select matnr " Material Number
ernam " Person Credited
aenam " Person Changed Object
pstat " Maintenance Status
from mara
into table It_mara
where matnr in s_matnr.
IF sy-subrc NE 0.
MESSAGE i001 WITH 'Records are not found'.
exit.
stop.
ENDIF. " IF sy-subrc NE 0
ENDFORM. " retrive_data_from_mara
*& Form fieldcat
text
*There are no interface parameters to be passed to this subroutine
FORM fieldcat .
*field catalog for MATNR
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'MATNR'.
t_fieldcat-col_pos = 1.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for ERNAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'ERNAM'.
t_fieldcat-col_pos = 2.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for AENAM
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'AENAM'.
t_fieldcat-col_pos = 3.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
*field catalog for PSTAT
t_FIELDCAT-REF_TABNAME = 'MARA'.
t_fieldcat-fieldname = 'PSTAT'.
t_fieldcat-col_pos = 4.
append t_fieldcat to fs_fieldcat.
clear t_fieldcat.
ENDFORM. " fieldcat
*& Form EVENT_LIST
text
*There are no interface parameters to be passed to this subroutine
FORM EVENT_LIST .
fs_event-name ='TOP_OF_PAGE'.
fs_event-form = 'TOP_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_PAGE'.
fs_event-form = 'END_PAGE'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
fs_event-name ='END_OF_LIST'.
fs_event-form = 'LIST_END'.
append fs_event TO t_EVENT.
CLEAR FS_EVENT.
ENDFORM. " EVENT_LIST
*& Form alv_display
text
*There are no interface parameters to be passed to this subroutine
FORM alv_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'MARATAB1'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = FS_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = T_SORT
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_EVENT
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARA[]
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " alv_display
form TOP_PAGE.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = 'Created by : Vijay Pawar'.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' Date ' sy-datum into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
wa_listheader-typ = 'S'.
concatenate ' From ' s_matnr-low ' To ' s_matnr-high into
wa_listheader-info separated by space.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form TOP_PAGE.
form END_PAGE.
STATICS W_PAGE TYPE I .
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = W_PAGE.
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
add 1 to w_page.
endform. " form END_PAGE.
form list_end.
data:tbl_listheader type slis_t_listheader,
wa_listheader type slis_listheader .
wa_listheader-typ = 'S'.
wa_listheader-info = '......................................Last Page'
append wa_listheader to tbl_listheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = tbl_listheader
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
endform. " form list_end.
*& Form maratab1
text
-->P_RT_EXTAB text
FORM maratab1 USING P_RT_EXTAB.
SET PF-STATUS 'MARATAB1' EXCLUDING rt_extab.
ENDFORM. " maratab1
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
case r_ucomm.
when 'ENTER'.
perform bulid_xls_data_table.
PERFORM send_file_as_email_attachment
tables it_message
it_attach
using p_email "'[email protected]'
'Example .xls documnet attachment'
'XLS'
'filename'
changing gd_error
gd_reciever.
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
endcase. " case r_ucomm.
endform. " FORM user_command
perform populate_email_message_body.
PERFORM initiate_mail_execute_program.
CALL FUNCTION 'RH_START_EXCEL_WITH_DATA'
EXPORTING
DATA_FILENAME = 'MARA.XLS'
DATA_PATH_FLAG = 'W'
DATA_ENVIRONMENT =
DATA_TABLE = ITAB[]
MACRO_FILENAME =
MACRO_PATH_FLAG = 'E'
MACRO_ENVIRONMENT =
WAIT = 'X'
DELETE_FILE = 'X'
EXCEPTIONS
NO_BATCH = 1
EXCEL_NOT_INSTALLED = 2
INTERNAL_ERROR = 3
CANCELLED = 4
DOWNLOAD_ERROR = 5
NO_AUTHORITY = 6
FILE_NOT_DELETED = 7
OTHERS = 8
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
leave to list-processing.
endcase.
*& Form bulid_xls_data_table
text
*There are no interface parameters to be passed to this subroutine
FORM bulid_xls_data_table .
CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
con_tab TYPE x VALUE '09'. "OK for non Unicode
*If you have Unicode check active in program attributes thnen you will
*need to declare constants as follows
*class cl_abap_char_utilities definition load.
constants:
con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
con_cret type c value cl_abap_char_utilities=>CR_LF.
CONCATENATE 'matnr' 'ernam' 'aenam' 'pstat'
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
LOOP AT It_mara INTO wa_charmara.
CONCATENATE wa_charmara-matnr wa_charmara-ernam
wa_charmara-aenam wa_charmara-pstat
INTO it_attach SEPARATED BY con_tab.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
ENDLOOP. " LOOP AT it_mara INTO...
ENDFORM. " bulid_xls_data_table
*& Form send_file_as_email_attachment
Send email
-->P_IT_MESSAGE text
-->P_IT_ATTACH text
-->P_P_EMAIL text
-->P_0387 text
-->P_0388 text
-->P_0389 text
-->P_0390 text
-->P_0391 text
-->P_0392 text
<--P_GD_ERROR text
<--P_GD_RECIEVER text
FORM send_file_as_email_attachment tables pit_message
pit_attach
using p_email
p_mtitle
p_format
p_filename
p_attdescription
p_sender_address
p_sender_addres_type
changing p_error
p_reciever.
DATA: ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver,
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_nam ,
ld_attfilename TYPE so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
ld_email = p_email.
ld_mtitle = p_mtitle.
ld_format = p_format.
ld_attdescription = p_attdescription.
ld_attfilename = p_filename.
ld_sender_address = p_sender_address.
ld_sender_address_type = p_sender_addres_type.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
t_attachment[] = pit_attach[].
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
Populate zerror return code
ld_error = sy-subrc.
Populate zreceiver return code
LOOP AT t_receivers.
ld_receiver = t_receivers-retrn_code.
ENDLOOP.
ENDFORM. " send_file_as_email_attachment
*& Form INITIATE_MAIL_EXECUTE_PROGRAM
Instructs mail send program for SAPCONNECT to send email.
FORM initiate_mail_execute_program.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
*& Form POPULATE_EMAIL_MESSAGE_BODY
Populate message body text
form populate_email_message_body.
REFRESH it_message.
it_message = 'Please find attached a list test mara records'.
APPEND it_message.
endform. "form populate_email_message_bod
rewards if it helps u -
Grid is coming with the row having editable field
hello,
I ahve to display OO ALV grid after checking a check box in selection screen , after selecting a row and pressing on edit button in application tool bar it has to give edit option for a field in the row which user has selected, after pressing save button (pop up for confirmation has been given here )data has to get update in ztable and the same has to be reflected in the current grid ...... TILL HERE EVERY THING IS WORKING FINE.
If the user selects particular record and press the EDIT button, ( assume he didn't edited any thing and he didn't press the save button also ) immediately if he presses the BACK button it should go to selection screen ( this part is working) again if he presses execute button in selection screen ---> grid is coming with the row having editable field (WHICH I DONT WANT).Hi,
You can code as below...
WHEN 'BACK3'.
perform check_save_BEFORE.
"refresh the internal tables used for Selection process and display and also refresh the internal tables used in methods.
LEAVE TO SCREEN 0..
Try it.
Thanks
Arbind -
Get selected rows using the fm REUSE_ALV_GRID_DISPLAY_LVC
FYI ... for all those developers trying to select multiple rows in an ALV report, and get the selected rows - without using the OO approach to display to ALV, and without using checkboxes in the function module approach. First off, you need to use the function module REUSE_ALV_GRID_DISPLAY_LVC instead of the standard REUSE_ALV_GRID_DISPLAY. This allows you to select multiple rows using the toggle, line selection buttons, at the start of each row (with 'select all' button). See the sample code below. If you are converting from the one fm to the other, you will have to change the type of 2 of the structures to the 'LVC' structures and make minor code changes. The example code below was initially using the REUSE_ALV_GRID_DISPLAY fm, and was converted to use REUSE_ALV_GRID_DISPLAY_LVC to allow for multiple row selection. The next step is to create a custom status, with a new custom button, that will start the processing of the selected rows. Go to tcode SE41, press Copy Status, and copy program SAPLKKBL, status STANDARD, to your custom program (same name as the custom ALV rpt) and a new status name (ie STANDARD1). In the new STANDARD1 status for the custom ALV program/rpt (tcode SE41), add a new button ('&EXE') at the end of the std buttons (items 29-35). Assign the new button a Text, Icon and a Function Key. Thats it!
Here's the code:
FORM display_data.
DATA:
wa_callback_program LIKE sy-repid,
wa_layout TYPE lvc_s_layo, "was slis_layout_alv, "D01K913690
t_fieldcat TYPE lvc_t_fcat, "was slis_t_fieldcat_alv, "D01K913690
wa_fieldcat TYPE lvc_s_fcat, "was slis_fieldcat_alv, "D01K913690
t_excluding TYPE slis_t_extab,
wa_excluding TYPE slis_extab,
wa_variant LIKE disvariant.
* Setup Field Catalog
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ZBUKR'.
wa_fieldcat-ref_field = 'ZBUKR'.
wa_fieldcat-ref_table = 'REGUT'.
APPEND wa_fieldcat TO t_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'BANKS'.
wa_fieldcat-ref_field = 'BANKS'.
wa_fieldcat-ref_table = 'REGUT'.
APPEND wa_fieldcat TO t_fieldcat.
* Setup other ALV fm parameters
CLEAR wa_excluding.
wa_excluding-fcode = '&F12'.
APPEND wa_excluding TO t_excluding.
CLEAR wa_excluding.
wa_excluding-fcode = '&F15'.
APPEND wa_excluding TO t_excluding.
* Callback program
wa_callback_program = sy-repid.
* List layout
wa_layout-zebra = 'X'.
wa_layout-sel_mode = 'A'.
* variant
wa_variant-variant = p_var.
* Display the ALV report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' "D01K913690
EXPORTING
i_callback_program = wa_callback_program
i_callback_pf_status_set = 'SET_PF_STATUS' "D01K913690
i_callback_user_command = 'USER_COMMAND'
is_layout_lvc = wa_layout "D01K913690
it_fieldcat_lvc = t_fieldcat "D01K913690
it_excluding = t_excluding
i_save = 'A'
is_variant = wa_variant
TABLES
t_outtab = t_regut
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
ENDFORM. " DISPLAY_DATA
FORM user_command
USING
r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: wa_text(80) TYPE c.
CASE r_ucomm.
WHEN '&EXE'. "User pressed custom Execute button
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
DATA: lt_index_rows TYPE lvc_t_row,
lt_row_no TYPE lvc_t_roid,
lw_row_no TYPE lvc_s_roid.
CALL METHOD ref1->get_selected_rows
IMPORTING
et_index_rows = lt_index_rows
et_row_no = lt_row_no.
LOOP AT lt_row_no
INTO lw_row_no.
*** CODE TO PROCESS EACH RECORD FROM MULTIPLE SELECTED***
ENDLOOP. "loop at lt_row_no
WHEN '&IC1'. "User double-clicked on row
*** CODE TO PROCESS SINGLE RECORD SELECTED ***
WHEN '&F03' . " back
SET SCREEN 0. LEAVE SCREEN.
WHEN '&F15' . " exit
SET SCREEN 0. LEAVE SCREEN.
WHEN '&F12' . " cancel
SET SCREEN 0. LEAVE SCREEN.
ENDCASE.
ENDFORM. " USER_COMMAND
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD1'.
ENDFORM. " set_pf_status
Hope this helps ...
Regards,
Kevin
Moderator message - Welcome to SCN.
However, as you can see, the forum software was unable to format this because of the 2,500 character posting limit. since this looks interesting, would you please try to edit to conform to that limitation? You may try to split it into an initial post and a response.
Edited by: Rob Burbank on Jul 8, 2009 1:39 PMHi ,
Make it use in your code and let me know if u have any concerns...
Use "Subtotal_text" in events table.
here GTOTAL is field in itab on which we sortindf data, and use your own field on which field u want to sort...
refresh gt_event.
clear gw_event.
call function 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_event.
Subtotal
read table gt_event with key name = slis_ev_subtotal_text into gw_event.
if sy-subrc = 0.
move 'SUBTOTAL_TEXT' to gw_event-form.
append gw_event to gt_event.
endif.
form subtotal_text using uw_subtot_line type ty_main
uv_subtottxt type slis_subtot_text. "#EC CALLED
if uv_subtottxt-criteria = 'GTOTAL'.
uv_subtottxt-display_text_for_subtotal = 'TOTAL'.
endif.
*FORM build_sort .
refresh gt_sort.
gw_sort-spos = 1.
gw_sort-fieldname = 'GTOTAL'.
gw_sort-tabname = 'GT_MAIN'.
gw_sort-up = 'X'.
gw_sort-subtot = 'X'.
APPEND gw_sort TO gt_sort.
CLEAR gw_sort.
Reward points once its useful.. -
SQL Server 2005 64BIT Linked Server Cannot fetch a row using a bookmark
We get the following error SOMETIMES when trying to delete a row from an Oracle 10g database table via the SQL 2005 64BIT linked server.
DELETE [edwdev]..SYSTEM.SAIC_ARTIFACT_LOG FROM tblArtifactLog src WHERE src.source_seq_no = SAIC_ARTIFACT_LOG.art_seq_no and src.source_name = 'edwdev' [SQLSTATE 01000] (Message 0) Cannot fetch a row using a bookmark from OLE DB provider "OraOLEDB.Oracle" for linked server "edwdev". [SQLSTATE 42000] (Error 7333). The step failed.
They keyword here is SOMETIMES. The job would fail 100% of the time before applying ODAC 10.2.0.3.0, after the ODAC install the job fails about 40% of the time. We have this setup in a test enviornment and yes there are rows of data in the table everytime the job runs.
As far as the OraOLEDB10.dll install we have a date of 2/20/07 but a version of 10.2.0.2. I am wondering if this shouldn't be a new version.LearnMoreAgile wrote:
so does that mean no one at oracle can guide me in this issue before i goto microsoft ?How has the Linked Server been created in MSSQL? OraOLEDb.Oracle is the class name for the Oracle OLEDB provider which should appear in your list of OLEDB providers in your favourite windows dev tool or when creating the linked server. If it doesn't appear likely you didn't choose to install it. I don't know if it's a default install with the 64bit client, but the ODAC client contains the .net provider and not the OLEDB provider.
Niall -
Update Multiple Rows using Row Selector
Hi,
I want to update multiple rows using a tabular form with row selector, and an item in another region of the page, using an update expression and a button.
The syntax would be like this:
update MY_TABLE set UPDATABLE_COLUMN = :P10_NEW_VALUE where {row selector = true}
What is the syntax for the WHERE clause, anyone knows? In the manual there is no information at all for doing this.
PD. I added the row selector after creating the form, so I don't have any wizard-created MRU processes in the page.
HTMLDB version is 1.6
Thanks.Hi,
I want to update multiple rows using a tabular form with row selector, and an item in another region of the page, using an update expression and a button.
The syntax would be like this:
update MY_TABLE set UPDATABLE_COLUMN = :P10_NEW_VALUE where {row selector = true}
What is the syntax for the WHERE clause, anyone knows? In the manual there is no information at all for doing this.
PD. I added the row selector after creating the form, so I don't have any wizard-created MRU processes in the page.
HTMLDB version is 1.6
Thanks. -
how do i make buttons in rows an colums?
like the dialing-path of a telephone? 3x4?
thanks[url http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html]How to Use Layout Managers
-
Error in button New Row in SUS
We have SRM 5.0 With backend ECC 6.0.
When i process a PO in SUS and use the button "New Row" for "Enter Delivery Times", the system send an error:
Error Bussines Server Page (BSP)
The following error text was processed in the system:
An exception with the type CX_PARAMETER_INVALID_RANGE occurred, but was neither handled locally, nor declared in a RAISING clause
I not that BSP is that.
Somebody can help me?
Regards.Hi,
Please check the note 1072413.
[https://service.sap.com/sap/support/notes/1072413|https://service.sap.com/sap/support/notes/1072413]
Regards,
Masa -
How to recognize form buttons in rows not columns
Hi,
I have a long questionnaire with 100 rows.
column one is the question. Column 3, 4, 5, and 6 are buttons responses (none, mild, moderate, extreme). Buttons meaning only one answer allowed per row.
There are headers for the buttons. when converting this excel spreadsheet to adobe acrobat -- works. But after creating a form the buttons are labeled by column not by row, so ... they are not true option buttons by row. In other words, only one answer per column is allowed, the opposite of what I want.
How do I solve this? I change this either by the initial format or some global change? There are a total of 100 buttons. Way too laborious to change each one of these individually.
Thank you.thank you. I agree. I finally realized that acrobat is way too complex a format to use for forms. Nevertheless, I need this one form.
If I persist, these are radio buttons that must be exclusive to one selection in each row.
So I repeat. How can I get acrobat "forms editor" to discover these radio buttons across rows and not across columns? Formatting each single button will be so laborious as to abort this project. There must be a way. There always is.
So much is written about formatting forms with acrobat. So little is written how to actually handle the output.
thank you
Maybe you are looking for
-
Populating variable from another query..
Hi, I have a requirement whereby I have a variable (for eg. on the Accounting Document Number) in query Q2.The values of this variable have to be derived by executing another query eg. - Q1 So I defined a variable on the infoobject, defined it as bas
-
How to make opaque white transparent?
I have a JPEB, black words, hand lettered, on white. When I place it into an InDesign doc, on a solid color, the white background, being opaque, covers the solid color. How do I make that opaque white into a transparent background? Two manuals do not
-
Load balancing between application server and database
Hi, is there any load balancing between the application server and the database? Consider we have a single instance of an application server that sends database queries from different clients to the database. Are the requests queued in some way at th
-
SMTP issues for ports 25, 993 and 995
I recently became suspicious that I wasn't getting mail addressed to [email protected] or [email protected] and I have become even more suspicious the past couple of days when I have received email in my Mail account on the iPod Touch but those email
-
10.4.11 Update conflict with Netgear wireless router
I downloaded the 10.4.11 update, and now I can't access my comcast email. I can surf the internet and access everything else, but when using my Netgear wireless to connect, no email. I can connect and access it elsewhere using other wireless routers.