Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to search record from dynamic data list in Liferay 6.2?

    • 0
    • 2
    • 0
    • 1
    • 0
    • 0
    • 0
    • 0
    • 2.38k
    Comment on it

    Hello Guy's
    Some time many of us faces difficultly in searching record from dynamic data list in Liferay 6.2, so for your help below I am mentioning how you can do this-

    Here I have created two methods for search record from dynamic data list in liferay 6.2.

    ddlRecordnew.get(i).getField("firstName").getValue()
    Here :
    "ddlRecordnew" is instance of List<DDLRecord> and "firstName" is field name of data list in dynamic data list.
    So now :
    ddlRecordnew.get(i).getField("FieldName").getValue()
    Following method print the matched record from searchString to database.

        public void SearchDdlRecord(String searchString){
    
            List<DDLRecord> ddlRecordnew = null;
                try {
        ddlRecordnew = DDLRecordLocalServiceUtil.getDDLRecords(-1, Integer.MAX_VALUE);
    
        if (ddlRecordnew != null) {
    
      StringTokenizer strPermit = null;
      String ptype = null;
    
      for (int i = 0; i < ddlRecordnew.size(); i++) {
            if (isRecordMatchingSearchCriteria(searchString, ddlRecordnew.get(i)) ) {
      strPermit = new StringTokenizer(String.valueOf(ddlRecordnew.get(i).getField("permitType").getValue()),"[]\"");
            while (strPermit.hasMoreTokens()) {
                ptype = strPermit.nextToken().trim();                           
            }
      System.out.println(ddlRecordnew.get(i).getRecordId()+"   "+ddlRecordnew.get(i).getField("firstName").getValue()+"    "+ddlRecordnew.get(i).getField("lastName").getValue());
    
        }        
        }
        }
        }
        catch (Exception e)
                   {
                    e.printStackTrace();
    
                }
            }
    

    Following method match the searchString to database record and return boolean .

    public boolean isRecordMatchingSearchCriteria(String searchString,
                DDLRecord ddlRecord) {
            try {
    
                if (searchString == null || searchString.length() < 0
                        || searchString.equals(""))
                    return true;
                searchString = searchString.toUpperCase();
    
                String searchStringArr[] = searchString.split(" ");
    
    
                for (int i = 0; i < searchStringArr.length; i++) {
                    String recordId = ddlRecord.getRecordId() + "";
                    if (recordId.contains(searchStringArr[i]))
                        return true;
    
    
    
                    if (ddlRecord.getField("firstName").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("lastName").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (new DateBefore()
                            .UIdateFormats(
                                    (ddlRecord.getCreateDate().toGMTString())
                                            .toString()).toUpperCase()
                            .contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("phoneNumber").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("Email").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("permitType").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("address").getValue().toString()
                            .toUpperCase().contains(searchStringArr[i]))
                        return true;
                    if (ddlRecord.getField("describeBusiness").getValue()
                            .toString().toUpperCase().contains(searchStringArr[i]))
                        return true;
    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
    

    That's it! Thank you :)

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: