0

Funktions- und Sprachreferenz

Hallo, ich habe zwei Frage:

1) Ich würde gerne zu einer bestehenden Uhrzeit eine gewisse Anzahl Stunden und Minuten addieren. Leider schaffe ich das nur indem ich zwei Datenfelder von Typ Uhrzeit addiere, aber ich hätte erwartet, dass man auch z.B. Begin := Begin + "07:00" oder wie auch immer angeben kann. Ich habe schon alle möglichen Varianten probiert, komme aber nicht auf eine Lösung. Ist es überhaupt möglich Zeiten auf diese Weise zu addieren?

2) es gibt bei Rechnen die Funktion Prozent %, allerdings finde ich dazu keine Beschreibung und bekomme auch keine sinnvollen Werte raus. Wo finde ich dazu eine Erklärung/Beispiel?

Noch zwei Anregungen:
- generell fände ich es gut, wenn einzelnen Funktionen durchgehend mit ein oder zwei aussagekräftigen Beispielen beschrieben wären, das würde viel Zeit ersparen.

- will man eine Funktion als Text eingeben, werden im Editor zwar Zeilennummern angezeigt, aber leider keine Spaltennummern. Die Fehlerhinweise erscheinen aber mit Spaltennummer! Dann beginnt das fleissige Zählen....

Besten Dank Klaus

493 Antworten

