Thanks
nick
Perhaps Glen Batchelor's MVWWW is what you need. I've not used it, but
it looks to do the job you are looking for without relying on terminal
emulation package functionality.
Setting the http response content-type=application/vnd.ms-excel should
get you what you want.
There are options you can consider such as ODBC and drive via Excel instead,
i.e. import data rather than pushing it out from the database. Other options
which are more radical include taking a look at Reality (switch from using
D3) as this can export data to CSV as if it was a standard MV file.
I'm sure others in the group will be able to give other suggestions.
Mark Fuller
"nickbro" <nicholas...@yahoo.com> wrote in message
news:1107444585.7...@l41g2000cwc.googlegroups.com...
I've looked at some other threads that suggest the same thing. The
only problem is that they say do this and this but don't tell you how.
I know it's a little pathetic but I need someone to hold my hand and
walk me through or point me to somewhere that will. Please be gentle
-- I'm new at this.
Thanks,
Nick
> I am looking for a way to export data from a PICK D3 database
Check out Tony Gravagno's NebulaAnalysis at Nebula Research and
Development.
http://www.nebula-rnd.com/products/analysis.htm
--
Kevin Powick
I need something free. Thanks anyway.
Nick
Convert VM to tab, AM to CR
Store in OSFI via supper q-pointer or, if you've got samba, directly to the
DOS world.
Mark Brown
"Let us just go and be killed where we're told. Is life worth so many
questions"
Arimas, The Three Musketteers
"nickbro" <nicholas...@yahoo.com> wrote in message
news:1107444585.7...@l41g2000cwc.googlegroups.com...
1) Write the file out to a floppy disk and transport the disk where ever you
wish.
2) Write the file out to Unix and ftp it to its destination.
3) Use ODBC.
I'm sure there are other methods. I hope this helps.
"nickbro" <nicholas...@yahoo.com> wrote in message
news:1107444585.7...@l41g2000cwc.googlegroups.com...
I'm no longer offering NebulAnalysis for sale, but I do offer services
using that and other tools for Excel integration. The painful
decision was due in part to lack of "critical mass" of interest, and
due to the fact that some of the functionality was obsoleted by
enhancements to Excel itself in terms of XML and HTML.
Excel is a powerful tool that does charts and graphs, and high quality
formatting, but most MV people are comfortable throwing plain text it.
Personally I think this is inadequate for Excel power-users. I just
wish VARs would ask their users how long it takes to work with data
that's been dumped as a CSV with wIntegrate or Accuterm. I hear
numbers in terms of hours and days - and that's why I wrote
NebulAnalysis. Well, my wife loves it, and if she has her way, I'll
offer it again one of these days.
Anyway, Nick - I have extensive experience in this area, including
integration of RPL software with other environments. Within the last
couple of months I was hooking up an RPL app with FlashCONNECT for web
pages. I've setup corporate-level Web Services with RPL apps as well,
and I may do some work soon to integrate RPL apps with my NebulaPay
payment processing software - In this regard, RPL is the same as BASIC
as far as I'm concerned. I don't provide free detailed recipes on how
to make this work though, I sell product and services. That's
something else my wife and I have discussed in the past. Maybe she
should do my marketing, I dunno... :)
HTH,
Tony
Do what Mark Brown said, then save your file to your filesystem. Open it
with a perl script that makes use of Spreadsheet::WriteExcel.
http://search.cpan.org/dist/Spreadsheet-WriteExcel/
Your script can save it as an xls file. Or skip all of the above and
write out html or xml.
:ED MD FileExcel
top
.P
001 Q
002
003 UNIX:/tmp
eoi 003
:ED BP ExportsForExcel
top
.P
001 PROMPT ""
002 OPEN "FileExcel" TO FileExcel ELSE STOP "FileExcel"
003 OPEN "FileD3" TO FileD3 ELSE STOP "FileD3"
004 EQU NAME TO 1
005 EQU ADDRESS TO 2
006 TITLE = "COD;NAME;ADDRESS"
007 FIM = ""
008 CT = 1
009 CHAVE$BASICA = "LISTA.CSV"
010 WRITEV TITLE ON FileExcel,CHAVE$BASICA,CT
011 EXECUTE 'SELECT FileD3'
012 LOOP
013 READNEXT ID ELSE FIM = 1
014 UNTIL FIM DO
015 READ I$ FROM FileD3,ID ELSE I$ = ""
016 CT = CT + 1
017 LIN$ = ID:";":I$<NAME>:";":I$<ADDRESS>
018 WRITEV LIN$ ON FileExcel,CHAVE$BASICA,CT
019 LIN$ = ""
020 REPEAT
021 STOP
For relatively small files (< 1 mb) the cheapest (free) and simplest way to
export d3 data with flashbasic is to use the screen capture feature of
windows hyperterminal (or other terminal emulator) to produce fixed length
field (or csv) text files. Fixed length field text files (.txt) can be
opened and imported into Excel very easily.
Rob
"nickbro" <nicholas...@yahoo.com> wrote in message
news:1107444585.7...@l41g2000cwc.googlegroups.com...
This is the simplest way to do it. D3 also has a semi-documented feature
called "tabbed output" that will produce tab-delimited output from a
sort or list command. You need to tweak the 'sort' or 'list' verb
definition item in your md (google this group for the specifics). I
usually create verbs called 'sortt' and 'listt' that do this. It works
very well and is fast, and it will convert anything that you define in
the file dictionary: a & f correlatives, call's, and translates. I
capture the output in the spooler then read it with a basic program that
converts @am to cr:lf, then writes it out to a linux samba directory.
If you name the file xxx.xls, a tab-delimited file will open with excel
when you double-click it. However, the column width and formatting will
all be general, and you will have to handle specific formatting after
opening.
In my view, the preferred solution is to write an html file named
xxxx.xls, then excel will open it and the formatting will be perfect.
You can save an existing spreadsheet as html, then open with notepad to
see how excel uses html to format a spreadsheet.
Another option is to do the same thing, but use xml instead of html. The
only drawback to this is that users with excel 97 (and maybe 2000?) can
open an html file but you need office 2003? to open the xml file
correctly in excel. I challenge someone to write this html or xml code
and post for the group!
Scott Ballinger
Pareto Corporation
Edmonds WA USA
Here is a sample program that makes a tab-delimited file from tcl:
syntax is "make.tabfile unixfile pickfile thing thing thing..."
001 * create tab-delimited file from active select list
002 * 06-02-03 asb
003
004 * syntax: make.tabfile filename pickfile pickfield
pickfield...pickfield}
005 * filename = unix filename written to current directory
006 * pickfile = pick file name
007 * pickfield{s} = field(s) defined in the dictionary of pickfile
008
009 include dm,bp,unix.h mode.h
010
011 tclread buf
012 buf = trim(buf)
013 pos = index(buf,"make.tabfile",1)
014 buf = buf[pos,999]
015 filename = field(buf," ",2)
016 pickfile = field(buf," ",3)
017 fields = buf[col2()+1,999]
018
019 if filename eq "" then go 9999
020 if pickfile eq "" then go 9999
021 if fields eq "" then go 9999
022 open pickfile else
023 print
024 print "'":pickfile:"' is not a valid file on this account"
025 print
026 go 9999
027 end
028
029 tot = system(11)
030 if tot else stop "no select list?!"
031 open "pointer-file" then
032 delete "make.tabfile"
033 end
034 execute "save-list make.tabfile"
035
036 c = 0
037 t = time()
038 d = date()
039 tab = char(9)
040 cr = char(13)
041 lf = char(10)
042 crlf = cr:lf
043
044 execute "sp-assign hs"
045 execute "get-list make.tabfile"
046 cmd = "listt ":pickfile:" ":fields:" (ipt"
047 print cmd
048 execute cmd
049
050 spl = system(20)
051 open "peqs" to peqs else stop 201,"peqs"
052 read rec from peqs,spl else stop 201,spl
053 delete peqs,spl
054 convert cr to @am in rec
055
056 select rec to list
057
058 * rw-rw-rw-
059 fd = %creat(filename,s$irusr+s$iwusr+s$irgrp+s$iwgrp+s$iroth+s$iwoth)
060 * after default umask 0222 becomes rw-r--r--
061
062 if fd eq -1 then
063 print "error! could not create file '":filename:"' errno = ":system(0)
064 stop
065 end
066
067 * make first row of column headers
068 line = fields
069 convert " " to tab in line
070 gosub 1000
071
072 10 *
073
074 readnext line from list else go 99
075
076 * strip the trailing tab from the line
077 len = len(line)
078 last.char = line[len,1]
079 if last.char eq tab then
080 line = line[1,len - 1]
081 end
082
083 gosub 1000
084 c +=1
085 if mod(c,100) eq 0 then
086 call counter.sub(c,t,d,tot,txt)
087 print cr:c:txt:
088 end
089
090 go 10
091
092 99 *
093
094 call final.count(c,t,d)
095
096 stop
097
098 1000 * write line to file
099
100 line := cr:lf ;* dos format, unix format is just lf
101 s = len(line)
102 w = %write(fd,line,s)
103
104 return
105
106
107 9999 * error exit
108
109 print
110 print "usage: MAKE.TABFILE filename pickfile pickfield
{pickfield...pickfi
eld}"
111 print " filename = unix filename written to current directory"
112 print " pickfile = pick file name "
113 print " pickfield{s} = field(s) definined in the dictionary of pickfile"
114 stop
115
counter.sub
001 sub (c,t,d,tot,txt)
002 * 03-20-00 asb: in-line counter
003 * c = current count
004 * t = start time
005 * d = start date
006 * tot = total count
007 * txt = text string: " pp% done (hh:mm:ss left @ yyy.y/sec)"
008
009 if assigned(c) else c = 0
010 if assigned(t) else t = time()
011 if assigned(d) else d = date()
012 if assigned(tot) else tot = 0
013
014 if tot eq 0 then
015 txt = ""
016 return
017 end
018
019 days = (date() - d) * 86400
020 x = (time() - t) + days
021 if x eq 0 then x = 1 ;* elapsed time in seconds
022 y = c / x ;* current rate per second
023 r = tot - c ;* number remaining
024 s = r / y ;* number of seconds to process remaining
025 p = (c*100) / tot ;* percent complete
026
027 x = oconv(x,"mts")
028 if x[1,2] eq "00" then x = x[4,5] ;* remove hours if zero
029 y = y "l1"
030 s = oconv(s,"mts")
031 if s[1,2] eq "00" then s = s[4,5] ;* remove hours if zero
032 p = int(p)
033
034 txt = " ":p:"% done in ":x:" (":s:" left @ ":y:"/sec)":@(-4)
035
036 return
final.count
001 subroutine final.count(c,t,d)
002
003 * print "ccc records processed in hh:mm:ss = yyy.y per second."
004 * c = final count
005 * t = starting time
006 * d = starting date
007
008 days = (date() - d) * 86400
009 x = (time() - t) + days
010 if x eq 0 then x = 1
011 z = oconv(x,"mts")
012 if z[1,2] eq "00" then z = z[4,5]
013
014 y = c/x "l1"
015
016 crt @(0):@(-4):c:" records processed in ":z:" = ":y:" per second."
017
018 return
listt
001 va
002 aa]57]53
^^
I think this '53' value is the special thing to make tabbed output.
T
I've done a lot of this sort of work over the past year or so, and I can
heartily recommend that you use Microsoft's peculiar form of HTML, as
(sort of) specified in the Excel Web Connectivity Kit...
That'll wrap, but you can rebuild it.
The trouble is, there are some important parts missing from this
so-called spec. In particular, formatting for dates, numbers and text
using css styles and the "vnd.ms-excel.numberformat" MS extension.
If you're interested, drop me an email and I can send you a sample or two.
Cheers,
Luke
The trouble with working backwards is, of course, that Excel lards the
output with a load of obscure crud that, in many cases, you can well and
truly do without. One reason why I recommend starting from the Web
Connectivity Kit, which is poorly documented, but at least there is
*some* documentation.
I note with pleasure that OpenOffice.org are in their process of
submitting their OpenDocument standard for EU standards status. A Very
Good Thing, IMO. And M$ is scrambling to make it look as if they are
prepared to support open document formats as well, without actually
doing so.
Luke
However, I think I need to clarify a little. I need to allow a user to
run a program and export the document directly to their hard drive
running Windows (98-XP) and using Office (XP - 2003). I don't want to
have to store it on the UNIX server if it can be helped. I suppose I
could write a program to use the Accuterm functions but then I would
have to have two programs to one thing and the user would have to know
if they're using Wintegrate or Accuterm which may not sound difficult
but you'd be surprised. And if in the future I wanted to change the
emulation software I would be right where I started. Anyway enough of
my ranting. Thanks again for your help
Nick
I think that for the time and effort you will be putting into this,
your "free" solution will cost you a lot more than you think.
I would reconsider a 3rd party solution.
--
Kevin Powick
Most terminal emulators these days support automatic zmodem download;
after writing the file to a unix directory, run zmodem send from the
host and your terminal emulator should capture the file in your default
download directory. In linux the command is "sz FILENAME." man sz for
more. However, the benefit of doing this using the accuterm tools is
that you can specify the location where you want to put this particular
file on the user's PC. Really though, the better solution is a samba or
other share that is mapped as the user's S: (or whatever) drive. If you
are expecting the user to find the file they just downloaded, it seems
to me they can just as easily find it in the S: drive as anywhere else.
Scott Ballinger
Pareto Corporation
Edmonds WA USA
Cat's out of the bag - I wanted to see how much time/money was going
to be wasted in discussion and potential coding for a "free" solution.
The reason I wrote NebulAnalysis is exactly for the reasons we see
here. It avoids the multi-emulator issue or purchase of an emulator
at all. It doesn't even require a PC, you can use it from a green
screen. You don't need Samba/shares or any other inter-system
mapping. You don't need to manually generate/parse HTML or XML. You
don't need to worry about whether Microsoft is conforming to
standards. It _is_ Pure Pick BASIC for the guy that doesn't know or
want to know about anything else. And the cost? It was only $600 for
a server component that would serve an office full of people - less
than the cost of an AccuTerm site license. By the time you learned
enough technology to implement your free solution you would certainly
have spent a lot more than that.
After all of this discussion about XML and HTML, I'll bet very few
people have really implemented a good solution using them - especially
charts or graphs which MIS usually leaves to the end-user to figure
out. I'm guessing most people look at these discussions, say to
themselves "yeah, I can do that" and then when they sit down at Excel
the fog rolls in and the project gets put off for another couple
months. If this happens to you then you are a great candidate for
Nebula products and services which put everything back at the BASIC
level.
That said, again, I'm sorry but NebulAnalysis is no longer available
but it may be if I can get some time to take another look at it.
Tony
HTH, Patrick <;=)
Dear Nick
Excuse, I don't speak well in English.
A very simple way of exporting data of D3 for Excel, using Pick Basic
independent of the terminal emulator.
First it activates the Samba;
Share a directory in the station Windows;
Create a directory in Unix to mount the sharing Windows:
#mkdir /mnt/FilesExcel
Mount the directory shared in Unix. In Linux I use:
#mount -t smbfs -o username=UserWindows,password=PasswordUserWindows
//Name of the station Windows or IP/Name of the sharing Windows
/mnt/FilesExcel
Don't use spaces in the name of the windows machine and of the
sharing;
It can mount in MD USER-COLDSTART:
001 n
002!mount -t ...
Or
001 PQ
002 H!mount -t ...
003 P
Or in the tcl
!mount -t ...
Or in Basic Programs
EXECUTE '!mount -t ...'
Create a connection (link) between D3 and the sharing Windows;
:ED MD FilesExcel
top
.P
001 Q
002
003 /mnt/FilesExcel
eoi 003
See a very simple example of code in PickBasic:
:ED BP ExportsForExcel
top
.P
001 PROMPT ""
002 OPEN "FilesExcel" TO FilesExcel ELSE STOP "FilesExcel"
003 OPEN "FileD3" TO FileD3 ELSE STOP "FileD3"
004 EQU NAME TO 1
005 EQU ADDRESS TO 2
006 TITLE = "COD;NAME;ADDRESS"
007 FIM = ""
008 CT = 1
009 CHAVE$BASICA = "LISTA.CSV"
010 WRITEV TITLE ON FilesExcel,CHAVE$BASICA,CT
011 EXECUTE 'SELECT FileD3'
012 LOOP
013 READNEXT ID ELSE FIM = 1
014 UNTIL FIM DO
015 READ I$ FROM FileD3,ID ELSE I$ = ""
016 CT = CT + 1
017 LIN$ = ID:";":I$<NAME>:";":I$<ADDRESS>
018 WRITEV LIN$ ON FilesExcel,CHAVE$BASICA,CT
019 LIN$ = ""
020 REPEAT
021 STOP
Engraving as text file, commas separating the columns, extension csv.
Files with extension csv can be open for the excel.
Good luck.
Cleber
The following VBA code will do that but it has the following
limitations.
1) It consumes a user in pick until you close the excel workbook
2) It scrambles the data if attribute 3 of the dictionary that you are
using in your access statement has blanks in it. You can solve this by
replacing blanks with _ or some other character.
The code:
-----------------------------------------------------------
Sub GetTCLOuputMSDAO()
'Get TCL output using the Microsoft DAO Object Library
Dim dbD3 As Database
Dim rStmt As Recordset
Dim fld As Field
Dim CurrentCell As Object
Dim NextCell As Object
Dim I As Integer
Dim sTCLCommand As String
Dim sResult As String
Dim sDataSource As String
'Get TCL Command
sWorksheet = "TCL Command"
Sheets(sWorksheet).Activate
Set CurrentCell = [b1]
sTCLCommand = "[{W}{B}]"
With CurrentCell
For I = 0 To 8
sTCLCommand = sTCLCommand & .Offset(I, 0).Value & " "
Next I
sDataSource = .Offset(9, 0).Value
End With
sTCLCommand = Trim$(sTCLCommand)
'Clear out sheet
sWorksheet = "Output"
Sheets(sWorksheet).Activate
ActiveSheet.UsedRange.Select
Selection.Clear
Selection.EntireRow.Hidden = False
'Connect to Pick and get data
Set dbD3 = ConnectD3Source(sDataSource)
Set rStmt = dbD3.OpenRecordSet(sTCLCommand, dbOpenDynaset,
dbSQLPassThrough)
'Fill spreadsheet with pick data
Set CurrentCell = [a2]
Do While Not (rStmt.EOF)
For I = 0 To rStmt.Fields.Count - 1
'fill columns
sResult = Trim(rStmt.Fields(I).Value)
CurrentCell.Offset(0, I).Value = sResult
Next
Set NextCell = CurrentCell.Offset(1, 0) 'increment row
Set CurrentCell = NextCell
rStmt.MoveNext
Loop
I = 0
For Each fld In rStmt.Fields
I = I + 1
ActiveSheet.Cells(1, I).Value = Replace(fld.Name, "_", " ")
Next fld
' Set column so its readable
rStmt.Close
ActiveSheet.UsedRange.Columns.AutoFit
End Sub
Function ConnectD3Source(sDSName As String) As Database
Set ConnectD3Source = Workspaces(0).OpenDatabase(sDSName, False,
False, "ODBC;")
End Function
-------------------------------------------------
The spreadsheet will need 2 worksheets. One called "TCL Command" and a
second called "Output"
Put the command in the first 10 rows of column B in the sheet called
"TCL Command"
I have the following headings in col A:
Verb
File Reference
Item List
Selection Criteria
Sort Criteria
Output Spec 1
Output Spec 2
Output Spec 3
Options
DSN Server
An example of the data in col B might be
sort
product.file
= "001]"
with description = "lamp"
by description
product.no description price
location
last.sale.date
id-supp
Valid_ODBC_DSN_Name
> Dear Nick
>
> Excuse, I don't speak well in English.
>
> A very simple way of exporting data of D3 for Excel, using Pick Basic
> independent of the terminal emulator.
>
> First it activates the Samba;
>
> Share a directory in the station Windows;
Precisely. Why bother about writing to user's local disks when that's
what networks are all about? If you're worried that the users might
overwrite each other's files, give 'em a folder each, based on port user
name or port number. It's not rocket science.
Luke
For Googlers who stumble on this topic, I just found a note that I
made to myself in 2003 about this functionality. I have no idea if
these issues are still valid and won't take the time to ask RD. Just
keep your eyes open if you're using this tab delimited functionality:
----
1) When using 'grand-total' connective, access 'Sort' statement from
TCL shows good output. Same statement with 'SortT' eliminates the
grand-total text, and the grand-total data is offset one column.
2) In BASIC using "execute the.statement capturing output" where SortT
is being used will result in a runaway overflow of segment marks.
3) Output does not include column headers when Tab delimited.
(Probably intentional, not sure?)
----
"Mark Fuller" <markNOSP...@nospamnorthgate-is.com> wrote in message
news:ctthql$a...@relay1.northgate-is.com...
We pay a hell of a lot of money to RD. $450 per seat. $90 per user PER YEAR.
I send them thousands of dollars every year just for the SMA renewals. I
think we should be able to expect more than just bug fixes for that price.
> Digression 2:
> As an aside, I'm a bit frustrated with the overall concept that RD has
> an interface to their system, they don't want anyone else to use it,
> but they don't want to enhance it themselves either. It sort of
> defeats the purpose of creating pipes into the product. OSFI has a
> lot of potential to create interfaces to other environments,
> protocols, etc, especially in the world of Web Services. Consider:
> open "http://myserver" f.http else stop
> read page from f.http "index.htm" ...
> open "excel:c:/temp/abc.xls|workbook1" to f.xls
> read sheet1 from f.xls,"sheet1" ...
> open "pdf:/var/tmp" to f.pdf
> read doc from f.pdf,"pdfdoc.pdf" ...
> open "outlook:c:/tmp/abc.pst|DefaultCalendar" to f.c
> select appointments from f.c
> open "webservice:http://url/abc.wsdl" to f.ws
> read result from f.ws, param1:",":param2 ...
>
> Doesn't anyone else see any value here?
Yes I see value, but I don't think I should have to pay extra for it.
Microsoft did not charge extra for SP2, a combination of bug fixes and
enhancements. Why should RD?
>
> BTW, I've done all of those things, just with different syntax. With
> some compiler pre-processing we could even use that syntax. As RD
> says though, if no one is going to pay for it then the features won't
> be made available. I guess this comes back to that other thread about
> why MV isn't evolving.
You nailed it.
>
> T...@digressionsRfree-solutionsRnotNebula-RnD.com
>
Just maybe users are pissed off at paying maintenance year after year,
part of which is supposed to be for access to new releases. Presumably
new releases would incorporate some new features ? Now days they
seldom even fix the bugs !
Dave
<Snip>
>Digression 1:
>Unfortunately as always, people want everything for free. Seems like
>this is where the concept of supply and demand breaks down - the more
>users demand everything for free, the less developers are going to
>supply at all.
>
</Snip>
What a sad commentary on a company. They are only interested in
collecting our annual maintenance fees, but not give us anything in return.
Did Microsoft ask their customers to pay for the development of SP2?
Does Oracle ask its customers to pay for the further development of
Oracle? Does Intuit ask its customers to pay for the further development
of Quicken? (Sure we pay for the upgrade, but we also don't pay an
annual maintenance fee.) In fact, I can't think of another commercial
(not contracted) product that asks its customers to directly pay for
it's R&D. Can you?
Does RD really think that this position will get them increased
business? But then, maybe they are not interested in increased business,
only in milking the current customer base until it dries up.
Tony, I always suspected that this was RDs position, but hearing it from
you makes me really disheartened. Boy are we stuck. (But then there are
people who love it this way - "RD don't do anything new, because you
might break something old." People have expressed this sentiment in
previous posts about MVs lack of evolving.)
> I guess this comes back to that other thread about
> why MV isn't evolving.
Right on.
About getting something for your support fees - if you look at the
Enhancements and Resolutions reports you'll see that there are a
number of ummm, Enhancements, that are listed with the bug fixes.
FlashCONNECT users may notice that they withdrew the 4.0 release which
was going to be a for-fee upgrade, and pulled major new features into
v3.5, which is a free upgrade for anyone on a support contract. This
was VERY progressive for them and I hope their faith in the market
isn't wasted. I understand something similar will be done for
upcoming D3 releases, so keep yer hats on.
About justifying changes: Any company, yours, mine, or RD, can incur
expense only if that act somehow helps to maintain or increases
revenue in the grander scheme. One-offs for goodwill are OK, but as a
matter of practice, if we spend money with no hope of recovery then
the business suffers. As a public company RD is especially sensitive
to anything that will cause unnecessary loss of revenue. They can't
waste development resources on something that will not help them to
pay their people or grow as a company, so they choose where they use
their resources carefully.
Their statement to me (and everyone) continues to be along the lines
of : if you can prove that we can generate some revenue by making
"change X" then we'll do it. While that position bothers me when I
personally think they should undertake some development effort, I
support it entirely as a principal of good business. It's a challenge
to make sure that an idea has legs, that it's not going to be just
another wasted development effort on cool software that no one uses.
So it should be easy to justify good ideas, right? If an idea is
good, many people will probably request it in some form independently.
How long have I been saying "if you want a change, file an action
item"? Well, you guys don't file a lot of enhancement requests for
features that will help you to sell software. And if you find bugs
most of you will ignore them rather than report them. Without some
corroboration, how do they know what change requests are good? Lack
of feedback from the field only reinforces their position, as smug as
it might seem.
Now about cases where they _have_ spent money: RD has spent a lot to
develop free features in D3 that you guys never use. This line about
"RD should give it to me for free because I pay a support contract" is
only valid if you're going to use what they provide. Those free
features don't really help to sell more systems, so they came up with
some more complex for-fee features that should have helped
(FlashCONNECT comes to mind as well as the Oracle Gateway and OpenDB).
People complained that they now wanted to use FlashCONNECT but
couldn't sell systems with added costs, so RD made FC free. But use
of FC didn't increase and neither did DBMS sales, so the price tag was
slapped back on. (There's that 'free' word biting us again.) When
they saw people weren't buying the DBMS _or_ the tools they decided to
write new tools to sell to outside markets and your competitors.
They're in business to stay in business by selling software, not to
nurse a self-destructive developer community. If people were actually
using and selling this great technology that we all love then none of
this would be necessary, and most of the for-fee tools that we see
would probably be free.
I take a hard line with a lot of things that RD does or doesn't do,
but over the years I also see that you guys aren't doing your part to
work with the software and people that make this all work. Companies
like IBM can afford to look magnanimous in this market because they
have VARs selling and supporting lots of large sites, but to get to
IBM, U2 users had a rough road with Unidata Inc, VMark, Ardent, and
Informix. Sholom mentioned Oracle, Microsoft, and Intuit - if RD had
a comparable volume of new sales then they could do similar things.
RD VARs prefer much smaller sites and generate much less revenue than
any of the companies mentioned above, so RD needs to be more selective
how they use their correspondingly small resources. People complain
about RD, but our history is littered with companies that are no
longer here because of the same market mentality that we see here -
expectations without reciprocation.
My approach to RD these days is to ask them to just make things stable
and to publish information for those of us who really want to use the
system. If they provide stable tools and interfaces, then in theory,
we can build products that can be used to help sell systems. In my
experience however, no matter what tools I build even based on their
most stable features, people won't buy them. So despite all of the
rhetoric from myself and others, I feel as compelled as RD to look
outside of this market for sustaining revenue, and I'm slowly and
grudgingly following a long line of others who have had similar
experience. If someone has a way to fix that problem, let's get it on
the table.
Tony
T...@blahblahblahNebula-RnD.com
<SNIP>
But use
>of FC didn't increase and neither did DBMS sales, so the price tag was
>slapped back on.
</SNIP>
The beatings will continue until morale improves ? :-)
If that is the way their marketing gurus think, then there really is
no hope for the company.
Did they ever think of actually making contact with their developers
and users ? The only time we ever hear from them is when there is an
invoice due. How about some newsletters, brochures, case studies etc
NOT just put on the Web but actually pushed out to the community ?
By contrast, I am in the MSDN program and am overwhelmed with
information, software for evaluation etc and this costs a lot less
annualy than even a modest D3 licence !
<SNIP>
>
>I take a hard line with a lot of things that RD does or doesn't do,
>but over the years ....
</SNIP>
Where ? When ?
I am tired of hearing that I should report all bugs to RD. I used to
do this religously when working at a local software house - the
Australian distributor helped with a few issues, but of those passed
to RD, NOT ONE was fixed, so please explain to me WHY anyone would
carry on doing this ?
That was my mantra when I was employed there, then they terminated a
significant number of staff members and put us out of our misery. :)
>Did they ever think of actually making contact with their developers
>and users ? The only time we ever hear from them is when there is an
>invoice due. How about some newsletters, brochures, case studies etc
>NOT just put on the Web but actually pushed out to the community ?
I was in the RD office for a chat last week with that as a main agenda
item. Let me ask you this: what could they tell you about the
products which would prompt you to sell more systems? What would you
like to see a newsletter or brochure cover? Have you ever sent a note
to RD Marketing (or your VAR/Distributor) to ask for something
specific to keep you happy, productive, and on the leading edge?
>>I take a hard line with a lot of things that RD does or doesn't do,
>>but over the years ....
></SNIP>
>
>Where ? When ?
You apparently haven't been reading this forum for too long - and you
have no idea what a pain in the ass I was to RD Management during my
employment there, and even today, in support of issues that we discuss
here in CDP and elsewhere. I've made a number of enemies on both
sides of the fence for slapping people who seem to deserve it from
time to time. Unfortunately many people would rather kill the
messenger than address the issues. Others (VARs and people at RD)
have thanked me for balanced commentary, even if occasionally brutal.
I'm not too particular anymore about being diplomatic, that hasn't
worked in the past to motivate people (here or at RD) to keep the
market alive, so these days I'm a bit more hard line with everyone.
Tough love? Hey, whatever works. You don't see it? Maybe that's
better.
>I am tired of hearing that I should report all bugs to RD. I used to
>do this religously when working at a local software house - the
>Australian distributor helped with a few issues, but of those passed
>to RD, NOT ONE was fixed, so please explain to me WHY anyone would
>carry on doing this ?
This is exactly what we were talking about at RD last week. It costs
users time and money to diagnose and report bugs, so they generally
don't do it, especially when it doesn't look like it leads anywhere.
But unless users report issues, developers have no idea where the
priorities are. RD needs a painless way for people to report issues,
otherwise they don't know what they don't know - if you get my drift.
(Hey Mark B, here it is again...) I've reported hundreds of issues,
but to my disappointment too, many are never fixed because no one else
has reported them. If only one guy trips on a bug, how serious is it?
I personally believe ALL bugs should be fixed, but reality dictates
some prioritization. YOU users should establish the priorities, if
you don't then RD is free to set their own, and it seems none of us
are happy when they set their own priorities.
Here's a bit of info that you probably don't know. RD will purge
their bug and enhancement lists of issues that are over some number of
years old. The theory is that if only one person reports an issue or
request in a period of, say, five years, then it probably wasn't a
priority for anyone. Since the software and technologies change over
time, it's possible that people find alternative solutions given
enough time, so after five years or so it doesn't make sense to keep
items on file as if they might one day be processed. So if you want
your issue to stay in the queue then send them a follow-up about once
per year. As this malaise in the market gets worse, and less people
report bugs, it seems some of the older valuable ideas to improve the
software just drain out into the bit bucket. People think they've
said all they need to say - and the products stagnate...
If any particular bug is important to you, and you keep tripping on
it, then chances are good that someone else will too. If you
follow-up with RD and let them know that this is a chronic issue for
you then I know they'll review it - and they do make many fixes to
keep individuals happy, changes that no one else would ever notice.
Ever look at the Enhancements and Resolutions report and say to
yourself "what the hell is that about??" Behind many of those changes
you may find one developer who was just having a hard time and pursued
it with RD Support.
Does that explain why you should be filing bug reports and enhancement
requests?
T
No, but it explains why you should migrate! Who cares about RD's problems.
We care about our customer's problems. And if our customer's problems are
difficult or impossible to fix using RD software then we will used someone
else's software. None is perfect. But jBase and U2 are so much better as a
whole from the customer support point of view that I haven't used RD for
more than 4 years. IBM support is not outstanding but jBase support is what
support should be. When you ask a question you get an answer. You may not
like the answer but you get an answer. Even if the question is dumb.
Peering through the small end of the telescope I don't see jBase having much
if any better chance of survival than RD so I'm not advising new
installations of jBase. Right now my preferred migration path for those who
want to stay with a Pick like platform but have to move from the current
platform for one reason or another is UV or UD with jBase being slightly
behind IBM just because of the survival problem. But you can't see much
looking through the wrong end and IBM could pull the plug when business
reasons indicate that they should do so. So IMHO new development should
probably be done in either Java or dot.net with the MS product being the
better choice despite the "I hate MS" attitude that seems to be prevelant in
this group. If you stand back far enough to get a good perspective on
things then you see some surprises. For instance, BSD is not SQL compliant
but is a terrific paltform for business applications where the end user does
no compose queries. And that is a much more common scenario than you might
think. The Microsft Scripting Host has matured to the point that VBS has
tremendous power and runs in the native Windows (XP or Server 3) environment
as a virtual engine. And runs fast. And allows accessing components. The
MSH also interprets JScript and Perl on the fly. Obviously it won't
interpret perl code that is aimed at *nix.
</Rant>
BobJ
What then is RD's marketing strategy? The complaint is really that they are
balancing their books on the backs of their VARs and end-users.
What is RD's specific plan to increase the number of end-users other than
hoping for their VARs to place more orders?
Is it working?
Jeff
Funny thing, they weren't over the last 2 years that I refused to renew
each time and slowly switched them to Jbase. They also would not budge
on adding users for people that were not on support or giving a break to
those who wanted to get back on. At least not a break that matched what
Jbase was willing to give.
My guess is someone finally started looking at the former MV revenue and
the current MV revenue and noticed it did make a difference when people
jumped ship? Too little too late????? Um.......
Richard Kann
Comp-Ware Systems, Inc.
>[all true stuff from Tony snipped]
>
>What then is RD's marketing strategy? The complaint is really that they are
>balancing their books on the backs of their VARs and end-users.
It's anyone's guess about their strategy. Their tactical approaches
seem to include:
- create components that are Microsoft friendly
- partner with Microsoft for other opportunities (Reporting Services)
- approach markets that Microsoft would like to enter (IBM customers)
- use MV technology in completely non-MV environments (TigerLogic)
The first two items are of benefit to the existing RD VAR channel. I
see it as an olive branch, if only VARs would take it. The last three
items (note overlap) seem to be hedging bets for an exit strategy -
entirely reasonable given the attitude in this market.
If RD does well in outside markets it could help to fund continued
development with MV products. As always I don't think that will
happen - the projects that earn the funds get the funds, and the
projects that don't earn funds to support themselves get sold off or
canned completely. The answer in my mind ultimately comes back to
VARs learning, using, supporting, and selling the products they claim
to love so much.
>What is RD's specific plan to increase the number of end-users other than
>hoping for their VARs to place more orders?
>Is it working?
>Jeff
Again, no clue, and there are no more venues like the World User
Conferences to get those questions out in the open. Maybe Mario would
respond to the RDTA VAR group, doubt it because of the thorny topic.
What would you like them to do? They provide the base software, it's
up to the VAR channel to write and sell apps over it. I recommend you
send your questions and suggestions to RD Marketing.
I'm sure some of you don't like me constantly putting the ball back in
your court, but as I've said before, you either lead, follow, or get
out of the way. I recommend you lead because RD (is unfortunately not
taking the position of an industry leader (now that I think about it,
none of the DBMS vendors are really "leading" the market). I've been
asked a few times by VARs to talk with their end-users to get them
psyched up about their system. I do that, the customers are ready to
plonk money on the table for enchancements, but in most cases the VAR
somehow lets the ball drop. If that's the way it's going end up then
it doesn't matter what RD or any of the MV DBMS vendors do to help
grow the market.
Tony
We simply wrote a subroutine that creates and executes a perl script
that meets the standards for the WriteExcel perl package. Once the
subroutine executes, we use mailx to send the completed excel file to
the end user through email.
Dave
Hello,
Please have a look at PixieExcel at:
http://www.pixieware.com/PixieInfo/exceltrans.htm
This should meet your requirements.
Sincerely,
Dave Johnstone. (Ph: 519-893-3984 - Canada)
PixieWare and HTML - the new GUI for TEXT systems
http://www.PixieWare.com mailto:da...@PixieWare.com
I wouldn't call $450/seat + $90/year per seat in support costs free.
Actually, I'd suggest we're paying handsomely for improvements to D3. :-)
Bill
"Tony Gravagno" <g6q3x9...@sneakemail.com.invalid> wrote in message
news:fk6k01ptuoar0peh0...@4ax.com...
I'll qualify that - if they do get several requests for a feature,
they still need to cost-justify it, and they will ask the requestors
to do so: "please tell us why this particular feature adds value to
your development or end-user experience." That's hardly unreasonable.
But this is where the process breaks down in two ways.
First, people get indignant about justifying a request, sort of
blaming the messenger (RD) for making it harder than it "should be".
This especially happens when we (been there way too many times)
realize it is very tough to really get other people to buy into our
ideas. If you think about it, if there is no public buy-in then the
process is actually working, but break-down part is that too many
people are getting personally bent out of shape, and that's bad PR.
Second, multiple people who file a similar request have no idea who
else filed the request. Perhaps with some collaboration people
"could" justify the request. Without the ability to share notes and
build on an idea, people will back off from what would would otherwise
be really good requests. When everyone backs off the requests go
unprocessed. I vendors should tell their clients who else requested a
specific feature. If the idea has legs it will run. I think the
current thinking is that if X number of people can't even individually
come up with a good reason why a change should be made then maybe it's
better if it rots on the vine. They don't suddenly need a group of
people campaigning for what may ultimately be a bad idea anyway.
T
--
Lee Bacall
http://www.binarystar.com
Phone: +1 (954) 791-8575
Cell: +1 (954) 655-6581
"nickbro" <nicholas...@yahoo.com> wrote in message
news:1107444585.7...@l41g2000cwc.googlegroups.com...
> I am looking for a way to export data from a PICK D3 database running
> on a Unix server. I am currently using Wintegrate terminal emulation
I have just posted a utility (IA Reformat) to picksource (see General
PickBasic downloads) that converts an Info/Access report to HTML. You
have the option of viewing this either as a web page or as an Excel
spreadsheet.
The utility can also format the output for use with RPV Reports
(www.rpvreport.com).
These options are essentially aimed at getting a graphical report from
Info/Access rather than converting a whole file (but I've got a
utility for that too - I'll post that to picksource in the next few
days).
These utilities are written for mvBASE, and may need modification to
work with other mv flavours.
Drop me a line if you have any questions or suggestions for
improvment.
Cheers,
Brian Speirs
brian at rushflat dot co dot nz
On 3 Feb 2005 07:29:45 -0800, "nickbro" <nicholas...@yahoo.com>
wrote: