Same here. Works now. Can use it from C#. Thank you. However JVERSION says J806(...). Why so?
Sent from my iPhone > On 19 Apr 2017, at 13:24, David Mitchell <[email protected]> wrote: > > Bill, > > I loaded the new j dll and redid the external registration with your new > j.dll. > > The Excel com tests now work with J805: > > jopen > print jcmd("JVERSION") > Engine: j806/j32/windows > Beta: commercial/2017-04-19T23:40:20 > Library: 8.05.14 > Platform: Win 32 > Installer: J805 install > InstallPath: c:/users/me/downloads/j/j805 > Contact: www.jsoftware.com > > Thanks, > David Mitchell > >> On 4/19/2017 11:57, bill lam wrote: >> Thanks David for the insight. >> >> I rebuilt the j805 j.dll again and uploaded to >> www.jsoftware.com/download/jengine/j805-release/windows/j32 >> j_rebult2.dll >> >> Only the typelib has changed, all other j engine source should >> be the same as j805-release-a. >> >> I tested it ok on vs2013 and vs2017. Hopefully the issue is now >> resolved. >> >> Вт, 18 апр 2017, Herbert Weissenbaeck // Privat написал(а): >>> Thank you. Interesting observation. >>> Any chance to get that fixed/patched in J805? >>> >>>> On 18 Apr 2017, at 13:27, David Mitchell <[email protected]> wrote: >>>> >>>> Folks, >>>> >>>> I tried some tests using Excel's com interface and j.dll from j602, j804, >>>> j805 and j64-806, all on Windows 10. I found these things. >>>> >>>> 1. The built-in registration with j602 ("%~dp0j.exe" /regserver) continues >>>> to work. It registered j.exe and j.dll and I was able to use j.dll in >>>> Excel macros after selecting the JDLLServer Type Library in References-VBA >>>> Project. >>>> >>>> 2. External registration of j.dll in j804 worked fine (regsvr32 >>>> bin\j.dll). I was able to use the J804 j.dll in Excel as above. >>>> >>>> 3. External registration of j805 said it worked, but JDLLServer Type >>>> Library did not show up in Excel. >>>> >>>> 4. I ran some Registry searches and found that with j602 and j804, there >>>> were a set of keys created starting with this ID: >>>> HKEY_CLASSES_ROOT\TypeLib\{21EB05EB-1AB3-11CF-A2AC-8FF70874C460} >>>> HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{21EB05EA-1AB3-11CF-A2AC-8FF70874C460} >>>> HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{21EB05EB-1AB3-11CF-A2AC-8FF70874C460} >>>> that defined the JDLLServer Type Library and JDLLServer. >>>> >>>> 5. In J805, the Registry keys that were created by the registration >>>> process for JDLLServer Type Library were these: >>>> HKEY_CLASSES_ROOT\TypeLib\{00000000-0000-0000-0000-000000000000} >>>> HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{00000000-0000-0000-0000-000000000000} >>>> HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{00000000-0000-0000-0000-000000000000} >>>> which were not seen by Excel. >>>> >>>> 6. I tried the following grep's in the various bin directories: >>>> >>>> C:\Users\me\j602\bin>grep -i 8FF70874C460 * >>>> Binary file j.dll matches >>>> Binary file j.exe matches >>>> >>>> C:\Users\me\j804\bin>grep -i 8FF70874C460 * >>>> Binary file j.dll matches >>>> Binary file jqt.exe matches >>>> >>>> C:\Users\me\Downloads\j\j805\bin>grep -i 8FF70874C460 * >>>> Binary file jqt.exe matches >>>> (no j.dll) >>>> >>>> C:\Users\me\Downloads\j\j64-806\bin>grep -i 8FF70874C460 * >>>> Binary file jqt.exe matches >>>> (no j.dll) >>>> >>>> So it appears that starting in J805, the J dll no longer has a non-zero >>>> UUID for registering j.dll. >>>> >>>> David Mitchell >>>> >>>>> On 4/15/2017 07:45, Herbert Weissenbaeck // Privat wrote: >>>>> no success with vs 2015 and vs 2017. >>>>> same error as before. >>>>> have installed the new dll, unregistered and re-registered with >>>>> syswow64\regsvr32. >>>>> >>>>> Sent from my iPhone >>>>> >>>>>> On 15 Apr 2017, at 07:17, Herbert Weissenbaeck // Privat >>>>>> <[email protected]> wrote: >>>>>> >>>>>> Is there a chance to have the j805 j.dll re-built in a way that makes it >>>>>> usable? >>>>>> I need a functioning j.dll for serious work/calculations and would >>>>>> prefer not to use a beta version but the latest stable release. Or is >>>>>> j806 beta considered safe and stable enough? >>>>>> >>>>>> Sent from my iPhone >>>>>> >>>>>>> On 15 Apr 2017, at 01:52, bill lam <[email protected]> wrote: >>>>>>> >>>>>>> There should be some mistake when building the j805 j.dll. >>>>>>> However j806 beta seems working again. >>>>>>> >>>>>>> >>>>>>> Пт, 14 апр 2017, Herbert Weissenbaeck // Privat написал(а): >>>>>>>> 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 >>>>>>> >>>>>>> -- >>>>>>> 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 >>> >>> >>> ---------------------------------------------------------------------- >>> 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
