home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / ib / setups / intrabld / data.z / KBRESULT.JRP < prev    next >
Text File  |  1996-12-11  |  13KB  |  405 lines

  1. /****************************************************************************\
  2. *                                                                            *
  3. * KBResult.jrp  --  Knowledge Base Search Results Report                     *
  4. *                                                                            *
  5. * KBResult.jrp is part of the Knowledge Base solution application. It is     *
  6. * called by the kbsearch.jfm form to show a list of documents that match the *
  7. * search criteria. The report file takes several parameters that control the *
  8. * generation of the sql statement that is used to search for data. Each of   *
  9. * the document titles is used to link to the kbdoc.jfm form.                 *
  10. *                                                                            *
  11. * Dependencies:  knowbs31.gif                                                *
  12. *                homepg31.gif                                                *
  13. *                paper_22.gif                                                *
  14. *                database.cc                                                 *
  15. *                apps\shared\controls.cc                                     *
  16. *                                                                            *
  17. * Links to:      ibapps/index.htm                                            *
  18. *                svr/intrasrv.isv?apps/kbase_ib/kbsearch.jfm                 *
  19. *                svr/intrasrv.isv?apps/kbase_ib/kbdoc.jfm(<DocID>)           *
  20. *                                                                            *
  21. * Updated 11/13/96 by IntraBuilder Samples Group                             *
  22. * $Revision:   1.24  $                                                       *
  23. *                                                                            *
  24. * Copyright (c) 1996, Borland International, Inc. All rights reserved.       *
  25. *                                                                            *
  26. \****************************************************************************/
  27. // This heading is used in place of the standard report heading, to get
  28. // the query string for the report.
  29. var argv = KBRESULT.arguments;
  30. var noneFound = false;
  31. var r = new KBRESULTReport();
  32. // printing subset of pages
  33. if (argv.length >= 2) {
  34.    r.startPage = argv[0];
  35.    r.endPage   = argv[1];
  36. }
  37. // printing with query conditions
  38. if (argv.length >= 3) {
  39.    var prod      = argv[2];
  40.    var cat       = argv[3];
  41.    var key       = argv[4];
  42.    var searchDoc = argv[5]
  43.    // build a select statement to get the desired records
  44.    // basic select
  45.    var select = 'SELECT KBASE.DocumentID , KBASE.Title , ' + 
  46.                 '  KBPROD.ProdDescript , KBCAT.CatDescript , ' +
  47.                 '  KBASE.Keyword , KBASE.Document ' + 
  48.                 'FROM KBASE , KBPROD , KBCAT ' +
  49.                 'WHERE ( KBASE.Product = KBPROD.Product ) ' +
  50.                 '     AND '  +
  51.                 '  ( KBASE.Category = KBCAT.Category ) ' ;
  52.    // process the product field
  53.    if (prod.length > 0 && prod.string != "(all products)") {
  54.       select += " AND ( KBPROD.ProdDescript = '" + prod.string + "' )";
  55.    }
  56.    // process the category field
  57.    if (cat.length > 0 && cat.string != "(all categories)") {
  58.       select += " AND ( KBCAT.CatDescript = '" + cat.string + "' )";
  59.    }
  60.    // process the keyword field
  61.    if (key.length > 0) {
  62.       // search the keyword/title
  63.       select += " AND ( UPPER(KBASE.Keyword) LIKE '%" + key.toUpperCase() + "%' OR "
  64.               + "UPPER(KBASE.Title) LIKE '%" + key.toUpperCase() + "%'";
  65.       // search the document if necessary
  66.       if (searchDoc) {
  67.          select += " OR KBASE.Document LIKE '%" + key.string + "%'";
  68.       }
  69.       // add the closing paren around the OR clauses
  70.       select += ' )';
  71.    }
  72.    // run the results form if there is any data
  73.    r.query1.sql = select;
  74.    noneFound = r.query1.rowset.endOfSet;
  75.    if (noneFound) {
  76.       _sys.scripts.run("kbdoc.jfm",0);
  77.    }
  78.    else {
  79.       r.nextPageParams = ",'" + escape(argv[2]) + "','" + escape(argv[3]) + "','" + escape(argv[4]) + "'," + argv[5];
  80.       r.pageTemplate1.NextPageHTML.text = {||this.form.isLastPage() ? "" : '<A HREF="/svr/intrasrv.isv?apps/kbase_ib/kbresult.jrp(' + (this.form.endPage + 1) + "," + (this.form.endPage + 1) + this.form.nextPageParams + ')">Next Page</A>'};
  81.    }
  82. }
  83. // precount the number of matches
  84. if (!noneFound) {
  85.    r.matches = r.query1.rowset.count();
  86.    r.query1.rowset.first();
  87.    r.render();
  88. }
  89. return;
  90. // {End Header} Do not remove this comment//
  91. // Generated on 11/13/96
  92. //
  93. var r = new KBRESULTReport();
  94. if (KBRESULT.arguments.length == 2) {
  95.    r.startPage = KBRESULT.arguments[0];
  96.    r.endPage = KBRESULT.arguments[1];
  97. }
  98. r.render();
  99. class KBRESULTReport extends Report {
  100.    _sys.scripts.load(_sys.env.home() + "APPS\\SHARED\\CONTROLS.CC")
  101.    _sys.scripts.load("DATABASE.CC")
  102.    with (this) {
  103.       onDesignLoad = {;this.matches = 1};
  104.       title = "Knowledge Base Search Results";
  105.       linkText = "";
  106.    }
  107.  
  108.  
  109.    with (this.ibapps1 = new KbaseDatabase()){
  110.       left = 49;
  111.       top = 3;
  112.       active = true;
  113.    }
  114.  
  115.  
  116.    with (this.query1 = new Query()){
  117.       left = 570;
  118.       top = 0;
  119.       database = parent.ibapps1;
  120.       sql = "@kbresult.sql";
  121.       requestLive = false;
  122.  
  123.       active = true;
  124.    }
  125.  
  126.  
  127.    with (this.query1.rowset) {
  128.  
  129.    }
  130.  
  131.  
  132.    with (this.pageTemplate1 = new PageTemplate(this)){
  133.       height = 15000;
  134.       width = 9000;
  135.       marginTop = 0;
  136.       marginLeft = 0;
  137.       marginBottom = 0;
  138.       marginRight = 0;
  139.       gridLineWidth = 0;
  140.       color = "ffffdb";
  141.    }
  142.  
  143.  
  144.    with (this.pageTemplate1.streamFrame1 = new StreamFrame(this.pageTemplate1)){
  145.       height = 9000;
  146.       top = 2000;
  147.       width = 9000;
  148.    }
  149.  
  150.  
  151.    with (this.pageTemplate1.KnowledgeBaseLogo = new Image(this.pageTemplate1)){
  152.       height = 1255;
  153.       width = 1265;
  154.       dataSource = "filename KNOWBS31.GIF";
  155.       alignment = 4;
  156.    }
  157.  
  158.  
  159.    with (this.pageTemplate1.HeadingHTML = new HTML(this.pageTemplate1)){
  160.       height = 1255;
  161.       left = 1300;
  162.       width = 7700;
  163.       color = "navy";
  164.       alignVertical = 1;
  165.       text = {||'<H1><FONT SIZE="+4"><FONT COLOR="maroon">K</FONT></FONT>nowledge <FONT SIZE="+4"><FONT COLOR="maroon">B</FONT></FONT>ase <FONT SIZE="+4"><FONT COLOR="maroon">R</FONT></FONT>esults</H1>'};
  166.    }
  167.  
  168.  
  169.    with (this.pageTemplate1.rule1 = new Rule(this.pageTemplate1)){
  170.       top = 1300;
  171.       size = 2;
  172.       right = 9000;
  173.    }
  174.  
  175.  
  176.    with (this.pageTemplate1.MatchesHTML = new HTML(this.pageTemplate1)){
  177.       height = 200;
  178.       top = 1500;
  179.       width = 9000;
  180.       color = "maroon";
  181.       fontItalic = true;
  182.       text = {||"Number of matches: " + this.form.matches};
  183.    }
  184.  
  185.  
  186.    with (this.pageTemplate1.rule2 = new Rule(this.pageTemplate1)){
  187.       top = 1800;
  188.       size = 2;
  189.       right = 9000;
  190.    }
  191.  
  192.  
  193.    with (this.pageTemplate1.rule3 = new Rule(this.pageTemplate1)){
  194.       top = 11100;
  195.       size = 2;
  196.       right = 9000;
  197.    }
  198.  
  199.  
  200.    with (this.pageTemplate1.SearchLinkImage = new Image(this.pageTemplate1)){
  201.       onImageClick = class::SearchLinkImage_onClick;
  202.       height = 1245;
  203.       top = 11200;
  204.       width = 1240;
  205.       dataSource = "filename KNOWBS31.GIF";
  206.       alignment = 4;
  207.    }
  208.  
  209.  
  210.    with (this.pageTemplate1.SearchLinkHTML = new HTML(this.pageTemplate1)){
  211.       height = 250;
  212.       left = 1300;
  213.       top = 11200;
  214.       width = 7700;
  215.       color = "black";
  216.       fontBold = false;
  217.       text = {||'<A HREF="/svr/intrasrv.isv?apps/kbase_ib/kbsearch.jfm">Start a New Search</A>'};
  218.    }
  219.  
  220.  
  221.    with (this.pageTemplate1.HomePageLinkImage = new Image(this.pageTemplate1)){
  222.       onImageClick = class::HomePageLinkImage_onClick;
  223.       height = 1215;
  224.       top = 12600;
  225.       width = 1255;
  226.       dataSource = "filename HOMEPG31.GIF";
  227.       alignment = 4;
  228.    }
  229.  
  230.  
  231.    with (this.pageTemplate1.HomePageLinkHTML = new HTML(this.pageTemplate1)){
  232.       height = 250;
  233.       left = 1300;
  234.       top = 12600;
  235.       width = 7700;
  236.       color = "black";
  237.       fontBold = false;
  238.       text = {||'<A HREF="/ibapps/index.htm">Return to Home Page</A>'};
  239.    }
  240.  
  241.  
  242.    with (this.pageTemplate1.rule4 = new Rule(this.pageTemplate1)){
  243.       top = 14100;
  244.       size = 2;
  245.       right = 9000;
  246.    }
  247.  
  248.  
  249.    with (this.pageTemplate1.GeneratedHTML = new GeneratedHTML(this.pageTemplate1)){
  250.       height = 200;
  251.       top = 14200;
  252.       width = 9000;
  253.       fontBold = false;
  254.    }
  255.  
  256.  
  257.    with (this.pageTemplate1.NextPageHTML = new HTML(this.pageTemplate1)){
  258.       height = 200;
  259.       top = 13900;
  260.       width = 9000;
  261.       color = "black";
  262.       fontBold = false;
  263.       text = {||this.form.isLastPage() ? "" : '<A HREF="/svr/intrasrv.isv?apps/kbase_ib/kbresult.jrp(' + (this.form.endPage + 1) + ',' + (this.form.endPage + 1) + ')">Next Page</A>'};
  264.    }
  265.  
  266.  
  267.    with (this.streamSource1 = new StreamSource(this)){
  268.  
  269.    }
  270.  
  271.  
  272.    with (this.streamSource1.detailBand) {
  273.       height = 1200;
  274.    }
  275.  
  276.  
  277.    with (this.streamSource1.detailBand.TitleHTML = new HTML(this.streamSource1.detailBand)){
  278.       height = 200;
  279.       width = 2000;
  280.       color = "black";
  281.       fontBold = false;
  282.       text = "Title ";
  283.    }
  284.  
  285.  
  286.    with (this.streamSource1.detailBand.TitleFieldHTML = new HTML(this.streamSource1.detailBand)){
  287.       height = 200;
  288.       left = 2000;
  289.       width = 7000;
  290.       color = "black";
  291.       text = {||"<A HREF='/svr/intrasrv.isv?apps/kbase_ib/kbdoc.jfm(" + parseInt(this.form.query1.rowset.fields["DocumentID"].value) + ")'>" + this.form.query1.rowset.fields["Title"].value + "</A>"};
  292.    }
  293.  
  294.  
  295.    with (this.streamSource1.detailBand.DocumentIdHTML = new HTML(this.streamSource1.detailBand)){
  296.       height = 200;
  297.       top = 200;
  298.       width = 2000;
  299.       color = "black";
  300.       fontBold = false;
  301.       text = "Document Number ";
  302.    }
  303.  
  304.  
  305.    with (this.streamSource1.detailBand.DocumentIdFieldHTML = new HTML(this.streamSource1.detailBand)){
  306.       height = 200;
  307.       left = 2000;
  308.       top = 200;
  309.       width = 7000;
  310.       color = "black";
  311.       text = {||parseInt(this.form.query1.rowset.fields["DocumentID"].value)};
  312.    }
  313.  
  314.  
  315.    with (this.streamSource1.detailBand.ProdCatHTML = new HTML(this.streamSource1.detailBand)){
  316.       height = 200;
  317.       top = 400;
  318.       width = 2000;
  319.       color = "black";
  320.       fontBold = false;
  321.       text = "Product / Category ";
  322.    }
  323.  
  324.  
  325.    with (this.streamSource1.detailBand.ProdCatFieldsHTML = new HTML(this.streamSource1.detailBand)){
  326.       height = 200;
  327.       left = 2000;
  328.       top = 400;
  329.       width = 7000;
  330.       color = "black";
  331.       text = {||this.form.query1.rowset.fields["ProdDescript"].value + " / " + this.form.query1.rowset.fields["CatDescript"].value};
  332.    }
  333.  
  334.  
  335.    with (this.streamSource1.detailBand.KeywordHTML = new HTML(this.streamSource1.detailBand)){
  336.       height = 200;
  337.       top = 600;
  338.       width = 2000;
  339.       color = "black";
  340.       fontBold = false;
  341.       text = "Key words ";
  342.    }
  343.  
  344.  
  345.    with (this.streamSource1.detailBand.KeywordFieldHTML = new HTML(this.streamSource1.detailBand)){
  346.       height = 200;
  347.       left = 2000;
  348.       top = 600;
  349.       width = 7000;
  350.       color = "black";
  351.       text = {||this.form.query1.rowset.fields["Keyword"].value};
  352.    }
  353.  
  354.  
  355.    with (this.streamSource1.detailBand.rule1 = new Rule(this.streamSource1.detailBand)){
  356.       top = 900;
  357.       size = 2;
  358.       right = 9000;
  359.    }
  360.  
  361.  
  362.    with (this.printer) {
  363.       duplex = 1;
  364.       orientation = 1;
  365.       paperSource = 15;
  366.       paperSize = 1;
  367.       resolution = 4;
  368.       color = 2;
  369.       trueTypeFonts = 2;
  370.    }
  371.  
  372.  
  373.    with (this.reportGroup) {
  374.       groupBy = "";
  375.    }
  376.  
  377.  
  378.    with (this.reportGroup.headerBand) {
  379.       height = 0;
  380.    }
  381.  
  382.  
  383.    with (this.reportGroup.footerBand) {
  384.       height = 0;
  385.    }
  386.  
  387.    this.firstPageTemplate = this.form.pageTemplate1
  388.    this.form.pageTemplate1.nextPageTemplate = this.form.pageTemplate1
  389.    this.form.pageTemplate1.streamFrame1.streamSource = this.form.streamSource1
  390.    this.form.streamSource1.rowset = this.form.query1.rowset
  391.  
  392.    function HomePageLinkImage_onClick()
  393.    {
  394.    // {Export} This comment causes this function body to be sent to the client
  395.    location.href="/ibapps/index.htm";
  396.    }
  397.  
  398.    function SearchLinkImage_onClick()
  399.    {
  400.    // {Export} This comment causes this function body to be sent to the client
  401.    location.href="/svr/intrasrv.isv?apps/kbase_ib/kbsearch.jfm";
  402.    }
  403.  
  404. }
  405.