powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / работа с таблицами Word
25 сообщений из 34, страница 1 из 2
работа с таблицами Word
    #39199991
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.
Устал искать по форумам и с макросами не получается.
Вот код файл приложен в архиве.
Смысл кода он создает вордовский документ и добавляет туда таблицу.
Есть 3 вопроса:
1) нужно, выделив, конкретный столбец таблицы в ворде отформатировать, поменяв шрифт и ориентацию
нашел как выделить столбец m.loDoc.Tables(1).Columns(4).Select , а вот как отформатировать не работают коды по примеру макросов и с форумов.........? (нашел как каждую ячейку в таблице отформатировать(код тут же есть закомменторованный), но тогда выполнение кода еще больше по времени увеличивается, вижу выход изначально отформатировать столбец, вот только как...)

2) как можно ускорить выполнение данного кода, уже очень долго заполняется вордовский документ, особенно ворд версии 2013, а вот 2003 очень быстро его создает?

3) делаю переход на следующую строку (или вставку ее) через
.InsertParagraphAfter()
.InsertParagraphAfter()
в разных на разных компах , пока не проверял в разных ли версиях ворда, но выдает то одну строчку, то две, хотя по факту должен две выдавать.......



#INCLUDE msWord.h
#DEFINE True .T.
#DEFINE False .F.
* Создаем объект Word
LOCAL loWord
loWord=CREATEOBJECT('Word.Application')
* Сразу делаем его видимым для отладки
loWord.Visible=.T.

* Создаем в нем новый документ
LOCAL loDoc
loDoc = m.loWord.Documents.Add()

* альбомная ориентация
* m.loDoc.PageSetup.Orientation = wdOrientLandscape

* поля страницы
m.loDoc.PageSetup.TopMargin=13.4
m.loDoc.PageSetup.BottomMargin=28.3
m.loDoc.PageSetup.LeftMargin=28.3
m.loDoc.PageSetup.RightMargin=28.3

* добавляем в документ нужные строки с их форматированием
LOCAL oRange
oRange = m.loDoc.Range()
oRange.Collapse(wdCollapseStart)
WITH oRange
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.InsertAfter('ЗАО "Инвестгрупп" Ф/К 0200322523523523')
.Font.Size = 8
.Font.Name = "Courier New"
.MoveEnd(wdParagraph,1)
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.InsertAfter('Накладная на отгрузку № ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('123456')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter(' Дата отгрузки ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('12.04.2016')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter(' года.')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.Font.Size = 6
.Font.Name = "Courier New"
.Collapse(wdCollapseEnd)
.InsertAfter(' С участка ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('ЗАО "ТИРАЭТ" 1СКЛАД ТИРАСПОЛЬ ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter(' По счету/заказу ')
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('987654')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.Font.Size = 6
.Font.Name = "Courier New"
.Collapse(wdCollapseEnd)
.InsertAfter(' Покупатель ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('ПРИДНЕСТРОВСКИЙ СБЕРБАНК')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.Bold = .T.
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.Font.Size = 6
.Font.Name = "Courier New"
.Collapse(wdCollapseEnd)
.InsertAfter(' Получил ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('Горун Е.В. ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter('Доверенность ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('17 ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter(' от ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('15.04.2016')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter(' г.')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.Bold = .T.
.Collapse(wdCollapseEnd)
.Bold = .T.
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.Font.Size = 6
.Font.Name = "Courier New"
.Collapse(wdCollapseEnd)
ENDwith


* Создаем в этом документе таблицу
* Сначала определеяем место, куда будет вставлена таблица
* Теперь собственно создание таблицы из 5 столбцов и X строк

LOCAL loTable
loTable = m.loDoc.Tables.Add(m.oRange,131,5,1)

* формируем изначальный шрифт таблицы
m.loTable.Select
m.loTable.Range.Font.Name = "Courier New"
m.loTable.Range.Font.Size = 10
m.loTable.Range.Bold = .T.


* выделяем столбец таблицы
m.loDoc.Tables(1).Columns(4).Select

********** КАК СДЕЛАТЬ ФОРМАТИРОВАНИЕ ВСЕГО СТОЛБЦА НУЖНЫМ МНЕ ШРИФТОМ И ПО ЦЕНТРУ?????????
****** ВСЕ НИЖНИЕ ВАРИАНТЫ ПЕРЕПРОБЫВАЛ - НЕРАБОТАЮТ
*loDoc.Selection.ParagraphFormat.Alignment =1
*Selection.ParagraphFormat.Alignment =1
*m.loTable.Columns(4).Font.Size = 10



* Задаю ширину высоту строк и столбцов
*m.loTable.Rows(1).ParagraphFormat.Alignment = wdAlignParagraphCenter
m.loTable.Rows(1).SetHeight(m.loWord.CentimetersToPoints(0.9),wdAdjustNone)
m.loTable.Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
m.loTable.Columns(1).SetWidth(m.loWord.CentimetersToPoints(12),wdAdjustNone)
m.loTable.Columns(2).SetWidth(m.loWord.CentimetersToPoints(1.1),wdAdjustNone)
m.loTable.Columns(3).SetWidth(m.loWord.CentimetersToPoints(2),wdAdjustNone)
m.loTable.Columns(4).SetWidth(m.loWord.CentimetersToPoints(1.4),wdAdjustNone)
m.loTable.Columns(5).SetWidth(m.loWord.CentimetersToPoints(2.3),wdAdjustNone)
m.loTable.Cell(1,1).Range.InsertAfter("Наименование продукции, товаров, комплектующих")
m.loTable.Cell(1,1).Range.Font.Size = 10
m.loTable.Cell(1,1).Range.Font.Name = "Courier New"
m.loTable.Cell(1,1).Range.Bold = .F.
m.loTable.Cell(1,1).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(1,2).Range.InsertAfter("Един.")
m.loTable.Cell(1,2).Range.Font.Size = 10
m.loTable.Cell(1,2).Range.Font.Name = "Courier New"
m.loTable.Cell(1,2).Range.Bold = .F.
m.loTable.Cell(1,2).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(1,3).Range.InsertAfter("Цена")
m.loTable.Cell(1,3).Range.Font.Size = 10
m.loTable.Cell(1,3).Range.Font.Name = "Courier New"
m.loTable.Cell(1,3).Range.Bold = .F.
m.loTable.Cell(1,3).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(1,4).Range.InsertAfter("К-во")
m.loTable.Cell(1,4).Range.Font.Size = 10
m.loTable.Cell(1,4).Range.Font.Name = "Courier New"
m.loTable.Cell(1,4).Range.Bold = .F.
m.loTable.Cell(1,4).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(1,5).Range.InsertAfter("Стоимость")
m.loTable.Cell(1,5).Range.Font.Size = 10
m.loTable.Cell(1,5).Range.Font.Name = "Courier New"
m.loTable.Cell(1,5).Range.Bold = .F.
m.loTable.Cell(1,5).Range.ParagraphFormat.Alignment = 1



USE dannie IN 0
j=1
SCAN
j=j+1
*IF j<=20 THEN
m.loTable.Cell(j,1).Range.InsertAfter(dannie.naimen)
*!* m.loTable.Cell(j,1).Range.Font.Size = 10
*!* m.loTable.Cell(j,1).Range.Font.Name = "Courier New"
*!* m.loTable.Cell(j,1).Range.Bold = .F.
*!* m.loTable.Cell(j,1).Range.ParagraphFormat.Alignment = 0
m.loTable.Cell(j,2).Range.InsertAfter(dannie.izm)
*!* m.loTable.Cell(j,2).Range.Font.Size = 10
*!* m.loTable.Cell(j,2).Range.Font.Name = "Courier New"
*!* m.loTable.Cell(j,2).Range.Bold = .F.
*!* m.loTable.Cell(j,2).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(j,3).Range.InsertAfter(dannie.cena)
*!* m.loTable.Cell(j,3).Range.Font.Size = 10
*!* m.loTable.Cell(j,3).Range.Font.Name = "Courier New"
*!* m.loTable.Cell(j,3).Range.Bold = .F.
*!* m.loTable.Cell(j,3).Range.ParagraphFormat.Alignment = 2
m.loTable.Cell(j,4).Range.InsertAfter(dannie.kolvo)
*!* m.loTable.Cell(j,4).Range.Font.Size = 10
*!* m.loTable.Cell(j,4).Range.Font.Name = "Courier New"
*!* m.loTable.Cell(j,4).Range.Bold = .F.
*!* m.loTable.Cell(j,4).Range.ParagraphFormat.Alignment = 1
m.loTable.Cell(j,5).Range.InsertAfter(dannie.cena*dannie.kolvo)
*!* m.loTable.Cell(j,5).Range.Font.Size = 10
*!* m.loTable.Cell(j,5).Range.Font.Name = "Courier New"
*!* m.loTable.Cell(j,5).Range.Bold = .F.
*!* m.loTable.Cell(j,5).Range.ParagraphFormat.Alignment = 2
*ENDIF
ENDSCAN


oRange = loTable.Range
oRange.Collapse(wdCollapseEnd) && Move insertion point beyond table
WITH oRange

.Collapse(wdCollapseEnd)
*.InsertParagraphAfter()
.InsertParagraphAfter()
.Font.Size = 6
.Font.Name = "Courier New"
.Collapse(wdCollapseEnd)
.InsertAfter('Итого по документу ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
lnSumma=162261.83
.InsertAfter(ALLTRIM(STR(lnSumma,20,2))+' ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)




.InsertAfter('Сумма прописью : ')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
LOCAL money


lcRubl=GetStrMoney(int(lnSumma),"рубль","рубля","рублей")
lcRubl=UPPER(SUBSTR(lcRubl,1,1))+SUBSTR(lcRubl,2)

lnKop = lnSumma*100-int(lnSumma)*100
lcKop=GetStrMoney(lnKop,"копейка","копейки","копеек",.T.)
lcSumma = ALLTRIM(lcRubl+" "+ALLTRIM(STR(lnSumma*100-int(lnSumma)*100))+" "+SUBSTR(lcKop,RAT(" ",lcKop)+1)) IF lnSumma=INT(lnSumma)then
lcSumma=lcSumma+" 00 копеек"
ENDIF
.InsertAfter(lcSumma)
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.Bold = .T.
.ParagraphFormat.Alignment = wdAlignParagraphLeft


.InsertParagraphAfter()
.InsertParagraphAfter()
.InsertAfter('Разрешил _________/')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertAfter('ГОРУН ЕВГЕНИЙ'+space(30))
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .T.
.Collapse(wdCollapseEnd)
.InsertAfter('Получил _____________')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)
.InsertParagraphAfter()
.InsertParagraphAfter()
.InsertParagraphAfter()
.InsertAfter('Отпустил _________/')
.Font.Size = 10
.Font.Name = "Courier New"
.Bold = .F.
.Collapse(wdCollapseEnd)

ENDWITH
SELECT dannie
USE
RELEASE ALL
QUIT
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200477
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для ускорения и форматирования, нет возможности использовать готовый шаблон Word куда в заранее приготовленные поля вставляются данные?
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200503
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такс.
1) макрорекодор из Word дает след.
m.loDoc.Tables(1).Columns(4).Select - выделили столбец
а дальше Selection. и делаем что надо, применяется в выделенному.

2) ускорить...

для экземпляра Word при создании устанавливать шрифт, размер и тд. по умолчанию сразу и тогда на каждую вставку не надо прописывать указатели. их только там где отличается от умолчания.

операции с таблицой проводить после её заполнение, и в 1 Selection. устанвливать и ширину и выравнивае столбца и тд.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200540
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Сразу после создания документа игра с шрифтами и тд...
Код: sql
1.
Selection.font.name="Имя шрифта по умолчания для документа" 


ну и по аналогии...
и не надо указывать все, Вы должны изменять только те параметры которые отличаются от стандартных.
и попробуйте еще .InsertAfter(chr(13))
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200606
T1gRa_NTm.loDoc.Tables(1).Columns(4).Select - выделили столбецА вот, для начала, НЕ НАДО ничего выделять. То биш не пользоваться Select и Selection.
То есть писать
with m.loDoc.Tables(1).Columns(4)
.FontSize = ...
...
endwith

Ну и видимость ворда только в конце включать.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200643
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, без выделения будет быстрее, но тестировал в строке VBA.
А так, Вы правы, без выделения правильнее.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200753
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,

как я уже писал это я пробовал данных код просто не работает, а даже выдает ошибку

with m.loDoc.Tables(1).Columns(4)
.Font.Size = 10
.ParagraphFormat.Alignment =1
endwith

еще пробовал с этим экспериментировать, тоже ничего
*loDoc.Selection.ParagraphFormat.Alignment =1
*Selection.ParagraphFormat.Alignment =1
*m.loTable.Columns(4).Font.Size = 10

потому и обратился за помощью, когда варианты закончились, архив с кодом и базой я приложил, можно попробывать туда этот код внедрить, он не будет работать.....
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200755
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
T1gRa_NT,
в дальнейшем так и сделаю для ускорения, думал есть еще более шустрый механизм.
а вот Selection пробовал не работает..... приведите пример конкретно работающего кода на моем примере.....
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39200840
johngorn,
получи и распишись :)
Код: sql
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.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
#INCLUDE msWord.h
#Define True .T.
#Define False .F.
* Создаем объект Word
Local loWord
loWord=Createobject('Word.Application')
* Сразу делаем его видимым для отладки
loWord.Visible=.f.

* Создаем в нем новый документ
Local loDoc
loDoc = loWord.Documents.Add()

* альбомная ориентация
* m.loDoc.PageSetup.Orientation = wdOrientLandscape

* поля страницы
With loDoc
	With .PageSetup
		.TopMargin=13.4
		.BottomMargin=28.3
		.LeftMargin=28.3
		.RightMargin=28.3
	Endwith
* добавляем в документ нужные строки с их форматированием
*!*		Local oRange
*!*		oRange = m.loDoc.Range()
*!*		oRange.Collapse(wdCollapseStart)
*!*		With oRange
	With .Range()
		.Collapse(wdCollapseStart)
		.ParagraphFormat.Alignment = wdAlignParagraphLeft
		.InsertAfter('ЗАО "Инвестгрупп" Ф/К 0200322523523523')
		.Font.Size = 8
		.Font.Name = "Courier New"
		.MoveEnd(wdParagraph,1)
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertParagraphAfter()
		.InsertParagraphAfter()
		.InsertAfter('Накладная на отгрузку №  ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('123456')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter('    Дата отгрузки ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('12.04.2016')
		.Font.Size = 10
	.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter(' года.')
		.Font.Size = 10
	.Font.Name = "Courier New"
		.Bold = .F.
		.ParagraphFormat.Alignment = wdAlignParagraphCenter
		.Collapse(wdCollapseEnd)
		.InsertParagraphAfter()
		.InsertParagraphAfter()
		.Font.Size = 6
*!*			.Font.Name = "Courier New"
		.Collapse(wdCollapseEnd)
		.InsertAfter('     С участка   ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('ЗАО "ТИРАЭТ"  1СКЛАД   ТИРАСПОЛЬ        ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter('	По счету/заказу  ')
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('987654')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.ParagraphFormat.Alignment = wdAlignParagraphLeft
		.Collapse(wdCollapseEnd)
		.InsertParagraphAfter()
		.InsertParagraphAfter()
		.Font.Size = 6
*!*			.Font.Name = "Courier New"
		.Collapse(wdCollapseEnd)
		.InsertAfter('     Покупатель  ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('ПРИДНЕСТРОВСКИЙ СБЕРБАНК')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.Bold = .T.
		.ParagraphFormat.Alignment = wdAlignParagraphLeft
		.Collapse(wdCollapseEnd)
		.InsertParagraphAfter()
		.InsertParagraphAfter()
		.Font.Size = 6
*!*			.Font.Name = "Courier New"
		.Collapse(wdCollapseEnd)
		.InsertAfter('     Получил     ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('Горун Е.В.                  ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter('Доверенность  ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('17    ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter(' от ')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .F.
		.Collapse(wdCollapseEnd)
		.InsertAfter('15.04.2016')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.InsertAfter(' г.')
		.Font.Size = 10
*!*			.Font.Name = "Courier New"
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.Bold = .T.
		.Collapse(wdCollapseEnd)
		.Bold = .T.
		.ParagraphFormat.Alignment = wdAlignParagraphLeft
		.Collapse(wdCollapseEnd)
		.InsertParagraphAfter()
		.InsertParagraphAfter()
		.Font.Size = 6
*!*			.Font.Name = "Courier New"
		.Collapse(wdCollapseEnd)
	Endwith


* Создаем в этом документе таблицу
* Сначала определеяем место, куда будет вставлена таблица
* Теперь собственно создание таблицы из 5 столбцов и  X строк

	Local loTable
*!*		loTable = .Tables.Add(m.oRange,131,5,1)
	loTable = .Tables.Add(loDoc.Paragraphs.Add().Range,131,5,1)

* формируем изначальный шрифт таблицы
*!*		m.loTable.Select
	With loTable
		With .Range
			.Font.Name = "Courier New"
			.Font.Size = 10
			.Bold = .T.
		Endwith

* выделаяем столбец таблицы
		loDoc.Tables(1).Columns(4).Select

********** КАК СДЕЛАТЬ ФОРМАТИРОВАНИЕ ВСЕГО СТОЛБЦА НУЖНЫМ МНЕ ШРИФТОМ И ПО ЦЕНТРУ?????????
****** ВСЕ НИЖНИЕ ВАРИАНТЫ ПЕРЕПРОБЫВЛ - НЕРАБОТАЕТ
*loDoc.Selection.ParagraphFormat.Alignment =1
*Selection.ParagraphFormat.Alignment =1
*m.loTable.Columns(4).Font.Size = 10

		With loWord.Selection.Range

* Задаю ширину высоту строк и столбцов
*m.loTable.Rows(1).ParagraphFormat.Alignment = wdAlignParagraphCenter
			.Rows(1).SetHeight(m.loWord.CentimetersToPoints(0.9),wdAdjustNone)
			.Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
			.Columns(1).SetWidth(m.loWord.CentimetersToPoints(12),wdAdjustNone)
			.Columns(2).SetWidth(m.loWord.CentimetersToPoints(1.1),wdAdjustNone)
			.Columns(3).SetWidth(m.loWord.CentimetersToPoints(2),wdAdjustNone)
			.Columns(4).SetWidth(m.loWord.CentimetersToPoints(1.4),wdAdjustNone)
			.Columns(5).SetWidth(m.loWord.CentimetersToPoints(2.3),wdAdjustNone)
		Endwith
		With .Cell(1,1).Range
			.InsertAfter("Наименование продукции, товаров, комплектующих")
*!*				.Font.Size = 10
*!*				.Font.Name = "Courier New"
*!*				.Bold = .F.
*!*				.ParagraphFormat.Alignment = 1
		Endwith

		With .Cell(1,2).Range
			.InsertAfter("Един.")
*!*			.Font.Size = 10
*!*			.Font.Name = "Courier New"
*!*			.Bold = .F.
*!*			.ParagraphFormat.Alignment = 1
		Endwith

		With .Cell(1,3).Range
			.InsertAfter("Цена")
*!*			.Font.Size = 10
*!*			.Font.Name = "Courier New"
*!*			.Bold = .F.
*!*			.ParagraphFormat.Alignment = 1
		Endwith

		With .Cell(1,4).Range
			.InsertAfter("К-во")
*!*			.Font.Size = 10
*!*			.Font.Name = "Courier New"
*!*			.Bold = .F.
*!*			.ParagraphFormat.Alignment = 1
		Endwith

		With .Cell(1,5).Range
			.InsertAfter("Стоимость")
*!*			.Font.Size = 10
*!*			.Font.Name = "Courier New"
*!*			.Bold = .F.
*!*			.ParagraphFormat.Alignment = 1
		Endwith

		loDoc.Tables(1).Rows(1).Select
		With loWord.Selection.Range
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .F.
			.ParagraphFormat.Alignment = 1
		Endw

		Use dannie In 0
		j=1
		Scan
			j=j+1
*IF j<=20 THEN
			.Cell(j,1).Range.InsertAfter(dannie.naimen)
*!*	.Cell(j,1).Range.Font.Size = 10
*!*	.Cell(j,1).Range.Font.Name = "Courier New"
*!*	.Cell(j,1).Range.Bold = .F.
*!*	.Cell(j,1).Range.ParagraphFormat.Alignment = 0
			.Cell(j,2).Range.InsertAfter(dannie.izm)
*!*	.Cell(j,2).Range.Font.Size = 10
*!*	.Cell(j,2).Range.Font.Name = "Courier New"
*!*	.Cell(j,2).Range.Bold = .F.
*!*	.Cell(j,2).Range.ParagraphFormat.Alignment = 1
			.Cell(j,3).Range.InsertAfter(dannie.cena)
*!*	.Cell(j,3).Range.Font.Size = 10
*!*	.Cell(j,3).Range.Font.Name = "Courier New"
*!*	.Cell(j,3).Range.Bold = .F.
*!*	.Cell(j,3).Range.ParagraphFormat.Alignment = 2
			.Cell(j,4).Range.InsertAfter(dannie.kolvo)
*!*	.Cell(j,4).Range.Font.Size = 10
*!*	.Cell(j,4).Range.Font.Name = "Courier New"
*!*	.Cell(j,4).Range.Bold = .F.
*!*	.Cell(j,4).Range.ParagraphFormat.Alignment = 1
			.Cell(j,5).Range.InsertAfter(dannie.cena*dannie.kolvo)
*!*	.Cell(j,5).Range.Font.Size = 10
*!*	.Cell(j,5).Range.Font.Name = "Courier New"
*!*	.Cell(j,5).Range.Bold = .F.
*!*	.Cell(j,5).Range.ParagraphFormat.Alignment = 2
*ENDIF
		Endscan

*!*		oRange = loTable.Range
*!*		oRange.Collapse(wdCollapseEnd) && Move insertion point beyond table
		With .Range

			.Collapse(wdCollapseEnd)
			.InsertParagraphAfter()
			.Font.Size = 6
*!*				.Font.Name = "Courier New"
			.Collapse(wdCollapseEnd)
			.InsertAfter('Итого по документу    ')
			.Font.Size = 10
		.Font.Name = "Courier New"
			.Bold = .T.
			.Collapse(wdCollapseEnd)
			lnSumma=162261.83
			.InsertAfter(Alltrim(Str(lnSumma,20,2))+'   ')
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .T.
			.Collapse(wdCollapseEnd)

			.InsertAfter('Сумма прописью:  ')
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .T.
			.Collapse(wdCollapseEnd)
			Local money
*  	 money=getstrmoney(162260,"рубль","рубля","рублей")

			lcRubl=GetStrMoney(Int(lnSumma),"рубль","рубля","рублей")
			lcRubl=Upper(Substr(lcRubl,1,1))+Substr(lcRubl,2)
* копейки
*lnKop = VAL(SUBSTR(STR(lnSumma,20,2),AT(",",STR(lnSumma,20,2))+1))
			lnKop = lnSumma*100-Int(lnSumma)*100
			lcKop=GetStrMoney(lnKop,"копейка","копейки","копеек",.T.)
			lcSumma = Rtrim(lcRubl+" "+Transform(lnSumma*100-Int(lnSumma)*100)+" "+Substr(lcKop,Rat(" ",lcKop)+1))				&& полученная строка прописью суммы)
*lcSumma = LOWER(lcSumma)
			If lnSumma=Int(lnSumma)Then
				lcSumma=lcSumma+" 00 копеек"
			Endif
			.InsertAfter(lcSumma)
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .T.
			.Collapse(wdCollapseEnd)
			.Bold = .T.
			.ParagraphFormat.Alignment = wdAlignParagraphLeft

			.InsertParagraphAfter()
			.InsertParagraphAfter()
			.InsertAfter('Разрешил _________/')
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .F.
			.Collapse(wdCollapseEnd)
			.InsertAfter('ГОРУН ЕВГЕНИЙ'+Space(30))
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .T.
			.Collapse(wdCollapseEnd)
			.InsertAfter('Получил _____________')
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .F.
			.Collapse(wdCollapseEnd)
			.InsertParagraphAfter()
			.InsertParagraphAfter()
			.InsertParagraphAfter()
			.InsertAfter('Отпустил _________/')
			.Font.Size = 10
*!*				.Font.Name = "Courier New"
			.Bold = .F.
			.Collapse(wdCollapseEnd)

		Endwith
	Endwith
Endwith

loWord.Visible=.T.
*!*	Select dannie
Use
Release All
*!*		Quit
*!*	* Убираю бордюр у ячейки из 3 строки 2 столбца
*!*	#DEFINE wdBorderTop -1
*!*	#DEFINE wdBorderLeft -2
*!*	#DEFINE wdBorderRight -4
*!*	#DEFINE wdBorderBottom -3
*!*	#DEFINE wdLineStyleNone 0
*!*	LOCAL loCell
*!*	loCell = m.loTable.Cell(3,2)
*!*	m.loCell.Borders(wdBorderTop).LineStyle = wdLineStyleNone
*!*	m.loCell.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
*!*	m.loCell.Borders(wdBorderRight).LineStyle = wdLineStyleNone
*!*	m.loCell.Borders(wdBorderBottom).LineStyle = wdLineStyleNone

...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201063
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,
если честно я так и не увидел кода, который форматирует мне целиком столбец с данными по центру или по шрифту.....
пытался опять таки в этот код добавить .Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
по прежнему выдает ошибку
loDoc.Tables(1).Columns(4).Select
With loWord.Selection.Range
.Rows(1).SetHeight(m.loWord.CentimetersToPoints(0.9),wdAdjustNone)
.Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter

и пропал в нужных местах шрифт Courier New, который закомментили.....
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201104
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,
просто основной мой вопрос был как сделать форматирование в конкретном столбце
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201130
johngornправильный проходящий.,
если честно я так и не увидел кода, который форматирует мне целиком столбец с данными по центру или по шрифту.....
пытался опять таки в этот код добавить .Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter
по прежнему выдает ошибку
loDoc.Tables(1).Columns(4).Select
With loWord.Selection.Range
.Rows(1).SetHeight(m.loWord.CentimetersToPoints(0.9),wdAdjustNone)
.Rows(1).Cells.VerticalAlignment = wdCellAlignVerticalCenter

и пропал в нужных местах шрифт Courier New, который закомментили.....Я привел рабочий код. В котором есть и форматирование столбца и добавленное мной форматирование строки. Смотрите внимательнее. И курьер никуда не пропадает.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201143
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,
файл прилагаю вордовский может у нас как то по разному выводится, у меня почему то Calibri (Основной текст) меж строчек...
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201146
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,
вижу форматирование строки, но вот например как мне в 4 столбце столбце сделать весь столбец по центру и другим шрифтом???
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201191
johngornправильный проходящий.,
вижу форматирование строки, но вот например как мне в 4 столбце столбце сделать весь столбец по центру и другим шрифтом???Предварительно его заполнить. Перенеси оформление колонки и заголовка после заполнения таблицы.
В общем, ворд рассчитан на то, что сначала вводят нужный текст, а уж потом его оформляют, а не наоборот.
Впрочем, еще лучше будет нарисовать шаблон со всем оформлением и его заполнить. И быстрее, и надежнее, и меньше всяких заморочек.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201198
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,

да я это все понимаю, я не увидел кода который форматирует конкретной взятый заполненный столбец например по центру и нужным шрифтом..... как это сделать , как строку я знаю, а как столбец ?
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201274
johngornправильный проходящий.,

да я это все понимаю, я не увидел кода который форматирует конкретной взятый заполненный столбец например по центру и нужным шрифтом..... как это сделать , как строку я знаю, а как столбец ?Так же, как и строку. Совсем слепой?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
		loDoc.Tables(1).Columns(4).Select

********** КАК СДЕЛАТЬ ФОРМАТИРОВАНИЕ ВСЕГО СТОЛБЦА НУЖНЫМ МНЕ ШРИФТОМ И ПО ЦЕНТРУ?????????
****** ВСЕ НИЖНИЕ ВАРИАНТЫ ПЕРЕПРОБЫВЛ - НЕРАБОТАЕТ
*loDoc.Selection.ParagraphFormat.Alignment =1
*Selection.ParagraphFormat.Alignment =1
*m.loTable.Columns(4).Font.Size = 10

		With loWord.Selection.Range
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201292
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,
и что тут такого я пробовал делать так же как строку у меня не работает, ниже привел пример как пробовал
loDoc.Tables(1).Columns(4).Select
With loWord.Selection.Range
.Font.Name = "Arial"
.Font.Size = 10
.VerticalAlignment = wdCellAlignVerticalCenter
Endwith

можно конкретику написать на примере 4 столбца сделать другим шрифтом и отформатировать по центру текст
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201295
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,

или вот это тоже не работает .Columns(1).Cells.ParagraphFormat.Alignment = 1
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201310
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johngorn,

я обычно такие накладные формирую в НТМ-формате
весьма удобно
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201360
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

неплохо смотрится, но нужно в ворде и с соблюдением всех шрифтов и интервалов, для того чтобы в дальнейшем корректировать накладную.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201382
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johngorn,

я в ворде открываю для печати, а не для корректировки
данные хранятся в таблицах(аксесс-ексель-фохпро-дВазе)

шрифты прописать не сложно, я 90-95% подобных бланков делаю именно так, причем принцип един для всех, много штандартных кусков(согласовано, согласовано/утверждаю, подписи)

этот же бланк можно открывать в ексель или броузере(по потребности)
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201636
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

это все конечно отлично, но я так и не получил ответ на свой вопрос, как сделать то что я хочу.....

вот пример того как отформатировать конкретную ячейку таблицы в ворд
loTable.Cell(j,2).Range.Font.Size = 10
loTable.Cell(j,2).Range.Font.Name = "Courier New"
loTable.Cell(j,2).Range.Bold = .F.
loTable.Cell(j,2).Range.ParagraphFormat.Alignment = 1

а вот как сделать то же самое, но с конкретным столбцом, чтобы не форматировать каждую ячейку в отдельности и не терять столько времени на создание документа????
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39201961
johngornПЕНСИОНЕРКА,

это все конечно отлично, но я так и не получил ответ на свой вопрос, как сделать то что я хочу.....

а вот как сделать то же самое, но с конкретным столбцом, чтобы не форматировать каждую ячейку в отдельности и не терять столько времени на создание документа????Ответ вы получили, но или его не поняли, или сломали какой-нить самодеятельностью, или у вас на компе что-то не дает правильно работать приведенному вам примеру.
...
Рейтинг: 0 / 0
работа с таблицами Word
    #39202261
johngorn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
правильный проходящий.,

может мы друг друга не поняли, можно мне вот прям разжувать и написать текст программы, который делает что то с конкретным столбцом и ничего кроме него?
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / работа с таблицами Word
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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