powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод в ексель. Рамки
5 сообщений из 5, страница 1 из 1
Перевод в ексель. Рамки
    #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
Перевод в ексель. Рамки
    #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
Перевод в ексель. Рамки
    #33611593
m.a.v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения тоже написал с ошибкой не Addrees, а Address
Ошибка в имени ф-ции
...
Рейтинг: 0 / 0
Перевод в ексель. Рамки
    #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
Перевод в ексель. Рамки
    #33611825
nfp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nfp
Гость
Ура! Заработало !!!!
Спасибо всем! Это из-за такой глупой ошибки потерял столько времени!
Тщательнее надо Ребята !
Не все получилось как надо.Но лед тронулся если что еще спрошу
Спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перевод в ексель. Рамки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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