Wydruk do pdf
Źródło danych dla wydruku musi zostać umieszczone w pliku o nazwie Data.xml. Głównym elementem w pliku jest sekcja data wewnątrz której musi się znaleźć dokładnie jeden element setf. Wewnątrz elementu setf musi się znaleźć jeden lub więcej elementów set. Każdy element set reprezentuje jeden zbiór danych (wynik jednego zapytania SQL). Musi on zawierać dwa elementy podrzędne: name – który określa nazwę zbioru oraz query, które definiuje zapytanie SQL wykonywane na mobilnej bazie danych aplikacji Comarch Mobile.
Przykład standardowego pliku data.xml występującego w definicji wydruku dokumentu Zamówienie Sprzedaży (1#SalesOrder#data#Wydruk_domyślny.xml):
<!DOCTYPE data PUBLIC „//UNKNOWN/” „unknown.dtd”>
<data>
<setf>
<set>
<name>Header</name>
<query>
…
</query>
</set>
<set>
<name>DocumentsPositions</name>
<query>
…
</query>
</set>
<set>
<name>VatAggregation</name>
<query>
…
</query>
</set>
<set>
<name>Logo</name>
<query>SELECT Data FROM PrintoutsImages WHERE Name=’logo.png'</query>
</set>
<set>
<name>FooterAppVersionNumber</name>
<query>
SELECT MajorVersion AS MajorVersion, MinorVersion AS MinorVersion, BuildVersion AS BuildVersion
FROM Packages
</query>
</set>
<set>
<name>FooterOperatorCode</name>
<query>
SELECT Name AS OperatorCode
FROM Users
</query>
</set>
<set>
<name>FooterCopyNumber</name>
<query>
SELECT CASE WHEN COUNT(Number) = 0 THEN 1 ELSE COUNT(Number) + 1 END AS Numbers
FROM Documents
INNER JOIN RealizedPrintouts rp ON(Documents.Number = rp.DocumentNumber)
WHERE Documents.Id=@Id@
</query>
</set>
</setf>
</data>
Wydruk termiczny
Jedyną różnicą w definicji pliku data.xml dla wydruków termicznych względem definicji wydruku do pdf jest brak elementu setf. Przykład takiego wydruku (11#SalesOrder#data#Thermal#Vline112#Wydruk_domyślny.xml) wygląda nastepująco:
<!DOCTYPE data PUBLIC „//UNKNOWN/” „unknown.dtd”>
<data>
<set>
<name>Header</name>
<query>
…
</query>
</set>
<set>
<name>DocumentsPositions</name>
<query>
…
</query>
</set>
<set>
<name>VatAggregation</name>
<query>
…
</query>
</set>
<set>
<name>FooterAppVersionNumber</name>
<query>
SELECT MajorVersion AS MajorVersion, MinorVersion AS MinorVersion, BuildVersion AS BuildVersion
FROM Packages
</query>
</set>
<set>
<name>FooterOperatorCode</name>
<query>
SELECT Name AS OperatorCode
FROM Users
</query>
</set>
<set>
<name>FooterCopyNumber</name>
<query>
SELECT CASE WHEN COUNT(Number) = 0 THEN 1 ELSE COUNT(Number) + 1 END AS Numbers
FROM Documents
INNER JOIN RealizedPrintouts rp ON(Documents.Number = rp.DocumentNumber)
WHERE Documents.Id=@Id@
</query>
</set>
</data>