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






















