Форум компании "ОМЕГА"
31 Марта 2020, Вторник, 16:52:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Элемент формы "Область повтора"  (Прочитано 12336 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Xander
Full Member
***
Офлайн Офлайн

Сообщений: 109


« Ответ #6 : 12 Сентября 2012, Среда, 14:02:44 »

Ответ на вопрос 2:
Да, можете. Если необходимо при открытии экрана с таблицей установить курсор на нужную запись, необходимо воспользоваться функцией QuerySetup(,11,), которая устанавливает признак запуска экрана, следующего за вызовом этой функции в режиме LookUp.   

Пример алгоритма с установкой курсора на нужную запись и поиском в списке:

query declare Query1
  from ORGANIZ mode(0) key ORG:K_NOMER()
end
Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=100) ! LookUp  (№ Организации=100)
tmp=QUERYSETUP(,11,,)
loop screen Screen1
  when  completed Button8              ! когда выбирается кнопка Поиска
!    Var2=105
    Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=Var2)  ! выполняется след. LookUp
    tmp=REFRECHSCREEN()
  end
end


Здравствуйте!

А как установить курсор в области повтора на первую строку, при условии, что выборка производится из стороннего DBF-файла (через регистрацию в комплексе пользовательского файла, в моем примере файл в формате DBF)?
В DBF-файле имеется колонка дата, по этой колонке происходит сортировка записей (по нарастающей или по убывающей) и вывод на экран в SBW.
Хотелось бы устанавливать курсор либо на первую (или последнюю) запись в ОБЛАСТИ ПОВТОРА.

Пример кода приведен ниже :

routine ПРИНЯТЬ
   file SBPP REOPEN path F
   query declare выборка03
      from SBPP mode(0)()
   end
   loop screen Screen3
      Var51 =SBP:A_INN
...
      when  completed Button5478                                   ! Удалить
         record DELETE mode 0 SBPP()
         end
      end
when pressed MOUSERIGHT field ListBox45                                 !  Удалить
   Tmp = +MESSAGE('Вы действительно хотите удалить эту позицию?','Внимание!',,'Да|Нет',2)
IF Tmp == 1 THEN
         record DELETE mode 0 SBPP()
         end
         REFRECHSCREEN()
end
end
...
exit



Получается нельзя решить данную проблему?   Грустит
Записан
Xander
Full Member
***
Офлайн Офлайн

Сообщений: 109


« Ответ #5 : 02 Июля 2012, Понедельник, 11:07:12 »

Ответ на вопрос 2:
Да, можете. Если необходимо при открытии экрана с таблицей установить курсор на нужную запись, необходимо воспользоваться функцией QuerySetup(,11,), которая устанавливает признак запуска экрана, следующего за вызовом этой функции в режиме LookUp.   

Пример алгоритма с установкой курсора на нужную запись и поиском в списке:

query declare Query1
  from ORGANIZ mode(0) key ORG:K_NOMER()
end
Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=100) ! LookUp  (№ Организации=100)
tmp=QUERYSETUP(,11,,)
loop screen Screen1
  when  completed Button8              ! когда выбирается кнопка Поиска
!    Var2=105
    Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=Var2)  ! выполняется след. LookUp
    tmp=REFRECHSCREEN()
  end
end


Здравствуйте!

А как установить курсор в области повтора на первую строку, при условии, что выборка производится из стороннего DBF-файла (через регистрацию в комплексе пользовательского файла, в моем примере файл в формате DBF)?
В DBF-файле имеется колонка дата, по этой колонке происходит сортировка записей (по нарастающей или по убывающей) и вывод на экран в SBW.
Хотелось бы устанавливать курсор либо на первую (или последнюю) запись в ОБЛАСТИ ПОВТОРА.

Пример кода приведен ниже :

routine ПРИНЯТЬ
   file SBPP REOPEN path F
   query declare выборка03
      from SBPP mode(0)()
   end
   loop screen Screen3
      Var51 =SBP:A_INN
...
      when  completed Button5478                                   ! Удалить
         record DELETE mode 0 SBPP()
         end
      end
when pressed MOUSERIGHT field ListBox45                                 !  Удалить
   Tmp = +MESSAGE('Вы действительно хотите удалить эту позицию?','Внимание!',,'Да|Нет',2)
IF Tmp == 1 THEN
         record DELETE mode 0 SBPP()
         end
         REFRECHSCREEN()
end
end
...
exit
Записан
Jukova
Сотрудник ООО ОМЕГА
*****
Офлайн Офлайн

Сообщений: 80


« Ответ #4 : 13 Апреля 2009, Понедельник, 12:14:55 »

По приведенному коду сложно сказать из-за чего может возникать данная ошибка: какие колонки определены в выборке, что находится в screen loop. Попробуйте оставить один FROM (второй закомментарить), запустить на выполнение, затем то же проделать со вторым FROM. В screen для области повтора не включать переключатели.
Записан
scorpion
Full Member
***
Офлайн Офлайн

Сообщений: 109


« Ответ #3 : 13 Апреля 2009, Понедельник, 11:33:55 »

Ага..
Спасибо, со вторым вопросом разобрался. А вот с первым не очень. Точнее совсем не работает, выдает ошибку(в приложении).
код следующий:
query declare qOrg
  from ORGANIZ mode(0) key ORG:K_NOMER()
  from ORGANIZ mode(0) key ORG:K_NAME()
end
loop screen dOrg
end


* 001.jpg (16.59 Кб, 414x137 - просмотрено 2356 раз.)
Записан
Jukova
Сотрудник ООО ОМЕГА
*****
Офлайн Офлайн

Сообщений: 80


« Ответ #2 : 10 Апреля 2009, Пятница, 13:25:49 »

Ответ на вопрос 2:
Да, можете. Если необходимо при открытии экрана с таблицей установить курсор на нужную запись, необходимо воспользоваться функцией QuerySetup(,11,), которая устанавливает признак запуска экрана, следующего за вызовом этой функции в режиме LookUp.   

Пример алгоритма с установкой курсора на нужную запись и поиском в списке:

query declare Query1
  from ORGANIZ mode(0) key ORG:K_NOMER()
end
Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=100) ! LookUp  (№ Организации=100)
tmp=QUERYSETUP(,11,,)
loop screen Screen1
  when  completed Button8              ! когда выбирается кнопка Поиска
!    Var2=105
    Var1=ORG:NOMER(GET ORGANIZ ORG:K_NOMER ORG:NOMER=Var2)  ! выполняется след. LookUp
    tmp=REFRECHSCREEN()
  end
end
Записан
Jukova
Сотрудник ООО ОМЕГА
*****
Офлайн Офлайн

Сообщений: 80


« Ответ #1 : 10 Апреля 2009, Пятница, 13:07:30 »

Ответ на вопрос 1:
Переключатель «Предварительная сборка» в положении включено означает, что при формировании таблицы выборка сначала будет прочитана, после этого над ней будут произведены такие действия, как сортировка (если задана), группировка (если задана), и только после этого будет показана на экране.
Переключатель «Контроль пустых строк» в положении включено означает, что если при наборе таблицы в какой-либо из записей не будут заполнены поля, то такая запись в таблице не будет показана.
Переключатель «Возможность пересортировки» в положении включено означает, что для пересортировки строк в таблице можно использовать стандартные комбинации клавиш <Alt>+<1>, <Alt>+<2> и т.д. по количеству строк FROM с заданными ключами в описании выборки.

Например:

query declare Query1
   from ORGANIZ mode(0) key ORG:K_NOMER()
   from ORGANIZ mode(0) key ORG:K_NAME()
end
loop screen Screen1              ! экран с полем "Область просмотра" по выборке Query1
end


При установленном переключателе “Возможность пересортировки” по комбинации клавиш <Alt>+<1> будет производиться сортировка строк таблицы по ключу K_NOMER (по номерам организаций), по комбинации клавиш <Alt>+<2> будет производиться сортировка строк таблицы по ключу K_NAME (по названиям организаций). При этом переключатель “Предварительная сборка” должен быть выключен.
Записан
scorpion
Full Member
***
Офлайн Офлайн

Сообщений: 109


« : 10 Апреля 2009, Пятница, 08:01:48 »

Вопрос 1.
В свойствах элемента формы «область повтора» имеются возможность установить галочки:
 - предварительная сборка
 - контроль пустых строк
 - возможность пересортировки
Подскажите пожалуйста, для чего они нужны и последствия их использования, такие как реакция отображенной информации на удаление записи из БД по которой сформирована выборка или поведение при обновлении экрана оператором REFRECHSCREEN() и т.п..
Вопрос 2.
Могу ли я указать запись, на которую будет устанавливаться курсор области повтора при «активации» данного элемента формы? Если да то как?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.032 секунд. Запросов: 20.