Skip to content
ispyisail edited this page Oct 1, 2026 · 4 revisions

Linking wires across pages

A wire that runs off the edge of one page and continues on another is drawn in QElectroTech as a pair of sheet reports β€” one arrow saying "continues on page 4", another on page 4 saying "comes from page 2", and a link between them.

Vocabulary. This page says page and wire; the interface says sheet and conductor (earlier versions and many forum posts say folio). A sheet report is also called a folio report, or a renvoi de folio in French. They are the same things β€” see the glossary at the end.

Source: sources/qetgraphicsitem/reportelement.cpp, sources/undocommand/linkelementcommand.cpp, sources/pdf_links.cpp.


1. The two halves

A sheet report is an ordinary element whose link_type is one of two values:

link_type Editor label Meaning
next_report Renvoi de folio suivant the wire continues onward from here
previous_report Renvoi de folio prΓ©cΓ©dent the wire arrives here from elsewhere

You place them like any other element, from the terminals and reports section of the collection, and connect a wire to each. At that point they are two unrelated arrows: placing them does not link them. The link is a separate, explicit step.


2. Making the link

Select a report element and open its properties. It offers Link the element, with a list of the free reports of the opposite kind elsewhere in the project β€” free meaning "not already linked to something". The list shows each candidate's wire number, function, tension/protocol, position and sheet title, so you can tell two similar arrows apart.

Pick one, and the pair is linked. The operation is undoable.

To relink, unlink first: a report holds exactly one link, and linking it to a new partner replaces the old one β€” the previous partner is silently freed.


3. What QET checks, and what it does not

This is worth knowing precisely, because it is less than most people assume. When deciding whether two elements may be linked, QET checks two things:

  1. Type β€” a next_report may only link to a previous_report, and vice versa.
  2. Freedom β€” both must currently be unlinked (or already linked to each other).

That is the whole contract. QET does not check:

  • that the two reports are on different pages β€” you can link two reports on the same sheet;
  • that either one has a wire connected at all;
  • that the wires at the two ends belong to the same potential, or carry the same number, or are electrically related in any way;
  • that the arrows point in sensible directions.

A sheet report link is therefore a statement you make about your drawing, and QET renders it faithfully without verifying it. Two arrows can claim continuity between wires that have nothing to do with each other, and nothing will object.

If you want that checked, check it yourself β€” see Β§6.


4. What the label shows

The text on a report is not about itself. It describes the other end: where the wire goes, or where it came from.

The format comes from one project-wide setting, Project properties β†’ cross-references, stored as:

<report label="%f-%l%c"/>

With the default %f-%l%c, a report whose partner sits on page 4 at row B, column 7 reads 4-B7. Change that one setting and every report in the project changes with it. The variables are the ordinary label variables β€” see Variables & formulas.

Typing a report's label such as 4-B7 into Ctrl+G jumps to that page and zooms onto the cell β€” see Finding your place on a sheet.

Because the text is generated from the partner's position, it follows the partner. Move the other arrow to a different column, insert a page ahead of it, and the label updates by itself.

Only five variables work inside a report's text

A report's dynamic text is restricted to a small set β€” much smaller than an ordinary element's:

Variable Shows
%{label} the wire number
%{function} conductor function
%{tension_protocol} tension / protocol
%{conductor_color} wire colour
%{conductor_section} wire section

Anything else you put in a report's composite text is stripped. If you expected %{comment} or a manufacturer field to appear on a sheet report, this is why it does not.


5. Wire numbers and the link

Two behaviours follow from a report being a page-crossing marker rather than a real piece of hardware:

  • A report terminal is not counted as a connection. When QET builds the list of wire numbers, terminals belonging to a report element are deliberately skipped, because they do not represent a real terminal on real equipment. A wire that runs between two pages is not reported as having two extra ends.
  • Numbering does not cross the link automatically. The two wires are separate conductors on separate pages, each in its own potential. Giving both ends the same wire number is a matter of numbering them consistently β€” see Auto-numbering for how a new conductor takes or inherits a number.

6. Checking and exporting links

In an exported PDF the links become clickable. A report's label is turned into a hyperlink that jumps to its partner on the other page β€” so a reader can follow a wire through a set of drawings with the mouse.

There is a condition: the link is only injected when the text actually shows the label, i.e. it is the element-info text label, or a composite text containing %{label}. A report whose text you replaced with something else is still linked, but is not clickable in the PDF.

To audit every link in a project, use the CLI:

qelectrotech --export-links myproject.qet links.csv

That lists each linkable element and what it links to, flagging masters and slaves and reports that have no link. Since QET will not tell you about a forgotten arrow while you draw, this is the practical way to find one β€” a report with no partner is a wire that goes nowhere.


