|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Доброе утро, коллеги! Требуется помощь в сортировке источника данных для grid1(*.dbf - 1-Alias). Ниже приведен пример, в котором происходит сортировка. Но(!), после завершения данные на экране пропадают и не возвращаются. ))) В принципе я понимаю почему они пропадают(USE jgnprf EXCLUSIVE), но решения не нашел. Помогите пожалуйста. А также хотелось бы услышать в правильном направлении ли я иду в решении этой задачи? Спасибо! Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 08:17 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Причину правильно понимаешь. Грид превращается в белый квадрат если переоткрыть его источник данных. Чтобы этого не было: Код: sql 1. 2. 3. 4.
только тут еще один момент есть: колонки выстроятся в том порядке, в котором они идут в jgnprf, а не в том каком были настроены. Это изврат: Код: sql 1. 2. 3. 4.
это тоже Код: sql 1.
забудь про SORT. Читай про индексы и select ... order by ... Если это временная таблица, то используй курсор. Т.е. весь твой код будет таким Код: sql 1. 2. 3. 4.
чтобы грид изначально не появлялся белым квадратом из-за отсутствия курсора - создавай его в DE.BeforeOpenTables() или до вызова формы Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 09:01 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokНиже приведен пример, в котором происходит сортировка. Главное я и не заметил :) Если это курсор (или временная таблица монопольно открытая) то просто индексируешь: Код: sql 1. 2. 3.
если нормальная таблица, то индекс должен быть создан заранее, просто его включаешь Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 09:08 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
"SQL представление позволяет вам извлекать данные из указанных полей в одной или более связанных таблиц в таблицу, которую можно обновлять." CREATE SQL VIEW ..., и REQUERY() заменит все. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 10:54 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Че то не получается. Вроде простая задача чет никак не соображу. Разработчики конечно FoxPro поражают "простотой" реализации некоторых функционалов. Вчера после глюка пропала центральная форма, мой труд последних двух недель. (( Благо основная логика была на хранимках, поэтому быстро восстановил. В жизни такой куйни не было у меня. Еще раздражает рассказы коллег о том какой FoxPro классный и не заменимый. Скорее всего из-за того, что я пока просто не освоил его. )) Помогите пожалуйста, разобраться с этой хренью. Повторяю, источник данных grid1(*.dbf - 1-Alias). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 13:52 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokПовторяю, источник данных grid1(*.dbf - 1-Alias). 1-Alias - это понятно а что значит *.dbf ThisForm.grid1.RecordSource = "" SELECT nskv, cel, data, verh, niz, uch FROM tempFileSort order by nskv, cel, data into cursor jgnprf readwrite ThisForm.grid1.RecordSource = "jgnprf" ThisForm.grid1.Refresh() ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:12 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
jgnprf.DBF таблица физически хранится так в Windows А в Project Manager он находится в FreeTable с названием jgnprf. Спасибо! Час попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:16 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokСкорее всего из-за того, что я пока просто не освоил его. ))Очень на это похоже, особенно если судить по коду, в котором куча совершенно бессмысленных действий. Все, что вы написали заменяется таким кодом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:32 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokВроде простая задача чет никак не соображу. Задача не простая. Грид штука своеобразная, есть у него особенности и их надо знать. Чтобы заработало достаточно этого Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
vadipokСкорее всего из-за того, что я пока просто не освоил его. )) Ты б хоть книжку какую почитал по фоксу. В твоем коде куча идеологических ошибок из-за незнания основ. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:33 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
IgorNG, Ругнулась, поэтому добавил CLOSE TABLES. Не сортирует, и последние две строчки, которые добавил для теста исчезают, а при перезапуске заново появляются. Смотрел по списку выше, в положенных местах их тоже нет. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:33 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Dima T, Ок, понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 14:36 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Чудеса, да и только! Не работало, вернул как было, и вдруг заработало. )) Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 15:05 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Простите за назойливость, но я действительно не врубаюсь. 1) Делаю сортировку, все ок. 2) Закрываю через обычный крестик на форме, потом запускаю программу за нова, и отображается все ок. 3) Дальше закрываю через свою кнопку закрыть, и все возвращается как было, то есть без сортировки. Как такое может быть? Веть после сортировки я остановил программу и перезапустил все было ок, значит данные сбросились нормально в файл. Машину перезагрузил, глюк как был так и остался. код кнопки: Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:17 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipok, Насколько я понял у тебя еще и таблица есть jgnprf И курсор ты называешь таким же именем, что в общем-то плохо. Может, от этого у тебя и проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:31 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipok Извините за вопрос, у вас уже не первая экзотическая тема - вы этим интересуетесь из любознательности или вам нужно действительно решить какую проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 16:48 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
sg12vadipok Извините за вопрос, у вас уже не первая экзотическая тема - вы этим интересуетесь из любознательности или вам нужно действительно решить какую проблему. ))) неа, есть реальная проблема. В общем суть такая, есть программа написанная на досе еще в начале 90-х. (сейчас он перестал работать то ли из за виндовс7 то ли из за 32-64 бит) Там оператор проделывает операции, то есть проверяет правописание(пост про красочные строки), добавляет строки и обязательно нужно отсортировать(этот пост). Информация в основном по скважинам, таблица которую я выкладывал это перфорации(дырки в трубе jgnprf). Дальше нужна карта, в которой можно поставить скважины. Так что все мои 3 экзотических поста они реальные. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 17:05 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokВ общем суть такая, есть программа написанная на досе еще в начале 90-х. (сейчас он перестал работать то ли из за виндовс7 то ли из за 32-64 бит) виндовс7x64 не запускает DOS-приложения. ИМХУ тебе быстрее будет эту проблему порешать чем прогу переделать с FPD. Или ставь виндовс7x32 или поставь DOSbox и в нем запускай. Тут по сути надо заново переписывать. Можешь переписать на фоксе, можешь на чем умеешь. Хочешь на фоксе - потрать освободившееся время на изучение фокса. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 17:13 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokПростите за назойливость, но я действительно не врубаюсь. 1) Делаю сортировку, все ок. 2) Закрываю через обычный крестик на форме, потом запускаю программу за нова, и отображается все ок. 3) Дальше закрываю через свою кнопку закрыть, и все возвращается как было, то есть без сортировки. Как такое может быть? Веть после сортировки я остановил программу и перезапустил все было ок, значит данные сбросились нормально в файл. Ты сбрасывал не в файл, а в курсор Код: sql 1. 2.
т.е. файл ты закрыл, а создал курсор (временная таблица в памяти), прогу закрыл - курсор удалился. Если надо в dbf писать Код: sql 1. 2.
если она в какой-то подпапке Код: sql 1. 2.
Но лучше прислушайся к моему предыдущему посту, не издевайся над своими юзерами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 17:20 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipok Понятно. FPD и VFP9 это разные идеологии программирования и эти попытки перенести в лоб решения обречены на провал. По карте - в VFP есть объекты, которые при уменьшении размеров превращаются в точку (Shape, Line ...), но вам нужно освоить работу с классами в необходимом объеме. Ну и само собой - несколько функций из Winapi. Про правописание можно из фокса обращаться к другим средствам (например в Word), сортировать лучше в Listbox (есть такой класс - Mover). С таблицами вам надо сначала немного изучить работу с базами данных - подобные мучения лишены смысла, напрямую из FPD ничего не переводится. Например, в данной задаче вместо избитого Grid.RecordSource = '' лучше использовать View. Я уже советовал, повторюсь и вам: Если же вам так уж необходимо по каким-то очень важным причинам изучать именно Фокспро, то осваивать его по форумным советам несерьезно. Вам лучше скачать в интернете учебник: "С. А. Каратыгин, А. Ф. Тихонов, Л. Н. Тихонова - Visual FoxPro 7" или более ранние издания. К книге прикладывется диск с примерами, где вы найдете все вам необходимое и с пояснениями. Но все же замечу, что Фокс уже в прошлом, а это главное - скорее всего, вы напрасно потратите силы и время. Я далеко не сторонник Visual Studio, но все же на сегодня это лучшее, что можно вам посоветовать. В программном отношении ваша задача несложная, и, скорее всего, вы найдете готовые решения по частям. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 18:28 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Спасибо всем! Вы абсолютно правы во всем. У нас просто куча спецов по фоксу, в основном женщины за 40. Удивительно, но факт. Переучивать их не реально, так что я с нашим руководством согласен на все 100, по поводу выбора именно Фокса. Рисование скважин это уже не моя проблема, ее перекинули другому человеку. А моя задача, это маленький кусочек, в связи с отсутствием опыта. Воот, примерно такой расклад. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 20:23 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Dima Tт.е. файл ты закрыл, а создал курсор (временная таблица в памяти), прогу закрыл - курсор удалился. Если надо в dbf писать В том то и дело, курсор не удаляется, когда закрываешь форму через стандартный крестик. Посмотрите внимательнее мое сообщение. Параллельно я читаю, книгу классную дали. Ок, спасибо, завтра переделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 20:28 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipok Одна из иллюзий из старых времен, что пожилых, да еще женщин, трудно переучить. Эти времена уже прошли, картинки на мониторе делают свое дело. Но вот оттягивание такого решения аукнется очень быстро, напряги с Фокспро будут только нарастать. Просто нужна тактичность, стимуляция, тяжко только начинать. По крайней мере, на 1С после фокса переучиваются на ура, даже скучно становится. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 20:47 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
vadipokВ том то и дело, курсор не удаляется, когда закрываешь форму через стандартный крестик. Посмотрите внимательнее мое сообщение. Мое сообщение внимательно посмотри. Мне понятно что происходит. Курсор это не твой DBF. В твоем коде DBF закрывается, одноименный курсор создается, изменения идут в курсор. Закрытие окна/проги убивает курсор, DBF остается такой какой была до первого срабатывания твоего кода. Я тебе про курсоры писал как пример одного из подходов, а ты все в кучу смешал и удивляешься теперь мистике. Использовать одноименные курсоры и dbf`ы это дурной тон, уже писали выше, т.к. такие как у тебя непонятки возникают. Тут нет мистики, есть твое непонимание того что происходит. Как в анекдоте: "Если программа выполняет мистические действия - значит вы написали что-то невероятно глупое". Читай книжку внимательнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 22:22 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Опять умудрились запутаться в форме с одним гридом. Прям магия какая-то ... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2015, 22:40 |
|
Сортировка в grid1
|
|||
---|---|---|---|
#18+
Dima TЗакрытие окна/проги убивает курсор, DBF остается такой какой была до первого срабатывания твоего кода. Опишу последовательность еще раз. 1) Сортирую 2) Закрываю через стандартный крестик 3) Полностью закрываю ФоксПро 4) Открываю и запускаю проект. И вуаля, данные отсортированы. Получается так, что курсор не удалился. То есть прямая противоположенность тому, что вы написали. Ошибку я понял, но мистика все равно есть!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2015, 06:58 |
|
|
start [/forum/topic.php?fid=41&fpage=26&tid=1582412]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 396ms |
0 / 0 |