事务代码:STRANS
用途:使用STRANS目的是为了将数据写入XML中,发送给接收方,接收方通过解析,重新生成带有数据的EXCEL
分类:STRANS有两种,分别是Simple Transformation 和XSLT Program。这里我们就介绍一下前者。
调用:在程序中调用Simple Transformation,可使用关键字CALL TRANSFORMATION,具体示例如下:
CALL TRANSFORMATION (STRANS名)
SOURCE table = it_tab
head = v_head
RESULT XML v_filestr.
其中IT_TAB是存放需要写入数据的内表,V_HEAD是存放固定文本信息(如EXCEL标题、列名等),定义一个结构即可,V_FILESTR是用于存放生成的XML。
TABLE、HEAD参数是可以自定义的,在TRANSFORMATION里面定义,示例如下:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="table"/>
<tt:root name="head"/>
<tt:template>
</tt:template>
</tt:transform>
如何在TRANSFORMATION里面调用传进来的值呢,具体语法如下:
HEAD结构:<tt:value ref="head.field1"/>
TABLE内表:循环写入内表数据
<tt:loop ref=".table">
<Row ss:AutoFitHeight="0" ss:Height="55.5">
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="ARBPL"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="KTEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="BEGDA"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="ENDDA"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="WETEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="FZTEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="YTTEXT"/></Data></Cell>
</Row>
</tt:loop>
XML常用参数介绍:
<PageSetup>
<!--设置横向打印,默认竖向打印-->
<Layout x:Orientation="Landscape"/>
<Header x:Margin="0.31496062992125984"/>
<Footer x:Margin="0.31496062992125984"/>
<!--页边距-->
<PageMargins x:Bottom="0.74803149606299213" x:Left="0.47244094488188981"
x:Right="0.47244094488188981" x:Top="0.74803149606299213"/>
</PageSetup>
<NamedRange ss:Name="Print_Titles" ss:RefersTo="=Sheet1!R2"/>
</Names>
完整代码如下:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="table"/>
<tt:root name="head"/>
<tt:template>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Center"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62">
<Alignment ss:Vertical="Center" ss:WrapText="1"/>
</Style>
<Style ss:ID="s64">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders/>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="20" ss:Color="#000000"/>
</Style>
<Style ss:ID="s65">
<Alignment ss:Horizontal="Left" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
</Style>
<Style ss:ID="s68">
<Alignment ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
</Style>
<Style ss:ID="s69">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#8DB4E3" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s70">
<Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
</Style>
</Styles>
<Worksheet ss:Name="工作中心">
<Table x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="39.9375">
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="120"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="230"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="80"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="80"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="85"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="110"/>
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="130"/>
<Row ss:AutoFitHeight="0">
<Cell ss:MergeAcross="6" ss:StyleID="s64"><Data ss:Type="String"><tt:value ref="head.field0"/></Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65"><Data ss:Type="String"><tt:value ref="head.field20"/></Data></Cell>
<Cell ss:MergeAcross="2" ss:StyleID="s65">
<Data ss:Type="String"><tt:value ref="head.field22"/></Data></Cell>
<Cell ss:StyleID="s68"><Data ss:Type="String"><tt:value ref="head.field21"/></Data></Cell>
<Cell ss:MergeAcross="1" ss:StyleID="s65"><Data ss:Type="String"><tt:value ref="head.field23"/></Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field2"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field3"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field4"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field5"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field6"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field7"/></Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String"><tt:value ref="head.field8"/></Data></Cell>
</Row>
<tt:loop ref=".table">
<Row ss:AutoFitHeight="0" ss:Height="55.5">
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="ARBPL"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="KTEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="BEGDA"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="ENDDA"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="WETEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="FZTEXT"/></Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String"><tt:value ref="YTTEXT"/></Data></Cell>
</Row>
</tt:loop>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Layout x:Orientation="Landscape" x:CenterHorizontal="1"/>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<Scale>90</Scale>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>600</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>6</ActiveRow>
<ActiveCol>2</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
</tt:template>
</tt:transform>