pense bête abap

Upload: fays-tkt

Post on 13-Jul-2015

1.937 views

Category:

Documents


1 download

TRANSCRIPT

Pense bte par type de traitement

Vers. V.2.0

Date 12/11/2002

Author E. Bertot

Visa

Reviewed by

Visa

Validated by

Visa

Dernier enregistrement le 17/04/09

page 1 / 77

Ecran de Selection __________________________________________________________ 5Select-options : ________________________________________________________________________ 5 Parameters : __________________________________________________________________________ 6 Selection-screen : ______________________________________________________________________ 6 Exemple :_____________________________________________________________________________ 7

Declaration des donnes______________________________________________________ 7type de donnes________________________________________________________________________ 7 Typage Interne et Externe _______________________________________________________________ 8 Tableau ou table interne ________________________________________________________________ 9

Cration de REPORT :______________________________________________________ 11Report : _____________________________________________________________________________ 11 Write : ______________________________________________________________________________ 11 Zones Systemes _______________________________________________________________________ 11 Modify current line ___________________________________________________________________ 11 Selection de Zones : ___________________________________________________________________ 11 Position du curseur : __________________________________________________________________ 11 Imprimer :___________________________________________________________________________ 11 Using N edit mask :___________________________________________________________________ 11 Reserve Llines:____________________________________________________________________ 11 Set left scroll-boundary ________________________________________________________________ 11 New-line no-scrolling : _________________________________________________________________ 12 Print control : ________________________________________________________________________ 12 Structure dun programme REPORT______________________________________________________ Les vnements possibles _____________________________________________________________ Mise en forme de len tte de ltat ______________________________________________________ Mise en forme de len-tte de colonnes sans write (tat simple) ________________________________ criture dune ligne ___________________________________________________________________ commentaires :______________________________________________________________________ 13 14 14 14 14 14

Report : exemple avec dbranchement sur une sous-liste_____________________________________ 15 Report : conseil pour lalignement des colonnes ____________________________________________ 16 dbranchement (touches , boutons) sur plusieurs transaction aprs slection dune ligne __________ 17 Cration des boutons de dbranchement __________________________________________________ 17 Cration du formulaire partir du programme _____________________________________________ 17 Association touche fonction avec transaction : _____________________________________________ 18 Positionnement des boutons dans la barre doutils applicative ________________________________ 18 Activation des boutons doutils non standards _____________________________________________ 18 Ecrire les donnes_____________________________________________________________________ 19

Selection des donnes :______________________________________________________ 20LES AGGREGATS ___________________________________________________________________ 21 LES VUES___________________________________________________________________________ 21 Les vues (Quintet)__________________________________________________________________ 21 Instruction JOIN _____________________________________________________________________ 22 Les index ____________________________________________________________________________ 22 LA BUFFERISATION_________________________________________________________________ 22Dernier enregistrement le 17/04/09 page 2 / 77

LA MISE A JOUR ____________________________________________________________________ 22 LES INDEX _________________________________________________________________________ 23 Table interne : alimentation ____________________________________________________________ 23 Traitement itratif sut table SAP partir dune table interne : _______________________________ 23 SELECTION DES CHAMPS ___________________________________________________________ 23 INSERT_____________________________________________________________________________ 23 Les SELECT imbriqus : FOR ALL ENTRIES ____________________________________________ 24 Tables transparentes tables internes______________________________________________________ 25 SELECT : lmentaire, boucle __________________________________________________________ 26 SELECT (T_FIELDS) FROM (P_TABLE) _______________________________________________ 26

Traitement des donnes : ____________________________________________________ 28Gestion d'une table interne : ____________________________________________________________ 29 Table transparente ____________________________________________________________________ 29 Gestion dune table transparente ________________________________________________________ 29 Tableau ou table interne _______________________________________________________________ 30 Lecture, tri , rupture dune table interne__________________________________________________ 32 Suppression __________________________________________________________________________ 33 Tables ______________________________________________________________________________ 33 Boucle ____________________________________________________________________________ 34 Lecture unitaire _____________________________________________________________________ 34 Oprateur : __________________________________________________________________________ 34 IF Conditions ____________________________________________________________________ 35

Sous-programme : FORM______________________________________________________________ 35 Subroutines ef fonctions________________________________________________________________ 35 Oprations sur chanes de caractres _____________________________________________________ Concatenate ________________________________________________________________________ Split ______________________________________________________________________________ shift ______________________________________________________________________________ Replace ___________________________________________________________________________ translate ___________________________________________________________________________ Search ____________________________________________________________________________ Concatnation / division dune chaine____________________________________________________ 37 37 37 37 37 37 37 38

Call transaction ______________________________________________________________________ 38 Code retour ________________________________________________________________________ 39 Zones systme ______________________________________________________________________ 39

Cration de fichier en Sortie. _________________________________________________ 40Les fichiers __________________________________________________________________________ Ouverture, transfert, lecture, fermeture ___________________________________________________ WS_DOWNLOAD / WS_UPLOAD_____________________________________________________ Exemple :__________________________________________________________________________ 40 40 41 42

Batch input _______________________________________________________________ 43Les modules fonction __________________________________________________________________ 43 Dmarche ___________________________________________________________________________ 43 Mode de traitement ___________________________________________________________________ 45 Mode correction ______________________________________________________________________ 45 Statut du dossier ______________________________________________________________________ 45 Call transaction ______________________________________________________________________ 46Dernier enregistrement le 17/04/09 page 3 / 77

Code retour ________________________________________________________________________ 46 Zones systme ______________________________________________________________________ 46 Instructions utiliser : suivant le type de lancement : diffr ou immdiat ______________________ 47 Lancement dun batch input ____________________________________________________________ 48 Depuis un pgm : submit_______________________________________________________________ 48 Ecran de lancement du dossier du Batch Input : SM35 _______________________________________ 48 Batch Input Standard _________________________________________________________________ 49 Batch input specifique _________________________________________________________________ 50 Direct input __________________________________________________________________________ 51

Formulaires ______________________________________________________________ 52Composants et navigation ______________________________________________________________ 52 Modification lment de texte dune fentre _______________________________________________ 52 Les symboles _________________________________________________________________________ systme ___________________________________________________________________________ Les symboles standards : table TTDGT __________________________________________________ Les symboles de textes : DEFINE &symbole& = valeur: INCLUDE/symboles/TexteI_____________ Les symboles de programme ___________________________________________________________ Options de formatage_________________________________________________________________ Commandes particulires interessantes de la fentre principale MAIN __________________________ 53 53 53 53 53 53 53

Lien entre formulaire et pgm ___________________________________________________________ 53 Appel depuis un formulaire : exemple conversion dun montant ______________________________ 53

Programmes ______________________________________________________________ 56attributs dun programme: _____________________________________________________________ 56

Gnralits _______________________________________________________________ 58Definitions :__________________________________________________________________________ 58 Exportation captures diverses : pgm, cran,.. ______________________________________________ 58 Quelques transactions _________________________________________________________________ Transaction pour la programmation______________________________________________________ TRANSACTIONS DE CONTRLE D'ACCS____________________________________________ TRANSACTIONS DE LOGISTIQUE ___________________________________________________ TRANSACTIONS DE ressources humaines_______________________________________________ TRANSACTIONS DE VENTES ET DISTRIBUTION ______________________________________ TRANSACTIONS D'ADMINISTRATION FINANCIRE ___________________________________ 59 59 60 60 62 62 62

Transactions par ordres alphabetiques ___________________________________________________ 63

TRANSACTIONS__________________________________________________________ 63 TABLES _________________________________________________________________ 67Modle conceptuel MM ________________________________________________________________ 67 Dfinition MM _______________________________________________________________________ Dfinition dune DA _________________________________________________________________ Types de DA _______________________________________________________________________ Dfinition dun contrat _______________________________________________________________ Types de contrat ______________________________________________________________________ Dfinition dune commande ___________________________________________________________ Types de Commande _________________________________________________________________ La Fiche article _____________________________________________________________________ La Fiche fournisseur _________________________________________________________________ Dfinitions _________________________________________________________________________ Les groupes de compte _______________________________________________________________ Dfinition Du schma partenaire _______________________________________________________ Dfinitions La Fiche-Info Achat ou FIA __________________________________________________ Dfinitions Le Rpertoire des Sources dApprovisionnement Autorises (RSA) __________________Dernier enregistrement le 17/04/09 page 4 / 77

71 71 71 71 71 71 71 72 72 72 72 72 72 72

Dfinitions Les quotas________________________________________________________________ 73 Exemples de tables transparentes utilisables pour optimiser les slections ______________________ 73 Transactions Diverses _________________________________________________________________ 73 Modules sap _________________________________________________________________________ 75 Les subdivisions : _____________________________________________________________________ 75

Ecran de SelectionSelect-options :Structure interne du Select-Options Il existe une table interne correspondant au 'Select-options' (Ex : date). On peut utiliser cette table interne comme toute autre table interne du programme. Description de la table interne : sign I : Including, E : Excluding. Option

Dernier enregistrement le 17/04/09

page 5 / 77

BT : Between CP : Contient le modele, EQ : Equal, NE = different, NB = non entre , LT = inferieur, NP = pas de modele, LE = inferieur ou egal, GT = superieur, GE : Superieur ou egal, Low High valeur basse valeur haute g = valeur du parametre par defaut, default g .. option xx .. Sign s = precision de loption et du signe de ce critere de selection, Default g to h = proposition dun intervalle, Default g to h option xx Sign s = proposition dun intervalle avec option et inclusion / exclusion, Memory id pid = derniere valeur saisie par lutilisateur dans le parametre pid, Matchcode Object mobj = attribution dun matchcode, Modif Id key groupement des champs en vue de modifier ses attributs, No-display = la selection est geree en interne et napparat pas lecran, Lower Case = Parametre non sensible a la casse de la saisie , Obligatory = saisie obligatoire,No-extension = saisier sur une seule ligne, NO-intervals = affichage du bouton fleche choix multiples, Values request = bouton renseignant les valeur possibles (BDL) , Value-request for low/high = bouton renseignant les valeurs basses et hautes(BDL) Help-request = lien avec laide(BDL).

le Parametres Default

Exemple : SELECT-OPTIONS:*compte client p_comcli FOR zecr-zcompteclient. SELECT-OPTIONS: w_bldat FOR bsad-bldat MODIF ID pie. SELECT-OPTIONS : S_HKONT FOR BSEG-HKONT NO-DISPLAY.

Parameters :nom_zone : zone de saisie simple PARAMETERS TYPE PARAMETERS LIKE (lobjet doit tre dclar dans le pgm)

