| |
Fragen & Antworten rund um sev-KomponentenSevDataGrid2: OnImageClick() auch beim Columns-Header | | | Autor: P.Abrell | Datum: 23.01.10 15:12 |
| Es gibt ja die Möglichkeit, den Click auf ein Icon ínnerhalb einer Zelle mit OnImageClick() auszuwerten.
Welche Möglichkeit aber habe ich hier beim Click auf ein Icon in der Spaltenüberschrift (Icon wurde mit .Columns(nCol).Image=?? hinzugefügt)? Was hierfür passendes habe ich nicht gefunden.
Ich will in meinem Programm eine Art Spaltenauswahl zur Verfügung stellen, indem mit Click auf das Icon in der Spaltenüberschrift dann dieses zwischen einem Symbol für "Gewählt" oder eben "Nicht gewählt" wechselt, was dann abschliessend entsprechend ausgewertet werden kann. | |
Re: SevDataGrid2: OnImageClick() auch beim Columns-Header | | | Autor: QDaniel | Datum: 28.01.10 15:18 |
| Ich habe dafür mir ein kleines User-Control erstellt welches ein sevButton mit Menü besitzt.
Grid-Button in Aktion
die Beiden ersten Menü-Punkte sind fest im Button als Menü hinterlegt. Und fügen Export-Funktionen dem Grid hinzu.
Option Explicit
Public Grid As sevDataGrid2.sevGrid
Public Event ButtonClick()
Public Event ReportStart()
Public Event ReportFinish()
Public Event MenuClick(ByVal Item As Long, ByVal Key As String, ByRef bCancel _
As Boolean)
Public Event ColumnViewChanged(ByVal sColumn As String)
Public Event ColumnEntryLoading(ByVal sColumn As String, ByRef sCaption As _
String, ByRef bShow As Boolean)
Private Sub scmdExport_Click()
scmdExport.ShowPopUpMenu
End Sub
Public Sub AddReportHeader(sTitle As String, Optional sData As String)
If Grid Is Nothing Then Exit Sub
' Seitenkopf mit Grafik
Dim sHTML As String
With Grid
sHTML = "<p><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>" & _
"<TD><IMG SRC=""stdlogo.jpg""></TD></TR></TABLE></P>" & _
"<br/><P>{DATA}</P><H1>{TITLE}</H1>"
sHTML = Replace$(sHTML, "{TITLE}", sTitle, , , vbTextCompare)
sHTML = Replace$(sHTML, "{DATA}", sData, , , vbTextCompare)
.HTMLPrint sHTML
.HTMLTableTitle = sTitle & " WebReport"
End With
End Sub
Private Sub scmdExport_MenuClick(ByVal Item As Long, ByVal Key As String)
Dim bStop As Boolean
RaiseEvent ButtonClick
If Grid Is Nothing Then Exit Sub
RaiseEvent MenuClick(Item, Key, bStop)
If bStop Then Exit Sub
If Grid.Rows = 0 And Left$(Key, 4) = "intp" Then
MsgBox ("Es sind keine Daten zum Exportieren vorhanden!")
Exit Sub
End If
Select Case Key
Case "intpExport"
RaiseEvent ReportStart
Call DoXLSExport
RaiseEvent ReportFinish
Case "intpWebEx"
Call DoHTMLExport
Case Else
If Left$(Key, 4) = "GCS_" Then
scmdExport.MenuButton(Key).Checked = Not scmdExport.MenuButton( _
Key).Checked
Grid.Columns(Mid$(Key, 5)).Visible = scmdExport.MenuButton( _
Key).Checked
DoEvents
Grid.RefreshEx
RaiseEvent ColumnViewChanged(Mid$(Key, 5))
End If
End Select
End Sub
Private Sub UserControl_Resize()
'<EhHeader>
On Error Resume Next
'</EhHeader>
UserControl.Height = 315
UserControl.Width = 615
End Sub
Public Property Get Button() As sevCommand3.Command
Set Button = scmdExport
End Property
Public Sub LoadColumnMenu()
On Error Resume Next
Dim I As Long, sKey As String, bShow As Boolean, sCaption As String
Call DeleteColumnMenu
Call scmdExport.AddMenuButton("-", "hlGridCols")
For I = 1 To Grid.Cols
sKey = Grid.Columns(I).Key
sCaption = Grid.Columns(I).Caption
bShow = Not ((sKey = sCaption Or Trim$(sCaption) = "") And Grid.Columns( _
I).Visible = False)
RaiseEvent ColumnEntryLoading(sKey, sCaption, bShow)
If bShow Then
scmdExport.AddMenuButton(Trim$(sCaption), "GCS_" & sKey).Checked = _
Grid.Columns(I).Visible
End If
Next
End Sub
Public Sub DeleteColumnMenu()
On Error Resume Next
Dim I As Long
If Not scmdExport.MenuButton("hlGridCols") Is Nothing Then
For I = scmdExport.MenuButtonCount To 1 Step -1
If Left$(scmdExport.MenuButton(I).Key, 4) = "GCS_" Then Call _
scmdExport.RemoveMenuButton(scmdExport.MenuButton(I).Key)
Next
Call scmdExport.RemoveMenuButton("hlGridCols")
End If
End Sub -------------------------------------------
Follow the White Rabbit !!! | |
Re: SevDataGrid2: OnImageClick() auch beim Columns-Header | | | Autor: QDaniel | Datum: 28.01.10 15:18 |
| hier gehts weiter ...
Public Sub DoHTMLExport()
If Grid Is Nothing Then Exit Sub
If Grid.Rows = 0 Then Exit Sub
Grid.HTMLShowNavigation = False
Grid.ReportStatusText = ""
Grid.HTMLUseScreenFormating = True
RaiseEvent ReportStart
Grid.DoHTMLReport Folder_Temp & "export.htm"
RaiseEvent ReportFinish
Grid.HTMLShowReportModal
Grid.HTMLKillFiles
End Sub
Public Function DoXLSExport(optional sPath as String) As Boolean
Dim lret As Long
Dim sFilter As String
If trim(sPath) ="" Then
sFilter = "Excel File (*.xls)|*.xls|CSV File (*.csv)|*.csv"
lret = cdlgSaveFile(sPath, "Export speichern ...", CurDir$, sFilter, _
"xls", Grid.hwnd, 0)
End If
If lret = 0 Then Exit Function
If LCase$(GetFilenameExt(sPath)) = "csv" Then
Call Grid.DoExport(sPath, EXPORT_CSV, , , EXPORT_FIELD_DISPLAYVALUE, , _
, ";")
Else
Call Grid.DoExport(sPath, EXPORT_XLS, , , EXPORT_FIELD_DISPLAYVALUE)
End If
ExportGrid = True
End Function In deinem Projekt machste dann folgendes
set GridButton.Grid = sevGrid1
GridButton.LoadColumnMenu er zeigt dann automatisch alle Spalten an wo die Caption abweichend vom Key ist.
aber könntest du über das Event ColumnEntryLoading ändern , z.b. im Debug-Modus alle Spalten anzeigen oder so
Wenn Interesse besteht kann ich daraus auch ne OCX machen.
-------------------------------------------
Follow the White Rabbit !!! | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|