Class: dbGrid
Class Hierarchy:
DFBaseEntryListEntryListWideList_WideListDataList_DataListdbGrid_dbGridDSdbGridDDdbGridClass Definition
Properties
tGridComboHelper[]pGridComboHelpers
Array of of helpers. One is set for each active combo column
integerpiActiveColumn
use by comboFillItem callback to figure out column
Functions and Procedures
integerActivate()
augment to refresh all dynamic code tables
Attach_Deo_To_Server()
change so that list is initialized first. Also, set extended_deo_state before
attempting to fill list (it needs that information).
Column_Combo_Add_Blank_Item(integer iCol String Blank_Desc)
Column_Combo_Add_Item(integer iColumn String sDescription String sDat)
Message to add Items to a list. Similar to Add_Item except
it handles an optional second parameter. If no 2nd param the first
is used in its place. This will normally be used inside of Fill_List.
Send Column_Combo_Add_Item iColumn Descr_Value {Data_Value}
integerColumn_Combo_Code_Display_Mode(integer iColumn)
12.1: helper is added as needed in pGridComboHelper, not here.
// augment to create and remove a helper object as needed.
{ MethodType=Property NoDoc=True }
Procedure Set Column_Combo_State integer iColumn boolean bState
boolean bOldState
tGridComboHelper GridComboHelper
Get Column_Combo_State iColumn to bOldState
If ( not(bOldState) and bState) begin
// if turning on a column combo, intialize the helper struct
Move CB_CODE_DISPLAY_DESCRIPTION to GridComboHelper.eCodeDisplay // default value
set pGridComboHelper iColumn to GridComboHelper // initializes the struct
end
Forward Set Column_Combo_state iColumn to bState
End_Procedure
StringColumn_Combo_Data_To_Description(integer iColumn String sValue)
For a column, pass data and return the description
Column_Combo_Delete_Data(integer iColumn)
aumgent to clear the datavalues in the helper object
StringColumn_Combo_Description_to_Data(integer iColumn String sValue)
for a column, pass description and find the data
stringColumn_Combo_Description_Value(integer iColumn integer eMode String sDescVal String sDataVal)
Public augmentation point. Pass current datavalue and all info
in record buffer. Should return what you want to see on the screen.
Augment to support various description/data Display formats.
Column_Combo_Fill_List(integer iCol)
Fills the list by loading the entire defined data-file
ColumnComboEntryDefaults(integer iItem handle hoDSO integer iFile integer iField)
Augmented to handle entry_state=F combos. These type of combos must
have a default value (since something always appears in the form). So
we must check for cases where we have a value in the combo that is
not reflected in the DD buffer. In such a case, update the buffer with
a default value. Called by entry_defaults
ColumnComboFillItem(integer iCol integer iItem string sData string sDescription integer iFile RowId riId)
Combo_Item_Changed(integer iItem)
augment to update the DD each time this changes
ComboFillItem(integer iItem string sData string sDescription integer iFile RowId riId)
this is the one the callback calls. We must figure out the column and pass it on
Construct_Object()
Copy_Item_Options(Integer iDSO Integer iFile Integer iField Integer iDEO Integer iItem)
augment to unset capslock if the display mode is not Code. If not code display the data that is displayed is
not the data being sent to the DD and it should not be capslocked by the DD. Also set a bigger form_margin.
You'd only need a big form_margin if entry_state is true which would be unlikely with a description combo (but it is supported).
StringData_Value(integer iItem)
This Replaces DD message with one that understands
description and data difference. //
Entry_Update(Integer iFile Integer iDoAll)
12.1 Fix: We must augment Entry_update to handle column combos where the description is different than the
data. In such a case, we do not want the internal entry_update ot move data from the column. Instead,
we will do this manually. If the item should not be updated, we will stop it by setting its state temporarily
to NoPut/NoEnter. This change is purposefully made to be as targeted as possible. It only
changes entry_update for the one column. If you don't use combos, this has no impact at all.
It might have made more sense to completely rewrite the entry_update but it seems safer to just make as
small a change as spossible.
IntegerItem_Entry(Integer iMsg Integer iItem)
augment to refill a combo validation table if needed (if the val table is not static)
Item_Value_Changed(Integer iItem String sValue)
If a combo column, convert from data to description and forward
tGridComboHelperpGridComboHelper(integer iColumn)
Prompt()
Set(integer iColumn tGridComboHelper GridComboHelper)
Set(integer iColumn integer eVal)
Set(Integer iItem String sValue)
If a combo column, convert from description to data and forward
Set(integer iItem string sVal)