Hi I am using Oracle Reports Builder 6i.
I would like to know whether we can control the General Layout properties(Page Break Before, Page Protect, etc...) dynamically at run time?
I need this information for repeating frames.
Thanks
Ram
You can't change these parameters dynamically at run time.
However, what you can do is create multiple "versions" of your layout objects, and write PL/SQL triggers that conditionally show and hide each version.
Depending on what you want to do, there's usually a way to get the layout you need - but it can get tricky sometimes.
For example, if you want a particular frame to sometimes have a Page Break Before, but other times not, you might add an additional frame within it that has Page Break Before set to Yes; and put the condition on that frame. Not sure but this might work for you.
Related
I am making a program that sweeps software parameters of a DUT and logs measurements from various instruments while doing so.
To make this program more flexible, I want the user to be able to configure an arbitrary set of instruments (including multiple of the same kind) to log measurements from. Each instrument has different configuration parameters.
What i need is a dynamic UI, where I can add (and remove) Instruments and have a different configuration UI for each instrument.
I made a little sketch of what I have in mind: UI proposal
What I tried so far is to have an Array of a Cluster with a Subpanel in it, but all the Subpanels in the Array show the same VI.
A simple way of doing this is 2 subpanels. One stays on the main screen with your current vi running. When you want to switch vis load the new vi into the off screen subpanel. Move the positions of the subpanels so that the new one is on screen. Unload the old one and allow the new one to start. The old one is now ready for the next vi to run
Instead of a cluster or an array, the basic idea for making something like this work is to have one subpanel which will contain multiple subpanels inside it and populate/position/resize/show/hide them, etc.
See this thread for a discussion and a basic example I posted there - http://forums.ni.com/t5/LabVIEW/Independent-cursors-on-array-of-cluster-of-graphs-or-work-around/m-p/2319700#M728304
(Note - that thread shows a discussion and expansion on the topic. The original simpler example is here - http://forums.ni.com/t5/LabVIEW/User-interface-problem-list-of-clusters/m-p/2311770#M726599 )
While I always liked the idea of this, I never actually needed it for an actual UI, so I don't think I have anything to add beyond this example. Also note that the example is very crude and only meant to demonstrate this concept.
Note that there are two ways of handling the number of panels - have enough to be displayed and control which VIs they show based on the scroll bar or create "enough" subpanels and control their visibility.
I'm using the LoopingSelector to show a series of timestamps. As time progresses, I'd like to update the timestamps in the looping selector.
I have a class that implements the ILoopingSelectorDataSource interface, but I can't figure out how to force the data to reload while the control is showing.
Claus is partially correct, there doesn't seem to be a way to use binding to update the control, but in code behind, calling
LoopingSelector.DataSource = new MyLoopingSelectorDataSource()
// your implementation of the ILoopingSelectorDataSource interface
will cause the control to reload data.
Basically you can't. The control doesn't update the currently rendered controls. You would have to rewrite the control to fit your purpose.
While you can easily make it calculate the time relatively to a given point upon the call to GetNext() or GetPrevious(), updating the elements already on the screen would require a invoke of a kind, or a constant update per second/minute or whatever fast you want them to update.
I have a page in my WP7 app that I build dynamically. I create and add 60 user controls to a grid and it takes around 5 seconds. I need to find a way of speeding this up.
The process is as follows:
Create user control
Add new grid row definition
Set the value of the control row property
Add the control to the grid.Children collection.
It is step 4 that is taking the time. I'm guessing that each time I do this the visual tree is getting re-built.
Is there any way of telling the grid to only re-build the visual tree after I have finished updating the children collection?
Or is there another better way of doing this?
UPDATE: The List Picker control from the WP7 Toolkit was causing the problem. When I changed to one I wrote myself the time taken to display the page on a phone reduced from 25 seconds to 1 second.
The/your aim is to try and reduce the number of times you update the visualtree.
A few suggestions:
Try including (some of) the items in the page by default but just change their visibility depending on what you need.
Build the whole grid in code and add it to the page in one go (rather than a line at a time)
Depending on your content, you could try using a ListBox and alternating the template used for each row to get different content displayed.
The technique which will be best for you will depend on what you're actually adding to the UI. You'll need to test to see what is best for you.
If the UI virtualization (i.e. ListBox) helped, the problem must be in your controls. Templating, bindings, converters, using Xaml instead of C# code, unnecessary Xaml constructs (such as element names), overcomplicated visual tree (e.g. unneeded grids) etc. - those are the things that can degrade the performance.
If you suspect incremental visual tree rebuilds (I don't think so), then simply debug MeasureOverride/ArrangeOverride methods.
I guess this article might give you more tips. I described there how we optimized a similarly complex control - MonthCalendar with 126 sub-controls. Control load time decreased approx. 5x!
I would like to create a custom tool or button in Arcmap that programmatically fills in a number of attributes of selected features for a layer.
To keep things simple, lets say my Arcmap project only has one SDE layer, and I'd like to populate the Date_Created field.
The SDE layer being edited is versioned.
I have some code that partially works, but after the selected records are updated, the layer can no longer draw stating it's in a closed State.
link text
I appreciate any suggestions on how to accomplish this.
Thanks,
Frank
I think that this behavior may be related to management of the edit operations in your script.
Any edit operations that you start must either be stopped (completed) or aborted. If no features have been edited, the edit operation needs to be aborted.
Following on from a question I posted yesterday about GUIs, I have another problem I've been working with. This question related to calculating the bending moment on a beam under different loading conditions.
On the GUI I have developed so far, I have a number of sliders (which now work properly) and a pop-up menu which defines the load case. I would like to be able to select the load case from the pop-up menu and position the loads as appropriate, in order to define each load case in turn. The output that I need is an array defining the load case number (the rows) and a number of loading parameters (the itensity and position of the loads, which are controlled by the sliders).
The problem I am having is that I can produce this array (of the size I need) and define the loading for one load case (by selecting the pop-up menu) using the sliders, but when I change the popup menu again, the array only keeps the loading for the load case selected by the pop-up menu.
Can anyone suggest an approach I can take with (specifically to store the variables from each load case) or an example that illustrates a similar solution to the problem?
The probem may be a bit vague, so please let me know if anything needs clearing up.
Many Thanks,
James
You could use Application Data to store the current loading case and have a application data structure to store the values of each slider for the different loading cases.
In short, you could use the setappdata and getappdata to save and load the data you need. Mathworks has more information here.