Hi, im new in programation in general, i wrote a code following my own logic, and it works but the code is toooo long (900 lines) and i know that there have to be a way of writing this too much short and easy and efficient… the routine is the next one:
PROC rErros10()
!!! CASE 1
IF Error1=0 AND Error2=0 AND Error3=0 AND Error4=1 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 3;
ELSE
IF Error1 = 0 AND Error2=0 AND Error3=1 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 3 ";
WaitTime 3;
ENDIF
IF Error1 = 0 AND Error2=0 AND Error3=1 AND Error4=1 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 3 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1 = 0 AND Error2=1 AND Error3=0 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 2 ";
WaitTime 3;
ENDIF
IF Error1 = 0 AND Error2=1 AND Error3=0 AND Error4=1 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1 = 0 AND Error2=1 AND Error3=1 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 3 ";
WaitTime 5;
ENDIF
IF Error1 = 0 AND Error2=1 AND Error3=1 AND Error4=1 THEN
rEspaco4;
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 3 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1 = 1 AND Error2=0 AND Error3=0 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 1 ";
WaitTime 3;
ENDIF
IF Error1 =1 AND Error2=0 AND Error3=0 AND Error4=1 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1 =1 AND Error2=0 AND Error3=1 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 3 ";
WaitTime 5;
ENDIF
IF Error1=1 AND Error2=0 AND Error3=1 AND Error4=1 THEN
rEspaco4;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 3 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1=1 AND Error2=1 AND Error3=0 AND Error4=0 THEN
rEspaco;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 2 ";
WaitTime 5;
ENDIF
IF Error1=1 AND Error2=1 AND Error3=0 AND Error4=1 THEN
rEspaco4;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 5;
ENDIF
IF Error1=1 AND Error2=1 AND Error3=1 AND Error4=0 THEN
rEspaco4;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 3 ";
WaitTime 5;
ENDIF
IF Error1=1 AND Error2=1 AND Error3=1 AND Error4=1 THEN
rEspaco4;
TPWrite " Nao é possivel buscar a peca 1 ";
TPWrite " Nao é possivel buscar a peca 2 ";
TPWrite " Nao é possivel buscar a peca 3 ";
TPWrite " Nao é possivel buscar a peca 4 ";
WaitTime 6;
ENDIF
ENDIF
ENDPROC
I know that this is so bad, is not scalable and is too long, I have in the program 5 of this type of routines, with the intention of showing on the flexpendant when an action cant be execute…
The thing is that it has to be 2 lines or 3 or 4 or 1, it cant be 1 line and change the value of the piece, im saying this cuz i tried with array, for, if , but i cant figure it out how to make the 2 or 3 or 4 lines showing at the same time… btw I dont really know if this is a real error handling, cuz im not using raise and the other stuff at this moment.
I wait for any response, thank you.