|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Есть некий блок данных, основанный на view. Пользователь должен после поиска проставить у некоторых записей галочки, и по кнопке с выбранными записями надо сделать в базе некие действия. Никаких изменений в данные он не вносит. Для совершения необходимых действий в базе я хочу получить из блока массив id-шников тех строк, у которых стоят галочки. Как это сделать правильно и красиво? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 10:45 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 10:58 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
В чем проблема: 1. нон датабайсе Check-box 2. по кнопке: пробегаем все записи в блоке (см. пример в help'е) смотрим нажат ли check-box если да - заносим(добавляем) Id'шник в массив если конец блока - выход возможна оптимизация - проход не по всем записям, а только по отфетченным (просмотренным пользователем). В случае, если данные отсортированы так, что запрос может возврашать очень много записей, а пользователь работает только с "верхними" - может здорово выручить. (эта тема обсуждалась, т.ч. код можно посмотреть/поискать в форуме) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 10:59 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
+ скорее всего, динамик sql + галочки - небазовые поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 11:00 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevВ чем проблема: пробегаем все записи в блоке (см. пример в help'е)...) Да я так и думала, по другому похоже никак... Leonid Kudryavtsev возможна оптимизация - проход не по всем записям, а только по отфетченным (просмотренным пользователем). В случае, если данные отсортированы так, что запрос может возврашать очень много записей, а пользователь работает только с "верхними" - может здорово выручить. (эта тема обсуждалась, т.ч. код можно посмотреть/поискать в форуме) Этот момент тоже вызывает у меня большие сомнения. Действие со строками (которое по кнопке) требует от пользователя некой осмысленности. Т.е. если все записи не отфетчены, то осмысленности очевидно не наблюдается. Вносить при этом серьезные изменения в базу как-то не хочется. Что делать? Поставить Query all Record - Да ?? Или выдавать по кнопке сообщение - что вы мол все записи не просмотрели и ничего не делать? Если не затруднит, дайте ссылку на обсуждение о котором вы пишете. Что-то поиском не нашла... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 11:44 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
поставьте ограничение на отфетченные) если не сейчас, то завтра пользователи сами взвоют, мол кнопка медленно работает:) поиск по query_hits ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 12:18 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Смысла ставить Query all Record - Да не вижу вообще, это не гарантирует, что пользователи реально данные записи просмотрят. В моем случае (OeBS) - данные на форме сортировались в порядке убывания дат. Т.е. человек в 90% находил нужные данные в 25 строках. В общем, это было не ошибка, а правильное поведение (нашел нужные записи, пометил, запустил обработку дальше). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 12:56 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Ora-guest пишет: > Автор: Ora-guest > Есть некий блок данных, основанный на view. Пользователь должен после > поиска проставить у некоторых записей галочки, и по кнопке с выбранными > записями надо сделать в базе некие действия. Никаких изменений в данные > он не вносит. Для совершения необходимых действий в базе я хочу получить > из блока массив id-шников тех строк, у которых стоят галочки. Как это > сделать правильно и красиво? > Тема <http://www.sql.ru/forum/actualthread.aspx?tid=585717> Ответить > <http://www.sql.ru/forum/actualpost.aspx?tid=585717> Сообщение > <http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=585717&msg=6060163> > table_from_block Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 13:12 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
GKS_Samara table_from_block И зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 13:58 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Прикольно. сейчас у меня следующий код в форме (создаю массив для последующей обработки): GO_BLOCK ('MY_BLOCK'); First_record; i := 0; loop if :MY_BLOCK.CHECKBOX= 'Y' THEN i := i + 1; v_tbl(i) := :MY_BLOCK.ID; end if; exit when :system.last_record='TRUE'; next_record; end loop; MY_BLOCK.CHECKBOX имеет следующие свойства. Database Item: No Value When Checked: Y Value When Unchecked: N Initial Value: Y Так вот, когда заходишь в форму - то галочки все на записях проставлены. Но на самом деле значения в MY_BLOCK.CHECKBOX нет, пока не проставишь/не снимешь галочку руками. Если ничего не делать (как бы если пользователь согласен с проставленными галочками) - цикл завершается с i = 0. Может кто-нибудь объяснить что происходит? У меня OeBS. MY_BLOCK.CHECKBOX имеет Item Type CheckBox, Subclass Information 'CHECKBOX'. Leonid Kudryavtsev, вопрос вам собственно - вы уже как я поняла, такое делали. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 11:22 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
ora-guest Так вот, когда заходишь в форму - то галочки все на записях проставлены. См. свойство итема "Check Box mapping of Other Value", значение по умолчанию 'Checked' [quot ora-guest] Если ничего не делать (как бы если пользователь согласен с проставленными галочками) - цикл завершается с i = 0. [/qout] И что удивительного? Цикл перебирает все записи Т.к. записей с :MY_BLOCK.CHECKBOX= 'Y' нет (там не 'Y', а null), то if (приращение i) никогда не выполняется. Соответственно завершаемся с i = 0 Почему не отрабатывает, как ты ожидаешь "Initial Value", с ходу не отвечу. Давно Forms'ами не занимаюсь, а в help'е смотреть влом. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 11:38 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
ora-guestТак вот, когда заходишь в форму - то галочки все на записях проставлены. Но на самом деле значения в MY_BLOCK.CHECKBOX нет, пока не проставишь/не снимешь галочку рукамиСмотри свойство Check Box Mapping of Other Values. Кстати, а зачем метаться по блоку, собирая значения, когда все можно делать в триггере WHEN-CHECKBOX-CHANGED: поставили галку - добавил в массив; сняли - удалил? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 11:42 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПочему не отрабатывает, как ты ожидаешь "Initial Value", с ходу не отвечу. Давно Forms'ами не занимаюсь, а в help'е смотреть влом. Usage Notes When using the default value to initialize the state of items such as check boxes, radio groups, or list items, keep in mind that the default value does not get assigned until Oracle Forms creates a record in the block... Получается, что считывание записи из базы - не считается "creates a record in the block'. Неужели в Post-query присвоение придется писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 11:58 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
FRM-42100 ora-guestТак вот, когда заходишь в форму - то галочки все на записях проставлены. Но на самом деле значения в MY_BLOCK.CHECKBOX нет, пока не проставишь/не снимешь галочку рукамиСмотри свойство Check Box Mapping of Other Values. Кстати, а зачем метаться по блоку, собирая значения, когда все можно делать в триггере WHEN-CHECKBOX-CHANGED: поставили галку - добавил в массив; сняли - удалил? пользователь должен выбрать записи, а галки может и не проставлять руками, они по умолчанию на все записи предложены. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 11:59 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Ora-guest Неужели в Post-query присвоение придется писать? Зачем? Чем тебе NULL не нравиться? Поставь правильно "Check Box Mapping of Other Values". В проверку условие в IF добавь NVL( , ) Держаться! До выходных уже не далеко! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 12:08 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Держаться! До выходных уже не далеко! Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 12:12 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПоставь правильно "Check Box Mapping of Other Values". В проверку условие в IF добавь NVL( , )Мне кажется, аккуратней будет использовать Convert_Other_Value ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 12:13 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
FRM-42100Мне кажется, аккуратней будет использовать Convert_Other_Value Так и сделала, спасибо за совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2008, 12:21 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
А делал кто-нибудь в форме итог с группировкой? Ну то есть идешь по блоку, первое поле какая-нибудь позиция. Так вот, чтобы внизу отображался итог по блоку (сумма), но только по тем строкам, где позиция равна текущей (на которой стоит курсор)? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2008, 11:14 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
ora-quest...но только по тем строкам, где позиция равна текущей (на которой стоит курсор)? позиция = номенклатура = MTL_SYSTEM_ITEMS ? Не требовалось. Но в принципе сделать можно. Технических (логических) проблем особенно не видно. Модератор: Тема перенесена из форума "Oracle". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2008, 11:45 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
Apeldop Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Посредством персонализации (не трогая саму форму) как можно такой цикл организовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2012, 17:35 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
...желательно без custom.pll ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2012, 12:13 |
|
Вопрос специалистам по FORMS
|
|||
---|---|---|---|
#18+
IrhenApeldop Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Посредством персонализации (не трогая саму форму) как можно такой цикл организовать? Что-то типа такого: 0. when-new-form-instance 0.1 в глобальную переменную XX_LOOP кладем N 1. Начало. Если цикл запускаем по самодельному пункту меню (SPECIALnn), то на событие SPECIALnn настриваем действия: 1.1 go_block 1.2 first_record; 1.3 в глобальную переменную XX_LOOP кладем Y 1.4 добавлям id в глобальную (или пакетную) переменую. 1.5 next_record 2. when-new-record-instance если global.xx_loop='Y' and :system.last_record!='TRUE' 2.1 добавлям id в глобальную (или пакетную) переменую. 2.2 next_record 3.when-new-record-instance если global.xx_loop='Y' and :system.last_record='TRUE' 2.1 добавлям id в глобальную (или пакетную) переменую. 2.2 в глобальную переменную XX_LOOP кладем N На практике не проверял. Наверняка какие-то нюансы вылезут. Например, как обрабатывать ситуацию, когда в блоке только одна запись, или он пустой. Но это в качестве домашнего задания. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2012, 11:54 |
|
|
start [/forum/topic.php?fid=51&msg=35486886&tid=1878481]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 166ms |
0 / 0 |