Перейти к содержимому

Фотография

TC и датагрид


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 03 февраля 2011 - 15:23

Доброго времени суток, уважаемы форумчане!
Имеется такой кусок скрипта:

var d;
for (d=0;d<5;d++)
{
switch(d)
{
case 0: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](0);
break;
case 1: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](1);
break;
case 2: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](2);
break;
case 3: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](3);
break;
case 4: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](4);
break;
}
groupControl = orderTimeLoyaltyEdit["groupControl3"];
textBoxMaskBox = groupControl["teFrom"]["TextBoxMaskBox"];
textBoxMaskBox["Click"](15, 5);
textBoxMaskBox["Keys"]("1100");
textBoxMaskBox["Keys"]("Enter");
textBoxMaskBox = groupControl["teTo"]["TextBoxMaskBox"];
textBoxMaskBox["Click"](8, 9);
textBoxMaskBox["Keys"]("1500");
groupControl["bAddDiapazon"]["ClickButton"]();
gridControl = groupControl["gridControl1"];
gridControl["ClickCell"](d, "Скидка, %");
textBoxMaskBox = gridControl["TextEdit"]["TextBoxMaskBox"]["wText"] = "80";

gridControl["Click"](424, 75);
}
orderTimeLoyaltyEdit["bOk"]["ClickButton"]();

Теперь, собственно, сам вопрос.
Почему ТС, когда проходит цикл второй раз, не видит объект TextBoxMaskBox при попытке записи в gridControl (предпоследняя строка в цикле) ? И как возможно решить эту проблему?

ps: Язык C#Script, ТС 7 версии
Заране благодарю
  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 03 февраля 2011 - 16:08

Немного не в тему, но я бы на вашем месте заменила

switch(d)
{
case 0: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](0);
break;
case 1: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](1);
break;
case 2: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](2);
break;
case 3: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](3);
break;
case 4: orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](4);
break;
 }
на просто

orderTimeLoyaltyEdit["groupControl3"]["cbWeekDay"]["ClickItem"](d);
 
  • 0

#3 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 03 февраля 2011 - 16:34

Согласен, так намного проще, спасибо. Однако основной вопрос остается в силе...
  • 0

#4 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 03 февраля 2011 - 17:48

Предполагаю, что проблема в строке

gridControl = groupControl["gridControl1"];

Попробуйте использовать мапирование объектов, т.е. разберитесь, где в gridControl1 использованы параметры объекта, которые меняются от цикла к циклу и замените их на неизменяемые параметры..
Как-то так..
  • 0

#5 anagramma

anagramma

    Активный участник

  • Members
  • PipPip
  • 87 сообщений
  • Город:Moskow

Отправлено 04 февраля 2011 - 08:09

Может тоже и не в тему... но

надо избавиться от конкретных координат типа
объект.["Click"](424, 75);
а писать просто
объект.["Click"](); (или объект.["Click"]; ...просто не знаю точно синтаксис)
Это вообще ко всем методам Click относится.

скорее всего у Вас скрипт работает только с первым элементом т.к. Вы жестко прописали его координаты.
  • 0

#6 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 04 февраля 2011 - 08:22

Может тоже и не в тему... но

надо избавиться от конкретных координат типа
объект.["Click"](424, 75);
а писать просто
объект.["Click"](); (или объект.["Click"]; ...просто не знаю точно синтаксис)
Это вообще ко всем методам Click относится.

скорее всего у Вас скрипт работает только с первым элементом т.к. Вы жестко прописали его координаты.



Спасибо, за совет. Вообще я всегда стараюсь так и делать, просто сейчас скинул кусок так сказать "сырого" скрипта. Плюс в данном случае метод Click у меня вызывается просто с целью переведения курсора с ячейки, описанной в строке: gridControl["ClickCell"](d, "Скидка, %"); на просто любую область датагрида. Это абсолютно не критичная строка. Но все равно спасибо
  • 0

#7 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 04 февраля 2011 - 08:23

Предполагаю, что проблема в строке

gridControl = groupControl["gridControl1"];

Попробуйте использовать мапирование объектов, т.е. разберитесь, где в gridControl1 использованы параметры объекта, которые меняются от цикла к циклу и замените их на неизменяемые параметры..
Как-то так..




Спасибо, буду пробовать
  • 0

#8 Paul

Paul

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Павел

Отправлено 04 февраля 2011 - 12:24

Наконец-то добился правильной работы!
Помогла замена записи

textBoxMaskBox1 = gridControl["TextEdit"]["TextBoxMaskBox"]["wText"] = "80";

на

rows = gridControl["wRowCount"];
gridControl["ClickCell"](d, "Скидка, %");
gridControl["wValue"](rows-1, "Скидка, %") = 80;

Всем спасибо, думаю, тему можно закрывать
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных