1.ICON图标
|  | AccessControlledArea (14x14) | 
|  | Activate (14x14) | 
|  | Active (14x14) | 
|  | AdaptationTechnical (14x14) | 
|  | Add (14x14) | 
|  | AddFavorite (14x14) | 
|  | AddFile (14x14) | 
|  | AddParticipant (14x14) | 
|  | AddRow (14x14) | 
|  | AdvancedSearch (14x14) | 
|  | Airplane01 (14x14) | 
|  | AlertMessage (14x14) | 
|  | Approve (14x14) | 
|  | Area (14x14) | 
|  | Attachment (14x14) | 
|  | Auction (14x14) | 
|  | AudioFile (14x14) | 
|  | AudioFileAlias (14x14) | 
|  | AutomatedTask (14x14) | 
|  | AutomaticRating (14x14) | 
|  | BatchProcessing (14x14) | 
|  | BillMaterial (14x14) | 
|  | BillMaterialItem (14x14) | 
|  | Blog (14x14) | 
|  | Boolean (14x14) | 
|  | BoxTruck (14x14) | 
|  | BusinessObject (14x14) | 
|  | BusinessPartner (14x14) | 
|  | BusinessProcess (14x14) | 
|  | BusinessProcessStep (14x14) | 
|  | BusinessScenario (14x14) | 
|  | CallProcedure (14x14) | 
|  | Cancel (14x14) | 
|  | Cancelled (14x14) | 
|  | Candidate (14x14) | 
|  | Case (14x14) | 
|  | ChAttachment (14x14) | 
|  | ChCommentNote (14x14) | 
|  | ChPriority (14x14) | 
|  | ChTaskMessage (14x14) | 
|  | ChangeNumber (14x14) | 
|  | ChartArea (14x14) | 
|  | ChartBubble (14x14) | 
|  | ChartDotRadar (14x14) | 
|  | ChartGroupHoriBar (14x14) | 
|  | ChartGroupLine (14x14) | 
|  | ChartGroupVertBar (14x14) | 
|  | ChartHoriBar (14x14) | 
|  | ChartHoriStackedBar (14x14) | 
|  | ChartLine (14x14) | 
|  | ChartMultiPie (14x14) | 
|  | ChartPie (14x14) | 
|  | ChartRadar (14x14) | 
|  | ChartScattered (14x14) | 
|  | ChartVertBar (14x14) | 
|  | ChartVertBarLine (14x14) | 
|  | ChartVertStackedBar (14x14) | 
|  | CheckIn (14x14) | 
|  | CheckOut (14x14) | 
|  | CheckedOk (14x14) | 
|  | CheckedOut (14x14) | 
|  | CheckedOutByMe (14x14) | 
|  | Class (14x14) | 
|  | CollapseAll (14x14) | 
|  | CollapseDriver (14x14) | 
|  | ColumnResize (14x14) | 
|  | ColumnSelected (14x14) | 
|  | ColumnUnselected (14x14) | 
|  | CommentNote (14x14) | 
|  | Company (14x14) | 
|  | Complete (14x14) | 
|  | Compressor (14x14) | 
|  | ConferenceSession (14x14) | 
|  | Connected (14x14) | 
|  | Constant (14x14) | 
|  | Container (14x14) | 
|  | Contract (14x14) | 
|  | Copy (14x14) | 
|  | CopyValue (14x14) | 
|  | CreateNewReport (14x14) | 
|  | Critical (14x14) | 
|  | CustomActionType (14x14) | 
|  | CustomExpressionType (14x14) | 
|  | Cut (14x14) | 
|  | DataConsistency (14x14) | 
|  | DataVisualisation (14x14) | 
|  | DatabaseLookUp (14x14) | 
|  | DatabaseRule (14x14) | 
|  | DatabaseRuleTemplate (14x14) | 
|  | DecisionTable (14x14) | 
|  | DecisionTree (14x14) | 
|  | DefaultOverwritten (14x14) | 
|  | DefaultValueSet (14x14) | 
|  | Dehydrator (14x14) | 
|  | Delete (14x14) | 
|  | DeletedItem (14x14) | 
|  | Dependencies (14x14) | 
|  | DetailedSettings (14x14) | 
|  | Devices (14x14) | 
|  | Dial (14x14) | 
|  | DifferentValueBefore (14x14) | 
|  | Disconnected (14x14) | 
|  | Display (14x14) | 
|  | DocumentFile (14x14) | 
|  | DocumentFileAlias (14x14) | 
|  | DocumentFileTemplate (14x14) | 
|  | DocumentList (14x14) | 
|  | Done (14x14) | 
|  | DoubleMinus (14x14) | 
|  | DoublePlus (14x14) | 
|  | Download (14x14) | 
|  | Driver (14x14) | 
|  | DropZone (14x14) | 
|  | DuplicateInvoice (14x14) | 
|  | DynamicExpression (14x14) | 
|  | Edit (14x14) | 
|  | EditAutomatically (14x14) | 
|  | EditChangedItem (14x14) | 
|  | EditedItem (14x14) | 
|  | Element (14x14) | 
|  | Empty (14x14) | 
|  | Equipment (14x14) | 
|  | EquipmentSettings (14x14) | 
|  | ErrorMessage (14x14) | 
|  | Escalation (14x14) | 
|  | Exceptions (14x14) | 
|  | ExeFile (14x14) | 
|  | ExeFileAlias (14x14) | 
|  | ExpandAll (14x14) | 
|  | ExpandDriver (14x14) | 
|  | ExpandMasterArea (14x14) | 
|  | ExportToSpreadsheet (14x14) | 
|  | ExpressionType (14x14) | 
|  | Failure (14x14) | 
|  | Family (14x14) | 
|  | Faq (14x14) | 
|  | Favorite (14x14) | 
|  | Fax (14x14) | 
|  | FeedUpdate (14x14) | 
|  | File (14x14) | 
|  | FileView (14x14) | 
|  | FitToArea (14x14) | 
|  | Flare (14x14) | 
|  | Flow (14x14) | 
|  | FolderFile (14x14) | 
|  | FolderFileAlias (14x14) | 
|  | FormFile (14x14) | 
|  | FormFileAlias (14x14) | 
|  | FormattedData (14x14) | 
|  | Formula (14x14) | 
|  | Forum (14x14) | 
|  | ForwardedAlert (14x14) | 
|  | ForwardedNotification (14x14) | 
|  | ForwardedRequest (14x14) | 
|  | ForwardedResponse (14x14) | 
|  | ForwardedTask (14x14) | 
|  | Function (14x14) | 
|  | FunctionCall (14x14) | 
|  | FunctionVariant (14x14) | 
|  | Fund (14x14) | 
|  | Gantt (14x14) | 
|  | GanttChartAggregated (14x14) | 
|  | GanttChartDetail (14x14) | 
|  | GanttChartLegend (14x14) | 
|  | GanttLayoutHorizontal (14x14) | 
|  | GanttLayoutSingle (14x14) | 
|  | GanttLayoutVertical (14x14) | 
|  | GenericStructureObject (14x14) | 
|  | GeographicalInfoSystem (14x14) | 
|  | Glossary (14x14) | 
|  | GreenLed (14x14) | 
|  | Group (14x14) | 
|  | GroupTechnical (14x14) | 
|  | Heater (14x14) | 
|  | Help (14x14) | 
|  | HelpFile (14x14) | 
|  | HelpFileAlias (14x14) | 
|  | HideMasterArea (14x14) | 
|  | HighPriority (14x14) | 
|  | HintMessage (14x14) | 
|  | History (14x14) | 
|  | HtmlFile (14x14) | 
|  | HtmlFileAlias (14x14) | 
|  | HtmlFileTemplate (14x14) | 
|  | IconTriangleBottom (14x14) | 
|  | IconTriangleTop (14x14) | 
|  | IfCase (14x14) | 
|  | ImageFile (14x14) | 
|  | ImageFileAlias (14x14) | 
|  | ImportExport (14x14) | 
|  | InProcess (14x14) | 
|  | InProgress (14x14) | 
|  | InactiveLed (14x14) | 
|  | Inbound (14x14) | 
|  | Inbox (14x14) | 
|  | IncomingCall (14x14) | 
|  | IncomingEmployee (14x14) | 
|  | InheritedFrom (14x14) | 
|  | InputSpecification (14x14) | 
|  | InputStream (14x14) | 
|  | Insert (14x14) | 
|  | InspectionCharacter (14x14) | 
|  | IntegrationTechnical (14x14) | 
|  | Interface (14x14) | 
|  | IntermediateMessage (14x14) | 
|  | IsOpen (14x14) | 
|  | Job (14x14) | 
|  | JobPosition (14x14) | 
|  | LTRText (14x14) | 
|  | Less (14x14) | 
|  | LessonUnitFolder (14x14) | 
|  | LessonUnitFolderAlias (14x14) | 
|  | LevelUp (14x14) | 
|  | Location (14x14) | 
|  | LocationZone (14x14) | 
|  | Locked (14x14) | 
|  | LockedByMe (14x14) | 
|  | LockedCompletely (14x14) | 
|  | Log (14x14) | 
|  | LogicalComponent (14x14) | 
|  | LowPriority (14x14) | 
|  | MailFile (14x14) | 
|  | MailFileAlias (14x14) | 
|  | MaintenanceItem (14x14) | 
|  | Manager (14x14) | 
|  | Manifold (14x14) | 
|  | MarkedForDeletion (14x14) | 
|  | MasterAgreement (14x14) | 
|  | Material (14x14) | 
|  | Maximize (14x14) | 
|  | MeasuringPoint (14x14) | 
|  | MemberList (14x14) | 
|  | Message (14x14) | 
|  | Meter (14x14) | 
|  | Minimize (14x14) | 
|  | MinusMinus (14x14) | 
|  | MissedCall (14x14) | 
|  | MissingGoodsReceipt (14x14) | 
|  | MissingInformation (14x14) | 
|  | More (14x14) | 
|  | MoveDown (14x14) | 
|  | MoveItemToBottom (14x14) | 
|  | MoveItemToTop (14x14) | 
|  | MoveLeft (14x14) | 
|  | MoveRight (14x14) | 
|  | MoveUp (14x14) | 
|  | MoveUpInHierarchy (14x14) | 
|  | MultipleNode (14x14) | 
|  | MultipleStructures (14x14) | 
|  | Negative (14x14) | 
|  | NewItem (14x14) | 
|  | NewsFile (14x14) | 
|  | NewsFileAlias (14x14) | 
|  | NewsFileTemplate (14x14) | 
|  | NoPictureAvailable (14x14) | 
|  | Node (14x14) | 
|  | NotStaffed (14x14) | 
|  | Notification (14x14) | 
|  | ObjectFamily (14x14) | 
|  | ObjectOutdated (14x14) | 
|  | ObjectReady (14x14) | 
|  | ObjectSync (14x14) | 
|  | ObjectVariant (14x14) | 
|  | Objective (14x14) | 
|  | Operation (14x14) | 
|  | OrangeLed (14x14) | 
|  | Order (14x14) | 
|  | OrgChart (14x14) | 
|  | OrgList (14x14) | 
|  | OrgTreeView (14x14) | 
|  | OrgUnit (14x14) | 
|  | OtherOutlookEleFileAlias (14x14) | 
|  | OtherOutlookElementFile (14x14) | 
|  | Outbound (14x14) | 
|  | OutgoingCall (14x14) | 
|  | OutgoingEmployee (14x14) | 
|  | OutputStream (14x14) | 
|  | OverStaffed (14x14) | 
|  | Overlapping (14x14) | 
|  | OverlappingCollapse (14x14) | 
|  | OverlappingExpand (14x14) | 
|  | PartiallyPosted (14x14) | 
|  | Paste (14x14) | 
|  | PdfFile (14x14) | 
|  | PdfFileAlias (14x14) | 
|  | Performance (14x14) | 
|  | Permit (14x14) | 
|  | Person (14x14) | 
|  | Personalize (14x14) | 
|  | Phone (14x14) | 
|  | Pipeline (14x14) | 
|  | PlaintextFile (14x14) | 
|  | PlaintextFileAlias (14x14) | 
|  | PlaintextFileTemplate (14x14) | 
|  | Planned (14x14) | 
|  | Play01 (14x14) | 
|  | PlusPlus (14x14) | 
|  | PositionObsolete (14x14) | 
|  | PositionOccupied (14x14) | 
|  | PositionUnoccupied (14x14) | 
|  | PositionVacant (14x14) | 
|  | Positive (14x14) | 
|  | Posted (14x14) | 
|  | PracticeFile (14x14) | 
|  | PracticeFileAlias (14x14) | 
|  | PresentationFile (14x14) | 
|  | PresentationFileAlias (14x14) | 
|  | PresentationFileTemplate (14x14) | 
|  | PriceVariance (14x14) | 
|  | PrimaryOutput (14x14) | 
|  | Print (14x14) | 
|  | Process (14x14) | 
|  | ProductionTools (14x14) | 
|  | Program (14x14) | 
|  | ProgressDone (14x14) | 
|  | ProgressHalf (14x14) | 
|  | ProgressOneQuarter (14x14) | 
|  | ProgressOpen (14x14) | 
|  | ProgressThreeQuarters (14x14) | 
|  | ProjectFile (14x14) | 
|  | ProjectFileAlias (14x14) | 
|  | ProjectFileTemplate (14x14) | 
|  | Pump (14x14) | 
|  | QuantityVariance (14x14) | 
|  | RTLText (14x14) | 
|  | RandomNumber (14x14) | 
|  | Range (14x14) | 
|  | ReScheduling (14x14) | 
|  | ReSequencing (14x14) | 
|  | Recipe (14x14) | 
|  | RecipeBuildingBlock (14x14) | 
|  | Record (14x14) | 
|  | Recurring (14x14) | 
|  | RedDash (14x14) | 
|  | RedLed (14x14) | 
|  | RedSlash (14x14) | 
|  | RedXCircle (14x14) | 
|  | Redo (14x14) | 
|  | Reject (14x14) | 
|  | RelatedAlert (14x14) | 
|  | RelatedNotification (14x14) | 
|  | RelatedRequest (14x14) | 
|  | RelatedResponse (14x14) | 
|  | RelatedTask (14x14) | 
|  | Reminder (14x14) | 
|  | RemoteContent (14x14) | 
|  | RemoteList (14x14) | 
|  | Remove (14x14) | 
|  | Remove01 (14x14) | 
|  | RemoveItem (14x14) | 
|  | RemoveParticipant (14x14) | 
|  | RemoveRow (14x14) | 
|  | ReorderTable (14x14) | 
|  | ReplaceValue (14x14) | 
|  | Report (14x14) | 
|  | Request (14x14) | 
|  | ResetToInitial (14x14) | 
|  | Resource (14x14) | 
|  | Response (14x14) | 
|  | RestoreOriginalValue (14x14) | 
|  | RowSelected (14x14) | 
|  | RowUnselected (14x14) | 
|  | Rule (14x14) | 
|  | RuleSet (14x14) | 
|  | SAPDocumentTemplate (14x14) | 
|  | SafetyProtection (14x14) | 
|  | Save (14x14) | 
|  | SaveAndBack (14x14) | 
|  | SaveAndNew (14x14) | 
|  | SaveAsDraft (14x14) | 
|  | Scheduled (14x14) | 
|  | Search (14x14) | 
|  | SecondaryOutput (14x14) | 
|  | SelDependentAggregation (14x14) | 
|  | Send (14x14) | 
|  | SeparatorMachine (14x14) | 
|  | Sequence (14x14) | 
|  | SetAsRoot (14x14) | 
|  | Ship (14x14) | 
|  | ShipmentLocation (14x14) | 
|  | ShoppingCart00 (14x14) | 
|  | ShowLevelAbove (14x14) | 
|  | Solution (14x14) | 
|  | SpatialLocation (14x14) | 
|  | Specification (14x14) | 
|  | SpreadsheetFile (14x14) | 
|  | SpreadsheetFileAlias (14x14) | 
|  | SpreadsheetFileTemplate (14x14) | 
|  | Staffed (14x14) | 
|  | Structure (14x14) | 
|  | StructureView (14x14) | 
|  | SubOperation (14x14) | 
|  | SubstitutedAlert (14x14) | 
|  | SubstitutedNotification (14x14) | 
|  | SubstitutedRequest (14x14) | 
|  | SubstitutedResponse (14x14) | 
|  | SubstitutedTask (14x14) | 
|  | SuccessMessage (14x14) | 
|  | Supplier (14x14) | 
|  | Synchronize (14x14) | 
|  | Table (14x14) | 
|  | TableOperation (14x14) | 
|  | Tag00 (14x14) | 
|  | Tank (14x14) | 
|  | TaskMessage (14x14) | 
|  | TaxVariance (14x14) | 
|  | TbDetail (14x14) | 
|  | TbFilter (14x14) | 
|  | TbQuery (14x14) | 
|  | TbRefresh (14x14) | 
|  | TbSettings (14x14) | 
|  | TeamDriver (14x14) | 
|  | TechicalPerformance (14x14) | 
|  | TechnicalAvailability (14x14) | 
|  | TechnicalDatabase (14x14) | 
|  | TechnicalEvent (14x14) | 
|  | TechnicalHost (14x14) | 
|  | TechnicalInstance (14x14) | 
|  | TechnicalMetric (14x14) | 
|  | TechnicalSenario (14x14) | 
|  | TechnicalSystem (14x14) | 
|  | TextPad (14x14) | 
|  | ThroughputAndBacklog (14x14) | 
|  | Tractor (14x14) | 
|  | Trailer (14x14) | 
|  | Train (14x14) | 
|  | Translate (14x14) | 
|  | TrendConstant (14x14) | 
|  | TrendDecreasing (14x14) | 
|  | TrendIncreasing (14x14) | 
|  | TrendStrongDownward (14x14) | 
|  | TrendStrongUpward (14x14) | 
|  | Truck (14x14) | 
|  | Turbine (14x14) | 
|  | Undo (14x14) | 
|  | Unfavorite (14x14) | 
|  | UnknownIPart (14x14) | 
|  | UnknownStatus (14x14) | 
|  | UnkownFile (14x14) | 
|  | UnkownFileAlias (14x14) | 
|  | Unlocked (14x14) | 
|  | Upload (14x14) | 
|  | Utilization (14x14) | 
|  | UtilizationCollapse (14x14) | 
|  | UtilizationExpand (14x14) | 
|  | ValueWillChangeOn (14x14) | 
|  | VectorFileTemplate (14x14) | 
|  | VectorgraphicFile (14x14) | 
|  | VectorgraphicFileAlias (14x14) | 
|  | VerticalBarChart (14x14) | 
|  | VideoFile (14x14) | 
|  | VideoFileAlias (14x14) | 
|  | Virtual (14x14) | 
|  | VirtualFolderFile (14x14) | 
|  | VirtualFolderFileAlias (14x14) | 
|  | WaitingForApproval (14x14) | 
|  | Warehouse (14x14) | 
|  | WarningMessage (14x14) | 
|  | WebService (14x14) | 
|  | Well (14x14) | 
|  | WellCompletion (14x14) | 
|  | WhereUsed (14x14) | 
|  | Wiki (14x14) | 
|  | Workspace (14x14) | 
|  | WorkspaceContent (14x14) | 
|  | WrongReference (14x14) | 
|  | XSLTransformation (14x14) | 
|  | XmlFile (14x14) | 
|  | XmlFileAlias (14x14) | 
|  | XpsFile (14x14) | 
|  | XpsFileAlias (14x14) | 
|  | YellowLed (14x14) | 
|  | ZipFile (14x14) | 
|  | ZipFileAlias (14x14) | 
2.ALV状态栏增加按钮:创建 / 修改 / 保存
2.1添加按钮
进入控制器COMPONENTCONTROLLER
 
