what and when should i use editor grid or extjs form - extjs

I can make the inseration to the table by extjs editor grid and also through the extjs form , what should i used and when i used what ?
which is better ? i had used the extjs form panel but i haven't used the editor grid ?
should i use the editor grid or not ?

Its about what kind of UX you are providing to your users! Take these scenarios:
1. Frequent modifications
Lets assume a user need to frequently modify, add records to the grid. In this case, using a form panel can be a "long process" for the user. He might have to select the record, click on edit button and the form pops up, edit and finally save.
To reduce the user's click and reduce the process.. you can use the editor grid.
2. Viewing / Filtering / Reports
Common scenario is to use the grid for simply viewing, filtering out required records and use as grid as reports with grouped data, summary data etc. I this case, you may not even have a add functionality. You may have a less chance of edits. In this case you will go for normal grids.
Now, there are situations where the grid display is only a summary. In one of my applications, I have only few fields listed on the grid (only important fields). selecting a row will provide you more details in a window with form panel. In such cases you cannot have editor grid because only part of the data is visible at a given time.
Another viewing scenario is to have a form beside the grid with all the fields and they are bound together. In such a scenario, you have the form panel beside the grid. And when user select a row, the data is loaded into the form. You can provide data modification functionality here. Example!
3. Type of data involved
You also need to consider the data you display and manipulate. Editor grids can be good for quick and frequent changes. But It might not be a good idea for editing long and complex data. For example, would you have a HtmlEditor (Rich text editor) in the editor grid?
You cannot use editor grid when you have data entry in steps (some wizards, step-by-step entry etc). In such cases you will have to go with the FormPanel.
I think these points will help you.

Related

Google Data Studio: Filter inheritance options missing

I've asked this question on the Data Studio community page with no response, and haven't been able to find the answer elsewhere.
I need to stop 2 charts on a page from inheriting the page level control that I have set. From searching around, it appears that there used to be an option to disable filter inheritance, which would achieve exactly what I need. However, that option seems to no longer be available.
I've tried manually setting chart level filters that include all of the information I need, but they still seem to be overridden by the page level controls I have set. I've tried creating calculated fields that hard code the information I need, but they are also overridden by the page level controls regardless.
The comparison that I need to make is between an individual store's customer churn, and the average churn for all stores. The report is an overall report for all stores, with the ability to choose an individual store from a dropdown control to narrow down the results, so I can't set it up with chart-level filters as that would defeat the whole purpose.
Does the filter inheritance option no longer exist, or does it not apply to controls? Is there another way around this that I'm missing?
Thanks in advance! :)
Screenshot of the filter inheritance options missing:
No filter inheritance
Example Data Studio report:
Example report
UPDATE: I have figured out a temporary workaround, which is to set up a separate data source that does not include the fields referred to within the controls. However, this is not a workable solution for reports with a number of pages and a number of controls added, as it effectively requires a new data source for every control that I need to exclude (and sometimes that isn't possible).
Group
One way to ensure that the two specific charts (referred to as Excluded_Charts in this answer) are not influenced by Controls (in this case a Drop-down list and a Date range control) is to Group all charts except Excluded_Charts, which would result in the two charts operating independently from the rest:
Right-click on a blank space in the Report
From the drop-down click on Select > All charts and controls on page
Ctrl+Click on both charts in Excluded_Charts to exclude them from selection
Right-click on one of the selected charts
Click on Group from the right-click menu
Additionally, to make sure that the Date range control does not affect Excluded_Charts select both charts in Excluded_Charts and change the default date range from Auto to Custom.
Ungroup
To reintegrate Excluded_Charts back with the rest of the charts in the report:
Select the grouped charts (selecting a single grouped component will highlight all grouped components)
Right-click on one of the selected charts
Select Ungroup from the right-click menu
Additionally, remember to change the default date range of the Excluded_Charts back from Custom to Auto.
Editable Google Data Studio Report (Embedded Google Sheets Data Source)
I seem to have found a solution - the issue is that I was looking at filter inheritance rather than controls. Controls can be limited in scope by grouping them with the charts you want them to apply to.
Thank you very much for your help #Nimantha! I would have never figured this out if you hadn't pointed out that I was referring to filters rather than controls.

Looking for a way around Winforms 10,000 handle limit

I have been tasked with creating a like for like user interface for a product replacement.
One of the components of the old system was a container that displayed properties in a hierarchy (think treeview like) where each property had a label and value (value could be a textbox, drop down, checkbox, file browse etc)
This is the component that I need to replace and one of the conditions being imposed on me is to front load it with about 5000 items, some of which will be made visible depending on usage context.
My first attempt has been to use a FlowLayoutPanel as the main container populated by TableLayoutPanels indented on left margin that each hold label and edit control.
I hit the problem of the 10,000 control handles limit.
Any suggestions on an alterantive approach to get round this limitation that will allow for the front loading of the 5000 items?
Thanks in advance.
Consider the following guidelines:
1. Do not load all the records at once. Load the data page by page as per request, and render each page of data.
2. Do not show all the records at once. You have a limited window size, even if you load all the data, just show the part that should be visible in the view port. Show the rest of the data when the user scrolls. This way you can dispose the previous elements.
3. Do not use a lot of handles. You can use a control which uses just 1 control handle, like a TreeView or DataGridView or even a custom control for yourself. The key is keeping data in view mode and just show the edit controls when the user focus on a specific item to edit.
Example: DataGridView and ListView controls support virtual mode for loading data. You can also simulate nested data by padding the first cell/item. Also the Treeview control supports events like BeforeExpand which allows you to load child data when the user requests.
For all above examples you can just show the edit controls when the user wants to edit the cell.

MS PowerPoint CheckBox remains linked when slide is duplicated

Hoping you can help me as I have searched a lot of forums and did not find the same question, never mind the answer I need :)
I have a power point pack which I have put together. It is built to be a template for my team to use repeatedly and is set up using slide masters to control the layout. Each layout slide in the slide master includes two checkboxes to identify either a pass or a fail. My problem is that when you insert a new slide (by either duplicating an existing slide or adding a slide from the slide master layout), and change the checkbox value it also changes on the other slide. Is there a way either using some quick VBA or otherwise to stop this from happening and break the link between the two slides.
Any help would be really appreciated.
In a weird way, this is reasonable behavior from PowerPoint, though it certainly does seem bizarre.
Shapes on a master layout appear on any slide based on that layout. Though they appear on the slide, they're not editable on the slide; it's as though the slide were a clear layer above the layout, one that you can add more stuff to but that you can't "penetrate" to get at the stuff on the layout below.
Placeholders are a special case and so, apparently, are ActiveX controls like your checkboxes, which DO allow editing. So what's happening is that when you change a text box, you're changing the text box on the layout, not on the slide itself (the checkbox doesn't even exist on the slide ... you can't select and move it in normal view, for example, unless you go to the layout in Master view).
When you change the checkbox, you're changing the one on the layout, and since the checkboxes appear on any slide based on the layout, when you change the checkbox, you're changing the one on the layout, ALL of the slides based on that layout get the changed checkboxes.
Some mildly tricky VBA could look at each slide and if it's based on the layout that contains the checkboxes, COPY them to the current slide from the layout and finally make the checkboxes on the layout invisible.
The simpler solution might be to supply a sample slide with the checkboxes ON the slide and let the users copy/paste it into their presentations.
[later]
I've reported this to MS as not so much a bug as a design oversight; the behavior may make sense, but it's not useful and can mislead users (as you well know).
I'd suggest that you visit https://powerpoint.uservoice.com and suggest that ActiveX objects on masters/layouts behave more like placeholders ... spawn new instances of themselves when a new slide based on the layout is added rather than letting the user THINK that's what's happened.

