hilfdirselbst.ch
Facebook Twitter gamper-media
simi
Beiträge: 18
3. Jun 2003, 08:55
Beitrag #1 von 6
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


Hallo,
ich habe ein kleines Problem eine Suchfunktion mit v12 und lingo zu erstellen.
Bei der Suchfunktion soll nach mehreren Kriterien gesucht werden können (mehr als drei Kriterien, sonst könnte ich die v12-Library benutzen). Ich beiße mir die Zähne an dem Script aus. Hab mir auch schon Tutorials aus dem Netz gezogen, die aber immer nur die Suche mit einem Suchkriterium darstellen.

Kann mir jemand helfen?

Als Basis habe ich eine Access-Datenbank, die ich mit dem v12-Tool umwandle. Die Access-Datenbank besteht aus mehreren Tabellen, die die unterschiedlichen Suchkriterien darstellen.

Wäre froh, wenn mir jemand helfen kann. Oder ein paar gute Tutorials empfehlen kann.

Danke
Simone Top
 
X
donkey shot
Beiträge: 1416
3. Jun 2003, 13:31
Beitrag #2 von 6
Beitrag ID: #38027
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


Habe mir zwar irgendwann V12 mal angeguckt, aber noch nicht damit gearbeitet. Wie ich gesehen habe, gibt es da noch einiges an eigenen Lingo-Ergänzungen. Aber das sah nicht allzu anders als gewöhnliches Lingo aus.

Vielleicht kannst Du mir mal das Skript für die Suchfunktion posten, dann gucke ich es mir mal an.

grüsse

Christof
als Antwort auf: [#37980] Top
 
Anonym
Beiträge: 22827
3. Jun 2003, 14:40
Beitrag #3 von 6
Beitrag ID: #38039
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


Hallo Christof,
ich versuch mal den aufbau der datenbank so einfach wie möglich darzustellen:

es gibt eine v12-datenbank: datenbank.v12

diese ist in mehrere tabellen aufgeteilt (ich schreib dir nur mal zwei auf). die verschiedenen tabellen sind auch die verschied. suchkriterien:
dbo_lebensmittel (mit den fields: lebensmittel_id, lebensmittel_name, lebensmittel_marke_id)
dbo_marke (mit den fields: marke_id, marke_name)

nun soll die suche ein "lebensmittel"-suchfeld beinhalten (wo man z.b. pizza) suchen kann. alle lebensmittel sind in der dbo_lebensmittel aufgeführt.


man soll aber auch zusätzlich über die "marke" suchen können. das soll ein drop-down-menu werden, in dem man die marke auswählen kann.

über die "lebensmittel_marke_id" der "dbo_lebensmittel" und der "marke_id" der "dbo_marke" sind diese über zahlencodes miteinander verknüpft.

ich weiss jetzt nicht wie ich diese ansprechen kann?
also z.b. pizza hat in der dbo_lebensmittel die "lebensmittel_marke_id": 15

in der dbo_marke ist diese nummer unter "marke_id" :15 aufgeführt. so kann die marke mit dem lebensmittel verknüpft werden.



mein lingo-script lautet nun:

main script (global):
--------------------------------------------
Global gDB, gTable, gFirstRec, kPageLength

on startMovie
set kPageLength = 16 page
set gFirstRec = 1

if not validateV12() then halt

--die felder, in denen das ergebis eingetragen wird

put "Text to search..." into field "kwd"
put "" into field "HitList"
put "" into field "txt"
put "" into field "txt02"
put "" into field "txt03"
end

on FindIt kWord
put "Searching..." into field "hitList"
if not ObjectP(gTable) then
clearGlobals()
openDataBase()
end if
mSetCriteria(gTable, "lebensmittel_name", "WordStarts", kWord)
CheckV12Error()
StartTimer()
mSelect(gTable)
CheckV12Error()
put "mSelect: " & (the timer / 60.0) & " secs"
put mGetSelection(gTable, "LITERAL",1, mSelectCount(gTable), TAB, RETURN, "lebensmittel_name") into field "HitList"
put mGetSelection(gTable, "LITERAL",1, mSelectCount(gTable), TAB, RETURN, the moviePath & "dbo_marke" & "marke_name") into field "txt"

CheckV12Error()
put "mGetSelection: " & (the timer / 60.0) & " secs"
SelectRec(1) -- select first record in list (as if user clicked on it)
end FindIt

on SelectRec recNum

set the forecolor of field "HitList" to 255
set the forecolor of line recNum of field "HitList" to 35
mGo(gTable, recNum)
--put mGetField(gTable, "food_cat_id") into field "txt"
CheckV12Error()
colorCodeOccurrences("txt", field "kwd", 35) -- color 35 is a red in the Mac palette
end SelectRec

on TrackAndSelectLine
pointer is on
global gTable
set ml = -999
repeat while the mouseDown
if (the mouseLine>0) and (the mouseLine <> ml) then
set ml = the mouseLine
SelectRec(ml)
else if (the mouseline<0) then
pass
end if
end repeat
end TrackAndSelectLine



on ColorCodeOccurrences memberName, yourText, theColor
set the forecolor of field memberName to 255

set totalLen = length(field memberName)
set len = length(yourText)

set startAt = 1 -- crawling pointer, points at 1st char of text chunk to look into
set i = offset(yourText, field memberName)
repeat while i>0
set the forecolor of char i+startAt-1 to i+startAt-1+len-1 of field memberName to theColor

set startAt = startAt+i+len
set i = offset(yourText, char startAt to totalLen of field memberName)
end repeat
end ColorCodeOccurrences

-------------------------------------------------



utilities-script (global):
-------------------------------------------------

Global gDB, gTable, gFirstRec, kPageLength

on openDatabase
ClearGlobals()
set gDB = new(XTRA "V12dbe", the pathname&"datenbank.V12", "ReadWrite", "")
if CheckV12Error() then exit
set gTable = new(XTRA "V12table", mGetRef(gDB), "dbo_lebensmittel",)
CheckV12Error()
end openDatabase

-------------------------------------------------


das ist jetzt ziemlich kompliziert.
wenn du lust hast ;) kannst du dir das ja mal anschauen und vielleicht fällt dir ne lösung ein, wie ich mehrere suchkriterien einbauen kann, und die tabellen der datenbank über diese "id" verknüpfen kann.

