Регистрация  |  Вход

Как удалить запись по введенному значению из поля?

Здравствуйте! Я только начал изучать salesforce и столкнулся с вопросом как удалить запись по значению из поля? Я написал простой метод deleteRecord(), где записи удаляются по конкретному значению, а как его переделать в соответствии с вопросом? Объясните, пожалуйста. Спасибо.

public class StockController 
{
public List<Stock__c> stocks {get; set;}
public Stock__c newItem {get;set;}
public Stock__c delItem{get;set;}

public StockController(){

this.newItem = new Stock__c();
this.refreshStocks();

}

public PageReference refreshStocks() {
this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
LIMIT 1000];
return null;
}

public PageReference save() {
insert this.newItem;
this.newItem = new Stock__c();
this.refreshStocks();
return null;
}
public PageReference sortByName() {
this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
ORDER BY Name
LIMIT 1000];
return null;
}
public PageReference sortByAmount(){

this.stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
ORDER BY StockAmount__c
LIMIT 1000];
return null;
}

public void deleteRecord(){
delItem = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
WHERE Name = 'erfe'
];
delete delItem;
this.refreshStocks();
}
}

Здравствуйте! Я только начал изучать salesforce и столкнулся с вопросом как удалить запись по значению из поля? Я написал простой метод deleteRecord(), где записи удаляются по конкретному значению, а как его переделать в соответствии с вопросом? Объясните, пожалуйста. Спасибо.
[code]public class StockController 
{
    public List<Stock__c> stocks {get; set;}
    public Stock__c newItem {get;set;}
    public Stock__c delItem{get;set;}
   	
    public StockController(){
        
        this.newItem = new Stock__c();
     	this.refreshStocks();
        
    }
    
    public PageReference refreshStocks() {
		this.stocks = [SELECT Id, 
                       Name,
                       StockPrice__c,
                       StockType__c,
                       StockAmount__c,
                       StockDateAddition__c,
                       StockDateRelease__c,
                       StockAvailability__c
                       FROM Stock__c                       
                       LIMIT 1000];     
        return null;
    }
    
    public PageReference save() {
        insert this.newItem;
        this.newItem = new Stock__c();
        this.refreshStocks();
        return null;
    }    
    public PageReference sortByName() {
		this.stocks = [SELECT Id, 
                       Name,
                       StockPrice__c,
                       StockType__c,
                       StockAmount__c,
                       StockDateAddition__c,
                       StockDateRelease__c,
                       StockAvailability__c
                       FROM Stock__c
                       ORDER BY Name
                       LIMIT 1000];     
        return null;
    }    
    public PageReference sortByAmount(){
    
		this.stocks = [SELECT Id, 
                       Name,
                       StockPrice__c,
                       StockType__c,
                       StockAmount__c,
                       StockDateAddition__c,
                       StockDateRelease__c,
                       StockAvailability__c
                       FROM Stock__c
                       ORDER BY StockAmount__c
                       LIMIT 1000];     
        return null;
    }
    
    public void deleteRecord(){
        delItem = [SELECT Id, 
                       Name,
                       StockPrice__c,
                       StockType__c,
                       StockAmount__c,
                       StockDateAddition__c,
                       StockDateRelease__c,
                       StockAvailability__c
                       FROM Stock__c
                       WHERE Name = 'erfe'
                       ];
        delete delItem;
        this.refreshStocks();
    }        
}[/code]

Много не совсем понятного кода! Если вы еще не проходили обучение на игровой площадке Trailhead, то советую пройти, там такие вопросы будут разобраны. И нужно повнимательнее искать информацию, в этом форуме такие вопросы уже разбирались ранее и есть много почти готовых решений. Можете попробовать вариант предложенный ниже. Если это поможет то попробуйте разобраться что делает данный код.

public class StockController {
public List<Stock__c> stocks{get;set;}
public String SelectedProductId { get; set; }

private void LoadData() {
stocks = [SELECT Id,
Name,
StockPrice__c,
StockType__c,
StockAmount__c,
StockDateAddition__c,
StockDateRelease__c,
StockAvailability__c
FROM Stock__c
LIMIT 10000];
}


public void DeleteRowProduct(){
if (SelectedProductId == null) {
return;
}

Stock__c tobeDeleted = null;
for(Stock__c a : stocks)
if (a.Id == SelectedProductId) {
tobeDeleted = a;
break;
}
if (tobeDeleted != null) {
Delete tobeDeleted;
}
LoadData();
}
}

 Много не совсем понятного кода! Если вы еще не проходили обучение на игровой площадке Trailhead, то советую пройти, там такие вопросы будут разобраны. И нужно повнимательнее искать информацию, в этом форуме такие вопросы уже разбирались ранее и есть много почти готовых решений.  Можете попробовать вариант предложенный ниже. Если это поможет то попробуйте разобраться что делает данный код.  

public class StockController {
   public List<Stock__c> stocks{get;set;}
   public String SelectedProductId { get; set; }

 private void LoadData() {
       stocks = [SELECT Id, 
                       Name,
                       StockPrice__c,
                       StockType__c,
                       StockAmount__c,
                       StockDateAddition__c,
                       StockDateRelease__c,
                       StockAvailability__c
                       FROM Stock__c                       
                       LIMIT 10000];    
   }


public void DeleteRowProduct(){
      if (SelectedProductId == null) {
         return;
      }
        
      Stock__c tobeDeleted = null;
      for(Stock__c a : stocks)
       if (a.Id == SelectedProductId) {
          tobeDeleted = a;
          break;
       }
      if (tobeDeleted != null) {
       Delete tobeDeleted;
      }
      LoadData();
   }    
}