Добавлено: Пн Апр 02, 2012 9:18 pm Заголовок сообщения: Экспорт документов в Excel
Существенным неудобством в Акценте остается невозможность копирования документов в Excel.
Особенно этот минус выделяется на фоне 1С, где все печатные формы документов формируются в табличном виде и легко выгружаются в Excel.
Нельзя сказать, что это нужно часто, но когда нужно -- приходится долго работать над этим.
Чтобы устранить этот недочет, решил выложить готовую выгрузку в Excel для самых востребованных случаев:
Счет,
Расходная накладная,
Акт сдачи работ,
Расходная налоговая накладная.
Добавлено: Вт Апр 03, 2012 8:21 am Заголовок сообщения:
Есть другое решение, более простое, универсальное, но не такое красивое: я просто повесил на on_popup такой код:
Код:
Sub OnPopup(Command, Form, Op)
Dim Dlg
Select Case Command
Case 10
Dim xl
Dim Path
Dim Sht
Dim i, j
If Form.Map.Exists("CurGrid") Then
' Если в Мап передали таблицу, которую нужно выгрузить в эксель, то запускаем выгрузку
If CreateExcel(xl)Then
Path = GetPath()
If Path <> "" Then
If Not OpenBook(xl, Sht, Path) Then Exit Sub
With Form.Map.Item("CurGrid")
If .TypeName = "FrmGrid" Then
For j=1 To .Columns
For i=1 To .Rows
Select Case .Cell(i,j).CellDataType
Case vbLong
Sht.Cells(i,j).NumberFormat = "#,##0"
Case vbDouble, vbCurrency
Sht.Cells(i,j).NumberFormat = "#,####0.0000"
Case vbDate
Sht.Cells(i,j).NumberFormat = "d/m/yyyy"
End Select
Sht.Cells(i,j).Value = .Cell(i,j).Value
Next
Next
ElseIf .TypeName = "FrmScrollGrid" Then
For j=1 To .Columns
Select Case .Column(j).CellDataType
Case vbLong
Sht.Columns(j).NumberFormat = "#,##0"
Case vbDouble, vbCurrency
Sht.Columns(j).NumberFormat = "#,####0.0000"
Case vbDate
Sht.Columns(j).NumberFormat = "d/m/yyyy"
End Select
For i=1 To .Rows
Sht.Cells(i,j).Value = .Cell(i,j).Value
Next
Next
End If
xl.Visible = True
End With
End If
End If
Form.Map.Remove("CurGrid")
Else
MsgBox "Не можу відкрити таблицю!", vbInformation, "Помилка"
End If
End Select
End Sub
Вынес это в скелет формы и выгружаю любую таблицу по правому клику из выпадающего меню. Конечно, это не форма (можно попытаться написать универсальную функцию выгрузки любой формы в определенном приближении, но лень), но если юзеру нужно найти из 1000 строк в каком-нить акте или накладной определенную строку для редактирования - чудесно работает, рекомендую.
Добавлено: Вт Апр 03, 2012 10:16 am Заголовок сообщения: Re: Экспорт документов в Excel
nikman писал(а):
Существенным неудобством в Акценте остается невозможность копирования документов в Excel.
Больше нравиться использование именнованных диапазонов в Excel - да и под Word сделать наверно давольно просто, вот пример кода:
Код:
Sub btnToExcel
Dim i, rg, j
Dim Path
If Not CreateExcel() Then Exit Sub
If Not Workarea.Params.Exists("Имя папки шаблонов") Then Workarea.Params.Create vbString, "Имя папки шаблонов"
Path = Workarea.Params("Имя папки шаблонов")
For i=1 To op.TransList(1).Rows-1
.Range("Данные").EntireRow.Insert
' ws2.Range("Данные2").EntireRow.Insert
Next
.Names.Add "Данные","=R22C1:R22C10"
.Names.Add "Данные2","=R22C13:R22C22"
xl.Visible = True
Set ws = Nothing
Set xl = Nothing
End Sub
Перед этим для нужного документа создаем Excel документ, проставляем где надо именованные диапазоны, переименовываем расширение в .xlt и подсовываем для этого кода
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах