Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Ok. Спасибо. Иногда все-таки быстрее спросить
Чисто технический вопрос, а можно ли отключить совсем появление "Task Pane" при начальной загрузке? (экономлю время загрузки фокса под отладчиком |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Рома Сообщений: 1079 Дата регистрации: 06.06.2001 |
В Options самого Task Pane галка соответствующая имеется |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
tester Сообщений: 72 Дата регистрации: 25.05.2010 |
Давно уже отказались от фоксовых репортов в пользу VFP->HTML->PDF или VFP->HTML->DOC или VFP->HTML->XLS итп
в качестве редактора любой редактор html или ActiveX HTML редактор (покупной или в нашем случае свой, на случай если надо встроить в редактор свои прибамбасы, типа выбор таблиц и полей итп) С конвертацией тоже проблем нет + Полная свобода форматирования предоставляемая HTML и CSS. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Сорри, я наверное слепой Поотключал все галки, но добился только что окно пустое теперь. А вот где галка, которая и окно отключает - не найду |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Однако... TaskPane->Options-TaslPane Manager-> Самая нижняя галочка Open Task Pane Manager when Visaul FoxPro starts ------------------ Лень - это неосознанная мудрость. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Спасибо Действительно слепой. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Вопрос про Дату-Время (перестраховочный).
Получаю фоксовские переменные типа Date и DateTime через FoxApi. Перевожу в дельфийский тип DateTime, получаю интересный результат - разница ровно в 12 часов Такое ощущение, что Фокс считает, что "начало времен" случилось в полночь, а дельфи - в полдень того же дня (по Юлианскому календарю). Конечно, 12 часов отнять не проблема, но хотелось бы, по возможности, понять причину. И спросить на всякий случай, не существует ли случайно какая-либо настройка, опция относительно "начала времен" и которую надо учитывать при таком конвертировании? |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
B3ersn3V Сообщений: 595 Откуда: г. Киев Дата регистрации: 22.12.2005 |
А если установить
------------------ Не от того, что мы на планете, так солнце светит! |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Попробовал. Нет, ничего не изменилось.
|
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Рома Сообщений: 1079 Дата регистрации: 06.06.2001 |
Покажи тогда как преобразовываешь. Настройки тут должно быть ни при чем. Date/DateTime в фоксе хранится в виде double - количество дней в целой части, время в дробной - seconds/86400.0 Как с этим дело обстоит в Delphi - без понятия. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Да преобразование-то в одну строку case FoxVal^.ev_type of .... 'T' : Result := JulianDateToDateTime(FoxVal^.ev_real - 0.5); Минус 0.5 - это уже я добавил увидя нюанс, в этом случае все точно. JulianDateToDateTime - стандартная дельфийская функция. DateTime в Delphi это тоже Double, только не юлианский календарь используется. Но вообщем-то, да, настройки не должны влиять. Скорей всего разные алгоритмы, из хелпа фокса: "The date is represented as a double-precision floating-point Julian day number calculated using Algorithm 199 from Collected Algorithms of the ACM." Дельфийский хелп алгоритм не уточняет, но пишет, что начинает считать с полуночи "The Julian date is the number of days, including fractional days, since 4713 BC January 1, Greenwich noon. " |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Рома Сообщений: 1079 Дата регистрации: 06.06.2001 |
noon - это полдень - так и должно быть. Для фокса не было бы проблем тоже так считать, если бы был только тип DateTime, но имеется еще и тип Date, время в нем неявно считается равным 00:00:00 (а не 12:00:00 как требуется по определению Юлианского дня) Вот отсюда и вылазит разница ровно в 12 часов. Думаю, чтобы обеспечить одинаковый результат функций при работе как с типом Date так и c DateTime фокс сначала расчитывает номер дня в целых числах по дате (CALGO 199), а затем уже прибавляет время. Исправлено 1 раз(а). Последнее : Рома, 23.09.10 22:13 |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Упсс.. Что-то я второй раз на неделе туплю То галку в упор не вижу, то глядя на белое, говорю черное Пожалуй надо передохнуть, а то, как назло, и основной работы много и с фоксом посидеть хочется... Спасибо P.S. А пост-клипперные API даты-время передают строкой, в этом смысле Фокс к Дельфи ближе |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Вопросы по особенностям работы фокса, в основном по работе с памятью.
Как только начал работать с фоксом, сразу обратил внимание на следующее. Делаем USE таблице, делаем BROW и либо стрелкой вниз, либо PgDn, начинаем скроллировать. Скроллирование происходит, но явно заметен эффект некоторого "дергания". Поначалу подумал, что грид написан плохо и тормозит при перерисовках... Сейчас, тестируя свой проект, делаю тоже самое с данными фокса, но уже на дельфийской форме с дельфийским гридом (уж в нем то уверенность на все 100%). Был немало удивлен, увидев тот же эффект. Такое ощущение, что где-то раза два в секунду фокс начинает заниматься "своими делами" (в том же потоке?) и только потом возвращает управление user-коду... Я пока работаю только в IDE и все запускаю просто из "Command Window". Собственно, вопрос, проявляется ли это в реальных программных режимах? Если это проявляется, то с этим как-то борются или это считается нормой? И т.д. Кстати, добиться "гладкого скольжения" я могу, сделав форму модальной. В этом случае весь скроллинг "висит" на вызове API-функции, и в этом случае фокс "ждет" И еще, при скроллировании активно потребляется память(?). Эта ситуация мне не очень понятна. Успокаивает, конечно, что та же ситуация и с обычным BROWSE. Есть здесь какое-то объяснение? Фокс кэширует данные? Для чего? И т.д. Спасибо. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Посмотрел этот момент повнимательнее. В общем-то, очевидно, что ни к browse, ни к db-движку фокса эта проблема отношения не имеет. Например, если в Command Window накоплена большая история команд, то движение по нему с помощью стрелок вверх/вниз продемонстрирует тоже самое "подергивание". Явно, основной поток фокса обрабатывает некий таймер.. Посмотрел под Spy, WM_TIMER-а нет, но присутствует некий wm_systimer(?), по которому основной поток немного похоже и "колбасит" Ясно, почему мою модальную форму не "колбасит" - в этой ситуации, фокс не имеет возможности обрабатывать сообщения и поток данных идет из семейства _DBxxx-функций ровненько и "не дергаясь" Про память тоже посмотрел, вроде все в конце концов возвращается. Но раз никто не ответил, зачем это нужно, то значит один фокс и знает это |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
И еще пара вопросов, если позволите.
- Для полей fox-dbf существует установка NullAble. Интересна ситуация с полями Date и DateTime. Поле, хотя и NOT NULL, может содержать пустую дату. Есть ли какая-либо интерпретация пустой даты, то есть даты, которая не-NULL, значение имеет тип Date, но пуста? Фокс на пустую дату выдает значение 0, что, конечно, как дату интерпретировать вряд ли нужно Или это наследие времен, когда NullAble-полей в принципе не было? - Можно чуть подробнее про тип поля и тип данных General? Они реально используются? В каких случаях? Просто, сейчас раздумываю, что с этой "10-байтной числовой ссылкой" делать... |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Рома Сообщений: 1079 Дата регистрации: 06.06.2001 |
WM_SYSTIMER обычно не обрабатывается приложением - оно используется самой Windows, например для того, чтобы отрисовывать мигающий курсор (caret), в окне имеющем фокус ввода. Но из-за некоторой "специфичности" фокса, в том смысле, что его контролы не являются обычными окнами, возможно, ему приходится переопределять это стандартное системное поведение. Могу только предложить поэкпериментировать с отключением курсора (SET CURSOR OFF/ON) на время получения данных - возможно поможет избежать таких эффектов. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
B3ersn3V Сообщений: 595 Откуда: г. Киев Дата регистрации: 22.12.2005 |
1. VFP различает NULL-значения, EMPTY-значения и BLANK-значения
------------------ Не от того, что мы на планете, так солнце светит! |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
В целом, да. "Наследние темных веков" В DOS-версиях ВСЕ (т.е. вообще ВСЕ) поля DBF физически ханились как символы. Т.е. содержимое поля типа Date физически хранилась как символьная строка. Ну, а раз это символьная строка, то, естесственно, туда можно записать "пустоту". Т.е. одни пробелы. Вот эта-то "пустота" и была интерпретирована как "пустая" или "самая маленькая" дата. В FoxPro это не NULL. Это вполне определенная, но очень маленькая дата. Разница в том, что любое сравнение с NULL даст NULL, а вот сравнение с пустой датой вернет вполне себе корректное логическое значение, исходя из предположения, что "пустая" дата - это "самая маленькая" дата Ну, а DateTime вынуждена была поддерживать концепцию "пустой даты" в целях обратной совместимости с Date.
Поля типа General хранятся в файле FPT (мемо). В файле DBF записан лишь номер первого блока файла FPT с которого начинается содержимое поля General данной записи. Использоваться-то используются (в смысле, поддержка есть), только вот очень не желательно это делать. Слишком много сопутствующих проблем возникает. |
Re: Общие вопросы, а также специфичные (отчеты, FastReport)) | |
---|---|
SergeySpirin Автор Сообщений: 203 Откуда: Москва Дата регистрации: 20.07.2010 |
Ok. Спасибо. Тогда все General-ы буду просто игнорировать. Насчет даты.. Пожалуй, исходя из того, что конечная цель отчеты, буду пустую дату интерпретировать как null. Вряд ли в отчете нужно будет это проверять на Empty, делать сравнения и т.п. (хотя, в скрипте FastReport это возможно, но явно не понадобится).
Да, я знаю это, поэтому и поставил вопросительный знак.. Но при "обычном" использовании этого недокументированного сообщения Spy (правда, я использую старенький WinSight32) обычно его игнорирует, здесь же "засек и вел" Необычность тут явно присутствует.
Ну, здесь как бы проблема не моя Хоть утром я этом еще не был уверен. Как бы проблема в Фоксе, но раз от нее до сих по "никто не умер", то и ладно в конце концов Да и, отчет не грид, в нем подергивание не заметить P.S. Меня правда удивило, что никто этого подергивания в фоксе даже и не замечает ;) Похоже, вот что значит сила привычки |
© 2000-2024 Fox Club  |