vielen dank!
simone
als Antwort auf: [#37980] Top
 
simi
Beiträge: 18
3. Jun 2003, 14:43
Beitrag #4 von 6
Beitrag ID: #38041
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


Sorry Christof,
war wohl gerade nicht eingeloggt. das script kommt natürlich von mir.

Gruß
Simone
als Antwort auf: [#37980] Top
 
donkey shot
Beiträge: 1416
4. Jun 2003, 02:15
Beitrag #5 von 6
Beitrag ID: #38130
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


Tja. Ich denke ich kann dir wohl da nicht weiterhelfen. Ich verstehe zwar in etwa, was die Skripts machen, aber die V12-eigenen Befehle überfordern mich doch etwas. Da müsste ich mich erstmal mit dem Xtra auseinandersetzen. Habe schon in die Dokumentation von V12 reingekuckt (die habe ich schon seit Jahr und Tag auf der Platte genauso wie die Demoversion, aber wie das so ist...), das hat mir aber auch nicht weitergeholfen.

Müßte ich Zeit investieren.

Da ich gerade mitten in einer Produktion (Computerspiel zum Diplom) stecke, ist diese leider begrenzt. Sonst würde es mich sehr reizen, mich damit mal auseinanderzusetzen.

Da Director an sich und besonders auch die Extras ein grenzenloses Thema sind, versuche ich auch, noch Leute ranzukriegen, die in diesem Forum Themen abdecken können, mit denen ich mich noch nicht befasst habe, allerdings bislang erfolglos. Aber das Forum ist ja noch jung und ich habe noch Hoffnung.

Sorry, daß ich Dir nicht helfen konnte und grüsse,

Christof
als Antwort auf: [#37980]
(Dieser Beitrag wurde von donkey shot am 5. Jun 2003, 01:33 geändert)
Top
 
molekuel
Beiträge: 27
4. Jun 2003, 21:36
Beitrag #6 von 6
Beitrag ID: #38261
Bewertung:
(1381 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

suchfunktion mit v12


hi simi,
hoffe ich hab dich richtig verstanden... am besten du öffnest eine table, und durchsuchst mit dem suchbegriff den du von user kriegst die tabelle. du kannst verschiedene suchbegriffe mit "AND" kombinieren. die resultate speicherst du in einer propertyListe. danach kannst du die tabelle wieder schliessen und die nächste öffnen und diese wiederum mit dem suchbegriff (oder jetzt hast du ja die ID in der propertyListe gespeichert) durchsucheen. Die weiteren resultate speicherst du wiederum in diese propertyListe und nach abschluss der suche hast du all deine resultate in einer liste gespeichert und kannst diese in die ausgabefelder schreiben.
ich hoffe diese "trockenübun" bringt dir was! hab leider ziemöich viel zu tun... :-(
lieber gruss & viel glücck,
manuel
als Antwort auf: [#37980] Top
 
X