Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод в ексель. Рамки / 5 сообщений из 5, страница 1 из 1
20.03.2006, 11:28
    #33611337
nfp
nfp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод в ексель. Рамки
Необходимо данные из курсора вывести в екселе.С помощью Владимира Максимова и Алексея Климова основную часть работы сделал.СПАСИБО ИМ .
Теперь необходим дизайн всякие рамочки, линии И тут почемуто облом
Вот код программы
Код: 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.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
PARAMETERS lcNameFile,lcCaption
LOCAL loExcel, lcOldError, lñCaptionSheet, lnCount, lnRecno, lnDelta, ;
   i, j, jj, lcAlias, lcRange, lValue,  F_PROG, lOlsSET_CENTURY, ;
   loColumn, lcText, llError 
EXTERNAL ARRAY laCaption
LOCAL ARRAY laCount[ 1 ]
LOCAL oError AS Exception
#DEFINE xlTHIS  2 
#DEFINE xlDiagonalDown  5 
#DEFINE xlDiagonalUp  5 
#DEFINE xlEdgLeft   7 
#DEFINE xlEdgTop   7 
#DEFINE xlEdgBottom  9 
#DEFINE xlEdgRigth  10 
#DEFINE xlInSideVertical  11 
#DEFINE xlInSideHorizontal  12 
#DEFINE xlCenter - 4108 
#DEFINE xlNone - 414 
#DEFINE xlWbatWorksheet - 4167 

lcAlias = ALIAS()
*-Начальные значения
lnFlag =  2   &&  из курсора
lnModeView= 0 
lOlsSET_CENTURY = SET("CENTURY")


*--
WAIT WINDOW "Соэдаю объект EXCEL..." NOWAIT
llError = .F. 
IF llError
   RETURN .F.
ENDIF



WAIT WINDOW "Формирую рабочий лист  EXCEL..." NOWAIT

LoBook= loExcel.Workbooks.Add(xlWbatWorksheet)
LoSheet= m.Lobook.Sheets( 1 )

SELECT (lcAlias)
loExcel.visible=.t.

*-- Кол-во колонок определяется количеством полей в курсоре
lnCount = FCOUNT()

WAIT WINDOW "Формирую заголовки в EXCEL..." NOWAIT
ii =  0 
lnDelta =  0 
*--   1-колонка
WITH loExcel.Cells( 3 ,  1 )
	  .Value = "№ п.п"
	  .HorizontalAlignment =  3 
	  .Orientation =  0 
	  .WrapText = .F.
	  .ShrinkToFit = .F.
	  .MergeCells = .F.
	  WITH .Font
	     .Bold = .T.
	     .Size =  12 
	  ENDWITH
ENDWITH
*---  следующие колонки (cо 2-из массива) 

	FOR kstr=  1  TO  NLqstr_shap   
		nstr=  2 +kstr   
		FOR i =  1  TO lnCount
		   WITH loExcel.Cells(nstr, i+ 1 )
		         *-- Экспорт из курсора
		         IF TYPE("laCaption[kstr,i]") == "C"
		            
		            .Value = laCaption[kstr,i]
		         ELSE
		            .Value = FIELD(i)
		         ENDIF
		      
		      .HorizontalAlignment =  3   &&  nstr
		      .Orientation =  0 
		      .WrapText = .F.
		      .ShrinkToFit = .F.
		      .MergeCells = .F.
		      WITH .Font
		         .Bold = .T.
		         .Size =  12 
		      ENDWITH
		   ENDWITH
		ENDFOR
	ENDFOR 

*--  Рисуем рамки
LOCAL LoRange 
LoRange= m.Losheet.Range(m.Losheet.Cells( 3 , 1 ).Addrees+":"+ m.Losheet.Cells( 5 , 18 ).Addreess)    &&  Вот тут вылетает ошибка
LoRange.Borders(xlEdgeLeft).Weight= xlThin 
LoRange.Borders(xlEdgeTop).Weight= xlThin 
LoRange.Borders(xlBottom).Weight= xlThin 
LoRange.Borders(xlEdgeRight).Weight= xlThin 
LoRange.Borders(xlEdgeVertical).Weight= xlThin 
LoRange.Borders(xlEdgeHorizontal).Weight= xlThin 


На команде LoRange= m.Losheet.Range(m.Losheet.Cells(3,1).Addrees+":"+;
m.Losheet.Cells(5,18).Addreess)
Вылетает ошибка " OLE ERROR CODE Ox 80020006. Неизвестное имя "

Посмотрите, пожалуйста, где я ошибся? Заранее благодарен
...
Рейтинг: 0 / 0
20.03.2006, 12:20
    #33611556
m.a.v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод в ексель. Рамки
Код: plaintext
1.
2.
3.
4.
5.
r1 = loExcel.Cells( 1 , 2 ).Addrees()
r2 = loExcel.Cells( 2 , 1 ).Addrees()
clSel =r1+":"+r2 
loExcel.range(clSel).select
...
...
Рейтинг: 0 / 0
20.03.2006, 12:30
    #33611593
m.a.v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод в ексель. Рамки
Прошу прощения тоже написал с ошибкой не Addrees, а Address
Ошибка в имени ф-ции
...
Рейтинг: 0 / 0
20.03.2006, 12:33
    #33611605
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод в ексель. Рамки
nfp
На команде LoRange= m.Losheet.Range(m.Losheet.Cells(3,1).Addrees+":"+;
m.Losheet.Cells(5,18).Addreess)
Вылетает ошибка " OLE ERROR CODE Ox 80020006. Неизвестное имя "

Посмотрите, пожалуйста, где я ошибся? Заранее благодарен

Делай так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with loExcel.Range(.Cells( 3 ,  1 ), .Cells( 5 , 18 ))
	.Borders( 7 ).Weight =  2 
	.Borders( 8 ).Weight =  2 
	.Borders( 9 ).Weight =  2 
	.Borders( 10 ).Weight =  2 
	.Borders( 11 ).Weight =  2 
	.Borders( 12 ).Weight =  2 
endwith

Да и это:
nfp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
		      .HorizontalAlignment =  3   &&  nstr
		      .Orientation =  0 
		      .WrapText = .F.
		      .ShrinkToFit = .F.
		      .MergeCells = .F.
		      WITH .Font
		         .Bold = .T.
		         .Size =  12 
		      ENDWITH

из цикла убери, замени на
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with loExcel.Range(.Cells( 1 ,  2 ), .Cells(NLqstr_shap, lnCount +  1 ))
		      .HorizontalAlignment =  3   &&  nstr
		      .Orientation =  0 
		      .WrapText = .F.
		      .ShrinkToFit = .F.
		      .MergeCells = .F.
		      WITH .Font
		         .Bold = .T.
		         .Size =  12 
		      ENDWITH
endwith
Так быстрее будет, чем по одной ячейке форматировать
...
Рейтинг: 0 / 0
20.03.2006, 13:24
    #33611825
nfp
nfp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевод в ексель. Рамки
Ура! Заработало !!!!
Спасибо всем! Это из-за такой глупой ошибки потерял столько времени!
Тщательнее надо Ребята !
Не все получилось как надо.Но лед тронулся если что еще спрошу
Спасибо
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод в ексель. Рамки / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]