9608a207b1e33940e173351334b5815e9a1f2639.svn-base 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package xin.glue.ui.B.B01;
  2. import xin.glue.ui.B.B02.MutilConditionFind;
  3. import com.posdata.glue.biz.activity.PosActivity;
  4. import com.posdata.glue.biz.constants.PosBizControlConstants;
  5. import com.posdata.glue.context.PosContext;
  6. import com.posdata.glue.dao.PosGenericDao;
  7. import com.posdata.glue.dao.vo.PosParameter;
  8. import com.posdata.glue.dao.vo.PosRow;
  9. import com.posdata.glue.dao.vo.PosRowSet;
  10. /**
  11. *
  12. * @Description 材质现况查询,材质代码需要动态生成{界面ID:UIB010120}
  13. * @author 梅贵平{meiguiping}
  14. * @date 2008-11-20 下午05:31:09
  15. * @JDK Version jdk1.4.2
  16. */
  17. public class FindQltyState extends PosActivity
  18. {
  19. public String runActivity(PosContext context)
  20. {
  21. PosGenericDao dao = this.getDao("mesdao");
  22. PosParameter param= null;
  23. PosRowSet qltyRow = null; //存储所查询的客户或标准的材质代码信息
  24. PosRowSet rowset = null;
  25. String[] SelectRadio= (String[])context.get("SelectRadio");//查询先觉条件(客户或者标准信息查询)
  26. String[] CustCD = (String[])context.get("CompID");//客户公司代码
  27. String[] SpecAbbsym = (String[])context.get("SA");//标准号
  28. String[] SpecStlGrd = (String[])context.get("SpecStlGrd");//标准钢号
  29. if(SelectRadio==null)
  30. return PosBizControlConstants.SUCCESS;
  31. String first = "";
  32. String end = "";
  33. String temp = "";//用于获取动态SQL部分
  34. String qMark = "";
  35. MutilConditionFind mcf = new MutilConditionFind();
  36. /*
  37. * 首先获得满足条件(客户公司代码或标准号)的材质代码,然后取出查询出来的材质代码,再动态生成最终的SQL
  38. * */
  39. if("1".equals(SelectRadio[0]))//查询客户材质信息
  40. {
  41. param = new PosParameter();
  42. qMark = CustCD[0];
  43. param.setWhereClauseParameter(0, qMark);
  44. qltyRow = dao.find("UIB010120_01.SELECT", param);
  45. first = " SELECT CUST_SPEC_NO ";
  46. end = mcf.getQuerySql("UIB010120_CUST.END").toString();
  47. }
  48. else if("2".equals(SelectRadio[0]))//查询标准材质信息
  49. {
  50. param = new PosParameter();
  51. qMark = SpecAbbsym[0];
  52. param.setWhereClauseParameter(0, qMark);
  53. param.setWhereClauseParameter(1, SpecStlGrd[0]);
  54. qltyRow = dao.find("UIB010120_02.SELECT", param);
  55. first = mcf.getQuerySql("UIB010120_SPEC.START").toString();
  56. end = mcf.getQuerySql("UIB010120_SPEC.END").toString();
  57. }
  58. context.put("QltyNM", qltyRow);
  59. temp = mcf.getQuerySql("UIB010120.MID").toString();
  60. PosRow row = null;
  61. String mid = null;//用于存储每一小步循环
  62. StringBuffer sql = new StringBuffer(2000);//用于存储最终的循环部分
  63. int j = 1;//用于循环增加,如max1,max2,max3等
  64. if(qltyRow!=null && qltyRow.count()>0) //若查询出有材质代码的记录
  65. {
  66. while(qltyRow.hasNext())
  67. {
  68. row = qltyRow.next();
  69. mid = temp.replaceAll("[{]+[0]+[}]+", row.getAttribute("QLTY_CD").toString());
  70. mid = mid.replaceAll("[{]+[1]+[}]+" , new Integer(j++).toString());
  71. sql = sql.append(mid);
  72. }
  73. }
  74. if(sql.length()>0 && "2".equals(SelectRadio[0]))//说明查询中有材质代码记录
  75. {
  76. param = new PosParameter();
  77. param.setWhereClauseParameter(0, qMark);
  78. param.setWhereClauseParameter(1, SpecStlGrd[0]);
  79. rowset = dao.findByQueryStatement(first+"\n"+sql+"\n"+end, param);
  80. context.put("QltyResult", rowset);
  81. }
  82. else if(sql.length()>0 && "1".equals(SelectRadio[0]))
  83. {
  84. param = new PosParameter();
  85. param.setWhereClauseParameter(0, CustCD[0]);
  86. rowset = dao.findByQueryStatement(first+"\n"+sql+"\n"+end, param);
  87. context.put("QltyResult", rowset);
  88. }
  89. return PosBizControlConstants.SUCCESS;
  90. }
  91. }