home *** CD-ROM | disk | FTP | other *** search
/ Hand Held Organizer Toolkit / walnutcreekcdrom-handheldorganizertoolkit-march1998.iso / PalmPilot / support_applications / iqreportwizard.zip < prev    next >
Text File  |  1997-12-30  |  7KB  |  212 lines

  1. ## IQ Report Wizard series 1 v2.2b: by Nick Smith, Denmark.
  2. ## mail: smith@post1.tele.dk
  3. ## http://home1.inet.tele.dk/nsa/pilot/
  4. ##
  5. ##
  6. ## I can not be held responsible for any damage occuring to your computer and/or
  7. ## programs by using the program. So be bloody carefull!
  8. ################################################################################
  9. sub xxx123x1;
  10. @cls = ("cls","cls");
  11. $xxx123x2 = "output.csv";
  12. sub process;
  13.  
  14. sub xxx123x3;
  15. sub xxx123x4;
  16. sub xxx123x5;
  17. sub xxx123x8;
  18. sub xxx123x6;
  19. open(xxx123x7, ">IQreport.htm") || die ("Couldn't open HTML output file\n!!");
  20. &xxx123x5;
  21. &xxx123x1;
  22.  
  23.  
  24.  
  25. #################################################
  26. #################################################
  27.  
  28.  
  29. sub xxx123x8 {
  30.     system(@cls);
  31.     
  32.     print("\nEnter the name of your report, this is the long title, \ntype in the name and press ENTER :");
  33.     $report_title = <STDIN>;
  34.     chop($report_title);
  35.     print("\nType in the .PDB file name for your \"$report_title\" database\n\ndo not type in the dot (period)\nor the extension, just the first part: ");
  36.     $xxx123x8name = <STDIN>;
  37.     
  38.     
  39.     chop($xxx123x8name);
  40.     $xxx123x8name = $xxx123x8name . "\." . "pdb";
  41.     if (-e $xxx123x8name) {
  42.         print ("\nI found the PDB file...we will continue..\n");
  43.         sleep(1);
  44.     }
  45.     else {
  46.         print("\nThe PDB file you typed, \"$xxx123x8name\" could not be opened!!\n");
  47.         print("Make sure you typed the name correctly...\n");
  48.         sleep(1);
  49.         die ("\nI am quitting now, try again please.\n");
  50.     }
  51.     
  52.     print("\nI'm converting the file now...\n");
  53.     sleep(1);
  54.     @convert = ("jconv.exe","2",$xxx123x8name, $xxx123x2, "data.inf");
  55.     system(@convert);
  56.     system(@cls);
  57.     open(CSVFILE, $xxx123x2)||die("\n\nCouldn't open CSV file for array processing!!\n");
  58.     $inputxxx123x11 = <CSVFILE>;
  59.     $xxx123x131 = 0;
  60.     while ($inputxxx123x11 ne "") {
  61.         @xxx123x15[$xxx123x131] = $inputxxx123x11;
  62.         $inputxxx123x11 = <CSVFILE>;
  63.         $xxx123x131++;
  64.     }
  65.     close(CSVFILE);
  66.     $xxx123x15_size = @xxx123x15;
  67.     $xxx123x11 = @xxx123x15[0];
  68.     @xxx123x12 = split(/\",\"/,$xxx123x11);
  69.     $temp = @xxx123x12[0];
  70.     $temp =~ s/"//;
  71.     @xxx123x12[0] = $temp;
  72.     $fs = @xxx123x12;
  73.     $temp = @xxx123x12[$fs-1];
  74.     chop($temp);
  75.     chop($temp);
  76.     @xxx123x12[$fs-1] = $temp;
  77.     $fs = 0;
  78.     print("\nThese are the database fields numbered:\n\n");
  79.     $fs = @xxx123x12;
  80.     &xxx123x4(@xxx123x12,$fs, xxx123x7);
  81.     $xxx123x13 = 0;
  82.     while($xxx123x13 < $fs) {
  83.         $number = $xxx123x13+1;
  84.         print ("$number: @xxx123x12[$xxx123x13++]\n");
  85.     }
  86.     print("\nType the number of the field you would like to filter then press ENTER-\n");
  87.     print("\n..or, if you do not want to apply a filter, press \"n\" then ENTER: ");
  88.     $xxx123x14 = <STDIN>;
  89.     chop($xxx123x14);
  90.     print("\n");
  91.     &process(@xxx123x15,$xxx123x14);
  92. }
  93.  
  94. sub process {
  95.     if ($xxx123x14 eq "n" || $xxx123x14 eq "" || $xxx123x14 eq "N")
  96.     {
  97.         $total_xxx123x16s = @xxx123x15;
  98.         $xxx123x16_xxx123x13er = 1;
  99.         while ($xxx123x16_xxx123x13er < $total_xxx123x16s) {
  100.                 $xxx123x16 = @xxx123x15[$xxx123x16_xxx123x13er++];
  101.             @xxx123x9 = split(/\",\"/,$xxx123x16);
  102.             $temp = @xxx123x9[0];
  103.             $temp =~ s/"//;
  104.             @xxx123x9[0] = $temp;
  105.             $fs = @xxx123x9;
  106.             $temp = @xxx123x9[$fs-1];
  107.             chop($temp);
  108.             chop($temp);
  109.             @xxx123x9[$fs-1] = $temp;
  110.             &xxx123x3(@xxx123x9);
  111.         }
  112.         
  113.     }
  114.     else {
  115.         
  116.         system(@cls);
  117.         print("\nNow type in the actual filter to apply. ");
  118.         print("\nThis is quite easy. You can type in upper or lower case, \n");
  119.         print("\nYou can type all, or just part of the data you want to filter.");
  120.         print("\nExample:\n");
  121.         print("\nI only want to report people living in Manchester.");
  122.         print("\nProviding I have selected the correct field in the previous step,");
  123.         print("\nI can type: manch ..and the field will only present data in the");
  124.         print("\nreport where the filter text matches the data in the database.");
  125.         print("\n\nNOW, TYPE IN YOUR FILTER HERE: ");
  126.         $xxx123x17x = <STDIN>;
  127.         chop($xxx123x17x);
  128.         $total_xxx123x16s = @xxx123x15;
  129.         $field_xxx123x13er = 1;
  130.         $xxx123x14 = $xxx123x14-1;
  131.         while ($xxx123x13er < $total_xxx123x16s) {
  132.             $xxx123x11 = @xxx123x15[$xxx123x13er++];
  133.             @xxx123x9 = split(/\",\"/,$xxx123x11);
  134.             $temp = @xxx123x9[0];
  135.             $temp =~ s/"//;
  136.             @xxx123x9[0] = $temp;
  137.             $fs = @xxx123x9;
  138.             $temp = @xxx123x9[$fs-1];
  139.             chop($temp);
  140.             chop($temp);
  141.             @xxx123x9[$fs-1] = $temp;
  142.             if (@xxx123x9[$xxx123x14] =~ /$xxx123x17x/i) {
  143.                 &xxx123x3(@xxx123x9);
  144.             }
  145.         }
  146.     }
  147. }
  148.  
  149. sub xxx123x4 {
  150.     my($xxx123x13);
  151.     print xxx123x7 ("\n<H2>$report_title</H2>\n<HR>");
  152.     print xxx123x7 ("\n<TABLE WIDTH=\"100%\" BORDER=2><TR>") || die("\nCouldnt do table header");
  153.     $xxx123x13 = 0;
  154.     while($xxx123x13 < $fs) {
  155.         print xxx123x7 ("<TD ALIGN=LEFT><B>@xxx123x12[$xxx123x13++]</B></TD>");
  156.     }
  157.     print xxx123x7 ("</TR>\n\n");
  158. }
  159. sub xxx123x5 {
  160.     print xxx123x7 ("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">");
  161.     print xxx123x7 ("<HTML><HEAD><TITLE>Generated by IQ Report Wizard 2.2b by Nick Smith</title></HEAD>");
  162.     print xxx123x7 ("<BODY BGCOLOR=\"#ffffff\" TEXT=\"#000000\" ");
  163.     print xxx123x7 ("LINK=\"#0000ff\" VLINK=\"#800080\" ALINK=\"#ff0000\">");
  164.     print xxx123x7 ("\n<H3>Generated by IQ Report Wizard 2.2b by Nick Smith</H3><HR>\n");
  165. }
  166. sub xxx123x3 {
  167.     $cols = @xxx123x9;
  168.     $xxx123x13data = 0;
  169.     print xxx123x7 ("\n<TR>");
  170.     while ($xxx123x13data < $cols) {
  171.         print xxx123x7 ("<TD ALIGN=RIGHT>@xxx123x9[$xxx123x13data++]</TD>");
  172.     }
  173.     print xxx123x7 ("</TR>");
  174. }
  175.  
  176. sub xxx123x6 {
  177.     local($xxx123x10, $xxx123x11, @xxx123x12, $fs, $xxx123x13, $number);
  178.     $xxx123x11 = @xxx123x15[0];
  179.     @xxx123x12 = split(/\",\"/,$xxx123x11);
  180.     $xxx123x10 = @xxx123x12[0];
  181.     $xxx123x10 =~ s/"//;
  182.     @xxx123x12[0] = $xxx123x10;
  183.     $fs = @xxx123x12;
  184.     $xxx123x10 = @xxx123x12[$fs-1];
  185.     chop($xxx123x10);
  186.     chop($xxx123x10);
  187.     @xxx123x12[$fs-1] = $xxx123x10;
  188.     $fs = 0;
  189.     print("\nThese are the columns numbered:\n\n");
  190.     $fs = @xxx123x12;
  191.     $xxx123x13 = 0;
  192.     while($xxx123x13 < $fs) {
  193.         $number = $xxx123x13+1;
  194.         print ("$number: @xxx123x12[$xxx123x13++]\n");
  195.     }
  196. }
  197.  
  198.  
  199. sub xxx123x1 {
  200.     system(@cls);
  201.     
  202.     print("Welcome to the IQ (series 1) 2.2b Wizard! : Nick Smith\n");
  203.     print("This Report Wizard will guide you through the setup of your database report.\n\n");
  204.     print("You will be asked a series of questions about your database and the contents of\n");
  205.     print("the report it will generate.\n");
  206.     
  207.     print ("\n\nPress ENTER to contine ...you can quit at anytime by pressing CTRL + C");
  208.     $nul = <STDIN>;
  209.     system(@cls);
  210.     &xxx123x8;
  211. }
  212.