Arrays und Ihre Verwendungsmöglichkeiten?!? [ERLEDIGT]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Arrays und Ihre Verwendungsmöglichkeiten?!? [ERLEDIGT]

Beitrag von messing »

Servus,

Ich möchte eine Liste mit verschiedenen Angaben als Array aufbauen.

z.B.

Artikel,Bestand,Preis,verkauft, usw.

möchte in verschiedenen Spalten eine Summierung, z.B. bei Preis.

Wenn die Liste fertig ist, möchte ich die Daten drucken und eventuell in einer Datenbank speichern.

Erst mal die Frage an alle, ergibt es einen Sinn, dies mit einem Array zu machen???

Das Array selbst ist kein Problem, auch das anfügen nicht.
Ich habe jetzt das Problem, dieses Array angezeigt zu bekommen mit der Möglichkeit der Datenänderung.
Geht dies überhaupt? Anzeige und Bearbeitung und einzelne Zeilen löschen?
Habe bisher sehr wenig Erfahrung mit Arrays.
Ich will damit den Zugriff auf die Datenbank vermindern, da nach dem Druck der Liste erst eine Überarbeitung dieser erfolgen soll und somit eventuell Zeilen gelöscht werden sollen. Erst nachdem die Bearbeitung fertig ist, können die restlichen Daten in die Datenbank.
Eine (zu Tun Liste / Einkaufsliste) könnte man sagen, was erledigt ist fliegt raus.

Array anlegen - ok. - aArray := {}
In das Array Daten - ok - AAdd( aArray, {"Artikel","Preis",nBetrag,nMenge,nGesbetrag,} )
und ab hier verliesen mich die guten Geister. :confused2:
Ich hab es zwar noch geschaft, mit AEval( aArray, {|a| QOut(a[1], a[2],a[3],a[4], a[5],a[6]) } )
auf den Bildschirm zu bekommen, jedoch jeder Versuch es in einen Listenmodus mit Bearbeitungsmöglichkeit zu bekommen ist gescheitert.
Wenn es eine andere Option als Array gibt dies zu realisieren, ok, her damit, lasst mich nicht unwissend untergehen :blob8:
Gehts mit Array, dann schmeißt mir mal nen Rettungsanker rüber =D> . Möchte eigentlich nicht absaufen :D .

Gruß

Messing
Zuletzt geändert von messing am Mi, 09. Jun 2010 11:22, insgesamt 1-mal geändert.
Gruß
Bruno
Messing
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Martin Altmann »

Moin,
einfach mit dem XbpBrowse() das Array anzeigen.
Löschen eines Eintrages geht ja mit ADel() - mit ASize() müsstest Du das Array nach dem Löschen entsprechend verkleinern!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

Danke für die schnelle Antwort :shock: .
Geht dies in einem Textfenster?

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

Seit 1.9 gibt es auch ARemove(nRow), das einen Eintrag löscht und das Array verkleinert.

Im Textmodus müsste das mit TBrowse gehen.
Herzlich,
Tom
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

So denn, hier hab ich ein kleines Prog.

bitte mal reinschauen und helfen :D , aber bitte keine vollständige Lösung :badgrin: , sondern ne Markierung machen und kräftig schubsen! =D>
Ich muß das doch endlich mal runterkriegen :cry: , es kann doch nicht so unverdaubar sein wie ich mich anstelle! :D
Wie gesagt, kräftig schubsen ist gut, damit der rocken endlich mal dort landet, wo er eigentlich hin soll.

Gruß
Messing

Code: Alles auswählen

PROCEDURE main
local aArray
local ek_artikel,ek_preis,ek_stueck,ek_gesbetrag,ek_datum,ek_bezahlt
local taste

aArray:={}

ek_artikel:=Space(30)
ek_preis:=0
ek_stueck:=0
ek_gesbetrag:=0
ek_datum:=ctod("")
ek_bezahlt:=0



set confirm on
set decimals to 2
cls

// von 1 - 15 Array Liste

//aktualisierung der Liste nach eingabe








@ 21,01 say "F5 - Artikel"
@ 21,20 say "ESC - Ende"



