[Textlib] Tartozó olvasók
Csabay Károly
csabay at mezobereny.hu
2009. Jan. 26., H, 17:36:43 CET
> Kedves Kollégák!
>
> Egy kis szakmai segítséget kérek. Ki lehet szedni egy
> keresőkérdéssel a TL-ből a késedelmi díjjal/bármilyen
> tartozással rendelkező olvasók adatait? Mert én csak
> olyat találtam, amivel az egyes példányokhoz rendelt
> olvasói tartozások jönnek ki, vagyis a nem is sorba
> rendezhető listán kell egyesével, olvasónként
> összeadogatni az egyes tételeket. (Olvasószolgálat,
> Forgalmi Adatok, Tartozások keresése, Ügyfél csonkolva)
> Megoldható persze, csak körülményes és nagy a
> hibalehetőség...
>
> Másik kérdés: mennyi idő után tekint elveszettnek egy
> könyvet a TL? Mert a tartozások keresése között szép
> számmal fityegnek olyan tételek, hogy Térítési díj: 0
> Ft. Ezekben az esetekben a könyv kölcsönzési határideje
> jó régen lejárt már, de az olvasónak esze ágában
> sincs kifizetni a térítési díjat...
>
> Köszönettel:
>
> Lőrincz Andrea
> könyvtárvezető
Kedves Andrea és Kedves Kollégák!
Engedelmükkel kicsit hosszabban válaszolnék: leírom, én hogyan csinálom ezeket a listákat.
Előrebocsátom, hogy ez az eljárás csak a kölcsönzésekre vonatkozik, más jellegű tartozások (pl. beiratkozási díj elmaradása) gyűjtésére nem használom.
Kétféleképpen lehet a dokumentummal tartozó olvasókat lekérdezni.
Az első módszer:
================
Mondjuk ma van 2009.01.26. Ekkor:
Olvasószolgálat -> Forgalmi adatok -> Kölcsönzések keresése -> Kölcsönzés dátuma: itt beállítok egy intervallumot pl. 20040101-20081126 (a kettő között természetesen a TextLib intervallumjele van). Ennek értelme, hogy a 2004.01.01 előtt kölcsönzött kintlevőségeket behajthatatlannak ítéljük, a 2008.11.26 utániakat még nem kívánjuk zaklatni.
Ez után:
Olvasószolgálat -> Forgalmi adatok -> Kölcsönzések keresése -> Visszavétel dátuma: itt is beállítok egy intervallumot: 20040101-20090126. Vagyis ezek azok a kölcsönzések, amelyeket a mai napig visszahoztak.
Ezzel keletkezett két találati halmaz. A találati halmazok kivonásával (MINUS) elkészítem azt a találati halmazt, amelyben azok a kölcsönzések vannak, amelyeket 2008.11.26-ig vittek ki, de a mai napig nem hozták vissza.
Ezt a találati halmazt nyomtatom. A nyomtatásnál a "Minden mező megjelenítése" formátumot kérem, úgy, hogy a "Fölötte" mezőbe írok néhány csillagot. Ezzel ilyesfajta listát kapok:
*********
KOLCSONZO: Valaky Béla (a neveket természetesen nem adom ki)
KOLCSONOZVE: 1535000107675
KIVIVE: 2006-03-08
HATARIDO: 2006-04-05
KIADTA: Török Zita
KOV_FELSZOLITAS: 2006-04-06
TR_DOLG: Török Zita
TR_DATE: 2006-03-08
KESES_SZORZO: 3
HOSSZ_DB: 2
HOSSZ_INTERVAL: 28
FELSZ_DB: 2
FELSZ_INTERVAL: 14
KOLCSONZOTT: 1535000107675
KOLCSONOZTE: ...
KESES_TARTOZAS: 2958
*********
KOLCSONZO: Satöbbi Géza
KOLCSONOZVE: 1535000137344
KIVIVE: 2006-03-08
HATARIDO: 2006-04-05
KIADTA: Török Zita
KOV_FELSZOLITAS: 2006-04-06
TR_DOLG: Török Zita
TR_DATE: 2006-03-08
KESES_SZORZO: 3
HOSSZ_DB: 2
HOSSZ_INTERVAL: 28
FELSZ_DB: 2
FELSZ_INTERVAL: 14
KOLCSONZOTT: 1535000137344
KOLCSONOZTE: ...
KESES_TARTOZAS: 0
...
STB.
Ezt a listát odaadom a TL2XML programnak. Erről a programról már írtam Thék Gyurinak, és ha jól emlékszem, ő közölte is a listán. A programról egyébként dokumentáció olvasható a http://konyvtar.mezobereny.hu/doksi/TL2XML.htm címen. A program ini file-ja ez esetben így néz ki:
#
# T.PRT TextLib exportjának TL2XML.INI file-ja
#
input = t.prt
xml-comment = TL2XML output $$i inputból $$f ini-file-lal
xml-comment = Készült: $$d. napján $$t-kor
xml-root = KLCSK
xml-rec = KLCS
rec_sep = ***
break = i
indent = i
empty-rec = n
bad-stop = i
warn = i
# vége (t.ini)
A T.PRT a TextLib által előállított lista neve. A program elkészíti a T.XML file-t, amelyet oda lehet adni az Excelnek. Excelben alkalmazhatok szűrést, rendezést, tagolást, részösszegek képzését stb.
A másik módszer:
================
Ez a módszer csak abban különbözik az elsőtől, hogy a visszahozott tételek leválogatását nem a TextLib végzi, hanem az XML állományok között történik. Az első találati halmazt készítem el:
Olvasószolgálat -> Forgalmi adatok -> Kölcsönzések keresése -> Kölcsönzés dátuma: 20040101-20081126
és ezt azonnal nyomtatom ugyanazokkal a paraméterekkel, mint az előbb ("Minden mező megjelenítése" formátum, a "Fölötte" mezőben csillagok).
A TL2XML-lel ismét előállítom az XML állományt, és ebből válogatok. A válogatás szempontja egy XSL file-ban van megfogalmazva, az XSL file így néz ki:
<?xml version="1.0" encoding="ISO-8859-2"?>
<!-- Fájlnév: tt.xsl -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="ISO-8859-2" indent="yes"/>
<xsl:template match="/">
<HUNYO>
<xsl:for-each select="KLCSK/KLCS">
<xsl:if test="not(VISSZA)">
<KLCS>
<KIVIVE><xsl:value-of select="KIVIVE"/></KIVIVE>
<HATARIDO><xsl:value-of select="HATARIDO"/></HATARIDO>
<KOLCSONOZTE><xsl:value-of select="KOLCSONOZTE"/></KOLCSONOZTE>
<VONALKOD><xsl:value-of select="KOLCSONZOTT"/></VONALKOD>
</KLCS>
</xsl:if>
</xsl:for-each>
</HUNYO>
</xsl:template>
</xsl:stylesheet>
A csomópont-elnevezések természetesen ízlés szerint választhatók meg (HUNYO helyett lehet kevésbé komolytalan :-) és a KIVIVE, HATARIDO, KOLCSONOZTE mezők mellett továbbiak is felvehetők a transzformációba. A lényeg az <xsl:if test="not(VISSZA)"> sor, amely azt fejezi ki, hogy azok az XML csomópontok lesznek kiválogatva, amelyeknél nincs VISSZA mező, azaz nem hozták még vissza a könyvet.
Tegyük fel, hogy a TT.XML file-ból szeretnék válogatni a most bemutatott XSL-lel, melynek neve TT.XSL. Az outputot a T2.XML-be szeretném íratni. Ekkor DOS prompból kiadom a
msxsl tt.xml tt.xsl -o t2.xml
parancsot.
Figyelem! Az MSXSL futtatása bizonyos .NET előkészületeket igényel, ezt most nem részletezem.
Az így nyert T2.XML ugyanúgy odaadható az Excelnek, mint az előbbi eredmény.
==========================
A két módszert azért írtam le, mert
1. ellenőrzött eljárásokról van szó, azonos eredményt adnak
2. igyekeztem olyan technikákat ismertetni, amelyeket a Kollégák más esetben is felhasználhatnak
3. szeretném népszerűsíteni TL2XML programomat :-))
A programot egyébként bárki kollégának térítésmentesen megküldöm, aki azt a csabay at mezobereny.hu címre küldött e-mail-ben kéri.
Csabay Károly
könyvtáros
Mezőberény
További információk a(z) Textlib levelezőlistáról