I have created a visualforce page to display as txt, so that when a button is clicked, a txt file is downloaded to the computer. I need this txt document to be a comma-separated collection of fields.

The main object is Loan, which can have multiple Legal_Entities and Loan_Collateral2 records. I started with using the standardController and then writing an extension to query and gather the child records.

Now I don't know how to get the fields from the query into the visualforce page.

And I've been staring at it for so long, it is making less and less sense.

The following code presents me with "Unknown property 'LLC_BI__Loan__cStandardController.borList'"


    <apex:page contentType="text/plain#{!LLC_BI__Loan__c.name}.txt" 
           standardController="LLC_BI__Loan__c" extensions="transportExtend">
    <apex:variable var="lo" value="{!LLC_BI__Loan__c}"/>
    <apex:variable var="b" value="{!borList}"/>
test fields: {!b.name},{!$User.Officer_Codes__c},


public with sharing class transportExtend{

    public ApexPages.StandardController stdController {get;set;}
    public Id currentLoanId {get;set;}
    public transportExtend(ApexPages.StandardController ctrl){
        LLC_BI__Loan__c loanObject = (LLC_BI__Loan__c)ctrl.getRecord();
        currentLoanId = loanObject.Id;
    public List<LLC_BI__Legal_Entities__c> getBorrower(){
        List <LLC_BI__Legal_Entities__c> borList = new List<LLC_BI__Legal_Entities__c>();
        for(LLC_BI__Legal_Entities__c bor: [SELECT Id,name
                                            FROM LLC_BI__Legal_Entities__c
                                            WHERE LLC_BI__Loan__c =:currentLoanId
                                            AND LLC_BI__Borrower_Type__c='Borrower'
                                            LIMIT 1]){
        return borList;
    public List <LLC_BI__Legal_Entities__c> getCoBorrower(){
        List <LLC_BI__Legal_Entities__c> coBorList = new List<LLC_BI__Legal_Entities__c>();
    for(LLC_BI__Legal_Entities__c coBor: [SELECT Id, name
                                           FROM LLC_BI__Legal_Entities__c
                                           WHERE LLC_BI__Loan__c = :currentLoanId
                                           AND LLC_BI__Borrower_Type__c = 'Co-Borrower'
                                           LIMIT 1]){coBorList.add(coBor);}
    return coBorList;
    public List <LLC_BI__Loan_Collateral2__c> getCollateral(){
        List <LLC_BI__Loan_Collateral2__c> collateral = new List<LLC_BI__Loan_Collateral2__c>();
        for(LLC_BI__Loan_Collateral2__c col: [SELECT Id, name, LLC_BI__Collateral__r.Id, LLC_BI__Collateral__r.CCD_Vehicle_Description__c
                                                FROM LLC_BI__Loan_Collateral2__c
                                                WHERE LLC_BI__Loan__c = :currentLoanId
                                               AND LLC_BI__Is_Primary__c=true]){collateral.add(col);}
        return collateral;

1 Answer 1


The error you are getting is telling you that {!borlist} is not a visible (public) property in your Apex controller

Change the VF page to reference the public method getBorrower as follows

<apex:variable var="b" value="{!borrower}"/>

VF compiler will prepend the {!borrower} to become getBorrower

  • Since I am only querying one record but using list to do it, do I need to use <apex:repeat /> to get the value from the single record?
    – Kashona
    Sep 17, 2020 at 1:15
  • nvm got it! (yes)
    – Kashona
    Sep 17, 2020 at 2:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .