IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 31, 2008, 12:42:45 PM (18 years ago)
Author:
eugene
Message:

adding summary pages, mods to generate and ipp.php to support summary pages

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippMonitor/scripts/generate

    r18212 r19302  
    2727    &init_key ("MENU");
    2828    &init_key ("STYLE");
     29    &init_key ("MODE");
    2930    &init_key ("TABLE");
    3031    &init_key ("TITLE");
     
    3233
    3334    &init_key ("FIELDS");
     35    &init_key ("GROUPS");
    3436
    3537    foreach $line (@list) {
     
    4749            ($field, $width, $format, $name, $show, $link, $extras) = split (/,\s+/, $value, 7);
    4850            if (! $name) { die "table $ARGV[0] missing required elements\n"; }
    49             # ($field) = $field =~ m|\s*(\S+)\s*|;
    50 
     51            if ($field =~ m|\S+\s+as\s+\S+|) {
     52                ($fieldreal) = $field =~ m|\S+\s+as\s+(\S+)|;
     53            } else {
     54                $fieldreal = $field;
     55            }
     56           
    5157            if ($VERBOSE) { printf "%-20s %-20s %-20s %-20s %-20s %-20s\n", $field, $name, $format, $show, $link, $extras; }
    5258
    5359            if ($show eq "") {$show = "value";}
    54             push @field,   $field;
    55             push @width,   $width;
    56             push @format,  $format;
    57             push @name,    $name;
    58             push @show,    $show;
    59             push @link,    $link;
    60             push @extras,  $extras;
     60            push @field,     $field;
     61            push @fieldreal, $fieldreal;
     62            push @width,     $width;
     63            push @format,    $format;
     64            push @name,      $name;
     65            push @show,      $show;
     66            push @link,      $link;
     67            push @extras,    $extras;
    6168        }
    6269
     
    7380        if ($key eq "IMAGE") {
    7481            push @imagedefs, $value;
     82        }
     83
     84        # the GROUP entries are used in summary tables as arguments to the GROUP BY sql statement
     85        if ($key eq "GROUP") {
     86            push @group, $value;
    7587        }
    7688
     
    108120    &check_key ("MENU", "ipp.menu.dat");
    109121    &check_key ("STYLE", "ipp.css");
     122    &check_key ("MODE", "basic");
    110123    &check_key ("TABLE", "");
    111124    &check_key ("TITLE", "");
     
    115128    for ($i = 0; $i < @key; $i++) {
    116129        if ($key[$i] eq "MENU") { $MENU = $value[$i]; }
    117     }
     130        if ($key[$i] eq "MODE") {
     131            if ($value[$i] eq "summary") {
     132                if (@group == 0) {
     133                    print STDERR "a summary table must have at least one group\n";
     134                    exit 1;
     135                }
     136                &define_groups_string (@group);
     137            }
     138        }
     139    }
     140
     141    &check_key ("GROUPS", "none");
    118142
    119143    # define FIELDS and WHERE strings, add to keypairs
     
    246270            print FILE "write_sort_cell (\"list\", \"$opf{$value}\", \$buttonLink, \$ID, '$myFile');\n";
    247271        } else {
    248             print FILE "write_sort_cell (\"list\", \"$field[$i]\", \$buttonLink, \$ID, '$myFile');\n";
     272            print FILE "write_sort_cell (\"list\", \"$fieldreal[$i]\", \$buttonLink, \$ID, '$myFile');\n";
    249273        }
    250274    }
     
    281305    }   
    282306    for ($i = 0; $i < @field; $i++) {
    283         $value = $field[$i];
     307        $value = $fieldreal[$i];
    284308        if ($value eq "*") { next; }
    285309        if ($format[$i] eq "%s") {
     
    291315        }
    292316    }
    293     print FILE "\$WHERE = check_ordering (\$WHERE);\n";
     317    print FILE "\$WHERE = check_ordering ('$GROUPS', \$WHERE);\n";
    294318}
    295319
     
    298322
    299323    for ($i = 0; $i < @field; $i++) {
    300         $value = $field[$i];
     324        $value = $fieldreal[$i];
    301325        if ($value eq "*") { next; }
    302326        if ($format[$i] eq "%s") {
     
    323347        } else {
    324348            if ($format[$i] eq "%s") {
    325                 print FILE "write_query_row ('$field[$i]', $width[$i], 'string');\n";
     349                print FILE "write_query_row ('$fieldreal[$i]', $width[$i], 'string');\n";
    326350            } else {
    327                 print FILE "write_query_row ('$field[$i]', $width[$i], 'min');\n";
     351                print FILE "write_query_row ('$fieldreal[$i]', $width[$i], 'min');\n";
    328352            }
    329353        }
     
    336360            print FILE "echo \"<td> &nbsp; </td>\\n\";\n";
    337361        } else {
    338             print FILE "write_query_row ('$field[$i]', $width[$i], 'max');\n";
     362            print FILE "write_query_row ('$fieldreal[$i]', $width[$i], 'max');\n";
    339363        }
    340364    }
     
    421445}
    422446
     447sub define_groups_string {
     448    my (@array) = @_;
     449    my ($i);
     450
     451    $GROUPS = "$array[0]";
     452    for ($i = 1; $i < @array; $i++) {
     453        # skip * fields (not a valid query element
     454        if ($array[$i] eq "*") { next; }
     455        $GROUPS = "$GROUPS,$array[$i]";
     456    }
     457    set_keypair ("GROUPS", $GROUPS);
     458}
     459
    423460sub define_fields_count {
    424461    my ($i, $Nrow);
     
    502539            for ($i = 0; $i < @field; $i++) {
    503540                if ($field[$i] eq "*") { next; }
    504                 if ($value =~ m|^\$$field[$i]|) {
    505                     # print "field: $field[$i]\n";
    506                     ($name, $extra) = $value =~ m|^\$($field[$i])\@(\S+)|;
     541                if ($value =~ m|^\$$fieldreal[$i]|) {
     542                    # print "field: $fieldreal[$i]\n";
     543                    ($name, $extra) = $value =~ m|^\$($fieldreal[$i])\@(\S+)|;
    507544                    # print "name: $name\n";
    508545                    # print "extra: $extra\n";
     
    543580
    544581    for ($i = 0; $i < @field; $i++) {
    545         # print STDERR "$i: $field[$i] : $fieldname\n";
     582        # print STDERR "$i: $fieldreal[$i] : $fieldname\n";
    546583
    547584        if ($field[$i] eq "*") { next; }
    548         if ($fieldname ne $field[$i]) { next; }
     585        if ($fieldname ne $fieldreal[$i]) { next; }
    549586
    550587
Note: See TracChangeset for help on using the changeset viewer.