vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Datenordner durchsuchen 
Autor: stefanbla80
Datum: 06.01.18 13:50

Hallo zusammen,

Ich haben einen Projektordner mit z.B. Angeboten für Kunden auf dem Laufwerk.
Ich habe einen Pfad des Ordners und auch die Angebotsnummer.

Nun ist es so, dass in dem genannten „Angebotsordner“ mehr als ein Angebot abgelegt sein kann.
In dem Dateinamen des Word/PDF Files ist immer die Angebotsnummer enthalten.

Meine Frage: Kann ich in einem definierten Ordner die gesamten Dateinamen nach meiner Angebotsnummer durchsuchen und dann z. B. nur die PDF Dateien, die die Nummer enthalten öffnen?

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenordner durchsuchen 
Autor: effeff
Datum: 06.01.18 14:22

In etwa:

Dim Ordner As String="C:\Deinordner"
Dim DeinString As String="DeinSuchbegriff"
Dim PfadZumPDFReader As String="C:\Program Files (x86)\Adobe\Acrobat Reader" & _
  "DC\Reader\AcroRd32.exe"
 
For Each fil As String In System.IO.Directory.GetFiles(Ordner)
If fil.Contains(DeinString) Then
Process.Start(PfadZumPDFReader, fil)
End If
Next

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenordner durchsuchen 
Autor: stefanbla80
Datum: 06.01.18 16:43

Danke, das klappt schon mal ganz gut!!!

    Private Sub Timer_MultiClick_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer_MultiClick.Tick
 
        Timer_MultiClick.Stop()
        Cursor.Current = Cursors.Hand
 
        Dim Project As String = ""
        Dim folder As String = ""
        Dim Laufwerk As String = "Z:\INT\Data\CustomerSolutions\CS\"
        Dim path_quotation As String = ""
        Dim Laufwerk_engineering As String = "\1_Engineering"
        Dim Laufwerk_quotation As String = "\1.5_Quotation_to_customer\"
        Dim DeinString As String = Me.PlanningGuideDataDataGridView.Rows( _
          Me.PlanningGuideDataDataGridView.CurrentRow.Index).Cells(GetColumnNo( _
          "Quotation")).Value.ToString()
        'Example: 
        ' Z:\INT\Data\CustomerSolutions\CS\G1_CS\15464xx\1546468\A\1_Engineerin
        ' g\1.1_Inquiry_Specification
 
        If Me.PlanningGuideDataDataGridView.CurrentCell.ColumnIndex = "41" Then _
               'Column Quotation
            If Me.PlanningGuideDataDataGridView.CurrentCell.Value.ToString _
            <> "" Then
                Project = Me.PlanningGuideDataDataGridView.Rows( _
                Me.PlanningGuideDataDataGridView.CurrentRow.Index).Cells( _
                Me.GetColumnNo("Project")).Value.ToString()
                If Microsoft.VisualBasic.Len(Project) = 7 Then
                    folder = Microsoft.VisualBasic.Left(Project, 5) + "xx"
                    path_quotation = Laufwerk + "\" + _
                      Me.PlanningGuideDataDataGridView.Rows( _
                      Me.PlanningGuideDataDataGridView.CurrentRow.Index).Cells( _
                      Me.GetColumnNo("Land")).Value.ToString() + "\" + folder + _
                      "\" + Project + "\" + _
                      Me.PlanningGuideDataDataGridView.Rows( _
                      Me.PlanningGuideDataDataGridView.CurrentRow.Index).Cells( _
                      Me.GetColumnNo("Version")).Value.ToString() + "\" + _
                      Laufwerk_engineering + Laufwerk_quotation
                    For Each file As String In System.IO.Directory.GetFiles( _
                    path_quotation)
                        If file.Contains(DeinString) And file.EndsWith("pdf") _
                        Then
                            Process.Start(file)
                        End If
                    Next
                End If
            End If
        End If
 
    End Sub
Das Ereignis löse ich mit einem längeren Click auf ein Feld im DataGridView aus. (1 Sekunde gedrückt halten).

Weitere Frage: Nachdem nun die Dateien geöffnet wurden blinkt der Cursor nun in dem Feld vom DataGridView.

