Hallo Robert,
Am 14.03.2010 09:45, schrieb Robert Großkopf:
Hallo Marino,
Die Laufnummer wird folgendermassen erzeugt:
Wo erzeugst Du die Laufnummer? Wenn ich die eckigen Klammern sehe denke ich an
Funktionen im Bericht von Base.
Recht hast Du! Die in Base gebräuchliche Formatierung hab ich noch nicht
intus... Wirst ja auch gesehen haben, dass ich aus Gewohnheit SInteger
und String benutzte. Will mich bessern und versuchen immer die hier
geltenden Bezeichnungen und Formatierungen anzuwenden.
Hier aber besteht auch einige Unklarheit. Ich habe in der Wiki versucht
die allgemein gültigen Konventionen zur Schreibweise zu finden.
So wie ich das bis jetzt sehe, muss ich mir wohl selbst eine solche
Liste erstellen. :'(
Ich nehme an, dass es irgendwo eine Zusammenfassung gibt, nur ist die
offenbar nicht einfach zu finden.
Wäre es nicht nützlich eine solche Konventionen-Liste schon unter :
"Wonach suchen Sie" auf zuschalten?
Nehme an, dass diese ja auch für die anderen Module; zumindest Calc ?;
Gültigkeit hätte.
Habe die [] benutzt um anzuzeigen, dass das Tabellen-Felder aus
verschiedenen Tabellen sind. /War zu faul, um den Tabellennamen und das
entsprechende Feld auszuschreiben./ Sicher nicht klug. :-[
Ich hätte die Berechnung innerhalb der Abfragen zur Datenbank durchgeführt.
Das werde ich auch so handhaben und alles irgendwie mögliche, ohne
zusätzliche Funktionen zu erreichen suchen. Wird sicher Dinge geben, die
so nicht möglich sind. Will aber so wie gesagt feststellen, wo die
wirklichen Grenzen sind.
Laufnummer = ([Ortsnummer]* 10000) + ([Abteilungsnummer]* 100) +
[Funktionsnummer]
Wenn ich die obige Funktion weiterführen will, müsste schliesslich
"FLOAT" das Ziel sein, damit auch mit
0.01 als Multiplikator gearbeitet werden kann. So wäre die Laufnummer
auch besser überschaubar.
Lediglich der Laufnummer solltest Du, wenn sie irgendwo über BASIC erzeugt
werden soll, eine entsprechende Möglichkeit zuordnen müssen. Es ist ohne
weiteres möglich, eine Dezimalzahl mit einer ganzen Zahl zu multiplizieren.
Das Ergebnis ist dann eben eine Dezimalzahl. Hier wäre dann "SINGLE"
(Dezimalzahlen 4 Bytes) oder "DOUBLE" (Dezimalzahlen 8 Bytes) die richtige
Wahl.
Was geschieht, wenn ein SInteger Wert mit einem Integer oder gar Float
multipliziert wird ?
Muss zuerst alles gleichnamig gemacht werden "CINT" bez. C??? (find ich
auf der Liste nicht), oder wird
automatisch auf Integer überführt?
CINT ist eine Möglichkeit, aus als Text eingelesenen Werten den Integer-Anteil
rauszulesen. In der Regel brauchst Du so etwas, wenn Du mit den Werten rechnen
willst, die Du aus Formularfeldern einliest. Hier muss also nur der Wert, den
Du einliest, auch im Formular mit "INTEGER" beschreibbar sein.
Unklar ist mir allerdings die unterschiedliche Bezeichnung von Integer bei
BASIC und HSQLDB. Das in HSQLDB als Integer ausgewiesene Feld bräuchte als
Entsprechung in BASIC den Typ Long.
Aus dem schliesse ich, dass aus [Text] nur ganzzahlige Variablen geholt
werden können, da ja /CFLOAT/ , jedenfalls auf meiner Liste aus der
Wiki, nicht existiert?
Wenn ich das jetzt richtig verstanden habe, muss also nur bei
(ASCII-Strings) [Text] eine Konvertierung erfolgen.
Base erkennt schon im Aufruf, in welchem Format eine Numerische
Variable hinterlegt ist. Bei Verrechnung mit grösseren Variablen; sprich
Mehrbyte-Variablen, wird automatisch das grössere Format zur Ausgabe
benutzt.
Kann eine Integer die klein genug ist ebenso wieder in SmalInterger
abgelegt werden?
Wir schlagen uns hier mit Details herum, die nicht wesentlich scheinen.
Man kann ja auch einfach grössere Variablen wählen. Aber ich stamme aus
einer Zeit, wo Ressourcenmangel Standard war. Und Platzverschwendung ist
mir zuwider, zumal die Rechenzeit bei Shift-Funktionen; 64Bit
Operationen auf einem 32Bit Prozessor, Exponentiell zunimmt.
Am Rande noch dies, einfach zu meiner Info. Wenn das hier niemand weiss
ist nicht weiter tragisch.
Was geschieht bei einem Overflow d.H. wenn in einer Variablen ein
Überlauf eintritt.
Ist mir bei einer extremen Kalkulation schon aufgetreten. (Math.Fakultät
ist z.B. ein solches unvorhersehbares Ding)
Da auf unseren CPU's das OF-Bit gesetzt wird, kann der Überhang in eine
zweite Variable überführt werden.
(War früher auf 8-Bit Prozessoren natürlich tägliches Brot)
Bei den Divisionen hab ich gesehen, dass der Rest in Base eben so
ausgegeben wird.
Gruss Marino
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]