| |
VB.NET - Ein- und UmsteigerDatenordner 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 | |
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 | |
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 | |
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 | |
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. | |
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 | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
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
|
|