方法INIT_ALV初始化,新增4个按钮:新增/修改/删除/保存 ,代码红色部分。
method init_alv . data: lo_nd_zsmm_mat type ref to if_wd_context_node, lo_cmp_alv type ref to if_wd_component_usage, lo_cmpif_alv type ref to iwci_salv_wd_table, lo_config type ref to cl_salv_wd_config_table. * alv component usage lo_cmp_alv = wd_this->wd_cpuse_alv_mat( ). if lo_cmp_alv->has_active_component( ) is initial. lo_cmp_alv->create_component( ). endif. * set data node lo_nd_zsmm_mat = wd_context->get_child_node( name = wd_this->wdctx_zsmm_material ). lo_cmpif_alv = wd_this->wd_cpifc_alv_mat( ). lo_cmpif_alv->set_data( lo_nd_zsmm_mat ). * configure alv lo_config = lo_cmpif_alv->get_model( ). * table settings lo_config->if_salv_wd_table_settings~set_fixed_table_layout( value = abap_true ). lo_config->if_salv_wd_table_settings~set_visible_row_count( 11 ). lo_config->if_salv_wd_table_settings~set_width( '100%' ). lo_config->if_salv_wd_table_settings~set_footer_visible( if_salv_wd_c_table_settings=>footer_visible_on_demand ). lo_config->if_salv_wd_table_settings~set_scrollable_col_count( 11 ). lo_config->if_salv_wd_table_settings~set_read_only( abap_false ). lo_config->if_salv_wd_table_settings~set_data_check( if_salv_wd_c_table_settings=>data_check_on_cell_event ). lo_config->if_salv_wd_std_functions~set_view_list_allowed( abap_false ). lo_config->if_salv_wd_std_functions~set_pdf_allowed( abap_false ). lo_config->if_salv_wd_std_functions~set_edit_check_available( abap_false ). lo_config->if_salv_wd_std_functions~set_edit_insert_row_allowed( abap_false ). lo_config->if_salv_wd_std_functions~set_edit_append_row_allowed( abap_false ). lo_config->if_salv_wd_std_functions~set_edit_delete_row_allowed( abap_false ). * table toolbar data: lo_fun_add type ref to cl_salv_wd_function, lo_btn_add type ref to cl_salv_wd_fe_button, lo_fun_chg type ref to cl_salv_wd_function, lo_btn_chg type ref to cl_salv_wd_fe_button, lo_fun_del type ref to cl_salv_wd_function, lo_btn_del type ref to cl_salv_wd_fe_button, lo_fun_save type ref to cl_salv_wd_function, lo_btn_save type ref to cl_salv_wd_fe_button. lo_fun_add = lo_config->if_salv_wd_function_settings~create_function( 'BT_ADD' ). create object lo_btn_add. lo_btn_add->set_text( wd_assist->get_text( key = 'B01' ) ). lo_btn_add->set_image_source( value = '~Icon/AddRow' ). lo_fun_add->set_editor( lo_btn_add ). lo_fun_chg = lo_config->if_salv_wd_function_settings~create_function( 'BT_CHG' ). create object lo_btn_chg. lo_btn_chg->set_text( wd_assist->get_text( key = 'B02' ) ). lo_btn_chg->set_image_source( value = '~Icon/EditChangedItem' ). lo_fun_chg->set_editor( lo_btn_chg ). lo_fun_del = lo_config->if_salv_wd_function_settings~create_function( 'BT_DEL' ). create object lo_btn_del. lo_btn_del->set_text( wd_assist->get_text( key = 'B03' ) ). lo_btn_del->set_image_source( value = '~Icon/DeletedItem' ). lo_fun_del->set_editor( lo_btn_del ). lo_fun_save = lo_config->if_salv_wd_function_settings~create_function( 'BT_SAVE' ). create object lo_btn_save. lo_btn_save->set_text( wd_assist->get_text( key = 'B04' ) ). lo_btn_save->set_image_source( value = '~Icon/Save' ). lo_fun_save->set_editor( lo_btn_save ). * table columns and column header data: lt_columns type salv_wd_t_column_ref, ls_column type salv_wd_s_column_ref, lo_column type ref to cl_salv_wd_column, lo_header type ref to cl_salv_wd_column_header, lo_dropdown_by_key type ref to cl_salv_wd_uie_dropdown_by_key, lo_input_field type ref to cl_salv_wd_uie_input_field, lo_text_view type ref to cl_salv_wd_uie_text_view, lv_field_name type string, lv_length type i. lt_columns = lo_config->if_salv_wd_column_settings~get_columns( ). loop at lt_columns into ls_column. lo_column = ls_column-r_column. lo_header = lo_column->get_header( ). lo_header->set_ddic_binding_field( if_salv_wd_c_column_settings=>ddic_bind_none ). case ls_column-id. when 'MATNR'. "lo_column->set_width( value = '18' ). lo_header->set_text( value = wd_assist->get_text( key = 'A01' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'ERNAM'. "lo_column->set_width( value = '12' ). lo_header->set_text( value = wd_assist->get_text( key = 'A02' ) ). when 'ERSDA'. "lo_column->set_width( value = '8' ). lo_header->set_text( value = wd_assist->get_text( key = 'A03' ) ). when 'MTART'. "lo_column->set_width( value = '4' ). lo_header->set_text( value = wd_assist->get_text( key = 'A04' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'MBRSH'. "lo_column->set_width( value = '1' ). lo_header->set_text( value = wd_assist->get_text( key = 'A05' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'MATKL'. "lo_column->set_width( value = '9' ). lo_header->set_text( value = wd_assist->get_text( key = 'A06' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'MEINS'. "lo_column->set_width( value = '3' ). lo_header->set_text( value = wd_assist->get_text( key = 'A07' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'GROES'. "lo_column->set_width( value = '32' ). lo_header->set_text( value = wd_assist->get_text( key = 'A08' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'SPART'. "lo_column->set_width( value = '2' ). lo_header->set_text( value = wd_assist->get_text( key = 'A09' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'WERKS'. "lo_column->set_width( value = '4' ). lo_header->set_text( value = wd_assist->get_text( key = 'A10' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when 'EKGRP'. "lo_column->set_width( value = '3' ). lo_header->set_text( value = wd_assist->get_text( key = 'A11' ) ). create object lo_input_field exporting value_fieldname = ls_column-id. lo_input_field->set_read_only_fieldname( value = 'FG_READ' ). lo_column->set_cell_editor( lo_input_field ). when others. lo_column->set_visible( value = cl_wd_uielement=>e_visible-blank ). endcase. endloop. endmethod.
ALV按钮增加后需要触发,则需要添加ON_FUNCTION事件,如下图BT_ALV_FUN:
 
BT_ALV_FUN事件代码:
method bt_alv_fun . case r_param->id. when 'BT_ADD'. bt_add( ). "新增 when 'BT_CHG'. bt_chg( ). "修改 when 'BT_DEL'. bt_del( ). "删除 when 'BT_SAVE'. bt_save( ). "保存 when others. endcase. endmethod.
上述代码中不同的按钮调用不同的方法,该方法需要在控制器中进行定义:

BT_ADD代码部分:
method bt_add . data: lo_nd_zsmm_mat type ref to if_wd_context_node, lo_el_zsmm_mat type ref to if_wd_context_element, ls_zsmm_mat type wd_this->element_zsmm_material. lo_nd_zsmm_mat = wd_context->get_child_node( name = wd_this->wdctx_zsmm_material ). ls_zsmm_mat-fg_read = abap_false. "设置ALV字段值只读 ls_zsmm_mat-ersda = sy-datum. "日期 ls_zsmm_mat-ernam = sy-uname. "用户 lo_el_zsmm_mat = lo_nd_zsmm_mat->bind_structure( new_item = ls_zsmm_mat "new_item 结构新增 new_items 内表新增 set_initial_elements = abap_false "abap_false保留原始记录并新增行 index = 1 "第1行索引 ). lo_nd_zsmm_mat->set_lead_selection( lo_el_zsmm_mat ). data: lo_config type ref to cl_salv_wd_config_table, ls_field type salv_wd_s_field_ref, lt_field type salv_wd_t_field_ref. lo_config = wd_this->wd_cpifc_alv_mat( )->get_model( ). lt_field = cl_salv_wd_model_table_util=>if_salv_wd_table_util_fields~get_filtered_fields( lo_config ). "过滤清空 loop at lt_field into ls_field. ls_field-r_field->if_salv_wd_filter~delete_filter_rules( ). endloop. wd_this->wd_cpifc_alv_mat( )->refresh( ). "设置焦点 wd_this->wd_cpifc_alv_mat( )->set_focus( column = 'MATNR' index = 1 ). endmethod.
BT_CHG代码部分:
method bt_chg . data: lo_nd_zsmm_mat type ref to if_wd_context_node, lt_el_zsmm_mat type wdr_context_element_set, lo_el_zsmm_mat type ref to if_wd_context_element, ls_zsmm_mat type wd_this->element_zsmm_material, lt_zsmm_mat type wd_this->elements_zsmm_material, lo_api_controller type ref to if_wd_controller, lo_message_manager type ref to if_wd_message_manager. data: lv_iserror type abap_bool. clear: wd_this->gv_message. lo_api_controller ?= wd_this->wd_get_api( ). "消息 lo_message_manager = lo_api_controller->get_message_manager( ). lo_nd_zsmm_mat = wd_context->get_child_node( name = wd_this->wdctx_zsmm_material ). "获取选择行数据 lt_el_zsmm_mat = lo_nd_zsmm_mat->get_selected_elements( including_lead_selection = abap_true ). if lt_el_zsmm_mat is initial. wd_this->gv_message = wd_assist->get_text( key = 'M01' ). lo_message_manager->report_error_message( message_text = wd_this->gv_message ). return. endif. clear: lt_zsmm_mat, lv_iserror. loop at lt_el_zsmm_mat into lo_el_zsmm_mat. clear: ls_zsmm_mat. lo_el_zsmm_mat->get_static_attributes( importing static_attributes = ls_zsmm_mat ). if ls_zsmm_mat-groes is initial. wd_this->gv_message = wd_assist->get_text( key = 'M02' ). lo_message_manager->report_error_message( message_text = wd_this->gv_message ). lv_iserror = abap_true. exit. endif. append ls_zsmm_mat to lt_zsmm_mat. endloop. if lv_iserror eq abap_true. return. endif. loop at lt_el_zsmm_mat into lo_el_zsmm_mat. clear: ls_zsmm_mat. lo_el_zsmm_mat->get_static_attributes( importing static_attributes = ls_zsmm_mat ). ls_zsmm_mat-fg_read = abap_false. lo_el_zsmm_mat->set_static_attributes( static_attributes = ls_zsmm_mat ). endloop. endmethod.
BT_DEL代码部分:
method bt_del . data: lo_window_manager type ref to if_wd_window_manager, lo_popup_window type ref to if_wd_window, lo_cmp_api type ref to if_wd_component, lt_text type string_table, lv_titlebar type string. lo_cmp_api = wd_this->wd_get_api( ). lo_window_manager = lo_cmp_api->get_window_manager( ). lv_titlebar = wd_assist->get_text( key = 'M03' ). wd_this->gv_message = wd_assist->get_text( key = 'M04' ). append wd_this->gv_message to lt_text. call method lo_window_manager->create_popup_to_confirm exporting text = lt_text button_kind = if_wd_window=>co_buttons_yesno message_type = if_wd_window=>co_msg_type_warning close_button = abap_false window_title = lv_titlebar window_position = if_wd_window=>co_center default_button = if_wd_window=>co_button_yes receiving result = lo_popup_window. try. lo_popup_window->popup_to_confirm->subscribe_to_button_event( controller = lo_cmp_api handler_name = 'HNDL_POP_YES' button = if_wd_window=>co_button_yes ). catch cx_wdr_rt_exception. endtry. try. lo_popup_window->popup_to_confirm->subscribe_to_button_event( controller = lo_cmp_api handler_name = 'HNDL_POP_NO' button = if_wd_window=>co_button_no ). catch cx_wdr_rt_exception. endtry. lo_popup_window->open( ). endmethod.
上述代码中增加了弹出窗口POPUP_TO_CONFIRM,则需要针对不同的选择结果添加不同的触发事件。
选择'是',则调用HNDL_POP_YES,选择'否',则调用HNDL_POP_NO。
两个事件需要在控制器中添加:

HNDL_POP_YES事件代码:
method hndl_pop_yes . data: lo_nd_zsmm_mat type ref to if_wd_context_node, lt_el_zsmm_mat type wdr_context_element_set, lo_el_zsmm_mat type ref to if_wd_context_element, ls_zsmm_mat type wd_this->element_zsmm_material, lt_zsmm_mat type wd_this->elements_zsmm_material, lo_api_controller type ref to if_wd_controller, lo_message_manager type ref to if_wd_message_manager. data: lv_iserror type abap_bool. field-symbols: <fs_zsmm_mat> type wd_this->element_zsmm_material. clear: wd_this->gv_message. lo_api_controller ?= wd_this->wd_get_api( ). "消息 lo_message_manager = lo_api_controller->get_message_manager( ). lo_nd_zsmm_mat = wd_context->get_child_node( name = wd_this->wdctx_zsmm_material ). lo_el_zsmm_mat = lo_nd_zsmm_mat->get_element( ). "获取选择行数据 * lt_el_zsmm_mat = lo_nd_zsmm_mat->get_selected_elements( including_lead_selection = abap_true ). * if lt_el_zsmm_mat is initial. * wd_this->gv_message = wd_assist->get_text( key = 'M01' ). * lo_message_manager->report_error_message( message_text = wd_this->gv_message ). * return. * endif. clear: lt_zsmm_mat, lv_iserror. lo_el_zsmm_mat->get_static_attributes( importing static_attributes = ls_zsmm_mat ). lo_nd_zsmm_mat->get_static_attributes_table( importing table = lt_zsmm_mat ). loop at lt_zsmm_mat assigning <fs_zsmm_mat> where matnr = ls_zsmm_mat-matnr. delete lt_zsmm_mat. endloop. lo_nd_zsmm_mat->bind_table( lt_zsmm_mat ). lo_message_manager->report_success( message_text = wd_assist->get_text( key = 'M05') ). endmethod.
HNDL_POP_NO触发事件暂不做处理。
BT_SAVE保存方法暂不做处理。
2.2测试
选择WebDynpro应用程序,点击执行按钮。

界面新增了4个按钮:新建/修改/删除/保存。
查询记录:

新建:

修改:

删除:



上述步骤基本完成ALV控件的新建/修改/删除操作。
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号