Сравнить значения ячеек в таблице C#

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Максимально упростил чтобы воспроизвести:
C#:
IZennoTable ProdSpec = project.Tables["ProductSpec"];
IZennoTable ProdGen = project.Tables["ProdGen"];

string t1 = ProdSpec.GetCell(0, 0).ToLower();
string t2 = ProdGen.GetCell(0, 0).ToLower();
//string t1 = project.Variables["t1"].Value; //так работает
//string t2 = project.Variables["t2"].Value; //так работает

if (t1 == t2)
{
    project.SendInfoToLog(t1 + " Равно!!! " + t2 , true);   
}
else
{
    project.SendInfoToLog(t1 + " Не равно! " + t2 , true);
}
В общем требуется сравнить значения ячеек из двух разных таблиц. Если значения я беру из переменной проекта (взятые из тех же таблиц), и сравниваю то все работает нормально.
А вот если я присваиваю значения локальным переменным и затем их сравниваю, то всегда получаю "Не равно!" даже если значения совпадают.
Не могу сообразить в чем подвох)
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
Максимально упростил чтобы воспроизвести:
C#:
IZennoTable ProdSpec = project.Tables["ProductSpec"];
IZennoTable ProdGen = project.Tables["ProdGen"];

string t1 = ProdSpec.GetCell(0, 0).ToLower();
string t2 = ProdGen.GetCell(0, 0).ToLower();
//string t1 = project.Variables["t1"].Value; //так работает
//string t2 = project.Variables["t2"].Value; //так работает

if (t1 == t2)
{
    project.SendInfoToLog(t1 + " Равно!!! " + t2 , true);  
}
else
{
    project.SendInfoToLog(t1 + " Не равно! " + t2 , true);
}
В общем требуется сравнить значения ячеек из двух разных таблиц. Если значения я беру из переменной проекта (взятые из тех же таблиц), и сравниваю то все работает нормально.
А вот если я присваиваю значения локальным переменным и затем их сравниваю, то всегда получаю "Не равно!" даже если значения совпадают.
Не могу сообразить в чем подвох)

попробуйте заменить строки:

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower();
string t2 = ProdGen.GetCell(0, 0).ToLower();
на

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower().ToString();
string t2 = ProdGen.GetCell(0, 0).ToLower().ToString();
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
попробуйте заменить строки:

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower();
string t2 = ProdGen.GetCell(0, 0).ToLower();
на

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower().ToString();
string t2 = ProdGen.GetCell(0, 0).ToLower().ToString();
Пробовал уже. Еще раз проверил, так тоже не работает.
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
Пробовал уже. Еще раз проверил, так тоже не работает.
Все прекрасно работает)









C#:
IZennoTable ProdSpec = project.Tables["ProductSpec"];
IZennoTable ProdGen = project.Tables["ProdGen"];
string t1 = ProdSpec.GetCell(0, 0).ToLower().ToString();
string t2 = ProdGen.GetCell(0, 0).ToLower().ToString();
if (t1 == t2){
    project.SendInfoToLog(t1 + " Равно!!! " + t2 , true);   
}
else{
    project.SendInfoToLog(t1 + " Не равно! " + t2 , true);
}
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Воспроизвожу у себя:
pic_1.JPG
pic_2.JPG

Я в растерянности)))
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
Я в растерянности)))
Попробуйте тримнуть, может у вас там где то пробел затаился.

Замените строки:

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower().ToString();
string t2 = ProdGen.GetCell(0, 0).ToLower().ToString();
на

C#:
string t1 = ProdSpec.GetCell(0, 0).ToLower().ToString().Trim();
string t2 = ProdGen.GetCell(0, 0).ToLower().ToString().Trim();
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Не помогло) У вас версия зенки 7.3.2.1?
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113

volody00

Client
Регистрация
06.09.2016
Сообщения
794
Благодарностей
814
Баллы
93
прикрепи таблички, что-то с ними не то. Может глюк. Сравни длину получаемых значений на всякий:
C#:
IZennoTable ProdSpec = project.Tables["ProductSpec"];
IZennoTable ProdGen = project.Tables["ProdGen"];
string t1 = ProdSpec.GetCell(0, 0).ToLower().Trim().ToString();
string t2 = ProdGen.GetCell(0, 0).ToLower().Trim().ToString();
project.SendInfoToLog("Длина t1 = " + t1.Length.ToString());
project.SendInfoToLog("Длина t2 = " + t2.Length.ToString());
if (t1 == t2){
    project.SendInfoToLog(t1 + " Равно!!! " + t2 , true);   
}
else{
    project.SendInfoToLog(t1 + " Не равно! " + t2 , true);
}
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Отрабатывает нормально на 5.47.0.0
Снимок.JPG
 

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Беда бедовая...
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
Ну как вариант проверьте нет ли русских символов в значении Brand Name
Проверьте символы B, a, e
 
  • Спасибо
Реакции: gexweb

volody00

Client
Регистрация
06.09.2016
Сообщения
794
Благодарностей
814
Баллы
93
попробуй просто новый проект создать и заново привязать таблицы. может глюкануло
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Прилепил упрощенный проект для воспроизведения. Может я чего-то не так понимаю и делаю...
Принцип работы: в начале заполняется шапка первой(основной) таблицы "статическими данными", затем дополнительно должна заполняться не совпадающими данными взятыми из второй таблицы. Вторая таблица при запуске шаблона пустая, данные в нее попадают почти в конце работы шаблона из распаршенного json, собственно эти данные должны дополнить шапку первой таблицы после сравнения.
 

Вложения

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 657
Благодарностей
1 323
Баллы
113
все починил, проверяйте, теперь все отлично работает
 

Вложения

  • Спасибо
Реакции: smmbox, volody00 и gexweb

volody00

Client
Регистрация
06.09.2016
Сообщения
794
Благодарностей
814
Баллы
93
все починил, проверяйте, теперь все отлично работает
что ты сделал? Я всю голову сломал, так и не могу понять, что ты поменял. Что это за лишний символ добавляется в начало, если задавать значение через c# (в его шаблоне)? Думал баг, но ты ж ведь как-то исправил ситуацию. Респект тебе
 

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18

volody00

Client
Регистрация
06.09.2016
Сообщения
794
Благодарностей
814
Баллы
93
эх, хотел видос записать, но фоновый шум ужасный. Просьба убрать детей от экранов. Погнали!

Что-то тут не так...
1.png
Далее я перепробовал 100 и 1 способ решения, в том числе удаление пробелов, создание новых таблиц, нового проекта и т.д. И вот оно наконец было найдено!
2.png

3.png

4.png
 
  • Спасибо
Реакции: gexweb

gexweb

Client
Регистрация
04.12.2016
Сообщения
144
Благодарностей
23
Баллы
18
Спасибо, проверил всё закрутилось! Назову этот случай проклятьем кодера))):dg:
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)