summaryrefslogtreecommitdiffstats
path: root/kspread/TODO
blob: 575d8c8d061db61f6ea3bdc9cb23595436383a15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
This file describes the tasks at hand for making KSpread a better product.

Legend
======

Status field

----	No work has been done on this task yet.
--	No work has been done on this subtask yet.
DONE    Task is all done
done    This subtask is done
****	This (sub)task cannot be fixed with the current technology.
        It has to wait until something in the internals is fixed.

INGE	Inge is working on this task
inge	Inge is working on this subtask
RAPH	Raphael is working on this task
raph	Raphael is working on this subtask
TOMA	Tomas is working on this task (or planning to do so, at least ;))
toma	Tomas is working on this subtask
LAUR	Laurent is working on this task
laur	Laurent is working on this subtask
ARIY	Ariya is working on this task
ariy	Ariya is working on this subtask
JOHN	John is working on this task
john	John is working on this subtask
STEF	Stefan is working on this task
stef	Stefan is working on this subtask

...fill in your signatures here.


Prio field

S	Involves string changes.  Must be done before the freeze.
1	Important task.  Should definitely be fixed.
2	Semi-important task.  Should be fixed if possible, but can be
	moved to 1.4.1 if necessary.
3	Nice to have.  Should be fixed if there is time. (yeah, right)



Things to do before the release of KOffice 1.5
==============================================

Item                                                               Prio Status
------------------------------------------------------------------------------

General bugs
------------

* Miscellaneous
  + Format->"Increase indent" sets cell alignment to left	      2 DONE




Things to do before the release of KOffice 1.4
==============================================


Item                                                               Prio Status
------------------------------------------------------------------------------

General bugs
------------

* Crashes

* Painting

* Printing

* Format
  + 87471: format of whole column does not change		      2 ----

* Load & Save, Import & Export
  + 87471: format of whole column does not change (actually import)   1 ----

* Miscellaneous
  + 59510: Handles large spreadsheets "extremely" poorly.	      2 ----
	This is perhaps already (partly) fixed, but might be
	very difficult to fix quickly if it isn't.
  + 60458: Inserting a row always creates cell with default number    2 ----
	   format.
  + 70708: undo of series broken when range contains merged cells     2 ----
  + 84738: Inserting a new line does not copy right settings to       2 ----
	   new line.

* Investigate further if these are important.
  + 69285: Pasting directly into the cell edit box is not 	      2 ----
	   subsequently saved when changing cells.

Filter bugs
-----------



Things not in bugzilla
----------------------

* Printing
  + printouts with zoom other than 100% (it's a missing feature, but  2 ----
    the GUI is there... - page layout, options, Scale Printout )
  + make print range work over more than 1 page			      2 ----
  + Repeated rows and columns don't work if they don't start from     2 ----
    row/column 1.   Also it is not possible to enter just one
    row/column into the dialog, it always has to be a range (2:3).
    - Make it possible to enter just one row/column into GUI, don't   2 --
      force a range.


* Features
  + Add text frames and picture frames. It's currently not easy to    2 ----
    insert pictures!

* Plugins



Things to do after the release of KOffice 1.4
=============================================

* Bugs
  + If you select a row and chooses Data->"Remove columns", then      1 ----
    everything is removed.  I think if entire rows are selected,
    "Remove columns" should be disabled.  Besides, if you undo
    the operation, KSpread crashes.
  + If entire rows or columns are selected, then Data->"Insert cells"
    should be disabled.

* OASIS file format
  + Read OASIS							      1 LAUR
  + Write OASIS							      1 LAUR

