Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Создал базу данных с полем General в зависимости от условий заполняю ее даннымы и вывожу это все в виде графика. Но вот проблемка необновляется Title графика. хотя прописал: THISFORM.OleBoundControl1.HasTitle = .T. THISFORM.OleBoundControl1.ChartTitle.Caption = "график..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 13:18 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Попробуйте так: Код: plaintext 1. Иногда явное использование Object помогает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 08:59 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Простите, IF забыл убрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 09:00 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
вот еще дополнение к вопросу: Я обновляю график путем выборки нужных строк из файла, SELECT bsp SCAN lcData = lcData + TAB + bsp.short SELECT training SUM training.participants FOR bsp.pin = training.pin TO lcSum lcTot = lcTot + TAB + STR(lcSum,10,2) ENDSCAN SELECT chart APPEND GENERAL olegraph DATA lcData + CRLF + lcTot + CRLF ThisForm.Refresh может здесь можно вставить название графика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 09:47 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Думаю, что нет. По крайней мере в литературе нигде про это не написано. Хочу так же обратить Ваше внимание на следующее: 1. Использование ссылки Object явно указывает VFP на то, что свойство или метод принадлежит объекту, загруженному в OleBoundControl, а не самому контейнеру. 2. Многократное использование APPEND GENEGAL для одного и того же поля приводит к увеличению размера этого поля, так как предыдущее значение не удаляется. Поэтому по возможности используйте PACK, иначе таблица (fpt) будет бесконечно расти в размерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 10:16 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
За Pack - спасибо, незнал. Может подскажете где можно почитать (в нете) о графиках в VFP а то у с литературой что-то нескладывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 10:23 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Многократное использование APPEND GENEGAL для одного и того же поля приводит к увеличению размера этого поля, так как предыдущее значение не удаляется. Причина увеличения размера файла FPT не в том, что сохраняется старое значение, а в особенностях работы FoxPro с Memo-полями (поле General - это особый вид Memo-поля) Советы начинающим Типы данных ========================================================= Memo Данный тип предназначен для хранения символьных данных неопределенной длины. Точнее для символьных данных, для которых точно известно, что они могут содержать более 254 символов. А вот верхний предел ограничен числом 2ГБ (2 миллиарда символов - девять нулей) на размер файла с расширением FPT. В этом файле собственно и хранится содержимое полей типа Memo и General. Особенность работы с мемо-полями заключается в том, что при любой модификации мемо-поля файл FPT увеличивается на некоторое количество байт кратное определенному значению. Это значение определяется настройкой SET MEMOWIDTH. По умолчанию, оно равно 64 байта. Т.е. даже если Вы просто стерли и тут же вставили один символ, то размер файла FPT тем не менее увеличится на 64 байта, а не останется неизменным как ожидалось. Проверьте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Как видите, я добавил в мемо-поле только один пробел, но размер файла FPT увеличился на 64 байта, а не на 1 как ожидалось. А что же содержится в остальных 63 записанных байтах? А ничего! Это пустое место, которое уже никак, никоим образом не может быть использовано. Таким образом, при интенсивной работе с мемо-полями в них скапливается достаточно большое количество пустого места. Для удаления этого пустого пространства необходимо периодически давать команду PACK. Или, если не хочется удалять записи помеченные как удаленные, PACK MEMO. Проблема в том, что для выполнения команды PACK необходимо открыть таблицу в режиме EXCLUSIVE, что при работе в многопользовательском приложении - проблематично. Разумно вынести эту команду в специальную процедуру по регулярной очистке база данных, которую периодически запускает администратор или сам пользователь. Более подробно об этой стратегии описано в разделе "Удаление записей в таблице" ================================================== По поводу General ничего добавить не могу. Не работал. могу только сослаться на пример его использования в FoxPro. Пример его использования можете посмотреть в стандартном проекте примеров Solution.pjx, который поставляется вместе с FoxPro (формы OleGraph.scx и Sctock.scx) Но, видимо, это ты и так знаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 10:50 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Посмотрите здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbagr10/html/grmscprogrammaticidentifiers.asp И ещё немного из личного опыта. Тонкую настройку графика (вид графика, типы и цвета линий, фонты и т.д) можно выполнить следующим образом: 1. Запустите приложение, вызовите форму с OleBoundControl MS Graph и дважды щёлкните мышью по графику. Загрузится MS Graph со своим меню, при помощи которого можно выполнить настройку = или = 2. Откройте таблицу и дважды щёлкните по полю Gen (д.б. с большой буквы, что означает наличие объекта в этом поле). В появившемся окне с графиком снова дважды щёлкните мышью. Загрузится MS Graph. Все сделанные настройки сохраняются. И последнее. Есть такое свойство - называется AutoActivate . Значение этого свойства определяет способ запуска приложения, документ которого находится в OleBoundControl. По умолчанию оно равно 2 - т.е. запуск по DblClick. Именно это умолчание позволяет выполнить пункт 1 (см.выше). Если Вы не хотите, чтобы юзверы запускали MS Graph, меняли настройки, а потом доставали Вас - измените значение этого свойства на 0. При таком значении AutoActivate запустить COM-приложение можно только используя метод DoVerb, т.е. программно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 14:00 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
ВладимирМSET MEMOWIDTH - на самом деле это SET BLOCKSIZE - и его можно сделать 0 - это значит что мемо будет наращиваться по 1 байту... Да и вообще работа с блочной структурой memo несколько более сложна чем ты описал - это всё-же не просто "трата места", а ближе по сути к "выравниванию по границе слова" - как было когда-то в C... Т.е. новые блоки выделяются такими большими порциями... А вот с REPLACE ситуайия насколько я помню несколько более сложная... Кстати я вот рисую диаграммы используя Excel.Chart (хотя это не столь важно), и вовсе не используя General поля - т.е. вместо OleBound юзаю OleControl -проблем нету, да и лучше не использовать промежуточных компонентов если это не необходимо :) WBR, Igor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 01:02 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
to Igor Korolyov: >да и лучше не использовать промежуточных компонентов Странная логика. А что, Excel.Chart не есть промежуточный компонент? Теперь это родная фоксовская примочка? Кстати, с таким же успехом в OleControl можно вставить и MSGraph.Chart. Преимущество использования полей типа GENERAL заключается в простоте программирования. Например, на форме можно разместить Grid и OleBoundControl; при перемещении по строкам в Gride достаточно делать Refresh для OleBoundControl. Причём в полях типа General могут размещаться любые объекты, реализующую парадигму "Документ-представление" и являющиеся COM-серверами, в частности, и Excel.Chart. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 09:03 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Промежуточное тут не Excel/MSGraph а General. Ибо работать можно без него (и IMHO проще даже будет чем с ним!). И с динамикой никаких проблем - скока хошь меняй данные в таблице и тут-же перестраивай диаграмму... MSGraph как-то нехорошо себя ведёт в плане наличия/отсуствия в составе фокса - AFAIK начиная с 7-ки его уже нету, в винде ессно тоже нету, с офисом он тоже не всяким ставится... Т.е. можно поймать проблему типа "Где-ж возьмёшь". Тогда как с Excel всё очень тривиально :) Есть конечно и другие компоненты для рисования графиков - но в основном они поплоше и всё-равно за деньги :( WBR, Igor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 01:52 |
|
||
|
GraphTitle
|
|||
|---|---|---|---|
|
#18+
Вячеслав Клепинин: Тонкую настройку графика (вид графика, типы и цвета линий, фонты и т.д) Можно и программно... В екселе начинаешь запись макроса... Создаешь нужный график... И крути-верти... В конце смотришь на команды и переносишь в лису... Например изменение фонта в легенде... graf_ch.OleBoundControl1.Legend.Font.Size graf_ch.OleBoundControl1.Legend.Font.Bold и т.д. Работоспособность всего не проверял... У меня лис8 офис2000 Очень помогает если надо каждый раз перестраивать график... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32461680&tid=1596610]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 360ms |

| 0 / 0 |
