Scriptform 示例

Scriptform由两部分组成:驱动程序和Scriptform,相对来说Smartforms有三部分:smartforms,function module,驱动程序。

以下是一个scriptform的驱动程序示例,这是一个标准程序:

*&---------------------------------------------------------------------*
*& Report  RSTXEXP1                                                    *
*&---------------------------------------------------------------------*
*& Beispielprogramm für Formulardruck                                  *
*&---------------------------------------------------------------------*
REPORT  RSTXEXP1.

TABLESSCUSTOMSBOOKSPFLI.

SELECT-OPTIONSS_ID FOR SCUSTOM-ID DEFAULT TO 1,
                S_FLI FOR SBOOK-CARRID DEFAULT 'LH' TO 'LH'.

DATA CUSTOMERS LIKE SCUSTOM OCCURS 100
     WITH HEADER LINE.
DATA BOOKINGS  LIKE SBOOK   OCCURS 1000
     WITH HEADER LINE.
DATA CONNECTIONS LIKE SPFLI OCCURS 1000
     WITH HEADER LINE.
DATABEGIN OF SUMS OCCURS 10,
        FORCURAM  LIKE SBOOK-FORCURAM,
        FORCURKEY LIKE SBOOK-FORCURKEY,
      END OF SUMS.

* Get data
SELECT FROM  SCUSTOM INTO TABLE CUSTOMERS
       WHERE ID IN S_ID
       ORDER BY PRIMARY KEY.
SELECT FROM  SBOOK   INTO TABLE BOOKINGS
       WHERE CUSTOMID IN S_ID AND CARRID IN S_FLI
       ORDER BY PRIMARY KEY.
SELECT FROM  SPFLI   INTO TABLE CONNECTIONS
       FOR ALL ENTRIES IN BOOKINGS
       WHERE CARRID BOOKINGS-CARRID
       AND   CONNID BOOKINGS-CONNID
       ORDER BY PRIMARY KEY.

* Open print job
CALL FUNCTION 'OPEN_FORM'
     EXPORTING
          DEVICE             'PRINTER'
          FORM               'S_EXAMPLE_1'
          DIALOG             'X'
     EXCEPTIONS
          CANCELED           1
          DEVICE             2
          FORM               3
          OPTIONS            4
          UNCLOSED           5
          OTHERS             6.
IF SY-SUBRC <> 0.
  WRITE 'Error in open_form'(001).
  EXIT.
ENDIF.

* Print form for all customers
LOOP AT CUSTOMERS.
* Set customer address
  SCUSTOM CUSTOMERS.
* Open form of respective customer
  CALL FUNCTION 'START_FORM'
       EXCEPTIONS
          OTHERS        1.
  IF SY-SUBRC <> 0.
    WRITE 'Error in start_form'(002).
    EXIT.
  ENDIF.

* Display column headings of main window
  CALL FUNCTION 'WRITE_FORM'
       EXPORTING
            ELEMENT       'HEADING'
            FUNCTION      'SET'
            TYPE          'TOP'
            WINDOW        'MAIN'
       EXCEPTIONS
            OTHERS        1.
  IF SY-SUBRC <> 0.
    WRITE 'Error in write_form printing top element of main'(003).
    EXIT.
  ENDIF.
* Customer bookings
  CLEAR SUMSREFRESH SUMS.
  LOOP AT BOOKINGS
       WHERE CUSTOMID CUSTOMERS-ID.
    SBOOK BOOKINGS.
*   Get departure time
    READ TABLE CONNECTIONS WITH KEY CARRID BOOKINGS-CARRID
                                    CONNID BOOKINGS-CONNID.
    IF SY-SUBRC 0.
      SPFLI CONNECTIONS.
    ELSE.
      CLEAR SPFLI.
    ENDIF.
*   Print position
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT       'BOOKING'
              FUNCTION      'SET'
              TYPE          'BODY'
              WINDOW        'MAIN'
         EXCEPTIONS
              OTHERS        1.
    IF SY-SUBRC <> 0.
      WRITE 'Error in write_form printing body of main'(004).
      EXIT.
    ENDIF.
*   Add current position to corresponding entry in table sums
    MOVE-CORRESPONDING SBOOK TO SUMS.
    COLLECT SUMS.
  ENDLOOP.          " at bookings

* Print sum
  LOOP AT SUMS.
    MOVE-CORRESPONDING SUMS TO SBOOK.
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              ELEMENT       'SUM'
              FUNCTION      'SET'
              TYPE          'BODY'
              WINDOW        'MAIN'
         EXCEPTIONS
              OTHERS        1.
    IF SY-SUBRC <> 0.
      WRITE 'Error in write_form printing sum of invoice'(005).
      EXIT.
    ENDIF.
  ENDLOOP.         " at sums

* Close customer form
  CALL FUNCTION 'END_FORM'
       EXCEPTIONS
            OTHERS   1.
  IF SY-SUBRC <> 0.
    WRITE 'Error in end_form'(006).
    EXIT.
  ENDIF.
ENDLOOP.          " at customers

* close print job
CALL FUNCTION 'CLOSE_FORM'
     EXCEPTIONS
          OTHERS   1.
IF SY-SUBRC <> 0.
  WRITE 'Error in close_form'(007).
  EXIT.
ENDIF.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 form 跨域请求的示例: 假设我们有两个网站,分别为 A 网站和 B 网站。我们想在 A 网站上通过表单提交数据到 B 网站的服务器上。 在 A 网站上的 HTML 代码: ``` <!DOCTYPE html> <html> <head> <title>表单跨域请求示例</title> </head> <body> <form id="myForm" action="http://www.b.com/submit" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="提交"> </form> <script> // 在表单提交时,禁止默认的表单提交行为 document.getElementById("myForm").addEventListener("submit", function(event){ event.preventDefault(); }); // 在表单提交时,通过 AJAX 方式提交表单数据到 B 网站的服务器上 document.getElementById("myForm").addEventListener("submit", function(event){ var xhr = new XMLHttpRequest(); xhr.open("POST", "http://www.b.com/submit"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function(){ if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200){ alert(xhr.responseText); } }; var formData = new FormData(document.getElementById("myForm")); xhr.send(formData); }); </script> </body> </html> ``` 在 B 网站的服务器上,可以通过接收表单数据并返回一个 JSON 格式的响应来测试该示例。例如,可以在 B 网站的服务器端代码中添加以下代码: ``` app.post('/submit', function(req, res){ var username = req.body.username; var password = req.body.password; var result = { "status": "success", "message": "提交成功!", "username": username, "password": password }; res.send(result); }); ``` 注意:在真实的生产环境中,为了保证安全性,需要对表单数据进行验证和过滤,避免出现安全漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值