Good morning to everybody,
we are facing an issue using the table in FRAMEMAKER 10.
We have a table, composed by 4 columns for the whole widht of the page. The rows number is not established because the first one of them is filled by getting there information from the DB.
To be honest all of them are filled by information retrieved from the DB, but with the first one we face the issue.
The information of the first column is composed by 188 rows ( this number is true for one case, the others have different rows) and when the page finish (bottom of page) the table is not able to break ( more or less at 91th row) and start againg in the next page.
Right now it continues to insert the rows in the un-break table and as you could imagine these rows disappear from the screen continuining somewhere we are not able to see.
It seems to extend ( in invisible way) the length of the page.
I hope the system allows me to configure how I can stop the insert phase at the end of the page and start again in the next one.
Did someone of you already face this kind of problem? If so how did you solve the issue?
Thank you in advance for your replies.
One table cell can't break across pages. It sounds like you're putting many "rows" of data into a single table cell. You should try to divide your data into the table differently.
Usually a table makes rows so that row 1 keeps column 1, 2, 3, and 4 all together. This is to make it easy to read the content and keep the different categories (the columns) together with one example (the row). If the row is so big that it spans many pages, then I wonder if you might be better off using sections in your document instead of a table? (I know, it's rude to suggest that you do something completely different. But without seeing your page, this is what I think!)
Otherwise, you would need to come up with a way to break your 188 rows from the database into separate rows in the FrameMaker table, and somehow make them line up with the data in the other columns. You can do this with table ruling and cell straddling (joining cells together). You can even automate this with ExtendScript, but automating it isn't easy because it requires measuring the page...
Alternatively, it is possible that the table format has a "keep with" setting for all rows. This would also prevent FM from breaking the table when it fills the text frame.
we check the "keep with" tick. it is disabled.
Do you have any other idea or suggestion?
How are you importing the content from the database into FM (tables)?
There is a third-party tool from Datazone, called Miramo, that is designed to work as a database publishing engine with (or without) FM. They have a freebie personal edition that can be run on a desktop system (no server, stand-alone or scripted usage allowed), that can generate well formatted FM files, so you might be able to import the tables ready to go. See www.miramo.com
You catch the problem.
We are putting too many rows into the table cell. Unfortunately cannot do in different way. We are trying to solve but I fear it is impossible. There inn't any hint in FM suggesting how you could break a table and restart the same table in the next page.
Please could you be so kind to better explain the Extendscript sentence yiu wrote in your reply?
Thank you in advance
Imagine how you would do this manually. One way would be to put all 188 data items in the same "cell" -- but as we know that won't work. So you add as many as will fit on the page, then add a new row (which will break to the next page), add as many as will fit, and so on. Now you have many rows for what you want the user to READ as one row. So you use custom table formatting to display lines that LOOK like the row you want, even though the table has more rows in it. If you can do this manually, then you can write an ExtendScript to do it automatically. But the problem is knowing how much data fits on the page... That kind of measurement is difficult in ExtendScript. It can be done, but it's tedious.
Another way to do it would be to make a unique table row for each data item in column 1, and then use lines to make that look like a single row. That would be easier to automate, but it depends on the data in columns 2, 3, and 4 being small enough that is all fits in a single cell. Otherwise, you would see funny line spacing in column 1 as the rows get taller to handle line breaks in column 2, 3, or 4.
A final way to try this would be to not use tables at all. Set up pages with 4 text frames in them, and have the text frames be set up for different "flows". You'll need to read the documentation about text frames and text flows. Anyway, you could put your data into these columns, and find a way to measure where each "row" needs to begin... This gets into measurements again, but it is another way to do it, and you could automate this.
Sorry... I can't think of any more ways to try... I wish there was an easy answer. FrameMaker handles a table cell very much like a miniature "page" -- in the design I don't think table cells were meant to contain such large amounts of content.
When the 188 rows data are being fetched in a row-wise fashion, would it be possible to send a key event "CTRL"+j just after pasting data in each row of FM?. [CTRL+j would add a row and take the cursor to the newly added row]
If that's not possible, Adobe Extendscript too would be of help here too as suggested above. Some sample extendscripts are provided in Samples\ScriptsAndUtilities folder too.
thank you very much for your suggestions. We are trying to slve the issue using the CTRL+j combination.
I'll come back to you when we'll solve the issue.
We cannot use a different software. Due to our agency Policy.
Just so you know, Miramo will augment FM and create FM files, so it works alongside FM to provide (perhaps) a more effective solution. However, if you are not allowed to download any non-vetted third-party software by your organization, then that is a separate issue and I understand and sympathize with your restrictions [It's like being told that you must use a screwdriver as a chisel, since you are not authorized to get a chisel/the correct tool].