When DTLforeach is used with a condition, DTLiflastrow does not work
In the following code, my dataset is {1,2,3,4}.
With no filter, DTLiffirstrow will return true at "1" and DTLiflastrow will return true at "4".
This is what I expect from these functions.
When I filter the dataset to {2,3},
DTLiffisrtrow returns true at "2". Perfect.
But DTLiflastrow is always false. I would expect it to return true for the value "3".
documentclass{article}
usepackage{datatool}
DTLnewdb{table}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{1}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{2}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{3}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{4}
begin{document}
DTLforeach*%
[DTLisclosedbetween{COne}{2}{3}]%
{table}%
{COne=C1}%
{%
COne%
DTLiffirstrow{FIRST}{}%
DTLiflastrow{LAST}{}%
\%
}%
end{document}
How could I detect the last row of a filtered set of data?
datatool
add a comment |
In the following code, my dataset is {1,2,3,4}.
With no filter, DTLiffirstrow will return true at "1" and DTLiflastrow will return true at "4".
This is what I expect from these functions.
When I filter the dataset to {2,3},
DTLiffisrtrow returns true at "2". Perfect.
But DTLiflastrow is always false. I would expect it to return true for the value "3".
documentclass{article}
usepackage{datatool}
DTLnewdb{table}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{1}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{2}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{3}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{4}
begin{document}
DTLforeach*%
[DTLisclosedbetween{COne}{2}{3}]%
{table}%
{COne=C1}%
{%
COne%
DTLiffirstrow{FIRST}{}%
DTLiflastrow{LAST}{}%
\%
}%
end{document}
How could I detect the last row of a filtered set of data?
datatool
There's no way fordatatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered.DTLiflastrow
can only compare the current row index with the total number of rows.)
– Nicola Talbot
yesterday
add a comment |
In the following code, my dataset is {1,2,3,4}.
With no filter, DTLiffirstrow will return true at "1" and DTLiflastrow will return true at "4".
This is what I expect from these functions.
When I filter the dataset to {2,3},
DTLiffisrtrow returns true at "2". Perfect.
But DTLiflastrow is always false. I would expect it to return true for the value "3".
documentclass{article}
usepackage{datatool}
DTLnewdb{table}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{1}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{2}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{3}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{4}
begin{document}
DTLforeach*%
[DTLisclosedbetween{COne}{2}{3}]%
{table}%
{COne=C1}%
{%
COne%
DTLiffirstrow{FIRST}{}%
DTLiflastrow{LAST}{}%
\%
}%
end{document}
How could I detect the last row of a filtered set of data?
datatool
In the following code, my dataset is {1,2,3,4}.
With no filter, DTLiffirstrow will return true at "1" and DTLiflastrow will return true at "4".
This is what I expect from these functions.
When I filter the dataset to {2,3},
DTLiffisrtrow returns true at "2". Perfect.
But DTLiflastrow is always false. I would expect it to return true for the value "3".
documentclass{article}
usepackage{datatool}
DTLnewdb{table}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{1}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{2}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{3}
DTLnewrow{table}
DTLnewdbentry{table}{C1}{4}
begin{document}
DTLforeach*%
[DTLisclosedbetween{COne}{2}{3}]%
{table}%
{COne=C1}%
{%
COne%
DTLiffirstrow{FIRST}{}%
DTLiflastrow{LAST}{}%
\%
}%
end{document}
How could I detect the last row of a filtered set of data?
datatool
datatool
asked Mar 22 at 20:43
Joseph MarieJoseph Marie
1588
1588
There's no way fordatatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered.DTLiflastrow
can only compare the current row index with the total number of rows.)
– Nicola Talbot
yesterday
add a comment |
There's no way fordatatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered.DTLiflastrow
can only compare the current row index with the total number of rows.)
– Nicola Talbot
yesterday
There's no way for
datatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered. DTLiflastrow
can only compare the current row index with the total number of rows.)– Nicola Talbot
yesterday
There's no way for
datatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered. DTLiflastrow
can only compare the current row index with the total number of rows.)– Nicola Talbot
yesterday
add a comment |
1 Answer
1
active
oldest
votes
This is not a bug, it's a feature !
See the doc (datatool-code.pdf, around page 199):
DTLiflastrow{〈true part 〉}{〈false part 〉}
Checks if the current row is the last row of the database. It doesn’t
take the condition (the optional argument of DTLforeach) into
account, so its possible it may never do 〈true part〉, as the last row
of the database may not meet the condition.
It is therefore not very
useful and is confusing since it behaves differently to DTLiffirstrow
which does take the condition ...
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f480983%2fwhen-dtlforeach-is-used-with-a-condition-dtliflastrow-does-not-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This is not a bug, it's a feature !
See the doc (datatool-code.pdf, around page 199):
DTLiflastrow{〈true part 〉}{〈false part 〉}
Checks if the current row is the last row of the database. It doesn’t
take the condition (the optional argument of DTLforeach) into
account, so its possible it may never do 〈true part〉, as the last row
of the database may not meet the condition.
It is therefore not very
useful and is confusing since it behaves differently to DTLiffirstrow
which does take the condition ...
add a comment |
This is not a bug, it's a feature !
See the doc (datatool-code.pdf, around page 199):
DTLiflastrow{〈true part 〉}{〈false part 〉}
Checks if the current row is the last row of the database. It doesn’t
take the condition (the optional argument of DTLforeach) into
account, so its possible it may never do 〈true part〉, as the last row
of the database may not meet the condition.
It is therefore not very
useful and is confusing since it behaves differently to DTLiffirstrow
which does take the condition ...
add a comment |
This is not a bug, it's a feature !
See the doc (datatool-code.pdf, around page 199):
DTLiflastrow{〈true part 〉}{〈false part 〉}
Checks if the current row is the last row of the database. It doesn’t
take the condition (the optional argument of DTLforeach) into
account, so its possible it may never do 〈true part〉, as the last row
of the database may not meet the condition.
It is therefore not very
useful and is confusing since it behaves differently to DTLiffirstrow
which does take the condition ...
This is not a bug, it's a feature !
See the doc (datatool-code.pdf, around page 199):
DTLiflastrow{〈true part 〉}{〈false part 〉}
Checks if the current row is the last row of the database. It doesn’t
take the condition (the optional argument of DTLforeach) into
account, so its possible it may never do 〈true part〉, as the last row
of the database may not meet the condition.
It is therefore not very
useful and is confusing since it behaves differently to DTLiffirstrow
which does take the condition ...
answered yesterday
Joseph MarieJoseph Marie
1588
1588
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f480983%2fwhen-dtlforeach-is-used-with-a-condition-dtliflastrow-does-not-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
There's no way for
datatool
to know it's on the last filtered row on a single pass. It would require two passes: first to find out which is the last row of the filtered set and the second to compare the current row with that value. (datatool
knows how many rows the database has but the last row may be filtered.DTLiflastrow
can only compare the current row index with the total number of rows.)– Nicola Talbot
yesterday