Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On Mon, Jun 03, 2013 at 02:57:47PM +0200, Zolnai Tamás wrote:
On Mon, Jun 03, 2013 at 12:05:56PM +0200, Zolnai Tamás wrote:

   I'm working on a new feature in Base again. It's just a little
user helper feature to make available the direct import of an csv
file into table, without open Calc and copy&paste the content from
it to Base.

Base can already do that without resorting to Calc:

If you intend to put an easier / faster / ... UI on this procedure,
sure, that seems nice.

The usability of this method is the same as which I mentioned. Have to
open an other window and use copy&paste (additionally make a useless file).
So yes, my primary aim is to add an easier way.

already have the plan to implement it and it seems to me that it
will work not just with csv files but all Calc compatible format
(in this case only the first sheet will be imported, but later it
can be extended).

This starts to look like you want to reimplement a different way to
achieve the same as the above, and not only slap a different /
better UI on it. Unless there is a good reason (which one?), I'd
rather not. Two implementations = more code, two sets of bugs,
confusion for the user, ...

Note that the above works "for any calc compatible format" by using
"Spreadsheet" instead of "Text". And many other sources...

Again, slapping a better UI on it, that would e.g. avoid the need to
create an .odb file which the user will delete right after, would be
nice. I imagine it would work like this: reuse the database wizard
open existing database and "connect to existing database" stuff to
setup a SDBC URL, but do *not* create a .odb file connecting to that
URL. Instead, connect to that URL in code, list the tables, ask the
user which tables to import, and import them into the current
database. Bonus points for reusing the same codepath as a paste in the
the copy/paste case (one time for each table).

I didn't know about this feature up to now, but for the first blush
it is not the same feature, at least from the users point of
view. As I see these connection is a readonly access to a bunch of
csv/text files (or sheets of one spreadsheet file) with openning an
alone database to them.

Whether the access the source is read-only or read-write depends on
the underlying driver; for CSV it is probably read-only, be it only
for lack of a primary key. For DBaseIII, for example, I think it is
read/write.

But Read-only access to the source is all you need for import, so I
don't quite get the point in the current discussion.

The feature which I intend to implement is making a new table and
insert into the already opened database.

Yes, which is exactly what the procedure described in my previous mail
also does. Except it is not limited to CSV and other calc-supported
formats (but any supported database), and already gives you access to
each sheet of a calc file instead of the first.

Which was my main motivation for slapping a better UI on *this*
procedure rather than on the more limited "go through Calc" route.

With this I just say that for the user it can be looked as a
different thing and so not make confusion.

Well, if "drag'n drop" and "import" of the *same* data behave
differently in the *same* application (that is, Base), I think this is
confusing and unpredictable: even if the user knows of these two ways,
why would he expect one to work "better" or "different" than the
other?

Implementation is an other part. Of course I will look up the code
of this connection thing and reuse all the usefull code. But the
implementation which I planed is not means real new code, but
intentse use of UNO API.

Once you have a SDBC URL, the rest of the work is also completely
through the UNO API: I expect in
 com.sun.star.sdb
 com.sun.star.sdbc
 com.sun.star.sdbcx

I expect that the existing code path used when copy/pasting from one
Base file to the other uses pretty much these APIs.


The Writer OLE-object feature (...) the same file import as Calc do
(...) which more usefull than the page with the same aim in
Base. More usefull means more options and a table showing the
expected result.

Well, if the CSV setup screen in Base sucks, we can fix
*that*. Possibly even use the same setup screen than in Calc? As in:
merge the two.

If you do that (additionally to the easier Base import UI), you'll
have enhanced not only "import into new base file" but also "connect
to CSV directly", which is used e.g. by Writer's mail merge, as well
as by Base. I.e. it has broader appeal / applicability for our users.


IMO, having a "import into any database from any database" feature is
also more broadly useful than only "import into any database from a
Calc-supported file". So I'd prefer we had the former; I don't think
it is essentially more difficult, but I agree that for the specific
case of CSV, enhancing Base's connect UI to match Calc's open UI *is*
definitely an additional work.

CSV seems to be more important for you than "all other database
formats", I don't know why <shrug>. From a broader perspective, I
would regret that Base has a more restricted-to-CSV "import"
functionality (rather than "import from any database, including CSV")
only to marginally better serve the CSV case in the short term.


   The only question is where this feature would be reachable. I have two
ideas and I think all of these two places should be used:
   1. Table view -> "Tasks". Add a 4th option like "Import Table From
File...". This point contains all other places which are almost the
duplicates of this "Tables" list (e.g. Insert menu with label "Table
(Import)..." ).
   2. Table view -> "Tables" -> context menu. The label can be "Import
Table...".

The context menu does not make that much sense to me, unless we *also*
add the other tasks to it (and then also in Queries, Forms and Reports).

It comes in my mind just because the commonly used method is the
copy&paste

You mean "copy&paste from Calc". Is it? It would not have occurred to
me to do a Calc-to-Base copy&paste rather than a Base-to-Base
copy&paste.


Anyway, there is another idea for "how to make this feature
reachable":

1) Open a file manager

2) Open the LibreOffice window where you want to import the data.

2) Drag-n-drop the file into the LibreOffice window.

This currently works for a Calc window, but not for a Base window. I
think it would be amazing if additionally to the tasks pane, drag'n
drop worked.

-- 
Lionel

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.