I tried to refer to the j.dll directly. 
VS tells me "A reference to (path...)\j.dll could not be added"

i wonder, why j804 behaves differently.

Sent from my iPhone

> On 14 Apr 2017, at 08:35, bill lam <[email protected]> wrote:
> 
> not sure why it can not add reference in vs.  actually you don't have to
> add jdllserver to reference if you don't need intelligent sense.
> 
> On 14 Apr, 2017 7:57 pm, "Herbert Weissenbaeck // Privat" <
> [email protected]> wrote:
> 
>> bill,
>> thank you for your support.
>> using syswow64/regsvr32 does not give any error message, confirms that the
>> dll is registered, but does not resolve my problem. the error message i
>> receive when trying to add the reference to J DLL Server in VS remains
>> unchanged.
>> best
>> herbert
>> 
>> Sent from my iPhone
>> 
>>> On 14 Apr 2017, at 00:36, bill lam <[email protected]> wrote:
>>> 
>>> sorry, it should be syswow64
>>> 
>>> Пт, 14 апр 2017, bill lam написал(а):
>>>> From your previous msg, it said
>>>> 'C:\Program Files\j805\bin\j.dll'
>>>> 
>>>> please check this is a J32 installation and have registered it
>>>> using wow64/regsvr32.
>>>> 
>>>> Чт, 13 апр 2017, Herbert Weissenbaeck // Privat написал(а):
>>>>> I am actually compiling for 32bits (x86) only. (That's sufficient for
>> this stage of my development.)
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>>> On 13 Apr 2017, at 22:22, bill lam <[email protected]> wrote:
>>>>>> 
>>>>>> 32-bit inproc server must be used with an 32-application.
>>>>>> 32-bit out-of-process server can be used with either 32 or
>>>>>> 64 application.  Please confirm what are the intended 32/64 bit
>>>>>> version of jdllserver and application (not visual studio).
>>>>>> 
>>>>>> jdllserver is in-proc server so that 32/64 bit must match, with
>>>>>> application. use regsvr32 inside wow64 folder to register the
>>>>>> 32-bit j.dll
>>>>>> 
>>>>>> Чт, 13 апр 2017, Herbert Weissenbaeck // Privat написал(а):
>>>>>>> Robert,
>>>>>>> 
>>>>>>> coincidentally I had the last Windows update just one hour ago; but
>> the problem was there before and after.
>>>>>>> 
>>>>>>> I am presently traveling and have no access to any other computer
>> than my notebook; thus I can not try to replicate my problem on another
>> machine.
>>>>>>> 
>>>>>>> (I am using VS 2017 Enterprise on an English Windows 10 an a
>> ThinkPad P50 Xeon machine to develop an app that connects to J DLL Server.
>> Had 804 so far but would like to switch to 805.)
>>>>>>> 
>>>>>>> Is anybody successfully using the 32 bit 805 DLL Server from VS in a
>> .net application?
>>>>>>> 
>>>>>>> Best
>>>>>>> Herbert
>>>>>>> 
>>>>>>>> On 13 Apr 2017, at 21:09, robert therriault <[email protected]>
>> wrote:
>>>>>>>> 
>>>>>>>> Herbert,
>>>>>>>> 
>>>>>>>> This may not be related at all, but is this recent?  I read that
>> Windows 10 had the Creative update pushed on it in the last couple of days
>> and if it was like the last time it may break some things. Not sure why it
>> would affect 805 and not 804. ;-)
>>>>>>>> 
>>>>>>>> http://www.infoworld.com/article/3189776/microsoft-
>> windows/microsofts-critical-windows-and-office-patches-
>> present-a-panoply-of-problems.html
>>>>>>>> 
>>>>>>>> Cheers, bob
>>>>>>>> 
>>>>>>>>> On Apr 13, 2017, at 5:57 PM, Herbert Weissenbaeck // Privat <
>> [email protected]> wrote:
>>>>>>>>> 
>>>>>>>>> Thank you. Tried to run vs as admin.
>>>>>>>>> same result
>>>>>>>>> 
>>>>>>>>> uninstalled and re-installed j805 into users directory.
>>>>>>>>> same (negative) result.
>>>>>>>>> 
>>>>>>>>> I can however use J EXE Server via COM also in the 805 version
>> (but want J DLL Server, which still gives me an error).
>>>>>>>>> 
>>>>>>>>> Any more ideas?
>>>>>>>>> 
>>>>>>>>> Sent from my iPhone
>>>>>>>>> 
>>>>>>>>>> On 13 Apr 2017, at 20:18, bill lam <[email protected]> wrote:
>>>>>>>>>> 
>>>>>>>>>> I am not sure. IIRC It works for me. Perhaps it is a security
>> issue. try
>>>>>>>>>> run visual studio as admin.
>>>>>>>>>> 
>>>>>>>>>> program files is protected, not sure if this is related to your
>> problem.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 14 Apr, 2017 7:48 am, "Herbert Weissenbaeck // Privat" <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>> 
>>>>>>>>>> its regsvr32 without the "/r", i suppose.
>>>>>>>>>> 
>>>>>>>>>> in an admin console the registration seems to work. the J DLL
>> Server
>>>>>>>>>> (version 3) type library shows up in visual studio with file
>> version 805.
>>>>>>>>>> (the j804 one showed file version 701.)
>>>>>>>>>> 
>>>>>>>>>> however selecting it gives an error: "A reference to 'J DLL
>> Server (version
>>>>>>>>>> 3) Type Library' could not be added. Could not register the
>> ActiveX type
>>>>>>>>>> library 'C:\Program Files\j805\bin\j.dll'.
>>>>>>>>>> 
>>>>>>>>>> the same thing works without any problem with j804. why?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Sent from my iPhone
>>>>>>>>>> 
>>>>>>>>>>> On 13 Apr 2017, at 19:22, bill lam <[email protected]> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> typo, regsvr32
>>>>>>>>>>> 
>>>>>>>>>>>> On 14 Apr, 2017 7:21 am, "bill lam" <[email protected]>
>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> jdllserver should work for all versions. try open an admin
>> command prompt
>>>>>>>>>>>> at bin folder and type
>>>>>>>>>>>> regvsr32 /r j.dll
>>>>>>>>>>>> 
>>>>>>>>>>>> On 14 Apr, 2017 6:17 am, "Herbert Weissenbaeck // Privat" <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> On my Windows 10 machine J805 fails to register as a COM Server.
>>>>>>>>>>>> 
>>>>>>>>>>>> When I use jreg.cmd under 804 I get a "J DLL Server (version 3)
>> Type
>>>>>>>>>>>> Library" in the kist of available Type Libraries in MS Visual
>> Studio.
>>>>>>>>>>>> 
>>>>>>>>>>>> When I do the same with J805, no type library is registered.
>>>>>>>>>>>> 
>>>>>>>>>>>> Is this a bug or a feature? I would prefer working with 805
>> over 804.
>>>>>>>>>>>> 
>>>>>>>>>>>> Any hints/fixes?
>>>>>>>>>>>> 
>>>>>>>>>>>>> On 13 Apr 2017, at 16:23, 'Bo Jacoby' via Programming <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi Louis.
>>>>>>>>>>>>> Thanks for asking. I regret not knowing the answer.
>>>>>>>>>>>>> An ordinal fraction is like an array in J, with minor
>> differences.
>>>>>>>>>>>>> - Arrays have names. Ordinal fractions have numbers.
>>>>>>>>>>>>> - An array has a finite number of dimensions. An ordinal
>> fraction has
>>>>>>>>>>>> an infinite number of dimensions.
>>>>>>>>>>>>> - Arrays may have different shapes. All ordinal fractions have
>> the
>>>>>>>>>>>> same shape: 9 9 9 9 . . .
>>>>>>>>>>>>> - Arrays have zero-origin indexing (0 1 . . .  n). Ordinal
>> fractions
>>>>>>>>>>>> have one-origin indexing (1 2 3 4 5 6 7 8 9).
>>>>>>>>>>>>> 
>>>>>>>>>>>>> - Arrays have elements. Ordinal fractions do not have elements.
>>>>>>>>>>>>> - Arrays may have subarrays. All ordinal fractions have
>> subordinate
>>>>>>>>>>>> ordinal fractions.
>>>>>>>>>>>>> - Array elements contain data. Any ordinal fraction may
>> contain a data
>>>>>>>>>>>> element.
>>>>>>>>>>>>> Ordinal fractions were invented (by me) in 1980, but have had
>> limited
>>>>>>>>>>>> dissemination so far. I made programs in fortran and pascal and
>> basic for
>>>>>>>>>>>> manipulating ordinal fraction files, but I have not managed to
>> do it in
>>>>>>>>>> J.
>>>>>>>>>>>> The programs were general, because the logic is in the data
>> file and not
>>>>>>>>>> in
>>>>>>>>>>>> the program. I have been alone doing this.
>>>>>>>>>>>>> Thanks! Bo.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Den 20:08 torsdag den 13. april 2017 skrev Louis de Forcrand <
>>>>>>>>>>>> [email protected]>:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi Bo,
>>>>>>>>>>>>> This is cool.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> As for the way you suggest using it here, isn't it equivalent
>> to
>>>>>>>>>>>> (without the first six rows of your data):
>>>>>>>>>>>>> 
>>>>>>>>>>>>> (~.@[ ,. +//.)/@|:
>>>>>>>>>>>>> ?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Louis
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On 12 Apr 2017, at 21:57, 'Bo Jacoby' via Programming <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi Joe!
>>>>>>>>>>>>>> My favorite datastructure is ORDINAL FRACTIONS - the algebra
>> of data
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> |  |    |
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> |    |
>>>>>>>>>>>>>> ORDINAL FRACTIONS - the algebra of data
>>>>>>>>>>>>>> This paper was submitted to the 10th World Computer Congress,
>> IFIP 1986
>>>>>>>>>>>> conference, but rejected by the referee....  |  |
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> |
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Your data are coded like this
>>>>>>>>>>>>>> 10 Joe
>>>>>>>>>>>>>> 20 Bob
>>>>>>>>>>>>>> 30 Jane
>>>>>>>>>>>>>> 01 blue
>>>>>>>>>>>>>> 02 red
>>>>>>>>>>>>>> 03 purple
>>>>>>>>>>>>>> 11 1
>>>>>>>>>>>>>> 11 -1
>>>>>>>>>>>>>> 11 1
>>>>>>>>>>>>>> 22 1
>>>>>>>>>>>>>> 22 1
>>>>>>>>>>>>>> 22 3
>>>>>>>>>>>>>> 22 -1
>>>>>>>>>>>>>> 22 -1
>>>>>>>>>>>>>> 33 5
>>>>>>>>>>>>>> 33 -2
>>>>>>>>>>>>>> 33 2
>>>>>>>>>>>>>> (Written with double CRs because the mail program has a
>> history of
>>>>>>>>>>>> deleting my CRs).
>>>>>>>>>>>>>> Summation gives the result
>>>>>>>>>>>>>> 10 Joe
>>>>>>>>>>>>>> 20 Bob
>>>>>>>>>>>>>> 30 Jane
>>>>>>>>>>>>>> 01 blue
>>>>>>>>>>>>>> 02 red
>>>>>>>>>>>>>> 03 purple
>>>>>>>>>>>>>> 11 1
>>>>>>>>>>>>>> 22 3
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 33 5
>>>>>>>>>>>>>> I have not done the summation in J, but I'd like to do it.
>>>>>>>>>>>>>> Perhaps this helps you.
>>>>>>>>>>>>>> Bo.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Den 0:04 torsdag den 13. april 2017 skrev chris burke <
>>>>>>>>>>>> [email protected]>:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Incidentally, for production code, I suggest starting by
>> removing any
>>>>>>>>>>>> sales
>>>>>>>>>>>>>> not matched in returns and vice versa, so that the matching
>> algorithm
>>>>>>>>>> is
>>>>>>>>>>>>>> applied only to potential matches.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 2:53 PM, chris burke <
>> [email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Great.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> In case you need more complicated handling of the "gray area"
>>>>>>>>>>>>>>> transactions, I believe they would be relatively few in
>> number, so
>>>>>>>>>>>> most of
>>>>>>>>>>>>>>> the time you could do the matching efficiently, then check
>> for any
>>>>>>>>>> keys
>>>>>>>>>>>>>>> with returns preceding sales. For those, setting aside the
>> first such
>>>>>>>>>>>>>>> return and repeating should clear them quickly.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Timing should be well under 1 second for a million records.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 1:57 PM, Joe Bogner <
>> [email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Just for completeness, I added a line that incorporates the
>> sequence
>>>>>>>>>>>> check
>>>>>>>>>>>>>>>> into the cancel logic. Works great
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> NB. hui progressive index
>>>>>>>>>>>>>>>> NB. http://code.jsoftware.com/
>> wiki/Essays/Progressive_Index-Of
>>>>>>>>>>>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>>>>>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>>>>>>>>>>>> NB. result is the unmatched transactions
>>>>>>>>>>>>>>>> matchtrans=: 3 : 0
>>>>>>>>>>>>>>>> msk=. 0<{:"1 y
>>>>>>>>>>>>>>>> sales=. msk#y
>>>>>>>>>>>>>>>> returns=. (-.msk)#y
>>>>>>>>>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>>>>>>>>>>>> cancels=. ndx<#sales
>>>>>>>>>>>>>>>> NB. ensure cancel is after sale
>>>>>>>>>>>>>>>> cancels =. cancels *. (({."1 (<<(cancels)#ndx){sales) <
>> ({."1
>>>>>>>>>>>>>>>> (cancels#returns)))
>>>>>>>>>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 4:14 PM, Joe Bogner <
>> [email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Chris, this looks promising. Thanks for sharing. It's
>> nearly instant
>>>>>>>>>>>> on
>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>> million rows.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Which row had a return before a transaction? seq 10 was an
>> example
>>>>>>>>>>>> of a
>>>>>>>>>>>>>>>>> partial return. The hypothetical customer returned 2 out
>> of the 5
>>>>>>>>>>>>>>>> purchased
>>>>>>>>>>>>>>>>> prior. I added that example since technically per the
>> original spec
>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>> wouldn't be cancelled out in this pass.  It's a gray area
>> so I may
>>>>>>>>>> be
>>>>>>>>>>>>>>>> able
>>>>>>>>>>>>>>>>> to use this approach, especially since I don't see how to
>>>>>>>>>> incorporate
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>> time element into the progressive index.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Thanks again
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 3:52 PM, chris burke <
>> [email protected]>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> This might be done by comparing matrices of sales and
>> returns. The
>>>>>>>>>>>>>>>>>> function
>>>>>>>>>>>>>>>>>> below seems to be close to what you want. It doesn't
>> exactly match
>>>>>>>>>>>> your
>>>>>>>>>>>>>>>>>> example, but your example has cases where returns are
>> made before
>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>> transactions. Was this intentional?
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> The code should run faster than a looping solution.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Code:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> NB. hui progressive index
>>>>>>>>>>>>>>>>>> NB. http://code.jsoftware.com/
>> wiki/Essays/Progressive_Index-Of
>>>>>>>>>>>>>>>>>> oc=: i.~ (] - {) /:@/:
>>>>>>>>>>>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. ,
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> NB. argument is 3-col table of seq,key,qty
>>>>>>>>>>>>>>>>>> NB. result is the unmatched transactions
>>>>>>>>>>>>>>>>>> matchtrans=: 3 : 0
>>>>>>>>>>>>>>>>>> msk=. 0<{:"1 y
>>>>>>>>>>>>>>>>>> sales=. msk#y
>>>>>>>>>>>>>>>>>> returns=. (-.msk)#y
>>>>>>>>>>>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns
>>>>>>>>>>>>>>>>>> cancels=. ndx<#sales
>>>>>>>>>>>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns
>>>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Example:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> dat=: ".;._2 (0 : 0)
>>>>>>>>>>>>>>>>>> 1 1 1
>>>>>>>>>>>>>>>>>> 2 1 _1
>>>>>>>>>>>>>>>>>> 3 1 1
>>>>>>>>>>>>>>>>>> 4 2 1
>>>>>>>>>>>>>>>>>> 5 2 1
>>>>>>>>>>>>>>>>>> 6 2 3
>>>>>>>>>>>>>>>>>> 7 2 _1
>>>>>>>>>>>>>>>>>> 8 2 _1
>>>>>>>>>>>>>>>>>> 9 3 5
>>>>>>>>>>>>>>>>>> 10 3 _2
>>>>>>>>>>>>>>>>>> 11 3 2
>>>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> matchtrans dat
>>>>>>>>>>>>>>>>>> 3 1 1
>>>>>>>>>>>>>>>>>> 6 2 3
>>>>>>>>>>>>>>>>>> 9 3 5
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 9:35 AM, Joe Bogner <
>> [email protected]>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> I have a problem I'm trying to solve in different
>> languages. I
>>>>>>>>>>>> have a
>>>>>>>>>>>>>>>>>>> solution in SQL and also in kdb which largely resembles
>> the SQL
>>>>>>>>>>>>>>>>>> solution.
>>>>>>>>>>>>>>>>>>> I'm curious what a J solution would look like. More
>> specifically,
>>>>>>>>>>>> I'm
>>>>>>>>>>>>>>>>>>> interested in picking the brains of others here to see
>> if this
>>>>>>>>>> type
>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>>> problem can be solved without looping (some form of
>> scan?).
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> EDIT: Initially I wrote this up thinking the J solution
>> would
>>>>>>>>>>>>>>>> difficult,
>>>>>>>>>>>>>>>>>>> but it was actually fairly straightforward -- about 15
>> minutes,
>>>>>>>>>> but
>>>>>>>>>>>>>>>>>> still
>>>>>>>>>>>>>>>>>>> would like to see if there are alternatives. If nothing
>> else,
>>>>>>>>>> maybe
>>>>>>>>>>>>>>>> an
>>>>>>>>>>>>>>>>>>> interesting problem to share.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Example data:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> A store has a transaction log with a sequence for each
>>>>>>>>>> transaction.
>>>>>>>>>>>>>>>> The
>>>>>>>>>>>>>>>>>>> transaction log records a key for a unique customer/item
>>>>>>>>>>>> combination.
>>>>>>>>>>>>>>>>>> The
>>>>>>>>>>>>>>>>>>> transaction log records how many units were purchased or
>> returned.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Goal:
>>>>>>>>>>>>>>>>>>> Attempt to match up related transactions and cancel out
>> instances
>>>>>>>>>>>>>>>> when
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> customer/item combination is returned at the same
>> quantity as a
>>>>>>>>>>>>>>>> previous
>>>>>>>>>>>>>>>>>>> transaction
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Examples:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Joe buys 1 blue pen, which is defective, then returns
>> the 1
>>>>>>>>>>>> defective
>>>>>>>>>>>>>>>>>> blue
>>>>>>>>>>>>>>>>>>> pen, then buys another blue pen. EXPECTED: cancel out
>> first two
>>>>>>>>>>>>>>>>>>> transactions and leave the the last one for 1 pen
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Bob buys 2 red pens in two separate transactions. He
>> then buys 3
>>>>>>>>>>>>>>>> more.
>>>>>>>>>>>>>>>>>> He
>>>>>>>>>>>>>>>>>>> returns the first two purchases as two separate return
>>>>>>>>>>>> transactions.
>>>>>>>>>>>>>>>>>>> EXPECTED: cancel out all transactions except the one for
>> qty 3
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Jane buys 5 purple pens and subsequently returns two of
>> them. She
>>>>>>>>>>>>>>>> buys
>>>>>>>>>>>>>>>>>> two
>>>>>>>>>>>>>>>>>>> more. EXPECTED: No transactions match exactly, so
>> nothing is
>>>>>>>>>>>>>>>> cancelled
>>>>>>>>>>>>>>>>>> out
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Data:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> data=: 0 : 0
>>>>>>>>>>>>>>>>>>> seq key qty
>>>>>>>>>>>>>>>>>>> 1 1 1
>>>>>>>>>>>>>>>>>>> 2 1 _1
>>>>>>>>>>>>>>>>>>> 3 1 1
>>>>>>>>>>>>>>>>>>> 4 2 1
>>>>>>>>>>>>>>>>>>> 5 2 1
>>>>>>>>>>>>>>>>>>> 6 2 3
>>>>>>>>>>>>>>>>>>> 7 2 _1
>>>>>>>>>>>>>>>>>>> 8 2 _1
>>>>>>>>>>>>>>>>>>> 9 3 5
>>>>>>>>>>>>>>>>>>> 10 3 _2
>>>>>>>>>>>>>>>>>>> 11 3 2
>>>>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>>>>> tbl =: ,. ' ' cut every cutLF data
>>>>>>>>>>>>>>>>>>> 'seqs keys qtys' =: |: ". every }. tbl
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Goal:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals =: 0 : 0
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goal
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> cancelled
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> credit
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> ok
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> cancelled
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> cancelled
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> ok
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> credit
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> credit
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> ok
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> ok
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> ok
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> tbl,.(cutLF goals)
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> One approach:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> applycredits =: 3 : 0
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals=.(<'goal')
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> creditids=.0
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> for_i. (i. # seqs) do.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> key=.i{keys
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> seq=.i{seqs
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> qty=.i{qtys
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> nextcredit =.| {. qtys #~ ((key=keys)*(seqs>seq)*(qtys<
>> 0))
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> if. nextcredit = qty do.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals=.goals,<'cancelled'
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> creditids =. creditids, seqs #~
>> ((key=keys)*(seqs>seq)*(qtys<0))
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> elseif. creditids e.~ seq do.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals=.goals,<'credit'
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> elseif. do.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals=.goals,<'ok'
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> end.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> end.
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> goals
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> tbl ,. ( applycredits 0 )
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |seq|key|qty|goal |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |1 |1 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |2 |1 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |3 |1 |1 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |4 |2 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |5 |2 |1 |cancelled|
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |6 |2 |3 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |7 |2 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |8 |2 |_1 |credit |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |9 |3 |5 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |10 |3 |_2 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> |11 |3 |2 |ok |
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> +---+---+---+---------+
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> (cutLF goals) -: ( applycredits 0 )
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 1
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> thanks for any input
>>>>>>>>>>>>>>>>>>> ------------------------------
>> ------------------------------
>>>>>>>>>>>>>>>> ----------
>>>>>>>>>>>>>>>>>>> For information about J forums see
>> http://www.jsoftware.com/forum
>>>>>>>>>>>>>>>> s.htm
>>>>>>>>>>>>>>>>>> ------------------------------
>> ------------------------------
>>>>>>>>>>>> ----------
>>>>>>>>>>>>>>>>>> For information about J forums see
>> http://www.jsoftware.com/forum
>>>>>>>>>>>> s.htm
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> ------------------------------
>> ------------------------------
>>>>>>>>>>>> ----------
>>>>>>>>>>>>>>>> For information about J forums see
>> http://www.jsoftware.com/forum
>>>>>>>>>>>> s.htm
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>>>>> 
>>>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>>>> 
>>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>> 
>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>>> 
>>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>>> 
>>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>>> 
>>>>>>> ------------------------------------------------------------
>> ----------
>>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>>> 
>>>>>> --
>>>>>> regards,
>>>>>> ====================================================
>>>>>> GPG key 1024D/4434BAB3 2008-08-24
>>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>>>>> ------------------------------------------------------------
>> ----------
>>>>>> For information about J forums see http://www.jsoftware.com/
>> forums.htm
>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> 
>>>> --
>>>> regards,
>>>> ====================================================
>>>> GPG key 1024D/4434BAB3 2008-08-24
>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>> 
>>> --
>>> regards,
>>> ====================================================
>>> GPG key 1024D/4434BAB3 2008-08-24
>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> 
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to