|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, loWord.TypeText("так пишется текст") && переменные, поля здесь никто не отменял loWord.ActiveDocument.Tables.Add(.Range,1,2) && создание таблицы 1х2 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 12:21 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Код: plsql 1. 2.
Это только кусочек из кода, допили... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 12:24 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Jonny540, Не допилю))), я спал всего один час и плохо соображаю, если не затруднит для моего случая: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 12:55 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Виноват, вот так надо: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 13:01 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Извини, но тебе лучше всего поспать минут 600... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 13:28 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Jonny540, Спс, но может лучше для моего случая, а то ни как. То не правильное имя то Selection не является объектом. плиз!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 13:41 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, ну дык опиши конкретно, что надо.. из примера можно только понять, ты ворд с екселем перемешал ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 14:00 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Jonny540, В целом мне нужна таблица. Таблица будет заполняться через SCAN? Но при заполнении через SCAN нельзя присвоить шапку таблице (т.к. она будет повторяться) и заполнять поля. Я пришел к выводу что сделаю две таблицы, с начала таблицу «шапку», потом перейду на следующую строку и создам новую таблицу которая будет заполняться через SCAN. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 14:24 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Извини, фигня. Шапку тебе никто не мешает делать сразу после создания файла. Ну а дальше - SCAN , заполнение ячеек таблицы ворда в цикле.... В чем проблема-то? Я тоже не спал, вообще, и чё??? И что такое R1C1? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 16:39 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Спасибо Jonny540! Только надо было подтолкнуть меня, а то я сонный не допилил. Вот так у меня будет правильно: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 18:09 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks,авторWITH loWord.Selection .MoveDown(wdLine,1) ENDWITH Код: plsql 1.
Можно и так. Good luck! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2012, 19:20 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Jonny540, Пол дела сделали))) Вот такой еще вопрос , когда в Word вставляешь таблицу и если она очень большая та она разбивается на два листа. И получается что строка попадает в разрыв страниц, и часть содержимого абзаца на одном листе а другая часть на втором. А как сделать чтобы, если не влезает на лист, то та часть что не влезает переносилась на новый лист целиком? И плюс, с начала шапка о потом продолжение таблицы! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2012, 17:22 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Проблема вечная... Считай строки. Не знаю, может в ворде есть что-нибудь типа _PLENGTH, _PLINENO? На форуме такая проблема с отчетами FoxPro обсуждалась, поищи, может, поможет. И на FoxClub что-то я видел на эту тему... А если после вывода руками допилить документ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2012, 19:55 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Jonny540, Нет!, проблема не вечная, вот ответ: В word есть встроенные функции: - Разрешить перенос строк на следующую страницу - Повторять как заголовок на каждой странице ( они лежат: свойство таблицы - строка ). Параметр: «Разрешить перенос строк на следующую страницу» - если снять галочку то строки таблиц не будут разрываться на два листа. Параметр: «Повторять как заголовок на каждой странице» - если поставить галочку то заголовок таблицы будет повторяться на каждом листе. Код для FoxPro: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2012, 09:47 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Спасибо! Когда-то пытался найти, но... А как быть с подчеркиванием при переходе на новую страницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2012, 10:10 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
В приведенном коде описано все как построить отчет, который на картинке! * WdParagraphAlignment #DEFINE wdAlignParagraphLeft 0 #DEFINE wdAlignParagraphCenter 1 #DEFINE wdAlignParagraphRight 2 #DEFINE wdAlignParagraphJustify 3 * WdCellVerticalAlignment #DEFINE wdCellAlignVerticalTop 0 #DEFINE wdCellAlignVerticalCenter 1 #DEFINE wdCellAlignVerticalBottom 3 * Orientation #DEFINE wdOrientLandscape 1 #DEFINE cr CHR(13) * Строка #DEFINE wdLine 5 #DEFINE wdCell 12 * Линия подчеркивания #DEFINE wdUnderlineSingle 1 * Повторяющиеся заголовки #DEFINE wdToggle 9999998 * Разрыв страницы #DEFINE wdPageBreak 7 *Selection.InsertBreak Type:=wdPageBreak * WdPageNumberAlignment #DEFINE wdAlignPageNumberLeft 0 #DEFINE wdAlignPageNumberCenter 1 #DEFINE wdAlignPageNumberRight 2 #DEFINE wdAlignPageNumberInside 3 #DEFINE wdAlignPageNumberOutside 4 SET OLEOBJECT ON LOCAL lcColZap, nRow, lcPn, lcperz *-------------- WORD --------------------------- LOCAL loWord, loWordDoc, loWordTab loWord = CREATEOBJECT('Word.Application') loWord.visible = .F. loWordDoc=loWord.Documents.Add loWordDoc.PageSetup.Orientation = wdOrientLandscape loWordDoc.PageSetup.TopMargin = 40 loWordDoc.PageSetup.BottomMargin = 40 loWordDoc.PageSetup.LeftMargin = 40 loWordDoc.PageSetup.RightMargin = 40 *Пред настройки таблицы loWord.Selection.Font.Size = 12 loWord.Selection.Font.Name = "Times New Roman" loWord.Selection.Font.Bold = .F. loWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft && задается до таблицы *Таблица документа loWordTab = loWord.ActiveDocument.Tables.Add(loWord.Selection.Range,1,2) WITH loWord.Selection.Tables(1) .Columns(1).Width = 560 .Columns(2).Width = 225 .rows(1).Height = 40 * .Style = "Сетка таблицы" .Cell(1,1).Range.Text = "СОГЛАСОВАНО" .Cell(1,1).VerticalAlignment = wdCellAlignVerticalCenter && внутри таблицы .Cell(1,2).Range.Text = "УТВЕРЖДАЮ" .Cell(1,2).VerticalAlignment = wdCellAlignVerticalCenter ENDWITH WITH loWord.Selection .MoveDown(wdLine,1) ENDWITH *Текст документа WITH loWord.Selection .Font.Size =12 .Font.Name = "Times New Roman" .ParagraphFormat.Alignment = wdAlignParagraphCenter .TypeText("ПРОТОКОЛ №") .TypeText(+CHR(10)+CHR(13)) .ParagraphFormat.Alignment = wdAlignParagraphLeft .TypeText("Присутствовали:") .TypeText(+CHR(13)) .Font.Underline = wdUnderlineSingle .TypeText("Рассмотрены вопросы и решения:") * .Font.Underline = .T. .TypeText(+CHR(13)) .Font.Underline = .F. .TypeText("Таблица №") .TypeParagraph ENDWITH loWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft SELECT DocName, DocDate, DocTitle, RegNumb, PointNumb, PointSod, D_n, Naimp ; FROM Otpz INTO CURSOR OtpzWord ORDER BY Otpz.RegNumb SELECT COUNT(OtpzWord.RegNumb) as colzap FROM OtpzWord INTO CURSOR OtpzWordCol lcColZap = OtpzWordCol.colzap *Пред настройки таблицы loWord.Selection.Font.Size = 12 loWord.Selection.Font.Name = "Times New Roman" loWord.Selection.Font.Bold = .F. * loWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft && задается до таблицы *Таблица документа loWordTab = loWord.ActiveDocument.Tables.Add(loWord.Selection.Range,lcColZap+1,4) SELECT OtpzWord lcperz = 1 nRow = 0 SCAN lcPn = RECNO() nRow = nRow + 1 IF lcperz = 1 WITH loWord.Selection.Tables(1) .Columns(1).Width = 51 .Columns(2).Width = 245 .Columns(3).Width = 245 .Columns(4).Width = 245 * .rows(1).Height = 20 .Style = "Сетка таблицы" && рисует границы таблицы .Cell(1,1).Range.Text = "№ п/п" .Cell(1,1).VerticalAlignment = wdCellAlignVerticalCenter && внутри таблицы .Rows(1).AllowBreakAcrossPages = .F. .Cell(1,2).Range.Text = "Документ, по которому имеется невыполнение" .Cell(1,2).VerticalAlignment = wdCellAlignVerticalCenter .Rows(1).AllowBreakAcrossPages = .F. .Cell(1,3).Range.Text = "Пункты и его содержание, ответственный и исполнитель, срок исполнения" .Cell(1,3).VerticalAlignment = wdCellAlignVerticalCenter .Rows(1).AllowBreakAcrossPages = .F. .Cell(1,4).Range.Text = "Принятое решение (или № с/з на перенос)" .Cell(1,4).VerticalAlignment = wdCellAlignVerticalCenter .Rows(1).AllowBreakAcrossPages = .F. * .Rows(1).HeadingFormat = wdToggle && здесь эта функц. не работает ENDWITH nRow = nRow + 1 lcperz = 0 ENDIF WITH loWord.Selection.Tables(1) .Columns(1).Width = 51 .Columns(2).Width = 245 .Columns(3).Width = 245 .Columns(4).Width = 245 .Style = "Сетка таблицы" .Cell(nRow,1).Range.Text = lcPn .Cell(nRow,1).VerticalAlignment = wdCellAlignVerticalTop .Cell(nRow,2).Range.Text = ALLTRIM(OtpzWord.DocName)+' от '+LEFT(TTOC(OtpzWord.DocDate),8)+' '+ALLTRIM(OtpzWord.DocTitle)+' ('+ALLTRIM(OtpzWord.RegNumb)+')' .Cell(nRow,2).VerticalAlignment = wdCellAlignVerticalTop .Cell(nRow,3).Range.Text = 'п. '+ALLTRIM(OtpzWord.PointNumb)+' - '+ALLTRIM(OtpzWord.PointSod)+' Отв.: '+ALLTRIM(OtpzWord.Naimp)+' Срок: '+LEFT(TTOC(OtpzWord.D_n),8) .Cell(nRow,3).VerticalAlignment = wdCellAlignVerticalTop .Cell(nRow,4).Range.Text = " " .Cell(nRow,4).VerticalAlignment = wdCellAlignVerticalTop .Rows.AllowBreakAcrossPages = .F. .Rows(1).HeadingFormat = wdToggle ENDWITH ENDSCAN loWord.Selection.Sections(1).Footers(1).PageNumbers.Add(wdAlignPageNumberRight, .T.) && нумерация страниц loWord.visible = .T. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2012, 10:27 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
Aleks_Aleks, почему обязательно отчетом, а не програмное формирование ДОС(в формате НТМ) для печати вордом Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2012, 12:46 |
|
Работа с таблицами в Word
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАAleks_Aleks, почему обязательно отчетом, а не програмное формирование ДОС(в формате НТМ) для печати вордом отчетом - Это документ word! програмное формирование - loWord = CREATEOBJECT('Word.Application') && Какое это формирование если не програмное!? для печати - Не только для печати, а для: редактирования, сохранения, передачи и т.д.! НТМ - Есть {FoxPro--Word} здесь нет места HTM! Не знаю что ты имел в виду, но HTM я знаю плохо, да и зачем эти трудности, по-моему и так все хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2012, 13:52 |
|
|
start [/forum/topic.php?fid=41&msg=37874641&tid=1583569]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 160ms |
0 / 0 |