Radio bouton :parameters : p_tole radiobutton group bloc, p_liti radiobutton group bloc, p_depa radiobutton group bloc. Case cocher : parameters : P_CREDOS AS CHECKBOX. LE Parametres Default g = valeur du parametre par defaut, Type typ = type de champ, Decimals dec = nombre de decimales autorise, Like g = attribution dun format existant, Memory id pid = derniere valeur saisie par lutilisateur dans le parametre pid, Matchcode Object mobj = attribution dun matchcode, Modif Id key groupement des champs en vue de modifier ses attributs, No-display = la selection est geree en interne et napparat pas lecran, Lower Case = Parametre non sensible a la casse de la saisie , Obligatory = saisie obligatoire, As checkbox = sous forme de case a cocher : choix entre oui et non , Radiobutton Group radi = offre un seul choix possible dans un groupe de radio-boutons, For Table dbtab = assignation une table, As Matchcode Structure = plusieurs matchcodes, Value-request = bouton renseignant les valeurs possibles, As Matchcode structure = plusieurs matchcodes, Value-reqest = Bouton renseignant les valeurs possibles, Help-request = lien avec laide.

Exemple :

PARAMETERS : p_nomfi2(10) TYPE c DEFAULT 'KEC2'. PARAMETERS: P_CHX1 RADIOBUTTON GROUP TRI DEFAULT 'X'. PARAMETERS: p_bukrs LIKE bbkpf-bukrs OBLIGATORY, p_batch(12) TYPE c OBLIGATORY. PARAMETERS: p_ficin LIKE rlgrap-filename DEFAULT space OBLIGATORY. PARAMETERS: fic_out LIKE filename-fileextern OBLIGATORY. DEFAULT 'D:\usr\sap\SFD\DVEBMGS00\data\test_cordouan_jr'. PARAMETERS: P_CREDOS AS CHECKBOX.

Selection-screen : prparation de lcran de slection.Selection-screen begin of line = definition dune ligne(debut), Selection-screen end of line = fin de line, Selection-screen skip n = saut de ligne, Selection-screen ulline = ligne souligne, Selection-screen Position pos = position du text en colonne, Selection-screen Comment fmt name = insertion de texte, Selection-screen Pushbutton fmt name User-command ucom = insertion dun bouton, Selection-screen Begin of Block block With frame-title text-001 = debut de division de lecran en blocs finir par end of block + titre du block, Selection-screen Function Key n = activivation touches de fonction dans la barre de mene 5 maxi,

Dernier enregistrement le 17/04/09

page 6 / 77

Selection-screen begin of Version ver Text-xxx = definition de version decran de selection, Selection-screen end of Version ver Selection-screen exclude . . = possibilite dexclure des parametres daffichages, Selection-screen Dynamic selections For Table dbtab = selection sur des tables non incluses dans une BDL, Selection-screen Field Selection For Table dbtab = selection des champs dune BDL.

Traitement que lon peut faire sur lcran de slection : *traitement valable pour tous les crans.Loop at scren. If insermod = 1. If screen-name = YC02-BUKRS. Screen-input = 0. Modify screen. Endif. Endif. Andloop. TABLES: bsad. * pour que soit pris en compte les actions sur lcran de slection . SELECTION-SCREEN BEGIN OF BLOCK rad1 WITH FRAME TITLE text-002. PARAMETERS r1 RADIOBUTTON GROUP gr1 USER-COMMAND ucom. PARAMETERS r2 RADIOBUTTON GROUP gr1. SELECTION-SCREEN END OF BLOCK rad1. SELECT-OPTIONS: w_augdt FOR bsad-augdt MODIF ID rap. SELECT-OPTIONS: w_bldat FOR bsad-bldat MODIF ID pie. INITIALIZATION. MOVE 'X' TO r1. PERFORM change_date. AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN. IF screen-group1 = 'RAP'. IF r1 = 'X'. screen-active = '1'. ELSE. screen-active = '0'. ENDIF. MODIFY SCREEN. ENDIF. IF screen-group1 = 'PIE'. IF r2 = 'X'. screen-active = '1'. ELSE. screen-active = '0'. ENDIF. MODIFY SCREEN. ENDIF. ENDLOOP.

Exemple :SELECTION-SCREEN BEGIN OF BLOCK prep_stru WITH FRAME TITLE text-020. *bouton radion preparation des structure BTCI 'oui' SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (37) text-045. PARAMETERS: p_pri1 RADIOBUTTON GROUP pri DEFAULT 'X'. SELECTION-SCREEN COMMENT 42(5) text-043. *bouton radion preparation des structure BTCI 'non' PARAMETERS: p_pri2 RADIOBUTTON GROUP pri . SELECTION-SCREEN COMMENT 52(5) text-044. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN SKIP. *bouton radion reprise par rapport a ZECR_fac 'non' SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (37) text-021. PARAMETERS: p_rep1 RADIOBUTTON GROUP rep DEFAULT 'X'. SELECTION-SCREEN COMMENT 42(5) text-043. *bouton radion reprise par rapport a ZECR_fac 'oui' PARAMETERS: p_rep2 RADIOBUTTON GROUP rep . SELECTION-SCREEN COMMENT 52(5) text-044. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN SKIP. SELECTION-SCREEN BEGIN OF LINE. * nom logique du fichier traiter SELECTION-SCREEN COMMENT (27) text-041. PARAMETERS :p_nomfic(10) TYPE c DEFAULT 'KEC2'. *Lot de traitement repris SELECTION-SCREEN COMMENT 42(25) text-040. PARAMETERS :p_lot_p(10) TYPE c. "Lot de traitement repris SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK prep_stru.SELECTION-SCREEN: POSITION 40, COMMENT 40(10) TEXT-024.

Declaration des donnestype de donnes P(*) I F N(*) C(*)Dernier enregistrement le 17/04/09

nombre condens entier virgule flottante texte numrique texte

packed integer floating numeric char

8 x x 1 1

1-16 64ko max

1-max 1-maxpage 7 / 77

D T X(*)

date (aaaammjj) heure(hhmmss) hexadecimal

date time

8 6 1

8 6 1-max

(*) : la longueur en octets peut tre prcise. Pour ces types de donnes Typage Interne et Externe Les typages utiliss dans le dictionnaire de donnes prennent en compte des masques d'dition l'cran. Externe char(x) cuky curr decimals dats int4 lang numc(x) tims Interne c(x) c(5) p(n/2 + 1) m d i c(1) n(x) t Description Character Currency Key Currency n digits, m dec Date Integer Language Numeric char Time

Types de donnees :Virgule flottante, STRING = chaine de

C = caractere, N = Numerique , D = date , T = heure , X = Octet, I = Integer , P = nb packe, F = caractere, Xstring = Chaine octet

Type

Type description Length Initial value positionC Text (Character) 1 Space Centrer gauche N Numeric text 1 '00...0' Droite D Date YYYYMMDD) 8 '00000000'

T Time (HHMMSS) 6 000000'

X Hexadecimal 1 X'00' Droite I Whole number (integer) 4 0 Droite P Packed number 8 0 Droite F Floating point number 8 '0.0' droite

Dernier enregistrement le 17/04/09

page 8 / 77

dclaration de donnes DATA:

nom-donne_1 nom_donne_2 Firsrt-line SUM1 (5)

TYPE I, TYPE D, TYPE I VALUE 1, TYPE P DECIMALS 2.

type Dclaration de type : idem dclaration avec TYPES la place de DATA Utilisation d'un type : DATA : nom_donne_3 TYPE nom_donne_2 , nom_donne_4 LIKE nom_donne_3 exemple de dfinition dune variable : DATA : (longueur-zone) TYPE : W-Toto(12) TYPE C DATA : LIKE DATA : PI TYPE P [DECIMALS 4] [VALUE 3.1415]. Exemple :DATA P_TEXT(88). DATA P_GREEN LIKE ICON-ID. . ******************************* "*******declaration dun parametre id************************************************** DATA MEMORY_ID_ART_DIV(30) VALUE 'TOTO ' ********************************Constante******************************************************* CONSTANTS WC_ST LIKE MARC-MMSTA VALUE 'ST' * ranges *il faut que la variable soit dclar RANGES: r_dec01 FOR w_typfc.

Tableau ou table interne

Qu'est-ce qu'une table interne ? La table interne peut tre un snapshot de la table de la base de donne, ou un moyen de stockage temporaire de donnes. En utilisant les tables internes, vous n'avez pas vous soucier de l'allocation dynamique de mmoire, gre par le systme.

La Header Line Lorsque l'on dclare une table interne, il est possible de lui attacher une 'Header Line', c'est dire une zone dchange entre la table interne et le programme. S'il n'y a pas de 'Header Line', il faut dfinir un enreg. pour pouvoir manipuler les enregistrement de la table interne.

La Header Line

Header line implicite data : begin of itab_salari occurs 10, include structure str_salari, end of itab_salari. Lorsque la dclaration fait appel la dfinition de tous les champs de manire lmentaire, ou fait rfrence une structure, la header line est cre automatiquement. Header line explicite data itab_salari like salari occurs 10 with header line. Lorsque la dclaration fait rfrence une dfinition de table transparente, la header line nest pas cre automatiquement.

dclarationChaine de zone (avec OCCURS cela correspond une table interne) DATA: Zone-1 type I, BEGIN OF groupe-zone [OCCURS ], (la table est gnre avec un HEADER LINE) zone-2 TYPE..., zone-3 LKE..., END OF groupe-zone. adressage : groupe-zone-zone-2 DATA: Zone-1 type I,Dernier enregistrement le 17/04/09 page 9 / 77

BEGIN OF groupe-zone [OCCURS ]. INCLUDE STRUCTURE . END OF groupe-zone.

Exemple :******************************** table interne avec ajout de champ et cr sur un includ******************************* DATA: BEGIN OF WT_VISU OCCURS 0. INCLUDE STRUCTURE ZMM_ART_STK_T. DATA: NAME_LAST LIKE ADRP-NAME_LAST, "Nom NAME_FIRST LIKE ADRP-NAME_FIRST, Prenom TELNR_LONG LIKE ADR2-TELNR_LONG, "n tel BUILDING LIKE ADCP-BUILDING, "Site EQUI LIKE MARA-MATNR, "equivalence ETAT LIKE ICON-ID, "bloqu/non bloqu END OF WT_VISU. :*******************************dclaration dune table field-groups******************************************* FIELD-GROUPS HEADER, DETAIL. *****************************************structure******************************************************************* DATA : BEGIN OF WT_MAJ_CRE MATNR LIKE MARC-MATNR, ETFZ1 LIKE EKPO-ETFZ1, FXHOR LIKE MARC-FXHOR, KZSTU LIKE EKPO-KZSTU, END OF WT_MAJ_CRE. *********************************structure pour recuperer les vues ***************************************************** DATA: BEGIN OF BDC OCCURS 0 INCLUDE STRUCTURE BDCDATA. DATA: END OF BDC. * table interne pour eviter les acceds zdec01 DATA : BEGIN OF t_stru_kec_ex . INCLUDE STRUCTURE zaa_kec_cordouan_1n. DATA : compteur TYPE z_compteur_fc. DATA : END OF t_stru_kec_ex.