* Internals (See also DESIGN.html)
  + Use the new StyleCluster.					      1 RAPH
    This would dramatically reduce memory consumption and allows
    styles for empty cells.
    - Use new StyleCluster						--
    - Remove old KSpreadFormat						--

  + Speed up selection.						      1 RAPH
    (probably improved with StyleCluster?)
  + Non-continguous selection					      1 STEF

  + Rich text in cells.						      1 ----
	Use KoText.

  + code cleanups to layout processing				      1 ----
	(KSpreadCell::makeLayout/setCellText are nightmares!) (Tomas)
	setCellText is no longer a nightmare, makeLayout still is ;)

  + Evaluation of how best to increase floating point precision.      3 ----
	Suggestion:  GnuMP.    (Tomas)
	This will work by converting all functions to compute using
	ValueCalc, and nothing else, then modifying Value* to
	support GnuMP.  The conversion step shall be done as a part
	of converting to the new parser.
  + code cleanups						      3 ----
    - Merge Cell::checkForNamedAreas(.) into Oasis::decodeFormula(.).
    - Move Cell::convertFormulaToOasisFormat(..) to
      Oasis::encodeFormula to reduce the size of kspread_cell.cc
      and to have encoding/decoding in one place.
    - Check if all logic of Point and Range is materialized in Region.
      Replace all occurences of Point and Range by Region.
    - All util_foo funtions that act on Point/Ranges should become
      static members of Region.
    - Move all util_foo(..) functions to Util namespace and remove
      the prefix 'util_'.
    - Reduce amount of parameters for methods which takes many of
      them, e.g. Sheet::paste(). bools -> QFlags, static variables

* GUI
  + Sheet layout:						      2 ----
    - Move sheet properties to separate dialog.
      They are currently part of KSpread config dialog.
  + Indent and multiline doesn't work together			      2 ----


* General features
  + Painting: Indent and multiline doesn't work together	      2 ----
  + Insert manual page break					      2 ----
  + Split view							      1 ----
  + "Freeze/Unfreeze Panes"					      2 ----
	Started but had some problems caused by the scrollbars, it
	works, but not very nice (not committed (Norbert)).
        Maybe not as important if we get split view to work correctly.

  + Matrix operations              2 ----
     Some exist - multiply, determinant. Inverse not implemented.

  + Locked areas (for formulas with a matrix as result)		      2 TOMA

* Major features (big effort)
  + Script, Script-Editor (like VBA in Excel)			      2 ----
  + Tools->Auditing:						      2 ----
    - Trace Precedents						      2 --
    - Trace Dependants						      2 --
    - Trace Error						      2 --
    - Remove all arrows						      2 --
  + Pivot tables						      3 ----

