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 without typing of columns 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

# Make new ValueTable with typing of columns and insert into 3 rows
value_table f1:%w{String Boolean}, f2:[String, Date], f3:'String,Date' 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

Modules: Columns Classes: Wrapper

Instance Method Summary collapse

Instance Method Details

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

Returns 1C ValueTable object.

Parameters:

  • columns (Array)

    ValueTable columns

  • columns_with_types (Hash)

    ValueTable columns with column type names [Array] like %wOtheTypeName or [String] like ‘TypeName, OtheTypeName’

Yields:

Returns:

  • (WIN32OLE)

    1C ValueTable object



102
103
104
105
106
107
108
# File 'lib/ass_ole/snippets/shared/value_table.rb', line 102

def value_table(*columns, **columns_with_types, &block)
  r = newObject('ValueTable')
  Columns.make(r, columns, columns_with_types, ole_connector)
  r = Wrapper.new(r)
  yield r if block_given?
  r.ole
end