home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPLayoutGenerator.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  58.2 KB  |  3,585 lines

  1. import java.awt.Color;
  2. import java.awt.TextComponent;
  3. import java.awt.TextField;
  4. import java.util.Vector;
  5.  
  6. public class JDPLayoutGenerator {
  7.    JDPUser user;
  8.    String layoutName;
  9.    String outputFile;
  10.    String[] stoken;
  11.    String dataSource;
  12.    String connectString;
  13.    JDPSelectDSN targetDSN;
  14.    JDPSelectTable targetTable;
  15.    JDPSelectColumns targetColumns;
  16.    JDPSearchLayout targetSearch;
  17.    JDPListLayout targetList;
  18.    JDPScreenLayout targetScreen;
  19.    JDPScreenSettings targetSettings;
  20.    JDPGridSettings targetGridSettings;
  21.    JDPSelectReportDef targetReportDef;
  22.    JDPGridLayout targetGrid;
  23.    JDPSelectChartDef targetChartDef;
  24.    JDPChartLayout targetChart;
  25.    JDPChoiceLayout targetChoice;
  26.    String[] fields;
  27.    String[] fieldSql;
  28.    String[] updatefields;
  29.    String[] insertfields;
  30.    int[] updateindexes;
  31.    int[] dataType;
  32.    int[] gridDataType;
  33.    boolean[] gridIsIdentity;
  34.    int[] indexes;
  35.    int[] indexes2;
  36.    int[] iindexes;
  37.    String[] keys;
  38.    int[] keyDataType;
  39.    boolean[] keyIsIdentity;
  40.    String[] keysSQL;
  41.    String[] keyType;
  42.    String[] keysUpdate;
  43.    int[] keyDataTypeUpdate;
  44.    boolean[] keyIsIdentityUpdate;
  45.    String[] keysSQLUpdate;
  46.    String[] keyTypeUpdate;
  47.    String iconsText;
  48.    String[] buttons;
  49.    String[] buttonsText;
  50.    int totalItems;
  51.    String outputText;
  52.    boolean finishedBuild;
  53.    int totalLines;
  54.    int maxWriteChars = 900;
  55.    int lineIndex;
  56.    StringBuffer str;
  57.    String selectedFields;
  58.  
  59.    String switchField(String var1) {
  60.       String var2 = var1;
  61.       if (var1.indexOf(".") > 0) {
  62.          for(int var3 = 0; var3 < this.targetTable.joinConditions.countItems(); ++var3) {
  63.             String var4 = this.targetTable.joinConditions.getItem(var3);
  64.             int var5 = var4.indexOf(var1);
  65.             if (var5 >= 0) {
  66.                int var6 = var4.indexOf(".");
  67.                if (var6 == var5 + 1) {
  68.                   var6 = var4.substring(var5 + 2).indexOf(".") + var5 + 2;
  69.                   var1 = var4.substring(var6 - 1);
  70.                } else {
  71.                   int var7 = var4.indexOf(" ");
  72.                   var1 = var4.substring(0, var7);
  73.                }
  74.                break;
  75.             }
  76.          }
  77.       }
  78.  
  79.       int var8 = this.targetColumns.columns.getItem(var1);
  80.       if (var8 < 0 || !this.targetColumns.columns.isSelected(var8)) {
  81.          var1 = var2;
  82.       }
  83.  
  84.       return var1;
  85.    }
  86.  
  87.    boolean readyToBuild3() {
  88.       if (this.targetColumns != null && this.targetColumns.keys.getSelectedIndexes().length >= 1) {
  89.          if (this.targetSearch != null && this.targetList == null) {
  90.             this.user.mainmsg.setStatusMsg("You must configure a Result List if you have configured a Search Panel.", 8);
  91.             return false;
  92.          } else if (this.targetScreen != null && this.targetScreen.lastLine >= 0) {
  93.             for(int var1 = 0; var1 <= this.targetScreen.columns.countItems(); ++var1) {
  94.                this.targetScreen.columns.deselect(var1);
  95.             }
  96.  
  97.             for(int var10 = 0; var10 <= this.targetScreen.lastLine; ++var10) {
  98.                for(int var2 = 0; var2 < this.targetScreen.maxcolumns; ++var2) {
  99.                   try {
  100.                      int var3 = this.targetScreen.screenOrder[var10][var2];
  101.                      if (var3 >= 0) {
  102.                         this.targetScreen.columns.select(var3);
  103.                      }
  104.                   } catch (Exception var9) {
  105.                   }
  106.                }
  107.             }
  108.  
  109.             this.fields = this.targetScreen.columns.getSelectedItems();
  110.             this.dataType = new int[this.fields.length];
  111.             String[] var11 = this.targetColumns.columns.getSelectedItems();
  112.             int[] var12 = this.targetColumns.columns.getSelectedIndexes();
  113.  
  114.             for(int var13 = 0; var13 < this.fields.length; ++var13) {
  115.                for(int var4 = 0; var4 < var11.length; ++var4) {
  116.                   if (this.fields[var13].equals(var11[var4])) {
  117.                      this.dataType[var13] = this.targetColumns.columnDatatype[var12[var4]];
  118.                      break;
  119.                   }
  120.                }
  121.  
  122.                this.fields[var13] = this.user.u.strip(this.fields[var13]);
  123.             }
  124.  
  125.             this.indexes = this.targetScreen.columns.getSelectedIndexes();
  126.             this.indexes2 = new int[this.targetGridSettings.columns.countItems()];
  127.  
  128.             for(int var14 = 0; var14 < this.indexes2.length; ++var14) {
  129.                this.indexes2[var14] = -1;
  130.             }
  131.  
  132.             int var15 = 0;
  133.             int var16 = 0;
  134.  
  135.             for(int var5 = 0; var5 < this.indexes2.length; ++var5) {
  136.                if (!this.targetGridSettings.fieldActive[var5]) {
  137.                   ++var16;
  138.                } else {
  139.                   for(int var6 = 0; var6 < this.targetGrid.tableContents.columnOrder.length; ++var6) {
  140.                      if (this.targetGrid.tableContents.columnOrder[var6] == var15) {
  141.                         this.indexes2[var6] = var15 + var16;
  142.                      }
  143.                   }
  144.  
  145.                   ++var15;
  146.                }
  147.             }
  148.  
  149.             String[] var17 = new String[var15];
  150.             this.fieldSql = new String[var15];
  151.             this.gridDataType = new int[var15];
  152.             this.gridIsIdentity = new boolean[var15];
  153.             int var18 = 0;
  154.  
  155.             for(int var7 = 0; var7 < this.indexes2.length; ++var7) {
  156.                if (this.indexes2[var7] >= 0) {
  157.                   var17[var18] = this.targetGridSettings.columns.getItem(this.indexes2[var7]);
  158.                   this.fieldSql[var18] = this.targetGridSettings.fieldSql[this.indexes2[var7]];
  159.                   this.gridDataType[var18] = this.targetColumns.columnDatatype[this.targetGridSettings.columnIndexes[this.indexes2[var7]]];
  160.                   this.gridIsIdentity[var18] = this.targetColumns.columnIsIdentity[this.targetGridSettings.columnIndexes[this.indexes2[var7]]];
  161.                   ++var18;
  162.                }
  163.             }
  164.  
  165.             int var20 = 0;
  166.             if (var17[0].indexOf(".") > 0) {
  167.                for(int var8 = 0; var8 < var17.length; ++var8) {
  168.                   if (var17[var8] != null && var17[var8].indexOf("a.") >= 0) {
  169.                      ++var20;
  170.                   }
  171.                }
  172.             } else {
  173.                var20 = var17.length;
  174.             }
  175.  
  176.             this.updatefields = new String[var20];
  177.             this.updateindexes = new int[var20];
  178.             var18 = 0;
  179.  
  180.             for(int var21 = 0; var21 < var17.length; ++var21) {
  181.                if (var17[var21] != null && (var17[var21].indexOf(".") < 0 || var17[var21].indexOf("a.") >= 0)) {
  182.                   if (var17[var21].indexOf(".") > 0) {
  183.                      this.updatefields[var18] = var17[var21].substring(2);
  184.                   } else {
  185.                      this.updatefields[var18] = var17[var21];
  186.                   }
  187.  
  188.                   this.updateindexes[var18] = var21;
  189.                   ++var18;
  190.                }
  191.  
  192.                if (var17[var21] != null) {
  193.                   var17[var21] = this.user.u.strip(var17[var21]);
  194.                }
  195.             }
  196.  
  197.             this.setKeyFields();
  198.             if (this.layoutName.equals("JDPLayout23")) {
  199.                for(int var22 = 0; var22 < this.fields.length; ++var22) {
  200.                   if (this.indexes[var22] < this.targetSettings.actualCompName.length) {
  201.                      this.fields[var22] = this.user.u.strip(this.targetSettings.actualCompName[this.indexes[var22]]);
  202.                   }
  203.                }
  204.             }
  205.  
  206.             return true;
  207.          } else {
  208.             this.user.mainmsg.setStatusMsg("You have not selected any columns to be displayed.", 8);
  209.             return false;
  210.          }
  211.       } else {
  212.          this.user.mainmsg.setStatusMsg("You must specify a unique key for the selected table.", 8);
  213.          return false;
  214.       }
  215.    }
  216.  
  217.    String getQuote(int var1) {
  218.       if (JDPUtils.isOdbcDate(var1) && this.targetDSN.dsnType.indexOf(JDPJagg.FOXPRO) >= 0) {
  219.          return "#";
  220.       } else {
  221.          return !JDPUtils.isOdbcChar(var1) && !JDPUtils.isOdbcDate(var1) ? "" : "'";
  222.       }
  223.    }
  224.  
  225.    boolean buildJava() {
  226.       int var1 = 1;
  227.       int var2 = 0;
  228.       int var3 = 0;
  229.       String var4 = "";
  230.       String var5;
  231.       if (this.outputFile.startsWith("Prelim")) {
  232.          var5 = this.user.JDesignerPro.JDPDirectory + "Temp" + JDesignerPro.serverSeparator + this.outputFile.trim() + ".java";
  233.       } else {
  234.          var5 = this.user.JDesignerPro.JDPDirectory + "Applications" + JDesignerPro.serverSeparator + "Wizard" + JDesignerPro.serverSeparator + this.outputFile.trim() + ".java";
  235.       }
  236.  
  237.       this.outputText = "";
  238.       int var6 = 0;
  239.       int var7 = 0;
  240.       int var8 = 0;
  241.       boolean var9 = false;
  242.       String var10 = "w+";
  243.       this.iconsText = "";
  244.       this.buttons = new String[20];
  245.       this.buttonsText = new String[20];
  246.       this.user.mainmsg.setStatusMsg("Loading source template file...", 0);
  247.       String var11 = this.user.u.readFromFile(this.user.JDesignerPro.JDPDirectory + "Applications/Layouts/" + this.layoutName.trim() + ".java");
  248.       int var12 = var11.length();
  249.       char[] var13 = new char[var12 * 10];
  250.       this.user.mainmsg.setStatusMsg("Loading source template file...", 0);
  251.  
  252.       try {
  253.          for(int var20 = var11.indexOf("\n", var8); var20 >= 0; var20 = var11.indexOf("\n", var8)) {
  254.             var4 = var11.substring(var8, var20 + 1);
  255.             if (var2 != var3) {
  256.                this.user.mainmsg.setStatusMsg("Source generation " + Integer.toString(var2) + "% complete...", 0);
  257.             }
  258.  
  259.             var3 = var2;
  260.             var4 = this.parseLine(var4);
  261.             var2 = var1++ * 100 / this.totalLines;
  262.             if (var2 > 100) {
  263.                var2 = 100;
  264.             }
  265.  
  266.             if (var4 != null) {
  267.                var7 = var4.length();
  268.                var4.getChars(0, var7, var13, var6);
  269.                var6 += var7;
  270.             }
  271.  
  272.             var8 = var20 + 1;
  273.          }
  274.  
  275.          this.outputText = new String(var13, 0, var6);
  276.          Object var21 = null;
  277.          this.finishedBuild = true;
  278.          this.user.mainmsg.setStatusMsg("Source generation 100% complete... writing...", 0);
  279.          if (!this.user.u.writeToFile(var5, this.outputText, var10)) {
  280.             System.out.println("failed");
  281.             return false;
  282.          }
  283.  
  284.          this.user.mainmsg.setStatusMsg("New Java source created.", 5);
  285.       } catch (Exception var16) {
  286.          this.user.mainmsg.setStatusMsg("Parsing Error occurred. Please send Java console output to BulletProof.", 30);
  287.          System.out.println("Parsing error at parse index: " + Integer.toString(this.lineIndex));
  288.          System.out.println("Line being parsed is: ");
  289.          if (var4 != null) {
  290.             System.out.println(var4);
  291.          }
  292.  
  293.          System.out.println("Line output so far is: ");
  294.          if (this.str != null) {
  295.             System.out.println(this.str);
  296.          }
  297.  
  298.          ((Throwable)var16).printStackTrace();
  299.          return false;
  300.       }
  301.  
  302.       this.user.JDesignerPro.gc();
  303.       return true;
  304.    }
  305.  
  306.    void setHandle(JDPClassLayout var1) {
  307.       if (var1 instanceof JDPSelectDSN) {
  308.          this.targetDSN = (JDPSelectDSN)var1;
  309.       }
  310.  
  311.       if (var1 instanceof JDPSelectTable) {
  312.          this.targetTable = (JDPSelectTable)var1;
  313.       }
  314.  
  315.       if (var1 instanceof JDPSelectColumns) {
  316.          this.targetColumns = (JDPSelectColumns)var1;
  317.       }
  318.  
  319.       if (var1 instanceof JDPSearchLayout) {
  320.          this.targetSearch = (JDPSearchLayout)var1;
  321.       }
  322.  
  323.       if (var1 instanceof JDPListLayout) {
  324.          this.targetList = (JDPListLayout)var1;
  325.       }
  326.  
  327.       if (var1 instanceof JDPScreenLayout) {
  328.          this.targetScreen = (JDPScreenLayout)var1;
  329.       }
  330.  
  331.       if (var1 instanceof JDPScreenSettings) {
  332.          this.targetSettings = (JDPScreenSettings)var1;
  333.       }
  334.  
  335.       if (var1 instanceof JDPGridSettings) {
  336.          this.targetGridSettings = (JDPGridSettings)var1;
  337.       }
  338.  
  339.       if (var1 instanceof JDPSelectReportDef) {
  340.          this.targetReportDef = (JDPSelectReportDef)var1;
  341.       }
  342.  
  343.       if (var1 instanceof JDPSelectChartDef) {
  344.          this.targetChartDef = (JDPSelectChartDef)var1;
  345.       }
  346.  
  347.       if (var1 instanceof JDPChartLayout) {
  348.          this.targetChart = (JDPChartLayout)var1;
  349.       }
  350.  
  351.       if (var1 instanceof JDPGridLayout) {
  352.          this.targetGrid = (JDPGridLayout)var1;
  353.       }
  354.  
  355.       if (var1 instanceof JDPChoiceLayout) {
  356.          this.targetChoice = (JDPChoiceLayout)var1;
  357.       }
  358.  
  359.    }
  360.  
  361.    boolean readyToBuild4() {
  362.       this.indexes2 = new int[this.targetGridSettings.columns.countItems()];
  363.  
  364.       for(int var1 = 0; var1 < this.indexes2.length; ++var1) {
  365.          this.indexes2[var1] = -1;
  366.       }
  367.  
  368.       int var6 = 0;
  369.       int var2 = 0;
  370.  
  371.       for(int var3 = 0; var3 < this.indexes2.length; ++var3) {
  372.          if (!this.targetGridSettings.fieldActive[var3]) {
  373.             ++var2;
  374.          } else {
  375.             for(int var4 = 0; var4 < this.targetGrid.tableContents.columnOrder.length; ++var4) {
  376.                if (this.targetGrid.tableContents.columnOrder[var4] == var6) {
  377.                   this.indexes2[var4] = var6 + var2;
  378.                }
  379.             }
  380.  
  381.             ++var6;
  382.          }
  383.       }
  384.  
  385.       this.fields = new String[var6];
  386.       this.fieldSql = new String[var6];
  387.       this.gridDataType = new int[var6];
  388.       this.gridIsIdentity = new boolean[var6];
  389.       int var7 = 0;
  390.  
  391.       for(int var8 = 0; var8 < this.indexes2.length; ++var8) {
  392.          if (this.indexes2[var8] >= 0) {
  393.             this.fields[var7] = this.targetGridSettings.columns.getItem(this.indexes2[var8]);
  394.             this.fieldSql[var7] = this.targetGridSettings.fieldSql[this.indexes2[var8]];
  395.             this.gridDataType[var7] = this.targetColumns.columnDatatype[this.targetGridSettings.columnIndexes[this.indexes2[var8]]];
  396.             this.gridIsIdentity[var7] = this.targetColumns.columnIsIdentity[this.targetGridSettings.columnIndexes[this.indexes2[var8]]];
  397.             ++var7;
  398.          }
  399.       }
  400.  
  401.       int var9 = 0;
  402.       if (this.fields[0].indexOf(".") > 0) {
  403.          for(int var5 = 0; var5 < this.fields.length; ++var5) {
  404.             if (this.fields[var5] != null && this.fields[var5].indexOf("a.") >= 0) {
  405.                ++var9;
  406.             }
  407.          }
  408.       } else {
  409.          var9 = this.fields.length;
  410.       }
  411.  
  412.       for(int var11 = 0; var11 < this.fields.length; ++var11) {
  413.          this.fields[var11] = this.user.u.strip(this.fields[var11]);
  414.       }
  415.  
  416.       this.setKeyFields();
  417.       return true;
  418.    }
  419.  
  420.    void setLayoutName(String var1) {
  421.       this.layoutName = var1;
  422.    }
  423.  
  424.    String cvtKey(String var1, int var2) {
  425.       return JDPUtils.sqlConvert(var1, var2, this.targetDSN.dsnType);
  426.    }
  427.  
  428.    void getInsertFields() {
  429.       this.iindexes = this.targetColumns.columns.getSelectedIndexes();
  430.       String[] var1 = this.targetColumns.columns.getSelectedItems();
  431.       int var2 = var1.length;
  432.       if (var2 > 0) {
  433.          if (var1[0].indexOf(".") > 0) {
  434.             var2 = 0;
  435.  
  436.             for(int var3 = 0; var3 < var1.length && var1[var3].indexOf("a.") >= 0; ++var3) {
  437.                var1[var3] = var1[var3].substring(2);
  438.                ++var2;
  439.             }
  440.          }
  441.  
  442.          this.insertfields = new String[var2];
  443.          System.arraycopy(var1, 0, this.insertfields, 0, var2);
  444.       }
  445.    }
  446.  
  447.    boolean readyToBuild2() {
  448.       if (this.targetColumns != null && this.targetColumns.keys.getSelectedIndexes().length >= 1) {
  449.          this.indexes2 = new int[this.targetGridSettings.columns.countItems()];
  450.  
  451.          for(int var1 = 0; var1 < this.indexes2.length; ++var1) {
  452.             this.indexes2[var1] = -1;
  453.          }
  454.  
  455.          int var6 = 0;
  456.          int var2 = 0;
  457.  
  458.          for(int var3 = 0; var3 < this.indexes2.length; ++var3) {
  459.             if (!this.targetGridSettings.fieldActive[var3]) {
  460.                ++var2;
  461.             } else {
  462.                for(int var4 = 0; var4 < this.targetGrid.tableContents.columnOrder.length; ++var4) {
  463.                   if (this.targetGrid.tableContents.columnOrder[var4] == var6) {
  464.                      this.indexes2[var4] = var6 + var2;
  465.                   }
  466.                }
  467.  
  468.                ++var6;
  469.             }
  470.          }
  471.  
  472.          this.fields = new String[var6];
  473.          this.fieldSql = new String[var6];
  474.          this.gridDataType = new int[var6];
  475.          this.gridIsIdentity = new boolean[var6];
  476.          int var7 = 0;
  477.  
  478.          for(int var9 = 0; var9 < this.indexes2.length; ++var9) {
  479.             if (this.indexes2[var9] >= 0) {
  480.                this.fields[var7] = this.targetGridSettings.columns.getItem(this.indexes2[var9]);
  481.                this.fieldSql[var7] = this.targetGridSettings.fieldSql[this.indexes2[var9]];
  482.                this.gridDataType[var7] = this.targetColumns.columnDatatype[this.targetGridSettings.columnIndexes[this.indexes2[var9]]];
  483.                this.gridIsIdentity[var7] = this.targetColumns.columnIsIdentity[this.targetGridSettings.columnIndexes[this.indexes2[var9]]];
  484.                ++var7;
  485.             }
  486.          }
  487.  
  488.          int var10 = 0;
  489.          if (this.fields[0].indexOf(".") > 0) {
  490.             for(int var5 = 0; var5 < this.fields.length; ++var5) {
  491.                if (this.fields[var5].indexOf("a.") >= 0) {
  492.                   ++var10;
  493.                }
  494.             }
  495.          } else {
  496.             var10 = this.fields.length;
  497.          }
  498.  
  499.          this.updatefields = new String[var10];
  500.          this.updateindexes = new int[var10];
  501.          var7 = 0;
  502.  
  503.          for(int var11 = 0; var11 < this.fields.length; ++var11) {
  504.             if (this.fields[var11].indexOf(".") < 0 || this.fields[var11].indexOf("a.") >= 0) {
  505.                if (this.fields[var11].indexOf(".") > 0) {
  506.                   this.updatefields[var7] = this.fields[var11].substring(2);
  507.                } else {
  508.                   this.updatefields[var7] = this.fields[var11];
  509.                }
  510.  
  511.                this.updateindexes[var7] = var11;
  512.                ++var7;
  513.             }
  514.  
  515.             this.fields[var11] = this.user.u.strip(this.fields[var11]);
  516.          }
  517.  
  518.          this.setKeyFields();
  519.          return true;
  520.       } else {
  521.          this.user.mainmsg.setStatusMsg("You must specify a unique key for the selected table.", 8);
  522.          return false;
  523.       }
  524.    }
  525.  
  526.    JDPLayoutGenerator(JDPUser var1, String var2, String var3) {
  527.       this.user = var1;
  528.       this.layoutName = var2;
  529.       this.outputFile = var3;
  530.       this.stoken = new String[10];
  531.       this.retrieveVectors();
  532.       this.str = new StringBuffer(5000);
  533.       if (JDPJagg.useJaggServer) {
  534.          this.maxWriteChars = 100000;
  535.       }
  536.  
  537.    }
  538.  
  539.    boolean readyToBuild() {
  540.       if (!this.layoutName.equals("JDPLayout16") && !this.layoutName.equals("JDPLayout17") && !this.layoutName.equals("JDPLayout18")) {
  541.          if (this.targetColumns != null && this.targetColumns.tableName != null && this.targetColumns.tableName[0] != null) {
  542.             if (!this.layoutName.equals("JDPLayout1") && !this.layoutName.equals("JDPLayout11") && !this.layoutName.equals("JDPLayout21")) {
  543.                if (!this.layoutName.equals("JDPLayout2") && !this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22")) {
  544.                   if (!this.layoutName.equals("JDPLayout3") && !this.layoutName.equals("JDPLayout23")) {
  545.                      if (!this.layoutName.equals("JDPLayout4") && !this.layoutName.equals("JDPLayout14") && !this.layoutName.equals("JDPLayout24")) {
  546.                         if (!this.layoutName.equals("JDPLayout5") && !this.layoutName.equals("JDPLayout15") && !this.layoutName.equals("JDPLayout25")) {
  547.                            return false;
  548.                         } else {
  549.                            this.getInsertFields();
  550.                            return this.readyToBuild5();
  551.                         }
  552.                      } else {
  553.                         this.getInsertFields();
  554.                         return this.readyToBuild4();
  555.                      }
  556.                   } else {
  557.                      this.getInsertFields();
  558.                      return this.readyToBuild3();
  559.                   }
  560.                } else {
  561.                   this.getInsertFields();
  562.                   return this.readyToBuild2();
  563.                }
  564.             } else {
  565.                this.getInsertFields();
  566.                return this.readyToBuild1();
  567.             }
  568.          } else {
  569.             return false;
  570.          }
  571.       } else {
  572.          return this.targetChoice != null && this.targetChoice.textchoicesql.getText() != null;
  573.       }
  574.    }
  575.  
  576.    synchronized String parseSource(String var1) {
  577.       String var2 = "";
  578.       String var3 = "";
  579.       int var4 = var1.length();
  580.       int var5 = 0;
  581.       boolean var6 = false;
  582.       char[] var7 = new char[var4 * 10];
  583.       int var8 = 0;
  584.       int var9 = 0;
  585.       this.user.mainmsg.setStatusMsg("Creating source...", 0);
  586.  
  587.       try {
  588.          for(int var16 = var1.indexOf("\n", var5); var16 >= 0; var16 = var1.indexOf("\n", var5)) {
  589.             var3 = var1.substring(var5, var16 + 1);
  590.             var3 = this.parseLine(var3);
  591.             var9 = var3.length();
  592.             var3.getChars(0, var9, var7, var8);
  593.             var8 += var9;
  594.             var5 = var16 + 1;
  595.          }
  596.  
  597.          var2 = new String(var7, 0, var8);
  598.          Object var17 = null;
  599.       } catch (Exception var12) {
  600.          this.user.mainmsg.setStatusMsg("Parsing Error occurred. Please send Java console output to BulletProof.", 30);
  601.          System.out.println("Parsing error at parse index: " + Integer.toString(this.lineIndex));
  602.          System.out.println("Line being parsed is: ");
  603.          if (var3 != null) {
  604.             System.out.println(var3);
  605.          }
  606.  
  607.          System.out.println("Line output so far is: ");
  608.          if (this.str != null) {
  609.             System.out.println(this.str);
  610.          }
  611.  
  612.          ((Throwable)var12).printStackTrace();
  613.          return "";
  614.       }
  615.  
  616.       this.user.JDesignerPro.gc();
  617.       this.user.mainmsg.clearStatusMsg();
  618.       return var2;
  619.    }
  620.  
  621.    boolean readyToBuild1() {
  622.       if (this.targetColumns != null && this.targetColumns.keys.getSelectedIndexes().length >= 1) {
  623.          if (this.targetSearch != null && this.targetList == null) {
  624.             this.user.mainmsg.setStatusMsg("You must configure a Result List if you have configured a Search Panel.", 8);
  625.             return false;
  626.          } else if (this.targetScreen != null && this.targetScreen.lastLine >= 0) {
  627.             for(int var1 = 0; var1 < this.targetScreen.columns.countItems(); ++var1) {
  628.                this.targetScreen.columns.deselect(var1);
  629.             }
  630.  
  631.             for(int var8 = 0; var8 <= this.targetScreen.lastLine; ++var8) {
  632.                for(int var2 = 0; var2 < this.targetScreen.maxcolumns; ++var2) {
  633.                   try {
  634.                      int var3 = this.targetScreen.screenOrder[var8][var2];
  635.                      if (var3 >= 0) {
  636.                         this.targetScreen.columns.select(var3);
  637.                      }
  638.                   } catch (Exception var7) {
  639.                   }
  640.                }
  641.             }
  642.  
  643.             this.fields = this.targetScreen.columns.getSelectedItems();
  644.             this.indexes = this.targetScreen.columns.getSelectedIndexes();
  645.             int var9 = 0;
  646.             if (this.fields[0].indexOf(".") > 0) {
  647.                for(int var10 = 0; var10 < this.fields.length && this.fields[var10].indexOf("a.") >= 0; ++var10) {
  648.                   ++var9;
  649.                }
  650.             } else {
  651.                var9 = this.fields.length;
  652.             }
  653.  
  654.             this.updatefields = new String[var9];
  655.             this.updateindexes = new int[var9];
  656.             int var11 = 0;
  657.             this.dataType = new int[this.fields.length];
  658.             String[] var12 = this.targetColumns.columns.getSelectedItems();
  659.             int[] var4 = this.targetColumns.columns.getSelectedIndexes();
  660.  
  661.             for(int var5 = 0; var5 < this.fields.length; ++var5) {
  662.                for(int var6 = 0; var6 < var12.length; ++var6) {
  663.                   if (this.fields[var5].equals(var12[var6])) {
  664.                      this.dataType[var5] = this.targetColumns.columnDatatype[var4[var6]];
  665.                      break;
  666.                   }
  667.                }
  668.  
  669.                if (var5 < var9) {
  670.                   if (this.fields[var5].indexOf(".") > 0) {
  671.                      this.updatefields[var5] = this.fields[var5].substring(2);
  672.                   } else {
  673.                      this.updatefields[var5] = this.fields[var5];
  674.                   }
  675.  
  676.                   this.updateindexes[var11] = var5;
  677.                   ++var11;
  678.                }
  679.  
  680.                this.fields[var5] = this.user.u.strip(this.fields[var5]);
  681.             }
  682.  
  683.             this.setKeyFields();
  684.             if (this.layoutName.equals("JDPLayout11") || this.layoutName.equals("JDPLayout21")) {
  685.                for(int var13 = 0; var13 < this.fields.length; ++var13) {
  686.                   if (this.indexes[var13] < this.targetSettings.actualCompName.length) {
  687.                      this.fields[var13] = this.user.u.strip(this.targetSettings.actualCompName[this.indexes[var13]]);
  688.                   }
  689.                }
  690.             }
  691.  
  692.             return true;
  693.          } else {
  694.             this.user.mainmsg.setStatusMsg("You have not selected any columns to be displayed.", 8);
  695.             return false;
  696.          }
  697.       } else {
  698.          this.user.mainmsg.setStatusMsg("You must specify a unique key for the selected table.", 8);
  699.          return false;
  700.       }
  701.    }
  702.  
  703.    void setKeyFields() {
  704.       int[] var1 = this.targetColumns.getKeyIndexes(this.targetColumns.keys);
  705.       this.keyDataType = new int[var1.length];
  706.       this.keyIsIdentity = new boolean[var1.length];
  707.       this.keys = this.targetColumns.keys.getSelectedItems();
  708.       this.keysSQL = this.targetColumns.keys.getSelectedItems();
  709.       this.keyType = new String[var1.length];
  710.  
  711.       for(int var2 = 0; var2 < this.keys.length; ++var2) {
  712.          this.keyDataType[var2] = this.targetColumns.columnDatatype[var1[var2]];
  713.          this.keyIsIdentity[var2] = this.targetColumns.columnIsIdentity[var1[var2]];
  714.          if (this.targetGridSettings != null) {
  715.             for(int var6 = 0; var6 < this.targetGridSettings.columns.countItems(); ++var6) {
  716.                if (this.keys[var2].indexOf(".") > 0) {
  717.                   this.keys[var2] = this.keys[var2].substring(2);
  718.                }
  719.  
  720.                if (this.keys[var2].equals(this.targetGridSettings.columns.getItem(var6))) {
  721.                   this.keysSQL[var2] = this.targetGridSettings.fieldSql[var6];
  722.                   this.keyType[var2] = this.targetGridSettings.fieldType[var6];
  723.                }
  724.             }
  725.          } else if (this.targetSettings != null) {
  726.             for(int var3 = 0; var3 < this.targetSettings.columns.countItems(); ++var3) {
  727.                if (this.keys[var2].indexOf(".") > 0) {
  728.                   this.keys[var2] = this.keys[var2].substring(2);
  729.                }
  730.  
  731.                if (this.keys[var2].equals(this.targetSettings.columns.getItem(var3))) {
  732.                   this.keysSQL[var2] = this.targetSettings.fieldSql[var3];
  733.                   this.keyType[var2] = this.targetSettings.fieldType[var3];
  734.                }
  735.             }
  736.          }
  737.       }
  738.  
  739.       int[] var5 = this.targetColumns.getKeyIndexes(this.targetColumns.keysUpdate);
  740.       this.keyDataTypeUpdate = new int[var5.length];
  741.       this.keyIsIdentityUpdate = new boolean[var5.length];
  742.       this.keysUpdate = this.targetColumns.keysUpdate.getSelectedItems();
  743.       this.keysSQLUpdate = this.targetColumns.keysUpdate.getSelectedItems();
  744.       this.keyTypeUpdate = new String[var5.length];
  745.  
  746.       for(int var7 = 0; var7 < this.keysUpdate.length; ++var7) {
  747.          this.keyDataTypeUpdate[var7] = this.targetColumns.columnDatatype[var5[var7]];
  748.          this.keyIsIdentityUpdate[var7] = this.targetColumns.columnIsIdentity[var5[var7]];
  749.          if (this.targetGridSettings != null) {
  750.             for(int var8 = 0; var8 < this.targetGridSettings.columns.countItems(); ++var8) {
  751.                if (this.keysUpdate[var7].indexOf(".") > 0) {
  752.                   this.keysUpdate[var7] = this.keysUpdate[var7].substring(2);
  753.                }
  754.  
  755.                if (this.keysUpdate[var7].equals(this.targetGridSettings.columns.getItem(var8))) {
  756.                   this.keysSQLUpdate[var7] = this.targetGridSettings.fieldSql[var8];
  757.                   this.keyTypeUpdate[var7] = this.targetGridSettings.fieldType[var8];
  758.                }
  759.             }
  760.          } else if (this.targetSettings != null) {
  761.             for(int var4 = 0; var4 < this.targetSettings.columns.countItems(); ++var4) {
  762.                if (this.keysUpdate[var7].indexOf(".") > 0) {
  763.                   this.keysUpdate[var7] = this.keysUpdate[var7].substring(2);
  764.                }
  765.  
  766.                if (this.keysUpdate[var7].equals(this.targetSettings.columns.getItem(var4))) {
  767.                   this.keysSQLUpdate[var7] = this.targetSettings.fieldSql[var4];
  768.                   this.keyTypeUpdate[var7] = this.targetSettings.fieldType[var4];
  769.                }
  770.             }
  771.          }
  772.       }
  773.  
  774.    }
  775.  
  776.    synchronized String parseLine(String var1) throws Exception {
  777.       if (var1.length() < 3) {
  778.          return var1;
  779.       } else if (!var1.startsWith(">")) {
  780.          return var1;
  781.       } else if (var1.substring(1, 4).equals("XXX")) {
  782.          this.totalLines = Integer.parseInt(var1.substring(4, 8)) + 1;
  783.          return null;
  784.       } else {
  785.          this.lineIndex = Integer.parseInt(var1.substring(1, 4));
  786.          var1 = var1.substring(4);
  787.          int var4 = var1.indexOf("<");
  788.          int var5 = 0;
  789.          int var6 = 0;
  790.  
  791.          while(var4 >= 0) {
  792.             this.stoken[var6++] = var1.substring(var5, var4);
  793.             var4 = var1.indexOf(">", var4);
  794.             if (var4 >= 0) {
  795.                var5 = var4 + 1;
  796.                var4 = var1.indexOf("<", var5);
  797.             }
  798.          }
  799.  
  800.          this.stoken[var6] = var1.substring(var5);
  801.          this.str.setLength(0);
  802.          if (this.lineIndex >= 100) {
  803.             this.parseLine100(var1, this.stoken, this.lineIndex);
  804.             return this.str.toString();
  805.          } else {
  806.             switch (this.lineIndex) {
  807.                case 1:
  808.                case 2:
  809.                case 3:
  810.                case 30:
  811.                case 54:
  812.                   break;
  813.                case 4:
  814.                case 12:
  815.                case 43:
  816.                case 44:
  817.                   int var45 = -1;
  818.                   boolean var54 = true;
  819.                   if (this.lineIndex == 4) {
  820.                      String var58 = this.targetSettings.lockingColumn.getSelectedItem();
  821.                      if (var58 != null && !var58.equals("")) {
  822.                         this.str.append(this.stoken[0] + "String " + this.user.u.strip(var58) + "Lock" + this.stoken[1]);
  823.                      }
  824.                   }
  825.  
  826.                   for(int var59 = 0; var59 <= this.targetScreen.lastLine; ++var59) {
  827.                      for(int var62 = 0; var62 < this.targetScreen.maxcolumns; ++var62) {
  828.                         try {
  829.                            int var69 = this.targetScreen.screenOrder[var59][var62];
  830.                            if (var69 >= 0 && var69 != this.targetScreen.screenOrder[var59][var62 + 1]) {
  831.                               String var91 = this.targetColumns.columnLength[this.targetSettings.columnIndexes[var69]].trim();
  832.                               if ((var59 > 0 || var62 > 0) && this.str.length() > 0 && this.str.charAt(this.str.length() - 1) != '\n') {
  833.                                  this.str.append("\r");
  834.                               }
  835.  
  836.                               switch (this.lineIndex) {
  837.                                  case 4:
  838.                                     if (this.targetSettings.fieldType[var69].equals("RadioButtons")) {
  839.                                        for(int var104 = 0; var104 < JDPChoiceLayout.maxChoices; ++var104) {
  840.                                           if (this.targetSettings.thisChoicePanel.textChoiceValue[var69][var104].trim().length() > 0) {
  841.                                              this.str.append(this.stoken[0] + "Checkbox");
  842.                                              this.str.append(" " + this.user.u.strip(this.targetScreen.columns.getItem(var69)));
  843.                                              if (var104 > 0) {
  844.                                                 this.str.append(Integer.toString(var104));
  845.                                              }
  846.  
  847.                                              this.str.append(this.stoken[1]);
  848.                                           }
  849.                                        }
  850.                                     } else {
  851.                                        this.str.append(this.stoken[0] + this.targetSettings.fieldType[var69]);
  852.                                        this.str.append(" " + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + this.stoken[1]);
  853.                                     }
  854.  
  855.                                     if (this.targetSettings.fieldType[var69].equals("JDPChoice")) {
  856.                                        this.str.append(this.stoken[0] + "Vector value" + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + this.stoken[1]);
  857.                                     }
  858.                                     break;
  859.                                  case 12:
  860.                                     String var103 = this.user.u.strip(this.targetScreen.columns.getItem(var69));
  861.                                     if (this.targetSettings.fieldType[var69].equals("TextField")) {
  862.                                        this.str.append(this.stoken[0] + var103 + this.stoken[1]);
  863.                                        this.str.append(this.targetSettings.fieldType[var69]);
  864.                                        this.str.append("(\"\"," + var91 + ")");
  865.                                        this.str.append(this.stoken[2]);
  866.                                     } else if (this.targetSettings.fieldType[var69].equals("TextArea")) {
  867.                                        this.str.append(this.stoken[0] + var103 + this.stoken[1]);
  868.                                        this.str.append(this.targetSettings.fieldType[var69]);
  869.                                        this.str.append("(\"\"," + this.targetSettings.textAreaRows[var69] + "," + var91 + ")");
  870.                                        this.str.append(this.stoken[2]);
  871.                                     } else if (!this.targetSettings.fieldType[var69].equals("JDPComboBox") && !this.targetSettings.fieldType[var69].equals("JDPSpinner") && !this.targetSettings.fieldType[var69].equals("JDPDate")) {
  872.                                        if (this.targetSettings.fieldType[var69].equals("Checkbox")) {
  873.                                           this.str.append(this.stoken[0] + var103 + this.stoken[1]);
  874.                                           this.str.append(this.targetSettings.fieldType[var69]);
  875.                                           this.str.append("(\"" + this.targetSettings.checkboxLabel[var69] + "\")");
  876.                                           this.str.append(this.stoken[2]);
  877.                                        } else if (this.targetSettings.fieldType[var69].equals("RadioButtons")) {
  878.                                           this.str.append(this.stoken[0] + "CheckboxGroup " + var103 + "Cbg" + this.stoken[1]);
  879.                                           this.str.append("CheckboxGroup()");
  880.                                           this.str.append(this.stoken[2]);
  881.  
  882.                                           for(int var117 = 0; var117 < JDPChoiceLayout.maxChoices; ++var117) {
  883.                                              if (this.targetSettings.thisChoicePanel.textChoiceValue[var69][var117].trim().length() > 0) {
  884.                                                 this.str.append(this.stoken[0] + var103);
  885.                                                 if (var117 > 0) {
  886.                                                    this.str.append(Integer.toString(var117));
  887.                                                 }
  888.  
  889.                                                 this.str.append(this.stoken[1]);
  890.                                                 this.str.append("Checkbox");
  891.                                                 this.str.append("(\"" + this.targetSettings.thisChoicePanel.textChoiceValue[var69][var117].trim() + "\"," + var103 + "Cbg,false)");
  892.                                                 this.str.append(this.stoken[2]);
  893.                                              }
  894.                                           }
  895.                                        } else {
  896.                                           this.str.append(this.stoken[0] + var103 + this.stoken[1]);
  897.                                           this.str.append(this.targetSettings.fieldType[var69]);
  898.                                           this.str.append("()");
  899.                                           this.str.append(this.stoken[2]);
  900.                                        }
  901.                                     } else {
  902.                                        this.str.append(this.stoken[0] + var103 + this.stoken[1]);
  903.                                        this.str.append(this.targetSettings.fieldType[var69]);
  904.                                        this.str.append("(user,\"\"," + var91 + ")");
  905.                                        this.str.append(this.stoken[2]);
  906.                                     }
  907.                                     break;
  908.                                  case 43:
  909.                                     if ((this.targetSettings.fieldType[var69].equals("JDPChoice") || this.targetSettings.fieldType[var69].equals("JDPComboBox")) && this.targetSettings.thisChoicePanel.valuesFrom[var69].equals("Fields entered here")) {
  910.                                        if (this.targetSettings.fieldType[var69].equals("JDPChoice")) {
  911.                                           this.str.append("\r\n\t\tvalue" + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + " = new Vector(); \r\n");
  912.                                        }
  913.  
  914.                                        int var116 = 0;
  915.  
  916.                                        for(int var126 = 0; var126 < JDPChoiceLayout.maxChoices; ++var126) {
  917.                                           if (this.targetSettings.thisChoicePanel.textChoiceValue[var69][var126].trim().length() > 0 || var126 == 0) {
  918.                                              this.str.append("\t\t" + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + ".addItem(\"");
  919.                                              this.str.append(this.targetSettings.thisChoicePanel.textChoiceValue[var69][var126] + "\"); \r\n");
  920.                                              if (this.targetSettings.fieldType[var69].equals("JDPChoice")) {
  921.                                                 this.str.append("\t\tvalue" + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + ".addElement(\"" + this.targetSettings.thisChoicePanel.actualChoiceValue[var69][var126] + "\"); \r\n");
  922.                                              }
  923.  
  924.                                              ++var116;
  925.                                           }
  926.                                        }
  927.                                     }
  928.                                     break;
  929.                                  case 44:
  930.                                     if (this.targetSettings.fieldType[var69].equals("JDPChoice") && this.targetSettings.thisChoicePanel.valuesFrom[var69].equals("Database table/columns")) {
  931.                                        this.str.append("\r\n\t\tvalue" + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + " = new Vector(); \r\n");
  932.                                        this.str.append(this.stoken[0] + this.user.u.strip(this.targetScreen.columns.getItem(var69)) + this.stoken[1]);
  933.                                        this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[var69] + this.stoken[2]);
  934.                                        this.str.append(this.targetSettings.thisChoicePanel.columnActualList[var69] + this.stoken[3]);
  935.                                        this.str.append(this.targetSettings.thisChoicePanel.tableList[var69] + this.stoken[4]);
  936.                                        this.str.append(this.targetSettings.thisChoicePanel.tableWhereClause[var69] + this.stoken[5]);
  937.                                        this.str.append(this.user.u.strip(this.targetScreen.columns.getItem(var69)) + this.stoken[6]);
  938.                                     }
  939.  
  940.                                     if (this.targetSettings.fieldType[var69].equals("JDPComboBox") && this.targetSettings.thisChoicePanel.valuesFrom[var69].equals("Database table/columns")) {
  941.                                        this.str.append(this.stoken[0] + this.user.u.strip(this.fields[var69]) + this.stoken[1]);
  942.                                        this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[var69] + this.stoken[2]);
  943.                                        this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[var69] + this.stoken[3]);
  944.                                        this.str.append(this.targetSettings.thisChoicePanel.tableList[var69] + this.stoken[4]);
  945.                                        this.str.append(this.targetSettings.thisChoicePanel.tableWhereClause[var69] + "\",");
  946.                                        this.str.append("null" + this.stoken[6]);
  947.                                     }
  948.                               }
  949.  
  950.                               var45 = var69;
  951.                            }
  952.                         } catch (Exception var28) {
  953.                         }
  954.                      }
  955.                   }
  956.  
  957.                   if (this.layoutName.equals("JDPLayout3") && this.lineIndex == 4 && var45 >= 0) {
  958.                      for(int var60 = 0; var60 < this.targetScreen.columns.countItems(); ++var60) {
  959.                         if (!this.targetScreen.columns.isSelected(var60)) {
  960.                            this.str.append(this.stoken[0] + "TextField" + " " + this.user.u.strip(this.targetScreen.columns.getItem(var60)) + this.stoken[1]);
  961.                         }
  962.                      }
  963.                   }
  964.  
  965.                   if (this.layoutName.equals("JDPLayout3") && this.lineIndex == 12 && var45 >= 0) {
  966.                      for(int var61 = 0; var61 < this.targetScreen.columns.countItems(); ++var61) {
  967.                         if (!this.targetScreen.columns.isSelected(var61)) {
  968.                            this.str.append(this.stoken[0] + this.user.u.strip(this.targetScreen.columns.getItem(var61)) + this.stoken[1] + "TextField");
  969.                            this.str.append("(\"\",20)");
  970.                            this.str.append(this.stoken[2]);
  971.                         }
  972.                      }
  973.                   }
  974.                   break;
  975.                case 5:
  976.                   this.str.append(this.stoken[0]);
  977.                   this.selectedFields = "";
  978.  
  979.                   for(int var67 = 0; var67 < this.keysSQL.length; ++var67) {
  980.                      if (this.targetList == null || this.targetList.uniqueTree.isSelected(var67)) {
  981.                         if (var67 > 0) {
  982.                            this.str.append(",");
  983.                         }
  984.  
  985.                         String var89 = this.switchField(this.keysSQL[var67]);
  986.                         this.str.append(var89);
  987.                         String var214 = this.selectedFields;
  988.                         this.selectedFields = var214 + var89 + " ";
  989.                      }
  990.                   }
  991.  
  992.                   this.str.append(this.stoken[1]);
  993.                   boolean var53 = true;
  994.                   if (this.targetList != null) {
  995.                      for(int var68 = 0; var68 < this.targetList.includeTree.countItems(); ++var68) {
  996.                         String var90 = this.switchField(this.targetList.includeTree.getItem(var68));
  997.                         if (!var53) {
  998.                            this.str.append(",");
  999.                         }
  1000.  
  1001.                         this.str.append("\"" + var90 + "\"");
  1002.                         String var215 = this.selectedFields;
  1003.                         this.selectedFields = var215 + var90 + " ";
  1004.                         var53 = false;
  1005.                      }
  1006.                   }
  1007.  
  1008.                   this.str.append(this.stoken[2]);
  1009.                   break;
  1010.                case 6:
  1011.                   if (this.targetList != null) {
  1012.                      int[] var44 = this.targetList.columns.getSelectedIndexes();
  1013.  
  1014.                      for(int var65 = 0; var65 < var44.length; ++var65) {
  1015.                         String var213 = this.selectedFields;
  1016.                         this.selectedFields = var213 + this.switchField(this.targetList.psortChoiceSql[var44[var65]]) + " ";
  1017.                      }
  1018.                   }
  1019.  
  1020.                   this.str.append(this.stoken[0] + "FROM ");
  1021.                   int[] var66 = this.targetTable.stables.getSelectedIndexes();
  1022.                   boolean var52 = true;
  1023.                   if (var66.length == 0 || this.selectedFields.indexOf("a.") >= 0) {
  1024.                      this.str.append(this.targetTable.tables.getSelectedItem());
  1025.                      if (var66.length > 0) {
  1026.                         this.str.append(" a");
  1027.                      }
  1028.  
  1029.                      if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  1030.                         this.str.append(" (NOLOCK)");
  1031.                      }
  1032.  
  1033.                      var52 = false;
  1034.                   }
  1035.  
  1036.                   for(int var87 = 0; var87 < var66.length; ++var87) {
  1037.                      if (this.targetTable.stableAlias[var66[var87]].equals("") || this.selectedFields.indexOf(this.targetTable.stableAlias[var66[var87]] + ".") >= 0) {
  1038.                         if (!var52) {
  1039.                            this.str.append(",");
  1040.                         }
  1041.  
  1042.                         this.str.append(this.targetTable.stables.getItem(var66[var87]));
  1043.                         this.str.append(" " + this.targetTable.stableAlias[var66[var87]]);
  1044.                         if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  1045.                            this.str.append(" (NOLOCK)");
  1046.                         }
  1047.  
  1048.                         var52 = false;
  1049.                      }
  1050.                   }
  1051.  
  1052.                   this.str.append(" WHERE ");
  1053.                   if (this.targetTable.joinConditions.countItems() != 0) {
  1054.                      for(int var88 = 0; var88 < this.targetTable.joinConditions.countItems(); ++var88) {
  1055.                         String var102 = this.targetTable.joinConditions.getItem(var88);
  1056.                         int var115 = var102.substring(2).indexOf(".") + 1;
  1057.                         if (this.selectedFields.indexOf(var102.substring(0, 2)) >= 0 && this.selectedFields.indexOf(var102.substring(var115, var115 + 2)) >= 0) {
  1058.                            this.str.append(var102 + " AND ");
  1059.                         }
  1060.                      }
  1061.                   }
  1062.  
  1063.                   if (this.targetList != null && this.targetList.pfromwhereclause.getText().length() != 0) {
  1064.                      this.str.append(this.targetList.pfromwhereclause.getText() + this.stoken[1]);
  1065.                   } else {
  1066.                      this.str.append("(1=1)" + this.stoken[1]);
  1067.                   }
  1068.                   break;
  1069.                case 7:
  1070.                   if (this.targetList == null) {
  1071.                      this.str.append(this.stoken[0] + "0" + this.stoken[1]);
  1072.                   } else {
  1073.                      int[] var43 = this.targetList.columns.getSelectedIndexes();
  1074.                      this.str.append(this.stoken[0] + Integer.toString(var43.length) + this.stoken[1]);
  1075.                   }
  1076.                   break;
  1077.                case 8:
  1078.                   if (this.targetList != null) {
  1079.                      int[] var42 = this.targetList.columns.getSelectedIndexes();
  1080.  
  1081.                      for(int var86 = 0; var86 < var42.length; ++var86) {
  1082.                         this.str.append(this.stoken[0] + Integer.toString(var86) + this.stoken[1] + this.targetList.psortChoiceSql[var42[var86]]);
  1083.                         if (this.targetList.psortOrder[var42[var86]].equals("Descending")) {
  1084.                            this.str.append(" DESC");
  1085.                         }
  1086.  
  1087.                         this.str.append(this.stoken[2]);
  1088.                      }
  1089.                   }
  1090.                   break;
  1091.                case 9:
  1092.                   if (this.targetList != null) {
  1093.                      this.str.append(this.stoken[0]);
  1094.                      int[] var41 = this.targetList.columns.getSelectedIndexes();
  1095.  
  1096.                      for(int var85 = 0; var85 < var41.length; ++var85) {
  1097.                         if (var85 > 0) {
  1098.                            this.str.append(",");
  1099.                         }
  1100.  
  1101.                         this.str.append("\"" + this.targetList.psortChoiceText[var41[var85]] + "\"");
  1102.                      }
  1103.  
  1104.                      this.str.append(this.stoken[1]);
  1105.                   } else {
  1106.                      this.str.append(this.stoken[0] + "\"\"" + this.stoken[1]);
  1107.                   }
  1108.                   break;
  1109.                case 10:
  1110.                   if (this.targetList != null) {
  1111.                      if (this.targetList.displayCount.getSelectedItem().equals("Yes")) {
  1112.                         this.str.append(this.stoken[0] + "true" + this.stoken[1]);
  1113.                      } else {
  1114.                         this.str.append(this.stoken[0] + "false" + this.stoken[1]);
  1115.                      }
  1116.                   } else {
  1117.                      this.str.append(this.stoken[0] + "false" + this.stoken[1]);
  1118.                   }
  1119.                   break;
  1120.                case 11:
  1121.                   if (this.targetList != null) {
  1122.                      this.str.append(this.stoken[0] + this.targetList.pcounttext.getText() + this.stoken[1]);
  1123.                   } else {
  1124.                      this.str.append(this.stoken[0] + "" + this.stoken[1]);
  1125.                   }
  1126.                   break;
  1127.                case 13:
  1128.                   for(int var84 = 0; var84 < this.targetScreen.centerTopPanel.length; ++var84) {
  1129.                      for(int var101 = 0; var101 <= this.targetScreen.lastLine; ++var101) {
  1130.                         if (this.targetScreen.panelPos[this.targetScreen.screenOrderL[var101]] == var84) {
  1131.                            TextField var114 = (TextField)this.targetScreen.componentL[this.targetScreen.screenOrderL[var101]];
  1132.                            if (var114 != null) {
  1133.                               String var124 = this.targetSettings.fieldLabelColor[this.targetScreen.screenOrderL[var101]];
  1134.                               var124 = var124.substring(0, 1).toLowerCase() + var124.substring(1);
  1135.                               this.str.append(this.stoken[0] + Integer.toString(var84) + this.stoken[1] + ((TextComponent)var114).getText() + this.stoken[2] + var124 + this.stoken[3]);
  1136.                            }
  1137.                         }
  1138.                      }
  1139.                   }
  1140.                   break;
  1141.                case 14:
  1142.                   for(int var64 = 0; var64 < this.targetScreen.centerTopPanel.length; ++var64) {
  1143.                      for(int var83 = 0; var83 <= this.targetScreen.lastLine; ++var83) {
  1144.                         boolean var51 = true;
  1145.                         boolean var100 = false;
  1146.  
  1147.                         for(int var113 = 0; var113 < this.targetScreen.maxcolumns; ++var113) {
  1148.                            try {
  1149.                               int var57 = this.targetScreen.screenOrder[var83][var113];
  1150.                               if (var57 >= 0 && this.targetScreen.panelPos[var57] == var64) {
  1151.                                  if (!var51) {
  1152.                                     this.str.append("\r\n");
  1153.                                  }
  1154.  
  1155.                                  if (var51) {
  1156.                                     this.str.append("\t\tPanel centerR" + Integer.toString(var83) + " = new Panel();\r\n\t\t");
  1157.                                     this.str.append("centerR" + Integer.toString(var83) + ".setLayout(new JDPLineLayout(3));\r\n");
  1158.                                     var51 = false;
  1159.                                  }
  1160.  
  1161.                                  this.str.append("\t\tcenterR" + Integer.toString(var83) + ".add(\"Left\",");
  1162.                                  if (var57 != this.targetScreen.screenOrder[var83][var113 + 1]) {
  1163.                                     this.str.append(this.user.u.strip(this.targetScreen.columns.getItem(var57)));
  1164.                                  } else {
  1165.                                     String var122 = this.targetSettings.fieldLabelColor[var57];
  1166.                                     var122 = var122.substring(0, 1).toLowerCase() + var122.substring(1);
  1167.                                     this.str.append("new JDPWrapLabel(user,\"");
  1168.                                     TextField var128 = (TextField)this.targetScreen.componentL[var57];
  1169.                                     this.str.append(((TextComponent)var128).getText() + "\",Color." + var122 + ")");
  1170.                                  }
  1171.  
  1172.                                  this.str.append(");\r\n");
  1173.                                  var100 = true;
  1174.                               }
  1175.                            } catch (Exception var26) {
  1176.                            }
  1177.                         }
  1178.  
  1179.                         if (var100) {
  1180.                            this.str.append(this.stoken[0] + Integer.toString(var64) + this.stoken[1] + Integer.toString(var83) + this.stoken[2]);
  1181.                         }
  1182.                      }
  1183.                   }
  1184.                   break;
  1185.                case 15:
  1186.                   this.str.append(this.stoken[0]);
  1187.                   if (this.iconsText.length() > 0) {
  1188.                      this.iconsText = this.iconsText.substring(0, this.iconsText.length() - 1);
  1189.                   }
  1190.  
  1191.                   this.str.append(this.stoken[1]);
  1192.                   break;
  1193.                case 16:
  1194.                   if (this.targetSearch == null) {
  1195.                      this.str.append(this.stoken[0] + "0" + this.stoken[1]);
  1196.                   } else {
  1197.                      int[] var40 = this.targetSearch.columns.getSelectedIndexes();
  1198.                      this.str.append(this.stoken[0] + Integer.toString(var40.length) + this.stoken[1]);
  1199.                   }
  1200.                   break;
  1201.                case 17:
  1202.                   if (this.targetSearch != null) {
  1203.                      int[] var39 = this.targetSearch.columns.getSelectedIndexes();
  1204.  
  1205.                      for(int var82 = 0; var82 < var39.length; ++var82) {
  1206.                         this.str.append(this.stoken[0] + Integer.toString(var82) + this.stoken[1] + this.targetSearch.pchooseFrom[var39[var82]] + this.stoken[2]);
  1207.                      }
  1208.                   }
  1209.                   break;
  1210.                case 18:
  1211.                   if (this.targetSearch != null) {
  1212.                      int[] var38 = this.targetSearch.columns.getSelectedIndexes();
  1213.                      this.str.append(this.stoken[0] + Integer.toString(var38.length) + this.stoken[1]);
  1214.                   } else {
  1215.                      this.str.append(this.stoken[0] + "0" + this.stoken[1]);
  1216.                   }
  1217.                   break;
  1218.                case 19:
  1219.                   if (this.targetSearch != null) {
  1220.                      int[] var37 = this.targetSearch.columns.getSelectedIndexes();
  1221.  
  1222.                      for(int var81 = 0; var81 < var37.length; ++var81) {
  1223.                         String var99 = this.targetSearch.columns.getItem(var37[var81]);
  1224.                         if (this.layoutName.equals("JDPLayout1")) {
  1225.                            for(int var111 = 0; var111 < this.targetSettings.columns.countItems(); ++var111) {
  1226.                               if (var99.equals(this.targetSettings.columns.getItem(var111))) {
  1227.                                  var99 = this.targetSettings.fieldSql[var111];
  1228.                                  break;
  1229.                               }
  1230.                            }
  1231.                         }
  1232.  
  1233.                         if (this.layoutName.equals("JDPLayout2") || this.layoutName.equals("JDPLayout4")) {
  1234.                            for(int var112 = 0; var112 < this.targetGridSettings.columns.countItems(); ++var112) {
  1235.                               if (var99.equals(this.targetGridSettings.columns.getItem(var112))) {
  1236.                                  var99 = this.targetGridSettings.fieldSql[var112];
  1237.                                  break;
  1238.                               }
  1239.                            }
  1240.                         }
  1241.  
  1242.                         this.str.append(this.stoken[0] + Integer.toString(var81) + this.stoken[1] + var99 + this.stoken[2]);
  1243.                      }
  1244.                   }
  1245.                   break;
  1246.                case 20:
  1247.                   if (this.targetSearch != null) {
  1248.                      int[] var36 = this.targetSearch.columns.getSelectedIndexes();
  1249.                      this.totalItems = 8;
  1250.                      this.str.append("\t\tJDPLoadChoice lc = new JDPLoadChoice(user,jaggSQL,null,\"\",\"\",\"\",\"\",-1);\r\n");
  1251.  
  1252.                      for(int var80 = 0; var80 < var36.length; ++var80) {
  1253.                         this.str.append(this.stoken[0]);
  1254.                      }
  1255.                   }
  1256.                   break;
  1257.                case 21:
  1258.                   if (this.targetSearch != null) {
  1259.                      int[] var35 = this.targetSearch.columns.getSelectedIndexes();
  1260.  
  1261.                      for(int var79 = 0; var79 < var35.length; ++var79) {
  1262.                         if (this.targetSearch.thisChoicePanel.valuesFrom[var35[var79]].equals("Fields entered here")) {
  1263.                            for(int var98 = 0; var98 < JDPChoiceLayout.maxChoices; ++var98) {
  1264.                               if (this.targetSearch.thisChoicePanel.textChoiceValue[var35[var79]][var98] != null && this.targetSearch.thisChoicePanel.textChoiceValue[var35[var79]][var98].length() > 0) {
  1265.                                  this.str.append(this.stoken[0] + Integer.toString(var79) + this.stoken[1] + this.targetSearch.thisChoicePanel.textChoiceValue[var35[var79]][var98] + this.stoken[2]);
  1266.                               }
  1267.                            }
  1268.                         } else {
  1269.                            int var56 = var35[var79];
  1270.                            this.str.append("\r\n\t\tlc.loadChoice((Vector)pmatchUsing.elementAt(" + Integer.toString(var79) + "),\"");
  1271.                            this.str.append(this.targetSearch.thisChoicePanel.textChoiceSql[var56] + "\",\"");
  1272.                            this.str.append(this.targetSearch.thisChoicePanel.columnActualList[var56] + "\",\"");
  1273.                            this.str.append(this.targetSearch.thisChoicePanel.tableList[var56] + "\",\"");
  1274.                            this.str.append(this.targetSearch.thisChoicePanel.tableWhereClause[var56] + "\",");
  1275.                            this.str.append("(Vector)pactualmatchUsing.elementAt(" + Integer.toString(var79) + "),");
  1276.                            this.str.append(Integer.toString(this.targetSearch.odbcType[var56]) + ");\r\n");
  1277.                         }
  1278.                      }
  1279.                   }
  1280.                   break;
  1281.                case 22:
  1282.                   if (this.targetSearch != null) {
  1283.                      int[] var34 = this.targetSearch.columns.getSelectedIndexes();
  1284.  
  1285.                      for(int var78 = 0; var78 < var34.length; ++var78) {
  1286.                         this.str.append(this.stoken[0]);
  1287.                      }
  1288.                   }
  1289.                   break;
  1290.                case 23:
  1291.                   if (this.targetSearch != null) {
  1292.                      int[] var33 = this.targetSearch.columns.getSelectedIndexes();
  1293.  
  1294.                      for(int var77 = 0; var77 < var33.length; ++var77) {
  1295.                         if (this.targetSearch.thisChoicePanel.valuesFrom[var33[var77]].equals("Fields entered here")) {
  1296.                            for(int var97 = 0; var97 < JDPChoiceLayout.maxChoices; ++var97) {
  1297.                               if (this.targetSearch.thisChoicePanel.actualChoiceValue[var33[var77]][var97] != null && this.targetSearch.thisChoicePanel.textChoiceValue[var33[var77]][var97].length() > 0) {
  1298.                                  this.str.append(this.stoken[0] + Integer.toString(var77) + this.stoken[1] + this.targetSearch.thisChoicePanel.actualChoiceValue[var33[var77]][var97] + this.stoken[2]);
  1299.                               }
  1300.                            }
  1301.                         }
  1302.                      }
  1303.                   }
  1304.                   break;
  1305.                case 24:
  1306.                   if (this.targetSearch != null) {
  1307.                      int[] var32 = this.targetSearch.columns.getSelectedIndexes();
  1308.                      this.str.append(this.stoken[0] + Integer.toString(var32.length) + this.stoken[1]);
  1309.                   } else {
  1310.                      this.str.append(this.stoken[0] + "0" + this.stoken[1]);
  1311.                   }
  1312.                   break;
  1313.                case 25:
  1314.                   if (this.targetSearch != null) {
  1315.                      int[] var31 = this.targetSearch.columns.getSelectedIndexes();
  1316.  
  1317.                      for(int var76 = 0; var76 < var31.length; ++var76) {
  1318.                         if (this.targetSearch.constantIsString[var31[var76]]) {
  1319.                            this.str.append(this.stoken[0] + Integer.toString(var76) + this.stoken[1] + "true" + this.stoken[2]);
  1320.                         } else {
  1321.                            this.str.append(this.stoken[0] + Integer.toString(var76) + this.stoken[1] + "false" + this.stoken[2]);
  1322.                         }
  1323.                      }
  1324.                   }
  1325.                   break;
  1326.                case 26:
  1327.                   if (this.targetSearch != null) {
  1328.                      int[] var30 = this.targetSearch.columns.getSelectedIndexes();
  1329.                      this.str.append(this.stoken[0] + Integer.toString(var30.length) + this.stoken[1]);
  1330.                   } else {
  1331.                      this.str.append(this.stoken[0] + "0" + this.stoken[1]);
  1332.                   }
  1333.                   break;
  1334.                case 27:
  1335.                   if (this.targetSearch != null) {
  1336.                      int[] var3 = this.targetSearch.columns.getSelectedIndexes();
  1337.  
  1338.                      for(int var75 = 0; var75 < var3.length; ++var75) {
  1339.                         this.str.append(this.stoken[0] + Integer.toString(var75) + this.stoken[1] + Integer.toString(this.targetSearch.constantLength[var3[var75]]) + this.stoken[2]);
  1340.                      }
  1341.                   }
  1342.                   break;
  1343.                case 28:
  1344.                   if (this.targetSearch != null) {
  1345.                   }
  1346.                   break;
  1347.                case 29:
  1348.                   String var74 = "false";
  1349.                   if (this.targetList != null) {
  1350.                      if (this.targetList.useTree.getSelectedItem().equals("Tree Structure")) {
  1351.                         var74 = "true";
  1352.                      }
  1353.  
  1354.                      this.str.append(this.stoken[0] + var74 + this.stoken[1] + "false" + this.stoken[2] + this.targetList.pinitChoice + this.stoken[3]);
  1355.                   } else {
  1356.                      this.str.append(this.stoken[0] + var74 + this.stoken[1] + "false" + this.stoken[2] + "" + this.stoken[3]);
  1357.                   }
  1358.                   break;
  1359.                case 31:
  1360.                case 38:
  1361.                case 45:
  1362.                   boolean var50 = true;
  1363.                   int var7 = -1;
  1364.                   int var9 = 0;
  1365.                   int var10 = -1;
  1366.  
  1367.                   for(int var63 = 0; var63 < this.targetScreen.centerTopPanel.length; ++var63) {
  1368.                      for(int var72 = 0; var72 <= this.targetScreen.lastLine; ++var72) {
  1369.                         for(int var95 = 0; var95 < this.targetScreen.maxcolumns; ++var95) {
  1370.                            try {
  1371.                               var9 = this.targetScreen.screenOrder[var72][var95];
  1372.                               if (var9 >= 0 && var9 != this.targetScreen.screenOrder[var72][var95 + 1] && this.targetScreen.panelPos[var9] == var63) {
  1373.                                  if (var10 == -1 && this.targetScreen.panelPos[var9] == var63 + 1 && var9 != this.targetScreen.screenOrder[var72][var95 + 1]) {
  1374.                                     var10 = var9;
  1375.                                  }
  1376.  
  1377.                                  switch (this.lineIndex) {
  1378.                                     case 31:
  1379.                                        if (var7 >= 0) {
  1380.                                           this.str.append(this.stoken[0] + this.user.u.strip(this.targetScreen.columns.getItem(var7)) + this.stoken[1] + this.user.u.strip(this.targetScreen.columns.getItem(var9)) + this.stoken[2]);
  1381.                                        }
  1382.                                        break;
  1383.                                     case 38:
  1384.                                        if (var7 >= 0) {
  1385.                                           this.str.append(this.stoken[0] + this.user.u.strip(this.targetScreen.columns.getItem(var9)) + this.stoken[1] + this.user.u.strip(this.targetScreen.columns.getItem(var7)) + this.stoken[2]);
  1386.                                        }
  1387.                                        break;
  1388.                                     case 45:
  1389.                                        int var109 = this.targetColumns.columnDatatype[this.targetSettings.columnIndexes[var9]];
  1390.                                        boolean var121 = this.targetColumns.columnIsIdentity[this.targetSettings.columnIndexes[var9]];
  1391.                                        if ((this.targetSettings.fieldType[var9].equals("TextField") || this.targetSettings.fieldType[var9].equals("TextArea") || this.targetSettings.fieldType[var9].equals("JDPSpinner")) && !var121) {
  1392.                                           String var127 = this.user.u.strip(this.targetScreen.columns.getItem(var9));
  1393.                                           if (JDPUtils.isOdbcChar(var109) && this.targetSettings.fieldRequired[this.indexes[var72]].equals("Yes")) {
  1394.                                              this.str.append(this.stoken[0] + "ischaracter" + this.stoken[1] + var127 + this.stoken[2] + this.targetSettings.fieldErrorMsg[this.indexes[var72]] + this.stoken[3]);
  1395.                                           }
  1396.  
  1397.                                           if (JDPUtils.isOdbcInt(var109) && this.targetSettings.fieldRequired[this.indexes[var72]].equals("Yes")) {
  1398.                                              this.str.append(this.stoken[0] + "isnumeric" + this.stoken[1] + var127 + this.stoken[2] + this.targetSettings.fieldErrorMsg[this.indexes[var72]] + this.stoken[3]);
  1399.                                           }
  1400.  
  1401.                                           if (JDPUtils.isOdbcFloat(var109) && this.targetSettings.fieldRequired[this.indexes[var72]].equals("Yes")) {
  1402.                                              this.str.append(this.stoken[0] + "isfloat" + this.stoken[1] + var127 + this.stoken[2] + this.targetSettings.fieldErrorMsg[this.indexes[var72]] + this.stoken[3]);
  1403.                                           }
  1404.  
  1405.                                           if (JDPUtils.isOdbcDate(var109) && this.targetSettings.fieldRequired[this.indexes[var72]].equals("Yes")) {
  1406.                                              this.str.append(this.stoken[0] + "isvalidDate" + this.stoken[1] + var127 + this.stoken[2] + this.targetSettings.fieldErrorMsg[this.indexes[var72]] + this.stoken[3]);
  1407.                                           }
  1408.                                        }
  1409.                                  }
  1410.  
  1411.                                  var7 = var9;
  1412.                               }
  1413.                            } catch (Exception var27) {
  1414.                            }
  1415.                         }
  1416.                      }
  1417.  
  1418.                      String var73 = this.user.u.strip(this.targetScreen.columns.getItem(var7));
  1419.                      String var96 = this.user.u.strip(this.targetScreen.columns.getItem(var10));
  1420.                      String var110 = this.user.u.strip(this.targetScreen.columns.getItem(this.targetScreen.screenOrder[0][0]));
  1421.                      if (this.lineIndex == 31 && var7 >= 0) {
  1422.                         if (this.targetScreen.centerTopPanel.length > 1) {
  1423.                            if (var63 == this.targetScreen.centerTopPanel.length - 1) {
  1424.                               this.str.append(this.stoken[0] + var73 + this.stoken[1] + var110 + "); tabPanel.loadNextTab(" + this.stoken[2]);
  1425.                            } else if (var10 >= 0) {
  1426.                               this.str.append(this.stoken[0] + var73 + this.stoken[1] + var96 + "); tabPanel.loadNextTab(" + this.stoken[2]);
  1427.                            }
  1428.                         } else {
  1429.                            this.str.append(this.stoken[0] + var73 + this.stoken[1] + var110 + this.stoken[2]);
  1430.                         }
  1431.                      }
  1432.  
  1433.                      if (this.lineIndex == 38 && var7 >= 0) {
  1434.                         if (this.targetScreen.centerTopPanel.length > 1) {
  1435.                            if (var63 == this.targetScreen.centerTopPanel.length - 1) {
  1436.                               this.str.append(this.stoken[0] + var110 + this.stoken[1] + var73 + "); tabPanel.loadPrevTab(" + this.stoken[2]);
  1437.                            } else if (var10 >= 0) {
  1438.                               this.str.append(this.stoken[0] + var96 + this.stoken[1] + var73 + "); tabPanel.loadPrevTab(" + this.stoken[2]);
  1439.                            }
  1440.                         } else {
  1441.                            this.str.append(this.stoken[0] + var110 + this.stoken[1] + var73 + this.stoken[2]);
  1442.                         }
  1443.                      }
  1444.  
  1445.                      var10 = -1;
  1446.                      var7 = -1;
  1447.                   }
  1448.                   break;
  1449.                case 32:
  1450.                   boolean var94 = false;
  1451.                   this.selectedFields = "";
  1452.                   this.str.append(this.stoken[0] + "\"SELECT ");
  1453.                   String var108 = this.targetSettings.lockingColumn.getSelectedItem();
  1454.                   if (var108 != null && !var108.equals("")) {
  1455.                      this.str.append(var108);
  1456.                      if (this.user.u.sqlRequiresChange(this.targetDSN.jaggSQL, 0)) {
  1457.                         this.str.append(" l" + var108);
  1458.                      }
  1459.  
  1460.                      this.str.append(",\" +\r\n\t\t\t\t\t\"");
  1461.                   }
  1462.  
  1463.                   for(int var15 = 0; var15 < this.fields.length; ++var15) {
  1464.                      if (this.indexes[var15] < this.targetSettings.fieldType.length) {
  1465.                         if (var15 > 0) {
  1466.                            this.str.append(",\" +\r\n\t\t\t\t\t\"");
  1467.                         }
  1468.  
  1469.                         this.str.append(this.targetSettings.fieldSql[this.indexes[var15]]);
  1470.                         String var211 = this.selectedFields;
  1471.                         this.selectedFields = var211 + this.targetSettings.fieldSql[this.indexes[var15]] + " ";
  1472.                      }
  1473.                   }
  1474.  
  1475.                   if (this.layoutName.equals("JDPLayout3")) {
  1476.                      for(int var118 = 0; var118 < this.targetScreen.columns.countItems(); ++var118) {
  1477.                         if (var118 < this.indexes.length && this.indexes[var118] < this.targetSettings.fieldType.length && !this.targetScreen.columns.isSelected(var118)) {
  1478.                            this.str.append(",\" +\r\n\t\t\t\t\t\"");
  1479.                            this.str.append(this.switchField(this.targetSettings.fieldSql[var118]));
  1480.                            if (this.selectedFields.indexOf(this.switchField(this.targetSettings.fieldSql[var118])) >= 0 && this.user.u.sqlRequiresChange(this.targetDSN.jaggSQL, 0)) {
  1481.                               this.str.append(" a" + this.switchField(this.user.u.strip(this.targetSettings.fieldSql[var118])));
  1482.                            }
  1483.                         }
  1484.                      }
  1485.                   }
  1486.  
  1487.                   this.str.append("\" +\r\n\t\t\t\t\t\" FROM ");
  1488.  
  1489.                   for(int var119 = 0; var119 < this.keysSQL.length; ++var119) {
  1490.                      String var212 = this.selectedFields;
  1491.                      this.selectedFields = var212 + this.switchField(this.keysSQL[var119]) + " ";
  1492.                   }
  1493.  
  1494.                   String var120 = null;
  1495.                   String var16 = "";
  1496.  
  1497.                   for(int var17 = 0; var17 < this.targetTable.joinConditions.countItems(); ++var17) {
  1498.                      if (this.targetTable.joinConditions.getItem(var17).indexOf("*=") > 0) {
  1499.                         var120 = "left";
  1500.                         var16 = this.targetTable.joinConditions.getItem(var17);
  1501.                      }
  1502.  
  1503.                      if (this.targetTable.joinConditions.getItem(var17).indexOf("=*") > 0) {
  1504.                         var120 = "right";
  1505.                         var16 = this.targetTable.joinConditions.getItem(var17);
  1506.                      }
  1507.                   }
  1508.  
  1509.                   String var129 = "";
  1510.                   String var18 = "";
  1511.                   boolean var48 = true;
  1512.                   int[] var11 = this.targetTable.stables.getSelectedIndexes();
  1513.                   if (var11.length == 0 || this.selectedFields.indexOf("a.") >= 0) {
  1514.                      var129 = this.targetTable.tables.getSelectedItem();
  1515.                      if (var11.length > 0) {
  1516.                         var129 = var129 + " a";
  1517.                      }
  1518.  
  1519.                      if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  1520.                         var129 = var129 + " (NOLOCK)";
  1521.                      }
  1522.  
  1523.                      var48 = false;
  1524.                   }
  1525.  
  1526.                   for(int var161 = 0; var161 < var11.length; ++var161) {
  1527.                      if (this.selectedFields.indexOf(this.targetTable.stableAlias[var11[var161]] + ".") >= 0) {
  1528.                         if (var120 == null && !var48) {
  1529.                            var18 = var18 + ",";
  1530.                         }
  1531.  
  1532.                         var18 = var18 + this.targetTable.stables.getItem(var11[var161]);
  1533.                         var18 = var18 + " " + this.targetTable.stableAlias[var11[var161]];
  1534.                         if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  1535.                            var18 = var18 + " (NOLOCK)";
  1536.                         }
  1537.  
  1538.                         var48 = false;
  1539.                      }
  1540.                   }
  1541.  
  1542.                   if (var120 == null) {
  1543.                      this.str.append(var129);
  1544.                      this.str.append(var18);
  1545.                   } else if (var120.equals("left")) {
  1546.                      this.str.append("{oj ");
  1547.                      this.str.append(var129);
  1548.                      this.str.append(" LEFT OUTER JOIN ");
  1549.                      this.str.append(var18);
  1550.                      this.str.append(" ON ");
  1551.                      this.str.append(this.user.u.replace(var16, "*", ""));
  1552.                      this.str.append("}");
  1553.                   } else if (var120.equals("right")) {
  1554.                      this.str.append("{oj ");
  1555.                      this.str.append(var18);
  1556.                      this.str.append(" LEFT OUTER JOIN ");
  1557.                      this.str.append(var129);
  1558.                      this.str.append(" ON ");
  1559.                      this.str.append(this.user.u.replace(var16, "*", ""));
  1560.                      this.str.append("}");
  1561.                   }
  1562.  
  1563.                   var48 = true;
  1564.                   if (this.targetTable.joinConditions.countItems() > 0) {
  1565.                      for(int var162 = 0; var162 < this.targetTable.joinConditions.countItems(); ++var162) {
  1566.                         if (!this.targetTable.joinConditions.getItem(var162).equals(var16)) {
  1567.                            String var187 = this.targetTable.joinConditions.getItem(var162);
  1568.                            int var199 = var187.substring(2).indexOf(".") + 1;
  1569.                            if (this.selectedFields.indexOf(var187.substring(0, 2)) >= 0 && this.selectedFields.indexOf(var187.substring(var199, var199 + 2)) >= 0) {
  1570.                               if (var48) {
  1571.                                  this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  1572.                               }
  1573.  
  1574.                               if (!var48) {
  1575.                                  this.str.append("\" +\r\n\t\t\t\t\t\" AND ");
  1576.                               }
  1577.  
  1578.                               this.str.append(this.targetTable.joinConditions.getItem(var162));
  1579.                               var48 = false;
  1580.                            }
  1581.                         }
  1582.                      }
  1583.  
  1584.                      if (!var48) {
  1585.                         this.str.append("\"");
  1586.                      }
  1587.                   }
  1588.  
  1589.                   if (this.targetList != null) {
  1590.                      for(int var163 = 0; var163 < this.keys.length; ++var163) {
  1591.                         if (!this.layoutName.equals("JDPLayout11") && !this.layoutName.equals("JDPLayout21") && !this.layoutName.equals("JDPLayout23") && (this.targetList.uniqueTree.isSelected(var163) || this.targetList.useTree.getSelectedItem().equals("List"))) {
  1592.                            if (var48) {
  1593.                               this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  1594.                            }
  1595.  
  1596.                            if (!var48) {
  1597.                               this.str.append(" +\r\n\t\t\t\t\t\t\t\" AND ");
  1598.                            }
  1599.  
  1600.                            var48 = false;
  1601.                            this.str.append(this.cvtKey(this.switchField(this.keysSQL[var163]), this.keyDataType[var163]) + "=");
  1602.                            String var188 = this.getQuote(this.keyDataType[var163]);
  1603.                            this.str.append(var188);
  1604.                            this.str.append("\" + searchResults.recordKey" + Integer.toString(var163) + "[itemIndex]");
  1605.                            this.str.append("+ \"" + var188 + "\" ");
  1606.                         }
  1607.                      }
  1608.                   }
  1609.  
  1610.                   if (this.layoutName.equals("JDPLayout11") || this.layoutName.equals("JDPLayout21") || this.layoutName.equals("JDPLayout23")) {
  1611.                      for(int var164 = 0; var164 < this.keys.length; ++var164) {
  1612.                         if (var48) {
  1613.                            this.str.append("\" +\r\n\t\t\t\t\t\" WHERE (1=1)\"");
  1614.                         }
  1615.  
  1616.                         var48 = false;
  1617.                         this.str.append(";\r\n\t\tif (keys.length > " + Integer.toString(var164) + " && keys[" + Integer.toString(var164) + "] != null) SQL += \" AND " + this.cvtKey(this.keysSQL[var164], this.keyDataType[var164]) + "=");
  1618.                         String var189 = this.getQuote(this.keyDataType[var164]);
  1619.                         this.str.append(var189);
  1620.                         if (JDPUtils.isOdbcBinary(this.keyDataType[var164])) {
  1621.                            this.str.append("0x");
  1622.                         }
  1623.  
  1624.                         this.str.append("\" + keys[" + Integer.toString(var164) + "]");
  1625.                         this.str.append("+ \"");
  1626.                         this.str.append(var189);
  1627.                         this.str.append("\" ");
  1628.                      }
  1629.                   }
  1630.  
  1631.                   if (var48) {
  1632.                      this.str.append("\"");
  1633.                   }
  1634.  
  1635.                   this.str.append(this.stoken[1]);
  1636.                   break;
  1637.                case 33:
  1638.                   String var107 = this.targetSettings.lockingColumn.getSelectedItem();
  1639.                   if (var107 != null && !var107.equals("")) {
  1640.                      String var158 = "";
  1641.                      if (this.targetSettings.thisBranch != null) {
  1642.                         var158 = this.targetSettings.thisBranch.name;
  1643.                      }
  1644.  
  1645.                      this.str.append("\t\t\t\t" + var158 + this.user.u.strip(var107) + "Lock = stok.nextToken(sep).trim(); \r\n");
  1646.                   }
  1647.  
  1648.                   for(int var159 = 0; var159 < this.fields.length; ++var159) {
  1649.                      if (this.indexes[var159] < this.targetSettings.fieldType.length) {
  1650.                         if (!this.targetSettings.fieldType[this.indexes[var159]].equals("TextField") && !this.targetSettings.fieldType[this.indexes[var159]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var159]].equals("JDPComboBox") && !this.targetSettings.fieldType[this.indexes[var159]].equals("JDPSpinner")) {
  1651.                            if (this.targetSettings.fieldType[this.indexes[var159]].equals("JDPDate")) {
  1652.                               this.str.append(this.stoken[0] + this.fields[var159] + ".setText(JDPDate.format(Long.valueOf(stok.nextToken().trim()).longValue()));\r\n");
  1653.                            } else if (this.targetSettings.fieldType[this.indexes[var159]].equals("JDPChoice")) {
  1654.                               this.str.append(this.stoken[0] + this.fields[var159] + ".selectKey(stok.nextToken().trim());\r\n");
  1655.                            } else if (this.targetSettings.fieldType[this.indexes[var159]].equals("Checkbox")) {
  1656.                               this.str.append("\t\t\t\ttempText = stok.nextToken(sep).trim(); \r\n");
  1657.                               this.str.append("\t\t\t\t" + this.fields[var159] + ".setState(tempText.equals(\"" + this.targetSettings.checkedValue[this.indexes[var159]] + "\"));\r\n");
  1658.                            }
  1659.                         } else {
  1660.                            this.str.append(this.stoken[0] + this.fields[var159] + this.stoken[1]);
  1661.                         }
  1662.  
  1663.                         if (this.targetSettings.fieldType[this.indexes[var159]].equals("RadioButtons")) {
  1664.                            this.str.append("\t\t\t\ttempText = stok.nextToken(sep).trim(); \r\n");
  1665.                            this.str.append("\t\t\t\t" + this.fields[var159] + ".setState(tempText.equals(\"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var159]][0] + "\"));\r\n");
  1666.  
  1667.                            for(int var186 = 1; var186 < JDPChoiceLayout.maxChoices; ++var186) {
  1668.                               if (this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var159]][var186].trim().length() > 0) {
  1669.                                  this.str.append("\t\t\t\t" + this.fields[var159] + Integer.toString(var186) + ".setState(tempText.equals(\"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var159]][var186] + "\"));\r\n");
  1670.                               }
  1671.                            }
  1672.                         }
  1673.                      }
  1674.                   }
  1675.  
  1676.                   if (this.layoutName.equals("JDPLayout3")) {
  1677.                      for(int var160 = 0; var160 < this.targetScreen.columns.countItems(); ++var160) {
  1678.                         if (!this.targetScreen.columns.isSelected(var160)) {
  1679.                            this.str.append(this.stoken[0] + "if (stok.hasMoreTokens()) " + this.user.u.strip(this.targetScreen.columns.getItem(var160)) + this.stoken[1]);
  1680.                         }
  1681.                      }
  1682.                   }
  1683.                   break;
  1684.                case 34:
  1685.                   this.str.append(this.stoken[0] + "\"INSERT INTO " + this.targetColumns.tableName[0] + " (");
  1686.                   boolean var46 = true;
  1687.  
  1688.                   for(int var156 = 0; var156 < this.insertfields.length; ++var156) {
  1689.                      if (!this.targetColumns.columnIsIdentity[this.iindexes[var156]]) {
  1690.                         boolean var184 = true;
  1691.  
  1692.                         for(int var197 = 0; var197 < this.updatefields.length; ++var197) {
  1693.                            if (this.insertfields[var156].equals(this.updatefields[var197])) {
  1694.                               var184 = false;
  1695.                            }
  1696.  
  1697.                            if (this.insertfields[var156].equals(this.updatefields[var197]) && this.targetSettings.includeInUpdateSql[this.indexes[var197]].equals("No")) {
  1698.                               var184 = true;
  1699.                            }
  1700.                         }
  1701.  
  1702.                         if (!var184) {
  1703.                            if (!var46) {
  1704.                               this.str.append(", \" +\r\n\t\t\t\t\t\"");
  1705.                            }
  1706.  
  1707.                            var46 = false;
  1708.                            this.str.append(this.insertfields[var156]);
  1709.                         }
  1710.                      }
  1711.                   }
  1712.  
  1713.                   this.str.append(") VALUES(");
  1714.                   var46 = true;
  1715.  
  1716.                   for(int var157 = 0; var157 < this.insertfields.length; ++var157) {
  1717.                      if (!this.targetColumns.columnIsIdentity[this.iindexes[var157]]) {
  1718.                         boolean var185 = true;
  1719.                         boolean var198 = true;
  1720.  
  1721.                         for(int var203 = 0; var203 < this.updatefields.length; ++var203) {
  1722.                            if (this.insertfields[var157].equals(this.updatefields[var203])) {
  1723.                               var198 = false;
  1724.                            }
  1725.  
  1726.                            if (this.insertfields[var157].equals(this.updatefields[var203]) && this.targetSettings.includeInUpdateSql[this.indexes[var203]].equals("No")) {
  1727.                               var198 = true;
  1728.                            }
  1729.  
  1730.                            if (this.insertfields[var157].equals(this.updatefields[var203]) && this.targetSettings.includeInUpdateSql[this.indexes[var203]].equals("Yes")) {
  1731.                               if (!var46) {
  1732.                                  this.str.append(", \" +\r\n\t\t\t\t\t\"");
  1733.                               }
  1734.  
  1735.                               var46 = false;
  1736.                               var185 = false;
  1737.                               boolean var92 = false;
  1738.                               if (JDPUtils.isOdbcChar(this.dataType[var203])) {
  1739.                                  var92 = true;
  1740.                               }
  1741.  
  1742.                               String var206 = "";
  1743.                               if (JDPUtils.isOdbcDate(this.dataType[var203])) {
  1744.                                  String[] var24 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  1745.                                  this.str.append(var24[0]);
  1746.                                  var206 = var24[1];
  1747.                               } else if (var92) {
  1748.                                  this.str.append("'");
  1749.                               }
  1750.  
  1751.                               if (!this.targetSettings.fieldType[this.indexes[var203]].equals("TextField") && !this.targetSettings.fieldType[this.indexes[var203]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var203]].equals("JDPComboBox") && !this.targetSettings.fieldType[this.indexes[var203]].equals("JDPSpinner") && !this.targetSettings.fieldType[this.indexes[var203]].equals("JDPDate")) {
  1752.                                  if (this.targetSettings.fieldType[this.indexes[var203]].equals("JDPChoice")) {
  1753.                                     this.str.append("\" + " + this.fields[var203] + ".getSelectedKey() + ");
  1754.                                  } else if (this.targetSettings.fieldType[this.indexes[var203]].equals("Checkbox")) {
  1755.                                     this.str.append("\" + (" + this.fields[var203] + ".getState() ? \"" + this.targetSettings.checkedValue[var203] + "\" : \"" + this.targetSettings.uncheckedValue[var203] + "\") + ");
  1756.                                  } else if (this.targetSettings.fieldType[this.indexes[var203]].equals("RadioButtons")) {
  1757.                                     int var208 = 1;
  1758.                                     this.str.append("\" + (" + this.fields[var203] + ".getState() ? \"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var203]][0].trim() + "\" : ");
  1759.  
  1760.                                     for(int var25 = 1; var25 < JDPChoiceLayout.maxChoices; ++var25) {
  1761.                                        if (this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var203]][var25].trim().length() > 0) {
  1762.                                           this.str.append("(" + this.fields[var203] + Integer.toString(var25) + ".getState() ? \"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var203]][var25].trim() + "\" : ");
  1763.                                           ++var208;
  1764.                                        }
  1765.                                     }
  1766.  
  1767.                                     this.str.append("\" \"");
  1768.  
  1769.                                     for(int var210 = 0; var210 < var208; ++var210) {
  1770.                                        this.str.append(")");
  1771.                                     }
  1772.  
  1773.                                     this.str.append(" + ");
  1774.                                  }
  1775.                               } else if (JDPUtils.isOdbcNum(this.dataType[var203]) && !this.targetSettings.fieldEditMask[this.indexes[var203]].equals("")) {
  1776.                                  this.str.append("\" + JDPMaskEditMain.stripFloat(" + this.fields[var203] + ") + ");
  1777.                               } else if (JDPUtils.isOdbcDate(this.dataType[var203])) {
  1778.                                  this.str.append(this.fields[var203] + ".getText()");
  1779.                               } else if (JDPUtils.isOdbcBinary(this.dataType[var203])) {
  1780.                                  this.str.append("0x0\" + " + this.fields[var203] + ".getText() + ");
  1781.                               } else if (var92) {
  1782.                                  this.str.append("\" + user.u.replace(" + this.fields[var203] + ".getText(),\"'\",\"''\") + ");
  1783.                               } else {
  1784.                                  this.str.append("\" + JDPUtils.tonum(" + this.fields[var203] + ".getText()) + ");
  1785.                               }
  1786.  
  1787.                               if (!JDPUtils.isOdbcDate(this.dataType[var203])) {
  1788.                                  this.str.append("\"");
  1789.                                  if (var92) {
  1790.                                     this.str.append("'");
  1791.                                  }
  1792.                               }
  1793.  
  1794.                               this.str.append(var206);
  1795.                               break;
  1796.                            }
  1797.                         }
  1798.  
  1799.                         if (!var198 && var185) {
  1800.                            if (!var46) {
  1801.                               this.str.append(", \" +\r\n\t\t\t\t\t\"");
  1802.                            }
  1803.  
  1804.                            var46 = false;
  1805.                            boolean var93 = false;
  1806.                            int var204 = this.targetColumns.columnDatatype[this.iindexes[var157]];
  1807.                            if (JDPUtils.isOdbcChar(var204)) {
  1808.                               var93 = true;
  1809.                            }
  1810.  
  1811.                            String var207 = "";
  1812.                            if (JDPUtils.isOdbcDate(var204)) {
  1813.                               String[] var209 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  1814.                               this.str.append(var209[0]);
  1815.                               var207 = var209[1];
  1816.                               this.str.append("\"" + this.targetSettings.fieldDefault[var157] + "\"");
  1817.                            } else if (var93) {
  1818.                               this.str.append("'" + this.user.u.replace(this.targetSettings.fieldDefault[var157], "'", "''") + "'");
  1819.                            } else if (this.targetSettings.fieldDefault[var157].equals("")) {
  1820.                               this.str.append("0");
  1821.                            } else {
  1822.                               this.str.append(this.targetSettings.fieldDefault[var157]);
  1823.                            }
  1824.  
  1825.                            this.str.append(var207);
  1826.                         }
  1827.                      }
  1828.                   }
  1829.  
  1830.                   this.str.append(")\"");
  1831.                   this.str.append(this.stoken[1]);
  1832.                   break;
  1833.                case 35:
  1834.                   this.str.append(this.stoken[0] + "\"DELETE FROM " + this.targetColumns.tableName[0]);
  1835.                   this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  1836.  
  1837.                   for(int var154 = 0; var154 < this.keysUpdate.length; ++var154) {
  1838.                      if (var154 > 0) {
  1839.                         this.str.append(" +\r\n\t\t\t\t\t\" AND ");
  1840.                      }
  1841.  
  1842.                      if (this.keysSQLUpdate[var154].indexOf(".") > 0) {
  1843.                         this.str.append(this.cvtKey(this.keysSQLUpdate[var154].substring(2), this.keyDataTypeUpdate[var154]) + "=");
  1844.                      } else {
  1845.                         this.str.append(this.cvtKey(this.keysSQLUpdate[var154], this.keyDataTypeUpdate[var154]) + "=");
  1846.                      }
  1847.  
  1848.                      String var183 = this.getQuote(this.keyDataTypeUpdate[var154]);
  1849.                      this.str.append(var183);
  1850.                      if (JDPUtils.isOdbcBinary(this.keyDataTypeUpdate[var154])) {
  1851.                         this.str.append("0x");
  1852.                      }
  1853.  
  1854.                      if (!this.layoutName.equals("JDPLayout11") && !this.layoutName.equals("JDPLayout21") && !this.layoutName.equals("JDPLayout23")) {
  1855.                         this.str.append("\" + searchResults.recordKey" + Integer.toString(var154) + "[itemIndex]");
  1856.                      } else {
  1857.                         this.str.append("\" + keys[" + Integer.toString(var154) + "]");
  1858.                      }
  1859.  
  1860.                      this.str.append("+ \"");
  1861.                      this.str.append(var183);
  1862.                      this.str.append("\" ");
  1863.                   }
  1864.  
  1865.                   this.str.append(this.stoken[1]);
  1866.                   String var106 = this.targetSettings.lockingColumn.getSelectedItem();
  1867.                   if (var106 != null && !var106.equals("")) {
  1868.                      String var155 = "";
  1869.                      if (this.targetSettings.thisBranch != null) {
  1870.                         var155 = this.targetSettings.thisBranch.name;
  1871.                      }
  1872.  
  1873.                      if (var106.indexOf(".") > 0) {
  1874.                         var106 = var106.substring(2);
  1875.                      }
  1876.  
  1877.                      this.str.append("\t\t\t\tprevSQL = SQL;\r\n\t\t\t\tif (" + var155 + this.user.u.strip(var106) + "Lock != null) {\r\n\t\t\t\t\t");
  1878.                      this.str.append("SQL += \" AND " + var106 + " = \" + " + var155 + this.user.u.strip(var106) + "Lock");
  1879.                      this.str.append(";\r\n\t\t\t\t}\r\n");
  1880.                   }
  1881.                   break;
  1882.                case 36:
  1883.                   this.str.append(this.stoken[0] + "\"UPDATE " + this.targetColumns.tableName[0] + " SET ");
  1884.                   boolean var8 = true;
  1885.  
  1886.                   for(int var151 = 0; var151 < this.updatefields.length; ++var151) {
  1887.                      if (this.indexes[var151] < this.targetSettings.fieldType.length && !this.targetColumns.columnIsIdentity[this.targetSettings.columnIndexes[this.indexes[var151]]] && this.targetSettings.includeInUpdateSql[this.indexes[var151]].equals("Yes")) {
  1888.                         boolean var181 = true;
  1889.  
  1890.                         for(int var2 = 0; var2 < this.keysUpdate.length; ++var2) {
  1891.                            if (this.keysUpdate[var2].equals(this.updatefields[var151])) {
  1892.                               var181 = false;
  1893.                               break;
  1894.                            }
  1895.                         }
  1896.  
  1897.                         if (var181 && this.targetSettings.fieldEditable[this.indexes[var151]].equals("Yes")) {
  1898.                            if (!var8) {
  1899.                               this.str.append(", \" +\r\n\t\t\t\t\t\"");
  1900.                            }
  1901.  
  1902.                            var8 = false;
  1903.                            this.str.append(this.updatefields[var151] + " = ");
  1904.                            boolean var13 = false;
  1905.                            if (JDPUtils.isOdbcChar(this.dataType[var151])) {
  1906.                               var13 = true;
  1907.                            }
  1908.  
  1909.                            String var196 = "";
  1910.                            if (JDPUtils.isOdbcDate(this.dataType[var151])) {
  1911.                               String[] var201 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  1912.                               this.str.append(var201[0]);
  1913.                               var196 = var201[1];
  1914.                            } else if (var13) {
  1915.                               this.str.append("'");
  1916.                            }
  1917.  
  1918.                            if (JDPUtils.isOdbcBinary(this.dataType[var151])) {
  1919.                               this.str.append("0x0");
  1920.                            }
  1921.  
  1922.                            if (!this.targetSettings.fieldType[this.indexes[var151]].equals("TextField") && !this.targetSettings.fieldType[this.indexes[var151]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var151]].equals("JDPComboBox") && !this.targetSettings.fieldType[this.indexes[var151]].equals("JDPSpinner") && !this.targetSettings.fieldType[this.indexes[var151]].equals("JDPDate")) {
  1923.                               if (this.targetSettings.fieldType[this.indexes[var151]].equals("JDPChoice")) {
  1924.                                  this.str.append("\" + " + this.fields[var151] + ".getSelectedKey() + ");
  1925.                               } else if (this.targetSettings.fieldType[this.indexes[var151]].equals("Checkbox")) {
  1926.                                  this.str.append("\" + (" + this.fields[var151] + ".getState() ? \"" + this.targetSettings.checkedValue[var151] + "\" : \"" + this.targetSettings.uncheckedValue[var151] + "\") + ");
  1927.                               } else if (this.targetSettings.fieldType[this.indexes[var151]].equals("RadioButtons")) {
  1928.                                  int var202 = 1;
  1929.                                  this.str.append("\" + (" + this.fields[var151] + ".getState() ? \"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var151]][0].trim() + "\" : ");
  1930.  
  1931.                                  for(int var23 = 1; var23 < JDPChoiceLayout.maxChoices; ++var23) {
  1932.                                     if (this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var151]][var23].trim().length() > 0) {
  1933.                                        this.str.append("(" + this.fields[var151] + Integer.toString(var23) + ".getState() ? \"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var151]][var23].trim() + "\" : ");
  1934.                                        ++var202;
  1935.                                     }
  1936.                                  }
  1937.  
  1938.                                  this.str.append("\" \"");
  1939.  
  1940.                                  for(int var205 = 0; var205 < var202; ++var205) {
  1941.                                     this.str.append(")");
  1942.                                  }
  1943.  
  1944.                                  this.str.append(" + ");
  1945.                               }
  1946.                            } else if (JDPUtils.isOdbcNum(this.dataType[var151]) && !this.targetSettings.fieldEditMask[this.indexes[var151]].equals("")) {
  1947.                               this.str.append("\" + JDPMaskEditMain.stripFloat(" + this.fields[var151] + ") + ");
  1948.                            } else if (JDPUtils.isOdbcDate(this.dataType[var151])) {
  1949.                               this.str.append(this.fields[var151] + ".getText()");
  1950.                            } else if (JDPUtils.isOdbcBinary(this.dataType[var151])) {
  1951.                               this.str.append("\" + " + this.fields[var151] + ".getText() + ");
  1952.                            } else if (var13) {
  1953.                               this.str.append("\" + user.u.replace(" + this.fields[var151] + ".getText(),\"'\",\"''\") + ");
  1954.                            } else {
  1955.                               this.str.append("\" + JDPUtils.tonum(" + this.fields[var151] + ".getText()) + ");
  1956.                            }
  1957.  
  1958.                            if (!JDPUtils.isOdbcDate(this.dataType[var151])) {
  1959.                               this.str.append("\"");
  1960.                               if (var13) {
  1961.                                  this.str.append("'");
  1962.                               }
  1963.                            }
  1964.  
  1965.                            this.str.append(var196);
  1966.                         }
  1967.                      }
  1968.                   }
  1969.  
  1970.                   String var14 = this.targetSettings.lockingColumn.getSelectedItem();
  1971.                   if (var14 != null && !var14.equals("")) {
  1972.                      if (var14.indexOf(".") > 0) {
  1973.                         var14 = var14.substring(2);
  1974.                      }
  1975.  
  1976.                      this.str.append("\" +\r\n\t\t\t\t\t\"," + var14 + " = " + var14 + " + 1");
  1977.                   }
  1978.  
  1979.                   this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  1980.  
  1981.                   for(int var152 = 0; var152 < this.keysUpdate.length; ++var152) {
  1982.                      if (var152 > 0) {
  1983.                         this.str.append(" +\r\n\t\t\t\t\t\" AND ");
  1984.                      }
  1985.  
  1986.                      if (this.keysSQLUpdate[var152].indexOf(".") > 0) {
  1987.                         this.str.append(this.cvtKey(this.keysSQLUpdate[var152].substring(2), this.keyDataTypeUpdate[var152]) + "=");
  1988.                      } else {
  1989.                         this.str.append(this.cvtKey(this.keysSQLUpdate[var152], this.keyDataTypeUpdate[var152]) + "=");
  1990.                      }
  1991.  
  1992.                      String var182 = this.getQuote(this.keyDataTypeUpdate[var152]);
  1993.                      this.str.append(var182);
  1994.                      if (JDPUtils.isOdbcBinary(this.keyDataTypeUpdate[var152])) {
  1995.                         this.str.append("0x");
  1996.                      }
  1997.  
  1998.                      if (!this.layoutName.equals("JDPLayout11") && !this.layoutName.equals("JDPLayout21") && !this.layoutName.equals("JDPLayout23")) {
  1999.                         this.str.append("\" + searchResults.recordKey" + Integer.toString(var152) + "[itemIndex]");
  2000.                      } else {
  2001.                         this.str.append("\" + keys[" + Integer.toString(var152) + "]");
  2002.                      }
  2003.  
  2004.                      this.str.append("+ \"");
  2005.                      this.str.append(var182);
  2006.                      this.str.append("\" ");
  2007.                   }
  2008.  
  2009.                   this.str.append(this.stoken[1]);
  2010.                   var14 = this.targetSettings.lockingColumn.getSelectedItem();
  2011.                   if (var14 != null && !var14.equals("")) {
  2012.                      String var153 = "";
  2013.                      if (this.targetSettings.thisBranch != null) {
  2014.                         var153 = this.targetSettings.thisBranch.name;
  2015.                      }
  2016.  
  2017.                      if (var14.indexOf(".") > 0) {
  2018.                         var14 = var14.substring(2);
  2019.                      }
  2020.  
  2021.                      this.str.append("\t\t\t\tprevSQL = SQL;\r\n\t\t\t\tif (" + var153 + this.user.u.strip(var14) + "Lock != null) {\r\n\t\t\t\t\t");
  2022.                      this.str.append("SQL += \" AND " + var14 + " = \" + " + var153 + this.user.u.strip(var14) + "Lock");
  2023.                      this.str.append(";\r\n\t\t\t\t}\r\n");
  2024.                   }
  2025.                   break;
  2026.                case 37:
  2027.                   for(int var150 = 0; var150 < this.fields.length; ++var150) {
  2028.                      if (this.indexes[var150] < this.targetSettings.fieldType.length) {
  2029.                         if (!this.targetSettings.fieldType[this.indexes[var150]].equals("TextField") && !this.targetSettings.fieldType[this.indexes[var150]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var150]].equals("JDPComboBox") && !this.targetSettings.fieldType[this.indexes[var150]].equals("JDPSpinner") && !this.targetSettings.fieldType[this.indexes[var150]].equals("JDPDate")) {
  2030.                            if (this.targetSettings.fieldType[this.indexes[var150]].equals("JDPChoice")) {
  2031.                               this.str.append(this.stoken[0] + this.fields[var150] + ".select(0);\r\n");
  2032.                            } else if (this.targetSettings.fieldType[this.indexes[var150]].equals("Checkbox")) {
  2033.                               this.str.append(this.stoken[0] + this.fields[var150] + ".setState(false);\r\n");
  2034.                            }
  2035.                         } else if (this.layoutName.equals("JDPLayout3")) {
  2036.                            this.str.append(this.stoken[0] + "if ((" + this.fields[var150] + ".isEditable()) || clearKey) " + this.fields[var150] + this.stoken[1] + this.targetSettings.fieldDefault[this.indexes[var150]] + this.stoken[2]);
  2037.                         } else {
  2038.                            this.str.append(this.stoken[0] + this.fields[var150] + this.stoken[1] + this.targetSettings.fieldDefault[this.indexes[var150]] + this.stoken[2]);
  2039.                         }
  2040.  
  2041.                         if (this.targetSettings.fieldType[this.indexes[var150]].equals("RadioButtons")) {
  2042.                            this.str.append(this.stoken[0] + this.fields[var150] + ".setState(false);\r\n");
  2043.  
  2044.                            for(int var180 = 1; var180 < JDPChoiceLayout.maxChoices; ++var180) {
  2045.                               if (this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var150]][var180].trim().length() > 0) {
  2046.                                  this.str.append(this.stoken[0] + this.fields[var150] + Integer.toString(var180) + ".setState(false);\r\n");
  2047.                               }
  2048.                            }
  2049.                         }
  2050.                      }
  2051.                   }
  2052.                   break;
  2053.                case 39:
  2054.                   for(int var149 = 0; var149 < this.fields.length; ++var149) {
  2055.                      if (this.indexes[var149] < this.targetSettings.fieldTextColor.length) {
  2056.                         String var178 = this.targetSettings.fieldTextColor[this.indexes[var149]];
  2057.                         var178 = var178.substring(0, 1).toLowerCase() + var178.substring(1);
  2058.                         if (this.targetSettings.fieldType[this.indexes[var149]].equals("RadioButtons")) {
  2059.                            this.str.append(this.stoken[0] + this.fields[var149] + this.stoken[1] + var178 + this.stoken[2]);
  2060.  
  2061.                            for(int var195 = 1; var195 < JDPChoiceLayout.maxChoices; ++var195) {
  2062.                               if (this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var149]][var195].trim().length() > 0) {
  2063.                                  this.str.append(this.stoken[0] + this.fields[var149] + Integer.toString(var195) + this.stoken[1] + var178 + this.stoken[2]);
  2064.                               }
  2065.                            }
  2066.                         } else {
  2067.                            this.str.append(this.stoken[0] + this.fields[var149] + this.stoken[1] + var178 + this.stoken[2]);
  2068.                         }
  2069.                      }
  2070.                   }
  2071.                   break;
  2072.                case 40:
  2073.                   for(int var148 = 0; var148 < this.fields.length; ++var148) {
  2074.                      if (this.indexes[var148] < this.targetSettings.fieldBackColor.length) {
  2075.                         String var176 = this.targetSettings.fieldBackColor[this.indexes[var148]];
  2076.                         if (!this.targetSettings.fieldType[this.indexes[var148]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var148]].equals("Checkbox") && !this.targetSettings.fieldType[this.indexes[var148]].equals("RadioButtons") && !this.targetSettings.fieldType[this.indexes[var148]].equals("JDPDate") || !var176.equals("White")) {
  2077.                            var176 = var176.substring(0, 1).toLowerCase() + var176.substring(1);
  2078.                            this.str.append(this.stoken[0] + this.fields[var148] + this.stoken[1] + var176 + this.stoken[2]);
  2079.                         }
  2080.  
  2081.                         if (this.targetSettings.fieldType[this.indexes[var148]].equals("Checkbox")) {
  2082.                            this.str.append(this.stoken[0] + this.fields[var148] + ".setFont(user.boldFont" + this.stoken[2]);
  2083.                         }
  2084.  
  2085.                         if (this.targetSettings.fieldType[this.indexes[var148]].equals("RadioButtons")) {
  2086.                            this.str.append(this.stoken[0] + this.fields[var148] + ".setFont(user.boldFont" + this.stoken[2]);
  2087.  
  2088.                            for(int var194 = 1; var194 < JDPChoiceLayout.maxChoices; ++var194) {
  2089.                               if (this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var148]][var194].trim().length() > 0) {
  2090.                                  this.str.append(this.stoken[0] + this.fields[var148] + Integer.toString(var194) + ".setFont(user.boldFont" + this.stoken[2]);
  2091.                               }
  2092.                            }
  2093.                         }
  2094.                      }
  2095.                   }
  2096.                   break;
  2097.                case 41:
  2098.                   for(int var147 = 0; var147 < this.fields.length; ++var147) {
  2099.                      if (this.indexes[var147] < this.targetSettings.fieldType.length && (this.targetSettings.fieldType[this.indexes[var147]].equals("TextField") || this.targetSettings.fieldType[this.indexes[var147]].equals("TextArea") || this.targetSettings.fieldType[this.indexes[var147]].equals("JDPComboBox") || this.targetSettings.fieldType[this.indexes[var147]].equals("JDPSpinner") || this.targetSettings.fieldType[this.indexes[var147]].equals("JDPDate"))) {
  2100.                         this.str.append(this.stoken[0] + this.fields[var147] + this.stoken[1]);
  2101.                      }
  2102.                   }
  2103.                   break;
  2104.                case 42:
  2105.                   for(int var146 = 0; var146 < this.fields.length; ++var146) {
  2106.                      if (this.indexes[var146] < this.targetSettings.fieldType.length) {
  2107.                         if (!this.targetSettings.fieldType[this.indexes[var146]].equals("TextField") && !this.targetSettings.fieldType[this.indexes[var146]].equals("TextArea") && !this.targetSettings.fieldType[this.indexes[var146]].equals("JDPComboBox") && !this.targetSettings.fieldType[this.indexes[var146]].equals("JDPSpinner") && !this.targetSettings.fieldType[this.indexes[var146]].equals("JDPDate")) {
  2108.                            if ((this.targetSettings.fieldType[this.indexes[var146]].equals("JDPChoice") || this.targetSettings.fieldType[this.indexes[var146]].equals("Checkbox")) && this.layoutName.equals("JDPLayout3")) {
  2109.                               this.str.append(this.stoken[0] + this.fields[var146] + ".disable(" + this.stoken[2]);
  2110.                            }
  2111.                         } else if (this.targetSettings.fieldEditable[this.indexes[var146]].equals("No")) {
  2112.                            this.str.append(this.stoken[0] + this.fields[var146] + this.stoken[1] + "false" + this.stoken[2]);
  2113.                         }
  2114.  
  2115.                         if (this.targetSettings.fieldType[this.indexes[var146]].equals("RadioButtons") && this.layoutName.equals("JDPLayout3")) {
  2116.                            this.str.append(this.stoken[0] + this.fields[var146] + ".disable(" + this.stoken[2]);
  2117.  
  2118.                            for(int var175 = 1; var175 < JDPChoiceLayout.maxChoices; ++var175) {
  2119.                               if (this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var146]][var175].trim().length() > 0) {
  2120.                                  this.str.append(this.stoken[0] + this.fields[var146] + Integer.toString(var175) + ".disable(" + this.stoken[2]);
  2121.                               }
  2122.                            }
  2123.                         }
  2124.                      }
  2125.                   }
  2126.                   break;
  2127.                case 46:
  2128.                   for(int var71 = 0; var71 < this.buttons.length; ++var71) {
  2129.                      if (this.buttons[var71] != null) {
  2130.                         this.str.append(this.stoken[0]);
  2131.                         this.str.append(Integer.toString(var71));
  2132.                         this.str.append(this.stoken[1]);
  2133.                         this.str.append(this.buttons[var71]);
  2134.                         this.str.append(this.stoken[2]);
  2135.                         this.str.append(this.buttonsText[var71]);
  2136.                         this.str.append(this.stoken[3]);
  2137.                      }
  2138.                   }
  2139.                   break;
  2140.                case 47:
  2141.                   this.str.append(this.stoken[0] + this.iconsText + this.stoken[1]);
  2142.                   break;
  2143.                case 48:
  2144.                   for(int var145 = 0; var145 < this.fields.length; ++var145) {
  2145.                      if (this.indexes[var145] < this.targetSettings.fieldType.length) {
  2146.                         this.str.append(this.stoken[0] + this.fields[var145] + this.stoken[1] + this.targetSettings.mousePtrText[this.indexes[var145]]);
  2147.                         this.str.append(this.stoken[2] + this.targetSettings.statusBarText[this.indexes[var145]] + this.stoken[3]);
  2148.                      }
  2149.                   }
  2150.                   break;
  2151.                case 49:
  2152.                   for(int var144 = 0; var144 < this.indexes2.length; ++var144) {
  2153.                      if (this.indexes2[var144] >= 0) {
  2154.                         int var174 = this.indexes2[var144];
  2155.                         if (this.targetGridSettings.fieldType[var174].equals("JDPChoice") || this.targetGridSettings.fieldType[var174].equals("JDPComboBox")) {
  2156.                            this.str.append(this.stoken[0] + Integer.toString(var144) + this.stoken[1]);
  2157.                         }
  2158.                      }
  2159.                   }
  2160.                   break;
  2161.                case 50:
  2162.                   for(int var143 = 0; var143 < this.indexes2.length; ++var143) {
  2163.                      if (this.indexes2[var143] >= 0) {
  2164.                         int var173 = this.indexes2[var143];
  2165.                         if ((this.targetGridSettings.fieldType[var173].equals("JDPChoice") || this.targetGridSettings.fieldType[var173].equals("JDPComboBox")) && this.targetGridSettings.thisChoicePanel.valuesFrom[var173].equals("Fields entered here")) {
  2166.                            if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2167.                               this.str.append("\r\n\t\tvalue" + this.user.u.strip(this.targetGridSettings.columns.getItem(var173)) + " = new Vector(); \r\n");
  2168.                            } else {
  2169.                               this.str.append("\r\n\t\ttableContents.pullDownValue[" + Integer.toString(var143) + "][0] = new Vector(); \r\n");
  2170.                            }
  2171.  
  2172.                            int var193 = 0;
  2173.  
  2174.                            for(int var200 = 0; var200 < JDPChoiceLayout.maxChoices; ++var200) {
  2175.                               if (this.targetGridSettings.thisChoicePanel.textChoiceValue[var173][var200] != null && this.targetGridSettings.thisChoicePanel.textChoiceValue[var173][var200].trim().length() > 0 || var200 == 0) {
  2176.                                  this.str.append("\t\ttableContents.pullDownList[" + Integer.toString(var143) + "][0].addItem(\"");
  2177.                                  this.str.append(this.targetGridSettings.thisChoicePanel.textChoiceValue[var173][var200] + "\"); \r\n");
  2178.                                  if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2179.                                     this.str.append("\t\tvalue" + this.user.u.strip(this.targetGridSettings.columns.getItem(var173)) + ".addElement(\"" + this.targetGridSettings.thisChoicePanel.actualChoiceValue[var173][var200] + "\"); \r\n");
  2180.                                  } else {
  2181.                                     this.str.append("\t\ttableContents.pullDownValue[" + Integer.toString(var143) + "][0].addElement(\"" + this.targetGridSettings.thisChoicePanel.actualChoiceValue[var173][var200] + "\"); \r\n");
  2182.                                  }
  2183.  
  2184.                                  ++var193;
  2185.                               }
  2186.                            }
  2187.                         }
  2188.                      }
  2189.                   }
  2190.                   break;
  2191.                case 51:
  2192.                   for(int var142 = 0; var142 < this.indexes2.length; ++var142) {
  2193.                      if (this.indexes2[var142] >= 0) {
  2194.                         int var172 = this.indexes2[var142];
  2195.                         if ((this.targetGridSettings.fieldType[var172].equals("JDPChoice") || this.targetGridSettings.fieldType[var172].equals("JDPComboBox")) && this.targetGridSettings.thisChoicePanel.valuesFrom[var172].equals("Database table/columns")) {
  2196.                            if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2197.                               this.str.append("\r\n\t\tvalue" + this.user.u.strip(this.targetGridSettings.columns.getItem(var172)) + " = new Vector(); \r\n");
  2198.                            } else {
  2199.                               this.str.append("\r\n\t\ttableContents.pullDownValue[" + Integer.toString(var142) + "][0] = new Vector(); \r\n");
  2200.                            }
  2201.  
  2202.                            this.str.append(this.stoken[0] + Integer.toString(var142) + this.stoken[1]);
  2203.                            this.str.append(this.targetGridSettings.thisChoicePanel.textChoiceSql[var172] + this.stoken[2]);
  2204.                            this.str.append(this.targetGridSettings.thisChoicePanel.columnActualList[var172] + this.stoken[3]);
  2205.                            this.str.append(this.targetGridSettings.thisChoicePanel.tableList[var172] + this.stoken[4]);
  2206.                            this.str.append(this.targetGridSettings.thisChoicePanel.tableWhereClause[var172] + this.stoken[5]);
  2207.                            if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2208.                               this.str.append(this.user.u.strip(this.targetGridSettings.columns.getItem(var172)) + this.stoken[6]);
  2209.                            } else {
  2210.                               this.str.append(Integer.toString(var142) + this.stoken[6]);
  2211.                            }
  2212.                         }
  2213.                      }
  2214.                   }
  2215.                   break;
  2216.                case 52:
  2217.                   for(int var141 = 0; var141 < this.indexes2.length; ++var141) {
  2218.                      if (this.indexes2[var141] >= 0) {
  2219.                         int var171 = this.indexes2[var141];
  2220.                         if (this.targetGridSettings.fieldType[var171].equals("Choice")) {
  2221.                            this.str.append(this.stoken[0] + this.user.u.strip(this.targetGridSettings.columns.getItem(var171)) + this.stoken[1]);
  2222.                         }
  2223.                      }
  2224.                   }
  2225.                   break;
  2226.                case 53:
  2227.                   for(int var140 = 0; var140 < this.indexes2.length; ++var140) {
  2228.                      String var170 = Integer.toString(var140);
  2229.                      if (this.indexes2[var140] >= 0) {
  2230.                         int var192 = this.indexes2[var140];
  2231.                         if (this.targetGridSettings.fieldType[var192].equals("JDPChoice")) {
  2232.                            if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2233.                               String var22 = this.user.u.strip(this.targetGridSettings.columns.getItem(var192));
  2234.                               this.str.append(this.stoken[0] + var170 + this.stoken[1] + var22 + this.stoken[2] + var170 + this.stoken[3] + var22 + this.stoken[4]);
  2235.                            } else {
  2236.                               this.str.append(this.stoken[0] + var170 + this.stoken[1] + var170 + this.stoken[2] + var170 + this.stoken[3] + var170 + this.stoken[4]);
  2237.                            }
  2238.                         } else if (this.targetGridSettings.fieldType[var192].equals("JDPDate")) {
  2239.                            if (!this.layoutName.equals("JDPLayout4") && !this.layoutName.equals("JDPLayout14") && !this.layoutName.equals("JDPLayout24")) {
  2240.                               this.str.append("\t\t\t\t\tif (iy == " + var170 + ") tableContents.currentText[iy][ix] = JDPDate.format(Long.valueOf(tempText).longValue());\r\n");
  2241.                            } else {
  2242.                               this.str.append(this.stoken[0] + "if (iy == " + var170 + ") tableContents.currentText[iy][ix+xOffset] = JDPDate.format(Long.valueOf(tempText).longValue());\r\n");
  2243.                            }
  2244.                         }
  2245.                      }
  2246.                   }
  2247.                   break;
  2248.                case 55:
  2249.                   this.str.append(this.stoken[0]);
  2250.                   if (this.targetList != null) {
  2251.                      this.str.append(Integer.toString(this.targetList.mainBranchIcon.getSelectedIndex()));
  2252.                      this.str.append("," + Integer.toString(this.targetList.mainIcon.getSelectedIndex()));
  2253.  
  2254.                      for(int var139 = 0; var139 < this.targetList.includeTree.countItems(); ++var139) {
  2255.                         this.str.append(",");
  2256.                         this.str.append(Integer.toString(this.targetList.iconList[var139]));
  2257.                      }
  2258.                   }
  2259.  
  2260.                   this.str.append(this.stoken[1]);
  2261.                   break;
  2262.                case 56:
  2263.                   this.str.append(this.stoken[0]);
  2264.                   if (this.targetList != null && this.user.u.isnumeric(this.targetList.treeMinWidth, this.user.mainmsg)) {
  2265.                      this.str.append(this.targetList.treeMinWidth.getText());
  2266.                   } else {
  2267.                      this.str.append("150");
  2268.                   }
  2269.  
  2270.                   this.str.append(this.stoken[1]);
  2271.                   break;
  2272.                case 57:
  2273.                   this.str.append(this.stoken[0]);
  2274.                   if (this.targetList != null) {
  2275.                      this.str.append("\"" + this.targetList.mainBranchText.getText() + "\"");
  2276.                   }
  2277.  
  2278.                   this.str.append(this.stoken[1]);
  2279.                   break;
  2280.                case 58:
  2281.                   this.str.append(this.stoken[0] + Integer.toString(this.targetScreen.centerTopPanel.length) + this.stoken[1]);
  2282.                   break;
  2283.                case 59:
  2284.                   for(int var70 = 0; var70 < this.targetScreen.centerTopPanel.length; ++var70) {
  2285.                      this.str.append(this.stoken[0] + Integer.toString(var70) + this.stoken[1]);
  2286.                   }
  2287.                   break;
  2288.                case 60:
  2289.                   this.str.append(this.stoken[0]);
  2290.                   if (this.targetScreen.titles != null && this.targetScreen.titles[0] != null) {
  2291.                      for(int var12 = 0; var12 < this.targetScreen.centerTopPanel.length; ++var12) {
  2292.                         if (var12 > 0) {
  2293.                            this.str.append(",");
  2294.                         }
  2295.  
  2296.                         this.str.append("\"" + this.targetScreen.titles[var12] + "\"");
  2297.                      }
  2298.                   }
  2299.  
  2300.                   this.str.append(this.stoken[1]);
  2301.                   break;
  2302.                case 61:
  2303.                   for(int var138 = 0; var138 < this.fields.length; ++var138) {
  2304.                      if (this.indexes[var138] < this.targetSettings.fieldType.length && (this.targetSettings.fieldType[this.indexes[var138]].equals("JDPChoice") || this.targetSettings.fieldType[this.indexes[var138]].equals("JDPComboBox")) && this.targetSettings.thisChoicePanel.valuesFrom[this.indexes[var138]].equals("Fields entered here")) {
  2305.                         int var169 = 0;
  2306.  
  2307.                         for(int var191 = 0; var191 < JDPChoiceLayout.maxChoices; ++var191) {
  2308.                            if (this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var138]][var191].trim().length() > 0 || var191 == 0) {
  2309.                               this.str.append("\t\t" + this.user.u.strip(this.fields[var138]) + ".addItem(\"");
  2310.                               this.str.append(this.targetSettings.thisChoicePanel.textChoiceValue[this.indexes[var138]][var191]);
  2311.                               if (this.targetSettings.fieldType[this.indexes[var138]].equals("JDPChoice")) {
  2312.                                  this.str.append("\",\"" + this.targetSettings.thisChoicePanel.actualChoiceValue[this.indexes[var138]][var191]);
  2313.                               }
  2314.  
  2315.                               this.str.append("\"); \r\n");
  2316.                               ++var169;
  2317.                            }
  2318.                         }
  2319.                      }
  2320.                   }
  2321.                   break;
  2322.                case 62:
  2323.                   if (!this.layoutName.equals("JDPLayout16") && !this.layoutName.equals("JDPLayout17") && !this.layoutName.equals("JDPLayout18")) {
  2324.                      for(int var137 = 0; var137 < this.fields.length; ++var137) {
  2325.                         if (this.indexes[var137] < this.targetSettings.fieldType.length) {
  2326.                            if (this.targetSettings.fieldType[this.indexes[var137]].equals("JDPChoice") && this.targetSettings.thisChoicePanel.valuesFrom[this.indexes[var137]].equals("Database table/columns")) {
  2327.                               this.str.append(this.stoken[0] + this.user.u.strip(this.fields[var137]) + this.stoken[1]);
  2328.                               this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[this.indexes[var137]] + this.stoken[2]);
  2329.                               this.str.append(this.targetSettings.thisChoicePanel.columnActualList[this.indexes[var137]] + this.stoken[3]);
  2330.                               this.str.append(this.targetSettings.thisChoicePanel.tableList[this.indexes[var137]] + this.stoken[4]);
  2331.                               this.str.append(this.targetSettings.thisChoicePanel.tableWhereClause[this.indexes[var137]] + this.stoken[5]);
  2332.                            }
  2333.  
  2334.                            if (this.targetSettings.fieldType[this.indexes[var137]].equals("JDPComboBox") && this.targetSettings.thisChoicePanel.valuesFrom[this.indexes[var137]].equals("Database table/columns")) {
  2335.                               this.str.append(this.stoken[0] + this.user.u.strip(this.fields[var137]) + this.stoken[1]);
  2336.                               this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[this.indexes[var137]] + this.stoken[2]);
  2337.                               this.str.append(this.targetSettings.thisChoicePanel.textChoiceSql[this.indexes[var137]] + this.stoken[3]);
  2338.                               this.str.append(this.targetSettings.thisChoicePanel.tableList[this.indexes[var137]] + this.stoken[4]);
  2339.                               this.str.append(this.targetSettings.thisChoicePanel.tableWhereClause[this.indexes[var137]] + this.stoken[5]);
  2340.                            }
  2341.                         }
  2342.                      }
  2343.                   } else if (this.targetChoice.valuesfrom.getSelectedItem().equals("Database table/columns")) {
  2344.                      if (!this.layoutName.equals("JDPLayout18")) {
  2345.                         this.str.append(this.stoken[0] + this.targetChoice.textchoicesql.getText() + this.stoken[1]);
  2346.                         this.str.append(this.targetChoice.columnactuallist.getSelectedItem() + this.stoken[2]);
  2347.                         this.str.append(this.targetChoice.tablelist.getSelectedItem() + this.stoken[3]);
  2348.                         this.str.append(this.targetChoice.tablewhereclause.getText() + this.stoken[4]);
  2349.                      } else {
  2350.                         this.str.append(this.stoken[0] + this.targetChoice.textchoicesql.getText() + this.stoken[1]);
  2351.                         this.str.append(this.targetChoice.tablelist.getSelectedItem() + this.stoken[2]);
  2352.                         this.str.append(this.targetChoice.tablewhereclause.getText() + this.stoken[3]);
  2353.                      }
  2354.                   }
  2355.                   break;
  2356.                case 63:
  2357.                   for(int var136 = 0; var136 < this.targetSettings.columns.countItems(); ++var136) {
  2358.                      int var168 = this.targetColumns.columnDatatype[this.targetSettings.columnIndexes[var136]];
  2359.                      boolean var190 = this.targetColumns.columnIsIdentity[this.targetSettings.columnIndexes[var136]];
  2360.                      if ((this.targetSettings.fieldType[var136].equals("TextField") || this.targetSettings.fieldType[var136].equals("TextArea") || this.targetSettings.fieldType[var136].equals("JDPSpinner")) && !var190 && this.targetSettings.actualCompName[var136] != null && !this.targetSettings.actualCompName[var136].equals("")) {
  2361.                         if (JDPUtils.isOdbcChar(var168) && this.targetSettings.fieldRequired[var136].equals("Yes")) {
  2362.                            this.str.append(this.stoken[0] + "ischaracter" + this.stoken[1] + this.targetSettings.actualCompName[var136] + this.stoken[2] + this.targetSettings.fieldErrorMsg[var136] + this.stoken[3]);
  2363.                         }
  2364.  
  2365.                         if (JDPUtils.isOdbcInt(var168) && this.targetSettings.fieldRequired[var136].equals("Yes")) {
  2366.                            this.str.append(this.stoken[0] + "isnumeric" + this.stoken[1] + this.targetSettings.actualCompName[var136] + this.stoken[2] + this.targetSettings.fieldErrorMsg[var136] + this.stoken[3]);
  2367.                         }
  2368.  
  2369.                         if (JDPUtils.isOdbcFloat(var168) && this.targetSettings.fieldRequired[var136].equals("Yes")) {
  2370.                            this.str.append(this.stoken[0] + "isfloat" + this.stoken[1] + this.targetSettings.actualCompName[var136] + this.stoken[2] + this.targetSettings.fieldErrorMsg[var136] + this.stoken[3]);
  2371.                         }
  2372.  
  2373.                         if (JDPUtils.isOdbcDate(var168) && this.targetSettings.fieldRequired[var136].equals("Yes")) {
  2374.                            this.str.append(this.stoken[0] + "isvalidDate" + this.stoken[1] + this.targetSettings.actualCompName[var136] + this.stoken[2] + this.targetSettings.fieldErrorMsg[var136] + this.stoken[3]);
  2375.                         }
  2376.                      }
  2377.                   }
  2378.                   break;
  2379.                case 64:
  2380.                   if (this.targetChoice.valuesfrom.getSelectedItem().equals("Fields entered here")) {
  2381.                      this.str.append(this.stoken[0]);
  2382.  
  2383.                      for(int var135 = 0; var135 < JDPChoiceLayout.maxChoices; ++var135) {
  2384.                         if (var135 > 0) {
  2385.                            this.str.append(",");
  2386.                         }
  2387.  
  2388.                         this.str.append("\"" + this.targetChoice.textchoicevalue[var135].getText() + "\"");
  2389.                      }
  2390.  
  2391.                      this.str.append(this.stoken[1]);
  2392.                   }
  2393.                   break;
  2394.                case 65:
  2395.                   if (this.targetChoice.valuesfrom.getSelectedItem().equals("Fields entered here")) {
  2396.                      this.str.append(this.stoken[0]);
  2397.  
  2398.                      for(int var134 = 0; var134 < JDPChoiceLayout.maxChoices; ++var134) {
  2399.                         if (var134 > 0) {
  2400.                            this.str.append(",");
  2401.                         }
  2402.  
  2403.                         this.str.append("\"" + this.targetChoice.actualchoicevalue[var134].getText() + "\"");
  2404.                      }
  2405.  
  2406.                      this.str.append(this.stoken[1]);
  2407.                   }
  2408.                   break;
  2409.                case 66:
  2410.                   if (this.targetChoice.valuesfrom.getSelectedItem().equals("Fields entered here")) {
  2411.                      this.str.append(this.stoken[0]);
  2412.                   }
  2413.                   break;
  2414.                case 67:
  2415.                case 68:
  2416.                   for(int var133 = 0; var133 < this.fields.length; ++var133) {
  2417.                      if (this.indexes[var133] < this.targetSettings.fieldType.length) {
  2418.                         int var167 = this.targetColumns.columnDatatype[this.targetSettings.columnIndexes[this.indexes[var133]]];
  2419.                         if ((this.targetSettings.fieldType[this.indexes[var133]].equals("TextField") || this.targetSettings.fieldType[this.indexes[var133]].equals("TextArea") || this.targetSettings.fieldType[this.indexes[var133]].equals("JDPComboBox") || this.targetSettings.fieldType[this.indexes[var133]].equals("JDPSpinner") || this.targetSettings.fieldType[this.indexes[var133]].equals("JDPDate")) && !this.targetSettings.fieldEditMask[this.indexes[var133]].equals("")) {
  2420.                            if (this.lineIndex == 67) {
  2421.                               if (JDPUtils.isOdbcNum(var167)) {
  2422.                                  this.str.append(this.stoken[0] + "Float" + this.stoken[1]);
  2423.                               } else {
  2424.                                  this.str.append(this.stoken[0] + "String" + this.stoken[1]);
  2425.                               }
  2426.  
  2427.                               this.str.append(this.fields[var133] + this.stoken[2] + this.targetSettings.fieldEditMask[this.indexes[var133]] + this.stoken[3]);
  2428.                            } else if (this.lineIndex == 68) {
  2429.                               if (JDPUtils.isOdbcNum(var167)) {
  2430.                                  this.str.append(this.stoken[0] + this.fields[var133] + this.stoken[1] + "Float" + this.stoken[2]);
  2431.                               } else {
  2432.                                  this.str.append(this.stoken[0] + this.fields[var133] + this.stoken[1] + "String" + this.stoken[2]);
  2433.                               }
  2434.  
  2435.                               this.str.append(this.fields[var133] + this.stoken[3] + this.targetSettings.fieldEditMask[this.indexes[var133]] + this.stoken[4]);
  2436.                            }
  2437.                         }
  2438.                      }
  2439.                   }
  2440.                   break;
  2441.                case 69:
  2442.                   for(int var132 = 0; var132 < this.updatefields.length; ++var132) {
  2443.                      int var166 = this.gridDataType[this.updateindexes[var132]];
  2444.                      if (this.indexes2[var132] < this.targetGridSettings.fieldType.length && this.targetGridSettings.fieldType[this.indexes2[var132]].equals("TextField") && !this.targetGridSettings.fieldEditMask[this.indexes2[var132]].equals("") && this.lineIndex == 69) {
  2445.                         this.str.append(this.stoken[0] + Integer.toString(var132) + this.stoken[1]);
  2446.                         if (JDPUtils.isOdbcNum(var166)) {
  2447.                            this.str.append("Float" + this.stoken[2]);
  2448.                         } else {
  2449.                            this.str.append("String" + this.stoken[2]);
  2450.                         }
  2451.  
  2452.                         this.str.append(this.targetGridSettings.fieldEditMask[this.indexes2[var132]] + this.stoken[3]);
  2453.                      }
  2454.                   }
  2455.                   break;
  2456.                case 70:
  2457.                   for(int var131 = 0; var131 < this.indexes2.length; ++var131) {
  2458.                      if (this.indexes2[var131] >= 0) {
  2459.                         int var165 = this.indexes2[var131];
  2460.                         if (this.targetGridSettings.fieldType[var165].equals("JDPDate")) {
  2461.                            this.str.append(this.stoken[0] + Integer.toString(var131) + this.stoken[1]);
  2462.                         }
  2463.                      }
  2464.                   }
  2465.                   break;
  2466.                case 71:
  2467.                   for(int var19 = 0; var19 < this.indexes2.length; ++var19) {
  2468.                      String var20 = Integer.toString(var19);
  2469.                      if (this.indexes2[var19] >= 0) {
  2470.                         int var21 = this.indexes2[var19];
  2471.                         if (this.targetGridSettings.fieldType[var21].equals("Checkbox")) {
  2472.                            this.str.append(this.stoken[0] + var20 + this.stoken[1] + this.targetGridSettings.checkedValue[var21] + this.stoken[2]);
  2473.                         }
  2474.                      }
  2475.                   }
  2476.                   break;
  2477.                default:
  2478.                   this.str.append(var1);
  2479.             }
  2480.  
  2481.             return this.str.toString();
  2482.          }
  2483.       }
  2484.    }
  2485.  
  2486.    void retrieveVectors() {
  2487.       for(int var1 = 0; var1 < this.user.gParm.size(); ++var1) {
  2488.          if (this.user.gParm.elementAt(var1) instanceof Vector) {
  2489.             Vector var2 = (Vector)this.user.gParm.elementAt(var1);
  2490.             if (((String)var2.elementAt(0)).equals("SelectDSN")) {
  2491.                this.targetDSN = (JDPSelectDSN)var2.elementAt(3);
  2492.                this.dataSource = this.targetDSN.datasource.getText();
  2493.                this.connectString = this.targetDSN.connectstring.getText();
  2494.             }
  2495.  
  2496.             if (((String)var2.elementAt(0)).equals("SelectTable")) {
  2497.                this.targetTable = (JDPSelectTable)var2.elementAt(1);
  2498.             }
  2499.  
  2500.             if (((String)var2.elementAt(0)).equals("SelectColumns")) {
  2501.                this.targetColumns = (JDPSelectColumns)var2.elementAt(1);
  2502.             }
  2503.  
  2504.             if (((String)var2.elementAt(0)).equals("SearchLayout")) {
  2505.                this.targetSearch = (JDPSearchLayout)var2.elementAt(1);
  2506.                if (this.targetSearch.columns.getSelectedItems().length == 0) {
  2507.                   this.targetSearch = null;
  2508.                }
  2509.             }
  2510.  
  2511.             if (((String)var2.elementAt(0)).equals("ListLayout")) {
  2512.                this.targetList = (JDPListLayout)var2.elementAt(1);
  2513.                if (this.targetList.columns.getSelectedItems().length == 0) {
  2514.                   this.targetList = null;
  2515.                }
  2516.             }
  2517.  
  2518.             if (((String)var2.elementAt(0)).equals("ScreenLayout")) {
  2519.                this.targetScreen = (JDPScreenLayout)var2.elementAt(1);
  2520.             }
  2521.  
  2522.             if (((String)var2.elementAt(0)).equals("ScreenSettings")) {
  2523.                this.targetSettings = (JDPScreenSettings)var2.elementAt(1);
  2524.             }
  2525.  
  2526.             if (((String)var2.elementAt(0)).equals("GridSettings")) {
  2527.                this.targetGridSettings = (JDPGridSettings)var2.elementAt(1);
  2528.             }
  2529.  
  2530.             if (((String)var2.elementAt(0)).equals("SelectReportDef")) {
  2531.                this.targetReportDef = (JDPSelectReportDef)var2.elementAt(1);
  2532.             }
  2533.  
  2534.             if (((String)var2.elementAt(0)).equals("SelectChartDef")) {
  2535.                this.targetChartDef = (JDPSelectChartDef)var2.elementAt(1);
  2536.             }
  2537.  
  2538.             if (((String)var2.elementAt(0)).equals("ChartLayout")) {
  2539.                this.targetChart = (JDPChartLayout)var2.elementAt(1);
  2540.             }
  2541.  
  2542.             if (((String)var2.elementAt(0)).equals("GridLayout")) {
  2543.                this.targetGrid = (JDPGridLayout)var2.elementAt(1);
  2544.             }
  2545.  
  2546.             if (((String)var2.elementAt(0)).equals("ChoiceLayout")) {
  2547.                this.targetChoice = (JDPChoiceLayout)var2.elementAt(1);
  2548.             }
  2549.          }
  2550.       }
  2551.  
  2552.       if (this.targetDSN != null && this.targetDSN.usernameChoice != null && this.targetDSN.usernameChoice.getSelectedIndex() == 1) {
  2553.          this.connectString = this.user.u.replace(this.connectString, "UID=" + this.targetDSN.userid.getText(), "UID=\" + user.cust.username + \"");
  2554.          this.connectString = this.user.u.replace(this.connectString, "PWD=" + this.targetDSN.password.getText(), "PWD=\" + user.cust.password + \"");
  2555.       }
  2556.  
  2557.    }
  2558.  
  2559.    String parseLine100(String var1, String[] var2, int var3) {
  2560.       boolean var4 = false;
  2561.       switch (var3) {
  2562.          case 100:
  2563.             this.str.append(var2[0] + "\"SELECT ");
  2564.             String var41 = this.targetGridSettings.lockingColumn.getSelectedItem();
  2565.             if (var41 != null && !var41.equals("")) {
  2566.                this.str.append(var41);
  2567.                if (this.user.u.sqlRequiresChange(this.targetDSN.jaggSQL, 0)) {
  2568.                   this.str.append(" l" + var41);
  2569.                }
  2570.  
  2571.                this.str.append(",\" +\r\n\t\t\t\t\t\"");
  2572.             }
  2573.  
  2574.             var4 = true;
  2575.             if (!this.layoutName.equals("JDPLayout4") && !this.layoutName.equals("JDPLayout14") && !this.layoutName.equals("JDPLayout24")) {
  2576.                for(int var9 = 0; var9 < this.keysSQLUpdate.length; ++var9) {
  2577.                   if (!var4) {
  2578.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2579.                   }
  2580.  
  2581.                   this.str.append(this.keysSQLUpdate[var9]);
  2582.                   var4 = false;
  2583.                }
  2584.             }
  2585.  
  2586.             for(int var42 = 0; var42 < this.fieldSql.length; ++var42) {
  2587.                if (!var4) {
  2588.                   this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2589.                }
  2590.  
  2591.                this.str.append(this.fieldSql[var42]);
  2592.                var4 = false;
  2593.             }
  2594.  
  2595.             this.str.append(" FROM ");
  2596.             String var43 = null;
  2597.             String var10 = "";
  2598.  
  2599.             for(int var11 = 0; var11 < this.targetTable.joinConditions.countItems(); ++var11) {
  2600.                if (this.targetTable.joinConditions.getItem(var11).indexOf("*=") > 0) {
  2601.                   var43 = "left";
  2602.                   var10 = this.targetTable.joinConditions.getItem(var11);
  2603.                }
  2604.  
  2605.                if (this.targetTable.joinConditions.getItem(var11).indexOf("=*") > 0) {
  2606.                   var43 = "right";
  2607.                   var10 = this.targetTable.joinConditions.getItem(var11);
  2608.                }
  2609.             }
  2610.  
  2611.             String var44 = "";
  2612.             String var12 = "";
  2613.             var4 = true;
  2614.             int[] var5 = this.targetTable.stables.getSelectedIndexes();
  2615.             var44 = this.targetTable.tables.getSelectedItem();
  2616.             if (var5.length > 0) {
  2617.                var44 = var44 + " a";
  2618.             }
  2619.  
  2620.             if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  2621.                var44 = var44 + " (NOLOCK)";
  2622.             }
  2623.  
  2624.             for(int var72 = 0; var72 < var5.length; ++var72) {
  2625.                if (var43 == null) {
  2626.                   var12 = var12 + ",";
  2627.                }
  2628.  
  2629.                var12 = var12 + this.targetTable.stables.getItem(var5[var72]);
  2630.                var12 = var12 + " " + this.targetTable.stableAlias[var5[var72]];
  2631.                if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  2632.                   var12 = var12 + " (NOLOCK)";
  2633.                }
  2634.             }
  2635.  
  2636.             if (var43 == null) {
  2637.                this.str.append(var44);
  2638.                this.str.append(var12);
  2639.             } else if (var43.equals("left")) {
  2640.                this.str.append("{oj ");
  2641.                this.str.append(var44);
  2642.                this.str.append(" LEFT OUTER JOIN ");
  2643.                this.str.append(var12);
  2644.                this.str.append(" ON ");
  2645.                this.str.append(this.user.u.replace(var10, "*", ""));
  2646.                this.str.append("}");
  2647.             } else if (var43.equals("right")) {
  2648.                this.str.append("{oj ");
  2649.                this.str.append(var12);
  2650.                this.str.append(" LEFT OUTER JOIN ");
  2651.                this.str.append(var44);
  2652.                this.str.append(" ON ");
  2653.                this.str.append(this.user.u.replace(var10, "*", ""));
  2654.                this.str.append("}");
  2655.             }
  2656.  
  2657.             this.str.append(" WHERE ");
  2658.             if (this.targetGridSettings != null && this.targetGridSettings.pfromwhereclause.getText().length() != 0) {
  2659.                this.str.append(this.targetGridSettings.pfromwhereclause.getText() + " ");
  2660.             } else {
  2661.                this.str.append("(1=1) ");
  2662.             }
  2663.  
  2664.             if (this.targetTable.joinConditions.countItems() > 0) {
  2665.                for(int var73 = 0; var73 < this.targetTable.joinConditions.countItems(); ++var73) {
  2666.                   if (!this.targetTable.joinConditions.getItem(var73).equals(var10)) {
  2667.                      this.str.append(" AND " + this.targetTable.joinConditions.getItem(var73));
  2668.                   }
  2669.                }
  2670.             }
  2671.  
  2672.             if (this.targetSearch != null) {
  2673.                if (this.layoutName.equals("JDPLayout2")) {
  2674.                   this.str.append(" AND \" + jdpWhereClause.whereClause");
  2675.                } else if (this.layoutName.equals("JDPLayout4")) {
  2676.                   this.str.append(" AND \" + jdpWhereClause.whereClause");
  2677.                } else {
  2678.                   this.str.append(" \"");
  2679.                }
  2680.             } else {
  2681.                this.str.append(" \"");
  2682.             }
  2683.  
  2684.             if (this.layoutName.equals("JDPLayout3")) {
  2685.                var4 = true;
  2686.                if (this.targetList != null) {
  2687.                   for(int var74 = 0; var74 < this.keys.length; ++var74) {
  2688.                      if (this.targetList.uniqueTree.isSelected(var74)) {
  2689.                         this.str.append(" +\r\n\t\t\t\t\t\t\t\" AND ");
  2690.                         var4 = false;
  2691.                         this.str.append(this.cvtKey(this.keysSQL[var74], this.keyDataType[var74]) + "=");
  2692.                         String var95 = this.getQuote(this.keyDataType[var74]);
  2693.                         this.str.append(var95);
  2694.                         if (JDPUtils.isOdbcBinary(this.keyDataType[var74])) {
  2695.                            this.str.append("0x");
  2696.                         }
  2697.  
  2698.                         this.str.append("\" + searchResults.recordKey" + Integer.toString(var74) + "[itemIndex]");
  2699.                         this.str.append("+ \"");
  2700.                         this.str.append(var95);
  2701.                         this.str.append("\" ");
  2702.                      }
  2703.                   }
  2704.                }
  2705.             }
  2706.  
  2707.             if (this.layoutName.equals("JDPLayout12") || this.layoutName.equals("JDPLayout14") || this.layoutName.equals("JDPLayout22") || this.layoutName.equals("JDPLayout23") || this.layoutName.equals("JDPLayout24")) {
  2708.                for(int var75 = 0; var75 < this.keys.length; ++var75) {
  2709.                   this.str.append(";\r\n\t\tif (keys.length > " + Integer.toString(var75) + " && keys[" + Integer.toString(var75) + "] != null) SQL += \" AND " + this.cvtKey(this.keysSQL[var75], this.keyDataType[var75]) + "=");
  2710.                   String var96 = this.getQuote(this.keyDataType[var75]);
  2711.                   this.str.append(var96);
  2712.                   if (JDPUtils.isOdbcBinary(this.keyDataType[var75])) {
  2713.                      this.str.append("0x");
  2714.                   }
  2715.  
  2716.                   this.str.append("\" + keys[" + Integer.toString(var75) + "]");
  2717.                   this.str.append("+ \"");
  2718.                   this.str.append(var96);
  2719.                   this.str.append("\" ");
  2720.                }
  2721.             }
  2722.  
  2723.             if (this.layoutName.equals("JDPLayout4") || this.layoutName.equals("JDPLayout14") || this.layoutName.equals("JDPLayout24")) {
  2724.                if (this.layoutName.equals("JDPLayout14") || this.layoutName.equals("JDPLayout24")) {
  2725.                   this.str.append("; \r\n\t\tif (whereClause != null) {\n\t\t\tSQL += whereClause;\n\t\t}");
  2726.                }
  2727.  
  2728.                int var76 = this.targetReportDef.groupBy.countItems();
  2729.  
  2730.                for(int var97 = 0; var97 < var76; ++var97) {
  2731.                   if (var97 == 0) {
  2732.                      String var104 = this.str.toString().toUpperCase();
  2733.                      if (var104.indexOf("SUM(") <= 0 && var104.indexOf("AVG(") <= 0 && var104.indexOf("MIN(") <= 0 && var104.indexOf("MAX(") <= 0) {
  2734.                         this.str.append("; \r\n\t\tSQL+=\" ORDER BY ");
  2735.                      } else {
  2736.                         this.str.append("; \r\n\t\tSQL+=\" GROUP BY ");
  2737.                      }
  2738.                   }
  2739.  
  2740.                   if (var97 > 0) {
  2741.                      this.str.append(",");
  2742.                   }
  2743.  
  2744.                   this.str.append(this.targetReportDef.groupBy.getItem(var97));
  2745.                }
  2746.  
  2747.                this.str.append("\"");
  2748.             }
  2749.  
  2750.             this.str.append(var2[1]);
  2751.             break;
  2752.          case 101:
  2753.             for(int var71 = 0; var71 < this.indexes2.length; ++var71) {
  2754.                if (this.indexes2[var71] >= 0) {
  2755.                   this.str.append(var2[0] + Integer.toString(var71) + var2[1] + this.targetGridSettings.fieldLText[this.indexes2[var71]] + var2[2]);
  2756.                }
  2757.             }
  2758.             break;
  2759.          case 102:
  2760.             for(int var70 = 0; var70 < this.indexes2.length; ++var70) {
  2761.                if (this.indexes2[var70] >= 0 && this.targetGridSettings.fieldLStyle[this.indexes2[var70]] == 0) {
  2762.                   this.str.append(var2[0] + Integer.toString(var70) + var2[1] + "Font.PLAIN" + var2[2]);
  2763.                }
  2764.             }
  2765.             break;
  2766.          case 103:
  2767.             for(int var69 = 0; var69 < this.indexes2.length; ++var69) {
  2768.                if (this.indexes2[var69] >= 0 && this.targetGridSettings.fieldStyle[this.indexes2[var69]] == 1) {
  2769.                   this.str.append(var2[0] + Integer.toString(var69) + var2[1] + "Font.BOLD" + var2[2]);
  2770.                }
  2771.             }
  2772.             break;
  2773.          case 104:
  2774.             for(int var68 = 0; var68 < this.indexes2.length; ++var68) {
  2775.                if (this.indexes2[var68] >= 0 && this.targetGridSettings.fieldLabelColor[this.indexes2[var68]] != Color.black) {
  2776.                   this.str.append(var2[0] + Integer.toString(var68) + var2[1] + JDPUtils._cvtbcolor(this.targetGridSettings.fieldLabelColor[this.indexes2[var68]]) + var2[2]);
  2777.                }
  2778.             }
  2779.             break;
  2780.          case 105:
  2781.             for(int var67 = 0; var67 < this.indexes2.length; ++var67) {
  2782.                if (this.indexes2[var67] >= 0 && this.targetGridSettings.fieldTextColor[this.indexes2[var67]] != Color.black) {
  2783.                   this.str.append(var2[0] + Integer.toString(var67) + var2[1] + JDPUtils._cvtbcolor(this.targetGridSettings.fieldTextColor[this.indexes2[var67]]) + var2[2]);
  2784.                }
  2785.             }
  2786.             break;
  2787.          case 106:
  2788.             for(int var66 = 0; var66 < this.indexes2.length; ++var66) {
  2789.                if (this.indexes2[var66] >= 0 && this.targetGridSettings.fieldBackColor[this.indexes2[var66]] != Color.white) {
  2790.                   this.str.append(var2[0] + Integer.toString(var66) + var2[1] + JDPUtils._cvtbcolor(this.targetGridSettings.fieldBackColor[this.indexes2[var66]]) + var2[2]);
  2791.                }
  2792.             }
  2793.             break;
  2794.          case 107:
  2795.             for(int var65 = 0; var65 < this.indexes2.length; ++var65) {
  2796.                if (this.indexes2[var65] >= 0 && !this.targetGridSettings.fieldEditable[this.indexes2[var65]] && (var2[0].indexOf("Disabled") < 0 || this.targetGridSettings.fieldType[this.indexes2[var65]].equals("JDPDate"))) {
  2797.                   this.str.append(var2[0] + Integer.toString(var65) + var2[1] + "true" + var2[2]);
  2798.                }
  2799.             }
  2800.             break;
  2801.          case 108:
  2802.             for(int var64 = 0; var64 < this.indexes2.length; ++var64) {
  2803.                if (this.indexes2[var64] >= 0) {
  2804.                   this.str.append(var2[0] + Integer.toString(var64) + var2[1] + Integer.toString(this.targetGrid.tableContents.columnWidth[this.targetGrid.tableContents.columnOrder[var64]]) + var2[2]);
  2805.                }
  2806.             }
  2807.             break;
  2808.          case 109:
  2809.             for(int var63 = 0; var63 < this.indexes2.length; ++var63) {
  2810.                if (this.indexes2[var63] >= 0 && this.targetGridSettings.fieldAlignment[this.indexes2[var63]].equals("Right")) {
  2811.                   this.str.append(var2[0] + Integer.toString(var63) + var2[1] + "true" + var2[2]);
  2812.                }
  2813.             }
  2814.             break;
  2815.          case 110:
  2816.             for(int var62 = 0; var62 < this.indexes2.length; ++var62) {
  2817.                if (this.indexes2[var62] >= 0) {
  2818.                   if (this.targetGridSettings.fieldType[this.indexes2[var62]].equals("Checkbox")) {
  2819.                      this.str.append(var2[0] + Integer.toString(var62) + var2[1] + "CHECKBOX" + var2[2]);
  2820.                   }
  2821.  
  2822.                   if (this.targetGridSettings.fieldType[this.indexes2[var62]].equals("JDPSpinner")) {
  2823.                      this.str.append(var2[0] + Integer.toString(var62) + var2[1] + "SPINNER" + var2[2]);
  2824.                   }
  2825.                }
  2826.             }
  2827.             break;
  2828.          case 119:
  2829.             this.str.append(var2[0] + Integer.toString(this.fieldSql.length) + var2[1]);
  2830.             break;
  2831.          case 120:
  2832.             this.str.append(var2[0] + Integer.toString(this.keysUpdate.length) + var2[1]);
  2833.             break;
  2834.          case 121:
  2835.             var4 = true;
  2836.             this.str.append(var2[0] + "\"INSERT INTO " + this.targetColumns.tableName[0] + " (");
  2837.  
  2838.             for(int var56 = 0; var56 < this.keys.length; ++var56) {
  2839.                boolean var90 = false;
  2840.  
  2841.                for(int var33 = 0; var33 < this.updatefields.length; ++var33) {
  2842.                   if (this.keys[var56].equals(this.updatefields[var33]) || this.keyIsIdentity[var56]) {
  2843.                      var90 = true;
  2844.                      break;
  2845.                   }
  2846.                }
  2847.  
  2848.                if (!var90) {
  2849.                   if (!var4) {
  2850.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2851.                   }
  2852.  
  2853.                   this.str.append(this.keys[var56]);
  2854.                   var4 = false;
  2855.                }
  2856.             }
  2857.  
  2858.             for(int var57 = 0; var57 < this.updatefields.length; ++var57) {
  2859.                if (!this.gridIsIdentity[this.updateindexes[var57]] && this.targetGridSettings.includeInUpdateSql[this.indexes2[var57]].equals("Yes")) {
  2860.                   if (!var4) {
  2861.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2862.                   }
  2863.  
  2864.                   this.str.append(this.updatefields[var57]);
  2865.                   var4 = false;
  2866.                }
  2867.             }
  2868.  
  2869.             for(int var58 = 0; var58 < this.insertfields.length; ++var58) {
  2870.                boolean var91 = false;
  2871.  
  2872.                for(int var34 = 0; var34 < this.updatefields.length; ++var34) {
  2873.                   if (this.insertfields[var58].equals(this.updatefields[var34])) {
  2874.                      var91 = true;
  2875.                      break;
  2876.                   }
  2877.                }
  2878.  
  2879.                for(int var35 = 0; var35 < this.keys.length; ++var35) {
  2880.                   if (this.insertfields[var58].equals(this.keys[var35])) {
  2881.                      var91 = true;
  2882.                      break;
  2883.                   }
  2884.                }
  2885.  
  2886.                if (!var91 && !this.targetColumns.columnIsIdentity[this.iindexes[var58]] && this.targetGridSettings.includeInUpdateSql[var58].equals("Yes")) {
  2887.                   if (!var4) {
  2888.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2889.                   }
  2890.  
  2891.                   this.str.append(this.insertfields[var58]);
  2892.                   var4 = false;
  2893.                }
  2894.             }
  2895.  
  2896.             var4 = true;
  2897.             this.str.append(") VALUES(");
  2898.  
  2899.             for(int var59 = 0; var59 < this.keys.length; ++var59) {
  2900.                boolean var92 = false;
  2901.  
  2902.                for(int var36 = 0; var36 < this.updatefields.length; ++var36) {
  2903.                   if (this.keys[var59].equals(this.updatefields[var36]) || this.keyIsIdentity[var59]) {
  2904.                      var92 = true;
  2905.                      break;
  2906.                   }
  2907.                }
  2908.  
  2909.                if (!var92) {
  2910.                   if (!var4) {
  2911.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2912.                   }
  2913.  
  2914.                   var4 = false;
  2915.                   boolean var30 = false;
  2916.                   if (JDPUtils.isOdbcChar(this.keyDataType[var59])) {
  2917.                      var30 = true;
  2918.                   }
  2919.  
  2920.                   String var101 = "";
  2921.                   if (JDPUtils.isOdbcDate(this.keyDataType[var59])) {
  2922.                      String[] var106 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  2923.                      this.str.append(var106[0]);
  2924.                      var101 = var106[1];
  2925.                   } else if (JDPUtils.isOdbcBinary(this.keyDataType[var59])) {
  2926.                      this.str.append("0x0");
  2927.                   } else if (var30) {
  2928.                      this.str.append("'");
  2929.                   }
  2930.  
  2931.                   if (this.layoutName.equals("JDPLayout2")) {
  2932.                      this.str.append("\" + rowKey[tableRow][" + Integer.toString(var59) + "] + ");
  2933.                   }
  2934.  
  2935.                   if (this.layoutName.equals("JDPLayout12") || this.layoutName.equals("JDPLayout22") || this.layoutName.equals("JDPLayout23")) {
  2936.                      this.str.append("\" + tableContents.rowKey[tableRow][" + Integer.toString(var59) + "] + ");
  2937.                   }
  2938.  
  2939.                   if (this.layoutName.equals("JDPLayout3")) {
  2940.                      if (this.keyType != null && this.keyType.length > var59 && this.keyType[var59] != null && this.keyType[var59].equals("JDPChoice")) {
  2941.                         this.str.append("\" + " + this.user.u.strip(this.switchField(this.keysSQL[var59])) + ".getSelectedItem() + ");
  2942.                      } else {
  2943.                         this.str.append("\" + " + this.user.u.strip(this.switchField(this.keysSQL[var59])) + ".getText() + ");
  2944.                      }
  2945.                   }
  2946.  
  2947.                   if (!JDPUtils.isOdbcDate(this.keyDataType[var59])) {
  2948.                      this.str.append("\"");
  2949.                      if (!JDPUtils.isOdbcDate(this.keyDataType[var59]) && var30) {
  2950.                         this.str.append("'");
  2951.                      }
  2952.                   }
  2953.  
  2954.                   this.str.append(var101);
  2955.                }
  2956.             }
  2957.  
  2958.             for(int var60 = 0; var60 < this.updatefields.length; ++var60) {
  2959.                if (!this.gridIsIdentity[this.updateindexes[var60]] && this.targetGridSettings.includeInUpdateSql[this.indexes2[var60]].equals("Yes")) {
  2960.                   if (!var4) {
  2961.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  2962.                   }
  2963.  
  2964.                   var4 = false;
  2965.                   boolean var31 = false;
  2966.                   if (JDPUtils.isOdbcChar(this.gridDataType[this.updateindexes[var60]])) {
  2967.                      var31 = true;
  2968.                   }
  2969.  
  2970.                   String var93 = "";
  2971.                   if (JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var60]])) {
  2972.                      String[] var102 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  2973.                      this.str.append(var102[0]);
  2974.                      var93 = var102[1];
  2975.                   } else if (JDPUtils.isOdbcBinary(this.gridDataType[this.updateindexes[var60]])) {
  2976.                      this.str.append("0x0");
  2977.                   } else if (var31) {
  2978.                      this.str.append("'");
  2979.                   }
  2980.  
  2981.                   if (this.targetGridSettings.fieldType[this.indexes2[var60]].equals("JDPChoice")) {
  2982.                      if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  2983.                         this.str.append("\" + (String)value" + this.user.u.strip(this.targetGridSettings.columns.getItem(this.indexes2[var60])) + ".elementAt(user.u.listIndexOf(tableContents.pullDownList[" + Integer.toString(this.updateindexes[var60]) + "][0],tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow])) + ");
  2984.                      } else {
  2985.                         this.str.append("\" + (String)tableContents.pullDownValue[" + Integer.toString(this.updateindexes[var60]) + "][0].elementAt(user.u.listIndexOf(tableContents.pullDownList[" + Integer.toString(this.updateindexes[var60]) + "][0],tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow])) + ");
  2986.                      }
  2987.                   } else if (this.targetGridSettings.fieldType[this.indexes2[var60]].equals("Checkbox")) {
  2988.                      this.str.append("\" + ((tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow].equals(\"Y\"))?\"" + this.targetGridSettings.checkedValue[this.indexes2[var60]] + "\":\"" + this.targetGridSettings.uncheckedValue[this.indexes2[var60]] + "\") + ");
  2989.                   } else if (JDPUtils.isOdbcNum(this.gridDataType[this.updateindexes[var60]]) && !this.targetGridSettings.fieldEditMask[this.indexes2[var60]].equals("")) {
  2990.                      this.str.append("\" + JDPMaskEditMain.stripFloat(tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow]) + ");
  2991.                   } else if (JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var60]])) {
  2992.                      this.str.append("tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow]");
  2993.                   } else if (JDPUtils.isOdbcBinary(this.gridDataType[this.updateindexes[var60]])) {
  2994.                      this.str.append("\" + tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow] + ");
  2995.                   } else if (var31) {
  2996.                      this.str.append("\" + user.u.replace(tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow],\"'\",\"''\") + ");
  2997.                   } else {
  2998.                      this.str.append("\" + JDPUtils.tonum(tableContents.currentText[" + Integer.toString(this.updateindexes[var60]) + "][tableRow]) + ");
  2999.                   }
  3000.  
  3001.                   if (!JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var60]])) {
  3002.                      this.str.append("\"");
  3003.                      if (var31) {
  3004.                         this.str.append("'");
  3005.                      }
  3006.                   }
  3007.  
  3008.                   this.str.append(var93);
  3009.                }
  3010.             }
  3011.  
  3012.             for(int var61 = 0; var61 < this.insertfields.length; ++var61) {
  3013.                boolean var94 = false;
  3014.  
  3015.                for(int var37 = 0; var37 < this.updatefields.length; ++var37) {
  3016.                   if (this.insertfields[var61].equals(this.updatefields[var37])) {
  3017.                      var94 = true;
  3018.                      break;
  3019.                   }
  3020.                }
  3021.  
  3022.                for(int var38 = 0; var38 < this.keys.length; ++var38) {
  3023.                   if (this.insertfields[var61].equals(this.keys[var38])) {
  3024.                      var94 = true;
  3025.                      break;
  3026.                   }
  3027.                }
  3028.  
  3029.                if (!var94 && !this.targetColumns.columnIsIdentity[this.iindexes[var61]] && this.targetGridSettings.includeInUpdateSql[var61].equals("Yes")) {
  3030.                   if (!var4) {
  3031.                      this.str.append(", \" +\r\n\t\t\t\t\t\"");
  3032.                   }
  3033.  
  3034.                   var4 = false;
  3035.                   boolean var32 = false;
  3036.                   int var103 = this.targetColumns.columnDatatype[this.iindexes[var61]];
  3037.                   if (JDPUtils.isOdbcChar(var103)) {
  3038.                      var32 = true;
  3039.                   }
  3040.  
  3041.                   String var107 = "";
  3042.                   if (JDPUtils.isOdbcDate(var103)) {
  3043.                      String[] var108 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  3044.                      this.str.append(var108[0]);
  3045.                      var107 = var108[1];
  3046.                      this.str.append("\"" + this.targetGridSettings.fieldDefault[var61] + "\"");
  3047.                   } else if (JDPUtils.isOdbcBinary(var103)) {
  3048.                      this.str.append("0x0" + this.targetGridSettings.fieldDefault[var61]);
  3049.                   } else if (var32) {
  3050.                      this.str.append("'" + this.user.u.replace(this.targetGridSettings.fieldDefault[var61], "'", "''") + "'");
  3051.                   } else if (this.targetGridSettings.fieldDefault[var61].equals("")) {
  3052.                      this.str.append("0");
  3053.                   } else {
  3054.                      this.str.append(this.targetGridSettings.fieldDefault[var61]);
  3055.                   }
  3056.  
  3057.                   this.str.append(var107);
  3058.                }
  3059.             }
  3060.  
  3061.             this.str.append(")\"");
  3062.             this.str.append(var2[1]);
  3063.             break;
  3064.          case 122:
  3065.             this.str.append(var2[0] + "\"DELETE FROM " + this.targetColumns.tableName[0]);
  3066.             this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  3067.  
  3068.             for(int var55 = 0; var55 < this.keysUpdate.length; ++var55) {
  3069.                if (var55 > 0) {
  3070.                   this.str.append(" +\r\n\t\t\t\t\t\" AND ");
  3071.                }
  3072.  
  3073.                if (this.keysSQLUpdate[var55].indexOf(".") > 0) {
  3074.                   this.str.append(this.cvtKey(this.keysSQLUpdate[var55].substring(2), this.keyDataTypeUpdate[var55]) + "=");
  3075.                } else {
  3076.                   this.str.append(this.cvtKey(this.keysSQLUpdate[var55], this.keyDataTypeUpdate[var55]) + "=");
  3077.                }
  3078.  
  3079.                String var89 = this.getQuote(this.keyDataTypeUpdate[var55]);
  3080.                this.str.append(var89);
  3081.                if (JDPUtils.isOdbcBinary(this.keyDataTypeUpdate[var55])) {
  3082.                   this.str.append("0x");
  3083.                }
  3084.  
  3085.                if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  3086.                   this.str.append("\" + rowKey[tableRow][" + Integer.toString(var55) + "]");
  3087.                } else {
  3088.                   this.str.append("\" + tableContents.rowKey[tableRow][" + Integer.toString(var55) + "]");
  3089.                }
  3090.  
  3091.                this.str.append("+ \"");
  3092.                this.str.append(var89);
  3093.                this.str.append("\" ");
  3094.             }
  3095.  
  3096.             this.str.append(var2[1]);
  3097.             break;
  3098.          case 123:
  3099.             this.str.append(var2[0] + "\"UPDATE " + this.targetColumns.tableName[0] + " SET ");
  3100.             var4 = true;
  3101.  
  3102.             for(int var53 = 0; var53 < this.updatefields.length; ++var53) {
  3103.                if (!this.gridIsIdentity[this.updateindexes[var53]] && this.targetGridSettings.includeInUpdateSql[this.indexes2[var53]].equals("Yes")) {
  3104.                   boolean var87 = true;
  3105.  
  3106.                   for(int var7 = 0; var7 < this.keysUpdate.length; ++var7) {
  3107.                      if (this.keysUpdate[var7].equals(this.updatefields[var53])) {
  3108.                         var87 = false;
  3109.                         break;
  3110.                      }
  3111.                   }
  3112.  
  3113.                   if (var87) {
  3114.                      if (!var4) {
  3115.                         this.str.append(", \" +\r\n\t\t\t\t\t\"");
  3116.                      }
  3117.  
  3118.                      var4 = false;
  3119.                      this.str.append(this.updatefields[var53] + " = ");
  3120.                      boolean var6 = false;
  3121.                      if (JDPUtils.isOdbcChar(this.gridDataType[this.updateindexes[var53]])) {
  3122.                         var6 = true;
  3123.                      }
  3124.  
  3125.                      String var100 = "";
  3126.                      if (JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var53]])) {
  3127.                         String[] var105 = new String[]{"\" + JDPDate.formatForSql(", ", user.u.getDataSourceType(jaggSQL)) + \""};
  3128.                         this.str.append(var105[0]);
  3129.                         var100 = var105[1];
  3130.                      } else if (JDPUtils.isOdbcBinary(this.gridDataType[this.updateindexes[var53]])) {
  3131.                         this.str.append("0x0");
  3132.                      } else if (var6) {
  3133.                         this.str.append("'");
  3134.                      }
  3135.  
  3136.                      if (this.targetGridSettings.fieldType[this.indexes2[var53]].equals("JDPChoice")) {
  3137.                         if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  3138.                            this.str.append("\" + (String)value" + this.user.u.strip(this.targetGridSettings.columns.getItem(this.indexes2[var53])) + ".elementAt(user.u.listIndexOf(tableContents.pullDownList[" + Integer.toString(this.updateindexes[var53]) + "][0],tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow])) + ");
  3139.                         } else {
  3140.                            this.str.append("\" + (String)tableContents.pullDownValue[" + Integer.toString(this.updateindexes[var53]) + "][0].elementAt(user.u.listIndexOf(tableContents.pullDownList[" + Integer.toString(this.updateindexes[var53]) + "][0],tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow])) + ");
  3141.                         }
  3142.                      } else if (this.targetGridSettings.fieldType[this.indexes2[var53]].equals("Checkbox")) {
  3143.                         this.str.append("\" + ((tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow].equals(\"Y\"))?\"" + this.targetGridSettings.checkedValue[this.indexes2[var53]] + "\":\"" + this.targetGridSettings.uncheckedValue[this.indexes2[var53]] + "\") + ");
  3144.                      } else if (JDPUtils.isOdbcNum(this.gridDataType[this.updateindexes[var53]]) && !this.targetGridSettings.fieldEditMask[this.indexes2[var53]].equals("")) {
  3145.                         this.str.append("\" + JDPMaskEditMain.stripFloat(tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow]) + ");
  3146.                      } else if (JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var53]])) {
  3147.                         this.str.append("tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow]");
  3148.                      } else if (JDPUtils.isOdbcBinary(this.gridDataType[this.updateindexes[var53]])) {
  3149.                         this.str.append("\" + tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow] + ");
  3150.                      } else if (var6) {
  3151.                         this.str.append("\" + user.u.replace(tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow],\"'\",\"''\") + ");
  3152.                      } else {
  3153.                         this.str.append("\" + JDPUtils.tonum(tableContents.currentText[" + Integer.toString(this.updateindexes[var53]) + "][tableRow]) + ");
  3154.                      }
  3155.  
  3156.                      if (!JDPUtils.isOdbcDate(this.gridDataType[this.updateindexes[var53]])) {
  3157.                         this.str.append("\"");
  3158.                         if (var6) {
  3159.                            this.str.append("'");
  3160.                         }
  3161.                      }
  3162.  
  3163.                      this.str.append(var100);
  3164.                   }
  3165.                }
  3166.             }
  3167.  
  3168.             String var40 = this.targetGridSettings.lockingColumn.getSelectedItem();
  3169.             if (var40 != null && !var40.equals("")) {
  3170.                if (var40.indexOf(".") > 0) {
  3171.                   var40 = var40.substring(2);
  3172.                }
  3173.  
  3174.                this.str.append("\" +\r\n\t\t\t\t\t\"," + var40 + " = " + var40 + " + 1");
  3175.             }
  3176.  
  3177.             this.str.append("\" +\r\n\t\t\t\t\t\" WHERE ");
  3178.  
  3179.             for(int var54 = 0; var54 < this.keysUpdate.length; ++var54) {
  3180.                if (var54 > 0) {
  3181.                   this.str.append(" +\r\n\t\t\t\t\t\" AND ");
  3182.                }
  3183.  
  3184.                if (this.keysSQLUpdate[var54].indexOf(".") > 0) {
  3185.                   this.str.append(this.cvtKey(this.keysSQLUpdate[var54].substring(2), this.keyDataTypeUpdate[var54]) + "=");
  3186.                } else {
  3187.                   this.str.append(this.cvtKey(this.keysSQLUpdate[var54], this.keyDataTypeUpdate[var54]) + "=");
  3188.                }
  3189.  
  3190.                String var88 = this.getQuote(this.keyDataTypeUpdate[var54]);
  3191.                this.str.append(var88);
  3192.                if (JDPUtils.isOdbcBinary(this.keyDataTypeUpdate[var54])) {
  3193.                   this.str.append("0x");
  3194.                }
  3195.  
  3196.                if (!this.layoutName.equals("JDPLayout12") && !this.layoutName.equals("JDPLayout22") && !this.layoutName.equals("JDPLayout23")) {
  3197.                   this.str.append("\" + rowKey[tableRow][" + Integer.toString(var54) + "]");
  3198.                } else {
  3199.                   this.str.append("\" + tableContents.rowKey[tableRow][" + Integer.toString(var54) + "]");
  3200.                }
  3201.  
  3202.                this.str.append("+ \"");
  3203.                this.str.append(var88);
  3204.                this.str.append("\" ");
  3205.             }
  3206.  
  3207.             this.str.append(var2[1]);
  3208.             break;
  3209.          case 124:
  3210.             this.str.append(var2[0] + this.targetReportDef.reportTitle.getText() + var2[1]);
  3211.             break;
  3212.          case 125:
  3213.             this.str.append(var2[0] + Integer.toString(this.targetGrid.tableContents.columnOrder.length) + var2[1]);
  3214.             break;
  3215.          case 126:
  3216.             this.str.append(var2[0] + Integer.toString(this.targetReportDef.groupBy.countItems()) + var2[1]);
  3217.             break;
  3218.          case 127:
  3219.             for(int var52 = 0; var52 < this.targetReportDef.groupBy.countItems(); ++var52) {
  3220.                if (this.targetReportDef.subTotal[var52]) {
  3221.                   int var85 = 0;
  3222.  
  3223.                   for(var85 = 0; var85 < this.targetGrid.tableContents.columnOrder.length && this.targetGrid.tableContents.columnOrder[var85] != var52; ++var85) {
  3224.                   }
  3225.  
  3226.                   this.str.append(var2[0] + Integer.toString(var85) + var2[1] + "true" + var2[2]);
  3227.                }
  3228.             }
  3229.             break;
  3230.          case 128:
  3231.             for(int var51 = 0; var51 < this.targetReportDef.groupBy.countItems(); ++var51) {
  3232.                if (this.targetReportDef.grandTotal[var51]) {
  3233.                   int var83 = 0;
  3234.  
  3235.                   for(var83 = 0; var83 < this.targetGrid.tableContents.columnOrder.length && this.targetGrid.tableContents.columnOrder[var83] != var51; ++var83) {
  3236.                   }
  3237.  
  3238.                   this.str.append(var2[0] + Integer.toString(var83) + var2[1] + "true" + var2[2]);
  3239.                }
  3240.             }
  3241.             break;
  3242.          case 129:
  3243.             for(int var50 = 0; var50 < this.targetGridSettings.fieldTotal.length; ++var50) {
  3244.                if (this.targetGridSettings.fieldActive[var50] && this.targetGridSettings.fieldTotal[var50]) {
  3245.                   int var82 = this.targetGrid.indexes.indexOf(Integer.toString(var50));
  3246.                   int var98 = 0;
  3247.  
  3248.                   for(var98 = 0; var98 < this.targetGrid.tableContents.columnOrder.length && this.targetGrid.tableContents.columnOrder[var98] != var82; ++var98) {
  3249.                   }
  3250.  
  3251.                   this.str.append(var2[0] + Integer.toString(var98) + var2[1] + "true" + var2[2]);
  3252.                }
  3253.             }
  3254.             break;
  3255.          case 130:
  3256.             this.str.append(var2[0] + Integer.toString(this.targetChartDef.groupBy.getSelectedItems().length) + var2[1]);
  3257.             break;
  3258.          case 131:
  3259.             this.str.append(var2[0] + Integer.toString(this.targetChartDef.multipleSeries.getSelectedItems().length) + var2[1]);
  3260.             break;
  3261.          case 132:
  3262.             String var48 = this.targetChart.prevSQL;
  3263.             String var14 = "";
  3264.             int var15 = var48.indexOf("ORDER BY");
  3265.             int var16 = var48.indexOf("GROUP BY");
  3266.             int var17 = var48.indexOf("WHERE ");
  3267.             if (var17 < 0) {
  3268.                var14 = " WHERE \" + whereClause";
  3269.             } else {
  3270.                var14 = " AND \" + whereClause";
  3271.             }
  3272.  
  3273.             var4 = true;
  3274.             if (this.layoutName.equals("JDPLayout5") && this.targetList != null) {
  3275.                for(int var113 = 0; var113 < this.keys.length; ++var113) {
  3276.                   if (this.targetList.uniqueTree.isSelected(var113) || this.targetList.useTree.getSelectedItem().equals("List")) {
  3277.                      var14 = var14 + " +\r\n\t\t\t\t\t\" AND ";
  3278.                      var14 = var14 + this.cvtKey(this.keysSQL[var113], this.keyDataType[var113]) + "=";
  3279.                      String var121 = this.getQuote(this.keyDataType[var113]);
  3280.                      var14 = var14 + var121;
  3281.                      var14 = var14 + "\" + searchResults.recordKey" + Integer.toString(var113) + "[itemIndex]";
  3282.                      var14 = var14 + "+ \"" + var121 + "\" ";
  3283.                   }
  3284.                }
  3285.             }
  3286.  
  3287.             if (var15 < 0 && var16 < 0) {
  3288.                var48 = var48 + var14;
  3289.             } else if (var15 < var16 && var15 >= 0) {
  3290.                String var115 = var48.substring(0, var15) + var14 + " + \" " + var48.substring(var15) + "\"";
  3291.                var48 = var115;
  3292.             } else if (var16 >= 0) {
  3293.                String var114 = var48.substring(0, var16) + var14 + " + \" " + var48.substring(var16) + "\"";
  3294.                var48 = var114;
  3295.             } else {
  3296.                var48 = var48 + var14;
  3297.             }
  3298.  
  3299.             this.str.append(var2[0] + "\"" + var48 + var2[1]);
  3300.             break;
  3301.          case 133:
  3302.             for(int var112 = 0; var112 < this.keys.length; ++var112) {
  3303.                this.str.append(var2[0] + "if (keys != null && keys.length > " + Integer.toString(var112) + " && keys[" + Integer.toString(var112) + "] != null) whereClause += \" AND " + this.cvtKey(this.keysSQL[var112], this.keyDataType[var112]) + "=");
  3304.                String var120 = this.getQuote(this.keyDataType[var112]);
  3305.                this.str.append(var120);
  3306.                this.str.append("\" + keys[" + Integer.toString(var112) + "]");
  3307.                this.str.append("+ \"" + var120 + "\" ");
  3308.                this.str.append(var2[1]);
  3309.             }
  3310.             break;
  3311.          case 140:
  3312.             this.str.append(var2[0] + Integer.toString(this.targetChartDef.chartType.getSelectedIndex() + 1) + var2[1]);
  3313.             break;
  3314.          case 141:
  3315.             this.str.append(var2[0] + this.targetChartDef.chartTitle.getText() + var2[1]);
  3316.             break;
  3317.          case 142:
  3318.             this.str.append(var2[0] + this.targetChartDef.chartTitleColor.getSelectedItem() + var2[1]);
  3319.             break;
  3320.          case 143:
  3321.             this.str.append(var2[0] + this.targetChartDef.xaxisTitle.getText() + var2[1]);
  3322.             break;
  3323.          case 144:
  3324.             this.str.append(var2[0] + this.targetChartDef.xaxisTitleColor.getSelectedItem() + var2[1]);
  3325.             break;
  3326.          case 145:
  3327.             this.str.append(var2[0] + this.targetChartDef.xaxisLabelColor.getSelectedItem() + var2[1]);
  3328.             break;
  3329.          case 146:
  3330.             this.str.append(var2[0] + this.targetChartDef.yaxisLabelColor.getSelectedItem() + var2[1]);
  3331.             break;
  3332.          case 147:
  3333.             this.str.append(var2[0] + this.targetChartDef.chartFrameColor.getSelectedItem() + var2[1]);
  3334.             break;
  3335.          case 148:
  3336.             int var111 = 0;
  3337.  
  3338.             for(int var119 = 0; var119 < this.targetChartDef.fieldActive.length; ++var119) {
  3339.                if (this.targetChartDef.fieldActive[var119]) {
  3340.                   ++var111;
  3341.                }
  3342.             }
  3343.  
  3344.             if (var111 < 1) {
  3345.                var111 = 1;
  3346.             }
  3347.  
  3348.             this.str.append(var2[0] + Integer.toString(var111) + var2[1]);
  3349.             break;
  3350.          case 149:
  3351.             int var110 = 0;
  3352.             if (this.targetChartDef.fieldActive.length == 0) {
  3353.                this.str.append(var2[0] + "0" + var2[1] + "" + var2[2]);
  3354.             }
  3355.  
  3356.             for(int var118 = 0; var118 < this.targetChartDef.fieldActive.length; ++var118) {
  3357.                if (this.targetChartDef.fieldActive[var118]) {
  3358.                   this.str.append(var2[0] + Integer.toString(var110) + var2[1] + this.targetChartDef.elementLegend[var118] + var2[2]);
  3359.                   ++var110;
  3360.                }
  3361.             }
  3362.             break;
  3363.          case 150:
  3364.             int var109 = 0;
  3365.             if (this.targetChartDef.fieldActive.length == 0) {
  3366.                this.str.append(var2[0] + "0" + var2[1] + "Color.red" + var2[2]);
  3367.             }
  3368.  
  3369.             for(int var117 = 0; var117 < this.targetChartDef.fieldActive.length; ++var117) {
  3370.                if (this.targetChartDef.fieldActive[var117]) {
  3371.                   this.str.append(var2[0] + Integer.toString(var109) + var2[1] + JDPUtils._cvtbcolor(this.targetChartDef.elementColor[var117]) + var2[2]);
  3372.                   ++var109;
  3373.                }
  3374.             }
  3375.             break;
  3376.          case 151:
  3377.             int var18 = 0;
  3378.             if (this.targetChartDef.fieldActive.length == 0) {
  3379.                this.str.append(var2[0] + "0" + var2[1] + "Color.black" + var2[2]);
  3380.             }
  3381.  
  3382.             for(int var116 = 0; var116 < this.targetChartDef.fieldActive.length; ++var116) {
  3383.                if (this.targetChartDef.fieldActive[var116]) {
  3384.                   this.str.append(var2[0] + Integer.toString(var18) + var2[1] + JDPUtils._cvtbcolor(this.targetChartDef.elementBorderColor[var116]) + var2[2]);
  3385.                   ++var18;
  3386.                }
  3387.             }
  3388.             break;
  3389.          case 152:
  3390.             String var19 = "";
  3391.             var4 = true;
  3392.             if (this.targetChartDef.gridLineSettingH.getSelectedItem().equals("Yes")) {
  3393.                var19 = var19 + "JDPChart.HORIZONTAL";
  3394.                var4 = false;
  3395.             }
  3396.  
  3397.             if (this.targetChartDef.gridLineSettingV.getSelectedItem().equals("Yes")) {
  3398.                if (!var4) {
  3399.                   var19 = var19 + " + ";
  3400.                }
  3401.  
  3402.                var4 = false;
  3403.                var19 = var19 + "JDPChart.VERTICAL";
  3404.             }
  3405.  
  3406.             if (this.targetChartDef.gridLineSettingF.getSelectedItem().equals("Yes")) {
  3407.                if (!var4) {
  3408.                   var19 = var19 + " + ";
  3409.                }
  3410.  
  3411.                var4 = false;
  3412.                var19 = var19 + "JDPChart.FOREGROUND";
  3413.             }
  3414.  
  3415.             if (this.targetChartDef.gridLineSettingB.getSelectedItem().equals("Yes")) {
  3416.                if (!var4) {
  3417.                   var19 = var19 + " + ";
  3418.                }
  3419.  
  3420.                var4 = false;
  3421.                var19 = var19 + "JDPChart.BACKGROUND";
  3422.             }
  3423.  
  3424.             if (var19.length() == 0) {
  3425.                var19 = "0";
  3426.             }
  3427.  
  3428.             this.str.append(var2[0] + var19 + var2[1]);
  3429.             break;
  3430.          case 153:
  3431.             this.str.append(var2[0] + this.targetChartDef.gridColor.getSelectedItem() + var2[1]);
  3432.             break;
  3433.          case 154:
  3434.             if (this.targetChartDef.autoscale.getSelectedItem().equals("Yes")) {
  3435.                this.str.append(var2[0] + "true" + var2[1]);
  3436.             } else {
  3437.                this.str.append(var2[0] + "false" + var2[1]);
  3438.             }
  3439.             break;
  3440.          case 155:
  3441.             if (this.targetChartDef.autozoom.getSelectedItem().equals("Yes")) {
  3442.                this.str.append(var2[0] + "true" + var2[1]);
  3443.             } else {
  3444.                this.str.append(var2[0] + "false" + var2[1]);
  3445.             }
  3446.             break;
  3447.          case 156:
  3448.             this.str.append(var2[0] + this.targetChartDef.maxPlotValue.getText() + var2[1]);
  3449.             break;
  3450.          case 157:
  3451.             this.str.append(var2[0] + this.targetChartDef.minPlotValue.getText() + var2[1]);
  3452.             break;
  3453.          case 158:
  3454.             this.str.append(var2[0] + Integer.toString(this.targetChartDef.chartType.getSelectedIndex() + 1) + var2[1]);
  3455.             break;
  3456.          case 159:
  3457.             this.str.append(var2[0]);
  3458.             if (this.targetChartDef.autoscale.getSelectedIndex() == 0) {
  3459.                this.str.append("true");
  3460.             } else {
  3461.                this.str.append("false");
  3462.             }
  3463.  
  3464.             this.str.append(var2[1]);
  3465.             break;
  3466.          case 160:
  3467.             this.str.append(var2[0]);
  3468.             if (this.targetChartDef.autozoom.getSelectedIndex() == 0) {
  3469.                this.str.append("true");
  3470.             } else {
  3471.                this.str.append("false");
  3472.             }
  3473.  
  3474.             this.str.append(var2[1]);
  3475.             break;
  3476.          case 161:
  3477.             this.str.append(var2[0] + this.targetChartDef.pfromwhereclause.getText() + var2[1]);
  3478.             break;
  3479.          case 162:
  3480.             String var39 = this.targetGridSettings.lockingColumn.getSelectedItem();
  3481.             if (var39 != null && !var39.equals("")) {
  3482.                this.str.append(var1);
  3483.             }
  3484.             break;
  3485.          case 163:
  3486.             String var8 = this.targetGridSettings.lockingColumn.getSelectedItem();
  3487.             if (var8 != null && !var8.equals("")) {
  3488.                if (var8.indexOf(".") > 0) {
  3489.                   var8 = var8.substring(2);
  3490.                }
  3491.  
  3492.                this.str.append(var2[0] + var8 + var2[1]);
  3493.             }
  3494.             break;
  3495.          case 170:
  3496.             for(int var47 = 0; var47 < this.indexes2.length; ++var47) {
  3497.                if (this.indexes2[var47] >= 0 && this.targetGrid.maskEdit != null && this.targetGrid.maskEdit[this.targetGrid.tableContents.columnOrder[var47]] != null) {
  3498.                   this.str.append(var2[0] + Integer.toString(var47) + var2[1] + this.targetGrid.maskEdit[this.targetGrid.tableContents.columnOrder[var47]] + var2[2]);
  3499.                }
  3500.             }
  3501.             break;
  3502.          case 171:
  3503.             for(int var13 = 0; var13 < this.indexes2.length; ++var13) {
  3504.                if (this.indexes2[var13] >= 0 && this.targetGrid.maskType[this.targetGrid.tableContents.columnOrder[var13]] != null) {
  3505.                   this.str.append(var2[0] + Integer.toString(var13) + var2[1] + this.targetGrid.maskType[this.targetGrid.tableContents.columnOrder[var13]] + var2[2]);
  3506.                }
  3507.             }
  3508.             break;
  3509.          case 979:
  3510.             if (this.targetDSN.jdbcdirect.getSelectedIndex() == 1) {
  3511.                this.str.append(var1);
  3512.             }
  3513.             break;
  3514.          case 980:
  3515.             this.str.append(var2[0] + this.user.u.replace(this.targetDSN.jdbcdriver.getText(), "\\", "\\\\") + var2[1]);
  3516.             break;
  3517.          case 981:
  3518.             this.str.append(var2[0] + this.user.u.replace(this.targetDSN.jdbcprefix.getText(), "\\", "\\\\") + var2[1]);
  3519.             break;
  3520.          case 982:
  3521.             this.str.append(var2[0] + this.user.u.replace(this.targetDSN.jdbcsuffix.getText(), "\\", "\\\\") + var2[1]);
  3522.             break;
  3523.          case 984:
  3524.             this.str.append(var2[0] + this.user.u.replace(this.targetDSN.userid.getText(), "\\", "\\\\") + var2[1]);
  3525.             break;
  3526.          case 985:
  3527.             this.str.append(var2[0] + this.user.u.replace(this.targetDSN.password.getText(), "\\", "\\\\") + var2[1]);
  3528.             break;
  3529.          case 994:
  3530.             if (this.targetChartDef != null && this.targetChartDef.maxRows != null && this.user.u.isnumeric(this.targetChartDef.maxRows, this.user.mainmsg)) {
  3531.                this.str.append(var2[0] + this.targetChartDef.maxRows.getText() + var2[1]);
  3532.             } else {
  3533.                this.str.append(var2[0] + "100" + var2[1]);
  3534.             }
  3535.             break;
  3536.          case 995:
  3537.             if (this.targetReportDef != null && this.targetReportDef.maxRows != null && this.user.u.isnumeric(this.targetReportDef.maxRows, this.user.mainmsg)) {
  3538.                this.str.append(var2[0] + this.targetReportDef.maxRows.getText() + var2[1]);
  3539.             } else {
  3540.                this.str.append(var2[0] + "100" + var2[1]);
  3541.             }
  3542.             break;
  3543.          case 996:
  3544.             if (this.targetGridSettings != null && this.targetGridSettings.maxRows != null && this.user.u.isnumeric(this.targetGridSettings.maxRows, this.user.mainmsg)) {
  3545.                this.str.append(var2[0] + this.targetGridSettings.maxRows.getText() + var2[1]);
  3546.             } else {
  3547.                this.str.append(var2[0] + "100" + var2[1]);
  3548.             }
  3549.             break;
  3550.          case 997:
  3551.             if (this.targetList != null && this.targetList.maxRows != null && this.user.u.isnumeric(this.targetList.maxRows, this.user.mainmsg)) {
  3552.                this.str.append(var2[0] + this.targetList.maxRows.getText() + var2[1]);
  3553.             } else {
  3554.                this.str.append(var2[0] + "100" + var2[1]);
  3555.             }
  3556.             break;
  3557.          case 998:
  3558.             this.str.append(var2[0] + this.user.u.replace(this.dataSource, "\\", "\\\\") + var2[1]);
  3559.             break;
  3560.          case 999:
  3561.             this.str.append(var2[0] + this.user.u.replace(this.connectString, "\\", "\\\\") + var2[1]);
  3562.             break;
  3563.          default:
  3564.             this.str.append(var1);
  3565.       }
  3566.  
  3567.       return this.str.toString();
  3568.    }
  3569.  
  3570.    boolean readyToBuild5() {
  3571.       if (this.targetChartDef != null && !this.targetChartDef.chartTitle.getText().equals("")) {
  3572.          if (this.targetChart != null && !this.targetChart.prevSQL.equals("")) {
  3573.             this.setKeyFields();
  3574.             return true;
  3575.          } else {
  3576.             this.user.mainmsg.setStatusMsg("You must first preview the chart settings before building.", 8);
  3577.             return false;
  3578.          }
  3579.       } else {
  3580.          this.user.mainmsg.setStatusMsg("You must first define the chart settings before building.", 8);
  3581.          return false;
  3582.       }
  3583.    }
  3584. }
  3585.