Не удалось прочесть строку в таблице, которая содержит переменную

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
Здравствуйте! Отладила проект в PM, отрабатывал хорошо, в ZP возникла проблема.

Дело в том, что я читаю строку в таблице, которая содержит переменную var1: http://s1.micp.ru/1PdA4.png

в ZP стопит с ошибкой:
Взятие строки из таблицы Строки с номером не существует в таблице

Но я ведь не по номеру обращаюсь к строке, а по содержанию текста. Переменная var1 заполняется текстом в процессе выполнения проекта.
После возникновения ошибки пробовала устанавливать значение 0 для переменной var1 в начале проекта и во входных настройках, ошибка та же.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 458
Благодарностей
8 682
Баллы
113
Здравствуйте! Отладила проект в PM, отрабатывал хорошо, в ZP возникла проблема.

Дело в том, что я читаю строку в таблице, которая содержит переменную var1: http://s1.micp.ru/1PdA4.png

в ZP стопит с ошибкой:
Взятие строки из таблицы Строки с номером не существует в таблице

Но я ведь не по номеру обращаюсь к строке, а по содержанию текста. Переменная var1 заполняется текстом в процессе выполнения проекта.
После возникновения ошибки пробовала устанавливать значение 0 для переменной var1 в начале проекта и во входных настройках, ошибка та же.
То что в оповещении об ошибке есть фраза про номер строки, да, есть такая особенность.
Но проблема связана скорее всего с тем, что в текущий момент таблица пустая, либо действие производится не с той таблицей, либо файл который привязан к таблице пустой в этот момент..
 
  • Спасибо
Реакции: alya_6

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
То что в оповещении об ошибке есть фраза про номер строки, да, есть такая особенность.
Но проблема связана скорее всего с тем, что в текущий момент таблица пустая, либо действие производится не с той таблицей, либо файл который привязан к таблице пустой в этот момент..
Спасибо, я решила вопрос (или не решила), но ошибка выводиться перестала, посредством кубика c# кода:

Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["var1"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["Таблица"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i=0; i < sourceTable.RowCount; i++)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // пройдем в цикле по всем ячейкам
        for (int j=0; j < cells.Length; j++)
        {
            // проверяем содержание текста в ячейке, если есть совпадение возвращаем "yes"
            if (cells[j].Contains(textContains))
               return project.Variables["varr3"].Value = sourceTable.GetCell(i,j);
            return project.Variables["varr4"].Value = sourceTable.GetCell(i,j++);
        }
    }
}
// если ничего не нашли возвращаем "no"
return "no";
Потом отпишусь, точно ли записывается.
 
  • Спасибо
Реакции: Sergodjan

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