Print a form using FastReport VCL 5 - delphi

I am testing out FastReport VCL 5 as a replacement for our application's extremely old reporting tool. One of the things we do a lot of is printing of forms to laser printers and I am trying to figure out how to print the form elements. For example, we have an invoice that has some borders around the edge of the page, company name at the top, watermark logo image in the middle, dividing lines, etc. Inside these form elements are the standard invoice headings (invoice #, date, account name, etc) and detail items (specific charges, comments, etc). I cannot figure out how to get the form elements to print behind the master and detail bands? If I use the page heading band, it has to print before (not behind) the master data band.
Here is a sample of what I'm trying to do:
The shaded blue area is the invoice header (the master data band). The shaded green area is the invoice details (the detail band). The shaded yellow area is the totals band. The rest of the report (the frames, lines, company header, etc.) are all parts of the form.
Now, the trick to this is that if this invoice spills on to multiple pages, the invoice header has to reprint and the details have to stay inside the box that they are in (between the 2nd and the bottom horizontal lines). I tried the overlay but there does not seem to be a way to restrict the detail band between two y coords.

Using #bummi's suggestions, I moved the header information in to a Page Header band (instead of a Master Data band) and the invoice items then went in to the Master Data band. I then added a Page Footer band to keep the invoice detail from overwriting the bottom of the form. Finally, all of the form stuff I put in to the Overlay band. To create the watermark, I created a very light version of the image and then just put that as a picture in to the Overlay band.

Related

how to show YOY metric values as text in a tableau viz

please click here for the image
2 questions to the Tableau Sanseis:
The given percentages/numbers in the attachment (shown by parentheses), all belong to the YOY variance and are meant to be displayed in front of the orange (2021) bars
a) Both the numbers/percentages are not showing in one line and current display gives the impression to a user that %ages belong to the blue bars and number to the orange colored bars.
- How to show both in front of orange bars ?
b) Beats me as to why some of the category bars (highlighted with red arrows) don't display any value (no %ages or numbers)
Thanks in advance
Probably "between" your two measure there's some CR, so you see one up and the other down, causing to display just some values and not all.
Something like this:
Go into the Text Mark of your worksheet, and try to dispay your values in just one line with no CR, and you should get something like this:
Sometimes, due to font size and cardinality of your data, some label could be missing just because Tableau tries to optimize the rendering, but you can also check the last option of the Label Mark selecting "Allow Labels to overlap other marks".

What TeeChart Tool can I use to Interactively select points from a FastLine Graph

While using Delphi Seattle 10 and Steema TeeChart Pro VCL FMX 2016.18, I am looking to Highlight a Selection of a Line Graph (multiple series) in the way that Zooming allows / makes a square around a highlighted selection of a Line Graph to indicate which part of it to zoom into (as long as the onmousedown action is in progress).
The purpose of this would be to allow the selection to remain highlighted while the mouse is no longer being clicked, to potentially "Delete" the highlighted Data points. All I need this for is to obtain the (X0 Y0 X1 Y1) values to possibly obtain the CalcPosPoint(X) and remove all the points inside. The data is currently obtained through a Record Struct (Memory Mapped) file, and it will there for be used to set/check for a property "deleted" to indicate on the next redraw of the graph which rows to completely ignore and which to continue printing.
I hope to be able to do this (select from 1 chart), and have it simultaneously draw on multiple graphs. I have tried to look for an example of this feature through the use of TSelectorTool (FMXTee). One of the pages I found referring to such a tool is Interactive data point selection as well as Multiple selections with Selector Tool
And my second question has to do with TeeCharts directly. Where would I find fmx240.bpl as TeeChart_Pro_Firemonkey_Demo.exe requires this file in order to run? I did manage to copy vcl240.bpl from "Embarcadero\Studio\18.0\bin" and put it into "Embarcadero\Studio\17.0\bin"
[Edited]
I have managed to capture / create a sample code (MVCE) from which I can now select a portion and create a square around a particular sample of graph lines.
The control graph right now is the bottom graph (Chart5). If anyone is interested in seeing the code, I have put up a pastebin sample.
PasteBin Sample Code
And a TeeCharts.tar.gz is accessible to anyone who wishes to see a sample of the code, as well as the data sample.
filetolink.com Source Files
I no longer feel the need for mathematical equation to differentiate the top graphs from the bottom (because the bottom axes are automatic where as the top are defined). I intend to only use the space which is adherent to the visible space, and do not intend to extend in either direction (left or right). That means at this point the size of the graph does not matter, because once I over populate the charts above, the position in the bottom graph would become irrelevant, and therefor I do not intend to use the bottom chart.
The next step is to save the positions of the boxes so that they can reappear when the graph is shift from left (past data) to the right (live data). And then uses the buttons above to make the appropriate action to the graphs.
I would like to know what way would be the most sufficient way to record the positions of the rectangles, so when the chart is shifted (via the ScrollBar1), the rectangles are moving with the direction of the scrollbar. But I'm sure I can achieve that.
I think I have found a solution. The red squares are only prevalent for the visual aspect, they can be drawn on, I don't need to do anything special with each chart, as I already know what the X0..Y1 parameters are, they are known from the initial chart. The problem h/e has to do with the initial chart. As long as the screens are all full, I can zoom in correctly w/ alignment with on all the charts (ZoomRect/Rectf(X0..Y1))
But what kind of equation would it take to adjust the charts that are not in the same zoom / max / min when the Chart5.Axes.Bottom.Automatic = True?
From there I just simply have to disable the immediate zoom feature, and allow buttons to become functional, to decide what the next course of action would be.

