Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
Back to article list Search Articles Add Comment Printer friendly Direct link Par2: Multiple window layouts 2006-05-28 -- Bjarne Havnen Operating two different windows with same fields in the same procedure will
give you a lot of Warning Label Dupliated, but it can be done
The steps are
omit the original window declaration
Declare the window label as a window reference
copy the original window definition and give it another name, like
OriginalWindow
copy it once more and call it CopyWindow
In the embed before opening window, do a reference assignent
Case condition
Of whatever
Window &=Originalwindow
Of another
window &=Copywindow
else
Window &=OriginalWindow
End
If you like to avoid maintaining more than one copy ,make a template to
generate the original code with a copy label based on the
%StandardWindowGeneration. A sample is attached.
#Template(twowin,'make a reference copy of the window'),Family('cw20')
#Extension(twowin,'twowin')
#At(%dataSectionBeforewindow)
Omit('_originalwin')
#EndAT
#At(%dataSectionafterwindow)
_originalwin
%Window &Window
#Insert(%StandardWindowGenerationCopy)
#EndAT
#At(%BeforeWindowOpening)
%Window &=Original%Window
#Embed(%WindowReferenceAssignement,'Overide window refereence')
!condition for openeing do abvoe
#EndAT
#GROUP(%StandardWindowGenerationCopy),AUTO
#MESSAGE('Standard Window Generation',3)
#DECLARE(%NewWindowStatement)
#DECLARE(%CurrentOperationMode)
#IF(%WindowStatement)
#IF(SUB(%WindowStatement,1,11)='APPLICATION')
#SET(%NewWindowStatement,%WindowStatement)
#ELSIF(%WindowOperationMode='Use WINDOW setting')
#SET(%NewWindowStatement,%WindowStatement)
#ELSE
#SET(%CurrentOperationMode,SUB(%WindowStatement,LEN(%WindowStatement)-3,4))
#IF(%CurrentOperationMode = ',MDI')
#IF(%WindowOperationMode = 'MDI')
#SET(%NewWindowStatement,%WindowStatement)
#ELSE
#SET(%NewWindowStatement,SUB(%WindowStatement,1,LEN(%WindowStatement)-4))
#IF(%WindowOperationMode = 'MODAL')
#SET(%NewWindowStatement,%NewWindowStatement & ',MODAL')
#ENDIF
#ENDIF
#ELSIF(%CurrentOperationMode = 'ODAL')
#IF(%WindowOperationMode = 'MODAL')
#SET(%NewWindowStatement,%WindowStatement)
#ELSE
#SET(%NewWindowStatement,SUB(%WindowStatement,1,LEN(%WindowStatement)-6))
#IF(%WindowOperationMode = 'MDI')
#SET(%NewWindowStatement,%NewWindowStatement & ',MDI')
#ENDIF
#ENDIF
#ELSE
#SET(%NewWindowStatement,%WindowStatement)
#IF(%WindowOperationMode = 'MDI')
#SET(%NewWindowStatement,%NewWindowStatement & ',MDI')
#ELSIF(%WindowOperationMode = 'MODAL')
#SET(%NewWindowStatement,%NewWindowStatement & ',MODAL')
#ENDIF
#ENDIF
#ENDIF
#IF(EXTRACT(%WindowStatement,'ICON') AND NOT EXTRACT(%WindowStatement,'IMM'))
#SET(%NewWindowStatement,%NewWindowStatement & ',IMM')
#ELSIF(EXTRACT(%WindowStatement,'MAX') AND NOT EXTRACT(%WindowStatement,'IMM'))
#SET(%NewWindowStatement,%NewWindowStatement & ',IMM')
#ENDIF
Original%Window %NewWindowStatement
#DECLARE(%Indentation,LONG)
#DECLARE(%TestValue)
#SET(%Indentation,0)
#DECLARE(%ControlSourceLine)
#FOR(%Control)
#IF(%ControlIndent<%Indentation)
#LOOP
#SET(%Indentation,%Indentation-1)
%[22+(2*%Indentation)]Null END
#IF(%ControlIndent=%Indentation)
#BREAK
#ENDIF
#ENDLOOP
#ENDIF
#SET(%ControlSourceLine,%ControlStatement)
#IF(%MessageDescription)
#IF(%ControlType <> 'STRING')
#IF(NOT EXTRACT(%ControlStatement,'MSG'))
#FIND(%Field,%ControlUse)
#IF(%FieldDescription)
#SET(%ControlSourceLine,%ControlSourceLine & ',MSG(''' & QUOTE(%FieldDescription) & ''')')
#ENDIF
#ENDIF
#ENDIF
#ENDIF
%[22+(2*%Indentation)]Null %ControlSourceLine
#CASE(%ControlType)
#OF('OPTION')
#OROF('GROUP')
#OROF('SHEET')
#OROF('TAB')
#OROF('OLE')
#OROF('MENU')
#OROF('MENUBAR')
#OROF('TOOLBAR')
#SET(%Indentation,%Indentation+1)
#ELSE
#IF(NOT %FirstField)
#IF(NOT(%ControlMenu OR %ControlTool))
#SET(%FirstField,%Control)
#ENDIF
#ENDIF
#ENDCASE
#ENDFOR
#LOOP,WHILE(%Indentation)
#SET(%Indentation,%Indentation-1)
%[22+(2*%Indentation)]Null END
#ENDLOOP
%[20]Null END
#ENDIF
#IF(NOT(%FirstField))
#SET(%FirstField,1)
#ENDIF
Copy%Window %NewWindowStatement
#Embed(%CopyWindowStatement,'Copy of window content')
End
Today is November 21, 2024, 6:57 am This article has been viewed 35320 times.
|
|