Module: AssOle::Snippets::Shared::ValueTable

Defined in:
lib/ass_ole/snippets/shared/value_table.rb

Overview

Snippet for worcking with 1C ValueTable object

Examples:

like_ole_runtime External
include AssOle::Snippets::Shared::ValueTable

# Make new ValueTable with f1, f2, f3 columns
value_table :f1, :f2, :f3 # => WIN32OLE

# Make new ValueTable and insert into 1 row
actual = value_table :f1, :f2, :f3 do |vt_wrapper|
  vt_wrapper.add f1: 0, f2: 1, f3: 2
end # => WIN32OLE

# Make new ValueTable and insert into 3 rows
value_table :f1, :f2, :f3 do |vt_wrapper|
  3.times do |r|
    vt_wrapper.add do |row|
      row.f1 = r
      row.f2 = 10 + r
      row.f3 = 20 + r
    end
  end
end # => WIN32OLE

Defined Under Namespace

Classes: Wrapper

Instance Method Summary collapse

Instance Method Details

#value_table(*columns) {|Wrapper| ... } ⇒ WIN32OLE

Returns 1C ValueTable object.

Parameters:

  • columns (Array)

    ValueTable columns

Yields:

Returns:

  • (WIN32OLE)

    1C ValueTable object



61
62
63
64
65
66
67
68
69
# File 'lib/ass_ole/snippets/shared/value_table.rb', line 61

def value_table(*columns, &block)
  r = newObject('ValueTable')
  columns.each do |coll|
    r.Columns.Add(coll.to_s)
  end
  r = Wrapper.new(r)
  yield r if block_given?
  r.ole
end