Hosszabbitasok
Gyorgy Thek
h12994the at ELLA.HU
1999. Már. 11., Cs, 11:18:08 CET
Tisztelt Listatagok!
*****************
Eloirat:
Mar majdnem feladtam ezt a levelet, amikor a tema magatol ismet
megelevenedett a listan. Ugy latszik tenyleg fontos dologrol van szo,
bocsanatot kerek a kesoi reagalasert.
Tehat a level:
******************
Fustos Janos TextLib statisztikakat firtato levelere abban a hiszemben
valaszolok a listan, hogy tobbeket erdeklo kerdesekrol van szo. E hitemben
megerosit az a teny, hogy Szabados Anna par napja nagyon hasonlot
kerdezett, emiatt kezdtunk a megoldason gondolkodni.
Elvileg keszen van az altalanos statisztika, persze ebbol semmit nem lehet
latni, mert csak az 1.60-as valtozatban tesszuk kozze. A statisztikara is
ervenyes, ami a keresesekre altalaban igaz: csak azt lehet feldolgozni,
aminek adata van a rendszerben.
Emiatt van baj a hosszabbitasokkal. A hosszabbitas tenyet egyetlen szamlalo
regisztralja, nincs datuma. Ahhoz tehat, hogy az egy adott napon tortent
hosszabbitasokat feldolgozhassuk, adatszerkezet modositasra van szukseg.
Van azonban megoldas, ha keves (?) elhanyagolast megengedunk. Keszitheto
olyan "statisztika", amiben minden hosszzabbitas szerepel (es csak egyszer
szerepel), ami visszahozatallal fejezodik be. A soha vissza nem kerulo
dokumentumok ebbol az osszegzesbol kimaradnak. Az elhanyagolas pedig az,
hogy ez az osszegzes nem az adott idoszakban lebonyolitott hosszabbitasokat
tartalmazza, hanem az adott idoszakban visszahozott dokumentumoknak a
visszahozasig barmikor kert hosszabbitasait. Emiatt az osszegzes az adott
idoszakra nezve csal, viszont hosszabb idointervallumot tekintve elfogadhato
eredmenyt ad.
A folyamat ket lepesbol all: egy keresokerdes eredmenyekent eloallo talalati
halmazt kell kinyomtatni egy nyomtato nyelven megirt nyomtato modult
tartalmazo nyomtatasi formatummal.
Elore elkeszitendo a keresokerdes es a nyomtatasi formatum, ezutan a
hasznalat mar roppant egyszeru.
A keresokerdes:
------------------------------------------------------------------------
keress kolcs rekordokat, ahol visszahozva=%1
nevezd %1 "Időpont",visszahozva
------------------------------------------------------------------------
A program:
------------------------------------------------------------------------
LONG SZAMLALO=0;
LONG OSSZES=0;
Kategoriaja( INT par ) OKATEG_rt
{
PRINT( " Kat: ",#MEGNEVEZES,"\n" );
}
Olvasoja( INT par ) USER_rt
{
IF( FNUM( #KATEGORIA ) == 0 )
{
CPRINT( "\n" );
RETURN 1;
};
CALL( Kategoriaja,#KATEGORIA,"","",par );
}
Cime( INT par ) DOKUMENTUM_rt
{
PRINT( "Cím: ",#FOCIM,"" );
}
Peldanya( INT par ) PELDANY_rt
{
CALL( Cime,#KOTETE,"","",par );
}
Kolcs( INT par ) KOLCS_rt
{INT hossz;
hossz=FLD_INT(#HOSSZABITVA);
/*
IF( hossz > 0 )
{
*/
SZAMLALO=SZAMLALO+1;
NPRINT( "",SZAMLALO,4,". " );
PRINT("Vissza: ",#VISSZA,"");
NPRINT(" Hossz: ",hossz,1," ");
OSSZES=OSSZES+hossz;
CALL( Peldanya,#KOLCSONZOTT,"","",par );
CALL( Olvasoja,#KOLCSONOZTE,"","",par );
/*
};
*/
}
Egyeb()
{
PRINT("Egyéb rekord:",##FOMEZO,"");
}
PROG Hosszabbitasok()
{
IF( Kolcs(0) == 0 )
Egyeb();
}
AFTER_PROG Lablec()
{
NPRINT( "\nA hossszabítások száma összesen:",OSSZES,8,"\n" );
}
---------------------------------------------------------------------------
Be kell irni a vizszintes vonalak kozotti szoveget egy file-ba, legyen
neki <nev>-e es a helye a \TEXTLIB\PRINTER konyvtar legyen. (<nev> ne legyen
azonos a \TEXTLIB\TLM konyvtarban talalhato egyetlen TLM-mel sem!)
A \TEXTLIB\PRINTER konyvtarban az OUTCOMP <nev> paranccsal lehet a
programot leforditani, ha a forditas csak megjegyzesekkel es
figyelmeztetesekkel zarul, akkor elfogadhato!
A TextLibben rendszergazdakent egy uj nyomtatasi formatumot kell csinalni.
Nem kell bele sok minden, legyen neve, es ami fontos nyomtato modulkent az
iment eloallitott <nev> szerepeljen.
Most mar nem kell mast tenni, mint futtatni a keresokerdest, es a kapott
halmazt kinyomtatni az imenti nyomtatasi formatummal. A keresokerdesnel
idopontkent tetszoleges idointervallum is megadhato.
Udvozlettel:
Thek Gyorgy
További információk a(z) Textlib levelezőlistáról