Show multiple columns in a DropDownDataWindow - drop-down-menu

I have a legacy Powerbuilder application (now being updated to PB12.6 Classic) that fakes having multiple columns in its dropdowndatawindows by having a field called compute_1 which contains dept_no + ' ' + dept_name.
Unfortunately, this doesn't play nicely with the proportional font it uses. In VFP, I know I can get multiple columns in my comboboxes without having to worry about font widths. Is there any way to get the same effect in PB12.6?

It should be possible to set multiple columns next to each other in the datawindow used in the dddw. Make sure you change the width to 100+ to ensure all columns are shown. The selected column result however should stay the compute_1 you already have if you want the selected showing when the dddw is closed.

Related

Difficult changing groups in Crystal Reports 12 due to windows size. Resizable?

This is in Crystal Reports 2008 version 12.2.0.290
I am working on a report a previous employee created. I want to change one of the groups but the window size is too small to see the full field name and I don't see any way to resize it or to see the entire field name. Many of the groups are different only by the right most portion of the field name for example Here are groups 1-4:
SUMMARY_AGED_ACCOUNTS_RECIEVABLE_1
SUMMARY_AGED_ACCOUNTS_RECIEVABLE_2
SUMMARY_AGED_ACCOUNTS_RECIEVABLE_3
SUMMARY_AGED_ACCOUNTS_RECIEVABLE_4
Since I can't see all the way to the right it is an annoying process of trial and error.
Secondly in design and previous views the section chooser area to the left is too small and truncates the field name in a similar manner. Is there anyway to resize these portions of the program? Is there another area of the program where I can choose groups and see the entire field? You can see what I mean in the screenshot below.

Drag & drop columns into or out of the SlickGrid

I am just learning about the impressive SlickGrid library; and here's my question:
We would like to give users the ability to drag & drop columns from a list of possible columns into the grid to add columns (and possibly likewise drag & drop columns out of the grid to remove columns). Think: Outlook field chooser - where you can add/remove the To column, the From column, etc. via drag & drop.
Any chance that this might be possible? Many thanks, Dave
It isn't drag and drop, but there is a context menu in the header that allows you to check off the columns you want to show/hide. You can customize it in the slick.columnpicker.js file.
This isn't currently possible since you'd essentially have to modify SlickGrid's built-in column management code. As part of an on-going componentization of SlickGrid, that code may get moved into a separate plugin, which would make it easier to extend. In the meantime, you can extend the column picker control (included in the distro) to have two lists with columns that can be drag'n'dropped within the control itself (not onto the grid's columns).

List Control Adds a Space for an Image to Column 0 When Subsequent Columns Have Images

I’ve come across a problem with Windows list controls (I am specifically using MFC, but it looks like it applies to all list controls in the Windows common controls library).
In my specific case, I want to create a list control that has two or more columns. The first column (0) is text-only and is used to allow the user to jump to entries by typing the text in that row. Column two (or three, or four, or whatever) has an image (or an image and text; either way).
This much is all well and good and can be done easily without problem, however the final list control then ends up having a space to the left of the text in column 0 (it may be on the right on an RTL system). This spacer appears to be reserved for an image and I cannot figure out a way to prevent it. (Arranging the specific order of the columns did not change anything.)
Looking around, I found some other people complaining of the same thing, specifically this thread which leads to this thread. The proposed solution does not work because as was stated, simply shrinking the width of column zero merely cuts off the text rather than the image spacer (plus, you then have to prevent and/or process any changes to column widths that the user tries to make).
Does anyone have any ideas of how to fix this bug short of writing a list control from scratch or using one of the too-fancy grid controls on CodeProject/CodeGuru/etc.?
Thanks a lot.
Did you try to change the iIndent member of the LVITEM struct? MSDN says this:
iIndent Version 4.70. Number of image widths to indent the item. A
single indentation equals the width of
an item image. Therefore, the value 1
indents the item by the width of one
image, the value 2 indents by two
images, and so on. Note that this
field is supported only for items.
Attempting to set subitem indentation
will cause the calling function to
fail.
Column 0 is special in a ListView. As soon as you assign a small image list to the ListView, the control expects you to show an image in column 0, so it leaves space for it.
Solutions:
make column 0 zero-width, give it the value you want the user to be able to type. Column 1 becomes your "first" text column. Columns 2+ are for your images. You need full row select style for this to work. Yes, you have to prevent the user from resizing column 0. Yes, that is a pain.
make a column that does have an image to be column 0 and use LVM_SETCOLUMNORDERARRAY to rearrange the display order
owner draw the items.
give column 0 an icon (just to cover all bases)

