|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Программу писал незнакомый, уже уволился. Есть ехе-шник и база данных с таблицами в ней. Текстов, последней версии нет, только старые. В репорте нужно увидеть лишь одну строку из таблицы, но предварительно стоит фильтр. То есть, когда я выбираю строку, таблица фильтруется, и когда должен открыться репорт для просмотра (там данные только по выбранному коду из одной строки), он просто проскакивает и не запускается. Но вот ерунда какая. Такое происходит не каждый раз. По трем кодам выбирается и репорт идет, а по остальным нет. Такое впечатление, что что-то с индексами. Два года работало нормально. Не знаю на какой версии написано. У меня семерка. В среде старые тексты работают нормально. Завернуть заново ехе-шник не могу, сначало надо их привести к должному виду, на это нужно время. А распечатать тем, кто пользуется этой программой нужно срочно и постоянно. Пытался в семерке сделать такую же базу с такими же таблицами. Но при запушке старого ехе-шника, он ругается на эту базу, хотя она должна идентичная быть. Говорит, что таблиц в ней не найдено. Из-за чего это может быть, как быть (если только не делать другой ехе-шник, где бы работал, только этот кусок, работают там люди, очень загруженные, мог тогда вообще все напутать, когда и в какой момент, что запускать, да и неудобно так.) Из-за чего могут пролетать (не запускаться репорты), без всяких сообщений об ошибке. Года три назад подобное было, то есть репорт пролетал, тогда нашел из-за чего, но не помню, что это было. Кто-нибудь сталкивался с таким? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 19:08 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Здесь может быть что-угодно. Розкомпили прогу и проанализируй код. Возможно в програмке анализируется количество записей после фильтра, если 0 репорт пролетает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 19:41 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
В том то и дело, записи есть, по одной на каждый выбор. Иииииз справочника выбираешь код, По нему фильтруется таблица, где обязатльно есть одна запись. Я даже ко кодам проверял. Все совпадает. Н-р: в r_kod сидит 3 далее sele tab1 set filter to kod=r_kod go top REPORT FORM rep1.frx NOEJECT NOCONSOLE PREVIEW И вот здесь то она и пролетает Почему Н-р 11 аааааааааааа 12 вввввввввввв 14 пппппппппппп 17 ооооооооооооо 23 еееееееевввв И вот по 12 коду, например выводит, а по остальным нет. А данные есть. В среде я из вижу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 20:40 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Ну, не совсем "что угодно". Если окно предварительного просмотра открывается и тут же закрывается, то это значит, что нет ни одной записи, которая удовлетворяла бы условию отбора в отчете. Т.е. просто нечего печатать. Вариантов тут не так уж и много: -) Выбрана не та рабочая область в качестве главной (в данном случае очень сомнительно) -) Если в синтаксисе команды REPORT используется только ключевое слово FOR для указания диапазона записей, то в этом случае включается Rushmore-оптимизация. И если тем не менее не отображается ни одной записи, хотя она должна быть, то это однозначно говорит о поврежденном индексе. Необходима реиндексация -) Если в синтаксисе команды REPORT для задания диапазона используются ключевые слова WHILE, NEXT, то в этом случае выбор записей идет начиная с текущей записи. Т.е. скорее всего не там стоит указатель записи. Чтобы определить версию FoxPro на которой написан EXE открой файл EXE любым редактором низкого уровня как текстовый файл и найди в нем ключевое слово "FoxPro" ближайшая к этому слову цифра и будет номером версии FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 20:45 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Команда SET FILTER тоже использует RushMore-оптимизацию. Т.е. индексы. Попробуй восстановить индексы или хотя бы дай REINDEX. Кстати, в своем примере ты делаешь фильтр по значению 3, которого нет в твоей исходной таблице. Естесственно отчет ничего и не показывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 20:48 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
А если написано в пятерке, то переиндексировать в семерке я никак не смогу? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 21:04 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
> А если написано в пятерке, то переиндексировать в семерке я никак не смогу? На сколько я знаю,Подобная совместимость не предусмотрена. Но, есть большая вероятность, что все пройдет нормально, особенно если в индексах не используются функции. У меня в visual практически всегда не было проблем при использовании файлов от старших версий в младших. Никто не мешает сделать резервную копию и попробовать, потом всегда можно все вернуть назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 21:25 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Тройка - это опечатка, наверное, не пойму как набрал :). А вот базы. если просто в семерке открывал, то в с программой они потом работали, а если убрал индекс, а потом добавил назад, то уже нет Выходит нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 21:33 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Можешь попробовать проиндксировать отдельно таблицу не открывая базу, а потом подсунуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2003, 22:01 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Есть еще один вариант того, почему не запускается отчет. Может быть в самом отчете есть Dataenvironment (и там уже открываются базы для отчета?). Проверьте, пожалуйста сам отчет, некоторые так делают... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2003, 00:42 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
В отчете, да, таблица в Dataenvironment есть. Я бы вообще не так писал. Я бы не ставил никакого фильтра до отчета, я бы указал это в свойствх таблицы в Dataenvironment , через public переменную. Но в том-то и дело, ни отчет, ни эта форма, откуды запускается печать, не менялись. Это точно. Менялось в целом в прорамме совсем другой кусок. Он-то сейчас и не работает, поэтому не могу построить ехе заново. Значит я вижу тот самый отчет, который и закручен в ехе. А в нем Dataenvironment только таблица и никаких изменений в свойствах. Но почему, по одной строке идет, (то есть эти данные печатаются), а по другой аналогичной нет. Длина кода и тип в справочнике и в этой несчастной таблице одинаковы. Голову уже сломал! А подсунуть не не получается, сразу говорит ошибка в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2003, 07:55 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
1. Установи vfp5 2. Перекомпилируй проект на vfp7 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2003, 09:03 |
|
Проскакивает репорт (в просмотре),, но не всегда. Отчего?
|
|||
---|---|---|---|
#18+
Как вариант. Вообще отключи оптимизацию на время выполнения отчета: SET OPTIMIZE OFF SET FILTER TO ... REPORT FORM ... SET OPTIMIZE ON Разумеется скорость выполнения отчета резко упадет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2003, 12:04 |
|
|
start [/forum/topic.php?fid=41&msg=32160018&tid=1598322]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 428ms |
0 / 0 |