Split large page into multiple A4 pages

I am printing some custom drawn charts on a fast Reports 4 databand.
The band has one text component and one picture component which I manipulate in the OnBeforePrint event to draw my charts using its canvas.
The problem is that the width of the charts may change drastically and go far beyond the page width and scaling/streching the charts to fit the page limits is not an option for the user.
I tried to make the page width grow to accommodate the graphics and it worked very well while visualizing, but I cannot print it since the user's printer only accepts A4 paper size.
So how can I split the report in smaller A4 pieces like the following image?
PS: the first image is the actual report output and the second one is the desired result.

When programatically creating a report, how can I scale it so that all data fits?

Description of Application:
I have an application that allows a user to output a report to a document. The data that is written to the document is in the form of a table. The number of columns in the table and the width of the strings contained in each cell in the table are unknown until runtime (it depends on what query the user runs, what they want to see in the report etc.).
I'm using Delphi XE and Gnostice's eDocEngine to create a PDF document, and then creating a table in the document and writing the report data into it.
Problem:
The problem that I'm having is that you can only write a certain number of columns (6 or 7) into the document before they disappear off the right hand side of the document. It isn't unknown for a user to produce a report with 30 or 40 columns in the table (as they correspond to fields in a database, which they run a query over), so I need to be able to get the table to fit entirely into the document, no matter how many columns it contains.
As a PDF can be zoomed, I suppose I could shrink the font size and column widths down and fit everything in that way, as the user could then zoom in and scroll around the table using their PDF reader. What I need to know is:
Is there a better way of getting the entire table to fit onto a page?
If shrinking/zooming is the best/only way of doing this, what is the most efficient way of ensuring that everything fits without making the document look strange (i.e. the table should ideally stretch across the page, rather than be bunched up to the left hand side because of some random scaling algorithm).
Edit
I've just done some more digging around and I've found "inputXRes" and "inputYRes" properties that change the scale of the canvas in the document, which looks promising, but I can't get it to work properly at the moment. Can anyone shed any light on how those properties are used? The text itself is scaling, but the size of the table stays the same, meaning that I've now got a tiny piece of text in the middle of a huge table cell, and the table is still only displaying 7 columns in the report.
Don't mess with scaling and font size.
Your customers will use PDF Reader and there are some options that will help to read the informations e.g. 1:1. But when you change the scaling or font size you cannot read the information, because it is too small.
Get a font size that fits perfect the needs of your customers and extend the page size to fit the table size.
With PDF Reader your customers will have the choice to view and print (shrink to fit) as they like and which paper size their print can handle.
BTW:
If you change the resolution and draw a line with a length of 2 inch on the canvas it will be 2 inch long, but a text with font size 12 (pixels) will grow or shrink.

How to create a .NET/MVC gridview with drag-and-drop images that swap with each other?

I'm tasked with creating a website application that resembles a POS (Point-of-Sale) system's editing suite, which shows a grid of images with a fixed number of rows/columns (8X4 for 40 total squares) that show (food) menu items. For example, row/column 1/1 might show an icon for "Combo Meal #1" and row/column 1/2 might show "Combo Meal #2" etc. The POS system allows users to drag one of the icons from a grid location onto another, and then the two of them swap. I.e., if you dragged the icon for Combo Meal #1 onto Combo Meal #2, then they would trade places in the gridview.
Nothing on Stack seems to fit this exact case, as I'd like to use .NET MVC if possible; I also cannot find anything in the Telerik tools that are a ready-fit solution. These two links are the closest that I've seen:
http://jqueryui.com/demos/draggable/#option-refreshPositions
http://www.redips.net/my/preview/REDIPS_drag/
...but they are only partial solutions.
Does anyone know of a tool that actually provides for this behavior? Or have any insight into how I can do this myself? (I'm still going through the learning curve on MVC, etc.)
I'm not familiar with Telerik, but as you posted jQuery, does this jQuery UI Sortable example not work?

Resources