|
|
|
Помогите с формами
|
|||
|---|---|---|---|
|
#18+
Я еще новичек в foxpro, много не знаю Пока тренируюсь сделать форму для простой несвязанной таблицы Почему следущее не работает ? В процедуре инициализации формы прописываю : ( Я так понимаю, что должно быть при запуске формы ) set deleted on thisform.text1.enabled=.f. thisform.text2.enabled=.f. thisform.text3.enabled=.f. thisform.text4.enabled=.f. // все текстовые поля нельзя изменять thisform.command1.enabled=.f. thisform.command2.enabled=.f. thisform.command3.enabled=.f. thisform.command4.enabled=.f. /*Это первые 4 кнопки навигации- первая, следущая, предыдущая,последняя, по умолчанию считаю что в таблице нет записей, так что они неактивны */ thisform.command8.enabled=.t.// добавить- всегда возможно thisform.command7.enabled=.f.//Редактировать, неактивно thisform.command6.enabled=.f.//Удалить , неактивно do case /* В случае, если есть одна запись, можем ее редактировать и удалить */ case reccount()=1 thisform.command7.enabled=.t. thisform.command6.enabled=.t. case reccount()>1 /* В случае если записей больше можем перейти на следущую и последнюю , редактировать и удалить*/ thisform.command2.enabled=.t. thisform.command4.enabled=.t. thisform.command7.enabled=.t. thisform.command6.enabled=.t. endcase thisform.buffermode=2 Когда запускаю, даже если одна запись , все равно кнопки следущая и последняя активны Тоже самое если нет записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2005, 00:46 |
|
||
|
Помогите с формами
|
|||
|---|---|---|---|
|
#18+
Чувствуется, что ты изучал либо C, либо Delphi. Это видно по объявлению строки комментария. В Fox-е обычно это *. Посмотри Help по *; &&. Команду: Код: plaintext Функция reccount() - возвращает число записей в текущей или заданной таблице. Но значение, возвращаемое функцией RECCOUNT(), не зависит от установок SET DELETED и SET FILTER. Т.е. если ты создал записи в таблице, а потом их удалил, то RECCOUNT() покажет общее количество записей и удаленных тоже. Может быть поэтому у тебя кнопки и активны. Лучше использовать функцию EOF(). Посмотри Help. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2005, 08:13 |
|
||
|
Помогите с формами
|
|||
|---|---|---|---|
|
#18+
Владимир СА Код: plaintext Да, так и сделал Владимир САФункция reccount() - возвращает число записей в текущей или заданной таблице. Но значение, возвращаемое функцией RECCOUNT(), не зависит от установок SET DELETED и SET FILTER. Т.е. если ты создал записи в таблице, а потом их удалил, то RECCOUNT() покажет общее количество записей и удаленных тоже. А нельзя ли сделать так, чтобы удаленные полностью исчезали и reccount() возвращался истинное число записей ? Владимир СА Лучше использовать функцию EOF(). If eof() thisform.command7.enabled=.t. thisform.command6.enabled=.t else thisform.command2.enabled=.t. thisform.command4.enabled=.t. thisform.command7.enabled=.t. thisform.command6.enabled=.t. endif Так вообще ошибку выдает и вылетает ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 01:01 |
|
||
|
Помогите с формами
|
|||
|---|---|---|---|
|
#18+
Alekcei_dvoА нельзя ли сделать так, чтобы удаленные полностью исчезали и reccount() возвращался истинное число записей ?Для этого существует команда PACK Код: plaintext 1. 2. 3. If eof() thisform.command7.enabled=.t. thisform.command6.enabled=.t else thisform.command2.enabled=.t. thisform.command4.enabled=.t. thisform.command7.enabled=.t. thisform.command6.enabled=.t. endif Так вообще ошибку выдает и вылетает ...Если хочешь посмотри код примера Код: 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 08:29 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=283&tid=1592706]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
77ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 374ms |

| 0 / 0 |
