Kbase P135460: Sample code demonstrating the use of BUFFER-CREATE() method with a ProBindingSource and UltraGrid
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  31/12/2008 |
|
Status: Unverified
GOAL:
Sample code demonstrating the use of BUFFER-CREATE() method with a ProBindingSource and UltraGrid
FACT(s) (Environment):
OpenEdge 10.2x
Windows
FIX:
USING Progress.Lang.*.
USING Progress.Windows.Form.
CLASS bForm INHERITS Form :
DEFINE PRIVATE VARIABLE components AS System.ComponentModel.IContainer.
DEFINE PRIVATE VARIABLE bindingSource1 AS Progress.Data.BindingSource NO-UNDO.
DEFINE PRIVATE VARIABLE ultraGrid1 AS Infragistics.Win.UltraWinGrid.UltraGrid NO-UNDO.
DEFINE PRIVATE VARIABLE hDS AS HANDLE NO-UNDO.
DEFINE PRIVATE VARIABLE btnAdd AS Infragistics.Win.Misc.UltraButton NO-UNDO.
DEFINE PRIVATE VARIABLE btnSave AS Infragistics.Win.Misc.UltraButton NO-UNDO.
DEFINE PRIVATE TEMP-TABLE ttCustomer LIKE Customer BEFORE-TABLE ttBeforeCust.
DEFINE PRIVATE DATASET dsPO FOR ttCustomer.
DEFINE QUERY qCustomer FOR Customer.
DEFINE DATA-SOURCE srcCustomer FOR QUERY qCustomer.
CONSTRUCTOR PUBLIC bForm ( ):
SUPER().
InitializeComponent ( ).
btnSave:Enabled = FALSE.
BUFFER ttCustomer:ATTACH-DATA-SOURCE (DATA-SOURCE srcCustomer:HANDLE).
QUERY qCustomer:QUERY-PREPARE("FOR EACH Customer NO-LOCK").
DATASET dsPO:FILL().
TEMP-TABLE ttCustomer:TRACKING-CHANGES = YES.
hDS = DATASET dsPO:HANDLE.
bindingsource1:HANDLE = DATASET dsPO:handle.
END CONSTRUCTOR.
METHOD PRIVATE VOID InitializeComponent ( ):
/* NOTE: The following method is generated by the OpenEdge Advanced GUI Visual Designer.
We strongly suggest that the contents of this method only be modified using the
Visual Designer to avoid any incompatible modifications.
Modifying the contents of this method using a code editor will invalidate any support for this file. */
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance4 AS Infragistics.Win.Appearance NO-UNDO.
appearance4 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE colScrollRegion1 AS Infragistics.Win.UltraWinGrid.ColScrollRegion NO-UNDO.
colScrollRegion1 = NEW Infragistics.Win.UltraWinGrid.ColScrollRegion(635).
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE colScrollRegion2 AS Infragistics.Win.UltraWinGrid.ColScrollRegion NO-UNDO.
colScrollRegion2 = NEW Infragistics.Win.UltraWinGrid.ColScrollRegion(-7).
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance1 AS Infragistics.Win.Appearance NO-UNDO.
appearance1 = NEW Infragistics.Win.Appearance().
&nb.sp; @VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance2 AS Infragistics.Win.Appearance NO-UNDO.
appearance2 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance3 AS Infragistics.Win.Appearance NO-UNDO.
appearance3 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance12 AS Infragistics.Win.Appearance NO-UNDO.
appearance12 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance7 AS Infragistics.Win.Appearance NO-UNDO.
appearance7 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance6 AS Infragistics.Win.Appearance NO-UNDO.
appearance6 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance5 AS Infragistics.Win.Appearance NO-UNDO.
appearance5 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance9 AS Infragistics.Win.Appearance NO-UNDO.
appearance9 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance11 AS Infragistics.Win.Appearance NO-UNDO.
appearance11 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance10 AS Infragistics.Win.Appearance NO-UNDO.
appearance10 = NEW Infragistics.Win.Appearance().
@VisualDesigner.FormMember (NeedsInitialize="true").
DEFINE VARIABLE appearance8 AS Infragistics.Win.Appearance NO-UNDO.
appearance8 = NEW Infragistics.Win.Appearance().
THIS-OBJECT:bindingSource1 = NEW Progress.Data.BindingSource().
THIS-OBJECT:ultraGrid1 = NEW Infragistics.Win.UltraWinGrid.UltraGrid().
THIS-OBJECT:btnAdd = NEW Infragistics.Win.Misc.UltraButton().
THIS-OBJECT:btnSave = NEW Infragistics.Win.Misc.UltraButton().
CAST(THIS-OBJECT:bindingSource1, System.ComponentModel.ISupportInitialize):BeginInit().
CAST(THIS-OBJECT:ultraGrid1,System.ComponentModel.ISupportInitialize):BeginInit().
THIS-OBJECT:SuspendLayout().
/* */
/* bindingSource1 */
&n.bsp; /* */
THIS-OBJECT:bindingSource1:TableSchema = ?.
/* */
/* ultraGrid1 */
/* */
THIS-OBJECT:ultraGrid1:DataSource = THIS-OBJECT:bindingSource1.
appearance4:BackColor = System.Drawing.SystemColors:Window.
appearance4:BorderColor = System.Drawing.SystemColors:InactiveCaption.
THIS-OBJECT:ultraGrid1:DisplayLayout:Appearance = appearance4.
THIS-OBJECT:ultraGrid1:DisplayLayout:BorderStyle = Infragistics.Win.UIElementBorderStyle:Solid.
THIS-OBJECT:ultraGrid1:DisplayLayout:CaptionVisible = Infragistics.Win.DefaultableBoolean:False.
THIS-OBJECT:ultraGrid1:DisplayLayout:ColScrollRegions:Add(colScrollRegion1).
THIS-OBJECT:ultraGrid1:DisplayLayout:ColScrollRegions:Add(colScrollRegion2).
appearance1:BackColor = System.Drawing.SystemColors:ActiveBorder.
appearance1:BackColor2 = System.Drawing.SystemColors:ControlDark.
appearance1:BackGradientStyle = Infragistics.Win.GradientStyle:Vertical.
appearance1:BorderColor = System.Drawing.SystemColors:Window.
THIS-OBJECT:ultraGrid1:DisplayLayout:GroupByBox:Appearance = appearance1.
appearance2:ForeColor = System.Drawing.SystemColors:GrayText.
THIS-OBJECT:ultraGrid1:DisplayLayout:GroupByBox:BandLabelAppearance = appearance2.
THIS-OBJECT:ultraGrid1:DisplayLayout:GroupByBox:BorderStyle = Infragistics.Win.UIElementBorderStyle:Solid.
appearance3:BackColor = System.Drawing.SystemColors:ControlLightLight.
appearance3:BackColor2 = System.Drawing.SystemColors:Control.
appearance3:BackGradientStyle = Infragistics.Win.GradientStyle:Horizontal.
appearance3:ForeColor = System.Drawing.SystemColors:GrayText.
THIS-OBJECT:ultraGrid1:DisplayLayout:GroupByBox:PromptAppearance = appearance3.
THIS-OBJECT:ultraGrid1:DisplayLayout:MaxColScrollRegions = 1.
THIS-OBJECT:ultraGrid1:DisplayLayout:MaxRowScrollRegions = 1.
appearance12:BackColor = System.Drawing.SystemColors:Window.
appearance12:ForeColor = System.Drawing.SystemColors:ControlText.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:ActiveCellAppearance = appearance12.
appearance7:BackColor = System.Drawing.SystemColors:Highlight.
appearance7:ForeColor = System.Drawing.SystemColors:HighlightText.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:ActiveRowAppearance = appearance7.
THIS-OBJECT:ultraGrid1:Displa.yLayout:Override:BorderStyleCell = Infragistics.Win.UIElementBorderStyle:Dotted.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:BorderStyleRow = Infragistics.Win.UIElementBorderStyle:Dotted.
appearance6:BackColor = System.Drawing.SystemColors:Window.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:CardAreaAppearance = appearance6.
appearance5:BorderColor = System.Drawing.Color:Silver.
appearance5:TextTrimming = Infragistics.Win.TextTrimming:EllipsisCharacter.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:CellAppearance = appearance5.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction:EditAndSelectText.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:CellPadding = 0.
appearance9:BackColor = System.Drawing.SystemColors:Control.
appearance9:BackColor2 = System.Drawing.SystemColors:ControlDark.
appearance9:BackGradientAlignment = Infragistics.Win.GradientAlignment:Element.
appearance9:BackGradientStyle = Infragistics.Win.GradientStyle:Horizontal.
appearance9:BorderColor = System.Drawing.SystemColors:Window.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:GroupByRowAppearance = appearance9.
appearance11:TextHAlignAsString = "Left".
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:HeaderAppearance = appearance11.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction:SortMulti.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:HeaderStyle = Infragistics.Win.HeaderStyle:WindowsXPCommand.
appearance10:BackColor = System.Drawing.SystemColors:Window.
appearance10:BorderColor = System.Drawing.Color:Silver.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:RowAppearance = appearance10.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:RowSelectors = Infragistics.Win.DefaultableBoolean:False.
appearance8:BackColor = System.Drawing.SystemColors:ControlLight.
THIS-OBJECT:ultraGrid1:DisplayLayout:Override:TemplateAddRowAppearance = appearance8.
THIS-OBJECT:ultraGrid1:DisplayLayout:ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds:ScrollToFill.
THIS-OBJECT:ultraGrid1:DisplayLayout:ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle:Immediate.
THIS-OBJECT:ultraGrid1:DisplayLayout:ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand:OutlookGroupBy.
THIS-OBJECT:ultraGrid1:Dock = System.Windows.Forms.DockStyle:Top.
THIS-OBJECT:ultraGrid1:Location = NEW System.Drawing.Point(0, 0).
THIS-OBJECT:ultraGrid1:Name = "ultraGrid1".
THIS-OBJECT:ultraGrid1:Size = NE.W System.Drawing.Size(637, 455).
THIS-OBJECT:ultraGrid1:TabIndex = 0.
THIS-OBJECT:ultraGrid1:Text = "ultraGrid1".
THIS-OBJECT:ultraGrid1:BeforeRowUpdate:SUBSCRIBE(THIS-OBJECT:ultraGrid1_BeforeRowUpdate).
/* */
/* btnAdd */
/* */
THIS-OBJECT:btnAdd:Location = NEW System.Drawing.Point(12, 461).
THIS-OBJECT:btnAdd:Name = "btnAdd".
THIS-OBJECT:btnAdd:Size = NEW System.Drawing.Size(75, 23).
THIS-OBJECT:btnAdd:TabIndex = 1.
THIS-OBJECT:btnAdd:Text = "Add".
THIS-OBJECT:btnAdd:Click:SUBSCRIBE(THIS-OBJECT:btnAdd_Click).
/* */
/* btnSave */
/* */
THIS-OBJECT:btnSave:Location = NEW System.Drawing.Point(93, 461).
THIS-OBJECT:btnSave:Name = "btnSave".
THIS-OBJECT:btnSave:Size = NEW System.Drawing.Size(75, 23).
THIS-OBJECT:btnSave:TabIndex = 2.
THIS-OBJECT:btnSave:Text = "Save".
THIS-OBJECT:btnSave:Click:SUBSCRIBE(THIS-OBJECT:btnSave_Click).
/* */
/* bForm */
/* */
THIS-OBJECT:ClientSize = NEW System.Drawing.Size(637, 496).
THIS-OBJECT:Controls:Add(THIS-OBJECT:btnSave).
THIS-OBJECT:Controls:Add(THIS-OBJECT:btnAdd).
THIS-OBJECT:Controls:Add(THIS-OBJECT:ultraGrid1).
THIS-OBJECT:Name = "bForm".
THIS-OBJECT:Text = "bForm".
CAST(THIS-OBJECT:bindingSource1, System.ComponentModel.ISupportInitialize):EndInit().
CAST(THIS-OBJECT:ultraGrid1,
System.ComponentModel.ISupportInitialize):EndInit().
THIS-OBJECT:ResumeLayout(FALSE).
END METHOD.
@VisualDesigner.
METHOD PRIVATE VOID ultraGrid1_BeforeRowUpdate( INPUT sender AS System.Object, INPUT e AS Infragistics.Win.UltraWinGrid.CancelableRowEventArgs ):
IF bindingSource1:RowModified THEN bindingSource1:Assign().
RETURN.
END METHOD.
METHOD PUBLIC VOID addRecord (phBuffer AS HANDLE):
DEF VAR hQuery AS HANDLE.
DEF VAR rRowid AS ROWID .
hQuery = phBuffer:QUERY.
phBuffer:BUFFER-CREATE().
rRowid = phBuff.er:ROWID.
hQuery:CREATE-RESULT-LIST-ENTRY().
hQuery:REPOSITION-TO-ROWID(rRowid).
MESSAGE
"After Create hBuffer:Available: " phBuffer:AVAILABLE
"BindSource Available: " bindingSource1:HANDLE:GET-BUFFER-HANDLE(1):AVAILABLE
VIEW-AS ALERT-BOX.
MESSAGE
"After Create hBuffer:Available: " phBuffer:AVAILABLE
"BindSource Available: " bindingSource1:HANDLE:GET-BUFFER-HANDLE(1):AVAILABLE
VIEW-AS ALERT-BOX.
END METHOD.
@VisualDesigner.
METHOD PRIVATE VOID btnAdd_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
def var hBuffer as HANDLE NO-UNDO .
hBuffer = bindingSource1:HANDLE:GET-BUFFER-HANDLE(1).
addRecord(hbuffer).
btnSave:Enabled = TRUE.
/* btnAdd:Enabled = FALSE.*/
RETURN.
END METHOD.
@VisualDesigner.
METHOD PRIVATE VOID btnSave_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
DEF VAR iBuf AS INT NO-UNDO .
DEF VAR iRow AS INT NO-UNDO .
DEF VAR hBuffer AS HANDLE NO-UNDO .
DEF VAR hBeforeBuffer AS HANDLE NO-UNDO .
DEF VAR hQry AS HANDLE NO-UNDO .
DEF VAR hDS AS HANDLE NO-UNDO.
IF bindingSource1:RowModified THEN bindingSource1:ASsign().
hDS = bindingSource1:HANDLE.
CREATE QUERY hQry.
DO iBuf = 1 to hDS:NUM-BUFFERS:
hBuffer = hDS:GET-BUFFER-HANDLE(iBuf).
hBeforeBuffer = hBuffer:BEFORE-BUFFER.
hQry:SET-BUFFERS(hBeforeBuffer).
hQry:QUERY-PREPARE('for each ' + hBeforeBuffer:NAME).
hQry:QUERY-OPEN().
hQry:GET-FIRST().
DO T.RANSACTION WHILE NOT hQry:QUERY-OFF-END:
if hBeforeBuffer:ROW-STATE > 0 THEN DO:
hBeforeBuffer:SAVE-ROW-CHANGES().
hBeforeBuffer:ACCEPT-ROW-CHANGES().
end.
hQry:GET-NEXT().
END.
END. /* buffer loop */
DELETE OBJECT hQry NO-ERROR.
btnSave:Enabled = FALSE.
/* btnAdd:Enabled = TRUE.*/
RETURN.
END METHOD.
DESTRUCTOR PUBLIC bForm ( ):
IF VALID-OBJECT(components) THEN DO:
CAST(components, System.IDisposable):Dispose().
END.
END DESTRUCTOR.
END CLASS..