Consultor Eletrônico



Kbase P169977: Cannot define variables LIKE a database field syntax in the Visual Designer
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   7/16/2010
Status: Unverified

SYMPTOM(s):

Cannot define variables LIKE a database field syntax in the Visual Designer

Visual Designer cannot load this class

Can't define vars LIKE db fields in Visual Designer

Sample code to reproduce: (uses sports2000 db)

USING Progress.Lang.*.
USING Progress.Windows.Form.

CLASS testform INHERITS Form:
DEFINE PRIVATE VARIABLE components AS System.ComponentModel.IContainer NO-UNDO.
DEFINE VARIABLE c LIKE Customer.CustNum NO-UNDO.

CONSTRUCTOR PUBLIC testform ( ):
SUPER().
InitializeComponent().
CATCH e AS Progress.Lang.Error:
UNDO, THROW e.
END CATCH.
END CONSTRUCTOR.

METHOD PRIVATE VOID InitializeComponent( ):
/* NOTE: The following method is automatically generated.
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. */
THIS-OBJECT:SuspendLayout().
THIS-OBJECT:Name = "testform".
THIS-OBJECT:Text = "testform".
THIS-OBJECT:ResumeLayout(FALSE).

CATCH e AS Progress.Lang.Error:
UNDO, THROW e.
END CATCH.

END METHOD.

DESTRUCTOR PUBLIC testform ( ):
IF VALID-OBJECT(components) THEN DO:
CAST(components, System.IDisposable):Dispose().
END.
END DESTRUCTOR.
END CLASS.

Stack trace from OE Architect .log file:

!ENTRY com.openedge.pdt.ve 4 20001 2010-07-16 08:45:34.734
!MESSAGE An internal error occured
!STACK 0
java.lang.reflect.InvocationTargetException: Line 20: Unknown datatype for field c
at com.openedge.pdt.ve.editor.VisualDesignerFormLoader.run(VisualDesignerFormLoader.java:262)
at com.openedge.pdt.ve.editor.VisualDesigner.loadDesignEditor(VisualDesigner.java:803)
at com.openedge.pdt.ve.editor.VisualDesigner.doSafeLoadDesignEditor(VisualDesigner.java:765)
at com.openedge.pdt.ve.editor.VisualDesigner.doReload(VisualDesigner.java:710)
at com.openedge.pdt.ve.editor.AbstractVisualDesigner$2.run(AbstractVisualDesigner.java:456)
at java.lang.Thread.run(Thread.java:595)
Caused by: Line 20: Unknown datatype for field c
at com.openedge.pdt.core.codedom.BaseABLCodeDom.buildMemberField(BaseABLCodeDom.java:561)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.buildMemberField(VisualDesignerCodeDom.java:313)
at com.openedge.pdt.core.codedom.BaseABLCodeDom.buildCompileUnit(BaseABLCodeDom.java:132)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.buildCompileUnit(VisualDesignerCodeDom.java:195)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.<init>(VisualDesignerCodeDom.java:161)
at com.openedge.pdt.ve.editor.VisualDesignerFormLoader.run(VisualDesignerFormLoader.java:171)
... 5 more
Root exception:
Line 20: Unknown datatype for field c
at com.openedge.pdt.core.codedom.BaseABLCodeDom.buildMemberField(BaseABLCodeDom.java:561)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.buildMemberField(VisualDesignerCodeDom.java:313)
at com.openedge.pdt.core.codedom.BaseABLCodeDom.buildCompileUnit(BaseABLCodeDom.java:132)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.buildCompileUnit(VisualDesignerCodeDom.java:195)
at com.openedge.pdt.ve.editor.VisualDesignerCodeDom.<init>(VisualDesignerCodeDom.java:161)
at com.openedge.pdt.ve.editor.VisualDesignerFormLoader.run(VisualDesignerFormLoader.java:171)
at com.openedge.pdt.ve.editor.VisualDesigner.loadDesignEditor(VisualDesigner.java:803)
at com.openedge.pdt.ve.editor.VisualDesigner.doSafeLoadDesignEditor(VisualDesigner.java:765)
at com.openedge.pdt.ve.editor.VisualDesigner.doReload(VisualDesigner.java:710)
at com.openedge.pdt.ve.editor.AbstractVisualDesigner$2.run(AbstractVisualDesigner.java:456)
at java.lang.Thread.run(Thread.java:595)

FACT(s) (Environment):

Windows
OpenEdge 10.2x

CAUSE:

Bug# OE00199026

FIX:

Define the variable explicitly.

e.g.
DEFINE VARIABLE c AS INTEGER NO-UNDO.