[Th...] Posted Friday at 09:44 AM Share Posted Friday at 09:44 AM Hallo Kollegen. Ich würde gerne mein Datenfeld Kostenstelle anhand der Maschinennummer setzen. Also ich habe in einem Ordner 4 Dateien die heißen wie unsere Kostenstellen. in diesen Dateien stehen Maschinen die in dieser Kostenstelle vorhanden sind. Aber ich bekomme es nicht zu prüfen ob etwas in einer Liste vorhanden ist. Also etwa so: maschAktuell = getRecordHead("u_5_masch_nr") dirAbteilungen = "x:\Wellenfertigung\00_Kostenstellen" file20000 = dirAbteilung + "\" + "20000.txt" file21000 = dirAbteilung + "\" + "21000.txt" file22000 = dirAbteilung + "\" + "22000.txt" file23000 = dirAbteilung + "\" + "23000.txt" if maschAktuell in file20000 then setRecordHead("u_abt", "20000") else if maschAktuell in file21000 then setRecordHead("u_abt", "21000") else if maschAktuell in file22000 then setRecordHead("u_abt", "22000") else if maschAktuell in file23000 then setRecordHead("u_abt", "23000") else setRecordHead("u_abt, "00000") endif endif endif endif Hat jemand eine Tip wie ich das machen könnte? Wollte dies dann in die inspection_start_pcm.txt einfügen damit die Kostenstelle immer richtig ausgefüllt ist. Vielen Dank für die Unterstützung Link to comment Share on other sites More sharing options...
[Mi...] Posted Friday at 11:34 AM Share Posted Friday at 11:34 AM (edited) Hallo Thomas, in pcm gibt es kein if ... in .... du musst die Datei erst händisch einlesen: maschAktuell =getRecordHead("u_5_masch_nr") dirAbteilungen = "x:\Wellenfertigung\00_Kostenstellen" AbtList=list("20000", "21000", "22000","23000") defineFunctionStart("maschMatch") list1=readListFile(file1) maschCheck=false for i=1 to list1.size if getParameterNamed(list1,i) == maschAktuell maschCheck=true endif next i // oder kurz und knapp //maschCheck=executeCode(list1.asArray + " includes: '" + maschAktuell + "'") defineFunctionEnd("maschCheck") for i=1 to AbtList.size listFile=getParameterNamed(AbtList,i) file1=dirAbteilungen + "\file" + listFile + ".txt" if executeFunctionNamed("maschMatch") == true setRecordHead("u_abt", listFile) endif next i Edited Friday at 11:35 AM 2 Link to comment Share on other sites More sharing options...
[No...] Posted 5 hours ago Share Posted 5 hours ago Und: dirAbteilungen / dirAbteiilung Link to comment Share on other sites More sharing options...
[Th...] Posted 2 hours ago Author Share Posted 2 hours ago Please sign in to view this username. Vielen Dank für die Hilfe Die Schleife for i=1 to list1.size if getParameterNamed(list1,i) == maschAktuell maschCheck=true endif next i hat zwar nicht funktioniert, aber die Kurzform mit executeCode funktioniert tadellos. Diese Funktion hab ich übrigens in der PCM-Doku nicht gefunden. Interessant dass es noch mehr gibt, als in der Doku gelistet ist. Falls es jemanden interessiert, ich habe es jetzt inkl. Überprüfung ob die Kostenstellendateien vorhanden sind und kleinen Anpassungen so gestaltet: // Pfad zu Kostenstellen-Dateien dirAbteilungen = "x:\wellenfertigung\00_Kostenstellen" // Auflistung Kostenstellen (Dateien mit .txt Endung müssen in Verzeichnis vorhanden sein) AbtList=list("20000", "21000", "22000","23000") // Abteilung defnieren falls eingegebene Maschine nicht in den Listen vorhanden ist. setRecordHead("u_abt", "0000000") // Bei CNC-Start auslesen der eingebenen Maschinennummer (über inspection_start_pcm.txt) maschAktuell = getRecordHead("u_5_masch_nr") // Definition der Funktion zum prüfen Kostenstelle anhand von Dateien defineFunctionStart("maschMatch") list1=readListFile(file1) // einlesen der Listendatei maschCheck=false // laufvariable als false definieren maschCheck=executeCode(list1.asArray + " includes: '" + maschAktuell + "'") defineFunctionEnd("maschCheck") // Variable für fileCheck abort = false // testen ob files vorhanden for i_FileCheck=1 to AbtList.size listCheck=getParameterNamed(AbtList,i_FileCheck) fileCheck=dirAbteilungen + "\" + listCheck + ".txt" if fileExists(fileCheck) == false then abort = true endif next i_FileCheck // Wenn alle Files vorhanden gehts weiter if abort == true then message("Mindestens eine Kostenstellen-Prüfdatei ist nicht vorhanden" +cr()+cr() + "Kostenstelle wird auf 000000 gesetzt") else // Schleife durch Abteilungslisten for i=1 to AbtList.size listFile=getParameterNamed(AbtList,i) file1=dirAbteilungen + "\" + listFile + ".txt" if executeFunctionNamed("maschMatch") == true setRecordHead("u_abt", listFile) endif next i endif Link to comment Share on other sites More sharing options...
[No...] Posted 2 hours ago Share Posted 2 hours ago Please sign in to view this quote. Das hat auch einen guten Grund. Diese Funktion erlaubt die direkte Ausführung von Smalltalk-Code (entweder Zugriff auf Calypso-interne Funktionen oder wie hier eigenen Code). Damit kann man sehr viel gefährlichen Unfug anstellen, wenn man nicht weiß was man tut. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in