Das sind mehrere Fragen auf einmal. Befassen wir uns einzeln damit:
Die Seiten sollen nicht kapitelweise, sondern fortlaufend nummeriert werden.
---
Wie in [meiner früheren Antwort](https://texwelt.de/fragen/21002#21859) ausführlich erklärt, ist für die kapitelweise Nummerierung der Codeabschnitt
\usepackage{xpatch}
\makeatletter
\newif\ifusepageperchapter
\renewcommand*{\pagenumbering}[1]{%
\global\c@page \@ne
\gdef\thepage{%
\ifusepageperchapter
\ifnum \c@chapter>\z@ \thechapter-\fi
\fi
\csname @#1\endcsname\c@page
}%
}%
\pagenumbering{arabic}
\xpretocmd{\addchaptertocentry}{%
\ifusepageperchapter\setcounter{page}{1}\fi
}{}{\undefined}
\makeatletter
im dortigen Beispiel verantwortlich. Bis auf `\usepackage{xpatch]` kann man diesen einfach komplett löschen. Das Paket `xpatch` darf man deshalb nicht entfernen, weil dessen Anweisung `\xpretocmd` auch noch im nachfolgenden Code verwendet wird.
Wie dort ebenfalls erklärt wird, werden von dem soeben gelöschten Code u. a. zwei Anweisungen `\usepageperchaptertrue` und `\usepageperchapterfalse` bereitgestellt, mit denen die kapitelweise Nummerierung ein- und ausgeschaltet werden kann. Man muss also auch die Anweisung `\usepageperchapter` im Dokument selbst löschen. Man erhält so:
\documentclass[headlines=2]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\renewcommand*\chapterpagestyle{scrheadings}
\ohead{Seite: \pagemark \\Datum:\ \today}
\usepackage{xpatch}
\RedeclareSectionCommand[%
% style=chapter,% Abschnitte sollten wie Kapitel auf einer neuen Seite beginnen.
tocpagenumberformat=\pagenumberrange,% Format der Seitenzahlen im Inhaltsverzeichnis ändern.
]{section}
% Bei jedem Verzeichniseintrag
\newcounter{sectionentry}
\renewcommand*{\thesectionentry}{}
\makeatletter
\xpretocmd{\addsectiontocentry}{%
\stepcounter{sectionentry}%
\gdef\thesectionentry{\arabic{sectionentry}}%
}{}{\undefined}
\makeatother
\xpretocmd{\section}{%
\generatesectionendpagelabel
}{}{\undefined}
\xpretocmd{\chapter}{%
\generatesectionendpagelabel
}{}{\undefined}
\newcommand*\generatesectionendpagelabel{%
\Ifstr{\thesectionentry}{}{}{%
% Wir hatten uns eine Startseite gemerkt und erzeugen jetzt ein Label für
% die Endseite
\label{section.endpage.to.section.entry.\thesectionentry}%
\gdef\thesectionentry{}% Gemerkte Seite vergessen.
}%
}
\AtEndDocument{\generatesectionendpagelabel}
\newcounter{refsectionentry}
\newcommand*{\pagenumberrange}[1]{%
#1%
\stepcounter{refsectionentry}%
\Ifundefinedorrelax{r@section.endpage.to.section.entry.\therefsectionentry}{}{%
\ --\ \pageref{section.endpage.to.section.entry.\therefsectionentry}%
}%
}
% Jetzt benötigen im Inhaltsverzeichnis mehr Platz für die Seitenzahlen
\makeatletter
\renewcommand*{\@pnumwidth}{4.5em}
\renewcommand*{\@tocrmarg}{5em}
\makeatother
% Wir wollen im Inhaltsverzeichnis nur Kapitel und Abschnitte:
\setcounter{tocdepth}{\sectiontocdepth}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{Kapitel 1}
\section{Section 1}
\subsection{Subsection 1}
\lipsum
\chapter{Kapitel 2}
\section{Section 1}
\lipsum
\section{Section 2}
\lipsum
\section{Section 3}
\lipsum
\end{document}
Und schon sieht das Inhaltsverzeichnis so aus:
[![fortlaufende Seitenzahlen im Inhaltsverzeichnis][1]][2]
Statt den genannten Code zu löschen, hätte man natürlich auch einfach die Information verwenden können, dass mit `\usepageperchapterfalse` die kapitelweise Nummerierung abgeschaltet werden kann, bzw. mit `\usepageperchaptertrue` erst aktiviert werden muss. Damit hätte es also genügt, die Anweisung `\usepageperchaptertrue`, die im Originalcode nach `\tableofcontents` zu finden ist, zu entfernen oder auszukommentieren. Damit hätte man das oben gezeigte Ergebnis ebenfalls ganz einfach und ohne Änderung an den Definitionen erhalten.
Das Ende der Seitenbereiche im Inhaltsverzeichnis soll nicht automatisch, sondern manuell durch ein Label im Text markiert werden.
---
Wie [meiner früheren Antwort](https://texwelt.de/fragen/21002#21859) ausführlich erklärt wird, wird die neu definierte Anweisung `\generatesectionendlabel` für das Label am Ende der Abschnitte verwendet. Die Hauptschwierigkeit dabei ist weniger, dieses Label zu setzen. Die Hauptschwierigkeit besteht in der ursprünlichen Lösung darin, das automatisch zu tun. Dazu wird an den Anfang von `\section` und `\chapter` mit
\xpretocmd{\section}{%
\generatesectionendpagelabel
}{}{\undefined}
\xpretocmd{\chapter}{%
\generatesectionendpagelabel
}{}{\undefined}
eben die Ausführng von `\generatesectionpagelabel` gepatcht. Hier kommt es übrigens genau dann zu einer Fehlermeldung, dass `\undefined` nicht definiert ist, wenn `\section` oder `\chapter` nicht existieren. Das sollte bei Verwendung der Klasse `scrreprt` wie im Originalcode, aber auch bei Verwendung der Klasse `scrbook` niemals auftreten. Unabhängig von der KOMA-Script-Version bin ich sicher, dass es mit keiner bisher erschienen Version der genannten Klassen auftreten kann.
Zusätzlich wird mit
\AtEndDocument{\generatesectionendpagelabel}
dafür gesorgt, dass auch am Ende des Dokument noch ein solches Label erzeugt wird. Entfernt man die beiden Patches und die `\AtEndDocument`-Anweisung, so werden keine automatischen Labels mehr gesetzt.
Das von `\generatesectionpagelabel` generierte Label hat übrigens die Form `section.endpage.to.section.entry.NUMMER`, wobei NUMMER die Nummer des gesetzten Labels ist. Diese wird nicht von `\generatesectionpagelabel` erhöht, sondern durch
\xpretocmd{\addsectiontocentry}{%
\stepcounter{sectionentry}%
\gdef\thesectionentry{\arabic{sectionentry}}%
}{}{\undefined}
jedes Mal, wenn ein neuer Inhaltsverzeichniseintrag der Ebene `section` (in der Regel innerhalb der `\section`-Anweisung) erzeugt werden. Auch hier kommt es nur dann zu einer Fehlermeldung wegen einer nicht definierten Anweisung `\undefined`, wenn `\addtosectiontocentry` nicht existiert. In KOMA-Script eistiert diese Anweisung seit Version 3.10 und damit bereits seit über 9 Jahren. Support für ältere TeX-Distributionen ist weder erstrebenswert noch mit vertretbarem Aufwand möglich.
In der Ausgabe der Seitenzahlen im Inhaltsverzeichnis wird per
\RedeclareSectionCommand[%
% style=chapter,% Abschnitte sollten wie Kapitel auf einer neuen Seite beginnen.
tocpagenumberformat=\pagenumberrange,% Format der Seitenzahlen im Inhaltsverzeichnis ändern.
]{section}
als Format `\pagenumberrange` festgelegt. In dieser Anweisung wird ebenfalls ein Zähler erhöht und dann mit
\Ifundefinedorrelax{r@section.endpage.to.section.entry.\therefsectionentry}{}{…}
abgefragt, ob ein zugehöriges Label tatsächlich existiert und nur dann ein Seitenbereich im Inhaltsverzeichnis ausgegeben.
Daher wir nach dem Löschen der oben genannten Patches zum automatischen Ausführung von `\generatesectionendpagelabel`:
\documentclass[headlines=2]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\renewcommand*\chapterpagestyle{scrheadings}
\ohead{Seite: \pagemark \\Datum:\ \today}
\usepackage{xpatch}
\RedeclareSectionCommand[%
% style=chapter,% Abschnitte sollten wie Kapitel auf einer neuen Seite beginnen.
tocpagenumberformat=\pagenumberrange,% Format der Seitenzahlen im Inhaltsverzeichnis ändern.
]{section}
% Bei jedem Verzeichniseintrag
\newcounter{sectionentry}
\renewcommand*{\thesectionentry}{}
\xpretocmd{\addsectiontocentry}{%
\stepcounter{sectionentry}%
\gdef\thesectionentry{\arabic{sectionentry}}%
}{}{\undefined}
\newcommand*\generatesectionendpagelabel{%
\Ifstr{\thesectionentry}{}{}{%
% Wir hatten uns eine Startseite gemerkt und erzeugen jetzt ein Label für
% die Endseite
\label{section.endpage.to.section.entry.\thesectionentry}%
\gdef\thesectionentry{}% Gemerkte Seite vergessen.
}%
}
\newcounter{refsectionentry}
\newcommand*{\pagenumberrange}[1]{%
#1%
\stepcounter{refsectionentry}%
\Ifundefinedorrelax{r@section.endpage.to.section.entry.\therefsectionentry}{}{%
\ --\ \pageref{section.endpage.to.section.entry.\therefsectionentry}%
}%
}
% Jetzt benötigen im Inhaltsverzeichnis mehr Platz für die Seitenzahlen
\makeatletter
\renewcommand*{\@pnumwidth}{4.5em}
\renewcommand*{\@tocrmarg}{5em}
\makeatother
% Wir wollen im Inhaltsverzeichnis nur Kapitel und Abschnitte:
\setcounter{tocdepth}{\sectiontocdepth}
\usepackage{lipsum}
\begin{document}
\tableofcontents
%\usepageperchaptertrue
\chapter{Kapitel 1}
\section{Section 1}
\subsection{Subsection 1}
\lipsum
\chapter{Kapitel 2}
\section{Section 1}
\lipsum
\section{Section 2}
\lipsum
\section{Section 3}
\lipsum
\end{document}
zunächst überhaupt kein Seitenbereich im Inhaltsverzeichnis mehr ausgegeben:
[![Inhaltsverzeichnis ohne Seitenbereiche][3]][4]
da die Labels ja, wie erwähnt nun nicht mehr gesetzt werden. Aber natürlich können wir an beliebiger Stelle im Dokument selbst `\generatesectionendpagelabel` aufrufen:
\documentclass[headlines=2]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\renewcommand*\chapterpagestyle{scrheadings}
\ohead{Seite: \pagemark \\Datum:\ \today}
\usepackage{xpatch}
\RedeclareSectionCommand[%
% style=chapter,% Abschnitte sollten wie Kapitel auf einer neuen Seite beginnen.
tocpagenumberformat=\pagenumberrange,% Format der Seitenzahlen im Inhaltsverzeichnis ändern.
]{section}
% Bei jedem Verzeichniseintrag
\newcounter{sectionentry}
\renewcommand*{\thesectionentry}{}
\xpretocmd{\addsectiontocentry}{%
\stepcounter{sectionentry}%
\gdef\thesectionentry{\arabic{sectionentry}}%
}{}{\undefined}
\newcommand*\generatesectionendpagelabel{%
\Ifstr{\thesectionentry}{}{}{%
% Wir hatten uns eine Startseite gemerkt und erzeugen jetzt ein Label für
% die Endseite
\label{section.endpage.to.section.entry.\thesectionentry}%
\gdef\thesectionentry{}% Gemerkte Seite vergessen.
}%
}
\newcounter{refsectionentry}
\newcommand*{\pagenumberrange}[1]{%
#1%
\stepcounter{refsectionentry}%
\Ifundefinedorrelax{r@section.endpage.to.section.entry.\therefsectionentry}{}{%
\ --\ \pageref{section.endpage.to.section.entry.\therefsectionentry}%
}%
}
% Jetzt benötigen im Inhaltsverzeichnis mehr Platz für die Seitenzahlen
\makeatletter
\renewcommand*{\@pnumwidth}{4.5em}
\renewcommand*{\@tocrmarg}{5em}
\makeatother
% Wir wollen im Inhaltsverzeichnis nur Kapitel und Abschnitte:
\setcounter{tocdepth}{\sectiontocdepth}
\usepackage{lipsum}
\begin{document}
\tableofcontents
%\usepageperchaptertrue
\chapter{Kapitel 1}
\section{Section 1}
\subsection{Subsection 1}
\lipsum
\chapter{Kapitel 2}
\section{Section 1}
\lipsum
\section{Section 2}
\lipsum
\generatesectionendpagelabel
\generatesectionendpagelabel% Achtung: Bewusst falsch platzierte Generierung des Endseiten-Labels!
\lipsum
\section{Section 3}
\lipsum
\end{document}
Hier wird nun im Inhaltsverzeichnis für Abschnitt »2.2 Section 2« ein – wenn auch aufgrund der falschen Platzierung der Anweisung mitten im Abschnitt falscher – Seitenbereich ausgegeben:
[![falscher manueller Seitenbereits für Abschnitt »2.2 Section 2«][5]][5]
Wie an diesem Beispiel zu sehen ist, sinkt der Implementierungsaufwand durch weglassen des Automatismus nur wenig. Dafür erhöht sich die Gefahr, dass falsche Seitenbereiche im Inhaltsverzeichnis ausgegeben werden erheblich. Aus diesem Grund rate ich von einem solchen Vorgehen generell ab.
[1]: https://texwelt.de/upfiles/test_20210129_105905.png
[2]: https://texwelt.de/upfiles/test_20210129_105905.png
[3]: https://texwelt.de/upfiles/test_20210129_112807.png
[4]: https://texwelt.de/upfiles/test_20210129_112807.png
[5]: https://texwelt.de/upfiles/test_20210129_113118.png