Developers create a lot of little "snippets" that help them in a lot of different scenarios. Some of them evolve into larger tools; others turn into hidden gems that get shared among a small select few.
(hmmm....SET TANGENT ON ....sounds like an interesting idea for a VFPX project - a snippet sharer - damn! don't they have that in VS? - I DIDN'T think of that when I was first writing this - why can't I think of something that VS DOESN'T have? - OK - SET TANGENT OFF - I do think we DO need an IntellisenseX manager that allows others to post useful Intellisense snippets)
However, here's something I had to quickly build today and others likely have other ways of doing this but....
Problem: I wanted to quickly take the content of a small query subset table and dump it into a document (text) for easily review. (no, not everyone deals with XML)
Update: YES -> you COULD do all the silly code I have down below here but Steve Black, guardian of all cool hidden things in VFP, reminded me of :
_VFP.Datatoclip()
In my efforts at least, a VERY underused feature that would have saved me a bunch of time today (ok, so maybe only the 2 minutes it took to write the stuff below, but still)
Original Post:
While I could certainly say
CURSORTOXML () and then be done with it - I wanted it to be a little more readable.
** Function to copy current alias to a clipboard using tabs
lc = ""
FOR lni = 1 TO FCOUNT()
lc = lc + TRANSFORM(FIELD(lni))+" "
ENDFOR
lc = lc+CHR(13)
SCAN
FOR lni = 1 TO FCOUNT()
lc = lc + TRANSFORM(EVALUATE(FIELD(lni)))+" "
ENDFOR
lc = lc+CHR(13)
ENDSCAN
_CLIPTEXT = lc
Of course, you could further enhance this more for HTML purposes:
lc = "<table><tr>"
FOR lni = 1 TO FCOUNT()
lc = lc + "<th>TRANSFORM(FIELD(lni))+"</th>"
ENDFOR
lc = lc+"</tr>"
SCAN
lc = lc + "<tr>"
FOR lni = 1 TO FCOUNT()
lc = lc + "<td>"+TRANSFORM(EVALUATE(FIELD(lni)))+"</td>"
ENDFOR
lc = lc+"</tr>"
ENDSCAN
lc = lc + "</table>"
_CLIPTEXT = lc
(hint: you can past raw HTML into things like Word and Excel and it's automatically formatted)
Yes, I know this isn't elegant but it worked exceptionally well for what I needed.
I would run a quick query on some data, run this function and then just paste it.
Quick and Dirty - just when you need it.
(hmmm....SET TANGENT ON ....sounds like an interesting idea for a VFPX project - a snippet sharer - damn! don't they have that in VS? - I DIDN'T think of that when I was first writing this - why can't I think of something that VS DOESN'T have? - OK - SET TANGENT OFF - I do think we DO need an IntellisenseX manager that allows others to post useful Intellisense snippets)
However, here's something I had to quickly build today and others likely have other ways of doing this but....
Problem: I wanted to quickly take the content of a small query subset table and dump it into a document (text) for easily review. (no, not everyone deals with XML)
Update: YES -> you COULD do all the silly code I have down below here but Steve Black, guardian of all cool hidden things in VFP, reminded me of :
_VFP.Datatoclip()
In my efforts at least, a VERY underused feature that would have saved me a bunch of time today (ok, so maybe only the 2 minutes it took to write the stuff below, but still)
Original Post:
While I could certainly say
CURSORTOXML () and then be done with it - I wanted it to be a little more readable.
** Function to copy current alias to a clipboard using tabs
lc = ""
FOR lni = 1 TO FCOUNT()
lc = lc + TRANSFORM(FIELD(lni))+" "
ENDFOR
lc = lc+CHR(13)
SCAN
FOR lni = 1 TO FCOUNT()
lc = lc + TRANSFORM(EVALUATE(FIELD(lni)))+" "
ENDFOR
lc = lc+CHR(13)
ENDSCAN
_CLIPTEXT = lc
Of course, you could further enhance this more for HTML purposes:
lc = "<table><tr>"
FOR lni = 1 TO FCOUNT()
lc = lc + "<th>TRANSFORM(FIELD(lni))+"</th>"
ENDFOR
lc = lc+"</tr>"
SCAN
lc = lc + "<tr>"
FOR lni = 1 TO FCOUNT()
lc = lc + "<td>"+TRANSFORM(EVALUATE(FIELD(lni)))+"</td>"
ENDFOR
lc = lc+"</tr>"
ENDSCAN
lc = lc + "</table>"
_CLIPTEXT = lc
(hint: you can past raw HTML into things like Word and Excel and it's automatically formatted)
Yes, I know this isn't elegant but it worked exceptionally well for what I needed.
I would run a quick query on some data, run this function and then just paste it.
Quick and Dirty - just when you need it.
Comments
See - I KNEW there was an easier way - it just needs to be made more visible
Thanks Steve!