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

Фотография

почему не переходит в тело if


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

#1 gira13

gira13

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

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 12 августа 2014 - 09:20

Добрый день!

Версия  TestComplete'a 10.30, trial, использую Java Script, приложение написано на Delphi.Приложение открытое,т.к. отображается значок в Object Browser

p2.WaitProperty("ChildCount",30,10000);
if ((p2.ChildCount==26)||((p2.ChildCount==30)&(p2.VCLObject("CUSTOMER_NO").wText!=n_client)))
  {
    f_search.VCLObject("SB_CLIENT").VCLObject("GRID_CUSTOMER").Window("TDBCtrlPanel", "", 1).VCLObject("Checked_C").ClickButton(cbChecked);
    f_search.VCLObject("SB_CLIENT").VCLObject("GRID_CUSTOMER").Window("TDBCtrlPanel", "", 1).VCLObject("Checked_C").ClickButton(cbChecked);
    p2.WaitProperty("ChildCount",30,10000);
  }
  Log.PopLogFolder();
  Log.AppendFolder("Создание текущего счета","",pmNormal,Attr1);
  PropArray = new Array("ObjectIdentifier", "WndCaption"); 

Не переходит в тело if

Ставила breakpoint  на строку "PropArray...", вернуло: 

(p2.ChildCount==26)     false

(p2.ChildCount==30)    true

(p2.VCLObject("CUSTOMER_NO").wText!=n_client)  true

((p2.ChildCount==30)&(p2.VCLObject("CUSTOMER_NO").wText!=n_client))    1

Но в  if не заходит

 

Вообще изначально проблема такова: есть 2 таблицы- Таблица 1 клиентов и таблица 2 их счетов

При выборе клиента иногда он как бы не выбирается(это видно на клиенте со счетами, во второй таблице пусто). 

Если вторая таблица пустая, то ChildCount=26

Просто не знаю, как еще проверить, что клиент выбран правильно. Сравнивала свойства таблицы 2 при правильном и неправильном выборе - одинаковые свойства

Поэтому решила это так: снять выбор и снова выбрать клиента


  • 0

#2 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 12 августа 2014 - 09:39

or - ||
and - &&
  • 1

#3 gira13

gira13

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

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 12 августа 2014 - 10:11

or - ||
and - &&

нет, я поняла в чем дело: я не видела результата вхождение в тело if,т.к. для снятия выделения с клиента надо было не

f_search.VCLObject("SB_CLIENT").VCLObject("GRID_CUSTOMER").Window("TDBCtrlPanel", "", 1).VCLObject("Checked_C").ClickButton(cbChecked);

а

f_search.VCLObject("SB_CLIENT").VCLObject("GRID_CUSTOMER").Window("TDBCtrlPanel", "", 1).VCLObject("Checked_C").ClickButton(cbUnChecked);

теперь работает, но остается вопрос как проверить, выбран ли клиент "правильно"

Еще вариант:

когда клиент выбран "неправильно", при нажатии на кнопку возникает сообщение об ошибке. Я дописала, проверку:

if (pp.WaitVCLObject("Dialog",1000).Exists)
{
снять выделение с клиента
выбрать клиента
}

Вроде бы лучший вариант тем, что не будет выполняться в случае, если клиент не имеет счетов(ChildCount==26)

 

У меня это сообщение может появится во время ожидания другого VCLObject, можно как-то это использовать?

 

Или второй вариант нормальный?


  • 0

#4 wret

wret

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

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

Отправлено 12 августа 2014 - 11:49

 

or - ||
and - &&

нет, я поняла в чем дело: я не видела результата вхождение в тело if,т.к. для снятия выделения с клиента надо было не

Дело говорит, нельзя здесь использовать побитовую операцию


  • 0


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

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