Smarte formularer i SAP ABAP
⚡ Smart opsummering
Smarte formularer i SAP ABAP opretter og vedligeholder formularer til masseudskrivning med output til en printer, en fax, e-mail eller internettet. Denne side forklarer arkitekturen, Form Builder-noderne, vinduerne, tabellerne, skabelonerne, typografierne og det genererede funktionsmodul.

Hvad er Smart Forms i SAP ABAP?
SAP Smart Forms bruges til at oprette og vedligeholde formularer til masseudskrivning i SAP Systems.Som output medium SAP Smart Forms understøtter en printer, en fax, e-mail eller internettet (ved at bruge det genererede XML-output).
SAP introducerede SmartForms i 1998 for at overvinde begrænsningerne i SAP Scripts. SmartForms er nemmere at udvikle, vedligeholde og transportere end SAP Manuskript.
Sammenligning af Smart Forms og SapScripts
- Flere sideformater er mulige i SmartForms, hvilket ikke er tilfældet i SAP Scripts
- Det er muligt at have en SmartForm uden hovedvindue.
- Rutiner kan skrives i SmartForms værktøj.
- SmartForms genererer et funktionsmodul, når det er aktiveret.
- Etiketter kan ikke oprettes i SmartForms.
| Kriterier | Smarte formularer | SAPscript |
|---|---|---|
| Sideformater | Flere sideformater i én formular | Format på én side pr. formular |
| Hovedvindue | Ikke obligatorisk | Der kræves præcis ét hovedvindue |
| Rutiner | Skrevet inde i selve formularen | Skrevet i det separate printprogram |
| Aktivering | Genererer et funktionsmodul | Der genereres ikke noget funktionsmodul |
| Etiketter | Kan ikke oprettes | Kan oprettes |
Fordele ved smarte formularer
- De hjælper med at tilpasse formularer uden programmeringskendskab takket være den fuldt grafiske brugergrænseflade
- Ved aktivering af den smarte formular genererer systemet automatisk funktionsmodulet og ved kørsel.
- For at foretage ændringer skal vi bruge Træk og slip, Klip og Indsæt. Disse handlinger inkluderer ikke skrivning af kodningslinjer eller brug af et scriptsprog.
- Vi kan indsætte statiske og dynamiske tabeller. Disse omfatter linjefeeds i de individuelle tabelceller, udløsning af hændelser for tabeloverskrifter og subtotaler og sortering af data før output.
- De smarte formularer giver brugeren mulighed for at inkludere grafik, som kan vises som en del af formularen eller som baggrundsgrafik. Under udskrivning kan brugeren undertrykke baggrundsgrafikken efter behov.
- Webpublicering er muligt ved hjælp af den genererede XML output
Architecture af SAP Smart form
Arkitekturdiagrammet viser de tre involverede lag. Formularen designes i Form Builder, aktivering genererer funktionsmodulet, og udskrivningsprogrammet kalder dette modul med applikationsdataene. Designtrinnene i det første lag gennemgås derefter.
Smartforms guide
Lad os gå igennem det SAP systemet-
- Indtast transaktion SMARTFORMER i transaktionskodeboksen.
- På det næste skærmbillede skal du indtaste et formularnavn og klikke på opret
Den næste skærm er opdelt i tre sektioner-
Navigationsvindue består af noder og sub noder. De indeholder alle de elementer (tekst, vindue osv.), der hører til sap-formularer
- Vedligeholdelsesvindue viser elementernes attributter
- Form printer vinduet viser layoutet af siden
Hver gang vi skaber smarte formularer, SAP opretter/genererer et funktionsmodul.Unlike SAPscripts, SAP FORMS giver dig mulighed for at ændre sprog.
I navigationsvinduet finder du
Globale dataerklæringer : De data, der er defineret her, kan bruges i hele smartformen til kodningsformål.
Formgrænseflade : Her defineres alle de data, som vil blive sendt til smartformen fra Print-programmet.
Højreklik på siderne vil tillade oprettelse af ny side, vindue, grafik eller adresse.
Udskrivning vil foregå på basis af feltet 'næste side'.
Men behandlingen vil ske som i sekvensen i navigationsvinduet!
Til baggrundsbilleder og grafik kan du hente enten sort/hvid eller farve bitmapbilleder og gemmes i form af standardtekster. Du kan tage en omvej fra smartform-skærmen og åbne skærmen Form Graphics. Transaktionskode: Se78
Indstilling i grafikken i Smart Form-vinduet -
Windows i Smart Forms
Der er to typer af Windows
- Main
- Sekundær
Vigtige punkter at bemærke
- Du kan ikke have mere end 1 hovedvindue på en side. Du kan have flere sekundære vinduer
- Uanset hvad du udskriver i et sekundært vindue ... skal det være statisk. (Hvis du har 20 linjer i en PO, og der er sidebegrænsning, flyttes linjerne videre til næste side i hovedvinduet. dvs. i en forgænger og en efterfølger type indhold, vil de blive udskrevet i rækkefølge i hovedvinduet. Dette er ikke tilladt i sekundære vinduer.
Inde i hovedvinduet kan vi tilføje tekst som introduktion for at tilpasse formularoutputtet.
Outputindstillingerne på hvert vindue bestemmer den linjestørrelse, -bredde, -farver og baggrund, der skal sættes.
Smartforms giver mulighed for at give adressenummeret, som vedligeholdes i den centrale adressestyring. Adressen vil blive taget direkte fra ADRC-tabellen og vil blive udfyldt i formularen.
De to forskellige editorer er tilgængelige i Smartforms, dvs. Normal Editor
og grafikeditoren.
Denne indstilling kan ændres ved hjælp af Configure-editoren i Utilities.
Borde i et vindue
I Table painter kan du tegne formatet efter kundens krav (f.eks. Overskrift, Underoverskrift, Vare, Undertotal, Totaltotal osv.)
Du kan bruge tabellayoutet til at bestemme:
- Antallet af linjer og celler
- Højden af hver linje
- Bredden af hver celle
- Justeringen af bordet i vinduet
Tabellen viser de forskellige linjetyper, som vil blive brugt i tabellen. Linjetyperne definerer størrelsen af hver celle og antallet af celler i hver linje.
Smart Forms-programmeringsflow
når en SAP Smart Form-skabelonen oprettes, en bruger opretter formularlayoutet, definerer de nødvendige felter, betingelser og særlige programmeringsinstruktioner i Smart Form-skabelonen ved hjælp af Smart Form Builder.
Når formulardesignet er færdigt, skal formularen aktiveres, før den kan testes eller tilgås af printprogrammerne. Aktivering af formularen starter genereringen af et funktionsmodul, der håndterer hele formularens behandling.
Dette funktionsmodul interagerer med applikationsprogrammet/printprogrammet for at skabe output i det brugerdefinerede outputmedie for den specificerede enhed.
Ved smarte formularer anvender vi 2 funktionsmoduler til behandlingen af den smarte formular. Til det første funktionsmodul videregiver vi navnet på den smarte formular som importparameter. Dette returnerer derefter navnet på det dynamisk genererede funktionsmodul, som faktisk kalder smartformen.
Smartform-navnet kan videregives til funktionen Modul – 'SSF_FUNCTION_MODULE_NAME'
Dette vil returnere funktionsmodulnavnet på den smartform, som der henvises til.
Print-programmet vil ringe til FM 'SSF_FUNCTION_MODULE_NAME' for at få funktionsmodulnavnet ved Runtime. Derefter kalder den det således opnåede funktionsmodul for at udføre smartformen.
Sådan kalder du en smart formular fra et udskriftsprogram
Det ovenfor beskrevne totrinsopkald skrives altid på samme måde. Programmet opløser først det genererede navn og udfører det derefter med applikationsdataene.
- Løs funktionsmodulets navn: Send formularnavnet til SSF_FUNCTION_MODULE_NAME. Det genererede navn ændrer sig med hvert system, så det må aldrig hardcodes.
- Kald det genererede modul dynamisk: Brug CALL FUNCTION med den variabel, der indeholder det opløste navn, og send dataene gennem de parametre, der er defineret i formulargrænsefladen.
- Styr outputtet: Udfyld kontrolstrukturen SSFCTRLOP for at undertrykke udskriftsdialogen eller for at anmode om en forhåndsvisning, og udfyld SSFCOMPOP med outputenheden.
- Håndter undtagelserne: Det genererede modul genererer FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR og USER_CANCELED, så SY-SUBRC skal kontrolleres efter kaldet.
DATA: lv_fm_name TYPE rs38l_fnam, ls_control TYPE ssfctrlop, ls_output TYPE ssfcompop. * 1. Get the name of the generated function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_SMART_INVOICE' IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE e001(zsf). " Form not found ENDIF. * 2. Call the generated module with the form data ls_control-no_dialog = 'X'. ls_control-preview = 'X'. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ls_control output_options = ls_output is_header = ls_header TABLES it_items = lt_items EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
⚠️ Advarsel: Det genererede funktionsmodulnavn, for eksempel /1BCDWB/SF00000123, er forskelligt i hvert system. Løs det altid med SSF_FUNCTION_MODULE_NAME, ellers fejler programmet efter transport.
Skabeloner
Skabelonen kan bruges, når du kender den nøjagtige størrelse af outputtet, eller når outputtet er i et fast format.
F.eks. skatteformular/checks/flyselskabsformular/jernbanebillet: alle disse bruger skabeloner.
Den store forskel mellem en tabel og en skabelon er, at højden i en tabel ændrer sig dynamisk. Vi kalder en række for en 'linje' i en skabelon.
SMART Styles
En smart stil indeholder:
- Overskriftsdata, der indeholder standardværdierne for en Smart Style
- Afsnitsformater inklusive indrykning og mellemrum, skrifttypeattributter, tabulatorer og disposition og nummerering
- Tegnformater inklusive effekter (superscript, subscript), stregkode og skrifttypeattributter
- Farver og understreger for et afsnit eller tegnformat
Du kan bruge transaktionen 'smartforms' / 'smartstyles' til at skabe en smart stil.
💡 Tip: Tildel den smarte stil i formularattributterne i stedet for på hver tekstnode. Én ændring i stilen når derefter hvert afsnit i formularen.
Det er alt til denne tutorial






