What are ways to reduce the number of columns in a table/grid?

I have a datagrid with many columns. This makes it pretty wide. Now we want to add more information to the table. Aside from removing or shortening existing columns what are some ways we might be able to add additional information without adding new columnes.
The data we want to add would be one of several values. For example:
Projected
Actual
Other
For other cases when the value was an off/on or true/false we would change the color of the row. In this case that doesn't seem to be a good option.
Another thing we considered is using an icon to indicate the information.
Any other ways this could be done?
A solution i've seen implemented with grid components is to have a column chooser - some sort of popup dialog that lists the columns and you can select which ones you would like to see in the grid. You should be able to invoke this popup by triggering it from the grid, e.g. it might appear as an option when the user right clicks and causes the context menu to appear.
Can you group related information into tabs?
an overflow area? ie a number of fields underneath the table that populate based on the selected row.
or just only show the minimum needed info and the have full details in a popup when doble clicked or something..
1) Popup on row hover
2) Drop open inline in the grid with extra info on row click
One technique I've used in the past was to create a "container" type of class that has its own labels and textboxes, and you can arrange them however you want, then insert this class into a single grid column. You still have to do some tricks on binding multiple controls that are not native "grid column" controls, but should help you along. Then, you can actually have each row a single container control in a single grid column...
You can't add completely new data to a grid without reserving a column to display it. The best solution I've seen is to provide only the essential information in the grid displaying all records, and then create a drilldown view that shows all of the data for one row. The drilldown can either be a new view in the same form, a popup for an additional window, or perhaps a mouseover popup.
I've worked on systems that use all sorts of shortcuts to display every last bit of information on a single page, and I found that it just made everything more confusing and harder to use. "Oh, that little icon there means that <insert something totally unrelated to the icon picture>."

RDLC report table merge cells issue

I have a rdlc report in which I have a table with 6 columns. Of these 6 columns, the visibility of the 2nd and 4th column are toggled. i.e. if 2nd column is visible, 4th is not visible and vice versa. The report displayed properly with these settings.
Then a new row was added to the table. All the cells in this row were merged and a rectangle added to this row. Then a few textboxes were added to this rectangle. Now when this report is run, the display of the table is disturbed. An empty column in shown before the last column and the header of the last column also appears displaced.
After a few permutations, I zeroed in the actual problem.
If you have a table with a row with merged cells and a rectangle in the merged cells, then hiding any column does not disturb the display, but if you add a textbox to the rectangle, the display of the table is disturbed as mentioned above.
Is this an inherent problem in RDLC reports or I am missing something here ?
Note, the reports are run in local mode and environment is Visual Studio 2005.
This seems to be defect in ReportViewer. Setting a column's hidden property to true should be sufficient to complelety obscure the column. However in this case, along with setting its hidden property to true you also have to set its width to 0.0 inches to completely obscure it.
I am discarding my earlier answer. The solution described above does work but has some glitches.
A more proper method is allocating a new column array to the column collection of the RDLC report table via deserialization and then serializing the report back. Deserializing an RDLC report exposes it as an Object. This column array will contain the original table columns except the ones that are to be hidden.
The solution is complicated but effective.

Resources