Приветствую всех. Возник следующий вопрос.
Я создаю список продуктов
public class TestController {public String Name{get;set;}
return products;
}
Здесь всё нормально. Но затем, когда создаю функцию:
public void rum() {test
}
Получаю ошибку Compile Error: Illegal assignment from List<SObject> to List<TestController.DisplayMerchandise>
products Кто сталкивался, отпишитесь, как это решить?
Приветствую всех. Возник следующий вопрос. Я создаю список продуктов [code]public class TestController { public String Name{get;set;} return products; } [/code] Здесь всё нормально. Но затем, когда создаю функцию: [code]public void rum() { test } [/code] Получаю ошибку [b]Compile Error: Illegal assignment from List<SObject> to List<TestController.DisplayMerchandise>[/b] [i]products[/i] Кто сталкивался, отпишитесь, как это решить?
Ребята, неужели никто не знает?
Ребята, неужели никто не знает?
впервый раз ты по-человечески создаешь свои DisplayMerchandise, а во-втором, просто пытаешься присунуть вызвращаемый из Квери Лист вероятно Warehouse__c (который является наследником от List<SObject>) в Лист своих кастомных объектов, о чем с негодованием тебе сообщает компилятор, какие тут могут быть вопросы
впервый раз ты по-человечески создаешь свои DisplayMerchandise, а во-втором, просто пытаешься присунуть вызвращаемый из Квери Лист вероятно Warehouse__c (который является наследником от List<SObject>) в Лист своих кастомных объектов, о чем с негодованием тебе сообщает компилятор, какие тут могут быть вопросы
Спасибо что пояснил мои действия.
Вопрос заключается в том, как мне "присунуть" products в мою новоиспеченную функцию, из <DisplayMerchandise>? Как объяснить функции, что я хочу работать именно с этой переменной?
[quote="Den Brown"]впервый раз ты по-человечески создаешь свои DisplayMerchandise, а во-втором, просто пытаешься присунуть вызвращаемый из Квери Лист вероятно Warehouse__c (который является наследником от List<SObject>) в Лист своих кастомных объектов, о чем с негодованием тебе сообщает компилятор, какие тут могут быть вопросы[/quote] Спасибо что пояснил мои действия. Вопрос заключается в том, как мне "присунуть" [i]products[/i] в мою новоиспеченную функцию, из <DisplayMerchandise>? Как объяснить функции, что я хочу работать именно с этой переменной?
Метод
queryвозвращает
List<sObject>.
productsэто
List<DisplayMerchandise>.
public void runQuery() {
products = (List<DisplayMerchandise>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20');
}
Метод [code]query[/code] возвращает [code]List<sObject>[/code]. У тебя [code]products[/code] это [code]List<DisplayMerchandise>[/code]. Никто за тебя не сделает приведение типов. Всего-навсего надо добавить это приведение типа. Твой код должен выглядить так: [code]public void runQuery() { products = (List<DisplayMerchandise>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20'); }[/code]
public void runQuery() {
products = (List<DisplayMerchandise>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20');
}
Ну-ну
[quote="Andrew Muzychuk"]Никто за тебя не сделает приведение типов. Всего-навсего надо добавить это приведение типа. Твой код должен выглядить так: public void runQuery() { products = (List<DisplayMerchandise>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20'); }[/quote] Ну-ну
шот я не не понял.
судя по названию DisplayMerchandise - List<DisplayMerchandise> это лист экземпляров врапер класса.
И разве оно сделает приведение list<sObject> => list<Class>?
шот я не не понял. судя по названию DisplayMerchandise - List<DisplayMerchandise> это лист экземпляров врапер класса. И разве оно сделает приведение list<sObject> => list<Class>?
Лол = ))
Пардон. В 7 утра я не советчик = ))
Лол = )) Пардон. В 7 утра я не советчик = ))
Не сделает. Это я себе придумал :-)
[quote="DevNull"]И разве оно сделает приведение list<sObject> => list<Class>?[/quote] Не сделает. Это я себе придумал :-)
я ф шоке, ну ладно, это была ошибка.
автор, ну передавай в свою функцию (вообще это будет метод) тот Лист как аргумент, делай там с ним что хочешь, и возвращай его, если так удобнее...
а можешь просто там его создать, затем вернуть и перезаписать/добавить к products
[quote="Andrew Muzychuk"]Всего-навсего надо добавить это приведение типа.[/quote] я ф шоке, ну ладно, это была ошибка. автор, ну передавай в свою функцию (вообще это будет метод) тот Лист как аргумент, делай там с ним что хочешь, и возвращай его, если так удобнее... а можешь просто там его создать, затем вернуть и перезаписать/добавить к products
Спасибо, я уже так пробовал.
Ещё примеры кода можно?
[quote="Andrew Muzychuk"] product[/quote] Спасибо, я уже так пробовал. Ещё примеры кода можно?
Ну ты не дал пример класса DisplayMerchandise)
Ну ты не дал пример класса DisplayMerchandise)
Ну че прикалываете человека :-)
Виталий, у тебя уже есть код.
products = new List<DisplayMerchandise>();
for(Warehouse__c item : [
SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c
FROM Warehouse__c]) {
products.add(new DisplayMerchandise(item));
}
[
SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c
FROM Warehouse__c]
(List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20')
Ну че прикалываете человека :-) Виталий, у тебя уже есть код. [code]products = new List<DisplayMerchandise>(); for(Warehouse__c item : [ SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c FROM Warehouse__c]) { products.add(new DisplayMerchandise(item)); }[/code] Теперь вместо [code][ SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c FROM Warehouse__c][/code] подставляй [code](List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20')[/code] и все. Я там затупил нереально вначале. С кем не бывает :-)
public class DisplayMerchandise
И как это изменит ситуацию?
[quote="DevNull"]Ну ты не дал пример класса DisplayMerchandise)[/quote] [code]public class DisplayMerchandise [/code] И как это изменит ситуацию?
Нет, никак.
Нет, никак.
Andrew Muzychuk, все верно подсказал.
Andrew Muzychuk, все верно подсказал.
Виталий, у тебя уже есть код.
products = new List<DisplayMerchandise>();
for(Warehouse__c item : [
SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c
FROM Warehouse__c]) {
products.add(new DisplayMerchandise(item));
}
[
SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c
FROM Warehouse__c]
(List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20')
Андрей, спасибо. Но ругается на строку, которую мы заменили unexpected token: null
Error is in page warehouse: Class.WarehouseController.runQuery
[quote="Andrew Muzychuk"]Ну че прикалываете человека :-) Виталий, у тебя уже есть код. [code]products = new List<DisplayMerchandise>(); for(Warehouse__c item : [ SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c FROM Warehouse__c]) { products.add(new DisplayMerchandise(item)); }[/code] Теперь вместо [code][ SELECT Id, Name, Description__c, Price__c, Type__c, Count__c, DateAdd__c, Release__c, Availability__c, Total_Inventory__c FROM Warehouse__c][/code] подставляй [code](List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir + ' limit 20')[/code] и все. Я там затупил нереально вначале. С кем не бывает :-)[/quote] Андрей, спасибо. Но ругается на строку, которую мы заменили [b]unexpected token: null Error is in page warehouse: Class.WarehouseController.runQuery[/b]
Сейчас бы не проинициализированные переменные пихать в sooql
И код вставлять как текст, а не используя
trigger ForceForecasting on User (before insert) {
for (User userInLoop : Trigger.new) {
userInLoop.ForecastEnabled = true;
}
}
Сейчас бы не проинициализированные переменные пихать в sooql :) И код вставлять как текст, а не используя [code] trigger ForceForecasting on User (before insert) { for (User userInLoop : Trigger.new) { userInLoop.ForecastEnabled = true; } } [/code]
System.debug(soql);
Setup > Apex Logs
Developer Console > Logs
[quote="Vitaliy Karensky"] Андрей, спасибо. Но ругается на строку, которую мы заменили [b]unexpected token: null Error is in page warehouse: Class.WarehouseController.runQuery[/b][/quote] [code] System.debug(soql); [/code] Setup > Apex Logs Developer Console > Logs
System.debug(soql);
Setup > Apex Logs
Developer Console > Logs
[quote="Maxim Elets"][quote="Vitaliy Karensky"] Андрей, спасибо. Но ругается на строку, которую мы заменили [b]unexpected token: null Error is in page warehouse: Class.WarehouseController.runQuery[/b][/quote] [code] System.debug(soql); [/code] Setup > Apex Logs Developer Console > Logs[/quote] [list=1] 8.0 APEX_CODE,FINEST;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;WORKFLOW,INFO [/list]
Не, не, не.
Оно ж тебе пишетEXCEPTION_THROWN|[142]|System.QueryException: unexpected token: null
Вызови на 141 строчке
System.debug();со всеми переменными со строчки 142.
:( Не, не, не. Оно ж тебе пишет [quote]EXCEPTION_THROWN|[142]|System.QueryException: unexpected token: null[/quote]. Вызови на 141 строчке [code]System.debug();[/code] со всеми переменными со строчки 142.
System.debug(so); - null
System.debug(sort); - NAME
System.debug(sort); - desc
[list=1] 38.0 [/list] System.debug(so); - null System.debug(sort); - NAME System.debug(sort); - desc
Так у тебя soql = null. И я вообще не вижу как задаешь ей значение.
Так у тебя soql = null. И я вообще не вижу как задаешь ей значение.
private String{get;set;}
Объявлял, в самом начале, вот эту строку:
private String {get;set;}
[quote="DevNull"]private String{get;set;}[/quote] Объявлял, в самом начале, вот эту строку: [code]private String {get;set;}[/code]
Что ещё нужно добавить?
Я удивлен этому вопросу. Хотя, этот вопрос объясняет эту тему полностью.
Виталий, а вы где-то инициализировали эту переменную?
[quote="Vitaliy Karensky"]Что ещё нужно добавить?[/quote] Я удивлен этому вопросу. Хотя, этот вопрос объясняет эту тему полностью. Виталий, а вы где-то инициализировали эту переменную?
инициализировали эту переменную
Похоже что нет. Андрей, опишите, как мне это сделать
[quote="Andrew Muzychuk"]инициализировали эту переменную[/quote] Похоже что нет. Андрей, опишите, как мне это сделать
Ну, уже хоть ошибку не выдает
Я предыдущее сообщение писал много о том, что тебе надо почитать книжку по программированию. А птм подумал, может ты просто затупил, как я это сделал в своем первом сообщении. Ан нет...
Слу, ну врятли тут найдется кто-то, кто будет за тебя писать код.
Если после Dynamic SOQL у тебя еще будут вопросы, то мой тебе совет, почитай основы программирование. Такое ощущение, что тебе показали откуда брать код и куда его вставлять и ты пытаешься готовый код комбинировать.
Ну, уже хоть ошибку не выдает :D Я предыдущее сообщение писал много о том, что тебе надо почитать книжку по программированию. А птм подумал, может ты просто затупил, как я это сделал в своем первом сообщении. Ан нет... Слу, ну врятли тут найдется кто-то, кто будет за тебя писать код. Если после [url=https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dynamic_soql.htm]Dynamic SOQL[/url] у тебя еще будут вопросы, то мой тебе совет, почитай основы программирование. Такое ощущение, что тебе показали откуда брать код и куда его вставлять и ты пытаешься готовый код комбинировать.
Такое ощущение, что тебе показали откуда брать код
:D
[quote="Andrew Muzychuk"]Такое ощущение, что тебе показали откуда брать код[/quote] ;) :D :D
Ну, уже хоть ошибку не выдает
Кстати странно, должно было по идее выдать UNEXPECTED NAME или чтото такое
[quote="Andrew Muzychuk"] Ну, уже хоть ошибку не выдает [/quote] Кстати странно, должно было по идее выдать UNEXPECTED NAME или чтото такое
Да, System.QueryException: unexpected token: Name
Да, [quote]System.QueryException: unexpected token: Name[/quote]
Ну, уже хоть ошибку не выдает
Кстати странно, должно было по идее выдать UNEXPECTED NAME или чтото такое
Да такая ошибка была, я не обратил внимания. Подскажи, как правильно написать?
[quote="Maxim Elets"][quote="Andrew Muzychuk"] Ну, уже хоть ошибку не выдает [/quote] Кстати странно, должно было по идее выдать UNEXPECTED NAME или чтото такое[/quote] Да такая ошибка была, я не обратил внимания. Подскажи, как правильно написать?
(List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir)
кстати
если вот эту штуку можно подставлять вот так:
for(Warehouse__c w : (List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir))
было бы неплохо, так как я помню, что "цикл на квери" имел какие-то свои преимущества в плане лимитов, и возможно когда то потребуется сделать квери в нем динамическим...
[quote="Andrew Muzychuk"](List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir)[/quote] кстати если вот эту штуку можно подставлять вот так: [code]for(Warehouse__c w : (List<Warehouse__c>)Database.query(soql + ' order by ' + sortField + ' ' + sortDir))[/code] было бы неплохо, так как я помню, что "цикл на квери" имел какие-то свои преимущества в плане лимитов, и возможно когда то потребуется сделать квери в нем динамическим...
SOQL For Loops
Не создается отдельная переменная, которая использует Heap Size, и Apex эффективней обрабатывает список, возвращаемый SOQL.
Я очень часто так циклы и SOQL запросы оформляю. Очень редко, когда еще для чего-то надо список использовать или если это будет Map<Id, sObject>.
[url=https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_for_SOQL.htm]SOQL For Loops[/url] Не создается отдельная переменная, которая использует Heap Size, и Apex эффективней обрабатывает список, возвращаемый SOQL. Я очень часто так циклы и SOQL запросы оформляю. Очень редко, когда еще для чего-то надо список использовать или если это будет Map<Id, sObject>.
SOQL For Loops
Не создается отдельная переменная, которая использует Heap Size, и Apex эффективней обрабатывает список, возвращаемый SOQL.
Есть ещё у кого нибудь варианты?
[quote="Andrew Muzychuk"][url=https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_loops_for_SOQL.htm]SOQL For Loops[/url] Не создается отдельная переменная, которая использует Heap Size, и Apex эффективней обрабатывает список, возвращаемый SOQL.[/quote] Есть ещё у кого нибудь варианты?
Не создается отдельная переменная, которая использует Heap Size,
но вроде там была одна drawback, flaw в этом, вроде записи приходят в этот цикл пачками по 200, т.е. там идет цепочка квери которая бьет по лимитам, не помню точно, я писал об этом в одной теме здесь, когда разбирал его вопрос
[quote="Andrew Muzychuk"]Не создается отдельная переменная, которая использует Heap Size,[/quote] но вроде там была одна drawback, flaw в этом, вроде записи приходят в этот цикл пачками по 200, т.е. там идет цепочка квери которая бьет по лимитам, не помню точно, я писал об этом в одной теме здесь, когда разбирал его вопрос
Мне интерсно, кто-то все таки решится и напишет код за Vitaliy Karensky)
Мне интерсно, кто-то все таки решится и напишет код за Vitaliy Karensky)
Мне интерсно, кто-то все таки решится и напишет код за Vitaliy Karensky)
Ты знаешь как это сделать?
[quote="Gres"]Мне интерсно, кто-то все таки решится и напишет код за Vitaliy Karensky)[/quote] Ты знаешь как это сделать?
Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.
Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.
Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.
Приведи пример кода.
[quote="DevNull"]Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.[/quote] Приведи пример кода.
Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.
Приведи пример кода.
еп вашу мать, нынче уже и погуглить лень Dynamic SOQL...... ох не завидую я тому для кого делается это тестовое задание
[quote="Vitaliy Karensky"][quote="DevNull"]Vitaliy Karensky, в данном случае твоя ошибка в том что ты используешь Dynamic SOQL не изучив его основы. Изучи Dynamic SOQL и разложи свой код по полочкам и продебаж каждую строчку. Это не займет много времени, но даст тебе большой профит. За тебя код писать никто не будет, тебе уже указали в чем проблема, и как ее решить.[/quote] Приведи пример кода.[/quote] еп вашу мать, нынче уже и погуглить лень Dynamic SOQL...... ох не завидую я тому для кого делается это тестовое задание
Ну давай я погуглю за тебя [url=https://developer.salesforce.com/docs/atlas.en-us.apex_workbook.meta/apex_workbook/apex_workbook.htm]APEX WORKBOOK[/url] [url=https://developer.salesforce.com/docs/atlas.en-us.204.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql.htm]SOQL[/url] [url=https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dynamic_soql.htm]Dynamic SOQL[/url]
А потом я за тебя сделаю твое задание
А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги
А потом я за тебя сделаю твое задание А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги
А потом я за тебя сделаю твое задание
А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги
Уважаемый, не надо нервничать. Мне нужен всего лишь пример кода. Или я пришёл сюда выслушать что я умею, или не умею? Если у тебя есть что по делу - напиши, с примером, как исправить. Если ты спец конечно, ну а если нет - то для чего ты здесь тогда, потешить своё ЧСВ?
[quote="Maxim Elets"]А потом я за тебя сделаю твое задание А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги[/quote] Уважаемый, не надо нервничать. Мне нужен всего лишь пример кода. Или я пришёл сюда выслушать что я умею, или не умею? Если у тебя есть что по делу - напиши, с примером, как исправить. Если ты спец конечно, ну а если нет - то для чего ты здесь тогда, потешить своё ЧСВ?
А потом я за тебя сделаю твое задание
А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги
Уважаемый, не надо нервничать. Мне нужен всего лишь пример кода. Или я пришёл сюда выслушать что я умею, или не умею? Если у тебя есть что по делу - напиши, с примером, как исправить. Если ты спец конечно, ну а если нет - то для чего ты здесь тогда, потешить своё ЧСВ?
Уважаемый, не надо лениться, и надо читать что тебе пишут, а не выпрашивать чтобы за тебя сделали твою работу
[quote="Vitaliy Karensky"][quote="Maxim Elets"]А потом я за тебя сделаю твое задание А потом устроюсь вместо тебя на работу и буду зарабатывать вместо тебя деньги[/quote] Уважаемый, не надо нервничать. Мне нужен всего лишь пример кода. Или я пришёл сюда выслушать что я умею, или не умею? Если у тебя есть что по делу - напиши, с примером, как исправить. Если ты спец конечно, ну а если нет - то для чего ты здесь тогда, потешить своё ЧСВ?[/quote] Уважаемый, не надо лениться, и надо читать что тебе пишут, а не выпрашивать чтобы за тебя сделали твою работу
Я скинул тебе 3 ссылки, которые очень даже по теме, с примерами и тд и тп. Но видимо ты настолько ленивый, что ждешь просто готовых решений
Я скинул тебе 3 ссылки, которые очень даже по теме, с примерами и тд и тп. Но видимо ты настолько ленивый, что ждешь просто готовых решений
Я скинул тебе 3 ссылки, которые очень даже по теме, с примерами и тд и тп. Но видимо ты настолько ленивый, что ждешь просто готовых решений
Спасибо тебе и на этом. Дорогу осилит идущий.
[quote="Maxim Elets"]Я скинул тебе 3 ссылки, которые очень даже по теме, с примерами и тд и тп. Но видимо ты настолько ленивый, что ждешь просто готовых решений[/quote] Спасибо тебе и на этом. Дорогу осилит идущий.