Theme:
v
SSGear Price List

Other pages of interest:

Price List

The SSGear product Price List is as follows:

Note that my SSGear DLL product references and uses the SpreadsheetGear DLL. According to the SpreadsheetGear license I am not allowed to sell you my SSGear DLL unless you first purchase a SpreadsheetGear Subscription. You must show me a proof of purchase of your SpreadsheetGear Subscription before I am allowed to send you SSGear.

Order your SpreadsheetGear license to https://www.spreadsheetgear.com/downloads/purchase.aspx (cost is $999)

Both the SSGear license and the SpreadsheetGear license are "per developer"

Order your copy(ies) of SSGear to eric@lescasse.com

The Prices APL function

The above APL window contains an SSGear object which displays the SSGear Price List.

This is another use you can make of SSGear: customize its display (remove the Formula Bar, hide row column headings, hide grid lines, hide scroll bars, hide tabs, etc. to display nice looking on screen reports.

Here is, as an example, the Prices APL function (part of the SSGear.w3 workspace) which produces the above window:

    ∇ Prices;prices;Z;col2title;col3title;col4title
[1]
[2]   SSG''     ⍝ creates an APL Form with an empty SSGear object
[3]
[4]   col2title←'without',⎕tclf,'Source',⎕tclf,'Code'
[5]   col3title←'with one year',⎕tclf,'Support and',⎕tclf,'Upgrade Subscription'
[6]   col4title←'one year',⎕tclf,'Subscription',⎕tclf,'Renewal'
[7]
[8]   prices←0 4⍴⊂''
[9]   prices←prices⍪'LC.Objects.SSGear.dll Prices' '' '' ''
[10]  prices←prices⍪''col2title col3title col4title
[11]  prices←prices⍪⊂''
[12]  prices←prices⍪'1 developer License' 1000 0 0
[13]  prices←prices⍪'2 developer Licenses'   0 0 0
[14]  prices←prices⍪'3 developer Licenses'   0 0 0
[15]  prices←prices⍪'4 developer Licenses'   0 0 0
[16]  prices←prices⍪'5 developer Licenses'   0 0 0
[17]  prices←prices⍪'Site License'           0 0 0
[18]  prices←prices⍪⊂''
[19]  prices←prices⍪'Source Code (optional)'2500'' ''
[20]  prices←prices⍪⊂''
[21]  prices←prices⍪'You must additionally have acquired one SpreadsheetGear Subscription ($ 999) per' '' '' ''
[22]  prices←prices⍪'developer.  Buy it from:  https://www.spreadsheetgear.com/downloads/purchase.aspx' '' '' ''
[23]
[24]  Z←⎕wi'formulabarvisible'0
[25]  Z←⎕wi'gridheadings'0
[26]  Z←⎕wi'gridlines'0
[27]  Z←⎕wi'hscrollbarvisible'0
[28]  Z←⎕wi'vscrollbarvisible'0
[29]  Z←⎕wi'tabsvisible'0
[30]  Z←⎕wi'add'1(2 2)prices
[31]  Z←⎕wi'setformula'1'c6:c10'(Convert2CC'=10*round(($c$5+(c5*0.9))/10,0)')
[32]  Z←⎕wi'setformula'1'd5:d10'(Convert2CC'=10*round((c5*1.35)/10,0)')
[33]  Z←⎕wi'setformula'1'e5:e10' '=d5-c5'
[34]  Z←⎕wi'setalignments'1'b2:e2' 'across' ''
[35]  Z←⎕wi'setalignments'1'c3:e3' 'right' 'bottom'
[36]  Z←⎕wi'setnumberformats' '' ''(Convert2CC'0" €"')
[37]  Z←⎕wi'setcolwidths'1'a:e'(110 240 100 100 100)
[38]  Z←⎕wi'setrowheights'1 1 65
[39]  Z←⎕wi'range' 'b2' ⋄ Z←⎕wi'bold'1 ⋄ Z←⎕wi'fontsize'16
[40]  Z←⎕wi'range' 'b2:e2' ⋄ Z←⎕wi'backcolor'128 128 255
[41]  Z←⎕wi'range'(Convert2CC'b3:b13,b3:e3') ⋄ Z←⎕wi'backcolor'224 224 255
[42]  Z←⎕wi'setborders'1(Convert2CC'b2:e15,b2:e2,b3:e3,b3:b13,b14:e15')'thin'(192 192 255)'thick'(0 0 128)
[43]  Z←⎕wi'range' 'c5'
[44]
    ∇

The SSG utility used on line 2 of the Prices function just creates a resizable APL form with an empty SSGear object in it. It reads:

    ∇ ontop SSG rarg;Z;height;left;width
[1]   :select rarg
[2]   :case''
[3]       (height width)←480 770
[4]       left←¯5+(2⊃'#'⎕wi'*size')-width÷2⊃,'#'⎕wi'units'
[5]       :if 0=⎕nc'ontop' ⋄ ontop←0 ⋄ :endif
[6]       Z←'ff'⎕wi'*Create' 'Form'('*style'(16×ontop))('*scale'5)('*size'height width)('*where'1.3125 left)'*Hide'
[7]       ⎕wself←'ff'⎕wi'*.ss.Create' 'LC.Objects.SSGear.SSGear'('*where'¯2 ¯2,4+'ff'⎕wi'*size')
[8]       Z←'ff'⎕wi'*caption'('LC.Objects.SSGear.dll v',⎕wi'*xVersion')
[9]
[10]      ⍝ Events
[11]      Z←'ff'⎕wi'*onResize' 'SSGear"onResize"'
[12]
[13]      ⍝ Show the form
[14]      Z←'ff'⎕wi'*Show'
[15]
[16]      ⍝ Sends focus back to APL Session
[17]      :if 16='ff'⎕wi'*style'
[18]          Z←⎕wcall'SetForegroundWindow'('#'⎕wi'hwndmain')
[19]          Z←⎕wcall'SetFocus'('#'⎕wi'hwndmain')
[20]      :endif
[21]
[22]  :case'onResize'
[23]      Z←⎕wi'*.ss.where'¯2 ¯2,4+⎕wi'*.size'
[24]  :endselect
    ∇

The Prices function above also demonstrates the use of Excel-compatible Formulae in SSGear

The Convert2CC APL utility is normally not required if you know your culture, but if you want the Prices function to run fine in any culture, then you need to convert the List Separators and Decimal Separators to the ones used in the culture that runs Prices.

Here is the Convert2CC function:

    ∇ range←Convert2CC range;Z;S;⎕wself;D
[1]   ⍝∇ range←Convert2CC range -- Converts list separators and decimal separators from US culture to Current Culture
[2]   ⍝∇ If you define your formulae, ranges, etc. using US syntax in your code, you need to apply Convert2CC on them
[3]   ⍝∇ so that they be converted to the current culture before they can be passed to SSGear properties and methods
[4]   ⍝∇ Example:
[5]   ⍝∇       Convert2CC'=10*round(($c$5+(c5*0.9))/10,0)'
[6]   ⍝∇ =10*round(($c$5+(c5*0,9))/10;0)
[7]
[8]   :if','∊range
[9]   :orif'.'∊range
[10]      :if~0∊⍴⎕wself
[11]      :andif 1∊(⎕wi'*class')⎕ss'LC.Objects.SSGear.SSGear'
[12]      :andif ⎕wi'*opened'
[13]          S←⎕wi'*xListSeparator'
[14]          D←⎕wi'*xDecimalSeparator'
[15]      :else
[16]          Z←'setlist'⎕wi'*Create' 'LC.Objects.SSGear.SSGear'
[17]          S←'setlist'⎕wi'*xListSeparator'
[18]          D←'setlist'⎕wi'*xDecimalSeparator'
[19]          Z←'setlist'⎕wi'*Delete'
[20]      :endif
[21]      ((range=',')/range)←S
[22]      ((range='.')/range)←D
[23]  :endif
[24]  range←AV2ANSI range
    ∇