Proszę o pomoc w rozwiązaniu następującego problemu. Mam poniższy skrypt, który działa prawie we wszystkich przypadkach które występują w mojej firmie.
Nieobsługiwany przypadek to np dwie WM-ki do jednego dokumentu źródłowego. Wtedy na wydruku pojawia się suma elementów z tych 2 wm-ek czyli faktycznie wszystkie elementy ze źródłowego,
a powinny być dwie WM-ki, na dodatek dwa razy, w nagłówku wydruku mam prawidłowe info z numer WM i z numerem źródłowego dokumentu.
Kod: Zaznacz cały
[SQL]
@PAR ?@Hn1|CDN_Urzadzenie|CDN_Urzadzenie:2@? PAR@
@PAR ?@Hs200|Printer|Printer:''@? PAR@
SELECT MaN_ZrdTyp, MaN_ZrdNumer, Printer= ??_QPrinter FROM CDN.MagNag JOIN CDN.RptZaznaczenia2 ON RpZ2_GIDTyp = MaN_GIDTyp AND RpZ2_GIDNumer = MaN_GIDNumer WHERE ?@Hs200_NQ|Filtr:''@?
[XSL]
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:usr="urn:the-xml-files:xslt" >
<xsl:output omit-xml-declaration="yes" method="html"/>
<msxsl:script language="VBScript" implements-prefix="usr">
<![CDATA[
Function WykonajWydrukDok(MaN_ZrdTyp, MaN_ZrdNumer, Drukarka_)
Dim Format
Set Format = CreateObject("CDN.XLXLWydrFormat")
if (MaN_ZrdTyp = 2001) or (MaN_ZrdTyp = 2033) or (MaN_ZrdTyp = 2034) then
Format.ZrodloID = 1
Format.WydrukID = 23
Format.ID = 2
Format.FiltrTPS = "(TrN_GIDTyp="+MaN_ZrdTyp+" AND TrN_GIDNumer="+MaN_ZrdNumer+")"
elseif (MaN_ZrdTyp = 960) then
Format.ZrodloID = 1
Format.WydrukID = 23
Format.ID = 2
Format.FiltrTPS = "(ZaN_GIDNumer="+MaN_ZrdTyp+" AND ZaN_GIDNumer="+MaN_ZrdNumer+")"
end if
Format.FiltrSQL = Format.FiltrTPS
Format.Sortowanie = "@TXR"
Format.Urzadzenie = ??CDN_Urzadzenie
If ??CDN_Urzadzenie = 3 Then Format.Drukarka = Drukarka_
Format.Wykonaj(ZmienneDyn)
WykonajWydrukDok=""
End Function
]]>
</msxsl:script>
<xsl:output omit-xml-declaration="yes"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="ROOT">
<xsl:apply-templates select="RECORDSET1"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="RECORDSET1">
<xsl:apply-templates select="RECORD" mode="r1"/>
</xsl:template>
<xsl:template match="RECORD" mode="r1">
<xsl:variable name="MaN_ZrdTyp" select="@MaN_ZrdTyp"/>
<xsl:variable name="MaN_ZrdNumer" select="@MaN_ZrdNumer"/>
<xsl:value-of select="usr:WykonajWydrukDok(string($MaN_ZrdTyp),string($MaN_ZrdNumer),string(@Printer))"/>
</xsl:template>
</xsl:stylesheet>
[RUN]
Dummy.bat