You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

[ |../../index.htm#lansa/lansa050_1645.htm]
現在地: RAMP-TSガイド > VLF-WIN 画面ラッパー > 例: > 例3:IBM i ディスク使用量の表示

例3:IBM i ディスク使用量の表示

画面ラッパーは、非表示の5250画面から値を取得し、まったく異なる方法でその値を表示します。この例では、IBM i のディスク使用量を図で表示します。
 

 
Work with Disk Status 画面にアクセスするには、コマンド行にwrkdskstsと入力します。この例で、Work with Disk Status画面に指定された名前は「DiskStatus」です。
Disk Status画面では、サブファイルの%Use列を読み取り、グラフにそのデータを入力します。
 
Function Options(*DIRECT)
 
Begin_Com Role(*EXTENDS #VF_AC010) Height(559) Hint(*MTXTDF_DET1) Layoutmanager(#ATLM_1) Width(557)
 
Define_Com Class(#PRIM_GRID) Name(#DiskSts) Displayposition(1) Height(150) Left(109) Parent(#PANL_2) Rowheight(19) Tabposition(1) Top(15) Width(212)
Define_Com Class(#PRIM_GDCL) Name(#GDCL_1) Caption('Disk Unit') Captiontype(Caption) Displayposition(1) Parent(#DiskSts) Source(#VF_ELTYP) Width(29)
Define_Com Class(#PRIM_GDCL) Name(#GDCL_2) Caption('% Use') Captiontype(Caption) Displayposition(2) Parent(#DiskSts) Readonly(False) Source(#VF_ELTXTS) Width(30) Widthtype(Remainder)
 
Define_Com Class(#PRIM_GRPH) Name(#GRPH_1) Displayposition(1) Height(370) Left(0) Parent(#PANL_3) Scatterstyle(SymbolAtPoints+Solid) Surfacestyle(ConnectLinesInBlack) Tabposition(1) Top(0) Width(557) Xcaption('Disk Units') Ycaption('% Use')
Define_Com Class(#PRIM_GRCL) Name(#GRCL_1) Columnrole(Label) Displayposition(1) Parent(#GRPH_1) Source(#VF_ELTYP)
Define_Com Class(#PRIM_GRCL) Name(#GRCL_2) Columnsymbol(HollowUpTriangle) Displayposition(2) Parent(#GRPH_1) Source(#VF_ELWIDP)
 
Define_Com Class(#vf_sy122) Name(#myscreen_wrapper) Displayposition(3) Height(513) Left(144) Parent(#PANL_1) Top(24) Visible(False) Width(593)
 
Define_Com Class(#PRIM_PANL) Name(#PANL_1) Displayposition(1) Height(559) Layoutmanager(#SPLM_1) Left(0) Parent(#COM_OWNER) Tabposition(1) Tabstop(False) Top(0) Width(557)
 
Define_Com Class(#PRIM_ATLM) Name(#ATLM_1)
Define_Com Class(#PRIM_ATLI) Name(#ATLI_1) Attachment(Center) Manage(#PANL_1) Parent(#ATLM_1)
 
Define_Com Class(#PRIM_SPLM) Name(#SPLM_1)
 
Define_Com Class(#PRIM_PANL) Name(#PANL_2) Displayposition(1) Height(181) Layoutmanager(#FWLM_1) Left(0) Parent(#PANL_1) Tabposition(2) Tabstop(False) Top(0) Width(557)
Define_Com Class(#PRIM_PANL) Name(#PANL_3) Displayposition(2) Height(370) Layoutmanager(#ATLM_2) Left(0) Parent(#PANL_1) Tabposition(3) Tabstop(False) Top(189) Width(557)
 
Define_Com Class(#PRIM_SPLI) Name(#SPLI_1) Manage(#PANL_2) Parent(#SPLM_1) Weight(1)
Define_Com Class(#PRIM_SPLI) Name(#SPLI_2) Manage(#PANL_3) Parent(#SPLM_1)
Define_Com Class(#PRIM_ATLM) Name(#ATLM_2)
Define_Com Class(#PRIM_ATLI) Name(#ATLI_2) Attachment(Center) Manage(#GRPH_1) Parent(#ATLM_2)
Define_Com Class(#PRIM_FWLM) Name(#FWLM_1) Direction(TopToBottom) Flowoperation(Center) Margintop(15) Spacingitems(2)
Define_Com Class(#PRIM_FWLI) Name(#FWLI_3) Manage(#DiskSts) Parent(#FWLM_1)
 
Define_Com Class(#PRIM_PHBN) Name(#PHBN_1) Caption('Refresh Statistics') Displayposition(2) Left(331) Parent(#PANL_2) Tabposition(2) Top(15) Width(117)
 
Define_Com Class(#PRIM_FWLI) Name(#FWLI_6) Manage(#PHBN_1) Parent(#FWLM_1)
 

  • =============================================================================================
  • This example shows a graph with the percentage of activity of each of the IBM i disk units
  • =============================================================================================
    Mthroutine Name(uInitialize) Options(*REDEFINE)
     
  • Do any initialization defined in the ancestor
     
    Invoke Method(#Com_Ancestor.uInitialize)
     
    Set Com(#grph_1) Graphtype(Bar)
     
    Set Com(#myscreen_wrapper) Ucommand(#com_owner)
     
    Endroutine
     
    Mthroutine Name(uExecute) Options(*REDEFINE)
     
  • Do any execution logic defined in the ancestor
     
    Invoke Method(#Com_Ancestor.uExecute)
    Invoke Method(#myscreen_wrapper.MakeRampTSAvailable)
     
    Endroutine
     
    Evtroutine Handling(#myscreen_wrapper.RampTSAvailable)
     
  • Clear the lists
    Clr_List Named(#DiskSts)
    Clr_List Named(#grph_1)
     
  • Run teh scripts to navigate to work with disk status
  • The navigation only involves 3 screens: Login -> IBM i main menu, type wrkdsts in teh command line -> Destination Work with disk status.
     
    Invoke Method(#myscreen_wrapper.navigatetoscreen) Name(wrkdsksts)
     
    Endroutine
     
    Evtroutine Handling(#myscreen_wrapper.vHandleArrive) Arrivedscreen(#CurrentScreen) Previousscreen(#PreviousScreen) Arrivedpayload(#Payload)
     
    Define_Com Class(#prim_boln) Name(#MoreRecords)
     
    Case (#CurrentScreen)
     
    When Value_Is(= wrkdsksts)
     
  • Payloads are destroyed when the ARRIVE script finishes executing.
  • The payload is set to FIRST_ARRIVAL when teh enter key is sent in IBM i main menu to differentiate what caused the screen to arrive:
    *    SETVALUE("cmdline","wrkdsksts")
    *    SENDKEY(KeyEnter, "FIRST_ARRIVAL");
  • The same screen can arrive after sending the F10 or an F5, so we set payload to indicate so
    If (#Payload = RESTART_STATS)
     
    #myscreen_wrapper.sendkey Key(#myscreen_wrapper.KeyF5) Payload(REFRESH_STATS)
     
    Else
     
    If (#Payload = FIRST_ARRIVAL)
     
    #myscreen_wrapper.sendkey Key(#myscreen_wrapper.KeyF10) Payload(RESTART_STATS)
     
    Else
     
    #com_owner.uGetSubfilePage
     
    Endif
     
    Endif
     
    Endcase
    Set Com(#myscreen_wrapper) Visible(False)
    Endroutine
     
     
     
  • When RAMP-TS encounters screens like WRKDSKSTS or WRKACTJOB, it does not recognise the lists on them as subfiles (because they are not actually subfiles).
  • Instead they are recognised as multiple fields.
  • However, your scripts can still process them similarly to lists, as long as you follow a naming standard when naming the fields.
  • In our WRKDSKSTS screen we identified the first column as UNITn and the fourth column as USEDn
     
    Mthroutine Name(uGetSubfilePage)
     
    #listcount := 1
     
    Dowhile (#myscreen_wrapper.check_field_exists( ("USED" + #listcount.asstring) ))
     
    #myscreen_wrapper.getvalue From("UNIT" + #listcount.asstring) Value(#vf_eltyp)
    #myscreen_wrapper.getvalue From("USED" + #listcount.asstring) Value(#vf_eltxts)
    #VF_ELWIDP := #vf_eltxts.trim.asnumber
     
    Add_Entry To_List(#DiskSts)
    Add_Entry To_List(#grph_1)
     
    #listcount += 1
     
    Endwhile
     
    Endroutine
     
     
    Mthroutine Name(uTerminate) Options(*REDEFINE)
     
  • Do any termination defined in the ancestor
     
    Invoke Method(#Com_Ancestor.uTerminate)
     
     
    Endroutine
     
     
  • Refresh statistics
    Evtroutine Handling(#PHBN_1.Click)
     
    Invoke Method(#myscreen_wrapper.MakeRampAvailable) Foraction(RampTSAvailable)
     
    Endroutine
     
    End_Com
     
     
     
    [ |../../index.htm#lansa/lansa050_1645.htm]
  • No labels