PdcWindows.ActiveWindow

From External Bemet Wiki
Revision as of 09:03, 13 May 2016 by TC (talk | contribs)
Jump to navigation Jump to search

Declaration

ActiveWindow as PdcWindow

Description

Returns the window object of the active window

Notes

This property returns the window object for the active window in Plan-de-CAMpagne.

Code example

Loop through the selected rows of the active window if it is the calculationlist and shows the calculation text. !!! Note !!! Do not use a message box before reading the active window's key values into a stringlist. The click on the message box will change the selection to only the last selected line.

dim activewindow
dim intTel
dim objCalc
dim KeyValues

    set ActiveWindow = pdc.Windows.ActiveWindow
    if ActiveWindow.WindowKey = "32" then 'Calculationlist
      set KeyValues = ActiveWindow.KeyValues
      for intTel = 0 to KeyValues.Count -1
        set objCalc = pdc.OpenCalculation(KeyValues(intTel))
        if IsValid(objCalc) then
          MsgBox objCalc.Text
        end if
      Next
    else
      msgbox "This script does not work with the opened window in PdC (Windowkey " & ActiveWindow.WindowKey & ")." & vbCrLf & _
             "It works only with the calculationlist (Windowkey 32)."
    end if
    set KeyValues = nothing
    set objCalc = nothing
    set ActiveWindow = nothing

To get the selected rows of a sub grid (materials or operations in the calculation list) Loop through the grids of the calculation list and show the grid names. Loop through the selected rows of the material and operation datagrid of the calculationlist and shows the selected ID's. !!! Note !!! Do not use a message box before reading the active window's key values into a stringlist. The click on the message box will change the selection to only the last selected line.

dim objActWin
dim objActGrid

  set objActWin = pdc.Windows.ActiveWindow
  if objActWin.WindowKey = "32" then
    for lngCnt = 0 to objActWin.DataGrids.Count - 1
      Memo1.Lines.Add objActWin.DataGrids.items(lngCnt)
    next

    Memo1.Lines.Add ""
    set objActGrid = objActWin.Datagrids.GetGridByName("PDCGrid2", "DM_ID")
    Memo1.Lines.Add objActGrid.SelectionKey
    for lngCnt = 0 to objActGrid.SelectedValues.Count - 1
      Memo1.Lines.Add objActGrid.SelectedValues(lngCnt)
    next

    Memo1.Lines.Add ""
    set objActGrid = objActWin.Datagrids.GetGridByName("PDCGrid3", "DB_ID")
    Memo1.Lines.Add objActGrid.SelectionKey
    for lngCnt = 0 to objActGrid.SelectedValues.Count - 1
      Memo1.Lines.Add objActGrid.SelectedValues(lngCnt)
    next
  end if

Availability

Available from 4.0 onwards.