183 lines
11 KiB
VB.net
183 lines
11 KiB
VB.net
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
Imports DevExpress.ExpressApp.Win.Editors
|
|
Imports DevExpress.XtraGrid.Views.Grid
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports System.IO
|
|
|
|
Public Class RTFCopy_VC
|
|
Inherits DevExpress.ExpressApp.ViewController
|
|
|
|
'-----------------------Csak LISTVIEW-n mûködik!-------------------
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
' Frame.GetController(Of RTFCopy_VC).aGetGridToRTFText.Active.SetItemValue("", False)
|
|
End Sub
|
|
Private Sub aGetGridToRTFText_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aGetGridToRTFText.Execute
|
|
Dim _ListView As ListView = TryCast(View, ListView)
|
|
If _ListView IsNot Nothing Then
|
|
Dim _GridListEditor As GridListEditor = TryCast(_ListView.Editor, GridListEditor)
|
|
If _GridListEditor IsNot Nothing Then
|
|
Dim _GridView As GridView = TryCast(_GridListEditor.GridView, GridView)
|
|
If _GridView IsNot Nothing Then
|
|
|
|
Dim _FileName As String = Path.GetTempPath + "Grid.html"
|
|
_GridView.ExportToHtml(_FileName)
|
|
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _UserCreated As User = SecuritySystem.CurrentUser
|
|
Dim _RTFCopy As RTFCopy = _onew.FindObject(Of RTFCopy)(DevExpress.Data.Filtering.CriteriaOperator.Parse("UserCreated=?", _onew.GetObject(_UserCreated)))
|
|
If _RTFCopy Is Nothing Then
|
|
_RTFCopy = New RTFCopy(_onew.Session)
|
|
End If
|
|
_RTFCopy.RTFString = File.ReadAllText(_FileName)
|
|
|
|
_onew.CommitChanges()
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
Function RTFTableCreator(_Grid As GridView, Optional _FontSize As String = "8", Optional _FontType As String = "Tahoma") As String
|
|
|
|
Dim _RTFtext As New StringBuilder
|
|
|
|
Dim _HeaderFillColor As Int32 ' -- Current table header fill color index in colot table
|
|
_HeaderFillColor = 2
|
|
|
|
|
|
If _Grid.DataRowCount > 0 Then
|
|
Dim _FontSizeNUM As Int32 = (Convert.ToInt32(_FontSize) * 2) ' -- Font size in half-points (the default is 16). => Size 8!!!
|
|
|
|
Dim _RowNumFull As Integer = _Grid.RowCount
|
|
Dim _RowNum As Integer = _Grid.DataRowCount
|
|
Dim _ColumnsNum As Integer = _Grid.Columns.Count
|
|
Dim irowIndex As Int32 = 0
|
|
Dim _LastCellIndex As Int32 = 0
|
|
|
|
'--Header to RTF format--
|
|
'=================================================================================
|
|
_RTFtext.Append("\pard\plain\ql\par\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10" & _
|
|
"\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trleft-108\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108")
|
|
|
|
For _ik As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
_RTFtext.Append("\clvertalt\clcbpat2\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10" &
|
|
"\cltxlrtb\clftsWidth3\clwWidth3302\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _ik)
|
|
If _LastCellIndex < _ik Then
|
|
_LastCellIndex = _ik
|
|
End If
|
|
Next
|
|
For _ik As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\b\fs" & _FontSizeNUM & "\cf0 " & _Grid.Columns.View.VisibleColumns(_ik).Caption & "}\b\cell")
|
|
Next
|
|
|
|
_RTFtext.Append("\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10" & _
|
|
"\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10\trleft-108\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108")
|
|
For _ik As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
_RTFtext.Append("\clvertalt\clcbpat" & _HeaderFillColor & "\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10" &
|
|
"\cltxlrtb\clftsWidth3\clwWidth3302\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _ik)
|
|
Next
|
|
irowIndex += 1
|
|
'' --Data to RTF format--
|
|
'=================================================================================
|
|
For _ik As Int16 = 0 To _RowNumFull - 2
|
|
If _Grid.IsGroupRow(_Grid.Columns.View.GetVisibleRowHandle(_ik)) = True Then
|
|
_RTFtext.Append("\row")
|
|
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & (_Grid.GetGroupRowDisplayText(_Grid.Columns.View.GetVisibleRowHandle(_ik)).ToString) & "}\cell")
|
|
|
|
|
|
_RTFtext.Append("\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10" & _
|
|
"\trleft-108\trftsWidth1\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108\tblindtype3\tblind0")
|
|
|
|
_RTFtext.Append("\clvertalt\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cltxlrtb\clftsWidth3\clwWidth9619" & _
|
|
"\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _LastCellIndex)
|
|
|
|
irowIndex += 1
|
|
Else
|
|
_RTFtext.Append("\row")
|
|
|
|
For _jk As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
If _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName <> "System.Double" And _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName <> "System.Boolean" Then
|
|
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & (_Grid.GetRowCellDisplayText(_Grid.Columns.View.GetVisibleRowHandle(_ik), _Grid.Columns.View.VisibleColumns(_jk))) & "}\cell")
|
|
ElseIf _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName = "System.Boolean" Then
|
|
If _Grid.GetRowCellValue(_Grid.Columns.View.GetVisibleRowHandle(_ik), _Grid.Columns.View.VisibleColumns(_jk)) = True Then
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & "Van" & "}\cell")
|
|
Else
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & "Nincs" & "}\cell")
|
|
End If
|
|
Else
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0\qr " & LTrim(RTrim(Format(_Grid.Columns.View.GetRowCellValue(_Grid.Columns.View.GetVisibleRowHandle(_ik), _Grid.Columns.View.VisibleColumns(_jk)), "#,##0.00"))) & "}\qr\cell")
|
|
|
|
End If
|
|
Next
|
|
|
|
_RTFtext.Append("\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10" & _
|
|
"\trleft-108\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108")
|
|
|
|
For _jk As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
|
|
_RTFtext.Append("\clvertalt\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cltxlrtb\clftsWidth3\clwWidth3302" & _
|
|
"\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _jk)
|
|
Next
|
|
irowIndex += 1
|
|
End If
|
|
Next
|
|
'--Last row --
|
|
'=================================================================================
|
|
If _Grid.IsGroupRow(_Grid.Columns.View.GetVisibleRowHandle(_RowNumFull - 1)) = True Then
|
|
_RTFtext.Append("\row")
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & (_Grid.GetGroupRowDisplayText(_Grid.Columns.View.GetVisibleRowHandle(_RowNumFull - 1)).ToString) & "}\cell")
|
|
|
|
_RTFtext.Append("\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10" & _
|
|
"\trleft-108\trftsWidth1\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108\tblindtype3\tblind0")
|
|
|
|
_RTFtext.Append("\clvertalt\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cltxlrtb\clftsWidth3\clwWidth9619" & _
|
|
"\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _LastCellIndex)
|
|
Else
|
|
_RTFtext.Append("\row")
|
|
For _jk As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
If _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName <> "System.Double" And _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName <> "System.Boolean" Then
|
|
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & (_Grid.Columns.View.GetRowCellDisplayText(_RowNum - 1, _Grid.Columns.View.VisibleColumns(_jk))) & "}\cell")
|
|
ElseIf _Grid.Columns.View.VisibleColumns(_jk).ColumnType.FullName = "System.Boolean" Then
|
|
If _Grid.IsGroupRow(_Grid.Columns.View.GetVisibleRowHandle(_RowNumFull - 1)) = True Then
|
|
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & "Van" & "}\cell")
|
|
Else
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0 " & "Nincs" & "}\cell")
|
|
End If
|
|
Else
|
|
_RTFtext.Append("\pard\plain\ql\intbl{\fs" & _FontSizeNUM & "\cf0\qr " & LTrim(RTrim(Format(_Grid.Columns.View.GetRowCellValue(_Grid.Columns.View.GetVisibleRowHandle(_RowNumFull - 1), _Grid.Columns.View.VisibleColumns(_jk)), "#,##0.00"))) & "}\qr\cell")
|
|
End If
|
|
Next
|
|
|
|
_RTFtext.Append("\trowd\irow" & irowIndex & "\irowband" & irowIndex & "\lastrow\trbrdrt\brdrs\brdrw10\trbrdrl\brdrs\brdrw10\trbrdrb\brdrs\brdrw10\trbrdrr\brdrs\brdrw10" & _
|
|
"\trleft-108\trautofit1\trpaddfl3\trpaddl108\trpaddfr3\trpaddr108")
|
|
''---
|
|
For _jk As Integer = 0 To _Grid.Columns.View.VisibleColumns.Count - 1
|
|
|
|
_RTFtext.Append("\clvertalt\clbrdrt\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cltxlrtb\clftsWidth3\clwWidth3302" & _
|
|
"\clpadfr3\clpadr108\clpadft3\clpadt108\cellx" & _jk)
|
|
Next
|
|
End If
|
|
|
|
_RTFtext.Append("\row\pard\plain\ql")
|
|
End If
|
|
Return _RTFtext.ToString
|
|
End Function
|
|
End Class
|