contenido del archivo: seleccione filas del grupo para mostrar

contenido del archivo: seleccione filas del grupo para mostrar

Tengo un archivo que contiene 1000 filas de datos de productos. Quiero seleccionar solo un tipo de producto específico para imprimir en mi documento.

Código mínimo en main.tex:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{product.tex}

%Type =1,2...10
No.,Type ,Name , Description
1, 1, A1,D1
….
30, 1, A1, D30
31, 2, A2, D31
131,2, A2, D131
132,3,A3,D132
….
249,4,A4,D249
1.000,10, A10,D1000

\end{filecontents*}

\begin{document}
%Need command can CHOOSE Type = 1 and/or 2, and/or 3, ...10
%i choose type = 1 & 3
\include{run.tex}
\end{document}

Los tipos de productos van desde 1, 2, ..., 10. Y en run.tex:

%Display like:

Name[i] & Description[j]

main.pdfresultado:

Tipo = 1

A1-D1


A1-D30

Tipo = 3

A3-D132


A3-D248

Respuesta1

Usardatatoolpara esto:

ingrese la descripción de la imagen aquí

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{product.tex}
%Type =1,2...10
No,Type,Name,Description
1,1,A1,D1
2,1,A1,D2
3,1,A1,D3
30,1,A1,D30
31,2,A2,D31
131,2,A2,D131
132,3,A3,D132
133,3,A3,D133
134,3,A3,D134
249,4,A4,D249
1000,10,A10,D1000
\end{filecontents*}

\usepackage{datatool}

\DTLloaddb[autokeys=false]{products}{product.tex}

\newcommand{\printtype}[1]{%
  \par
  \section*{Type #1}
  \DTLforeach*
    [\DTLiseq{\Type}{#1}]% Condition
    {products}% Database
    {\No=No,\Type=Type,\Name=Name,\Description=Description}{%
    \noindent\Name \quad \Description\par
  }% 
}

\begin{document}

Here is some text.

\printtype{1}

Some breaking text here.

\printtype{3}

And then some final text.

\end{document}

El \printtype{<type>}comando se utiliza \DTLforeachpara recorrer la productsbase de datos e imprimir solo los elementos donde es \Typeigual a <type>. Puedes formatear la presentación como quieras.

Respuesta2

Esta es una respuesta basada en gran medida enesta respuesta. El punto principal aquí es comentar lo que debe hacer \pgfplotsinvokeforeachpara recorrer los tipos que desea componer, y no \foreach.

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{product.dat}
No.,Type,Name,Description
1, 1, A1,D1
2, 1, A1,D2
30, 1, A1, D30
31, 2, A2, D31
131,2, A2, D131
132,3,A3,D132
249,4,A4,D249
1.000,10, A10,D1000
\end{filecontents*}
\usepackage{amsmath,amssymb}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}
\begin{document}
\pgfplotstableread[col sep=comma]{product.dat}{\data}
\pgfplotsinvokeforeach{1,3}{
\subsection*{\boldmath$\text{Type}=#1$}
\pgfplotstabletypeset[string type,
row predicate/.code={%
  \pgfplotstablegetelem{##1}{Type}\of{\data}
  \ifnum\pgfplotsretval=#1\relax
  \else\pgfplotstableuserowfalse\fi}
]{\data}
}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada