knowledge-database (beta)

Current group: dbase.deutsch

Filterproblem

Filterproblem  
Rene Debrunner EDV
 Re: Filterproblem  
Marc VdB
 Re: Filterproblem  
Rene Debrunner EDV
From:Rene Debrunner EDV
Subject:Filterproblem
Date:Sun, 23 Jan 2005 18:56:15 +0100
Hallo



Ich habe ein Filterproblem und vielleicht kann mir jemand einen guten Typ
geben.

In einer Tabelle habe ich Normalaufträge (N-30000), Sammelaufträge (R-30001)
und Abrufaufträge (A-30002)

abgelegt. Diese werden alle in der Auftragsinfo in einem Grid angezeigt. Nun
will ich aber wenn der Benutzer mittels Button eine von den 3 verschiedenen
Auftragarten anwählt, auch nur diese entsprechenden Aufträge im Grid
angezeigt werden.

Ich habe das mittels UdateSet und einem Filter mit SUBSTR wie unten versucht
und es ist mit folgender fehlgeschlagen: Fehler der Datenbank-Engine:
Operation nicht anwendbar.





Hier der Programm-Script:



form.q_auftragart.active = false

_app.databases[1].emptyTable( "Auftragart" )

local q, u, cFilter

q = New Query()

q.sql = "select * from Auftrag.dbf"

q.active = true

q.rowset.indexName = "cAuftrnr"

cFilter = "N"

q.rowset.filter=[SUBSTR(cAuftrnr,1,1)=']+cFilter+[']



u = New UpdateSet()

u.source = q.rowset

u.destination = "Auftragart.dbf"

u.append()



q = NULL

u = NULL



Ich hoffe, dass mir jemand einen guten Typ geben kann.



Gruss aus der Schweiz



René
From:Marc VdB
Subject:Re: Filterproblem
Date:Sun, 23 Jan 2005 21:47:35 +0100
Hallo Rene,

> Ich habe ein Filterproblem und vielleicht kann mir jemand einen guten Typ
> geben.

Eine möglich Lösung sieht wie folgt aus : einfach alles in eine Datei
rene.wfm kopieren und starten.
Ich hoffe es hilft,
Viele Grüße, Marc


**** Beginn von Rene.wfm

if not file('rene.dbf') // Falls Testtabelle nicht vorhanden
create table Rene (cauftrnr char(30))
q=new query()
q.sql='select * from rene'
q.active=true
for i=1 to 30
q.rowset.beginappend()
q.rowset.fields[1].value='N-'+str(i,4,0,'0')
q.rowset.beginappend()
q.rowset.fields[1].value='R-'+str(i,4,0,'0')
q.rowset.beginappend()
q.rowset.fields[1].value='A-'+str(i,4,0,'0')
q.rowset.save()
endfor
q.active=false
endif
** END HEADER -- do not remove this line
//
// Generated on 23.01.2005
//
parameter bModal
local f
f = new reneForm()
if (bModal)
f.mdi = false // ensure not MDI
f.readModal()
else
f.open()
endif
class reneForm of FORM
with (this)
height = 13.0 ; left = 56.0
top = 4.0 ; width = 47.0
endwith

this.RENE1 = new QUERY()
this.RENE1.parent = this
with (this.RENE1)
sql = 'select * from "Rene.DBF"'
active = true
endwith

this.pb1 = new renebutton(this)
with (this.pb1)
top=0.5
text = "Normalaufträge"
endwith
this.pb2 = new renebutton(this)
with (this.pb2)
top=2.5
text = "Sammelaufträge"
endwith
this.pb3 = new renebutton(this)
with (this.pb3)
top=4.5
text = "Abrufaufträge"
endwith
this.pb4 = new renebutton(this)

this.GRID1 = new GRID(this)
with (this.GRID1)
dataLink = form.rene1.rowset
height = 12.0 ; left = 2.0
top = 0.5 ; width = 21.0
endwith

this.rowset = this.rene1.rowset
endclass

Class Renebutton(oparent) of pushbutton(oparent)
with(this)
left=25 ; width=16
height=1; top=6.5
text="Alle"
onclick=class::filtergrid
endwith

function filtergrid
local f1,f2
do case
case this.text="Normalaufträge" ; f1='N';f2='R'
case this.text="Sammelaufträge" ; f1='R';f2='S'
case this.text="Abrufaufträge" ; f1='A';F2='N'
case this.text="Alle" ; f1='A' ; f2='Z'
endcase
form.rowset.filter=[ cauftrnr > ']+f1+['and cauftrnr < ']+f2+[']
return
endclass

*** Ende von Rene.wfm

--
------
www.vdblogic.de/dbl/homee.htm
------
From:Rene Debrunner EDV
Subject:Re: Filterproblem
Date:Mon, 24 Jan 2005 10:33:59 +0100
Hallo

Ich habe den Vorschlag von Marc natürlich sofort ausprobiert und es hat auf
Anhieb super geklappt. Vielen Dank Marc, Du hast was gut bei mir!!



Gruss René
   

Copyright © 2006 knowledge-database   -   All rights reserved