X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=formats%2Fmedium.tcl;h=b9a42a61c542fc644e2ca38bdd10bea97b6110af;hb=c7a9efd3bdd354539355f61d6eacc6b8cfce76c1;hp=2e2b68ecd2a5110b653d2d8b959789baf920e563;hpb=a9e94b1c52d13b2a95330b3df5c009b767ebcb36;p=ir-tcl-moved-to-github.git diff --git a/formats/medium.tcl b/formats/medium.tcl index 2e2b68e..b9a42a6 100644 --- a/formats/medium.tcl +++ b/formats/medium.tcl @@ -4,112 +4,190 @@ # Sebastian Hammer, Adam Dickmeiss # # $Log: medium.tcl,v $ -# Revision 1.2 1995-06-12 15:18:10 adam +# Revision 1.10 1996-01-11 09:31:05 quinn +# Small. +# +# Revision 1.9 1995/10/17 14:18:10 adam +# Minor changes in presentation formats. +# +# Revision 1.8 1995/10/17 10:58:09 adam +# More work on presentation formats. +# +# Revision 1.7 1995/10/16 17:01:03 adam +# Medium presentation format looks better. +# +# Revision 1.6 1995/09/20 11:37:06 adam +# Work on GRS. +# +# Revision 1.5 1995/06/22 13:16:29 adam +# Feature: SUTRS. Setting getSutrs implemented. +# Work on display formats. +# +# Revision 1.4 1995/06/14 12:16:42 adam +# Minor presentation format changes. +# +# Revision 1.3 1995/06/13 14:39:06 adam +# Fix: if {$var != ""} doesn't work if var is a large numerical! +# Highlight when line format is used. +# +# Revision 1.2 1995/06/12 15:18:10 adam # Work on presentation formats. These are used in the main window as well # as popup windows. # # +proc display-grs-medium {w r i} { + foreach e $r { + for {set j 0} {$j < $i} {incr j} { + insertWithTags $w " " marc-tag + } + insertWithTags $w "([lindex $e 0]:[lindex $e 2]) " marc-tag + if {[lindex $e 3] == "string"} { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w "\n" + } elseif {[lindex $e 3] == "subtree"} { + insertWithTags $w "\n" + display-grs-medium $w [lindex $e 4] [expr $i+1] + } else { + insertWithTags $w [lindex $e 4] {} + insertWithTags $w " ?\n" {} + } + } +} proc display-medium {sno no w hflag} { if {$hflag} { - insertWithTags $w "\n$no\n" marc-data + insertWithTags $w " $no " marc-head + insertWithTags $w "\n" } else { $w delete 0.0 end } - set i [z39.$sno getMarc $no field 245 * a] - if {$i != ""} { - set i [lindex $i 0] - insertWithTags $w "Title: " marc-tag - insertWithTags $w $i marc-data + set type [z39.$sno type $no] + if {$type == "SD"} { + set err [lindex [z39.$sno diag $no] 1] + set add [lindex [z39.$sno diag $no] 2] + if {$add != {}} { + set add " :${add}" + } + insertWithTags $w "Error ${err}${add}\n" marc-id + return + } + if {$type != "DB"} { + return + } + set rtype [z39.$sno recordType $no] + if {$rtype == "SUTRS"} { + insertWithTags $w [join [z39.$sno getSutrs $no]] {} + $w insert end "\n" + return + } + if {$rtype == "GRS1"} { + display-grs-medium $w [z39.$sno getGrs $no] 0 + return + } + if {[catch {set i [z39.$sno getMarc $no field 245 * a]}]} { + insertWithTags $w "Unknown record type: $rtype\n" marc-id + return + } + if {"x$i" != "x"} { + insertWithTags $w "Title " marc-pref + insertWithTags $w [string trimright [lindex $i 0] /] marc-text set i [z39.$sno getMarc $no field 245 * b] - if {$i != ""} { - insertWithTags $w [lindex $i 0] marc-data + if {"x$i" != "x"} { + insertWithTags $w [string trimright [lindex $i 0] /] marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 700 * a] - if {$i == ""} { + if {"x$i" == "x"} { set i [z39.$sno getMarc $no field 100 * a] } - if {$i != ""} { + if {"x$i" != "x"} { if {[llength $i] > 1} { - insertWithTags $w "Authors: " marc-tag + insertWithTags $w "Authors " marc-pref } else { - insertWithTags $w "Author: " marc-tag + insertWithTags $w "Author " marc-pref } foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-it } $w insert end "\n" } set i [z39.$sno getMarc $no field 110 * *] - if {$i != ""} { - insertWithTags $w "Co-Author: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "Co-Author " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 650 * *] - if {$i != ""} { + if {"x$i" != "x"} { set n 0 - insertWithTags $w "Keywords: " marc-tag + insertWithTags $w "Keywords " marc-pref foreach x $i { if {$n > 0} { $w insert end ", " } - insertWithTags $w $x marc-data + insertWithTags $w $x marc-it incr n } $w insert end "\n" } set i [concat [z39.$sno getMarc $no field 260 * a] \ [z39.$sno getMarc $no field 260 * b]] - if {$i != ""} { - insertWithTags $w "Publisher: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "Publisher " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 020 * a] - if {$i != ""} { - insertWithTags $w "ISBN: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "ISBN " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 022 * a] - if {$i != ""} { - insertWithTags $w "ISSN: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "ISSN " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 030 * a] - if {$i != ""} { - insertWithTags $w "CODEN: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "CODEN " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 015 * a] - if {$i != ""} { - insertWithTags $w "Ctl number: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "Ctl number " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" } set i [z39.$sno getMarc $no field 010 * a] - if {$i != ""} { - insertWithTags $w "LC number: " marc-tag + if {"x$i" != "x"} { + insertWithTags $w "LC number " marc-pref + foreach x $i { + insertWithTags $w $x marc-text + } + $w insert end "\n" + } + set i [z39.$sno getMarc $no field 710 * a] + if {"x$i" != "x"} { + insertWithTags $w "Corporate name " marc-pref foreach x $i { - insertWithTags $w $x marc-data + insertWithTags $w $x marc-text } $w insert end "\n" }