Das ist eine concurrent-Beschreibung innerhalb eines Prozesses.
Sowas geht natürlich nicht... ;-)
Zwei Lösungen:
1) Mach den Prozess weg, dann gehts.
1  |   seg7_1 <= "0111111" when S_z = 0 else   -- 0
  | 
2  |             "0000110" when S_z = 1 else   -- 1
  | 
3  |             ...
  | 
4  |             "1101111" when S_z = 9;   -- 9
  | 
2a) Oder mach die Beschreibung mit
1  | process(S_z) begin
  | 
2  |    if   (S_z = 0)then seg7_1 <= "0111111";
  | 
3  |    elsif(S_z = 1)then   ...
  | 
4  |    end if;
  | 
5  | end if;
  | 
2b) Oder besser als case:
1  | process(S_z) begin
  | 
2  |    case S_z is
  | 
3  |    when 0 => seg7_1 <= "0111111";
  | 
4  |    when 1 =>  ...
  | 
5  |    end case;
  | 
6  | end if;
  |