Hallo ihr Lieben, ich bräuchte mal wieder Eure Hilfe. Nach meinem letzten Problem habe ich doch einen der Ratschläge befolgt und lasse nun für meine Daten eine CSV-Datei erzeugen, aus der ich die Daten dann folgendermaßen verarbeite: Open in Online-Editor
\begin{filecontents*}{timesheet.csv} tag, tagKurz, datum, art, arbeitVon, arbeitBis, pauseVon, pauseBis, std, tage, projekt Donnerstag, Do, 04.01.2015, , 09:00, 19:00, 13:00, 14:00, 9.00, 1.00, BMW Halle 2.B Nord Freitag, Fr, 05.01.2015, UH, 13:00, 18:30, , , 5.5, 0.5, Audi Samstag, Sa, 06.01.2015, , , , , , , , Sonntag, So, 07.01.2015, , 15:00, 17:00, , , 2.00, 0.25, \end{filecontents*} \documentclass[10pt,a4paper]{article} \usepackage[ngerman]{babel} %nachinstalliert! \usepackage[paper=a4paper,left=20mm,right=20mm,top=15mm,bottom=15mm]{geometry} \usepackage{longtable} \usepackage{datatool} \setlength{\parindent}{0pt} \DTLloaddb{times}{timesheet.csv} \newenvironment{timesheet} { \setlength{\tabcolsep}{0pt}% \begin{longtable} {@{}p{0.075\textwidth}p{0.125\textwidth}p{0.075\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.075\textwidth}p{0.075\textwidth}p{0.145\textwidth}} \multicolumn{3}{c}{} & \multicolumn{2}{c}{Arbeitszeit} & \multicolumn{2}{c}{Pausenzeit}& & & \\ Tag & Datum & Art & Kommen & Gehen & Kommen & Gehen & Std & Tage & Projekt \\ \endhead } { \end{longtable} } \begin{document} \begin{timesheet} \DTLforeach{times}{ \tag=tag, \tagKurz=tagKurz, \datum=datum, \art=art, \arbeitVon=arbeitVon, \arbeitBis=arbeitBis, \pauseVon=pauseVon, \pauseBis=pauseBis, \std=std, \tage=tage, \projekt=projekt}{ \tagKurz & \datum & \art & \arbeitVon & \arbeitBis & \pauseVon & \pauseBis & \std & \tage & \projekt \\ } \end{timesheet} \end{document} Ich weiß leider nicht, wie ich die CSV jetzt hier rein bekomme, so dass es ein lauffähiges Beispiel wird, ich hoffe ihr verzeiht es mir. Nun zu meiner Frage: Wie kann ich innerhalb der foreach-Schleife noch bei bestimmten Bedingungen eingreifen, z.B. möchte ich, wenn bei tagKurz "Sa" oder "So" als Wert vorhanden ist, die gesamte Zeile in der Tabelle farbig hinterlegen. Ich hoffe, es ist alles soweit verständlich und ihr könnte mir da weiterhelfen. Gruß Snoopy EL |
Die Farbe einer Spalte kann man mit Hilfe von Für Unterscheidungen in Abhängigkeit des Inhalts einer Spalte sind in Open in Online-Editor
%\RequirePackage{filecontents} \begin{filecontents*}{timesheet.csv} tag, tagKurz, datum, art, arbeitVon, arbeitBis, pauseVon, pauseBis, std, tage, projekt Sonntag, So, 31.12.2014, , , , , , , , Donnerstag, Do, 04.01.2015, , 09:00, 19:00, 13:00, 14:00, 9.00, 1.00, BMW Halle 2.B Nord Freitag, Fr, 05.01.2015, UH, 13:00, 18:30, , , 5.5, 0.5, Audi Samstag, Sa, 06.01.2015, , , , , , , , Sonntag, So, 07.01.2015, , 15:00, 17:00, , , 2.00, 0.25, Montag, Mo, 08.01.2015, , , , , , , , \end{filecontents*} \documentclass[10pt,a4paper]{article} \usepackage[ngerman]{babel} %nachinstalliert! \usepackage[paper=a4paper,left=20mm,right=20mm,top=15mm,bottom=15mm]{geometry} \usepackage{longtable} \usepackage{datatool} %\setlength{\parindent}{0pt}% Das ist nicht gut! \usepackage{parskip}% Das ist besser. Bei KOMA-Script stattdessen \documentclass[parskip]{…} \usepackage[table]{xcolor} \DTLloaddb{times}{timesheet.csv} \newenvironment{timesheet} { \setlength{\tabcolsep}{0pt}% \begin{longtable} {@{}p{0.075\textwidth}p{0.125\textwidth}p{0.075\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.1\textwidth}p{0.075\textwidth}p{0.075\textwidth}p{0.145\textwidth}} \multicolumn{3}{c}{} & \multicolumn{2}{c}{Arbeitszeit} & \multicolumn{2}{c}{Pausenzeit}& & & \\ Tag & Datum & Art & Kommen & Gehen & Kommen & Gehen & Std & Tage & Projekt \\ \endhead } { \end{longtable} } \begin{document} \begin{timesheet} \DTLforeach{times}{ \tag=tag, \tagKurz=tagKurz, \datum=datum, \art=art, \arbeitVon=arbeitVon, \arbeitBis=arbeitBis, \pauseVon=pauseVon, \pauseBis=pauseBis, \std=std, \tage=tage, \projekt=projekt}{% \DTLifstringeq{\tagKurz}{So}{\\\kill\rowcolor{red}}{}% \tagKurz & \datum & \art & \arbeitVon & \arbeitBis & \pauseVon & \pauseBis & \std & \tage & \projekt\\ } \end{timesheet} \end{document}
Will man weitere Zeilen abhängig vom Inhalt färben, kann man das ganz genauso machen oder auch einfach die vorhandene Fallunterscheidung erweitern. Es würde also sowohl Open in Online-Editor
\DTLifstringeq{\tagKurz}{Sa}{\\\kill\rowcolor{red}}{}% \DTLifstringeq{\tagKurz}{Sa}{\\\kill\rowcolor{red}}{}% als auch Open in Online-Editor
\DTLifstringeq{\tagKurz}{Sa}{\\\kill\rowcolor{red}}{% \DTLifstringeq{\tagKurz}{So}{\\\kill\rowcolor{red}}{}% }% funktionieren, um sowohl Sonntage als auch Samstage einzufärben. Näheres zu den Fallunterscheidungen, die Näheres zu Farben und deren Verwendung in Tabellen ist den Anleitungen zu den Paketen Näheres zu beantwortet 01 Okt '15, 11:17 saputello Vielen Dank @saputello, das hilft mir schon ein gutes Stück weiter. Ich werde mich dann mal mit den einzelnen Paketen beschäftigen :)
(01 Okt '15, 12:13)
Snoopy EL
|
Ich habe bei den Themen Deiner Frage
datatool
ergänzt. Wenn Du darauf klickst, kannst Du auch einfach bei anderen Fragen/Antworten zu dem Thema schauen, wie die Daten dort eingefügt wurden.@esdd, danke! @saputello, hab nun noch Daten hinzugefügt, danke für den Hinweis, hatte zwar dort geguckt, aber es schlichtweg überlesen, sry...