Working Girl

Tess McGill (Melanie Griffith) is an Irish American working-class stockbroker's secretary from Staten Island with a bachelor's degree in Business from evening classes. She aspires to reach an executive position. Tricked by her boss (Oliver Platt) into a date with his lascivious colleague (Kevin Spacey), she gets into trouble by publicly insulting him and is reassigned as secretary to a new financial executive, Katharine Parker (Sigourney Weaver). Seemingly supportive, Katharine encourages Tess to share ideas. Tess suggests that a client, Trask Industries, should invest in radio to gain a foothold in media. Katharine listens to the idea and says she'll pass it through some people. Later, she says the idea wasn't well received. But when Katharine breaks her leg skiing in Europe, she asks Tess to house-sit. While at Katharine's place, Tess discovers some meeting notes where Katharine plans to pass off the merger idea as her own. At home, Tess finds her boyfriend (Alec Baldwin) in bed with another woman. Disillusioned, she returns to Katharine's apartment and begins her transformation.
Tess sets up a meeting with executive Jack Trainer (Harrison Ford), using her boss's name as an entrÃ©e. She wants to see Trainer the evening before the meeting at a party, which she will attend in a dress of Katharine's. Before the party, when Tess suffers a panic attack, her friend Cynthia (Joan Cusack) gives her a valium from Katharine's bathroom. At the party, Tess unknowingly meets Jack, who is fascinated by her. They have a couple of drinks, and the combined effect of valium and alcohol lead to her waking next morning in Jack's bed. She leaves before he wakes and, entering the meeting, realizes Jack Trainer is the man she had spent the night with. She feels the pitch goes badly. Back at her desk, she is mortified about the night before, but Jack comes in and says they are happy with Tess's idea. Days later, Tess and Jack gatecrash Trask's (Philip Bosco) daughterâs (Barbara Garrick) wedding and pitch their plan. Trask is interested, and a meeting is set up. Later, Tess and Jack end up in bed together. Tess wants to explain her true situation but keeps quiet after learning Jack has been in a relationship with Katharine, which he says is all but over.
Katharine comes home on the day of the meeting with Trask. Tess overhears Katharine asking Jack to confirm his love for her, but he avoids answering and hurries out. Tess also rushes off, leaving her appointment book, which Katharine reads. The meeting goes well until Katharine storms in, accusing Tess, a mere secretary, of having stolen her idea. Tess protests but leaves, apologizing. Days later, Tess clears out her desk and then bumps into Jack, Katharine, and Trask in front of the lobby elevators. Tess confronts Katharine and starts to tell everyone her side of the story. Katharine tries to lead the group away, but Jack says he believes Tess. When Trask hears a convincing tidbit, he hops off the closing elevator, leaving Katharine still in the lift. Trask gets on another elevator with Jack and Tess, where Tess then gives her elevator pitch to Trask, telling him the roundabout way in which she came up with the idea for the merger. When they get to their office floor, Trask confronts Katharine, asking her how she came up with the idea. She stumbles and balks and can't really explain where the idea came from. Katharine is fired on the spot, and Trask offers Tess an "entry-level" job with his company.
Tess starts her new job, armed with a lunchbox prepared by Jack. Directed to an office, she sees a woman on the phone, assumes she is her new boss, and seats herself in the typing pool. The woman (Amy Aquino) reveals that she is, in fact, Tessâs secretary and that Tess is the new junior executive for whom she is working. Tess insists they work together as colleagues, showing she will be very different from Katharine. She then calls Cynthia from her office overlooking Manhattan to say she's landed her dream job.

Question: Who has Jack been in a relationship with?
Answer: Katherine