hexagon logo

Different header outputs in one program

ALL RIGHT PCDMIS GURUS I NEED SOME HELP! I HAVE A PROGRAM THAT WILL BE USED FOR RECEIVING INSPECTION AS WELL AS PRODUCTION FLOOR. THE NAMING CONVENTIONS FOR WHAT SHOULD APPEAR IN THE HEADER ARE DIFFERENT DEPENDING ON WHERE THE PROGRAM WAS RAN. MY QUESTION WOULD BE IS THERE A WAY TO VARIABLIZE THE CELL EXPRESSIONS IN THE HEADER LABEL SO IT WILL ONLY PICK UP THE TRACEFIELDS THAT WERE USED DURING THAT EXECUTION. I AM AWARE I COULD JUST USE A SIMPLE HEADER AND PUT MY NAMING CONVENTIONS BELOW THE HEADER USING COMMENTS BUT THAT IS NOT THE ROUTE I WANT TO TAKE. USING ONE PROGRAM IS A REQUEST FROM MANGEMENT, OTHERWISE I WOULD SAVE TWO PROGRAMS WITH DIFFERNT .LBL FILES.


THIS IS MY CODE:


Z1 =COMMENT/YESNO,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
IS THIS FOR RECEIVING INSPECTION
IF_GOTO/Z1.INPUT=="NO",GOTO = PRODUCTION
RECEIVING =LABEL/
Z2 =COMMENT/INPUT,NO,FULL SCREEN=NO,
OPERATOR
ASSIGN/V1=Z2.INPUT
Z3 =COMMENT/INPUT,NO,FULL SCREEN=NO,
MATERIAL NO.
ASSIGN/V2=Z3.INPUT
Z4 =COMMENT/INPUT,NO,FULL SCREEN=NO,
BATCH NO.
ASSIGN/V3=Z4.INPUT
Z5 =COMMENT/INPUT,NO,FULL SCREEN=NO,
MAT. DOC. NO.
ASSIGN/V4=Z5.INPUT
Z6 =COMMENT/INPUT,NO,FULL SCREEN=NO,
SAMPLE NO.
ASSIGN/V5=Z6.INPUT
TRACEFIELD/NO_DISPLAY,LIMIT=15 ; OPERATOR : V1
TRACEFIELD/NO_DISPLAY,LIMIT=8 ; MATERIAL NO. : V2
TRACEFIELD/NO_DISPLAY,LIMIT=9 ; BATCH NO. : V3
TRACEFIELD/NO_DISPLAY,LIMIT=10 ; MAT.DOC. NO. : V4
TRACEFIELD/NO_DISPLAY,LIMIT=15 ; SAMPLE NO. : V5
ASSIGN/U="_"
ASSIGN/N=V3
ASSIGN/S=Z3.INPUT+U+Z4.INPUT+U+Z5.INPUT+U+Z6.INPUT
ASSIGN/PATH="T:\Shared\Quality_Engineering\CMM\Master\H-BLD_JOSH pc811\PCDMIS_2014\PRODUCTION"+N+""+S+".PDF"
ASSIGN/PATH2="T:\Shared\Quality_Engineering\CMM\Master\H-BLD_JOSH pc811\PCDMIS_2014\PRODUCTION"+N
CS1 =SCRIPT/FILENAME= T:\SHARED\QUALITY_ENGINEERING\CMM\MASTER\H-BLD_JOSH PC811\PCDMIS_2014\PC-DMIS SCRIPT\CREATE_FOLDER.BAS
FUNCTION/Main,SHOW=YES,,
STARTSCRIPT/
ENDSCRIPT/
GOTO/START
PRODUCTION =LABEL/
Z7 =COMMENT/INPUT,NO,FULL SCREEN=NO,
OPERATOR
ASSIGN/V6=Z7.INPUT
Z8 =COMMENT/INPUT,NO,FULL SCREEN=NO,
PROD. ORD. NO.
ASSIGN/V7=Z8.INPUT
Z9 =COMMENT/INPUT,NO,FULL SCREEN=NO,
MAT. NO.
ASSIGN/V8=Z9.INPUT
Z10 =COMMENT/INPUT,NO,FULL SCREEN=NO,
BATCH NO.
ASSIGN/V9=Z10.INPUT
Z11 =COMMENT/INPUT,NO,FULL SCREEN=NO,
SAMPLE NO.
ASSIGN/V10=Z11.INPUT
TRACEFIELD/NO_DISPLAY,LIMIT=15 ; OPER : V6
TRACEFIELD/NO_DISPLAY,LIMIT=10 ; PROD ORD # : V7
TRACEFIELD/NO_DISPLAY,LIMIT=8 ; MATERIAL : V8
TRACEFIELD/NO_DISPLAY,LIMIT=19 ; BATCH : V9
TRACEFIELD/NO_DISPLAY,LIMIT=15 ; SAMPLE NO. : V10
ASSIGN/U="_"
ASSIGN/N=V9
ASSIGN/S=Z9.INPUT+U+Z10.INPUT+U+Z8.INPUT+U+Z11.INPUT
ASSIGN/PATH="T:\Shared\Quality_Engineering\CMM\Master\H-BLD_JOSH pc811\PCDMIS_2014\PRODUCTION"+N+""+S+".PDF"
ASSIGN/PATH2="T:\Shared\Quality_Engineering\CMM\Master\H-BLD_JOSH pc811\PCDMIS_2014\PRODUCTION"+N
CS2 =SCRIPT/FILENAME= T:\SHARED\QUALITY_ENGINEERING\CMM\MASTER\H-BLD_JOSH PC811\PCDMIS_2014\PC-DMIS SCRIPT\CREATE_FOLDER.BAS
FUNCTION/Main,SHOW=YES,,
STARTSCRIPT/
ENDSCRIPT/
START =LABEL/
PRINT =LABEL/
PRINT/REPORT,EXEC MODE=END,$
TO_FILE=ON,OVERWRITE=PATH,AUTO OPEN REPORT=OFF,$
TO_PRINTER=OFF,COPIES=1,$
TO_DMIS_REPORT=OFF,FILE_OPTION=INDEX,FILENAME=,$
REPORT_THEORETICALS=NONE,REPORT_FEATURE_WITH_DIMEN SIONS=NO,$
TO_EXCEL_OUTPUT=OFF,
PREVIOUS_RUNS=DELETE_INSTANCES







