[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