do while taste<>27
	taste:=inkey(0)
	do case
		case taste=-4
			@ 17,01 say "Artikel: " get ek_artikel
			@ 17,45 say "Preis: " get ek_preis
			@ 18,01 say "Menge: " get ek_stueck
			@ 18,40 say "Ges.Betrag: " get ek_gesbetrag
			@ 19,01 say "Wann: " get ek_datum
			@ 19,40 say "Bezahlt: " get ek_bezahlt

			read

			AAdd( aArray,{ek_artikel,ek_preis,ek_stueck,ek_gesbetrag,ek_datum,ek_bezahlt} )
		case taste=27
			quit
	endcase	
enddo
return

* Programmende  EOF *
Gruß
Bruno
Messing
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

Tom hat geschrieben:Seit 1.9 gibt es auch ARemove(nRow), das einen Eintrag löscht und das Array verkleinert.

Im Textmodus müsste das mit TBrowse gehen.
Servus,
TBrowse hab ich schon bei Datenbanken benutzt, was müsste ich machen um das auf ein Array anzuwenden?

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von brandelh »

Hi,

zunächst solltest du oben ein

Code: Alles auswählen

#include "inkey.ch"
einsetzen und statt dem numerischen Tastencode das jeweilige Kürzel nutzen ...

-4 ... was war das nochmal -> K_F5 ;-) ist einfach besser lesbar
27 -> K_ESC etc.

für die Auswahl im Textfenster ist TBROWSE() ganz nützlich.
Du könntest aber auch die GET mit ARRAY Elementen aufrufen

@ 1,1 say "Kunde" get aName[x]

mit F7 und F8 dann X hoch oder runterzählen
und nach jeder Änderung von X ein

Code: Alles auswählen

aEval(getlist(),{|oG| oG:updateBuffer() } )
ausführen, dann wird die Änderung sofort angezeigt ... ach wie lange ist das her :wink:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von brandelh »

Hi,

statt TBrowse() ist AChoice() wahrscheinlich einfacher.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

Am Rande, weil es gerade zum Thema passt:

Arrays gehören einfach zu der geilsten Scheiße, die es in Xbase gibt. 8) Sie können irre groß, nahezu beliebig dimensioniert und bis auf Zellenebene völlig frei typisiert werden, sie sind sehr rasant, robust und dynamisch als Datenquelle für alles mögliche zu verwenden. Es kann sich lohnen, auch im Netzwerk ständig aktuell zu haltende Daten, die zum Beispiel in komplexen Browses angezeigt werden sollen, aus Tabellen in Arrays zu kopieren und ggf. zeilenweise regelmäßig zu aktualisieren, statt ständig auf irgendwelchen Netzwerklaufwerken herumzueiern (ein Tabellen-Browse generiert beim Scrollen einen Heidentraffic, obwohl sich ggf. überhaupt nichts geändert hat!). Hilfstabellen, die viele von uns wahrscheinlich in ihrer Clipperzeit häufig z.B. für Auswertungen genutzt haben, um Speicherplatz zu sparen, sollte man gegen Arrays austauschen. Und so weiter. Dabei hilft es auch, den Präprozessor zu nutzen, um nicht mit Ausdrücken wie aArray[172,220,11] herumstochern zu müssen, sondern stattdessen mit etwas wie aArray[DIALOG_BASECOLOR,MAX_LINE,SUM_VALUE] arbeiten zu können.

Bin ein Arrayfan. :wink:
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Martin Altmann »

Ach - und das aus Deinem Munde? :thumbright:
Ich erinnere mich noch daran, wie Du mir in den Rücken gefallen warst bei dem Thema 8)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

Tom hat geschrieben:Am Rande, weil es gerade zum Thema passt:

Arrays gehören einfach zu der geilsten Scheiße, die es in Xbase gibt. 8) Sie können irre groß, nahezu beliebig dimensioniert und bis auf Zellenebene völlig frei typisiert werden, sie sind sehr rasant, robust und dynamisch als Datenquelle für alles mögliche zu verwenden. Es kann sich lohnen, auch im Netzwerk ständig aktuell zu haltende Daten, die zum Beispiel in komplexen Browses angezeigt werden sollen, aus Tabellen in Arrays zu kopieren und ggf. zeilenweise regelmäßig zu aktualisieren, statt ständig auf irgendwelchen Netzwerklaufwerken herumzueiern (ein Tabellen-Browse generiert beim Scrollen einen Heidentraffic, obwohl sich ggf. überhaupt nichts geändert hat!). Hilfstabellen, die viele von uns wahrscheinlich in ihrer Clipperzeit häufig z.B. für Auswertungen genutzt haben, um Speicherplatz zu sparen, sollte man gegen Arrays austauschen. Und so weiter. Dabei hilft es auch, den Präprozessor zu nutzen, um nicht mit Ausdrücken wie aArray[172,220,11] herumstochern zu müssen, sondern stattdessen mit etwas wie aArray[DIALOG_BASECOLOR,MAX_LINE,SUM_VALUE] arbeiten zu können.

