taviso / 123elf

A native port of Lotus 1-2-3 to Linux.
1.16k stars 59 forks source link

Function status missing range name #122

Open rruhle opened 1 year ago

rruhle commented 1 year ago

rruhle commented 1 hour ago • Managing range names, or checking names for a range becomes harder when not shown in status bar.

Since @cell(attributes) won't reveal range names, the legacy DOS 123 spreadsheet function @@() showed any names created for a cell address in top left status bar.

While Linux shows the same referenced value at cell location containing @@() function, only cell address appears in top left status bar, no range name(s).

The more range names created, the harder it becomes to find or check a named range with the alternative key sequence F5, F3, F3, and scrolling thru all range names to locate the intended cell address.

taviso commented 1 hour ago Hmm, I wasn't familiar with that!

I know that in POINT mode if you choose a range that has a name, and press F3, 123 will enter the name, does that help?

We could add a new attribute like @CELL("name", D6) in the next release if that would be useful? I guess the question is what to do if that cell/range doesn't have a name, or has multiple names!

Maybe we could just return ERR unless there is exactly one match?

rruhle commented 1 year ago

OK, I tried but can't duplicate.

If the F5 key is POINT mode, any Name entered will goto first cell address in that named range, but adding F3 key disables spreadsheet pointer to focus on status bar list of names, displayed in alphabetical order regardless of cell selected in spreadsheet.

rruhle commented 1 year ago

If spreadsheet function status bar won't be similar in Linux & DOS, then @cell(Name, D6) will certainly help.

Management of range names in modern spreadsheets use menu selections & tables to list data or range names, before clicking Edit, Delete, or Rename.

123 menus must select / Range / Name / (Create or Delete) before selecting a Name or typing an address from memory. So, using F5 to point to range address is highly recommended before executing these actions.

taviso commented 1 year ago

Here is what I mean:

  1. Create a named range, say D1..D5 and call it TEST.
  2. Go to A1 and enter +, then move the pointer to D1, press ., then highlight D1..D5.
  3. Now press F3 and it should know you wanted TEST. This works on any named range.

How did @@() work, it should be possible to add it! Can you give me example steps, or point me to the manual page about it?

rruhle commented 1 year ago

Never saw that before, Thanks. Works for ranges > 1 cell, if empty column exist on left.

My only V.2 documentation for @@() function is screen shots:

Clip2

Clip1

Clip 1 show top left status bar with "TEST" showing as range name, and actual cell address below

taviso commented 1 year ago

Ahh, I see what you mean! Hmm, okay, let me look at the code and see if maybe we can add this.

I think maybe a new attribute might work too, but I'll take a look!