Jan,
I have a project that has 72 cards with checkboxes on about 65 of the cards. With my current setup of using printing cards, all of the checkboxes are printed regardless of whether the checkboxes are checked or not checked.
I remember some time last year you mentioned that it would be possible to use Quartam Reports Professional Edition to print only the checkboxes that are checked. Since some of the user's choices would result in anywhere from 7 to 13 cards being printed with checkboxes on them, this possibility of using Quartam Reports Professional seems to be a possible option to reduce printing the number of cards.
I know that you cannot actually print the checkboxes unless you used special graphics to represent the checkboxes. But I am more interested in just printing the content of the checkboxes that are checked - not the checkboxes. I have used Quartam Reports Professional on one of my projects before but never in the manner described above. So, how can I do this with Quartam Reports Professional?
Printing content of checkboxes that are checked
-
- Site Admin
- Posts:110
- Joined:Sun Jul 18, 2010 5:21 pm
- Location:Aalst, Belgium
- Contact:
Re: Printing content of checkboxes that are checked
Hi Charles,
I can think of several ways to print this using Quartam Reports - but it all depends on what exactly your goal is.
One possibility is to add a virtual property 'HilitedCheckboxLabels' to your stack script that collects a return or comma-separated list of the labels of the hilited checkboxes. Something along the lines of:
Then you would have a stretching data field in the detail band of your layout, with the following expression:
Finally your printing script would be something similar to this:
When you click the button, the report will print the labels of all the hilited checkboxes, one card at a time. You don't even need the Professional Edition for the above scenario. Note that this is just a first idea - if it doesn't do the trick for you, please provide more information so that I can try and suggest a better solution.
Cheers,
Jan Schenkel.
I can think of several ways to print this using Quartam Reports - but it all depends on what exactly your goal is.
One possibility is to add a virtual property 'HilitedCheckboxLabels' to your stack script that collects a return or comma-separated list of the labels of the hilited checkboxes. Something along the lines of:
Code: Select all
getProp HilitedCheckboxLabels
local tCount, tIndex, tButton, tLabels
put the number of buttons of the target into tCount
repeat with tIndex = 1 to tCount
put the long id of button tIndex of the target into tButton
if the style of tButton is "checkbox" and the hilite of tButton is true then
put the label of tButton & return after tLabels
end if
end repeat
-- make sure to strip off the trailing return
return char 1 to -2 of tLabels
end HilitedCheckboxLabels
Code: Select all
the HilitedCheckboxLabels of this card
Code: Select all
on mouseUp
local tLayoutPath, tStackName, tPreviewFlag, tCardsRange
put "the path to my layout.qrl" into tLayoutPath
put the short name of this stack into tStackName
put true into tPreviewFlag
put "all" into tCardsRange
qrtReports_PrintReportForStack tLayoutPath, tStackName, tPreviewFlag, tCardsRange
end mouseUp
Cheers,
Jan Schenkel.
Quartam Developer Tools for LiveCode
http://www.quartam.com
http://www.quartam.com
-
- Posts:4
- Joined:Thu Aug 12, 2010 9:32 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
Re: Printing content of checkboxes that are checked
Hi Jan,
Thanks for responding to my request! I would like to use your virtual property idea but there is something that may keep this from working. Some of the checkbox labels were not long enough to hold the content that I needed. Consequently, some of the checkboxes have label fields that continues with the content below in the label field. Any other ideas?
By the way, I would have responded to your suggestions but I did not have any indication that you had responded to my request.
Thanks for responding to my request! I would like to use your virtual property idea but there is something that may keep this from working. Some of the checkbox labels were not long enough to hold the content that I needed. Consequently, some of the checkboxes have label fields that continues with the content below in the label field. Any other ideas?
By the way, I would have responded to your suggestions but I did not have any indication that you had responded to my request.
-
- Site Admin
- Posts:110
- Joined:Sun Jul 18, 2010 5:21 pm
- Location:Aalst, Belgium
- Contact:
Re: Printing content of checkboxes that are checked
Hi Charles,
You actually can give a checkbox a multi-line label. Just create a new stack, drop a checkbox on the card, select the checkbox and type the following into the message box: Unfortunately, the checkbox itself is still painted in the vertical middle, so if you want your checkbox next to the first line of text, this is obviously not an option.
You could also have another virtual property to fetch the label from your checkbox: and we slightly change the other virtual property: Then you have to set the longLabel custom property of the checkbox button to the complete label as you want it printed. The virtual property above will fallback to the label property for all other checkboxes; and even to the short name of the checkbox if you didn't explicitly assign a label to the control.
If neither of these approaches suit you, you'll need to find a way to 'link' these label fields to the checkbox. The first thing that comes to mind, is to adopt a naming scheme: if the checkbox name is "ABC" your extended label would be "ABC_XLabel" - for that solution, we can extend the EffectiveLabel virtual property to: This combines the best of all approaches and gives you plenty of flexibility to adopt the right solution.
As for the lack of warning, I thought this forum software acted the same as on the RunRev.com forums - though I think I saw an RSS module that I could install, if it would help?
HTH,
Jan Schenkel.
You actually can give a checkbox a multi-line label. Just create a new stack, drop a checkbox on the card, select the checkbox and type the following into the message box:
Code: Select all
set the label of the selectedObject to "Line 1" & return & "Line 2"
You could also have another virtual property to fetch the label from your checkbox:
Code: Select all
getProp EffectiveLabel
local tLabel
put the longLabel of the target into tLabel
if tLabel is empty then
put the label of the target into tLabel
end if
if tLabel is empty then
put the short name of the target into tLabel
end if
return tLabel
end EffectiveLabel
Code: Select all
getProp HilitedCheckboxLabels
local tCount, tIndex, tButton, tLabels
put the number of buttons of the target into tCount
repeat with tIndex = 1 to tCount
put the long id of button tIndex of the target into tButton
if the style of tButton is "checkbox" and the hilite of tButton is true then
put the EffectiveLabel of tButton & return after tLabels
end if
end repeat
-- make sure to strip off the trailing return
return char 1 to -2 of tLabels
end HilitedCheckboxLabels
If neither of these approaches suit you, you'll need to find a way to 'link' these label fields to the checkbox. The first thing that comes to mind, is to adopt a naming scheme: if the checkbox name is "ABC" your extended label would be "ABC_XLabel" - for that solution, we can extend the EffectiveLabel virtual property to:
Code: Select all
getProp EffectiveLabel
local tLabel, tFieldLongName
-- first try the accompanying extended label field
put the long name of the target into tFieldLongName
put "field" into word 1 of tFieldLongName
put "_XLabel" before char -1 of word 2 of tFieldLongName
if there is a tFieldLongName then
put the text of tFieldLongName into tLabel
end if
-- fallback to the custom property
if tLabel is empty then
put the longLabel of the target into tLabel
end if
-- fallback to the regular label property
if tLabel is empty then
put the label of the target into tLabel
end if
-- fallback to the short name property
if tLabel is empty then
put the short name of the target into tLabel
end if
return tLabel
end EffectiveLabel
As for the lack of warning, I thought this forum software acted the same as on the RunRev.com forums - though I think I saw an RSS module that I could install, if it would help?
HTH,
Jan Schenkel.
Quartam Developer Tools for LiveCode
http://www.quartam.com
http://www.quartam.com
-
- Posts:4
- Joined:Thu Aug 12, 2010 9:32 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
Re: Printing content of checkboxes that are checked
Jan,
I finally got to my project, which I had to "shelved" because of some other projects that I was working on. I tried solutions 2 and 3 with one checkbox on a single card. I could get it working. Is there anything you could provide a checkbox on a single card showing this script should work?
I finally got to my project, which I had to "shelved" because of some other projects that I was working on. I tried solutions 2 and 3 with one checkbox on a single card. I could get it working. Is there anything you could provide a checkbox on a single card showing this script should work?
-
- Site Admin
- Posts:110
- Joined:Sun Jul 18, 2010 5:21 pm
- Location:Aalst, Belgium
- Contact:
Re: Printing content of checkboxes that are checked
Hi Charles,
I've attached a simple stack to demonstrate what I was describing earlier with regards to the 'virtual' custom properties.
HTH,
Jan Schenkel.
I've attached a simple stack to demonstrate what I was describing earlier with regards to the 'virtual' custom properties.
HTH,
Jan Schenkel.
- Attachments
-
- HilitedCheckboxesDemo.livecode.zip
- HilitedCheckbox labels demonstration stack (zipped)
- (1.75KiB)Downloaded 1939 times
Quartam Developer Tools for LiveCode
http://www.quartam.com
http://www.quartam.com