You need to sign in to do that
Don't have an account?
Egor Palatov
Master-detail value from picklist
Hi, i have a master-detail relation ship between Car__c(master) and Car_detail__c(detail).
There is a parser for csv file and i need a picklist to choose to every record it's car__c(relationsheep) field. I tried to create variable "a" that contains the "car id", but it doesnt helped
controller:
VF page:
There is a parser for csv file and i need a picklist to choose to every record it's car__c(relationsheep) field. I tried to create variable "a" that contains the "car id", but it doesnt helped
controller:
public class ParseCSVController { public Blob csvFileBody{get;set;} public string csvAsString{get;set;} public String[] csvFileLines{get;set;} public List<Car_detail__c> DetailList{get;set;} public String CarName {get; set;} Id a; public ParseCSVController(){ csvFileLines = new String[]{}; DetailList = New List<Car_detail__c>(); } public List<SelectOption> getCar(){ List<SelectOption> options = new List<SelectOption>(); List<Car__c> carList = new List<Car__c>(); carList = [Select Id, Name FROM Car__c]; options.add(new SelectOption('--None--','--None--')); for (Car__c cars : carList) { options.add(new SelectOption(cars.Id,cars.Name)); a = cars.Id; } return options; } public void importCSVFile(){ try{ csvAsString = csvFileBody.toString(); csvFileLines = csvAsString.split('\n'); for(Integer i=1;i<csvFileLines.size();i++){ Car_detail__c detailObj = new Car_detail__c(); string[] csvRecordData = csvFileLines[i].split(','); detailObj.name = csvRecordData[0] ; detailObj.Type__c = csvRecordData[1]; detailObj.Length__c = Decimal.valueOf(csvRecordData[2]); detailObj.Width__c = Decimal.valueOf(csvRecordData[3]); detailObj.Depth__c = Decimal.valueOf(csvRecordData[4]); detailObj.Material__c = csvRecordData[5]; detailObj.Price__c = Decimal.valueOf(csvRecordData[6]); detailObj.Model__c = csvRecordData[7]; detailObj.Year__c = Decimal.valueOf(csvRecordData[8]); detailObj.Quantity__c = Decimal.valueOf(csvRecordData[9]); detailObj.Storage_key__c = Decimal.valueOf(csvRecordData[10]); detailObj.Car__c = a; DetailList.add(detailObj); } //insert detaillist; } catch (Exception e) { ApexPages.Message errorMessage = new ApexPages.Message(ApexPages.severity.ERROR,'An error has occured while importin data Please make sure input csv file is correct'); ApexPages.addMessage(errorMessage); } } }
VF page:
<apex:page controller="ParseCSVController"> <apex:form > <apex:pagemessages /> <apex:pageBlock > <apex:pageBlockSection columns="4"> <apex:inputFile value="{!csvFileBody}" filename="{!csvAsString}"/> <apex:commandButton value="Import Detail" action="{!importCSVFile}"/> <apex:commandButton value="Save" action="{!Save}"/> </apex:pageBlockSection> </apex:pageBlock> <apex:pageBlock > <apex:pageblocktable value="{!DetailList}" var="detail"> <apex:variable value="{!0}" var="cnt"/> <apex:inlineEditSupport event="ondblClick"/> <apex:column value="{!detail.Name}" headerValue="Наименование детали" /> <apex:column value="{!detail.Type__c}" headerValue="Тип" /> <apex:column value="{!detail.Length__c}" headerValue="Длинна" /> <apex:column value="{!detail.Width__c}" headerValue="Ширина" /> <apex:column value="{!detail.Depth__c}" headerValue="Глубина" /> <apex:column value="{!detail.Material__c}" headerValue="Материал" /> <apex:column value="{!detail.Price__c}" headerValue="Цена" /> <apex:column value="{!detail.Model__c}" headerValue="Модель" /> <apex:column value="{!detail.Year__c}" headerValue="Год выпуска" /> <apex:column value="{!detail.Quantity__c}" headerValue="Количество" /> <apex:column value="{!detail.Storage_key__c}" headerValue="Код на складе" /> <apex:column headerValue="Марка автомобиля"> <apex:selectList value="{!CarName}" id="car" size="1" > <apex:selectOptions value="{!car}" /> </apex:selectList> </apex:column> </apex:pageBlock> </apex:form> </apex:page>
All Answers
use below code and let me know If it helps.
There problem in line 31 (empty "if"), and without that if my csv file cant be import(i guess it becosue we first need to upload file, and than set Car__c)