2012-10-04 38 views
0

我是一個聰明人中的新手。我試圖從KNA1上獲取一些數據,例如姓名和地址以在交付單上顯示。我如何得到這個?我知道我必須將表格放在「全局選項」的某個選項中,但我不知道哪一個選項。請,有人可以幫我嗎?謝謝。從表中獲取數據 - SAP SmartForms

+1

我剛剛重讀了最近幾個SAP相關的問題。如果你爲自己已經試圖解決問題添加更多的背景信息,這將是非常好的。我無法幫助自己,但我總覺得你並沒有使用最簡單的方法(例如google爲「site:help.sap.com smart forms」)來回答自己的問題。 – vwegert

回答

2

您需要知道如何爲此開發ABAP編碼。假設您知道這一點,您應該嘗試擴展表單的輸入結構,並將必要的選擇邏輯添加到提供程序中。如果這不可行,您可以向表單添加代碼,但由於各種原因,不建議這樣做。

編輯: 如果您確實知道如何編寫ABAP代碼,則更難理解您的問題。我假設你看過excellent online doumentation。如果你檢查一個表單的標題條目,你會注意到像global definitions和初始化編碼。如果仔細查看可以插入表單的元素,則會發現program lines。因此,這是嵌入ABAP代碼的一種方式,可以從數據庫中選擇數據。你會像打印其他字段一樣打印出來。

但是,這是一個壞主意。它通常會減慢你的表單處理速度,如果使用過於廣泛,則是一個噩夢。相反,你應該take a look at the parameters of the form and the program that is calling the form。如果可能,請編輯適當的結構或使用append structure添加其他字段。然後,使用BAdI,用戶出口或隱式增強來填充調用程序中的字段。這樣做的好處是數據將傳遞給所有表單,並且不必複製多個表單中的邏輯。 (另外,如果你需要的話,將它移植到交互式表單中會更容易)。

+0

我確實知道如何編寫ABAP,但我不確定我是否理解你的說法。對不起,你能解釋得更好嗎?謝謝。 –

1

每個smartform都有一個表單接口,它是向其傳遞信息的主要方式(在表單樹的「全局設置」下)。當這些信息丟失,你不能改變接口以及出於某種原因調用它的ABAP代碼(因爲它被調用的地方太多,或者因爲它是從SAP標準代碼調用的),所以仍然有方法可以將ABAP編碼爲智能表來獲得任何額外的數據:

  1. 可以單擊「全局定義」定義全局變量和全局表格程序
  2. 您可以添加一個「流邏輯 - >程序行」節點窗口節點。在這裏,您可以編寫一些ABAP代碼來讀取您需要的數據並將其寫入全局變量。
  3. 然後,您可以在窗口的文本元素中使用此變量。