* Declaration du type de lastructures KEC de travail completees TYPES : BEGIN OF t_stru_kec_c. INCLUDE STRUCTURE zaa_kec_cordouan_1n. TYPES : compteur TYPE z_compteur_fc, END OF t_stru_kec_c. *declaration de la table de la structure TYPES tt_stru_kec_c TYPE STANDARD TABLE OF t_stru_kec_c. **declaration de la table interne avec entete DATA : itab_kec_c TYPE t_stru_kec_c OCCURS 100 WITH HEADER LINE. * structure avec donnees + une autre structure incluse. DATA : BEGIN OF t_struc_zecr_btci. DATA : w_bschl_d LIKE zdec03-z_bschl_d, " cle comptable w_bschl_c LIKE zdec03-z_bschl_d, " cle comptable w_collectif LIKE knb1-akont, " cpt gene. collec w_erreur_fic(1) TYPE c, " traitment fichie w_erreur_typ(1) TYPE c, " type de piece w_erreur_maj_zecr_excl_zdec TYPE c, " pas de code exclu w_erreur_comp_imput TYPE c. " compte a impute INCLUDE STRUCTURE itab_kec_c. DATA : END OF t_struc_zecr_btci. * table interne du fichier BTCI DATA : BEGIN OF t_out OCCURS 0, donnees(2379) TYPE c, END OF t_out.

INCLUDE de programme . INCLUDE zbccommun. INCLUDE zbc_kec.

Dernier enregistrement le 17/04/09

page 10 / 77

Cration de REPORT :Report : Le nom du programme ne peut exceder plus de huit caracteres.Loption NO STRANDARD PAGE HEADING supprime laffichage de lintitul du programme au debut de chaque page ddition dfini dans ses attributs lors de sa cration.

Write :Write : / Bienvenue dans mon programme Intensified Hotspot Inverse Color , . Write At /() . = Edition du f sur la ligne (/) en position sur une longueur Color : coloration de ledition en arriere plan ,1 bleu gris,2 gris clair, 3 jaune,4 bleu vert, 5 vert, 6 rouge, 7 violet. Inverse Color = coloration direct de ledition, Intensified color = les couleurs sont intensifiees, Hotspots = main Write Left-justified =cadrage a gauche, Centered = centrage, Right-justified = cadrage au droite, Under en dessous ,No-gap = suppressions des colonnes de sparations, No-Zero = Sup. des zero initiaux (type N,P),Decimals = decimals apres la virgule.

Zones Systemes pour liste secondaire : Sy-lsind = numero de liste ,Sy-lisel = pour selectionner une ligne et recuprer le contenue,Hide cette instruction permet de memoriser le contenue des zone cle ou autre pour une liste seconddaire, Sy-curow = pos du curseur(ligne), sy-cucol = pos du curseur en colonne, Sy-cpage = numero de la page courante, sy-staco = 1er colonne de la liste affichee a lecran, sy-staro = premiere ligne de la liste affichee a lecran, sy-listi = index du niv. De la liste selectionne, Sy-lilli = n de la ligne selectionnee.

Modify current linecette instruction traite la dernier ligne lue dans la liste courante et permet de modifier des contenus de zone ou des attributs decranpour les zones ou les lignes dune liste. Window Starting At Ending At : pour ajouter une fenetre en coordonnee. With Frame Title : Permezt dassocier un titre a une fenetre.

Selection de Zones :Get cursor field Value = ces instruction permettent de collecter interractivement des informations complmentaire Get cursor line . relatives une zone que lutilisateur dtermin avec le curseur. Field = zone ddition, Value= valeur dite, Line = variante permettant de rechercher le curseur de maniere dynamique dans les crans

Position du curseur :Set cursor field . = dans la zone dcran zone 1, Set cursor . Set cursor line

Imprimer :fonction GET_print_paramters : pour imprimer

Using N edit mask :Utilise ou pas le masque de saisie

Reserve Llines:Evite la separation de Nlignes par une rupture de page.

Set left scroll-boundary(COULUMN) : Colonne de gauche fige dans une liste

.page 11 / 77

Dernier enregistrement le 17/04/09

New-line no-scrolling :Fige une ligne

Print control :Definit le format de limpression

Exemple :IF sy-subrc NE 0 . FORMAT COLOR 6 INTENSIFIED. WRITE : text-t10 . " err SKIP. FORMAT RESET. ENDIF.

Write : /3 text-004 color 1 intensified on, 15 tabcom-vkbur color 1 intensified off, 24 text-040 color 5 intensified on, 44 tabcom-netwr color 5 intensified off, / sy-uline.

