Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak kod XML-owy przekazac do Worda?
Forum PHP.pl > Forum > XML, AJAX > XML
dziubekpr
Cześc, mam taki problem,
Tworzę wydruk tekstowy w XML-u (kwitek wypłaty)
póki co mam napisany taki kod:

  1. [SQL]
  2. @PAR ?@Hs200_NQ|Filtr:''@? PAR@
  3. @PAR ?@Hs200_NQ|CDN_PrintDevice:''@? PAR@
  4. @PAR ?@Hs200_NQ|CDN_PrinterType:''@? PAR@
  5. @PAR ?@Hs200_NQ|CDN_PrinterCodePage:''@? PAR@
  6. @PAR ?@Hs200_NQ|CDN_PrinterBuffer:''@? PAR@
  7. @PAR ?@Hs200_NQ|CDN_Urzadzenie:''@? PAR@
  8.  
  9.  
  10. @PAR ?@Hs100_NQ|CDN_Firma4:''@? PAR@
  11. @PAR ?@Hs100_NQ|CDN_Firma5:''@? PAR@
  12. @PAR ?@Hs50_NQ|CDN_FMiasto2:''@? PAR@
  13. @PAR ?@Hs50_NQ|CDN_FUlica2:''@? PAR@
  14. @PAR ?@Hs13_NQ|CDN_FNip:''@? PAR@
  15. @PAR ?@Hs50_NQ|CDN_Operator:''@? PAR@
  16.  
  17.  
  18. Select
  19. DataWydr = Convert(char(10), Getdate() , 120),
  20. MiesiacB=substring((Convert(char(10), Getdate() , 120)),6,2),
  21. Operator = ??_DQ_CDN_Operator
  22.  
  23.  
  24. SELECT PRE_Nazwisko, PRE_Imie1, PRE_Pesel, PRE_ETAEtatl, PRE_ETAEtatM, PRE_KodKasyChorych,
  25.        RpZ2_GUID, PRE_PreId, PRE_PraId, PRE_Kod, PRE_DataDo, LPL_LplId,
  26.   LPL_DataOd=Convert(char(10), LPL_DataOd , 120),
  27.       LPL_DataDo=Convert(char(10), LPL_DataDo , 120),
  28.   LPL_Rok, LPL_Miesiac, LPL_DataDok, LPL_Kategoria, PRE_DataOd, WPL_DataDok,
  29.       WPL_NumerPelny, PRE_ZestCzasuPracy, LPL_LplId, WPL_WplId, PRE_PreId, LPL_NumerPelny,
  30.    WPE_SklZdrowSuma=sum(WPE_SklZdrowSuma), WPE_SklZdrowPrac=sum(WPE_SklZdrowPrac), WPL_Wartosc, WPE_PodstZdrow=sum(WPE_PodstZdrow)
  31.    
  32. FROM   ((CDN.PracEtaty INNER JOIN CDN.RptZaznaczenia2 ON PRE_PraId=RpZ2_GIDNumer)
  33.       LEFT OUTER JOIN CDN.Wyplaty ON PRE_PraId=WPL_PraId)
  34.       INNER JOIN CDN.ListyPlac ON WPL_LplId=LPL_LplId
  35.   INNER JOIN CDN.WypElementy ON WPL_WplId=WPE_WplId
  36.   INNER JOIN CDN.TypWyplata ON WPE_TwpId=TWP_TwpId
  37.       WHERE PRE_DataOd<=WPL_DataDok AND PRE_DataDo>=WPL_DataDok  and ??_NQFiltr
  38. group by
  39.   PRE_Nazwisko, PRE_Imie1, PRE_Pesel, PRE_ETAEtatl, PRE_ETAEtatM, PRE_KodKasyChorych,
  40.        RpZ2_GUID, PRE_PreId, PRE_PraId, PRE_Kod, PRE_DataDo, LPL_LplId,
  41.   LPL_DataOd, LPL_DataDo, LPL_Rok, LPL_Miesiac, LPL_DataDok, LPL_Kategoria, PRE_DataOd, WPL_DataDok,
  42.        WPL_NumerPelny, PRE_ZestCzasuPracy, LPL_LplId, WPL_WplId,  PRE_PreId, LPL_NumerPelny,  
  43.   WPL_Wartosc
  44.  
  45.  
  46. i takie tam podobne...
  47.  
  48.  
  49. [XSL]
  50. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  51. <xsl:output method = "xml" omit-xml-declaration="yes"/>
  52. <xsl:preserve-space elements="*"/>
  53. <xsl:template match="/">
  54.  
  55. <xsl:for-each select="ROOT">
  56. <xsl:value-of disable-output-escaping="yes" select="string('&lt;?xml version=&quot;1.0&quot; encoding=&quot;windows-1250&quot;?&gt;')"/>
  57. <ROOT>
  58.  
  59.  
  60. <RAPORT>
  61. <P type="number" name="@PAGELENGTH" value="60"/>
  62. <P type="text" name="@PRINTER" value="{??_QCDN_PrintDevice}"/>
  63. <P type="text" name="@PRINTERTYPE" value="{??_QCDN_PrinterType}"/>
  64. <P type="text" name="@CODEPAGE" value="{??_QCDN_PrinterCodePage}"/>
  65. <P type="text" name="@BUFERING" value="{??_QCDN_PrinterBuffer}"/>
  66. <P type="text" name="@VIEW" value="{??_QCDN_Urzadzenie}"/>
  67.  
  68. <P type="text" name="Nazwisko"/>
  69. <P type="text" name="Imie"/>
  70. <P type="text" name="Pesel"/>
  71. <P type="text" name="EtatL"/>
  72. <P type="text" name="EtatM"/>
  73. <P type="text" name="Numerpelny"/>
  74. <P type="text" name="Rok"/>
  75. <P type="text" name="Kodkasych"/>
  76. <P type="text" name="ZatrudnionyOd"/>
  77. <P type="text" name="ZatrudnionyDo"/>
  78. <P type="text" name="PodstawaZdrow"/>
  79. <P type="text" name="ZdrowOd"/>
  80. <P type="text" name="ZdrowNetto"/>
  81.  
  82.  
  83. <RPT_HEADER>
  84. </RPT_HEADER>
  85.  
  86. .
  87. .
  88. .
  89.  
  90. <PG_HEADER>
  91. </PG_HEADER>
  92.  
  93. <xsl:apply-templates select="RECORDSET1"/>
  94. <xsl:apply-templates select="RECORDSET2"/>
  95. .
  96. .
  97. .
  98.  
  99.  
  100. <RPT_FOOTER>
  101. </RPT_FOOTER>
  102.  
  103. <PG_FOOTER>
  104. </PG_FOOTER>
  105.  
  106. <E>
  107.  
  108. <L/><L/>
  109. <L/><L/>
  110. <L>
  111.   <F width="150" value="+---------------------------------------------------------------------------------------------------+-------------------------+"/>
  112. </L>
  113.  
  114.  
  115. <L>
  116.    
  117.   <F width="1" value="|"/>
  118.   <F width="14" align="right" value="Pracownik:"/>
  119.   <F width="1" value=" "/>
  120.   <F width="84" calc="TRUE" value="@Imie+' '+@Nazwisko" align="left"/>
  121.   <F width="1" value="|"/>
  122.   <F width="7" value="Podpis:"/>
  123.   <F width="1" value=" "/>
  124.   <F width="17" align="center" value="..........."/>
  125.   <F width="1" value="|"/>
  126.    
  127. </L>
  128.  
  129. <L>
  130.   <F width="150" value="+---------------------------------------------------------------------------------------------------+-------------------------+"/>
  131. </L>
  132. <L>
  133.    
  134.   <F width="1" value="|"/>
  135.   <F width="14" align="right" value="Za okres:"/>
  136.   <F width="32" calc="TRUE" align="right" value="@ZatrudnionyOd+' - '+ @ZatrudnionyDo"/>
  137.   <F width="1" value="|"/>
  138.   <F width="25" align="right" value="Symbol:"/>
  139.   <F width="27" calc="TRUE" align="right" value=" @Numerpelny"/>
  140.   <F width="1" value="|"/>
  141.   <F width="19" align="left" value="Narastająco w roku:"/>
  142.   <F width="6" calc="TRUE" align="center" value="@Rok"/>
  143.   <F width="1" value="|"/>
  144. </L>
  145. <L>
  146.   <F width="1" value="|"/>
  147.   <F width="14" align="right" value="PESEL:"/>
  148.   <F width="32" calc="TRUE" align="right" value="@Pesel"/>
  149.   <F width="1" value="|"/>
  150.   <F width="25" align="right" value="Tytuł ubezpieczenia:"/>
  151.   <F width="27" align="right" value=""/>
  152.   <F width="1" value="|"/>
  153.   <F width="19" align="left" value="Podstawa podatku:"/>
  154.   <F width="6" calc="TRUE" align="right" value="@DochodPodst"/>
  155.   <F width="1" value="|"/>
  156.        
  157.    
  158. </L>
  159. i nadal podobne....
  160. .
  161. .
  162. .
  163.  
  164. <L/><L/><L/>
  165. <L/><L/>
  166. </E>
  167.  
  168.  
  169.  
  170. </RAPORT>
  171. </ROOT>
  172. </xsl:for-each>
  173. </xsl:template>
  174.  
  175.  
  176.  
  177. <xsl:template match="RECORDSET1">
  178. <xsl:apply-templates select="RECORD" mode="r1"/>
  179. </xsl:template>
  180.  
  181. <xsl:template match="RECORDSET2">
  182. <xsl:apply-templates select="RECORD" mode="r2"/>
  183. </xsl:template>
  184.  
  185. <xsl:template match="RECORD" mode="r1">
  186. <P type="text" name="DataWydr"><xsl:attribute name="value"><xsl:value-of select="@DataWydr" /></xsl:attribute></P>
  187. <P type="text" name="Operator"><xsl:attribute name="value"><xsl:value-of select="@Operator" /></xsl:attribute></P>
  188. <P type="text" name="MiesiacB"><xsl:attribute name="value"><xsl:value-of select="@MiesiacB" /></xsl:attribute></P>
  189. </xsl:template>
  190.  
  191. <xsl:template match="RECORD" mode="r2">
  192. <D>
  193. <P type="text" name="Nazwisko"><xsl:attribute name="value"><xsl:value-of select="@PRE_Nazwisko" /></xsl:attribute></P>
  194. <P type="text" name="Imie"><xsl:attribute name="value"><xsl:value-of select="@PRE_Imie1" /></xsl:attribute></P>
  195. <P type="text" name="Pesel"><xsl:attribute name="value"><xsl:value-of select="@PRE_Pesel" /></xsl:attribute></P>
  196. <P type="text" name="EtatL"><xsl:attribute name="value"><xsl:value-of select="@PRE_ETAEtatl" /></xsl:attribute></P>
  197. <P type="text" name="EtatM"><xsl:attribute name="value"><xsl:value-of select="@PRE_ETAEtatM" /></xsl:attribute></P>
  198. <P type="text" name="Numerpelny"><xsl:attribute name="value"><xsl:value-of select="@WPL_NumerPelny" /></xsl:attribute></P>
  199. <P type="text" name="Rok"><xsl:attribute name="value"><xsl:value-of select="@LPL_Rok" /></xsl:attribute></P>
  200. <P type="text" name="Kodkasych"><xsl:attribute name="value"><xsl:value-of select="@PRE_KodKasyChorych" /></xsl:attribute></P>
  201. <P type="text" name="ZatrudnionyOd"><xsl:attribute name="value"><xsl:value-of select="@LPL_DataOd" /></xsl:attribute></P>
  202. <P type="text" name="ZatrudnionyDo"><xsl:attribute name="value"><xsl:value-of select="@LPL_DataDo" /></xsl:attribute></P>
  203. <P type="text" name="PodstawaZdrow"><xsl:attribute name="value"><xsl:value-of select="@WPE_PodstZdrow" /></xsl:attribute></P>
  204. <P type="text" name="ZdrowOd"><xsl:attribute name="value"><xsl:value-of select="@WPE_SklZdrowPrac" /></xsl:attribute></P>
  205. <P type="text" name="ZdrowNetto"><xsl:attribute name="value"><xsl:value-of select="@WPE_SklZdrowSuma" /></xsl:attribute></P>
  206. </D>
  207. </xsl:template>
  208.  
  209. .
  210. .
  211. .
  212.  
  213.  
  214. </xsl:stylesheet>
  215.  
  216. [RUN]
  217. printtxt.exe


I jak już odpalam ten plik to wynik otwiera mi się w notatniku, a chciałabym aby otwierał się w MSWORD. Jak już zmieniam
<xsl:output method = "xml" omit-xml-declaration="yes"/> na
<xsl:output method = "text" omit-xml-declaration="yes"/> to otwiera mi się word ale same w nim znaczki!!!
Ponadto chciałabym ustawic marginesy wydruku i to też mi jakoś nie chodzi:(
Pomóżcie o ile wogóle można to tak zrobic

dzięki i pozdrawiam
Echonik
Wiem, że stary temat, ale może komuś się przydać moja odpowiedź
W celu uruchomienia tego skryptu w konkretnej aplikacji, należy wpisać nazwę aplikacji w sekcji [RUN]. W przypadku MS Word to będzie tak:

  1. [RUN]
  2. msword.exe

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.