|
|
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Не самая удобная штука, но тем не менее... В документации и многочисленных samples по VB описано как в качестве источника данных использовать массив (точнее коллекцию) заданного вида: &&пустой элемент ochartdata(1,1)="" &&название столбцов таблицы данных ochartdata(1,2)="C1" aChartData(1,3)="C2" aChartData(1,4)="C3" aChartData(1,5)="C4" &&название ряда данных и сами данные ochartdata(2,1)="R1" aChartData(2,2)=1.11 aChartData(2,3)=1.4 aChartData(2,4)=1.12 achartData(2,5)=2.5 aChartData(2,1)="R2" aChartData(2,2)=2.5 aChartData(2,3)=1.1 aChartData(2,4)=1.4 aChartData(2,5)=1.7 ........................... Для передачи данных в Chart имеется свойство объекта Chart: Property ChartData Type Variant Returns/sets the data to chart as a 2D array Однако попытки присвоения: oChart=thisform.Olecontrol1 &&вставленный в форму Chart oChart.ChartData=aChartData &&объявленный ранее public массив приводят к ошибке "Bad function argument". Так где же проблема в аргументах функции ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2006, 12:58 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Да сколько сочувствующих ;-) , но свою стенку разбивай своей головой... Как ни странно, но в других контролах иногда были проблемы с передачей параметров по ссылке. Но в данном случае изменение типа передачи параметров не прошло ;-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 08:22 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Посмотри Samples идущие с VFP - там есть использование MS Chart - и код как присваивать массив данных вот примерный код Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 08:33 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
уважаемый, без обид, но внимательно прочтите тему и первый пост. манипуляции вида: *cGData = ""+TAB+CATS_LOC +TAB+DOGS_LOC +CRLF+; * "1994"+TAB+"11"+TAB+"22"+CRLF+; * "1995"+TAB+"33"+TAB+"44"+CRLF+; * "1996"+TAB+"55"+TAB+"55"+CRLF есть ни что иное, как заполнение таблицы-коллекции определенного вида: A B C D R1 R2 R3 R4 Ряд1 1 3 3 5 Ряд2 2 3 1 9 Ряд3 3 8 4 2 Ряд4 4 4 9 3 вопрос в том, почему передача приведенного в первом посте массива не проходит ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 09:23 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Вы знаете я Help по Visual Basic не читал - может там и через двумерный массив (кстати организация в нем двумерного массива может и отличаться от организации двумерного массива в VFP) - но из примера фокса видно что передаются данные в виде строки - и все данные в ней приведены к строковому виду . может быть вам привести к строковому виду т.е. Код: plaintext 1. 2. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 09:35 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
to S866: в общем позиция "у вас" понятна. на поставленный вопрос она не отвечает. собссно, еще раз о проблеме: передача коллекции в ActiveX control из программы на фоксе. может кто-то сталкивался. очень интересно мнение по сути вопроса. p.s.: можно конечно поюзать и другие chart-компоненты, но сам подход с передачей параметров интересует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 17:16 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Hi Guest12345! > собссно, еще раз о проблеме: > передача коллекции в ActiveX control из программы на фоксе. Может кто-то > сталкивался. очень интересно мнение по сути вопроса. Никаких проблем. В Excel например я передаю массивы - как одномерные (в соответствующие методы, где нужны массивы),так и двумерные - в свои макросы, и для присвоения его СВОЙСТВУ Range(...).Value Причём НАПРЯМУЮ присвоить массив свойству в фоксе нельзя. А вот через процедуру (или метод) - посредник - начиная с VFP7 (или 8 точно не помню) которая "возвращает масив" (т.е. у который внутри стоит RETURN @aData) всё работает. > p.s.: можно конечно поюзать и другие chart-компоненты IMHO нужно а не только "можно" - на редкость "нехороший" и главное уже давно устаревший компонент :( Я диаграммы все вывожу в Excel (как для размещения на формах, так и просто как выходные отчёты). > но сам подход с передачей параметров интересует. Похвальный интерес - если бы ещё был подкреплён усилиями по поиску информации, например по теме "массив+свойство"... Наверняка сам бы уже давно нашёл подробное описание метода с примерами кода... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 01:09 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Господа - я понял что чего то недопонимаю в связи с этим вопросы: 1. Разве компонент ActiveX - MSchart - не является диаграммой самого Excel и не идет с ним в комплекте? 2. Какие компоненты кроме: a)MSchart, b)построения диаграммы в Excel (путем передачи туда данных через команды самого Excel), c)написания своего класса - построителя диаграмм существуют в природе ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:10 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
насчет "похвального интереса". так кроме вас, уважаемый, и хелпа ничего не нашел толкового ;-) пробовал варианты через возврат ссылки из внешней функции и метода - не получилось (сам массив передается - проверял): снова пишет Bad function argument. Поигрался также с COMARRAY, хотя здесь ситуация несколько другая: в COMARRAY предполагается передача массива как параметр метода, а в Chart control в качестве массива данных используется непосредственно объект-массив ChartData (методов для работы с ним как с массивом нет). В общем, наверное проще будет использовать альтернативу MS Chart... to S866: >1. Разве компонент ActiveX - MSchart - не является диаграммой самого Excel и не >идет с ним в комплекте? Microsoft Chart Control 6.0 (SP4) не относится к MS Office, идет в поставке либо с фоксом, либо с MS бейсиком (либо можно просто отдельно скачать у MS). С оффисом поставляется MS Graph. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:48 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
Понял - а я то MSGraph и MSchart - считал одним и тем же - заблуждался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:32 |
|
||
|
MS Chart Control (не через dbf ;-) )
|
|||
|---|---|---|---|
|
#18+
MSChart использует т.н. безопасные массивы. В FoxPro должна быть функция, которая преобразует нативный массив в VB Safe Array. В противном случае, такой массив можно получить, читая соотв. свойство ActiveX объекта (предварительно заполнив его простыми методами - через соотв. свойства). :( Обрывки сведения получены по справке из JScript, объект VBArray, с пом. которого выполняется обратное дейтсвие - преобразование безопасного массива VBScript в массив JScript. Windows Script TechnologiesVBArrays are read-only, and cannot be created directly. The safeArray argument must have obtained a VBArray value before being passed to the VBArray constructor. This can only be done by retrieving the value from an existing ActiveX or other object . VBArrays can have multiple dimensions. The indices of each dimension can be different. The dimensions method retrieves the number of dimensions in the array; the lbound and ubound methods retrieve the range of indices used by each dimension. Так что в целом ничего хорошего я не вижу. Есть идея: использовать Script Component File (.wsc) - COM объект на базе VBScript/JScript. В нем и будет реализована нужная трансляция пользовательского представления массива в safe array. Почитать можно в MSDN либо поставляется вместе с WScript 5.6. PS. Создавать WSC лично не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2006, 19:13 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33498680&tid=1592129]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 513ms |

| 0 / 0 |
