Custom controls or Xcontrols?
I would like to create custom controls that a user can drag-and-drop from the controls palette. The user will import an image showing pipelines and then drag-and-drop valves on the pipelines. I want to create these valve controls so that you can easily set their timing or connect them to other valves to have an identical, inverse or delayed response.
Would it be more appropriate to use Xcontrols than custom controls for this application?
Thanks,
Suretha
Suretha wrote:
The user wil not necessarily be a developer, no.
My idea is to create a basic valve with different attributes, for instance it's timing can be linked to another valve, but then you can specify if it should be identical, inverse or a delayed version of the other valve's timing sequence.
This sounds like intelligence to me, so I assume an Xcontrol will be necessary?
This is starting to shape up as a "control on the Fly" Challenge. But I'm not going ther yet.
XControls are great if you as a developer have same functionality you want to include in more than one app. They wrap-up all of the functionality you associate with that control. You (as a developer) just drop another one in a new app and the functionlaity comses along for the ride. In my experience this means I code up the function I want in an app (done coding if I don't go to XControl) and then start the work of converting to work as an XControl.
If you can put an upper limit on the number of objects you will present on the screen at any one time you can;
Create a cluster with the max number of controls you need and hide what you are not using at the time.
Do the same as above with hidden controls.
If you can let the GUI NOT look like the widget you are testing then arrays are useful.
If all of the above leaves you lacking I'll outline what I went through to do my last "Controls on the Fly" app.
1) Get very familiar with the LV Picture control. If allows you to draw whatever you want and offers mouse down/up move, enter and leave events. The picture control will be used to render your objects.
2) Get familiar with LVOOP. I used LVOOP because many of the routings of mouse clicks, possitioning, rendering, etc are common to all of the object on the screen. Code up this functionality in a parent class so the childeren can inherit this functionality.
3) Code up an application that operates in two modes (optional but it makes design easier) "Desgn mode" and "Operate". In Design all the user to layout the GUI but do not implment any functionality beyond Deisgn work. The design when loaded in Operate mode should establish all nessesary communications and use the events captured from the Picture control to invoke the methods required for each class of gizmo on your widget.
There is a LOT of work that goes into a "Controls on the Fly" app. If the work I outlined above "bugs" you. It should.
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction
Similar Messages
-
Property binding between custom control and its aggregations
Hi,
I have a custom control with some properties, e.g., visible, and I would like to bind these properties to its aggregated controls without losing the two-way binding functionality. For example, imagine the following control:
sap.ui.core.Control.extend('dev.view.control.MyControl', {
metadata: {
properties: {
'visible': {type: 'boolean', defaultValue: false},
aggregations : {
_innerTable : {type : 'sap.m.Table', multiple : false, visibility: 'hidden'}
So in this example, I would like to bind the "visible" property of the _innerTable to the "visible" property of MyControl without losing two-way binding. That means that I do not want to read the "visible" property once in a constructor or so and set it on the inner table. Instead I want _innerTable to react on changes of the "visible" property of MyControl so that I can bind it, for example, with "visible={/model/visible}" on an instance of MyControl and _innerTable changes when the model changes.
Does anyone know if such a "piping" or "chaining" of properties is possible and how it would be done?It's close to my case, but you pass the label to your custom control from outside, where you also perform the data binding. In this case, you know which path should be bound to the label property.
In my case, the control is hidden inside my control, so I do not know which path from the model should be bound to the inner control. I want to somehow connect the property of my control with the property of the inner control.
So taking part of your example, the control would look like:
sap.ui.core.Control.extend('xcontrol', {
metadata: {
properties: {
'visible': {type: 'boolean', defaultValue: true}
aggregations : {
_header : {type : 'sap.m.Label', multiple : false, visibility: 'hidden'}
init: function() {
this.setAggregation('_header', new sap.m.Label({
visible: <????>
renderer: function(oRm, oControl) {
oRm.write("<div");
oRm.writeControlData(oControl);
var header = oControl.getAggregation('_header');
if (header) {
oRm.renderControl(header);
oRm.write('</div>');
At point <????> I want to somehow bind the visible attribute of the label to the visible property of xcontrol without losing the two-way binding, i.e., the label should react on changes of the visible property just like xcontrol would. -
What tool do I use to make Custom Controls and vi's from scratch
Ciphertech wrote:
What tool do I use to make Custom Controls and vi's from scratch
The sticky point is "from scratch". This is not fully possible!
Using the control editor, you always start with an existing control, which you then modify by changing cosmetic properties such as size, arrangement, color, decals, etc. You cannot start from scratch, but you can typically come close to your ideas by starting with an existing control that has all the features you want.
More here: Creating Custom Controls, Indicators, and Type Definitions
For even more complex tasks, you can make an XControl. This is basically a control that can consist of as many controls and indicators as you like, can have any datatype, and contains complex code and logic.
More here: Using XControls (There is even a tutorial)
Good luck!
Message Edited by altenbach on 09-07-2008 10:15 AM
LabVIEW Champion . Do more with less code and in less time . -
Issue in Custom Control UI element
Hi there,
I have created 2 custom controls(SAP mobile 7.1), one for rendering images(actually map images) and another for capturing user's signature. Both are integrated into the main application and works fine when alone. But when present together, certainly on different screens in the main app, still it works but with rendering problems. Say when navigating from the screen that displays the map custom control to the screen that has the signature capuring custom control, the map image is still getting displayed over the signature custom control view.
I wonder , if the problem is with disposing of the custom control. Can anyone suggest how to do that. Or something else has to be done?
Regards,
AravindHopefully someone more knowledgeable about custom controls \ SWT can add some input
I do know disposing the SWT controls is important but not sure if it would solve your problem
from our application that uses a few simple custom controls together, we definitely needed to use dispose or it would cause memory consumption issues and slow performance
within the constructor
[Text object].addDisposeListener(this);
method to dispose color and fonts used
public void widgetDisposed(DisposeEvent event)
font.dispose();
amber.dispose(); -
Team Foundation Server 2013 Refresh button not refreshing Custom Control values in TFS Templates
Hi all,
We have recently migrated from Team Foundation Server 2010 to Team Foundation Server 2013 Update 2. In TFS 2013 template design we found the refresh form control (inbuilt control of TFS) which is unable to refresh the custom control values that is built
by us. Is there any way that we can programatically modify to enable the refresh button work with custom control.
Please find below screenshot link for reference.
http://postimg.org/image/z4mo3t8r9/
SaranRamHi SaranRam,
The refresh button is there to allow the data that populated the work item to be refreshed. The data that you want refreshed is part of the rendering of the form and would only be refreshed when the browser refreshes. Refer to MrHinsh's reply in this
page.
Best regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
OOP ALV report custom control performance problem
HI
how to write OOP ALV report without custom control.. Actually with custom control which taking long time... and time out happens for huge selection of data..
Regards
Roops.timeout is not an alv problem. If you try to display a "huge" amount of data, any display technology will fail. Even sap programs fail, their wise solution is to ask user to restrict data to be displayed. Or reduce database selection time, or display amount. Or propose the user to download data as a spool, or output to a file on server.
Otherwise, read some advices about how to handle timeout in [Note 25528 - Parameter rdisp/max_wprun_time|http://service.sap.com/sap/support/notes/25528].
About your question, if you still want to try, look at [example code with alv class cl_salv_table for simple display|http://help.sap.com/saphelp_nw2004s/helpdata/en/f9/1ab54099de3726e10000000a1550b0/frameset.htm] -
Hi all
I would like to create a customized button as a master so that if I change the look of the master all other buttons will change too.
I have done this with a custom control as a "strict type def" otherwise the look will not change BUT If I do this as a strict type def I cannot change the Boolean text anymore which should be different on every button.
How can I create a master control of a button where the look will be applied to all others but not the Boolean text?
Stay Hungry, Stay Foolish
Solved!
Go to Solution.Steve Chandler wrote:
I don't think you can do that. I just looked and as I suspected the Boolean text property is read only for strict typedefs so you cannot use property nodes to change the text.
As a workaround just make it a typedef. When you want to change the look open the typedef and make it strict, make your changes, then make it non strict again. You will have to update the Boolean text again for all instances. Kind of a pain. Maybe this is something for the idea exchange.
Kudos for being sneaky.
I like these creative work-arounds!
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
How do I find the EventID of an event in a custom control?
Hi all,
I have a custom control created in VB .NET that I have embedded into a SAP screen using a wrapper class as described in Thomas Jungs example: <a href="/people/thomas.jung3/blog/2004/09/01/using-net-windows-controls-in-the-abap-control-framework .Net Windows Controls in the ABAP Control Framework</a>
My problem is that I cannot get the wrapper class to react to any events raised by the custom control!
I do not know how to find what the EventID is of an event so that I can register it in the class - do you know how to find this EventID? Or even if this is the problem?
Tx.
NIs there any way to find the image dpi in a free or low cost program?
-
How to limit the number of rows in the Custom Control box
Hi All,
In my Module pool screen I have a Custom Control box for providing some free text as input. Now, there is no limit in the number of rows allowed for this box.
But, the requirement is, it should have the maximum number of rows = 99. and each row should have maximum length = 60 characters.
User should not be allowed to enter more than 60 characters per row and more than 99 rows.
Could you please let me know how to do this..? Are there any methods available which controls the maximum number of rows and maximum length per row..?
Please help me in resolving the issue. Thanks in advance.
Thanks & Regards,
Paddu.By "Custom Control Box", do you mean a Custom Container or a Table Control?
Anyway, I suggest you to use a table control (not a custom container as your requirement seems to be very precise on that point, maybe ask your client twice to make sure). Look at the examples of table controls in ABAPDOCU transaction. -
I Just started using LV touch Panel module with an NI TPC-2106.
I have two differenct problems:
1) I was planning on using the "Meter" control quite a bit. I can set up the meter exactly how I like on the host PC, but on the touch Panel computer it seems to ignore my adjustments, mainly the start and end of the scale - i.e. I would like control to run from 0 to 360 with 0 straight up, using the entire circle. However, on the Touch panel computer it always puts 0 at about 7 o'clock and 360 at about 5 o'clock. I have also tried adding markers to no avail.
2) I am communicating with a compact fieldpoint controller. I can creat a shared variable that is a simple double with no problems. However, I have some shared variables that use a custom control for the variable type - bascially a cluster with a couble doubles, a time stamp, and an enumeration. It lets me drag the shared variable into my diagram, but it seems to ignore it when I run it.Ipshita_C,
- I am using LV 8.6.1f1and LV Touch Panel 8.6.1.
- I have attached a simplified VI that shows how I want to use the meter. Notice that the placement of the endpoitns does not work correctly on the touch panel, and that it ignores the arbitrary markers that I placed.
- I also have included an XY graph control that displays on the TPC with margins around the graph area that I removed from the graph control.
- For the shared variable, it appears to be an issue related to the touch panel, not fieldpoint. I found another thread in this forum that mentioned that clusters containing Enumerations do not work in shared variables on the touch panel. I changed the enumeration to an integer and it now works fine.
In general, there seem to be a disappointing number of limitations in the touch panel implementation. My biggest concern is that I have not found any documentation from NI that lists these limitations. I seem to have to try things out and see what works and what does not work. Can you point me to a comprehensive list of touch panel modules limitations?
Attachments:
test 2.vi 10 KB -
How to have custom control in DataGridView display object's value?
I have a sample project located
here
The project has a main form `Form1` where the user can enter customers in a datagridview. The `CustomerType` column is a custom control and when the user clicks the button, a search form `Form2` pops up.
The search form is populated with a list of type `CustomerType`. The user can select a record by double-clicking on the row, and this object should be set in the custom control. The `DataGridView` should then display the `Description` property but in the background
each cell should hold the value (ie. the `CustomerType` instance).
The relevant code is located in the following classes:
The column class:
public class DataGridViewCustomerTypeColumn : DataGridViewColumn
public DataGridViewCustomerTypeColumn()
: base(new CustomerTypeCell())
public override DataGridViewCell CellTemplate
get { return base.CellTemplate; }
set
if (value != null && !value.GetType().IsAssignableFrom(typeof(CustomerTypeCell)))
throw new InvalidCastException("Should be CustomerTypeCell.");
base.CellTemplate = value;
The cell class:
public class CustomerTypeCell : DataGridViewTextBoxCell
public CustomerTypeCell()
: base()
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
CustomerTypeSearch ctl = DataGridView.EditingControl as CustomerTypeSearch;
if (this.Value == null)
ctl.Value = (CustomerType)this.DefaultNewRowValue;
else
ctl.Value = (CustomerType)this.Value;
public override Type EditType
get { return typeof(CustomerTypeSearch); }
public override Type ValueType
get { return typeof(CustomerType); }
public override object DefaultNewRowValue
get { return null; }
And the custom control:
public partial class CustomerTypeSearch : UserControl, IDataGridViewEditingControl
private DataGridView dataGridView;
private int rowIndex;
private bool valueChanged = false;
private CustomerType value;
public CustomerTypeSearch()
InitializeComponent();
public CustomerType Value
get { return this.value; }
set
this.value = value;
if (value != null)
textBoxSearch.Text = value.Description;
else
textBoxSearch.Clear();
private void buttonSearch_Click(object sender, EventArgs e)
Form2 f = new Form2();
DialogResult dr = f.ShowDialog(this);
if (dr == DialogResult.OK)
Value = f.SelectedValue;
#region IDataGridViewEditingControl implementation
public object EditingControlFormattedValue
get
if (this.value != null)
return this.value.Description;
else
return null;
set
if (this.value != null)
this.value.Description = (string)value;
public object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context)
return EditingControlFormattedValue;
public void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle)
this.BorderStyle = BorderStyle.None;
this.Font = dataGridViewCellStyle.Font;
public int EditingControlRowIndex
get { return rowIndex; }
set { rowIndex = value; }
public bool EditingControlWantsInputKey(Keys key, bool dataGridViewWantsInputKey)
return false;
public void PrepareEditingControlForEdit(bool selectAll)
//No preparation needs to be done
public bool RepositionEditingControlOnValueChange
get { return false; }
public DataGridView EditingControlDataGridView
get { return dataGridView; }
set { dataGridView = value; }
public bool EditingControlValueChanged
get { return valueChanged; }
set { valueChanged = value; }
public Cursor EditingPanelCursor
get { return base.Cursor; }
#endregion
private void CustomerTypeSearch_Resize(object sender, EventArgs e)
buttonSearch.Left = this.Width - buttonSearch.Width;
textBoxSearch.Width = buttonSearch.Left;
However, the `DataGridView` is not displaying the text and it also is not keeping the `CustomerType` value for each cell.
What am I missing?
Marketplace: [url=http://tinyurl.com/75gc58b]Itza[/url] - Review: [url=http://tinyurl.com/ctdz422]Itza Update[/url]Hello,
1. To display the text, we need to override the ToString method for CustomerType
public class CustomerType
public int Id { get; set; }
public string Description { get; set; }
public CustomerType(int id, string description)
this.Id = id;
this.Description = description;
public override string ToString()
return this.Description.ToString();
2. To get the cell's value changed, we could pass the cell instance to that editing control and get its value changed with the following way.
public partial class CustomerTypeSearch : UserControl, IDataGridViewEditingControl
private DataGridView dataGridView;
private int rowIndex;
private bool valueChanged = false;
private CustomerTypeCell currentCell = null;
public CustomerTypeCell OwnerCell
get { return currentCell; }
set
currentCell = null;
currentCell = value;
public CustomerTypeSearch()
InitializeComponent();
private void buttonSearch_Click(object sender, EventArgs e)
Form2 f = new Form2();
DialogResult dr = f.ShowDialog(this);
if (dr == DialogResult.OK)
currentCell.Value = f.SelectedValue;
this.textBoxSearch.Text = f.SelectedValue.Description;
#region IDataGridViewEditingControl implementation
public object EditingControlFormattedValue
get
if (this.currentCell.Value != null)
return (this.currentCell.Value as CustomerType).Description;
else
return null;
set
if (this.currentCell != null)
(this.currentCell.Value as CustomerType).Description = (string)value;
public object GetEditingControlFormattedValue(DataGridViewDataErrorContexts context)
return EditingControlFormattedValue;
public void ApplyCellStyleToEditingControl(DataGridViewCellStyle dataGridViewCellStyle)
this.BorderStyle = BorderStyle.None;
this.Font = dataGridViewCellStyle.Font;
public int EditingControlRowIndex
get { return rowIndex; }
set { rowIndex = value; }
public bool EditingControlWantsInputKey(Keys key, bool dataGridViewWantsInputKey)
return false;
public void PrepareEditingControlForEdit(bool selectAll)
//No preparation needs to be done
public bool RepositionEditingControlOnValueChange
get { return false; }
public DataGridView EditingControlDataGridView
get { return dataGridView; }
set { dataGridView = value; }
public bool EditingControlValueChanged
get { return valueChanged; }
set { valueChanged = value; }
public Cursor EditingPanelCursor
get { return base.Cursor; }
#endregion
private void CustomerTypeSearch_Resize(object sender, EventArgs e)
buttonSearch.Left = this.Width - buttonSearch.Width;
textBoxSearch.Width = buttonSearch.Left;
Cell:
public class CustomerTypeCell : DataGridViewTextBoxCell
public CustomerTypeCell()
: base()
public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle);
CustomerTypeSearch ctl = DataGridView.EditingControl as CustomerTypeSearch;
ctl.OwnerCell = this;
public override Type EditType
get { return typeof(CustomerTypeSearch); }
public override Type ValueType
get { return typeof(CustomerType); }
public override object DefaultNewRowValue
get { return null; }
Result:
Regards,
Carl
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Problem with custom control and focus
I've a problem with the focus in a custom control that contains a TextField and some custom nodes.
If i create a form with some of these custom controls i'm not able to navigate through these fields by using the TAB key.
I've implemented a KeyEvent listener on the custom control and was able to grab the focus and forward it to the embedded TextField by calling requestFocus() on the TextField but the problem is that the TextField won't get rid of the focus anymore. Means if i press TAB the first embedded TextField will get the focus, after pressing TAB again the embedded TextField in the next custom control will get the focus AND the former focused TextField still got the focus!?
So i'm not able to remove the focus from an embeded TextField.
Any idea how to do this ?Here you go, it contains the control, skin and behavior of the custom control, the css file and a test file that shows the problem...
control:
import javafx.scene.control.Control;
import javafx.scene.control.TextField;
public class TestInput extends Control {
private static final String DEFAULT_STYLE_CLASS = "test-input";
private TextField textField;
private int id;
public TestInput(final int ID) {
super();
id = ID;
textField = new TextField();
init();
private void init() {
getStyleClass().add(DEFAULT_STYLE_CLASS);
public TextField getTextField() {
return textField;
@Override protected String getUserAgentStylesheet() {
return getClass().getResource("testinput.css").toExternalForm();
@Override public String toString() {
return "TestInput" + id + ": " + super.toString();
}skin:
import com.sun.javafx.scene.control.skin.SkinBase;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
public class TestInputSkin extends SkinBase<TestInput, TestInputBehavior> {
private TestInput control;
private TextField textField;
private boolean initialized;
public TestInputSkin(final TestInput CONTROL) {
super(CONTROL, new TestInputBehavior(CONTROL));
control = CONTROL;
textField = control.getTextField();
initialized = false;
init();
private void init() {
initialized = true;
paint();
public final void paint() {
if (!initialized) {
init();
getChildren().clear();
getChildren().addAll(textField);
@Override public final TestInput getSkinnable() {
return control;
@Override public final void dispose() {
control = null;
}behavior:
import com.sun.javafx.scene.control.behavior.BehaviorBase;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
public class TestInputBehavior extends BehaviorBase<TestInput> {
private TestInput control;
public TestInputBehavior(final TestInput CONTROL) {
super(CONTROL);
control = CONTROL;
control.getTextField().addEventFilter(KeyEvent.KEY_PRESSED, new EventHandler<KeyEvent>() {
@Override public void handle(final KeyEvent EVENT) {
if (KeyEvent.KEY_PRESSED.equals(EVENT.getEventType())) {
keyPressed(EVENT);
control.focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override public void changed(ObservableValue<? extends Boolean> ov, Boolean wasFocused, Boolean isFocused) {
if (isFocused) { isFocused(); } else { lostFocus(); }
public void isFocused() {
System.out.println(control.toString() + " got focus");
control.getTextField().requestFocus();
public void lostFocus() {
System.out.println(control.toString() + " lost focus");
public void keyPressed(KeyEvent EVENT) {
if (KeyCode.TAB.equals(EVENT.getCode())) {
control.getScene().getFocusOwner().requestFocus();
}the css file:
.test-input {
-fx-skin: "TestInputSkin";
}and finally the test app:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Test extends Application {
TestInput input1;
TestInput input2;
TestInput input3;
TextField input4;
TextField input5;
TextField input6;
Scene scene;
@Override public void start(final Stage STAGE) {
setupStage(STAGE, setupScene());
private Scene setupScene() {
input1 = new TestInput(1);
input2 = new TestInput(2);
input3 = new TestInput(3);
input4 = new TextField();
input5 = new TextField();
input6 = new TextField();
GridPane pane = new GridPane();
pane.add(input1, 1, 1);
pane.add(input2, 1, 2);
pane.add(input3, 1, 3);
pane.add(input4, 2, 1);
pane.add(input5, 2, 2);
pane.add(input6, 2, 3);
scene = new Scene(pane);
return scene;
private void setupStage(final Stage STAGE, final Scene SCENE) {
STAGE.setTitle("Test");
STAGE.setScene(SCENE);
STAGE.show();
public static void main(String[] args) {
launch(args);
The test app shows three custom controls on the left column and three standard textfields on the right column. If you press TAB you will see what i mean... -
Hello experts,
I built a program with just 1 screen. This screen consists of 2 sections. Section 1 contains input fields for a selection, section 2 constains a custom control on which the selected data is displayed as pdf. For the creation of the pdf I use smartforms.
First selection works fine.
If I do a second selection with other selection values the pdf is not updated but displays the values of the first selection. How can I display the new values?
IF custom_container IS INITIAL.
CREATE OBJECT custom_container
EXPORTING container_name = 'CUSTOM_CONTROL'.
ENDIF.
CREATE OBJECT html_viewer
EXPORTING parent = custom_container.
* pdf_string_x in Tabelle konvertieren
length = XSTRLEN( pdf_string_x ).
full_lines = length DIV 1000.
last_length = length MOD 1000.
CLEAR offset.
DO full_lines TIMES.
i_data = pdf_string_x+offset(1000).
APPEND i_data TO it_data.
offset = offset + 1000.
ENDDO.
i_data = pdf_string_x+offset(last_length).
APPEND i_data TO it_data.
CALL METHOD html_viewer->load_data
EXPORTING
* URL =
type = 'text'
subtype = 'pdf'
* SIZE = pdf_fsize
* ENCODING =
* CHARSET =
* LANGUAGE =
IMPORTING
assigned_url = url
CHANGING
data_table = it_data[]
* EXCEPTIONS
* DP_INVALID_PARAMETER = 1
* DP_ERROR_GENERAL = 2
* CNTL_ERROR = 3
* others = 4
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD html_viewer->show_data
EXPORTING
url = url.
Thanks in advance!
JohannesCLEAR IT_DATA[].
DO full_lines TIMES.
i_data = pdf_string_x+offset(1000).
APPEND i_data TO it_data.
offset = offset + 1000.
ENDDO.
Use CLOSE_DOCUMENT
or DO_REFRESH method the second time -
In custom control , I wnt to save the layout with variant -
Hi,
In custom control , I want to save the layout using variant and i want to choose the layout from the variant
Plz give me the details.
Rerards,
RaniHello Rani
I assume you have an ALV grid displayed within a custom control. For this ALV grid you want to be able to save layouts.
Assuming that you are using class CL_GUI_ALV_GRID you have set the following IMPORTING parameters when calling method go_grid->set_table_for_first_display:
" Fill variant parameter with following values:
gs_variant-report = syst-repid.
gs_variant-handle = 'GRID'. " 4-digit handle; required if you have multiple ALV grids
- I_SAVE = 'A' " allows saving of user-specific and global layouts
- IS_VARIANT = gs_variant
Regards,
Uwe -
Custom Control - Best place for visual-tree generation?
I'm building a custom control (extending Canvas) which should present a chartflow diagram (nodes and connectors). It will be feeded through databinding and a dependency property (ItemSource). The control will generate:
1. Node-items (based on ItemSource)
2. Connectors (lines) between each and every node
3. An adornerlayer on most of the nodes
Should I generate this visual/logical -tree inside my ItemSourceUpdated -eventhandler? In the overrided ArrangeOverride method? Or whats best practice?Please don't ask several questions in the same thread. Your original question was about where to add the visual elements when creating a custom Panel and now you are asking about adorners. Please close the thread by marking all helpful posts as answer when
your original quesion has been answered and then start a new thread if you have a new question.
Please refer to the following page for more information about adorners:
https://msdn.microsoft.com/en-us/library/ms743737(v=vs.110).aspx
Sorry but no, my original question was about where to place creation code for:
1. Node-items (based on ItemSource)
2. Connectors (lines) between each and every node
3.
An adornerlayer
on most of the nodes
Since you cant create adorners immediately after you have added a new elemented to the visual tree (and before the layout pass) your previous
answer was appreciated, but not sufficient.
Maybe you are looking for
-
Historic and Current data for Master data bearing objects
Hi All, We are trying to implement type 2 dimensions for all the master data bearing characteristics, where we require historic and current data available for reporting. the master data can have a number of attributes and all of them can be time depe
-
ABAP debugging : excel to internal table
Hi , I would like to know if there is any way to copy excel sheet data into internal table during Debugging? Any pointers to this are highly appreciated. Thank you in Advance. Sravan.
-
Need to read source file without deleting it!
Hi, I have a scenario where 1. I need to pick the latest file from source folder without deleting it. 2. I need to post the data in to EP's KM. (how can I communicate with EP) So can any put some light as how to achieve this. Regards, shiv
-
Deploying 11g Fusion Web App: FacesServlet class not found
Hi, I have made a very simple Fusion Web Application (ADF) having only one .jspx saying "Welcome Weblogic". This application I would like to deploy onto my WLS 11g (10.3). I have installed the ADF Framework including the jsf 1.2 jar. I have created w
-
tryed to download personas but keeps say un compatable.but it say they are with 15.1.0