powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Путь к шаблону word
25 сообщений из 28, страница 1 из 2
Путь к шаблону word
    #35105473
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясните пжста такую ситуация , в проекте несколько документов выводятся в шаблон word , на кнопке вывода на печать указывается путь к шаблону:

loWord = CREATEOBJECT( 'WORD.APPLICATION')
loDoc=m.loWord.Documents.Add('C:\FOX_pr\s11.dot')

при компиляции в exe , шаблон включается в exe файл, при работе с прогой при попытке вывода в шаблон ругается 'LODOC is not an object' , так понимать что не найден ? или как ?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105479
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это рассчитано на то, что Word залезет в фоксовый ехе-файл за шаблоном? А как он это сделает? А он это умеет? А ему это разрешат?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105487
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я не скрываю что дилетант, и не переоцениваю свои силы, если не лень объясни что к чему по сути, , вынести эти шаблоны в отдельную папку или как?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105491
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не включать их в ехе-файл, а уж насчет отдельной папки по желанию.
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105498
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как быть с указанием пути с программным указанием пути
loDoc=m.loWord.Documents.Add('C:\FOX_pr\s11.dot')
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105501
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что с ним не так? В чем проблема-то?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105510
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем , перекомпилировал проект не включаяя шаблоны, создал инсталлятором пакет
при установке получается путь
C:\Program Files\foxy

где соответственно находится exe и прочее
тк же по этому пути находятся папки DAT (база данных), и OTH (где и находятся соответственные шаблоны)

config включен в exe

RESOURCE=OFF
SCREEN=OFF
DEFAULT=C:\Program Files\foxy
PATH=Data,foxy, OTH
TITLE=VetServise programs v 2.01 (Nikitov Aeduard)
CODEPAGE=1251
COMMAND=DO _start.prg

один пес не находит , берет их из папки проекта, т.е. по указанному пути
ломаешь папку проекта , пишет 'LODOC is not an object'
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105519
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Word надо указывать полный путь доступа. Начиная с буквы диска. Относительные пути доступа он не поймет, поскольку относительные они для FoxPro, а не для Word.

Т.е. надо сначала сформировать полный путь доступа до файла шаблона и только потом подсовывать его Word. Ну, примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LOCAL lcFileName, lcFullFileName
lcFileName = "s11.dot"
IF File(m.lcFileName)
	lcFullFileName = FullPath(m.lcFileName)
ELSE
	MessageBox("Файл шабона "+m.lcFileName+" не найден")
	return
ENDIF

loWord = CREATEOBJECT( 'WORD.APPLICATION')
loDoc=m.loWord.Documents.Add(m.lcFullFileName) 
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35105526
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. следуя этому если конечный пользователь поставит программу не на с:\foxy , а на d:\foxy шаблоны так же перестанут находится?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35106007
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2т.е. следуя этому если конечный пользователь поставит программу не на с:\foxy , а на d:\foxy шаблоны так же перестанут находится?
А попробовать?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #35106263
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Владимир. Попровал, все работает как надо. Но ведь мало чтоб работало , надо чтобы дошло почему, вот и разбирался пол дня с Вашей помощью, еще раз спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Путь к шаблону word
    #38085998
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте всем, давно не обращался за помощью ... кстати с наступающим всех (кого с новым годом , кого с концом света ) как кому нравится ..
Вопрос спецам , разжуйте не разумному можно ли как либо в шаблоне (таблице) word(а), при выводе отчета из fox(а) объединить строки в 1 -й колонке?
табл: колонки

- наименование -дата кол-во

Пенициллин 10/10.12 200
15/10.12 100
18/10.12 150

как сделать объединение строк в колонке наименование , дабы вместо 3-х строк стала 1 и текст по центру...
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38086046
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем объединять *в данном конкретном случае)? То есть три разных наименования вы объедините, а количества - нет,затем наименования уедут "куда-то в центр", и что будкут в таком случае обозначать количества в соседнем столбце?

Если всё же надо работать с объектной моделью Ворда - задайте вопрос в том разделе .
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38086140
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2можно ли как либо в шаблоне (таблице) word(а), при выводе отчета из fox(а) объединить строки в 1 -й колонке?
табл: колонки

- наименование -дата кол-во

Пенициллин 10/10.12 200
15/10.12 100
18/10.12 150

как сделать объединение строк в колонке наименование , дабы вместо 3-х строк стала 1 и текст по центру...Данные для отчета лучше подготовить в фоксе:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT * FROM myTable INTO CURSOR t1 READWRITE
lcNm=''
SCAN
  IF ALLT(t1.naim)==lcNm
    REPLACE t1.naim WITH ''
  ELSE
    lcNm=ALLT(t1.naim)
  ENDIF
ENDSCAN


Отчет делать на основе временной таблицы t1.

P.S. Нечто подобное недавно было
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38086146
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!!! Если исходная таблица физически не упорядочена, то:
Код: plsql
1.
SELECT naim, data, kolvo FROM myTable ORDER BY 1,2 INTO CURSOR t1 READWRITE
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38087431
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, но маленько не то , похоже я как всегда криво объяснил свою хотелку ..

В общем-то объединение нужно только т.с. из эстетических соображений ..

Создаю курсор из двух таблиц, вывожу в шаблон word с таблицей:


а хотелось бы вот такой формы, т.е. посчитать строки в первой корлонке для объединения не составляет труда, а вот как их объединить .......?.....
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38087439
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну если так объединить...
Я же сказал - задайте вопрос в Офисе, поскольку вам нужны свойства и методы вордовского объекта (перейти в нужную таблицу, пройтись по строкам/ячейкам, объединить).
Как затем работать с VBA в VFP - вот только что ВладимирМ ссылку давал: 13661488
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38087666
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2,

Раз уж я начал... :)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
Есть таблица в документе Word.
Нужно объединить N ячеек в M столбце.

Set myCell1 = ActiveDocument.Tables(1).Cell(Row:=N_нач, Column:=M)
Set myCell2 = ActiveDocument.Tables(1).Cell(Row:=N_конеч, Column:=M)
Set rngTable = ActiveDocument.Range(Start:=myCell1.Range.Start, End:=myCell2.Range.End)
rngTable.Cells.Merge 

А теперь сам: это надо преобразовать в код фокса. См. ссылку выше.
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38087750
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540
сам на word(е) этот пример нашел..
все равно спасиб , дорогой, оно то что надо ..
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38089311
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняйте за надоедливость, но не легкая это работа , из болота тащить .....
моска моего похоже не хватает организовать вышеописанное действо по объединению ,
не могу расчитать начало / конец объединения ячеек в столбце . Если б данные выводились с фиксированным кол-м строк это понятно, а вот когда хай знает сколлько их будет это..?..

вот такой код вывода наваял :


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Local lnWordRowNum
lnWordRowNum = 3  
SELECT prt
SCAN 
IF m.loTable.Rows.Count < m.lnWordRowNum  
m.loTable.Rows.Add()  
ENDIF  
m.loTable.Cell(m.lnWordRowNum,1).Range.Text = prt.p_name
IF prt.btdat<>{}
m.loTable.Cell(m.lnWordRowNum,2).Range.Text = DTOC(prt.btdat)
endif
ENDSCAN
m.loWord.Visible = .T.



** конструкция для объединения ячеек:

Где n начальная ячейка 1 столбца
m конечная

Код: sql
1.
2.
3.
WITH loTable
m.loDoc.Tables(1).Cell(n,1).Merge(.Cell(m,1))
ENDWITH


вот куда ее притачать и расчитать n и m ????
уж звиняйте за беспокойство , программист из меня еще тот, исключительно из необходимости
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38089472
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2,

Была похожая задачка. :)) Допилишь под себя:

Код: plsql
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.
Select prt
lnRecc=Recc()
Go top
With loWord
* создаем всю таблицу сразу
  .ActiveDocument.Tables.Add(.Selection.Range,lnRecc,3) 
  n=1
  Scan 
    IF !Isblank(prt.p_name)
      lnRecn=Recno()   && чтобы не вычислять несколько раз одно и то же
      If n<lnRecn
        m=lnRecn-1
        If n < m      && n=m - одна ячейка, нет смысла в объединении
*  объединение с (n,1) по (m,1)
        Endif
        n=lnRecn
      Endif
      .ActiveDocument.Tables(1).Cell(lnRecn,1).Range.Text = ALLT(prt.p_name)
    Endif
    IF !Isblank(prt.btdat)
      .ActiveDocument.Tables(1).Cell(lnRecn,2).Range.Text = DTOC(prt.btdat)
    Endif
  Endscan
  If n < lnRecc
*  объединение с (n,1) по (lnRecc,1)
  Endif
Endwith
m.loWord.Visible = .T.


Если p_name в первой строке dbf-таблицы пустое, до первой непустой тоже будет объединение. :)
Используется функция Recno(), поэтому порядок записей в dbf-таблице должен быть физический, без SET ORDER.
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38090261
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,

алаверды, как говорится домучил сие действо. Спасиб , пример очень даже помог.
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38090348
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь у меня вопрос: как обращаться к ячейке, полученной объединением (n,m) и (n+k1,m+k2)?
Вроде все перерыл...
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38090350
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonny540, в экселе - так же, как и к ячейке (n,m). А в ворде так не получается?
...
Рейтинг: 0 / 0
Путь к шаблону word
    #38090422
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, нет.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Путь к шаблону word
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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