10. Mai 2007 09:33
10. Mai 2007 09:39
10. Mai 2007 09:57
10. Mai 2007 10:05
tba hat geschrieben:es gibt da die versteckte (nicht sichtbare) Tabelle File im Navision. Dort kann auf das Feld Path ein Filter gesetzt werden mit der Pfadabgabe.
Wenn der Pfad verfügbar ist, dann ist der Count auf diese Tabelle größer 0.
Ich hoffe das hilft dir weiter.
10. Mai 2007 10:18
10. Mai 2007 10:36
10. Mai 2007 10:55
10. Mai 2007 11:23
10. Mai 2007 12:06
10. Mai 2007 12:09
tba hat geschrieben:[...]
Wenn der Pfad verfügbar ist, dann ist der Count auf diese Tabelle größer 0. [...]
IF File.ISEMPTY THEN
HoleAlternativesVerzeichnis;
IF NOT File.FIND('-') THEN
[...]
10. Mai 2007 12:27
recFile.RESET;
recFile.SETRANGE(Path,'F:\');
IF recFile.ISEMPTY THEN
...
recFile.RESET;
recFile.SETRANGE(Path,'F:\');
IF recFile.find('-') THEN
...
10. Mai 2007 13:45
IF Einlesen THEN BEGIN
TTSEinr.TESTFIELD("Verz. offen"); // Prüfen, ist der Pfad in der Einrichtungstabelle
TTSEinr.TESTFIELD("Verz. erledigt"); // Prüfen, ist der Pfad in der Einrichtungstabelle
Verzeichnis.RESET;
Verzeichnis.SETRANGE(Verzeichnis.Path,TTSEinr."erz. erledigt"); // 001 MR 1x in ein anders Verz. wechseln
IF Verzeichnis.FIND('-') THEN; // damit dder Path erkannt wird!
Verzeichnis.SETRANGE(Path,TTSEinr."Verz. offen");
Verzeichnis.SETRANGE("Is a file",TRUE);
Verzeichnis.SETFILTER(Name,'*.DAT|*.dat');
...
10. Mai 2007 16:12
Speicherverzeichnis := 'G:\';
recFile.RESET;
recFile.SETRANGE(Path,Speicherverzeichnis);
IF recFile.FIND('-') THEN [color=blue]--> Hier erfolgt die Fehlermeldung, wenn Pfad nicht erreichbar![/color]
REPORT.SAVEASHTML(REPORT::Test1,
Speicherverzeichnis + 'Testfile' + FORMAT(TODAY) + '.html')
ELSE BEGIN
Speicherverzeichnis := 'C:\';
REPORT.SAVEASHTML(REPORT::Test1,
Speicherverzeichnis + 'Testfile' + FORMAT(TODAY) + '.html');
END;
10. Mai 2007 18:11
COMMIT;
IF NOT SalesPost.RUN(SalesHeader) THEN BEGIN
outtext:='Die Rechnung ' + SalesHeader."Posting No." + ' konnte nicht gebucht werden.';
write2file();
END;
11. Mai 2007 09:11
NavHummel hat geschrieben:Und was machst Du, wenn der Dein Pfad: "Verz. erledigt" nicht erreichbar ist? Dann kommt doch auch die Fehlermeldung beim FIND('-').
Speicherverzeichnis := 'G:\temp'; // In irgendein Verzeichnis wechseln
recFile.RESET;
IF recFile.FIND('-') THEN; // Beachte das Semikolon!
Speicherverzeichnis := 'G:\'; // Jetzt das richtige Verz.
recFile.SETRANGE(Path,Speicherverzeichnis);
IF recFile.FIND('-') THEN [color=blue]--> Hier erfolgt die Fehlermeldung, wenn Pfad nicht erreichbar![/color]
REPORT.SAVEASHTML(REPORT::Test1,
Speicherverzeichnis + 'Testfile' + FORMAT(TODAY) + '.html')
ELSE BEGIN
Speicherverzeichnis := 'C:\';
REPORT.SAVEASHTML(REPORT::Test1,
Speicherverzeichnis + 'Testfile' + FORMAT(TODAY) + '.html');
END;
F Einlesen THEN BEGIN
TTSEinr.TESTFIELD("Verz. offen"); // Prüfen, ist der Pfad in der Einrichtungstabelle
TTSEinr.TESTFIELD("Verz. erledigt"); // Prüfen, ist der Pfad in der Einrichtungstabelle
Verzeichnis.RESET;
Verzeichnis.SETRANGE(Verzeichnis.Path,TTSEinr."erz. erledigt"); // 001 MR 1x in ein anders Verz. wechseln
IF Verzeichnis.FIND('-') THEN; // damit dder Path erkannt wird!
Verzeichnis.SETRANGE(Path,TTSEinr."Verz. offen");
Verzeichnis.SETRANGE("Is a file",TRUE);
Verzeichnis.SETFILTER(Name,'*.DAT|*.dat');
TempVerz.DELETEALL;
IF Verzeichnis.FIND('-') THEN
REPEAT
TempVerz.INIT;
TempVerz.Path := Verzeichnis.Path;
TempVerz.Filename := Verzeichnis.Name;
IF NOT TempVerzeichnis.INSERT THEN
TempVerzeichnis.MODIFY;
UNTIL Verzeichnis.NEXT = 0;
// SLEEP(10000); // War mal wegen des Verzeichnis-Fehlers!
IF TempVerz.FIND('-') THEN REPEAT
CLEAR(TopLinkEinlesen);
MeinDataPort.FILENAME(TempVerz.Path + TempVerz.Filename);
MeinDataPort.RUNMODAL;
COMMIT;
...
16. Mai 2007 09:30
NavHummel hat geschrieben:Wenn es keinen Zugriff auf den Pfad gibt, dann erscheint immer die Fehlermeldung: "Das Betriebssystem findet den Pfad nicht...".
Das hat dann zur Folge, dass das Ganze stehen bleibt, bis jemand die Fehlermeldung mit OK bestätigt hat. Das ist bei einem automatischen Nachtlauf, welchem noch weitere folgen sollten, recht hinderlich.
16. Mai 2007 10:46
Name DataType Subtype Length
Folder Automation 'Microsoft Scripting Runtime'.FileSystemObject
IF CREATE(Folder) THEN;
IF NOT Folder.FolderExists(V_Pfad) THEN BEGIN
Folder.CreateFolder(V_Pfad);
END;
16. Mai 2007 10:52
tba hat geschrieben:nd für diese eine Maschine kann man sehr wohl im Vorfeld sicherstellen, das die Pfade auch existieren.
4. März 2009 10:26
IF Pfad[STRLEN(Pfad)] <> '\' THEN
Pfad += '\';
RecFile.RESET;
CLEAR(RecFile);
RecFile.SETRANGE(Path, Pfad);
IF RecFile.ISEMPTY THEN
ERROR('%1 existiert nicht', Pfad);
Das Betriebssystem findet den Pfad nicht, den Sie für die Datei C:\Dokumente und Einstellungen\Benutzername\D\*.* eingegeben haben.
Prüfen Sie bitte das aktuelle Laufwerk und Verzeichnis und prüfen Sie auch die Schreibweise des Pfadnamens.
4. März 2009 14:07
Natalie hat geschrieben:@Timo, ich fände es schön, wenn du in dein Codeunit FileManagement diese Funktion(en) FolderExists und/oder PathExists aufnehmen würdest.
4. März 2009 16:52