|
|
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Объясните в каком состоянии находится чистая таблица EOF сразу = .T. BOF сразу = .F. {делаем skip -1 EOF = .T. BOF = T.} IF EOF() SKIP -1 &&< - В одном случае вызовет ошибку в другом нет IF BOF() thisform.AddNew() ENDIF ENDIF Как спозиционироваться в это начальное состояние EOF = .T. BOF = .F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 11:09 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Попробуй Код: plaintext Не проще было бы: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 12:05 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
в пустой табле позиционировать ничего не нужно просто проверять нужно так if !bof() and !eof() значит стоим на записи что-то делаем endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 12:10 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
В том то и дело что всякие go top, bottom не помогают ну сами попробуйте Чистая table Заходите сразу в command пишем MessageBox(EOF()) && <- Выдаст .T. MessageBox(BOF()) && <- Выдаст .F. потом как вы советуете if EOF() *go top or bottom приведет к состоянию && EOF() = .T. and BOF()= .T. мне же нужно перейти в EOF() = .T. and BOF()= .F. или EOF() = .F. and BOF()= .T. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 13:15 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
>мне же нужно перейти в EOF() = .T. and BOF()= .F. А нахрена это нужно? Такой ситуаций наблюдается сразу после открытия таблицы или если открыть ее BROWSE-ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 13:31 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Скажи для чего, скажу как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 15:17 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Ну такая ситуация возможна когда есть грид с привязанной в buildere таблицей у меня к нему привязан курсор и такая ситуация не наблюдается Идет проверка в Active форме в 5 формах где norm grid с Alias она проходит при любых состояниях в этой проблема IF EOF() SKIP -1 &&<- На этой строчке и вылазит что достигнуто начало IF BOF() MESSAGEBOX("lala") thisform.AddNew() ENDIF ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 19:40 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
чего так не катит??? if !bof() and !eof() ..... else MESSAGEBOX("lala") thisform.AddNew() endif и вообще вначале определить уж какой алиаз дергать а не тот, что грид дернул ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 19:52 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Тяжко с вами ну стоит эта проверка в activate в классе формы с aliasami нет проблем дергает всегда то что надо не охота переписывать класс повторюсь проблема только когда gridu даем cursor ее решает например постановка seek "" &&<- тогда вернет на состояние EOF()=.T. BOF =.F. IF EOF() SKIP -1 &&<- Предупреждение не вылезет IF BOF() MESSAGEBOX("lala") thisform.AddNew() ENDIF ENDIF Но я нехочу делать seek Можно ли как то с позиционирровать подругому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:04 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
да, странно, что это за класс такой нафиг там чего дергать нафиг скакать вообще куда-то и чем отличается таблица от курсора накрути там эту проверку курсор это или табла ну добавь там кусок if file(dbf(имя источника)) это для таблицы ..... else это для курсора .... endif и напиши для курсора одно а для таблы другое какие проблемы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:28 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Вообще-то, тебе уже намекнули. Используй GO TOP и GO BOTTOM Код: plaintext 1. 2. 3. 4. 5. 6. 7. SKIP -1 вызовет ошибку, если ты попытаешся перейти на запись до текущей в случае BOF() = .T. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:36 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
проверил на курсоре и на таблице ? !bof() and !eof() работает нормально и одинаково на пустых .f. если есть хоть одна запись .t. зачем прыгать-то ???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:41 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
lol Я же сказал что go top и go bottom переводят в состояние EOF()= .T. BOF()= .T. и после итого skip skip -1 вызывают ошибку я же прошу переход в состояние EOF()= .T. BOF()= .F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:42 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
оооооооооооооооооооооооооо ну не знаю а зачем переводить та???? я и так вижу есть там запись или нет я и объекту могу сказать чего делать зачем мне источник дергать???? зачем его дергать то???? не проще код подправить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:47 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Так скажите как туда переходит seek "" Нет этому аналогов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 20:51 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
sea.s2Так скажите как туда переходит seek "" Нет этому аналогов? Если в таблице физически нет ни одной записи (Reccount()=0), то аналогов этому нет. Если же есть хотя бы одна запись, пусть даже она не попадает под условие активного фильтра, то это эквивалентно команде GO TOP. Переход на ПЕРВУЮ запись, поскольку ЛЮБАЯ символьная строка при сравнинии с пустой строкой даст .T. Код: 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. Команда SKIP -1 вызовет ошибку если BOF()=.T. Соответственно, нужна дополнительная проверка. Собственно, как это сделать написал уже в самом первом ответе Maltsev Max . Повторю еще раз: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 23:23 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Ясно придется полльзовать тогда такое IF RECCOUNT() = 0 IF EOF() AND !BOF() SKIP -1 ENDIF MESSAGEBOX(FILEISEMPTY_LOC, MB_ICONINFORMATION, ; REGISTER_LOC) thisform.AddNew() ENDIF Big thx за мучения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2006, 23:39 |
|
||
|
Состояние таблицы
|
|||
|---|---|---|---|
|
#18+
Hi sea.s2! Помимо EOF() и BOF() последи за RECNO() - это должно навести тебя на понимание того ЧТО же такое на самом деле EOF() и чем он кардинально отличается от BOF(). А вообще у тебя просто некорректный изначальный код - перед выполнением SKIP -1 нужно проверять не EOF() а BOF()!!! Это перед SKIP 1 надо проверять на EOF() :) Также я бы не надеялся на то что нужная таблица всегда является текущей, и не поленился прописать явно алиас того курсора который "проверяется" Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 01:11 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33488259&tid=1592574]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 498ms |

| 0 / 0 |