Meine sämtlichen Bemühungen mit einem erneuten "Setzen" sind irgendwie alle "komisch" bzw. funktionieren nicht ...

                    'Me.PlanningGuideDataDataGridView.CurrentCell = 
                    ' Me.PlanningGuideDataDataGridView.Rows( 
                    ' Me.CellRowIndex).Cells(40)
                    'Me.PlanningGuideDataDataGridView.CurrentCell = 
                    ' Me.PlanningGuideDataDataGridView.Rows( 
                    ' Me.CellRowIndex).Cells(41)
                    'Me.PlanningGuideDataDataGridView.Rows( 
                    ' Me.CellRowIndex).Cells(41).Selected = True
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenordner durchsuchen 
Autor: Franki
Datum: 07.01.18 02:16

Hallo Stefan,

gestatte mir die Frage warum du so etwas überhaupt möchtest.
du hast eine Anwendung die z.B. Angebote schreibt und diese werden dann in einen bestimmten Ordner geschrieben. Soweit normal und übliche Praxis...

Es gibt ja in deiner Anwendung mit Sicherheit auch eine Kundenverwaltung, Belegverwaltung (hier Angebote) usw.

Welcher Kunde welche Angebote bekommen hat ergibt sich doch zwangsläufig aus deiner Anwendung, du schreibst ja selbst, dass du die Angebotsnummer und die Kundennummer hast. (Die müssen sowieso eindeutig sein...)

Also ist es völlig unnötig einen Ordner (der bekannt ist) zu durchsuchen nach einer Angebotsnummer (die bekannt ist). Du kannst die Datei direkt aufrufen, da der Dateiname ja in deiner Datenbank hinterlegt ist.

Wenn ein Kunde z.B. mehrere Angebote hat, kannst du per SQL alle Angebote zur Kundennummer abfragen. Umgekehrt genauso, du kannst dir alle Angebote auflisten lassen und nach Kunden gruppieren.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenordner durchsuchen 
Autor: Manfred X
Datum: 07.01.18 05:19

Hallo!

1. Ist sicher gestellt, daß dieser Code im Tick-Event jeweils nur einmal
ausgeführt wird?
(Statt einen Timer zu verwenden, kann man die Zeitspanne zwischen
dem MouseDown- und dem zugehörigen MouseUp-Event messen.)
2. Liegt Datenbindung vor? In dem Fall:
Warum greifst Du nicht über die in der Bindingsource enthaltene
Datenquell-Zeilen-Referenz auf den Datensatz zu?
Deine Art zu programmieren ist fehleranfällig und wartungsunfreundlich.
3. Wieso verwendest Du für den Spaltenindex im ersten Filter einen String?
Erstelle typsicheren Code.
4. Im Dateifilter sollte vermutlich besser EndsWith(".pdf") stehen.
Sicherer wäre es, IO.Path.GetExtension zu nutzen.
Es ist möglich, bereits bei der GetFiles-Abfrage eine Filterbedingung zu setzen.
5. Kann es vorkommen, daß mehrere PDF-Dateien im Ordner dem Filterkriterium
"Quotation" entsprechen? Wäre es nicht vorteilhaft, die Process-Startvorgänge in
einem Hintergrundprozeß auszuführen, nachdem zunächst alle relevanten PDF-Dateien
aufgelistet worden sind?

Beitrag wurde zuletzt am 07.01.18 um 05:39:26 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datenordner durchsuchen 
Autor: stefanbla80
Datum: 07.01.18 16:08

Hallo Frank,

Mit meinem Tool mache ich eine Projektverwaltung - ein DataGridView dient als Anzeige.
Die Funktion Angebote schnell und einfach zu öffnen ist nur ein Hilfsmittel um die Effizienz zu steigern.

Z. B..:
- Klick mit linker Maus: Kopiert die im DGV dargestellte Angebotsnummer in den Zwischenspeicher
- Klick mit der rechten Maus kopiert z. B. einen kompletten Pfad in den Zwischenspeicher um Angebote schneller zu speichern
- Doppelklick "Links" öffnet den Angebotsordner auf dem Laufwerk

Mit meinem neuen "Multiklick" (1 Sekunde Maus gedrückt halten) durchsuche ich das zugehörige Laufwerk nach meiner 10-stelligen Nummer (die an verschiedenen Stellen im Dateinamen stehen könnte) und öffne nur zum schnellen Anzeigen die Angebote mit der Endung PDF.

Es können auch mehrer Angebote sein, aber dann sehe ich halt alle im Acrobat Reader - was nicht von Nachteil ist ...

Z. B. wenn ein Kunde anruft habe ich das Angebot "sofort" offen.

Ich persönlich finde diese Erweitung und den schnellen Zugriff super hilfreich.

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel