Hallo zusammen
Ich suche eine Prozedur die die Anzahl der Toleranzüberschreitungen zählt, und diese Anzahl samt Elementnamen und Merkmalstyp als TXT in die LDBTXT schreibt, um diese dann am Ende des Messreport mit LISTXT ausgeben zu können.
Hat hier vielleicht schon jemand so eine Prozedur oder eine Idee wie man das Umsetzen könnte.
Gruß
Michael
Toleranzüberschreitung zählen und samt Elementnamen ausgeben
Moderator: messtronik
-
- Beiträge: 18
- Registriert: Do Nov 12, 2020 5:06 pm
-
- Beiträge: 2
- Registriert: Mo Dez 11, 2023 11:13 am
Re: Toleranzüberschreitung zählen und samt Elementnamen ausgeben
Hello.
Maybe this is something to start with. Put the code last in the program or make a procedure and execut it whit INDPRC
TESTMBR (REA=NUM_ELE, QUE=$RPO)
OUT_TOL=0
DFNQUE (NAM=$OUT, DEL=Y)
DELTXT (NAM=LIST, CNF=N)
EDTTXT (NAM=LIST, CRE=Y)
PUTSTR (OBJ=LIST, TYP=TXT, STR=NUMBER OF EVALUATION OUT OF TOLERANCE)
PUTVALS (OBJ=LIST, TYP=TXT, STR=#RAD2)
DO (NAM=I$, BGN=NUM_ELE, END=1, DLT=-1)
CRSUBTYP (NAM=$RPO(-I$), TYP=ELE, STY=EVA, REA=NUM_EVA)
If (BXP=NUM_EVA>0)
DO (NAM=C$, BGN=1, END=NUM_EVA, DLT=1)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=Q, CHS=~CONT_PR)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=Z, CHS=~TOL_PR)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=G, CHS=~CS1$)
If (BXP=CHS:~TOL_PR =='GSDfQKXv' || CHS:~TOL_PR =='GSDARfQKXv' || CHS:~CONT_PR == '*' )
Else
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD='OUT_TOL=(OUT_TOL+1)')
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD=DFNQUE (NAM=$OUT, MBR=$RPO(-I$)))
CVNAMCHS (CHS=~NAM, NAM=$RPO(-I$))
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=S, CHS=~EVAL_SYM)
CONCAT (NAM=~NAM_EVA_SYM, STR=(~NAM,"_",~EVAL_SYM), INI=Y)
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD=PUTVALS (OBJ=TXT:LIST, TYP=Txt, STR=~NAM_EVA_SYM))
EndIf
ENDDO
EndIf
ENDDO
CVREACHS (NAM=~OUT_TOL, VAL=OUT_TOL, FM2=0, INT=N, ANG=N, SPZ=N, RLS=Y, RTZ=Y)
RPLSTR (NAM=LIST, FRM=#RAD2, TO =~OUT_TOL)
RPOTXT (NAM=LIST, DEV=LP)
Regards Anders
Maybe this is something to start with. Put the code last in the program or make a procedure and execut it whit INDPRC
TESTMBR (REA=NUM_ELE, QUE=$RPO)
OUT_TOL=0
DFNQUE (NAM=$OUT, DEL=Y)
DELTXT (NAM=LIST, CNF=N)
EDTTXT (NAM=LIST, CRE=Y)
PUTSTR (OBJ=LIST, TYP=TXT, STR=NUMBER OF EVALUATION OUT OF TOLERANCE)
PUTVALS (OBJ=LIST, TYP=TXT, STR=#RAD2)
DO (NAM=I$, BGN=NUM_ELE, END=1, DLT=-1)
CRSUBTYP (NAM=$RPO(-I$), TYP=ELE, STY=EVA, REA=NUM_EVA)
If (BXP=NUM_EVA>0)
DO (NAM=C$, BGN=1, END=NUM_EVA, DLT=1)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=Q, CHS=~CONT_PR)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=Z, CHS=~TOL_PR)
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=G, CHS=~CS1$)
If (BXP=CHS:~TOL_PR =='GSDfQKXv' || CHS:~TOL_PR =='GSDARfQKXv' || CHS:~CONT_PR == '*' )
Else
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD='OUT_TOL=(OUT_TOL+1)')
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD=DFNQUE (NAM=$OUT, MBR=$RPO(-I$)))
CVNAMCHS (CHS=~NAM, NAM=$RPO(-I$))
GETVALS (OBJ=$RPO(-I$).EVA(C$), CDS=S, CHS=~EVAL_SYM)
CONCAT (NAM=~NAM_EVA_SYM, STR=(~NAM,"_",~EVAL_SYM), INI=Y)
IFEXECS (ST1=~CS1$, ST2=S, TYP=EQ, LEN=1, CMD=PUTVALS (OBJ=TXT:LIST, TYP=Txt, STR=~NAM_EVA_SYM))
EndIf
ENDDO
EndIf
ENDDO
CVREACHS (NAM=~OUT_TOL, VAL=OUT_TOL, FM2=0, INT=N, ANG=N, SPZ=N, RLS=Y, RTZ=Y)
RPLSTR (NAM=LIST, FRM=#RAD2, TO =~OUT_TOL)
RPOTXT (NAM=LIST, DEV=LP)
Regards Anders
-
- Beiträge: 18
- Registriert: Do Nov 12, 2020 5:06 pm
Re: Toleranzüberschreitung zählen und samt Elementnamen ausgeben
Thanks, the program code works great