|
|
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Постановка задачи: Есть три таблицы Студенты(idstud, fio, gruppa) Предметы(idpred, predmet,gruppa) Итоги сессии(idexam,idstud,idpred,ozenka) Создаем форму для воода данных по итогам сесии Форма включает автоинкрементное поле idexam поле combobox с постановкой ФИО студнета поле combobox с постановкой Предмета поле Оценка Требуется: при выборе Фио из первого combobox во втором combobox отбираются Предметы по полю совпадения номера группы и наоборот при выборе Предмета из второго combobox в первом combobox отбираются Фио по полю совпадения номера группы Возможное решение: знаю как это сделать в Аксесс - произвожу корректировку подстановочного запроса с вводом параметра по полю Группа в обоих combobox и на собитии после изменение делает обновление запроса. Понимаю вариантов реализации может быть много. Посоветуйте, пожалуйста, наиболее простой (или оптимальный) способ реализации задачи. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 10:19 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
После выбора в клике какого-нибудь комбобокса, выбираешь записи по условию и заполняешь заново зависимый комбобокс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 12:08 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Возможное решение: знаю как это сделать в Аксесс - произвожу корректировку подстановочного запроса с вводом параметра по полю Группа в обоих combobox и на собитии после изменение делает обновление запроса. Примерно также - задаешь в качестве источника комбо параметризированый запрос, в при выборе студента в валиде этого комба присваеваешь новое значение переменой запроса и делаешь Requery этим комбо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 12:25 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Все-таки Аксесс отличается от FoxPro. Потому попытаюсь описать некий вариант (скажу сразу пока не получается) 1. Делаю и сохраняю запрос по таблице Студенты 2. Поле Группа параметризирую по полю формы Предметы 3. Пишу процедуру обновления после выбора значения в поле формы Предметы аналогично делаю для поле формы Студент? Либо. 1. При загрузке формы делаю в качестве источника данных запрос к таблице(Студент, Предметы) 2. После изменения пишу процедуру обновления recordSource зависимого поля (т.е. опять выполняю запрос с фильтрацией по значению поля Группа из основного поля) Если можно небольшой пример - туго что-то соображается:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 12:42 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 13:16 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 20:04 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Простите возможно за наивный вопрос. В приведенном Вами коде для комбо2 используется строка запроса в Источнике данных. В этом случае после выбора данных в комбо2 будут ли они заносится в таблицу? Идея такая есть две формы - табличная форма отображающая список Студентов Предметов и Оценок. Для ввода данных используется одиночная форма в которой собственно и будут сформированы данные для ввода или корректировки записи. Думаю в табличной форме можно будет сделать поле для отбора по номеру группы, этот номер естественно передавать в одиночную форму. Но пока это непринципиально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2007, 23:13 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
В приведенном Вами коде для комбо2 используется строка запроса в Источнике данных. В этом случае после выбора данных в комбо2 будут ли они заносится в таблицу? В исходную нет. В ту, которая указана в INTO SELECT-а конечно. И ее вполне можно использовать в других формах, пока не закроете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 09:10 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Burn В исходную нет. В ту, которая указана в INTO SELECT-а конечно. И ее вполне можно использовать в других формах, пока не закроете Спасибо Бёрн. Однако, все равно не догоняю, вернее не понимаю в целом. Как в иностранном - отдельные слова и словосочетания понимаются точно, но связать в предложение и осмысленную речь пока не получается. Может по пробуем так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 09:51 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
продолжение: Форма-таблица "Итоги сессии" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 09:53 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Одиночная форма для ввода данных Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 09:55 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Цель - реализовать вышсказанное наиболее простым с минимальным кодированием и прозрачным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 09:56 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
2СяоФэн Лучше прикрепите сами формы и примеры таблиц - проще будет разбиратся. Суньте их в архив, я позже посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 12:33 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Прикрепил. Спасибо за помощь, Бёрн! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 13:25 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Держи Если что будет непонятно в исправлениях - спросищ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 18:19 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
BurnДержи Если что будет непонятно в исправлениях - спросищ Большое спасибо. Разобрался. Правда не сразу. Вы там забыли убрать дебугерскую заглушки. Насилу понял, что к чем. Итак изменениям подверглись: файл exams.prg. Все изменения понятны - убрано отображения NULL идентификатора, и включена MULTILOCKS (да кстати, а зачем это требовалось, ведь в исходном варианте все нормально работало? Или эти изменения важны именно в силу изменения других элементов?) формы Итоги сессии: 1. Dataaenvaromental - выдобавили связи (это было раньше в одиночной форме ) 2. Изменили код кнопки добавить Было Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 3. Изменили код кнопки изменить Было Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2007, 21:06 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Разобрался. Правда не сразу Попробую объяснить свою логику, так как одни изменения следствия других и надо смотреть всю цепочку. Форма editone была немодальная, поэтому код кнопки редактирования/добавления работал следующим образом - призсходил вызов формы, потом продолжалось выполнение кого куска Click-а формы, который шёл после DO FORM и только потом вы попадали в форму редактирования. Поэтому весь смысл этого куска пропадал =SEEK(m.liExamId,"exams","examId") ThisForm.Refresh() т.к. указатель в таблице никуда не перемещался и ничего обновлять на форме еще ненадо. Поэтому я сделал форму editone модальной - пока человек не закрое ее он никуда не попадет дальше (впринципе можно было оставить ее немодальной, но тогда значительно усложнялась ситуация по отлову момента прекращения редактирования в основной форме и ее обновления) Использование модальной формы повлекло за собой отказ от приватной датасесии и окрытия по-новой рабочих таблиц - форма вполне может работать и с уже открытыми в родительской форме таблицами. Использование дефолтной датасесии потребовало явного включения буферизации и установки SET MULTILOCKS ON (раньше это осуществляла сама DataSesion) Явное позиционирование также стало ненужным т.к. мы работаем с одной т тойже таблице и значит указатель записи в обоих формах синхронен. А раз не надо запоминать где мы стояли, то и переменная ненужна. Включение связей и использование GO RecNo() остались из-за борьбы с необновлявнимися связями в основной таблице. Впринципе сечас они лишние но оставил так как не мешают. Конструкция GO RecNo() это способ выставить в нужные позиции дочерные записи, т.к. если по какимто причинам мы переместим в дочерных записях указатель, то он правильно отпозиционируется только если мы переместимся по записям ведущей таблицы. Что и имитируется этм оператором - мы перешли на туже строку на которой и стояли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2007, 12:55 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо за объяснение. Все становится понятным. Спасибо за помощь.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2007, 15:17 |
|
||
|
Обработка условия в combobox
|
|||
|---|---|---|---|
|
#18+
Сделал все как сказано в первом примере - ничего не работает ! уже второй день сижу с этой проблемой !!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2008, 18:43 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=160&tid=1587772]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 364ms |

| 0 / 0 |