FORMAT INTENSIFIED ON. WRITE : /10 'ZFIE0020 - COMPTE-RENDU d''''exction du', sy-datum , '', sy-uzeit . WRITE AT /5(50) sy-uline. FORMAT INTENSIFIED ON. ULINE AT /1(208). WRITE : /1 sy-vline , 3 text-026 COLOR 3, 11 sy-vline, 13 text-027 COLOR 3, 26 sy-vline, 28 text-028 COLOR 3, 47 sy-vline, 49 text-029 COLOR 3, 68 sy-vline, 70 text-030 COLOR 3, 88 sy-vline, 90 text-031 COLOR 3, 110 sy-vline, 112 text-032 COLOR 3, 130 sy-vline, 132 text-033 COLOR 3, 151 sy-vline, 153 text-034 COLOR 3, 180 sy-vline, 182 text-035 COLOR 3, 208 sy-vline. . ULINE AT /1(208). FORMAT INTENSIFIED OFF. *lecture de tab_zecr_btci pour compter les dif. statut* PERFORM lecture_statut_purge. SORT t_cpt_rendu_purg BY z_zlottrt. LOOP AT t_cpt_rendu_purg. MOVE-CORRESPONDING t_cpt_rendu_purg TO s_cpt_rendu_purg. AT NEW z_zlottrt. WRITE : /1 sy-vline , s_cpt_rendu_purg-z_znomficlog UNDER text-026, 11 sy-vline, s_cpt_rendu_purg-z_zlottrt UNDER text-027, 26 sy-vline, s_cpt_rendu_purg-z_prep_lues2 UNDER text-028, 47 sy-vline, s_cpt_rendu_purg-z_prep_pur2 UNDER text-029, 68 sy-vline, s_cpt_rendu_purg-z_exc_lues8 UNDER text-030, 88 sy-vline, s_cpt_rendu_purg-z_exc_purg8 UNDER text-031, 110 sy-vline, s_cpt_rendu_purg-z_exc_lues9 UNDER text-032, 130 sy-vline, s_cpt_rendu_purg-z_exc_purg9 UNDER text-033, 151 sy-vline, s_cpt_rendu_purg-z_lo_np_lues01 UNDER text-034, 180 sy-vline, s_cpt_rendu_purg-z_lot_np_pur01 UNDER text-035, 208 sy-vline. ULINE AT /1(208). ENDAT. ENDLOOP. **************************************************** * compte rendu prise en compte F.sesame & exclusion* **************************************************** * taille des colonnes cpt rendu prise en compte F.sesame & exclusion DATA : w_largeur_compte_rendu TYPE i VALUE 76, w_col_fichier TYPE i VALUE 15, w_col_lot TYPE i VALUE 16, w_col_nb_ecr_kec TYPE i VALUE 16, w_col_nb_ecr_exc1 TYPE i VALUE 26, w_largeur_tous_col1 TYPE i VALUE 115, w_col_nb_ecr_exc2 TYPE i VALUE 26.

WRITE :/. WRITE :/5 'Compte-rendu Prise en compte F. Ssame & Exclusion'. WRITE AT /5(50) sy-uline. WRITE AT /1(w_largeur_tous_col1) sy-uline. FORMAT COLOR COL_HEADING. WRITE :/1 sy-vline.

Dernier enregistrement le 17/04/09

page 12 / 77

WRITE : AT (w_col_fichier) 'Non logique' CENTERED, sy-vline. WRITE : AT (w_col_lot) 'Lot traitement ' CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_kec) 'Nb ecr. KEC ' CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_exc1) 'Nb ecr. Exclues 8' CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_exc2) 'Nb ecr. Exclues 9' CENTERED, sy-vline. WRITE AT /1(w_largeur_tous_col1) sy-uline. FORMAT COLOR COL_HEADING OFF. WRITE :/1 sy-vline. WRITE : AT (w_col_fichier) tab_zecr_btci-znomficlog CENTERED, sy-vline. WRITE : AT (w_col_lot) tab_zecr_btci-zlottrt CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_kec) w_cpt_ecr_kec_lu CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_exc1) w_cpt_ecr_ecr_exclu8 CENTERED, sy-vline. WRITE : AT (w_col_nb_ecr_exc2) w_cpt_ecr_ecr_exclu9 CENTERED, sy-vline. WRITE AT /1(w_largeur_tous_col1) sy-uline. ENDIF. * SKIP.

WRITE :/10 'Compte client

:', 50 p_comcli NO-ZERO COLOR 2.

Structure dun programme REPORT Sq. Instruction 1 REPORT 2 3 4 5 6 7 8 9 10 INCLUDE DE DONNEES PARAMETERS SELECT-OPTIONS INITIALIZATION AT SELECTION-SCREEN START-OF-SELECTION END-OF-SELECTION TOP-OF-PAGE END-OF-PAGE INCLUDE DE PROGRAMME

Commentaire suivi du nom de report et ventuellement dune classe de messages, ainsi que les commentaires dentte du programme dclaration des tables, structures, variables, constantes, ranges, field-groups...

Evnement avant laffichage des paramtres Evnement aprs saisie des paramtres Dbut des traitements Facultatif. Evnement survenant avant lcriture de la premire ligne dune page Evnement survenant aprs avoir crit la dernire ligne dune page Contient lensemble des routines (FORM)

Parameters : permet la saisie par lutilisateur de donnes pour slection INITIALIZATION : permet de modifier les valeurs de paramtres avant laffichage de lcran de slection START-OF-SELECTION : permet de crer des listes SELECT * from tcurr. WRITE : / tcurr-fcurr, tcurr-tcurr, tcurr-ukurs. HIDE : tcurr-fcurr, tcurr-tcurr. zone raffichable aprs selection de la ligne ENDSELECT AT LINE-SELECTION.dclenche laffichage dun tat dtailLes donnes courante sont celles de la ligne slectionne WRITE : / tcurr-kurst, tcurr-fcurr, tcurr-tcurr. END-OF-SELECTION. FORM . ENDFORM . Variable systme utile : SY-SLIND : niveau de dtail sincrmente (se dcrmente) chaque descente (remonte) (attention : mme sil ny a pas de niveau de dtail supplmentaire, elle sincrmente chaque double clic sur une ligne dtail de ltat de dtail)

Dernier enregistrement le 17/04/09

page 13 / 77

Les vnements possibles AT LINE SELECTION

Pour lancer partir des valeurs des champs cachs de la ligne slectionne : un tat dtail : SelectWRITE un affichage cran : CALL SCREEN N_ecran Pour lancer une transaction partir des valeurs des champs cachs de la ligne AT USER COMMAND slectionne vhiculs par les paramtres ID : CALL TRANSACTION ? Event after processing the user input on the selection screen, while the AT SELECTION selection screen is still active SCREEN START OF SELECTION Event after processing the selection screen. The system sets this event keyword automatically when you specify no other event keyword (for example, in your program the last section). Event at which the logical database in use offers a line of the database table GET . GET LATE Event after processing all tables that are hierarchically inferior to the database table in the structure of the logical database in use. Event after processing all lines offered by the logical database in use END-OF-SELECTION Event during list processing when a new page starts. TOP-OF-PAGE

Evnements Il existe des vnements pour initialiser des actions sur lcran de slection. Ils sont excuts avant l ordre Start-of-selection.

initialization Dclench une seule fois au dbut du programme et avant le traitement de lcran de slection. at selection-screen output Excut avant que les donnes de lcran de slection soient affiches (sur touche ENTREE) at selection-screen on p/s Excut aprs que lutilisateur ait spcifi le paramtre P ou loption se slection S. at selection-screen Excut aprs que lutilisateur ait spcifi tous les paramtres.

Mise en forme de len tte de ltat Al laffichage aprs excution, cliquer sur Systme/Listes/listes/intitul de liste : Penser aux variables SY-TVAR0 SY-TVAR9 charges dans le programme et utiliss avec &0 &9 Mise en forme de len-tte de colonnes sans write (tat simple) SM38 : saisir le nom de ltat, /cliquer sur Elements de texte/ cliquer sur afficher/ cliquer sur titres et intituls Ou systme/liste/intitule de liste

criture dune ligne WRITE : / 'date', cc zone+8(2) . " crire les 2car de zone - qui sont en 8me position - partir de la colonne cc : par dfaut la zone entire est positionne la suite de l'autre avec un espace ? SKIP 2. commentaires : * " : en dbut de ligne indique que toute la ligne est du commentaire : en cours de ligne indique que la suite de la ligne est du commentairepage 14 / 77

Dernier enregistrement le 17/04/09

Report : exemple avec dbranchement sur une sous-liste report zpillon2 . tables : tcurr,t001,t001k. start-of-selection. select * from tcurr. write : / sy-lsind, tcurr-fcurr, tcurr-tcurr, tcurr-ukurs. HIDE : tcurr-fcurr, tcurr-tcurr. endselect. at line-selection. *** 1er niveau de dtail if sy-lsind = 1. select * from t001 where waers = tcurr-fcurr

write : / sy-lsind, t001-bukrs, t001-butxtHIDE : t001-bukrs

endselect endif. *** 2me niveau de dtail aprs slection dune ligne if sy-lsind = 2. select * from t001k where bukrs = t001-bukrs. write : / 'test : ',sy-lsind, t001-bukrs, t001k-bwkey. endselect. If sy-subrc 0. WRITE : / niveau , sy-lsind , vide . Endif. endif. end-of-selection sultats 0 0 0 0 1 1 1 1 FRF FRF FRF FRF BEF BEF DEM DEM 6.14447 6.13500 0.29833 0.29900

FR01 Country Template FR JS00 JSFR-Plan comptes ref JS01 JET SUD EST JS03 JET OUEST

test : 2 JS01 D011 test : 2 JS01 D012

Dernier enregistrement le 17/04/09

page 15 / 77

Report : conseil pour lalignement des colonnes - crer des zones contenant la largeur de chaque colonne - utiliser cette zone pour indiquer la largeur de la colonne den-tte et de celle de dtail* largeur des colonnes pour dition data : w_largeur_titre type i value 112, w_largeur_etat type i value 112, w_col_comma type i value 10, w_col_piece type i value 10, w_col_socie type i value 5, w_col_creat type i value 10, w_col_date type i value 10, w_col_total type i value 15, w_col_fourn type i value 30. *----------------------------------------------------------------------form en-tete-colonnes. *----------------------------------------------------------------------write at /1(w_largeur_etat) sy-uline. format color col_heading. write : /1 sy-vline. write : at (w_col_comma) text-001 centered, write : at (w_col_piece) text-002 centered, write : at (w_col_socie) text-003 centered, write : at (w_col_creat) text-004 centered, write : at (w_col_date) text-005 centered, write : at (w_col_total) text-006 centered, write : at (w_col_fourn) text-007 centered, format color off. write at /1(w_largeur_etat) sy-uline. endform. *----------------------------------------------------------------------form ligne. *----------------------------------------------------------------------format color col_normal. write : /1 sy-vline. write : at (w_col_comma) t_bseg-ebeln, sy-vline. write : at (w_col_piece) t_bseg-belnr, sy-vline. write : at (w_col_socie) t_bseg-bukrs, sy-vline. write : at (w_col_creat) ekko-ernam, sy-vline. write : at (w_col_date) t_bseg-budat, sy-vline. write : at (w_col_total) t_bseg-dmbtr, sy-vline. write : at (w_col_fourn) lfa1-name1, sy-vline. hide : t_bseg-belnr, t_bseg-ebeln, t_bseg-bukrs, t_bseg-gjahr. if sy-linno eq 64. write at /1(w_largeur_etat) sy-uline. endif. endform.

sy-vline. sy-vline. sy-vline. sy-vline. sy-vline. sy-vline. sy-vline.

Dernier enregistrement le 17/04/09

page 16 / 77

dbranchement (touches , boutons) sur plusieurs transaction aprs slection dune ligne - crer les boutons de dbranchement - prparer les valeurs passer (HIDE) aprs linstruction dcriture de la ligne de report : hide : t_bseg-belnr, t_bseg-ebeln, t_bseg-bukrs, t_bseg-gjahr. - rechercher les noms des paramtres id pour chaque transaction - lancer la transaction - pour chaque champ Curseur dans la zone de saisie Clic sur touche clavier F1 Affichage de la fentre performance assistant Clic sur licne marteau cl plate Affichage de la fentre information technique Dans le bloc donnes de zone, lire le contenu de Id de paramtre - passer les valeurs pour chaque transaction : SET PARAMETERS-ID AT USER-COMMAND. SET PARAMETER id 'BES' FIELD t_bseg-ebeln. SET PARAMETER id 'BLN' FIELD t_bseg-belnr. SET PARAMETER id 'BUK' FIELD t_bseg-bukrs. SET PARAMETER id 'GJR' FIELD t_bseg-gjahr.

- Appeler la transaction slectionne call transaction SY-UCOMM and skip first screen.

Cration des boutons de dbranchement Cration du formulaire partir du programme aprs dernire ligne du programme principal : crire la ligne SET Pf-STATUS 'nom_ecran'. Double clic avec curseur sur 'nom_ecran' (Si lcran nexiste pas, proposition de le crer : validez) Affichage de lcran grer le statut nom_ecran de lutilisateur nom_utilisateur Lcran comprend 3 lignes de commandes : - Barre de menus - Barre doutils - Touche Fonction :Interface Barre de menus Barre d'outils d'app Touches de fonction YFIRE045 Actif(ve) Dbranchement depuis YFIRE045 Dbranchement depuis YFIRE045 Dbranchement depuis YFIRE045

Cliquer sur le bouton ( vert avec flche oriente en bas)associ Touche de fonctionDernier enregistrement le 17/04/09 page 17 / 77

3 blocs sajoutent en dessous du bloc prcdent : Barre d'outils Allocations recommandes p. touches fct. Touches fonction pouvant tre alloues

Touches fonction pouvant tre alloues F5 F6 F7 F8

ME23N FB03 KOB1 KSB1

Visualisation de... Visualisation de ... Postes individuel... Postes individuel...

Maj-F1Association touche fonction avec transaction : Pour chaque fonction associer Renseigner la celllule de la 1re colonne Double-Cliquer la fentre proprit de fonction saffiche renseigner le texte de fonction renseigner le nom de licne valider

Activer

Positionnement des boutons dans la barre doutils applicative Cliquer sur le bouton ( vert avec flche oriente en bas)associ Barre d'outils d'app Un tableau vient sintercaler Saisir le nom de la fonction la position voulue ValiderPositions 1 7 ME23N FB03 Comman KOB1 KSB1

Positions

8 - 14

Positions 15 - 21 Positions 22 - 28 Positions 29 - 35

Activation des boutons doutils non standards Cliquer sur le bouton ( vert avec flche oriente en bas)associ Touche de fonction Dans le bloc Barre d outils: Pour chaque fonction dsire : Choisir la colonne correspondant licne standard saisir le code de la fonction et double cliquer la fentre proprit de la fonction souvre Saisir E4 pour type de fonction

Dernier enregistrement le 17/04/09

page 18 / 77

Ecrire les donnes

write : 'Nous sommes le : ', sy-datum. new-line. write : 'Nouvelle ligne', / 'Encore une autre ligne'. skip 3. write : '3 lignes vides'. Rsultat : Nous sommes le 01/07/1998 -Nouvelle ligne Encore une autre ligne ---3 lignes vides

ligne blanche

write at 5 'position 5'. pos = 20. write at pos 'position 20'. Permet de prciser la position laquelle on veut crire. len = 5. write at pos (len) 'position 20'. Permet de prciser la position + longueur laquelle on veut crire. Options :

no-sign : signe supprim, decimals : prcise nb de dcimales using edit mask : prcise un masque d'dition, no-gap : supprime espace entre les mots.

*

Dernier enregistrement le 17/04/09

page 19 / 77

Selection des donnes :

Select :

AGREGAT Select Max ( Nom du champ )