7. Vocabulary

This page says The code says French UI
page diagram folio
wire conductor conducteur
link between pages sheet report renvoi de folio
onward arrow next_report renvoi de folio suivant
return arrow previous_report renvoi de folio prΓ©cΓ©dent
cross-reference master / slave rΓ©fΓ©rence croisΓ©e

8. Sheet reports are not cross-references

The two mechanisms look alike and are often confused:

Sheet report Cross-reference
Links a wire to its continuation a coil to its contacts
Types next_report ↔ previous_report master ↔ slave
How many exactly one partner each one master, many slaves
Text shows the other end's position the list of contacts, or the coil's position

Cross-references are covered in Linking elements.

One rule they share, and one they do not: both require matching types and a free partner, but a master/slave pair has an extra restriction β€” a PLC master links only to a PLC slave, and a non-PLC master only to a non-PLC slave.


9. Things that catch people out

  • Placing two arrows does not link them. The link is an explicit action; a drawing can look finished and contain no links at all.
  • Nothing validates the link. Same page, no wire, unrelated potentials β€” all permitted. --export-links is the check.
  • Linking replaces, it does not add. A report has one partner; pointing it at a new one frees the old silently.
  • Most variables do not work in a report's text β€” only the five in Β§4.
  • The label describes the partner, not itself. If a label looks wrong, the thing to move is usually the arrow at the other end.
  • A report whose text does not show %{label} is not clickable in PDF, even though the link exists.

See also: Linking elements Β· Variables & formulas Β· Auto-numbering Β· Automating QElectroTech

Getting Started

Home

🌐 Languages β€” English Β· FranΓ§ais Β· Deutsch

Downloads

Windows without admin rights β€” the portable archive, no installer

Quick Start Guide

User Manual

FAQ

Tips & Tricks

Guides

Conductors β€” wire properties, what feeds which export, cables, and hops where wires cross

Wires per terminal β€” limit the wires on a terminal, chain wiring instead of stars

Printing and exporting β€” paper, PDF, images, and what each path does differently

Linking elements β€” master, slave, terminal

PLC modules β€” I/O tables and linking a wire to a specific point

Using the element editor β€” drawing tools, saving, checks

Grid size and element size β€” why symbols aren't all the same scale, and scaling one without leaving the grid

Preferences reference β€” what each settings page does

Saving and loading settings β€” your whole setup in one file, to copy or keep

Keyboard-only control β€” mouseless QET, and what still needs a mouse

Mouse modifiers β€” what Shift, Ctrl and Alt change while you drag

3D mouse β€” SpaceMouse pan, zoom and buttons

Aligning items β€” snap symbols back to the grid, or line them up

Pictures on a sheet β€” labels, crop, transparency, what they cost in the file

Arcs and curved wires β€” the Arc tool, pulling an arc in or out, rounding a corner with a fillet, dashed arcs for lighting layouts

Grouping items β€” select, move and copy several items as one

Finding your place on a sheet β€” go to a cell like B13 or 4-B7, keep the headers in sight, show the cell limits, zoom and pan

Showing and hiding kinds of items β€” hide texts, wire numbers, shapes, pictures, tables or cross-references on every sheet

Drawing faster β€” place without dragging, the S shortcut bar, command search, gestures

Customising QElectroTech β€” keys, toolbar size and contents, the gesture ring (partly pending)

Managing collections β€” folders, writability, building your own shortlist

Templates β€” reusable multi-element blocks, placed by double-click or drag

Search & Replace β€” bulk property changes

Building a nomenclature query β€” the BOM/summary table builder

Linking wires across pages β€” sheet reports

Variables & formulas β€” %f, %{label}, sequences

Auto-numbering β€” schemes, sequences, freezing

Terminal strips β€” strips, levels, bridges

Title block templates β€” the .titleblock format

Importing EPLAN parts (.edz) β€” EPLAN Data Portal

DXF import & export β€” two unrelated features, one format; command-line export and layers

The project database β€” the in-memory SQLite cache

File formats
Elements XML
Project XML
Development

Building from Source

Contributing Code

Automating QET β€” CLI, XML formats, external tools

CLI Reference β€” command line usage

JavaScript Scripting β€” --run, geometry editing, undo

MCP server β€” let an AI assistant read, verify and edit projects

Connecting an AI assistant β€” setup for Claude, Copilot, Gemini, Codex, Cursor, LM Studio

Script buttons β€” stored scripts with an icon, by hand or by an assistant

Live mode β€” an assistant working in the open project while you watch

Macro recorder β€” record a task by hand, for an assistant to script

Development Roadmap

Vision β€” proposal, under discussion

Developer Tools

About

Features

History

Community

License

Contributing to this Wiki

Clone this wiki locally