You need to sign in to do that
Don't have an account?
Justin D
Minimum number (3) of characters does not seem to work
I am trying to have a minimum 3 characters of First Name and Last Name in order to retrieve the data, but now, it retrieves result of data even it is less than 3 characters.
Thanks in advance.
Bottom is Apex code:
----------------------------------------------------------------------------
public with sharing class psw {
public String sfprn { get; set; }
public String mrn {get;set;}
public String lname {get;set;}
public String fname {get;set;}
public class TableRow2{
public String sfprn {get;set;}
public String mrn {get;set;}
public String lname {get;set;}
public String fname {get;set;}
public Decimal SurveySelection {get;set;}
}
public List<TableRow2> RowList {get; set;}
public PageReference searchPatients(){
RowList = new List<TableRow2>();
TableRow2 tr;
String bind_fname = string.isBlank(fName) ? null : (fname.left(3) + '%');
String bind_lname = string.isBlank(lname) ? null : (lname.left(3) + '%');
for(Patient__c con : [SELECT sfprn__c,
mrn__c,
LName__c,
FName__c,
(select SurveySelection__c.SurveySelection__c from SurveySelections__r)
FROM Patient__c
where ( mrn__c =:mrn )
//or ( LName__c =:lname and FName__c =:fname) LIMIT 1
or ( LName__c LIKE :bind_lname and FName__c LIKE :bind_fname ) LIMIT 1
]){
tr = new TableRow2();
tr.sfprn = con.sfprn__c;
tr.mrn = con.mrn__c;
tr.lname = con.LName__c;
tr.fname = con.FName__c;
tr.SurveySelection = con.SurveySelections__r.isEmpty() ? null : con.SurveySelections__r[0].SurveySelection__c;
RowList.add(tr);
}
return null;
}
}
Bottom is VF code:
----------------------------------------------------------------------------
<apex:page Controller="psw" showHeader="false" sidebar="false">
<apex:form >
<apex:pageBlock >
<!-- Search button-->
<apex:pageBlockButtons location="top">
<apex:commandButton value="Search" action="{!searchPatients}" reRender="contact-table"/>
</apex:pageBlockButtons>
<apex:pageBlockSection id="contact-table" columns="1">
<!-- Input starts -->
<apex:pageBlockSectionItem >
<apex:outputLabel value="MRN" />
<apex:inputText value="{!mrn}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Last Name" />
<apex:inputText value="{!lname}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="First Name" />
<apex:inputText value="{!fname}"/>
</apex:pageBlockSectionItem>
<!-- Input ends -->
<!-- Output 1 starts --->
<apex:pageBlockTable value="{!RowList}" var="c">
<apex:column >
<apex:facet name="header">MRN</apex:facet>
{!c.mrn}
</apex:column>
<apex:column >
<apex:facet name="header">Last Name</apex:facet>
{!c.lname}
</apex:column>
<apex:column >
<apex:facet name="header">First Name</apex:facet>
{!c.fname}
</apex:column>
</apex:pageBlockTable>
<!-- Output 1 ends --->
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Thanks in advance.
Bottom is Apex code:
----------------------------------------------------------------------------
public with sharing class psw {
public String sfprn { get; set; }
public String mrn {get;set;}
public String lname {get;set;}
public String fname {get;set;}
public class TableRow2{
public String sfprn {get;set;}
public String mrn {get;set;}
public String lname {get;set;}
public String fname {get;set;}
public Decimal SurveySelection {get;set;}
}
public List<TableRow2> RowList {get; set;}
public PageReference searchPatients(){
RowList = new List<TableRow2>();
TableRow2 tr;
String bind_fname = string.isBlank(fName) ? null : (fname.left(3) + '%');
String bind_lname = string.isBlank(lname) ? null : (lname.left(3) + '%');
for(Patient__c con : [SELECT sfprn__c,
mrn__c,
LName__c,
FName__c,
(select SurveySelection__c.SurveySelection__c from SurveySelections__r)
FROM Patient__c
where ( mrn__c =:mrn )
//or ( LName__c =:lname and FName__c =:fname) LIMIT 1
or ( LName__c LIKE :bind_lname and FName__c LIKE :bind_fname ) LIMIT 1
]){
tr = new TableRow2();
tr.sfprn = con.sfprn__c;
tr.mrn = con.mrn__c;
tr.lname = con.LName__c;
tr.fname = con.FName__c;
tr.SurveySelection = con.SurveySelections__r.isEmpty() ? null : con.SurveySelections__r[0].SurveySelection__c;
RowList.add(tr);
}
return null;
}
}
Bottom is VF code:
----------------------------------------------------------------------------
<apex:page Controller="psw" showHeader="false" sidebar="false">
<apex:form >
<apex:pageBlock >
<!-- Search button-->
<apex:pageBlockButtons location="top">
<apex:commandButton value="Search" action="{!searchPatients}" reRender="contact-table"/>
</apex:pageBlockButtons>
<apex:pageBlockSection id="contact-table" columns="1">
<!-- Input starts -->
<apex:pageBlockSectionItem >
<apex:outputLabel value="MRN" />
<apex:inputText value="{!mrn}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Last Name" />
<apex:inputText value="{!lname}"/>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="First Name" />
<apex:inputText value="{!fname}"/>
</apex:pageBlockSectionItem>
<!-- Input ends -->
<!-- Output 1 starts --->
<apex:pageBlockTable value="{!RowList}" var="c">
<apex:column >
<apex:facet name="header">MRN</apex:facet>
{!c.mrn}
</apex:column>
<apex:column >
<apex:facet name="header">Last Name</apex:facet>
{!c.lname}
</apex:column>
<apex:column >
<apex:facet name="header">First Name</apex:facet>
{!c.fname}
</apex:column>
</apex:pageBlockTable>
<!-- Output 1 ends --->
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
You can put a condition before your logic by calculating the length of fname if (fname.length() > 3) then enter else null.
Thanks
Lokesh