powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывод отчёта в Word в несколько колонок
11 сообщений из 11, страница 1 из 1
Вывод отчёта в Word в несколько колонок
    #39708311
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Не выводил ли кто-нибудь отчёт в Word в несколько колонок? Что-то не получается с середины текста перед таблицей разбить страницу на две колонки, а потом после таблицы вернуть опять одну.

Код: 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.
Макрос сначала такой: 
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend  
      Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend  
      Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend  
      Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend  
      If ActiveWindow.View.SplitSpecial <> wdPaneNone Then  
          ActiveWindow.Panes(2).Close  
      End If  
      If ActiveWindow.ActivePane.View.Type <> wdPrintView Then  
          ActiveWindow.ActivePane.View.Type = wdPrintView  
      End If  
      ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start). _  
          InsertBreak Type:=wdSectionBreakContinuous  
      Selection.Start = Selection.Start + 1  
      ActiveDocument.Range(Start:=Selection.End, End:=Selection.End).InsertBreak _  
           Type:=wdSectionBreakContinuous  
      With Selection.PageSetup.TextColumns  
          .SetCount NumColumns:=2  
          .EvenlySpaced = True  
          .LineBetween = False  
          .Width = CentimetersToPoints(7.62)  
          .Spacing = CentimetersToPoints(1.25)  
      End With  
      Selection.MoveRight Unit:=wdCharacter, Count:=2  
    
      Selection.EscapeKey  
  End Sub  
  Sub Макрос1()  
  '  
  Потом такой  
  ' Макрос1 Макрос  
  '  
  '  
      If ActiveWindow.View.SplitSpecial <> wdPaneNone Then  
          ActiveWindow.Panes(2).Close  
      End If  
      If ActiveWindow.ActivePane.View.Type <> wdPrintView Then  
          ActiveWindow.ActivePane.View.Type = wdPrintView  
      End If  
      With ActiveDocument.Range(Start:=Selection.Start, End:=ActiveDocument. _  
          Content.End).PageSetup.TextColumns  
          .SetCount NumColumns:=1  
          .EvenlySpaced = True  
          .LineBetween = False  
          .Width = CentimetersToPoints(16.5)  
      End With  
      Selection.TypeText Text:="Текст"  
  End Sub

Чтобы получилось, как в прилагаемом файле.
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709633
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если речь идет о формировании отчета в Word из VFP. Я сначала заранее формирую вордовский шаблон, отформатированный нужным мне образом, а потом открываю его из фокса и набиваю его в нужных местах недостающими данными -- таблицами, текстом, картинками. Макросы Word использую косвенно, для получения нужного кода для преобразования его в код VFP. Ну, как учил Базиян :)
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709666
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В отформатированную предварительно таким образом таблицу данные вводятся раза в два медленнее. И таблиц может быть несколько, зависит от условий.
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709711
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, есть такое. Вставляю данные поячеечно. Но, если обуздать метод InsertDatabase, то импорт происходит очень быстро. Количество таблиц роли не играет, сколько надо, столько и вставляю. В шаблоне делаю шапку для каждой таблицы с пустой строкой, в фоксе выбираю нужную таблицу и снаряжаю данными. С InsertDatabase форматирование никак победить не могу. С нашими объемами и поячеечная вставка вполне устраивает. Видимо, посему и не парюсь :)
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709767
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я имею в виду, что количество таблиц в самом отчёте может зависеть от условий. Шаблон так просто не создать.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
* Встаём в нужное место и делаем раздел до конца документа
lnStart = THIS.word.Selection.Start
THIS.Word.ActiveDocument.Range(m.lnStart, m.lnStart).InsertBreak(3)

* Делаем колонки (pNCol штук шириной pWidth и расстоянием между ними pSpace)
lnStart = THIS.word.Selection.Start+1
lnEnd   = THIS.word.ActiveDocument.Content.End  
       
WITH THIS.Word.ActiveDocument.Range(m.lnStart, m.lnEnd)
  WITH .PageSetup.TextColumns
    .SetCount(pNCol) && NumColumns:=2
    .EvenlySpaced = -1 && True

    IF pNCol>1
     .LineBetween = 0 && False
     .Width = pWidth*28.22222 && CentimetersToPoints(7.62)
     .Spacing = pSpace*28.22222 && CentimetersToPoints(1.25)
    ENDI
  ENDW     
ENDW



Далее делаем новый раздел и устанавливаем количество колонок 1 штуку.
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709770
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
THIS.Word - это ссылка на объект create('word.application')
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709841
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно уйти с символа разрыва раздела. Между добавлением раздела и делением на колонки вставил две пустые строки и поднялся на одну строку. Все отработало, колонки разбились:

THIS.Word.Selection.TypeParagraph
THIS.Word.Selection.TypeParagraph
THIS.Word.Selection.MoveUp(wdLine,1)
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709845
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если что, wdLine=5
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709881
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот и славно. Мы сами можем теперь всех учить.
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39709938
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шаблон, кста, тож программно формирую, если количество таблиц заранее неизвестно. На базе шаблона же с одной таблицей.
...
Рейтинг: 0 / 0
Вывод отчёта в Word в несколько колонок
    #39710005
ArkadyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как отчёты все индивидуальны и их не так много, я предпочитаю в шаблоне сделать заготовки для наименований/заголовков (всё в виде табличек, чтобы удобно было вставать в нужное место-ячейку) и сложных шапок основных таблиц. Чтобы не вырисовывать всю красоту в программе. Потом только данные печатаю.
Но иногда надо что-нибудь эдакое выкинуть. Например, если хотят вывести все данные или полные наименования - расширяю столбцы и печатаю во всю страницу, если только итоги - в две колонки на странице. На каждую комбинацию условий шаблонов не напасёшься.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вывод отчёта в Word в несколько колонок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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