I am using Dynamic SQl in my stored Procedure. In front end I am using C#.net gridview to display the data.
I have three fields in my Table,
1) Active- Bit
2) DateMadeInactive-smallDate
3)Comments-Varchar(Max)
Depending on the condition of the active Value I have to display those three or two fields in the gridview.
If Active= true, Then I have to display active and Comments.
If Active =false, Then I have to DateMadeInactive and Comments Fields.
For Rendering the Active field I am using the following
<asp:TemplateField HeaderText="Comments" SortExpression="Comments" >
<ItemTemplate>
<%#Eval("Comments")%>
</ItemTemplate>
</asp:TemplateField>
In my stored Procedure I am checking Like this for null, if its null then I am displaying as false
set #SQLQuery = #SQLQuery+ ',isnull(Register.Active,''0'')as Active,
Could anybody tell me where do I check for the Active value or Is there any method in SQL which Checks for the True/False condition of the field.
I am not expecting complete answer, just a hint only...
Thank you.
Hari
The GridView.RowDataBound event is what you're looking for.
When handling the event check the value of the field and show or hide your controls accordingly.
Beware: You can't hide the whole column, as it affects every row, you must show or hide the controls inside the column.
Related
I'm building a form that contains a subform to list records as a datasheet. The fields on the subform are sourced from a saved query. To the subform, I added a checkbox control to serve as a record selector.
Here is the problem: When I click on the checkbox of specific record on the subform, ALL the checkboxes on all the records display a check rather than just the one I clicked. I cannot figure out what is causing this undesirable behavior.
Any insights or suggestions to fix this is much appreciated.
Your checkbox is unbound - in any continuous form or datasheet, unbound controls have the same value for all records (how else could they be unbound?).
You will have to add a "selector" column to the record source. Only bound controls can have different values for different records.
Instead of creating a field in a table (selection-data is only temporary), you can useclsCCRecordSelect-Class from SelectRecordsV2.
It binds the control to an expression (calls a function inControlSourcethat returns the value of the checkbox, stored in a collection of the class) and uses the controlsMouseDown event to change the value (as controls bound to an expression are read-only).
That makes the selection multiuser captable and avoids creating additional selection field to tables.
I have a form linked to a table. I am trying to use the me.dirty function to see if the user changed anything. For now I put the code msgbox(me.dirty) in the form close button to determine what is happening. When some fields are changed i get true others i get false. For now I am only changing one field at a time. I have determined that if I look at the table before I close the form, if the table matches the form me.dirty is false. if not then me.dirty is true. this makes sense I dirty=true when the form does not match the table.
What I cannot figure out is why some field match the table and others do not until the form is closed. For example I have two check boxes one is always matching the table as soon as i check or uncheck it and dirty = false. The other one does not change the table until I close the form and dirty=true. Iv'e looked at all the properties of the two check boxes and they are the same.
I also have two drop downs that give me dirty=true and two text boxes that always give me dirty = false. (both cases when the field is changed.)
Any help would be appreciated as I am stumped right now.
OK I figured it out on my own. The ones where me.dirty=false had an event after update that put focus on a subform, this updated the table and then when clicked the button to run me.dirty, it was false.
I need some help with Access 2010 forms. My form has a number of fields (from one table). One of the field is a logical field. If the user selects true, then the next field (text field) should be enabled. This is working fine - I created an after update event procedure. The problem I have is if the user accidentally selects true, and then selects a value/s for the text field (the text field looks up a query - it is a look up field and it can have more than one value - the user can select/check as many from the list and they will be stored to the text field, separated by coma).
How will I set the text field (look up field) value to blank, if the user goes back and set the logical field to false? me.textfield.value = null gives an error.
Can anyone please help me? Thank you!
Just keep in mind that in fact a multi-value column is in fact a normalized data table.
So the display looks like this:
To clear the records selected in this child table, which is your mult-value selection, you can use this code behind the above button:
Dim rstChild As DAO.Recordset
Set rstChild = Me.Recordset.Color.value
Do While rstChild.EOF = False
rstChild.Delete
rstChild.MoveNext
Loop
Me.Color.Requery
An easy way to insert a blank lookup field is to select the field in design view and click on the lookup tab in the field properties. Before the first entry in Row Source insert the following " ";
On a form, I have a combobox, with the RowSource coming from a query (specifically, a calculated field in the query). When the user makes a selection, I want to update a label on the same form with a different column from that same query, but of course associated to the selection.
I'm fine with VBA and writing queries and whatnot, but I am not very familiar with Access forms.
By the way, I tried searching for an answer to this, but it was quite difficult because I don't know what this thing is really called that I am trying to do. A good link to a site explaining this would be perfectly fine (no need to write a bunch of stuff here if it already exists elsewhere).
In the After Update event of my combo box, cboUserID, I can set a label control, lblFoo, to the value of the second column in the selected row of the combo.
Me.lblFoo.Caption = Me.cboUserID.Column(1)
If your combo box is bound to a field in the form's record source, you may want to do that same operation from the form's On Current event also.
You can use the column property to refer to anything other than the bound column of a combo.
Rowsource: SELECT ID, SName, FName FROM Table
Me.MyCombo.Column(2)
This would return FName.
-- http://msdn.microsoft.com/en-us/library/aa224084(v=office.11).aspx
Me.MyLabel.Caption = Me.MyCombo.Column(2)
This might be simple but I am new to Oracle. I am using Oracle 10g and have a form that lists our information from a linked table in a tabular Layout. The last column of data is a "list Item" item type that has the Element list of Enabled (T) and Disabled (F).
What I need is when a user changes this dropdown, to disabled, I want ONLY that row to have some of the columns be disabled and not the entire column.
This is also assuming on load of the form, it will disable and enable rows of data depending on what values are being pulled from the EnabledDisabled column in the database.
Thanks for the help!
Option 1: use the ENABLED item property.
Unfortunately Oracle Forms does not allow changing the ENABLED property of an item at the item instance level.
What you can do, however, is enable or disable the whole item when the user enters a record - use the WHEN-NEW-RECORD-INSTANCE trigger - depending on the value of the current record's value for the list item, the trigger would set the ENABLED property to PROPERTY_TRUE or PROPERTY_FALSE.
Of course, your list item would also have the same code in its WHEN-LIST-CHANGED trigger.
The downside to this approach is that the whole column will "look" disabled to the user, and they will not be able to select a different record using those disabled items.
Option 2: use the INSERT_ALLOWED and UPDATE_ALLOWED properties.
You can set these properties at the item instance level using SET_ITEM_INSTANCE_PROPERTY. You would set them in the block's POST-QUERY trigger, as well as in the list item's WHEN-LIST-CHANGED trigger.
This would not, however, change how the items look on the screen. To solve this, you could also set a visual attribute at the item instance level (e.g. change the items to use a dark gray background or something).
More comments.