null
    • Morris_Hanson
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo!
    es gibt in der Druckansicht ja die Möglichkeit alle Datensätze gleichzeitig auszudrucken.
    kann ich mit printRecord auch mehrere Datensätze in einem Schritt als PFDs vorbereiten?
    Es wäre schön wenn ich hier eine Variable mit gefilterten Datensätzen bestücken kann, und alle diese Datensätze dann automatisch drucken kann. Ist das schon möglich?

    So hätte ich es mir gedacht:

    let a:= select Tabelle where Abgeschlossen=true
    printRecord(a, "Druckansicht")

    Die Möglichkeit der Beschriftung wäre durchaus interessant, damit man beim Speichern des PDFs dieses nicht extra betiteln muss.

    Es wäre ebenfalls sehr schön, wenn man diese PDFs auch automatisch in der Datenbank ablegen kann (mit einer definierten Beschriftung). Könnte ich mir irgendwie so vorstellen:

    let a:= Nr;
    saveRecord(a, "Druckansicht" in Tabelle.Bild, Vorname + " " + Nachname + "_Rechnung" + "_" + today())

    :) Das wäre sehr sehr schön :)

    Danke
    • Morris_Hanson
    • vor 7 Jahren
    • Gemeldet - anzeigen
    kann ich aus einem Datumsfeld und einem extra Uhrzeit Feld auch ein Terminfeld füllen?
    wie z.B.
    Termin := Datum+Uhrzeit

    Vielen Dank im Voraus, Rene
    • Alexander_Koenig
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Rene, der Termin braucht Start und Ende. Intern werden Termin als Start + Dauer abgespeichert. Das können wir uns zu Nutzen machen.

    Termin := number(Datum+Uhrzeit)+"/"+number(Datum+Uhrzeit2-Datum-Uhrzeit)

    VG, Alex
    • Alexander_Koenig
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Rene,

    versuche das Drucken mehrerer Datensätze mit einem for in loop.

    Wir haben ein Feature mit dem der Name der PDF Datei bestimmt werden kann auf der Anforderungsliste. Einen genauen Termin können wir noch nicht nennen.
    Auch dass die PDFs in der Datenbank angehängt werden können haben wir auf der Liste.

    VG, Alex
    • Morris_Hanson
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Alexander!

    Danke für deine Antwort,
    super Sache, freue mich schon drauf.
    Die Idee mit dem Befehl for in habe ich schon getestet, allerdings wird es dann durch viele einzelne Druckansichten schnell Chaotisch. Es wäre schön wenn auch der Punkt "printRecord" für mehrere Datensätze einen Platz auf eurer laaaangen Anforderungsliste findet.

    Danke im Voraus, Rene
    • Morris_Hanson
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Liebes Ninox Team!

    ist es möglich ein Funktionsfeld mit Farbe und Icon zu kombinieren?

    z.b.

    color("red") + icon("warn")

    Danke
    • Birger_H
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Jawohl. Dies ist bei Auswahlfeldern (Choice) möglich.
    • jomo_h
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo :-)

    Gibt es eine Funktion, die den Namen einer Tabelle ermittelt/ausgibt?

    P.s.:
    Ich bin vor längerer Zeit von Filemaker zu Ninox gewechselt, weil mir FM zu teuer war und habe den Wechsel bislang nicht bereut!
    • cyan_button
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo,
    wo kann ich eine Übersicht über alle Icon-Namen finden?

    "warn" habt ihr als Beispiel; auf "car" und "sun" kommt man auch so - dann wird´s aber schwierig...

    Vielen Dank im Voraus.
    • Alexander_Koenig
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo A.h., Danke für den Hinweis. Wir haben eine Ninox Datenbank mit allen Icons und Namen oben unter dem Punkt "Icon Functions" verlinkt.
    VG, Alex
    • cyan_button
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Vielen Dank für die schnelle Reaktion. Sehr guter Service! Weiter so Jungs!
    • micgo
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Dear Ninox Team,

    i really have to thank you for the great job you are doing there. I started in April a small business and thanks to your app i could already create a lot of data, that helps me analyzing and planning actions and i also can keep a good overview.

    It started with a simple overview db which by now developed into sth much bigger:

    I have products which I buy and sell. For purchases and Sales i can connect this transaction with customers and suppliers. Which of course enables me to check on all transactions with a certain supplier/ customer/ and of course for a certain product.

    It even developed so far that since i do my own products can create a kind of part-list from a separate Component table inside a products and can combine several products into one set. I even can see the current available amount of items on stock.

    This is based on one of your examples where you create an invoice with several positions, two tables in composition that refer to a product (or in my case the purchases also to components)

    For these transactions i have 3 table- compositions: purchases, sales and one for indicating a product (made by components) is finished and so ready in sales stock.

    With this it’s pretty convenient to see all my stocks for ready and just trade products as well as for the components i need to make new products.

    My problem, where i would like to ask you for ideas is the pricing or in general the handling of the prices over time and stock.

    Conditions:
    I do buy goods for a certain price and calculate a selling price.

    So far, when one of the both changes, i create a new product. This is a very usual daily life problem: better purchase price because of changed supplier or quantity.

    This makes it relatively complicated to keep an overview about the stock, since i need to use up the stock. only like that i record the real margin.
    On the sales part there is the same problem: promotions.

    Now i was thinking about two possible ways to take care about this:

    1. All current prices could be written into separate fields upon update of a certain field (switch, action button). This makes it possible to keep one product with out duplicating it for all the price/ promotion changes. There are of course a lot of disadvantages like the manual work and the danger of updating the data set accidentally
    2. Creating a separate table, that is designed as a kind of price and cost history that over dates selects the right selling price for a certain time, and the cost for a certain purchase.

    But both solutions even they would solve some problems, have one further problem:
    How can I make sure that i „use up stock“.

    Example:
    I have a purchase of 100 pieces. Selling price will be defined. with both versions i could realize promotions during the time (different selling prices for different sales positions over time) and have the record in the sales positions.

    Now i sell out 90. Order new stock. Another 200. The prices decreases for me. how can i make sure that in sales transactions for the left 10 pieces from the first order still the costs of the first order will be considered?

    I hope that i described my current problem in an understandable way. And that here are some more bright people than me that can give me hints or some ideas on how to move on.

    Thank you all!
    • Alexander_Koenig
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hi Micgo,

    thanks for your request. The inventory can help you to solve the issue of different price at different points of time. Here you have a table for inventory. Related tables for 'items sold' or 'Order from Vendor' can be used to update your inventory and use different prices for each order or client. Let me know if this helps. If you have questions you can also write to support@ninoxdb.de

    Best regards,
    Alex
    • atelier44
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo,

    ich möchte die »create«-Funktion nutzen, aber mir ist nicht klar, wie diese funktioniert. Am naheliegendsten erscheint mir die Nutzung über eine Befehlsschaltfläche…

    Hier das konkrete Problem:

    Tabelle »Bauteile« <---- Tabelle »Bearbeitungsstand« (1:N)

    In »Bauteile« habe ich eine Befehlsschaltfläche mit dem Inhalt:

    let c := (create Bearbeitungsstand);
    c.Datum := now() + c.Auswahlfeld := 2

    Beim Klick auf die Schaltfläche wird ein unverknüpfter Eintrag in »Bearbeitungsstand« erstellt, die gewünschten Angaben Datum und Auswahlfeld werden übernommen.
    Die Verknüpfung zu »Bauteile« wird aber nicht hergestellt. Man müsste also der Schaltfläche mitteilen, dass der neu zu erstellende Eintrag mit dem gegenwärtig ausgewählten Datensatz in »Bauteile« verknüpft werden muss.

    Vielen Dank für die Hilfe!

    PS: Lässt sich die »create«-Funktion auch anders nutzen als über eine Befehlsschaltfläche?
    • Leonid_Semik
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo
    die Formel dazu:

    let N := Nr;
    let c := (create Bearbeitungsstand);
    c.Datum := now();
    c.Auswahlfeld := 2;
    c.Bauteile := N

    Hier musst du gucken, wie genau die Verknüpfung zu Bauteile in Bearbeitungsstand heißt.
    soweit ich weiß, kannst du create auch in Trigger nutzen.

    Grüße
    Leo
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo,
    ein Dank an die Entwickler.
    Mein Projekt: Verwalten von Gästen in Ferienwohnungen. Dort habe ich eine Tabelle mit den Preisen und für die einzelnen Buchungen eine Tabelle mit den Positionen.
    Ich möchte in der Tabelle einen Datensatz mit select suchen und die Werte in einen neu angelegten Datensatz der Tabelle Positionen übernehmen.
    Mein Skript:
    let FeWoNr := FeWo;
    let p := (select Preise where FeWo = FeWoNr and Beschreibung = "Grundbetrag";
    let N := Nr;
    let d := (create Positionen);

    d.(Preis := p.Preis)

    Bei letztere Zeile kommt die Gehlermeldung: Der Ausdruck liefert mehrfache Ergebnisse zurück: p.Preis

    Wo ist mein Fehler?
    • Leonid_Semik
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Taischi,

    wenn du dir sicher bist, dass deine selection nur einen Datensatz aus der Tabelle Preise beinhaltet, würde ich einen Befehl "first" davor setzen. Außerdem würde ich für p.Preis erst eine Variable ernennen und dann diese schon als d.Preis deklarieren, etwa so:

    let FeWoNr := FeWo;
    let p := select Preise where FeWo = FeWoNr and Beschreibung = “Grundbetrag”;
    let N := Nr;
    let PP:=first(p.Preis);
    let d := (create Positionen);
    d.Preis := PP

    Wozu du noch let N:=Nr brauchst, weiß ich nicht, habe einfach im Skript gelassen.

    und noch was:

    Wenn das Feld "Beschreibung" ein Textfeld ist, dann ist die Formel korrekt. Wenn aber es ein Auswahlfeld ist, dann muss du entweder die Nummer von der Auswahl “Grundbetrag” oder die Formel sollte sein:
    let p := select Preise where FeWo = FeWoNr and text(Beschreibung )= “Grundbetrag”

    Grüße
    Leo
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Leo,

    danke, hat funktioniert.
    let N := Nr. wird benötigt, um die Verbindung der beiden Tabellen herzustellen. Wird mit create... nicht automatisch gemacht.

    Jetzt habe ich etwas, ich verstehe es nicht. Beim Schließen des Fensters wird mir der Skript geändert...
    aus " ... and bisDatum >= AbbTag);"
    wird " ... and N >= AbbTag);"
    • Leonid_Semik
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Tauschi,
    I hatte auch sowas schon gehabt. Versuch alle deine Variablen mit mindestens zwei Buchstaben zu benennen (statt let N:=Nr -> let NN:=Nr).
    Ninox ersetzt die Variablen und Tabellennamen für interne Berechnungen durch Buchstaben und manchmal kommt es zu Überschneidungen. So zu mindest ist meine Theorie. Es kann aber sein, dass die Ursache woanders liegt-bin kein Entwickler.
    Leo.
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    tatsächlich, habe die Variable mit 2 Buchstaben definiert und es hat funktioniert - DANKE
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo,

    eine Frage zum Feld 'e-Mail'. Wie kann ich dort aus einer Funktion heraus in Betreff bzw. Inhalt schreiben?

    Danke
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Nachtrag

    'E-Mail'.Inhalt := "das ist ein Test" geht nicht...
    • Alexander_Koenig
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Tauschi,
    das geht über die Feld Eigenschaften des eMail Feldes. Aktivieren Sie den Schraubenschlüssel. Klicken Sie auf den Namen des eMail Feldes um die Eigenschaften zu öffnen. Hier kann der Betreff, bzw. Inhalt der eMail aus den Feldwerten zusammen gesetzt werden.

    Hilft das weiter? Bei Fragen auch gerne an support@ninoxdb.de schreiben.

    VG, Alex
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo Alex,

    Ja, hat mir weiter geholfen. das geht ja auch auf diesem Weg. Aber dort geht kein Zeilenwechsel... Es wird alles in nur in die erste Zeile geschrieben... Ich Date das auch schon irgendwo gelesen..., finde die Lösung aber nicht.
    • bernd
    • vor 7 Jahren
    • Gemeldet - anzeigen
    Hallo,
    erste Projekt, die Verwaltung von 4 FeWo's ist fertig.
    Nächstes Projekt ist in Arbeit...
    Das Problem: ein Feld Uhrzeit soll beim neuen Datensatz automatisch gefüllt werden: dazu nutze ich die Funktion now(). Diese gibt mir aber die aktuelle Urzeit - 1 Stunde zurück. (Zeit im Mac stimmt aber). Ist das nicht die richtige Funktion..., oder hat das mit der Sommer - Winterzeit etwas zu tun?

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 493Antworten
  • 134607Ansichten