valentine
Goto Top

Datei (Rechnungskopie) über Batch suchen und öffnen

Liebe Experten/-innen,

ich habe ein kleines Problem:

Unsere Rechnungskopien liegen haben folgende Bezeichnung:
zB: frei_R061007895.pdf -für freie Fakturierung
zB: stm_R081007895.pdf -für Standmietenfakturierung

Die Rechnungen aller Jahre werden wie folgt archiviert:
\\S20\Rechnungen\ -aktuelle Rechnungen
\\S20\Rechnungen\2006\ -Rechnungen 2006
\\S20\Rechnungen\2005\ -Rechnungen 2005
\\S20\Rechnungen\2004\ -Rechnungen 2004

Bei der Funktion Beleganzeige wird von unserer Buchhaltungssoftware
folgende Befehlszeile ausgeführt: (Hierauf bin ich besonders stolz
face-wink
C:\adobe.bat "\\S20\Rechnungen\*$RECHNR$.pdf"

Folgende Befehlszeile wird dann von der Batch verarbeitet:
ADOBE.BAT
"C:\Programme\Adobe\Acrobat 8.0\Acrobat\acrobat.exe" %1

Die Variable $RECHNR$ wird zB mit R081007895 gefüllt. Die
Vorbezeichnung stm_ oder frei_ ist im Buchhaltungssystem nicht
bekannt und kann daher nicht übergeben werden. Wir haben dies mit dem
Platzhalter * gelöst.

Hier nun mein Problem:
Die von mir erfundene Variante öffnet nur Rechnungen des aktuellen
Jahres slso nur Rechnungen die im verzeichnis "\\S20\Rechnungen\"
liegen. Ältere Rechnungen werden nicht geöffnet.

Ich habe mir den Ablauf der Batch wie folgt vorgestellt, scheitere
aber leider an der Umsetzung mangels Erfahrung:

- Also, die Buchhaltungssoftware übergibt die Rechnungsnummer an eine
Batch.
- Diese Batch sucht die Rechnung in allen Verzeichnissen und
speichert das Ergebnis in einer Variable.
- Diese Variable wird dann zum öffnen der Datei verwendet.

Wäre dies denkbar?

Für einen Lösungsansatz wäre ich Ihnen sehr dankbar. Gern würde ich
mich hierfür auch durch ein kleines Geschenk erkenntlich zeigen.

Liebe Grüße

Deja (1. Frau am PC in dieser Firma)

Content-Key: 92069

Url: https://administrator.de/contentid/92069

Printed on: April 18, 2024 at 06:04 o'clock

Mitglied: 60730
60730 Jul 15, 2008 at 12:34:08 (UTC)
Goto Top
Servus und willkommen

Probier das mal aus

@set "akt=%date:~-4%"  
@title Bitte das Jahr eingeben
@set jahr=
@set /p "jahr=jahr"  
@title Rechnungsnummer:
@set /p "RGNR=RGNR"  
@if %jahr%==%akt% (
	set "kplt=\\S20\Rechnungen\"  
	) else (
	set "kplt=\\S20\Rechnungen\%Jahr%\-Rechnungen %Jahr%\"  
	)
@ start "C:\Programme\Adobe\Acrobat 8.0\Acrobat\acrobat.exe" "%kplt%\%RGNR%.pdf"  

Gruß
Member: Valentine
Valentine Jul 15, 2008 at 13:19:09 (UTC)
Goto Top
Also, das ist ja ein guter Ansatz, allerdings sollte es ohne eingabe funktionieren. Also alles automatisch. Es ist sehr unkomfortabel, wenn man Kunden am Telefon hat, und erst minutenlang rumtippeln muss bis man die Rechnungskopie sieht.

Also, ich habs nochmal modifiziert, aber jetzt funktioniert es nicht mehr ... ok, fehler gefunden, ")" hat gefehlt. Bin ich blond face-wink
set "akt=%date:~-4%"  
title Bitte das Jahr eingeben
set jahr=
set /p "jahr=jahr"  
title Rechnungsnummer:
set /p "RGNR=RGNR"  
if %jahr%==%akt% (
	set "kplt=\\S20\Rechnungen"  
	) else (
	set "kplt=\\S20\Rechnungen\%Jahr%"  
	)
start "C:\Programme\Adobe\Acrobat 8.0\Acrobat\acrobat.exe" "%kplt%\*%RGNR%.pdf"  

Evtl. kann man das auch die dritte stelle der Rechnungsnummer nehmen. Die gibt ja immer das Jahr an ... und man löst es über ne goto funktion?
Also, alle Rechnungen bauen sich nach folgendem Schema auf:
R06 =Rechnung aus 2006
G06 =Gutschrift aus 2006
R07 =Rechnung aus 2007
G07 =Gutschrift aus 2007

Ich bin leider so ein noob in sachen batch ... sorry ... bin so froh das ich hier Hilfe bekomme.
Mitglied: 60730
60730 Jul 15, 2008 at 13:29:23 (UTC)
Goto Top
Evtl. kann man das auch die dritte stelle der Rechnungsnummer nehmen. Die gibt ja immer das Jahr an ...

*upps* sorry - es ist hier allgemein bekannt - das ich ein Problem damit habe - bis 3 zu zählen face-wink
zB: frei_R061007895.pdf -für freie Fakturierung
zB: stm_R081007895.pdf -für Standmietenfakturierung

du meinst die beiden Stellen nach R?

Drösel das doch mal genau auf face-wink

(Also - sind die Rechnungsnummern immer 10 stellig oder nur in dem Beispiel?)

Von "Vorne" kann das nicht gehen (frei hat 2+2 also 4 Stellen)/ (stm 2+1 also 3 Stellen) plus jeweils das_
Member: Valentine
Valentine Jul 15, 2008 at 13:39:42 (UTC)
Goto Top
Also, die Rechnungsnummer wird von der Fibu-Software ohne stm_ und ohne frei_ übergeben

Achso, hehe!

Also, die Rechnungsnummer wird ja über %1 in unserer derzeitigen Batch eingegeben und kommt ja aus der Buchhaltungssoftware ...

Aufbau der Rechnungen und Gutschriftsnummern in der Buchhaltungssoftware ist wie folgt:

R061007345 =Rechnung aus 2006
G061007345 =Gutschrift aus 2006
R071007345 =Rechnung aus 2007
G071007345 =Gutschrift aus 2007

1. Stelle = "R" oder "G" für Rechnung oder Gutschrift
2. u 3. Stelle = "6" oder "7" usw. für das Jahr 2006 oder 2007 usw.
ab der 4. Stelle wirds uninteressant ...

Im Filesystem legt unsere Fakturierung die dateien wie folgt ab:

stm_R061007345.pdf =Rechnung aus 2006
frei_G061007345.pdf =Gutschrift aus 2006
frei_R071007345.pdf =Rechnung aus 2007
stm_G071007345.pdf =Gutschrift aus 2007

Da unser Buchhaltungssystem nicht weis ob es eine "stm_" oder eine "frei_" PDF ist, wollten wir dies mit einem "*" als Platzhalter lösen ...

ich dachte mir das jetzt so, da ja die Rechnungsnummer über %1 weitergegeben wird an die Batch und folgendes format hat "R061007345" könnte man anhand der dritten Stelle feststellen aus welchem Jahr die Rechnung ist.
Dann evtl. über ein GOTO die Richtige Pfadangabe wählt um die Rechnung mit Acrobat zu öffnen ...
Member: bastla
bastla Jul 15, 2008 at 13:55:38 (UTC)
Goto Top
Hallo Valentine und TimoBeil!

Wenn die Rechnung immer irgendwo unterhalb des Basispfades "\\S20\Rechnungen\" liegen muss und ja ohnehin durch die Nummer eindeutig zu identifizieren ist, sollte es eigentlich so gehen:
for /f "delims=" %%i in ('dir /s /b /a-d "%~1"') do "C:\Programme\Adobe\Acrobat 8.0\Acrobat\acrobat.exe" "%%i"  
Grüße
bastla
Member: Valentine
Valentine Jul 15, 2008 at 14:02:17 (UTC)
Goto Top
das klingt auch sehr gut.

ich müsste dann vom Fibu folgende Befehlszeile übergeben lassen:
C:\adobe.bat "*$RECHNR$.pdf"

Aber wo ist die Verknüpfung zu //s20/Rechnungen/ ??

und was bedeutet "delims" ??

Liebe Grüße

Valentine
Mitglied: 60730
60730 Jul 15, 2008 at 14:03:39 (UTC)
Goto Top
Servus,

die Zeile von Bastla ist die "neue" Adobe.bat auf c:\

oder dreh ich jetzt komplett am Rad?

Du schreibst nun auch das zweite mal - > C:\adobe.bat "*$RECHNR$.pdf" - wirklich so oder C:\adobe.bat "*%RECHNR%.pdf" ??
@ Bastla:
Schleifenkönig
Member: Valentine
Valentine Jul 15, 2008 at 14:08:09 (UTC)
Goto Top
Also, ich kann nur den Platzhalter $RECHNR$ verwenden, da es nur diesen Platzhalter gibt in der blöden FIBU-Software, daher folgende Zeile:

C:\adobe.bat "*$RECHNR$.pdf"

Füllt in der Adobe.bat auf C:\ die Variable %1 mit der Rechnungsnummer zB R061007324

und delim bedeutet nix mit löschen? Sonst werde ich geköpft ...
Member: bastla
bastla Jul 15, 2008 at 14:12:38 (UTC)
Goto Top
@Valentine
Wie TimoBeil schon angemerkt hat, wäre mein Vorschlag nur als Ersatz der bisherigen "adobe.bat" gemeint - am Aufruf mit "C:\adobe.bat "\\S20\Rechnungen\*$RECHNR$.pdf" soll sich nichts ändern (da Du ja auch so stolz drauf bist face-wink).
"delims" ist so lange nicht nötig, wie es im Pfad bzw Dateinamen keine Leerzeichen gibt, schadet aber auch nicht ...

@timobeil
Danke face-smile - sieht zwar mehr nach Prinzessin als nach König aus, freut aber ganz sicher meine Tochter.

Grüße
bastla
Member: Valentine
Valentine Jul 15, 2008 at 14:27:20 (UTC)
Goto Top
Einen gaaaaaaaaanz dicken Schmatzer an die beiden Supermänner die mir den Tag versüßten!

Wenn ihr mir irgendwie eure Adress zukommen lasst, dann würde ich euch gerne 2 Freikarten für die Frankfurter Buchmesse zukommen lassen oder nen Kaffeepot ...

Liebe Grüße

Valentine