|
Помогите с отчетом!
|
|||
---|---|---|---|
#18+
Подскажите, как сделать, что бы отчет выдавался в Word на основе выбранных полей: на пример открываешь окно и ставишь галочки, какие поля нужно вывести отчет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2002, 08:02 |
|
Помогите с отчетом!
|
|||
---|---|---|---|
#18+
почитайте в MSDN про CreateObject("Word.Document") ... Вам нужно создать через OLE Автоматизацию (ActiveX) объект MSWord и записывать в него все что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2002, 09:56 |
|
Помогите с отчетом!
|
|||
---|---|---|---|
#18+
Нужно создать шаблон документа в WORD в нем каким-либо образом обозначить поле в которое необходимо вывести значение.Напрмер "девятками": Заказчик: 99999 Исполнитель: 99999 Дата заключения договора: 99/99/9999 Затем выделяем например "девятки" около "Заказчик:" и заходим в меню "Вставка\Закладка".В открывшемся окошке присваиваем закладке какое-либо имя (я использую имя поля БД,например "Cust_code") и жмем "Добавить".Таким образом мы присваиваем любой нужной нам области документа имена и сохраняем все это в файле шаблона (с расширением dot,например "Prot.dot").Из VB6.0 заполняем эти закладки следующим образом: Dim w As Object Set w = CreateObject("Word.Application") w.Documents.Add App.Path & "\Prot.dot" With w.ActiveDocument.Bookmarks .Item("Cust_code").Range.Text = "12345" ................ заполняем остальные закладки End With w.Visible=True set w=Nothing Вот и все! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2002, 18:54 |
|
Помогите с отчетом!
|
|||
---|---|---|---|
#18+
Есть такая проблема: OLE контрол, в него помещается WORD document с помощью CreateEmbed. При закрытия формы делаю OLE_object.Close и все равно Word висит в запущенных процессах. Может кто-то знает как это исправить ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2003, 06:08 |
|
Помогите с отчетом!
|
|||
---|---|---|---|
#18+
2 www - чуть только уточню твою идею: Для пересылки данных из базы в ворд, когда вэбэшные отчеты меня не устраивают, я использую идею, описанную в q210271. Т.е. есть шаблон ворд-документа. В те места, в которые нужно вставить данные, помечаются как закладки с уникальными именами (по-другому и не получится). Ну а далее, в вэбэ открываешь документ и вставляешь в нужные места свои данные. Поскольку нет никакого интереса изучать модель ворда, с его помощью сначала формируем нужный макрос и потом, подправив вставляем в свое приложение. И вот тут как раз возникала похожая проблема, вроде бы документ закрываешь, а он (иногда) сидит в таскменеджере. При попытке вторичного открытия документа вылетала ошибка, точно не помню, но в мсдн она есть. В общем, в коде нужно использовать полные ссылки на объекты ворда, а не через "." Кроме того, ворд может не закрыться, если при переносе данных была какая-нибудь ошибка, например, не найдена закладка. Поэтому лучше не восстанавливать шаблон (закладки стираются), а просто его перезаписывать перед каждым переносом данных. После этих манипуляций еще не разу не возникало проблем. Ну а это кусок кода, где все это работает: ' Рутина формирования отчетного word-документа "Счет за оказанные услуги" ' Если intParan = 0 то просто открываем документ для просмотра, если равен 1, ' то сразу выводим на печать ' Перед началом формирования документа перезаписываем его Private Function wdParaBill(intParan As Integer) As Boolean 'On Error GoTo Err_Wd Dim wdСчет As New Word.Application ' переменная для word-отчета по параклинике Dim rstBill As New ADODB.Recordset ' набор к отчетной таблице tbtОтчетПара Dim dblSumm As Double ' сумма услуг Dim strSumm As String ' строковое выражение суммы оказанных услуг Dim fsoFile As New FileSystemObject Dim strSourcePath As String ' расположение исходного файла Dim strDestPath As String ' путь к перезаписываемому файлу Dim strFileName As String ' имя перезаписываемого файла strFileName = "wpara.doc" strSourcePath = GetAppPath & "\EmptyDBF\" & strFileName strDestPath = GetAppPath & "\" & strFileName ' Удаляем старый файл If fsoFile.FileExists(strDestPath) Then fsoFile.DeleteFile (strDestPath) End If ' Копируем пустой документ на место удаленного If fsoFile.FileExists(strSourcePath) Then Call fsoFile.CopyFile(strSourcePath, strDestPath, True) End If rstBill.Open "SELECT * FROM tbtОтчетПараК", cnn dblSumm = cnn.Execute("SELECT SUM(СуммаУслуг) AS Total From tbtОтчетПараК")("Total") wdСчет.Visible = False wdСчет.Documents.Open (GetAppPath & "\" & strFileName) With wdСчет .ActiveDocument.Bookmarks("НазвУчреждения").Select .Selection.Text = "Магнитогорского кожно-венерологический диспансера" ' поскольку мы только что стерли прежнюю закладку данными из набора, то для возможности повторного ' использования документа - восстанавливаем закладку .ActiveDocument.Bookmarks.Add Name:="НазвУчреждения", Range:=.Selection.Range .ActiveDocument.Bookmarks("ДатаНачало").Select .Selection.Text = CStr(rstBill![ДатаНачало]) .ActiveDocument.Bookmarks.Add Name:="ДатаНачало", Range:=.Selection.Range .ActiveDocument.Bookmarks("ДатаКонец").Select .Selection.Text = CStr(rstBill![ДатаКонец]) .ActiveDocument.Bookmarks.Add Name:="ДатаКонец", Range:=.Selection.Range .ActiveDocument.Bookmarks("НазвСМО").Select .Selection.Text = "Астра-Металл" .ActiveDocument.Bookmarks.Add Name:="НазвСМО", Range:=.Selection.Range .ActiveDocument.Bookmarks("СуммаУслуг").Select .Selection.Text = CStr(dblSumm) .ActiveDocument.Bookmarks.Add Name:="СуммаУслуг", Range:=.Selection.Range .ActiveDocument.Bookmarks("СуммаРегИсков").Select .Selection.Text = " " .ActiveDocument.Bookmarks.Add Name:="СуммаРегИсков", Range:=.Selection.Range .ActiveDocument.Bookmarks("СуммаКОплате").Select .Selection.Text = CStr(dblSumm) .ActiveDocument.Bookmarks.Add Name:="СуммаКОплате", Range:=.Selection.Range .ActiveDocument.Save .ActiveDocument.Close savechanges:=wdSaveChanges .Quit End With Set wdСчет = Nothing rstBill.Close Set rstBill = Nothing DoEvents If intParan = 0 Then wdСчет.Visible = True wdСчет.Documents.Open (GetAppPath & "\" & strFileName) End If Exit Function Err_Wd: Err.Clear Resume Next MsgBox "Счет стоимости услуг по параклинике не сформирован!", vbCritical + vbOKOnly, "Ошибка формирования счета" End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2003, 07:17 |
|
|
start [/forum/moderation_log.php?user_name=panzer20]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 1190ms |
total: | 1365ms |
0 / 0 |