Editing items in new window or in the listbox? What's better for use?

I'm using WPF and for example I have listbox of "professions" (Name, Holiday Date, Holiday Name, etc).
What I need to do is to edit and add profs.
This could be done with new window of Adding and Editing with editable textboxes and datepickers. Typical way.
Or I could create DataTemplateSelector my listbox and after user click "edit" change DefaultItemTemplate to EditingItemTemplate. In this way we have no need for new window.
Here is the screenshot: http://i52.tinypic.com/303l6d4.png
What way will be better for users? I think I like the way #2. But doesn't it look much complicated for users?
Thanks.
I'd say the second approach is mach better. Especially if editing is supposed to be a very typical operation for your application I'd suggest you implement switching to the editing mode by click on an one of those fields, also automatically change a content of focused field on user input, in other words implement a behavior similar to Excel's cells. If the typical use case of this form is just browsing then its worth to consider adding a stylized button/link that switches current item to edit mode. Also probably its better to add such a button for each typical action ("Show clients") right to the item template (to the right top corner for example). And display these buttons only if item is selected or mouse is over this item. Opening and selecting a desired usual action from the context menu is quite "stressful" experience :)

WinForms - How do I create a table using a custom control for each row?

I want to create a table representing data I have, but I want each row to have a custom display. I have developed a little custom control that represents a row and has a few items in it (text box, check box, progress bar), however how do I now in the main form create multiple instances of this for the data I have?
e.g. is there a winforms control I can use to do this? or do I have to take a panel or something and programmatically do it?
I do need to somehow take responses back. So if someone clicks on the button in the 4th row say then I'll need to be able to tell which row it was from.
As an aside would then be a way to BIND the above mentioned visualization of my data to the data itself, say housed in an Array?
thanks
I see two options here:
You can use a DataRepeater. This control can be found in the Microsoft Visual Basic Powerpack. It allows you to place controls on a template which gets copied for each item in the databound collection.
You can create a custom control and manually place one instance of it for each item in a collection, re-creating databinding for the controls in it. This requires you to either expose the controls inside publicly or as properties of the user control.
However, above options are mostly useful for non-tabular data. If your layout is strictly tabular (i. e. rectangular cells in a grid) then you can create a custom DataGridViewCell which takes some time to understand but not too much code. Putting a progress bar into such a cell shouldn't prove too difficult.

Resources