Smarta formulär i SAP ABAP
⚡ Smart sammanfattning
Smarta formulär i SAP ABAP skapar och underhåller formulär för massutskrift, med utdata till en skrivare, ett fax, e-post eller internet. Den här sidan förklarar arkitekturen, Form Builder-noderna, fönstren, tabellerna, mallarna, stilarna och den genererade funktionsmodulen.

Vad är smarta formulär i SAP ABAP?
SAP Smart Forms används för att skapa och underhålla formulär för massutskrift i SAP Systems.Som output medium SAP Smart Forms stöder en skrivare, ett fax, e-post eller Internet (genom att använda den genererade XML-utgången).
SAP introducerade SmartForms 1998 för att övervinna begränsningarna i SAP Manus. SmartForms är lättare att utveckla, underhålla och transportera än SAP Manus.
Jämförelse av Smart Forms och SapScripts
- Flera sidformat är möjliga i SmartForms vilket inte är fallet i SAP Skript
- Det är möjligt att ha en SmartForm utan ett huvudfönster.
- Rutiner kan skrivas i SmartForms verktyg.
- SmartForms genererar en funktionsmodul när den är aktiverad.
- Etiketter kan inte skapas i SmartForms.
| Kriterier | Smarta formulär | SAPskript |
|---|---|---|
| Sidformat | Flera sidformat i ett formulär | En sidformat per formulär |
| Huvudfönster | Inte obligatoriskt | Exakt ett huvudfönster krävs |
| Rutiner | Skrivet inuti själva formuläret | Skrivet i det separata utskriftsprogrammet |
| aktivering | Genererar en funktionsmodul | Ingen funktionsmodul genereras |
| Etiketter | Kan inte skapas | Kan skapas |
Fördelar med smarta formulär
- De hjälper till att anpassa formulär utan programmeringskunskaper tack vare det helt grafiska användargränssnittet
- Vid aktivering av den smarta formen genererar systemet automatiskt funktionsmodulen och vid körning.
- För att göra några ändringar måste vi använda dra & släpp, klipp och klistra. Dessa åtgärder inkluderar inte att skriva kodningsrader eller använda ett skriptspråk.
- Vi kan infoga statiska och dynamiska tabeller. Dessa inkluderar radflöden i de individuella tabellcellerna, utlösande händelser för tabellrubriker och delsummor och sortering av data före utmatning.
- De smarta formulären låter användaren inkludera grafik, som kan visas som en del av formuläret eller som bakgrundsgrafik. Under utskrift kan användaren undertrycka bakgrundsgrafiken när och när det behövs.
- Webbpublicering är möjlig med den genererade XML produktion
Architecture av SAP Smart form
Arkitekturdiagrammet visar de tre inblandade lagren. Formuläret utformas i Form Builder, aktiveringen genererar funktionsmodulen och utskriftsprogrammet anropar modulen med applikationsdata. Designstegen för det första lagret behandlas härnäst.
Smartforms guide
Låt oss gå igenom det SAP system-
- Ange transaktion SMARTFORMER i transaktionskodrutan.
- På nästa skärm anger du ett formulärnamn och klickar på skapa
Nästa skärm är uppdelad i tre sektioner-
Navigationsfönster består av noder och subnoder. De innehåller alla element (text, fönster etc) som hör till sap-formulär
- Underhållsfönster visar elementens attribut
- Formulärskrivare fönstret visar layouten på sidan
Närhelst vi skapar smarta formulär, SAP skapar/genererar en funktionsmodul.Unlike SAPmanus, SAP FORMS låter dig byta språk.
I navigeringsfönstret hittar du
Globala datadeklarationer : De data som definieras här kan användas i hela smartformen för kodningsändamål.
Formulärgränssnitt : Här definieras all data som kommer att skickas till smartformen från Print-programmet.
Genom att högerklicka på sidorna kan du skapa ny sida, fönster, grafik eller adress.
Utskrift kommer att ske utifrån fältet "nästa sida".
Men bearbetningen kommer att ske enligt sekvensen i navigeringsfönstret!
För bakgrundsbild och grafik kan du plocka upp antingen svartvita eller färgbitmappsbilder och lagras i form av standardtexter. Du kan ta en omväg från smartform-skärmen och öppna skärmen Form Graphics. Transaktion kod: Se78
Inställning i grafikfönstret i Smart Form-
Windows i Smart Forms
Det finns två typer av Windows
- Huvudsida
- Sekundär
Viktiga punkter att notera
- Du kan inte ha mer än ett huvudfönster på en sida. Du kan ha flera sekundära fönster
- Vad du än skriver ut i sekundärt fönster måste det vara statiskt. (Om du har 20 rader i en PO och det finns sidbegränsningar flyttas raderna vidare till nästa sida i huvudfönstret. dvs. i en föregångare och efterföljande typ av innehåll skrivs de ut i ordningsföljd i huvudfönstret. Detta är inte tillåtet i sekundära fönster.
Inuti huvudfönstret kan vi lägga till text som introduktion för att anpassa formulärutmatningen.
Utmatningsalternativen i varje fönster bestämmer vilken linjestorlek, bredd, färger och bakgrund som ska placeras.
Smartforms ger möjlighet att ange adressnumret som upprätthålls i den centrala adresshanteringen. Adressen kommer att tas direkt från ADRC-tabellen och kommer att fyllas i i formuläret.
De två olika editorerna finns tillgängliga i Smartforms, dvs. Normal Editor
och grafikredigeraren.
Den här inställningen kan ändras med hjälp av Configure Editor i Utilities.
Bord i ett fönster
I Table painter kan du rita formatet enligt kundens krav (t.ex. rubrik, underrubrik, artikel, undersumma, totalsumma etc.)
Du kan använda tabelllayouten för att bestämma:
- Antalet linjer och celler
- Höjden på varje rad
- Bredden på varje cell
- Inriktningen av tabellen i fönstret
Tabellen visar de olika linjetyperna som kommer att användas i tabellen. Linjetyperna definierar storleken på varje cell och antalet celler i varje rad.
Smart Forms-programmeringsflöde
När en SAP Smart Form-mall skapas, en användare skapar formulärlayouten, definierar de obligatoriska fälten, villkoren och speciella programmeringsinstruktioner i Smart Form-mallen med hjälp av Smart Form Builder.
Efter att formulärdesignen är klar måste formuläret aktiveras innan det kan testas eller nås av utskriftsprogrammen. Aktivering av formuläret initierar genereringen av en funktionsmodul som hanterar hela formulärets bearbetning.
Denna funktionsmodul interagerar med applikationsprogrammet/utskriftsprogrammet för att skapa utdata i det användardefinierade utmatningsmediet för den angivna enheten.
Vid smarta formulär använder vi 2 funktionsmoduler för bearbetningen av det smarta formuläret. Till den första funktionsmodulen skickar vi namnet på det smarta formuläret som importparameter. Detta returnerar sedan namnet på den dynamiskt genererade funktionsmodulen som faktiskt kommer att anropa smartformen.
Smartformnamnet kan skickas vidare till funktionen Module – 'SSF_FUNCTION_MODULE_NAME'
Detta kommer att returnera funktionsmodulnamnet för smartformen som det refereras till.
Utskriftsprogrammet kommer att anropa FM 'SSF_FUNCTION_MODULE_NAME' för att få funktionsmodulens namn vid Runtime. Därefter kommer den att anropa den sålunda erhållna funktionsmodulen för att exekvera smartformen.
Hur man anropar ett smart formulär från ett utskriftsprogram
Tvåstegsanropet som beskrivs ovan skrivs alltid på samma sätt. Programmet löser först det genererade namnet och kör det sedan med applikationsdata.
- Lös upp funktionsmodulens namn: Skicka formulärnamnet till SSF_FUNCTION_MODULE_NAME. Det genererade namnet ändras med varje system, så det får aldrig hårdkodas.
- Anropa den genererade modulen dynamiskt: Använd CALL FUNCTION med variabeln som innehåller det upplösta namnet och skicka data genom parametrarna som definierats i formulärgränssnittet.
- Styr utgången: Fyll kontrollstrukturen SSFCTRLOP för att undertrycka utskriftsdialogrutan eller för att begära en förhandsgranskning, och fyll SSFCOMPOP med utdataenheten.
- Hantera undantagen: Den genererade modulen genererar FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR och USER_CANCELED, så SY-SUBRC måste kontrolleras efter anropet.
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.
⚠️ Varning: Det genererade funktionsmodulnamnet, till exempel /1BCDWB/SF00000123, är olika i varje system. Lös alltid upp det med SSF_FUNCTION_MODULE_NAME, annars misslyckas programmet efter transport.
Mallar
Mallen kan användas när du vet den exakta storleken på utdata eller om utdata är i ett fast format.
T.ex. Skatteformulär/checkar/flygbolagsformulär/järnvägsbiljett: alla dessa använder mallar.
Den stora skillnaden mellan en tabell och en mall är att höjden i en tabell ändras dynamiskt. Vi kallar en rad för en "rad" i en mall.
SMARTA stilar
En smart stil innehåller:
- Rubrikdata som innehåller standardvärdena för en Smart Style
- Styckeformat inklusive indrag och mellanrum, teckensnittsattribut, flikar och konturer och numrering
- Teckenformat inklusive effekter (upphöjd, nedsänkt), streckkod och teckensnittsattribut
- Färger och understrykningar för ett stycke eller teckenformat
Du kan använda transaktionen "smartforms" / "smartstyles" för att skapa en smart stil.
💡 Tips: Tilldela den smarta stilen i formulärattributen istället för på varje textnod. En ändring i stilen når sedan varje stycke i formuläret.
Det var allt till denna handledning






