Bin ein Arrayfan. :wink:
Sehr gut, dann bitte ich darum, mir mal auf die Sprünge zu helfen! :blob8: :D

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

brandelh hat geschrieben:Hi,

zunächst solltest du oben ein

Code: Alles auswählen

#include "inkey.ch"
einsetzen und statt dem numerischen Tastencode das jeweilige Kürzel nutzen ...

-4 ... was war das nochmal -> K_F5 ;-) ist einfach besser lesbar
27 -> K_ESC etc.

für die Auswahl im Textfenster ist TBROWSE() ganz nützlich.
Du könntest aber auch die GET mit ARRAY Elementen aufrufen

@ 1,1 say "Kunde" get aName[x]

mit F7 und F8 dann X hoch oder runterzählen

und nach jeder Änderung von X ein

Code: Alles auswählen

aEval(getlist(),{|oG| oG:updateBuffer() } )
ausführen, dann wird die Änderung sofort angezeigt ... ach wie lange ist das her :wink:
OK, Include eingebaut =D>

Gruß
Messing
Zuletzt geändert von messing am Di, 20. Apr 2010 16:19, insgesamt 1-mal geändert.
Gruß
Bruno
Messing
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

@Martin:

Das musste ja kommen. 8)

Nein, ich muss da wirklich zu Kreuze kriechen. Ich habe gerade ein hochkomplexes Planungssystem, das ständig auf zig Tabellen zugreift und Daten mischt, in ein mehrdimensionales Array (eigentlich in mehrere) geschaufelt. Das ganze wird in insgesamt vier parallelen Browses angezeigt, die miteinander interagieren. Auf die Echtdaten greife ich dann im Prinzip nur noch zu, wenn bestimmte Events ausgelöst werden, Daten verändert werden oder wenn der Benutzer die Aktualisierung manuell auslöst (es gibt dann noch ein paar Zusatzkniffe, aber das würde hier zu weit führen). Im Ergebnis ist das System - je nach Netzwerktopologie - locker um den Faktor 50 (!) schneller als vorher (und es war vorher schon optimiert) und erzeugt nur noch einen Bruchteil des Traffics. Und wenn Daten dergestalt geändert werden, dass auf anderen Arbeitsplätzen Aktualisierungen ausgelöst werden sollen, schicke ich einfach einen SOAP-Request an unseren selbstgebauten Server, mit dem alle Arbeitsplätze sowieso ständig kommunizieren - dann wird auch nur das aktualisiert, was geändert wurde. Die Verzögerung liegt damit unter 30 Sekunden, aber auch das lässt sich noch verfeinern. Der Aufbau des Systems dauert jetzt ein paar Sekunden länger als vorher, aber diese Zeit hat man sehr schnell wieder raus.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Martin Altmann »

Tom,
Tom hat geschrieben:@Martin:
Das musste ja kommen. 8)
klar - kennst mich doch.
Aber freut mich ja :!:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

brandelh hat geschrieben:Hi,

statt TBrowse() ist AChoice() wahrscheinlich einfacher.
Funktioniert AChoice mit einem lerren Array ( Programmstart ) ? :^o

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

@Messing:

Wenn Du immer feste Spalten z.B. für Kundennr., Name, Datum usw. in Deinem Array hast, geht sowas:

Code: Alles auswählen

* ganz oben im Source:
#DEFINE KUNDENNR 1
#DEFINE NAME 2
#DEFINE DATUM 3 // usw., oder RECHNUNGSARRAY_DATUM oder so

* Array erzeugen, z.B. aAdd(aArray,{db->kundennr, db->name, db->datum usw. })

