e: command setthedata in the data grid api

Sadhu Nadesan sadhu at castandcrew.com
Wed Apr 22 20:55:07 EDT 2009


Aloha, Trevor

Well, I can send you the whole stack, and some sample data and you can 
see what else is going on!?!  But then I'd have to kill you.  Or get an 
NDA.  Ha ha.  Just kidding.  What I mean is, the sample data is all real 
customer data with social security numbers and other confidential info, 
and the application is a 3 tier architecture - rev stack front end, a 
cgi apache middle piece, and a back end SQL database piece, so it 
wouldn't work without all the pieces, and you'd need to be on our 
internal company network or have a VPN connection.  I think what I will 
do is create a simple stack to illustrate the problem.

But then again, maybe it is more straightforward to explain what I am 
trying to do, because, you might have an excellent suggestion and a 
better way!  So here goes.

Goal: delete verified data from the data grid and leave only the error data.

To elaborate, step 1, first the data grid is populated from a spread 
sheet that contains a bunch of info, including names and SSNs and so 
forth, but the source of the data was manual entry and they make 
mistakes.  So we want to find the mistakes. 

Step 2, a verification process runs that performs a number of different 
integrity checks comparing against the data base of record, and color 
codes the data in the grid, depending on if it's close but not exact, 
totally wrong or missing, exactly right, etc.  The kewl thing is that 
thanks to your help the user does not sit there for an undetermined leg 
nth of time watching some spinning wheel or hourglass, they can visually 
see as each integrity check on each cell is performed what color it 
turns, and know how it's progressing along.  Love that.  Scroll into 
view etc.

Next step is manual.  The user has to decide what are the errors that 
need fixing.  For example, there might be a misspelling of a name, the 
correct name is "The Artist Formerly Known As Prince" but the users have 
typed in "TAFKA Prince".  Do we let it go or fix it?

To assist the user in sorting through this data, I'd like a power tool, 
a choice that removes all the lines in the grid that have only valid 
data - only green cells - these cells also have had the token "Verified" 
appended to them (as in the code snippet previously sent).  Once 
distilled down to all errors, the user can manually delete the 
insignificant errors, then go on to the next step of creating a 'data to 
be corrected' report.

So my goal is to build this power tool.

Right now, perhaps due to my fumbling with the API, or not finding an 
example of exactly what would be the best way, I'm doing it like this 
(somewhat over simplified)

Grab all the dgtext of the grid and put it in a container
For each line of the container, if it contains "Verified", delete it
Put the container back as the dgtext of the grid

Now, when I do this without running the integrity checks - meaning, take 
the data out of the grid and then just put it back, it all comes back 
identical to the way it started.  Or if I delete some lines then take it 
out, put it back, again, all is well.

However, after running the verify step (and no mystery, I sent you the 
code), the lines that get back into the grid are split, after each word 
"Verified" a new line starts in the grid, so it appears (not proven) 
that CRs have been inserted.

So back to my question, what is your suggestion of a good way to detect 
lines in the grid that have a certain pattern in one of the cells and 
then delete that line?  I am thinking it would be better to do it in 
place, without taking the data out and putting it back, but I have not 
been able to figure out how yet in just studying the api manual and 
existing examples.

Your input is most appreciated, thank you.

Sadhu





> Hi Sadhu,
>
> I don't think that SetDataOfIndex is the culprit here. The relevant  
> code for SetDataOfIndex is as follows:
>
>   if pKey is not empty then
>      put pValue into sDataArray[pIndex][pKey]
>   else
>      put pValue into sDataArray[pIndex]
>   end if
>
> so the CR must be creeping in somewhere else. What else do you have  
> going on?
>
> Regards,



More information about the use-livecode mailing list