Please help me understand the process on how we can achieve this.
I want to restrict the number of records being displayed in the canvas . If there are 1000 records in the datablock, then in the canvas I will restrict it to 100 records. For viewing the remaining 900 records we will have to provide the user with a next / previous button . When they press the next button then the next 100 records should be displayed and previous button the exact reverse.
Is this doable in Oracle Forms (like it is in Oracle Apex)?
If this is doable could anyone please provide a sample link so that I can do research on it. Not finding any good leads. Any assistance is much appreciated. Thanks.
Forms doesn't work in pages (so that you could move from one page of records to another; something like Apex does). All records fetched into the tabular block are there, that's why you have a scrollbar.
Displaying 100 records is a little bit too much; you can't see it on the screen anyway. Consider lower number, e.g. 15 records at a time.
Then, you could create those NEXT and PREVIOUS buttons. Create WHEN-BUTTON-PRESSED triggers on each of them. You'd use :system.cursor_record or :system.trigger_record as they show which record you're in now, and then move 15 records up or down. Something like this:
-- NEXT button:
go_record(:system.cursor_record + 15);
--PREVIOUS button:
go_record(:system.cursor_record - 15);
Related
I've been searching for a few days and doing every word combination I can think of to try to find the answer to my issue. I'm hoping someone can help me.
Before I begin I'd also like to say I'm very new to Access and admittedly not great with it. I'm still learning so this could be a very easy fix or I may have messed up beyond belief.
The issue I'm having is I've setup several page tab on a form and entered all the information for my records. However I cannot get the page tabs to pull up the corresponding records. Instead I have to either search through the records which doesn't always work or I have to arrow to the right record after selecting the tab I want. I'd like it so that when I click the tab it brings up the proper record automatically. If someone can point out where I'm going wrong and how to fix it I would greatly appreciate it. See below for some pics of what I mean.
As you can see in the first image. The tab name "Auto PLUS" doesn't bring up the proper record. instead I have to manually change the record using the arrows at the bottom of the form (see the arrow at the bottom of the image) in order to change the record. I need the record and the tab to match. Any help would be so greatly appreciated.
Thanks in advance for any help!!
-Deke
Assuming your form is bound (if in design mode your fields do NOT say "Unbound" then your form is bound), you simply need to add some VBA code to each tab's OnClick event.
Enter design mode and select the first tab "Claims Other". Open the properties pane, click the event tab, and click the ellipsis at the end of the OnClick line. When prompted, select "Code Builder" and it should launch the Visual Basic Editor.
It will put your cursor automatically in the correct position. Copy/Paste:
DoCmd.GoToRecord acDataForm, Form1, acGoTo, 1
The 1 should correspond to "Claims Other's" proper record in your table. Use the row number, not the ID number to determine what it should be.
Go back to Form View and click on the "Claims Other's" tab. The data should show the corresponding record in your table.
Repeat the steps of adding events to each tab, finding the relevant record in your table, and replacing the 1 from the above code.
Just a quick question, everytime I hit "edit" "add row" it adds the row but not at the bottom of the table, it usually places it like 5-10 rows from the bottom and while it's not a huge deal it's just time consuming to move it and confusing at times because they're random rows all over now. Is their a setting or a certain way to add rows so they just get added to the bottom of the fusion table instead of randomly throughout?
The rows will not be displayed randomly.
They will be displayed based on the order-settings.
When you didn't define a sort-column they will be ordered by their internal rowID, and that's the issue: the rowID's are not consecutive.
So the answer is: No, you can't.
The only workaround would be to add another column with a incrementing Number(and sort by this column), but I wouldn't suggest it.
I have a form that returns multiple rows with a single push button that is displayed at the end of each row. The form allows a user to insert a new row at the end. Whilst a new row is being inserted, I do not want the users to be able to use the push button on any other row other than the current one they are inserting.
I have tried using SET_ITEM_PROPERTY and SET_ITEM_INSTANCE_PROPERTY to disable the other buttons however this just disables the button for all rows including the one I am inserting.
I'm still quite new to Oracle Forms so has anyone any ideas as to how I can solve this problem?
If it matters i'm using Forms 10G.
Thanks.
I have a UI that looks similar to the mail app. A table view along the left with a single column of items. When one of the those items on the left is selected, details about that item are shown on the right.
When some event occurs in my app that requires the data in the left table view to be reloaded, the current selection is lost and then the right detail view and left master view get out of sync.
The way i hoped to solve this problem was, when it was time to reload the table data, I would:
1. Save the current selected item
2. reload the table data
3. Handle a delegate method or notification that let me know when the reloading was done.
4. Re-select the proper item by finding it in the new list of items in the table.
Unfortunately I cannot find any way to determine when the table is done reloading. Is there a. any way to figure this out, or b. a more elegant solution to this problem?
thanks.
update: In case my problem was unclear, imagine you are in the mail app and you have some message selected. That summary cell is shown as selected on the left, and the details of the message are shown on the right. Suppose new mail comes in which appear as new cells at the top of the table. How is the message you are currently viewing preserved, and not de-selected?
reloadData is something of a sledgehammer. 10.7 offers a better solution.
Instead of using reloadData, when you have new rows to add, use insertRowsAtIndexes:withAnimation: . When you have rows to delete, use removeRowsAtIndexes:withAnimation: . And, of course, if an existing row has changed, there's reloadDataForRowIndexes:columnIndexes.
These should remember the selection for you (at least, the equivalents on iOS do).
If you can't target 10.7, some of the other suggestions will probably help out. noteNumberOfRowsChanged may also be helpful but I've not actually used it.
You can save selection on tableView(_:shouldSelectRow:) then select the row right after you create the cell in tableView(_:viewFor:row:) using selectRowIndexes(_:byExtendingSelection:).
It is pretty reliable no matter how / when / how many times you reload the table.
I currently have a detailed report to design:
A report which has different header-footer-detail for the first and rest of the pages. I tried to overcome the challange by using 2 Master Pages (not quite achieved anything yet) but I am stuck at the point which row count of 1st and rest of the pages... 1st page has 20 rest of the pages have 35 rows. Namely the question is:
"How can I set different pagebreak intervals for the table for each page?"
PS: BIRT version: 3.7
Edit: I've tried to create a group on row number and put a filter on row number to maintain flow between 2 different tables but no luck. (It didnt make real sense to put row filter but tried anyway :))
What you may need to do in the body section of your report is create a grid of one column and two rows. In the advanced properties for the upper cell, look under the section property for the Master Page setting, set that value equal to the name of your first master page. Place your report contents in that cell and set the master page references to your first master page as well. Repeat this for the second cell and references to the second page. Your table(s) have an advanced property for page break interval that you can adjust to control how many rows go on a page.
However if you want your table data to flow continuously from the first page into the second page and onward, I am not sure if this is possible but will update my answer if I find a way.