SO IN SHORT IF THE OPERATOR ANSWERS "YES" FOR THE FIRST QUESTION I WANT THE FIRST SET OF TRACEFIELDS TO APPEAR IN THE HEADER. IF "NO" THEN THE SECOND SET TO APPEAR.

THANKS IN ADVANCE FOR ANY HELP ON THIS TOPIC!!!
Parents
  • What if you set the tracefields with if/else statements....Then Tracefield2 could be filled by Z2 when 'R' is selected and Z7 when 'P' is selected:
    duplicate as little as possible for your input boxes.

    When looking through, it appears like you're really just trying to change the save location. You probably don't need 2 sets of tracefields to work through. You can change the save location with If/else statements just as well based on the 'R' and 'P' selections.

    HTH
  • :
    Instead of using tracefield, you can enter variable names to your label locations. Then in program it would become something like:

    $$ NO,
    
    SELECTION_1  =LABEL/
    PROJECT      =COMMENT/INPUT,NO,FULL SCREEN=NO,
                  What inspection to perform?
    
                  Recieving
                  Production
    
                  Must pick from the option above 
                  IF_GOTO/PROJECT.INPUT=="Recieving" OR PROJECT.INPUT=="Production",GOTO = FILL_TRACE
                  COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
                  You must enter 1 of the required texts properly to continue.
                GOTO/SELECTION_1
      $$ NO,
    
    FILL_TRACE   =LABEL/
                  IF/PROJECT.INPUT=="Recieving"
                    ASSIGN/TRACE3_TITLE="Recieving Inspection"
                    ASSIGN/TRACE3_FILL=BATCH.INPUT
                  END_IF/
                  IF/PROJECT.INPUT=="Production"
                    ASSIGN/TRACE3_TITLE="Production Inspection"
                    ASSIGN/TRACE3_FILL=BATCH.INPUT
                  END_IF/
    


    This is still similar in nature to what was being attempted for the header, but now the conditions are handled in your program. You can adjust on the fly if a 3rd variation appears for 'In-process' or something. HTH
Reply
  • :
    Instead of using tracefield, you can enter variable names to your label locations. Then in program it would become something like:

    $$ NO,
    
    SELECTION_1  =LABEL/
    PROJECT      =COMMENT/INPUT,NO,FULL SCREEN=NO,
                  What inspection to perform?
    
                  Recieving
                  Production
    
                  Must pick from the option above 
                  IF_GOTO/PROJECT.INPUT=="Recieving" OR PROJECT.INPUT=="Production",GOTO = FILL_TRACE
                  COMMENT/OPER,NO,FULL SCREEN=YES,AUTO-CONTINUE=NO,
                  You must enter 1 of the required texts properly to continue.
                GOTO/SELECTION_1
      $$ NO,
    
    FILL_TRACE   =LABEL/
                  IF/PROJECT.INPUT=="Recieving"
                    ASSIGN/TRACE3_TITLE="Recieving Inspection"
                    ASSIGN/TRACE3_FILL=BATCH.INPUT
                  END_IF/
                  IF/PROJECT.INPUT=="Production"
                    ASSIGN/TRACE3_TITLE="Production Inspection"
                    ASSIGN/TRACE3_FILL=BATCH.INPUT
                  END_IF/
    


    This is still similar in nature to what was being attempted for the header, but now the conditions are handled in your program. You can adjust on the fly if a 3rd variation appears for 'In-process' or something. HTH
Children
No Data