Other things: (please add the things you are working on!)
(I don't understand these.  Please enter them under the correct heading /Inge)

- Scenarios


Not yet sorted (will be entered into categories above)

- Multible Operations (in Excel: "Data"->"Table") (Norbert)
- Pivot tables
- more chart types
- background spell check (necessary to use kotext)
- links to cells in other kspread files
- much more formulas (financial, database...)
        String2Int, CurrentMonth, CurrentYear, CurrentDay
        See list below
- Insert pictures (Add support for object into kspread)
- Insert basic drawings, autoforms (necessary to create a share lib from kpresenter)
- Insert widgets like buttons, drop down lists,... + having the possibily to
  define action if pressed, or selection changes,...
- Transparancy for embedded objects
- z-order for embedded objects (and possibility to change the order)
- better handling of embedded objects: e.g. delete them just by marking them + Del-Key
  not only in the context menu of the borders
- Scrollbar that supports jumping one row/column forward or back
- formula result: fit the precision to the width of the cell
- other bug fixes                               (everybody, every time)
- interface for mail merge

*********
* Taken:
*********

Philipp
=======

- Printing enhancements:
  + Expand selection to page
  + Fit selection to page
  + Print selection only

- Filter, Autofilter                                             (but will take long, haven't started yet)
- Performance improvements at end of ranges - last column/row    (started)
- Support "unlimited" columns/rows,
  unlimited means a reasonable defined value                     (concept finished, will include after beta1)


Norbert
=======

- solver (see gnumeric)  [isn't this done already?]
+ option: ignore duplicate deliminers in CSV import and Insert data from file/clipboard
+ CSV export dialog: define deliminers, Table(s), cell content in '"'
+ more than one currency
+ enhance the Gnumeric import filter
- sync the Gnumeric export filter
+ Style support
+ StarCalc/OpenCalc import filter
- StarCalc/OpenCalc filter for embedding/embedded objects
+ StarCalc/OpenCalc export filter
- qsa support + recording
- Button + Drop-Down-List support (within cells)
- better AutoFormat dialog + better templates
- new dialog for conditional cell attributes

- Multiple Operations
+ Lookup & Reference functions (LOOKUP needs to fixed)
- more information functions (Excel compatible)

Ariya
=====
- more "Related Functions" in function help/desc text
- improve function compatibility with MS Excel
- dBASE export filter


OpenCalc - filter
=================
- changing text angle should resize the cell height automatically
- conditional cell attribute support is just poor in KSpread:
  we should be able to assign complete styles (KSpreadLayout objects)
- support for format strings (dd/mm/yyyy)       - Norbert
- more font attributes (outline, shadow,...) + attributes for parts of the text
- double borders
- multiline header/footer support
- for formulas: fit precision so the result fits in the cell or resize the cell
- save m_strOutText in file => no parsing on load  (Norbert)
- save formula results etc in a certain way in the cell (Norbert)


Missing formulas (compared with XL)
===================================

Statistical:

BETAINV
BINOMDIST  (different from BINO?)
CHIINV
CHITEST
CRITBINOM
FINV
FORECAST
GAMMAINV
GROWTH
INTERCEPT
LINEST
LOGEST
PEARSON
PERCENTILE
PERCENTRANK
PROB
QUARTILE
RANK
RSQ
SLOPE
STEYX
TREND
TRIMEAN
TTEST
ZTEST


Lookup:

HLOOKUP
HYPERLINK
MATCH
OFFSET
TRANSPOSE
VLOOKUP


Logic:


Information:

CELL
ISERR
ISERROR
ISNA
NA

EXPRESSION
GETENV
SELECTION


Engineering:

IMLOG2
IMLOG10


Date & Time:

NETWORKDAYS
WEEKNUM
WORKDAY
YEARFRAC
DATEDIF
UNIX2DATE
DATE2UNIX


Math:

MDETERM
MINVERSE
MMULT
SERIESSUM
SUMXMY2


Financial:

AMORDEGRC
AMORLINC
COUPDAYBC
COUPDAYS
COUPDAYSNC
COUPNCD
COUPPCD
CUMIPMT
CUMPRINC
FVSCHEDULE
MDURATION
MIRR
ODDFPRICE
ODDFYIELD
ODDLPRICE
ODDLYIELD
PRICE
PRICEDISC
PRICEMAT
RATE
VDB
XIRR
XNPV
YIELD
YIELDDISC
YIELDMAT

IRR
NPV


Trig:

IMTAN
+ACOT


***************************************************************************************

Explanations to features:
=========================

Named areas:

I would like to ask one thing about "Named areas". In Excel you can assign
names to cells (you can do this in KSpread, too) like this:
        A       B
1       45      46
2
x=A1, y= B1

Now, I would like to put
"=x+y" in A2. This works with Excel but not in KSpread. But it is an important
feature (I was told :-)
So if you evaluate "=x+y", 'x' has be replaced by "A1" and 'y' by "B1"



TODO-List:
----------

Please everyone working on KSpread:

Get yourself a copy of Excel 97 or 2000 and create
a really big sheet, and I mean really big and insert Graphs and
lots of dependencies and regressions etc. use external add-ins if you have any
and real time links. Make links between sheets and then see how
well Excel behaves.

1. UNDERSTAND that putting a spread->recalc() or spread->recalc(true) in
your code is an abosolute NO-NO! Complex spreadsheets with possible
heavy mathematical calculations via dll/so add-ins as well as real
time feeds will not be managable if you do not painstakingly check
wether spread->getAutoCalc() is true.


2. Learn to understand that without the
following short cut actions you are lost ( try to scroll
down a list of 10,000 obersvations ...not using CTRL Down
for example)

CTRL Up/Down/Left/Right
CTRL Shift Up/Down/Left/Right
CTRL Home/End
CTRL Shift Home/End
Shift F9 versus F9

Let's try to get them working well in Kspread as well. I tried my
hand at it but wasn't able to get them to be efficient.

3. Familiarize yourself with the concept of array formulas and why they
are necessary (area protection, partial argument evaluation) Who would
be willing to implement them? This will be an absolute must if we
want to make progress on the mathematical/financial/statistical
function side of things. I would be willing to implement a miriad
of these functions but I believe doing that without having array
formulae first will be a big mistake.

(In case you wonder why I feel so strongly about these things:
I am a professional user of Excel. I eat, sleap and work with Excel
on my trading desk on Wall-Street.)


Bernd <wuebben@kde.org>


Improvement :
-------------
- Add zoom (Bernd: Yes, this is important. KSpread is much to cluttered
up at this point. you can hardly do any real work with it even on a
17inch screen. Torben? Please?)
-create a script editor for execute script
 (Use KWrite)

Bug fix :
---------
-and also bug fix :)

<montel@kde.org>

Torbens TODO-List:
------------------
- Write-Protect cells