ABAP--如何在SMARTFORMS里动态打印背景颜色

Situation:

Our outputs have some background colors for important fields to have better visibility. This works fine for the normal printout. But, when send a SmartForm Output as a FAX, output comes with a BLACK background wherever we have the background color. And this makes the output unreadable (BLACK font with BLACK background).

Possible ways to handle the problem:

  • Don't send a FAX: This is not feasible, as some customers would like to have there forms as FAX
  • Create a clone of the existing forms and remove the background color andcall them whenever we have to send as FAX: This doesn't make sense because this will lead to more maintenance; change to the primary form leads the change to the clone form.
  • Find out some way to remove the background color dynamically: This seems to be the best choice, but next question is how to do it.

Solution:

I had debugged the SmartForm function modules over and over to get the point where it sets the background color, borders etc to the output and what I found, there is only main internal table, with deep structure, which handles everything to generate the layout for the output.

I have started with creating a test Smartform. I created some tables lines with background colors. Than I made a coding node in the SmartForm and tried to change the internal table, which holds the entire layout related information, with help of field-symbols to remove the background color and BINGO - I got the background color removed.

With Background Color:



ABAP--如何在SMARTFORMS里动态打印背景颜色

Without Background Color:



ABAP--如何在SMARTFORMS里动态打印背景颜色

SmartForm:

Download the uploadable .XML Save this file as ZTEST_NP_DYN_BGCOL.XML.To Upload,go to tcode SMARTFORMS and upload this file from Utilities > Upload Form.

The Main logic which handles the dyanmic coloring is inside the Smartform under window DUMMY.

<? xml version="1.0" encoding="utf-8" ?>
- < sf:SMARTFORM xmlns:sf =" urn:sap-com:SmartForms:2000:internal-structure " xmlns =" urn:sap-com:sdixml-ifr:2000 " sf:language =" EN " >
- < HEADER >
< FORMNAME > ZTEST_NP_DYN_BGCOL </ FORMNAME >
< CAPTION > New Form </ CAPTION >
< MASTERLANG > E </ MASTERLANG >
< LANGVECTOR > * </ LANGVECTOR >
< DEVCLASS > $TMP </ DEVCLASS >
< VERSION > 00001 </ VERSION >
< FIRSTUSER > NPATEL </ FIRSTUSER >
< FIRSTDATE > 2007-08-07 </ FIRSTDATE >
< FIRSTTIME > 16:40:57 </ FIRSTTIME >
< LASTUSER > NPATEL </ LASTUSER >
< LASTDATE > 2008-05-29 </ LASTDATE >
< LASTTIME > 13:39:48 </ LASTTIME >
</ HEADER >
- < INTERFACE >
- < item >
< IOTYPE > E </ IOTYPE >
< NAME > DOCUMENT_OUTPUT_INFO </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SSFCRESPD </ TYPENAME >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > E </ IOTYPE >
< NAME > JOB_OUTPUT_INFO </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SSFCRESCL </ TYPENAME >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > E </ IOTYPE >
< NAME > JOB_OUTPUT_OPTIONS </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SSFCRESOP </ TYPENAME >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > ARCHIVE_INDEX </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > TOA_DARA </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > ARCHIVE_INDEX_TAB </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > TSFDARA </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > ARCHIVE_PARAMETERS </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > ARC_PARAMS </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > CONTROL_PARAMETERS </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SSFCTRLOP </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > MAIL_APPL_OBJ </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SWOTOBJID </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > MAIL_RECIPIENT </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SWOTOBJID </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > MAIL_SENDER </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SWOTOBJID </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > OUTPUT_OPTIONS </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > SSFCOMPOP </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > USER_SETTINGS </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > TDBOOL </ TYPENAME >
< OPTIONAL > X </ OPTIONAL >
< BYVALUE > X </ BYVALUE >
< DEFAULTVAL > 'X' </ DEFAULTVAL >
< STANDARD > X </ STANDARD >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > NO_ITEM </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > I </ TYPENAME >
</ item >
- < item >
< IOTYPE > I </ IOTYPE >
< NAME > I_DYN_BG </ NAME >
< TYPING > TYPE </ TYPING >
< TYPENAME > C </ TYPENAME >
</ item >
- < item >
< IOTYPE > X </ IOTYPE >
< NAME > FORMATTING_ERROR </ NAME >
ihuashao
  • 浏览: 1344833 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

你可能感兴趣的:(xml,Go)