? aArray[nRowPos,KUNDENNR]
Der Präprozessor macht dann - Achtung: er unterscheidet strikt Groß- und Kleinschreibung! - überall im Source (in diesem Source!) aus "KUNDENNR" eine 1. So arbeiten z.B. auch die ganzen GRA-Konstanten, die man nutzen kann, wenn man GRA.CH einbindet: oStatic:SetColorBG(GRA_CLR_WHITE). "GRA_CLR_WHITE" ist in der GRA.CH als "-2" definiert, und der Präprozessor macht aus diesem Code dann: oStatic:SetColorBG(-2). Einer der großen Vorteile - neben der besseren Lesbarkeit - besteht darin, dass man z.B. bei Änderung der Spaltenposition für "KUNDENNR" nur noch das Define ändern muss, statt alle Zugriff auf das Array danach zu durchsuchen, ob eine "1" darin vorkommt.
Herzlich,
Tom
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

Tom hat geschrieben:@Messing:

Wenn Du immer feste Spalten z.B. für Kundennr., Name, Datum usw. in Deinem Array hast, geht sowas:

Code: Alles auswählen

* ganz oben im Source:
#DEFINE KUNDENNR 1
#DEFINE NAME 2
#DEFINE DATUM 3 // usw., oder RECHNUNGSARRAY_DATUM oder so

* Array erzeugen, z.B. aAdd(aArray,{db->kundennr, db->name, db->datum usw. })

? aArray[nRowPos,KUNDENNR]
Der Präprozessor macht dann - Achtung: er unterscheidet strikt Groß- und Kleinschreibung! - überall im Source (in diesem Source!) aus "KUNDENNR" eine 1. So arbeiten z.B. auch die ganzen GRA-Konstanten, die man nutzen kann, wenn man GRA.CH einbindet: oStatic:SetColorBG(GRA_CLR_WHITE). "GRA_CLR_WHITE" ist in der GRA.CH als "-2" definiert, und der Präprozessor macht aus diesem Code dann: oStatic:SetColorBG(-2). Einer der großen Vorteile - neben der besseren Lesbarkeit - besteht darin, dass man z.B. bei Änderung der Spaltenposition für "KUNDENNR" nur noch das Define ändern muss, statt alle Zugriff auf das Array danach zu durchsuchen, ob eine "1" darin vorkommt.
Meinst Du mit feste Spalten, das immer der gleiche Wert unter dem gleichen Wert angehängt wird? Wenn ja, dann ja! :D

Artikel soll unter Artikel stehn usw.
Die Daten kommen aber nicht aus einer DB.
Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

Meinst Du mit feste Spalten, das immer der gleiche Wert unter dem gleichen Wert angehängt wird?
Genau das. Spalte eins enthält immer die Kundennr. usw. Nur dann hat es auch Sinn. Dasselbe kann man natürlich auch über UDFs erreichen:

Code: Alles auswählen

? aArray[nRowPos,KundenSpalte()]

STATIC FUNCTION KundenSpalte()
RETURN 1
Aber Defines sind deutlich eleganter.
Herzlich,
Tom
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

Tom hat geschrieben:
Meinst Du mit feste Spalten, das immer der gleiche Wert unter dem gleichen Wert angehängt wird?
Genau das. Spalte eins enthält immer die Kundennr. usw. Nur dann hat es auch Sinn. Dasselbe kann man natürlich auch über UDFs erreichen:

Code: Alles auswählen

? aArray[nRowPos,KundenSpalte()]

STATIC FUNCTION KundenSpalte()
RETURN 1
Aber Defines sind deutlich eleganter.
OK das hab ich gleich mal umgesetzt. :D

Code: Alles auswählen

#define EK_ARTIKEL		1
#define EK_PREIS		2
#define EK_STUECK		3
#define EK_GESBETRAG	4
#define EK_DATUM		5
#define EK_BEZAHLT		6



#include "inkey.ch"
PROCEDURE main
local aArray
local ek_artikel,ek_preis,ek_stueck,ek_gesbetrag,ek_datum,ek_bezahlt
local taste
local nChoice
aArray:={}

ek_artikel:=Space(30)
ek_preis:=0
ek_stueck:=0
ek_gesbetrag:=0
ek_datum:=ctod("")
ek_bezahlt:=0



set confirm on
set decimals to 2
cls

// von 1 - 15 Array Liste



//aktualisierung der Liste nach eingabe








@ 21,01 say "F5 - Artikel"
@ 21,20 say "ESC - Ende"



do while taste<>27
	taste:=inkey(0)
	do case
		case taste=K_F5
			@ 17,01 say "Artikel: " get ek_artikel
			@ 17,45 say "Preis: " get ek_preis
			@ 18,01 say "Menge: " get ek_stueck
			@ 18,40 say "Ges.Betrag: " get ek_gesbetrag
			@ 19,01 say "Wann: " get ek_datum
			@ 19,40 say "Bezahlt: " get ek_bezahlt

			read

			AAdd( aArray,{ek_artikel,ek_preis,ek_stueck,ek_gesbetrag,ek_datum,ek_bezahlt} )
		case taste=K_ESC
			quit
	endcase
enddo
return

* Programmende  EOF *
Gruß

Messing
Gruß
Bruno
Messing
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

@Tom

Jetzt gib mir mal nen Schubser wie ich die Tabelle oder Achoice im ober Fensterbereich bis Zeile 15 sichtbar bekomme.
Ich hab aus der Doku AChoice ausprobiert, doch nichts passiert.

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von Tom »

@Messing: aChoice ist nur für eindimensionale Arrays ({'Eins','zwei','drei'}), wenn ich das richtig sehe, also geeignet z.B. für Dateiauswahlen oder Menüs oder ähnliches. Zu TBrowse kann ich Dir nix sagen, weil ich ausschließlich mit GUI arbeite (vielleicht solltest Du mal einen Blick auf Roger Donnays Zusatzbibliothek "eXpress++" werfen, die erlaubt XBase++-GUI-Anwendungen mit Clipper-ähnlicher Codierung). Aber wenn ich das richtig gesehen habe, gibt's zu TBrowse ein Beispiel mit Arrays.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von AUGE_OHR »

hi,
messing hat geschrieben:

Code: Alles auswählen

taste:=inkey(0)
ein INKEY(0) geht für Xbase++ "gar nicht" ! setzte unbedingt einen Wert wie 0.1 in das INKEY()

Frage will du wirklich es im VIO/Hybrid Modus machen ?
Sonst schau dir mal C:\ALASKA\XPPW32\Source\samples\basics\GuiBrow\FBROWSE.prg an
gruss by OHR
Jimmy
Benutzeravatar
messing
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 216
Registriert: Mi, 13. Jan 2010 9:42
Wohnort: Lauterbach / Hessen

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von messing »

AUGE_OHR hat geschrieben:hi,
messing hat geschrieben:

Code: Alles auswählen

taste:=inkey(0)
ein INKEY(0) geht für Xbase++ "gar nicht" ! setzte unbedingt einen Wert wie 0.1 in das INKEY()

Frage will du wirklich es im VIO/Hybrid Modus machen ?
Sonst schau dir mal C:\ALASKA\XPPW32\Source\samples\basics\GuiBrow\FBROWSE.prg an
Servus,

wieso geht das mit inkey(0) nicht unter xbase++, habe bis jetzt keine Probleme gehabt.

Was VIO/Hybrid Modus betrifft, habe mich bis heute nicht mit GUI beschäftigt, somit auch keine Ahnung ( Erfahrung ) :roll: damit.

Gruß
Messing
Gruß
Bruno
Messing
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von brandelh »

messing hat geschrieben:
AUGE_OHR hat geschrieben:hi,
messing hat geschrieben:

Code: Alles auswählen

taste:=inkey(0)
ein INKEY(0) geht für Xbase++ "gar nicht" ! setzte unbedingt einen Wert wie 0.1 in das INKEY()...
wieso geht das mit inkey(0) nicht unter xbase++, habe bis jetzt keine Probleme gehabt.
Der Hinweis auf ein INKEY(0) zu verzichten stammt noch von Clipper Zeiten.
Die alten DOS Versionen haben statt einem Betriebssystemaufruf einfach eine Schleife genutzt, die Windows in die Knie gezwungen hat.
Wahrscheinlich ist das dann für Xbase++ als Empfehlung hängen geblieben, aber ich habe es eben gerade nochmal geprüft.
INKEY(0) verbraucht keine Rechenzeit (unter 2% Systemlast inkl. Taskmanager) und ist somit kein Problem !
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Arrays und Ihre Verwendungsmöglichkeiten?!?

Beitrag von AUGE_OHR »

brandelh hat geschrieben:INKEY(0) verbraucht keine Rechenzeit (unter 2% Systemlast inkl. Taskmanager) und ist somit kein Problem !
hm ... und in einer TBrowse Schleife und :PgDn() während er bei "aufbauen" ist ?
gruss by OHR
Jimmy
Antworten