set relation und fehler beim aufruf von dbedit ???

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Hallo , ich war hier schon mal angemeldet hatte aber mein passwort vergessen, und hoffe auf eure schnelle hilfe , so wie ich es hier gewohnt bin :-)

Wahrscheinlich sitze ich im moment völlig auf dem schlauch.
Mein problem:

Umstellung Clipper auf xbase CODE:

Code: Alles auswählen

...
select 8
use rechnung index tnummer
select 5
set relation to terminnr into rechnung
...
DECLARE F1 [7]
F1[1]=rechnung->rdatum      ----> hier wird nur beim ausführen des programms unter xbase eine fehlermeldung ausgegeben ! ( siehe unten )
F1[2]=verkauf1->bm1
F1[3]=verkauf1->vkp1
F1[4]=verkauf1->betrag0
F1[5]=verkauf1->artikelnr
F1[6]=verkauf1->vprodukt
F1[7]=rechnung->rnr2


DECLARE K1[7]
K1[1]="Verkaufsdatum"
K1[2]="Menge"
K1[3]="VKPreis netto"
K1[4]="VKSumme netto"
K1[5]="Artikelnummer"
K1[6]="Produktname"
K1[7]="Rechnungsnummer"

clear
@ 24,1 SAY "[ESC]=Zurück [F1]=Gesamtsumme [F2]=Drucken"
do f1 with "2"
DBEDIT(1,0,23,79,F1,"vkfedit","",K1)
do f1 with "1"
set relation to
Fehlermeldung:
Xbase++ version : Xbase++ (R) Version 1.82.306
Operating system : Windows 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: D VALUE:
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Parameter has a wrong data type
oError:filename :
oError:genCode : 2,00
oError:operation : <[1]>:=< >
oError:osCode : 0,00
oError:severity : 2,00
oError:subCode : 3,00
oError:subSystem : BASE
oError:thread : 1,00
oError:tries : 0,00
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from VKUEBSF(36)
Called from VKMENU(24)
Called from ZMENU(33)
Called from MAIN(434)
DANKE schonmal im voraus
mfg klaus
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von Herbert »

Nach dem F1 im Declare darf kein Leerzeichen stehen.
Achtung: declare erstrellt PRIVATE-Variablen.
Grüsse Herbert
Immer in Bewegung...
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Code: Alles auswählen

select 8
use rechnung index tnummer
select 5
set relation to terminnr into rechnung
...

SELECT 8      <----- nach dem einfügen der Zeile läuft es jetzt durch :-)

DECLARE F1 [7]
F1[1]=rechnung->rdatum      ----> hier wird nur beim ausführen des programms unter xbase eine fehlermeldung ausgegeben ! ( siehe unten )
F1[2]=verkauf1->bm1
F1[3]=verkauf1->vkp1
F1[4]=verkauf1->betrag0
F1[5]=verkauf1->artikelnr
F1[6]=verkauf1->vprodukt
F1[7]=rechnung->rnr2
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Aber Daten werden keine in der Tabelle angezeigt :-(
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von Jan »

Wenn in keiner der beteiligten Tabellen irgendwelche Daten angezeigt werden: Auf welchen Datensätzen stehst Du denn da jeweils? Bist Du sicher, das Du nicht in Select 5 (ich nehme mal an, das soll verkauf1 sein) nicht z. B. auf EoF() stehst?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von brandelh »

an der sichtbaren Syntax kann es nicht liegen, da dies funktioniert:

Code: Alles auswählen

procedure main
   local x
   DECLARE F1 [7], F2 [7]

   for x := 1 to 7
       F1 [x] := "F1-"+str(x,1)
       F2 [x]  = "F2-"+str(x,1)
       ? x,F1[x],F2[x]
   next

return
Anzeige:

Code: Alles auswählen


XBase2, Alink, VIO         NEU 20.09.2001
Xbase++ (R) Compiler 1.90.355 Apr 10 2009
Copyright (c) Alaska Software. All rights reserved.
File: test.prg Line:   12
test.prg(8:0): warning XBT0102: Ambiguous variable reference F1
test.prg(9:0): warning XBT0102: Ambiguous variable reference F2
test.prg(10:0): warning XBT0102: Ambiguous variable reference F1
test.prg(10:0): warning XBT0102: Ambiguous variable reference F2
File test.prg compiled successfully.
Alaska 32-Bit Linker Version 1.90.355
Copyright (c) Alaska Software 1997-2009. All rights reserved.

D:\TEST\TestDeclare> test

         1 F1-1 F2-1
         2 F1-2 F2-2
         3 F1-3 F2-3
         4 F1-4 F2-4
         5 F1-5 F2-5
         6 F1-6 F2-6
         7 F1-7 F2-7
D:\TEST\TestDeclare>
Der Parameter (das Feld) wird als Datumstyp erkannt und dann sagt die Fehlermeldung, dass dies ein ungültiger Datentyp ist.
Eine Variable und auch ein ArrayFeld haben keine vorgeschriebenen Datentypen, daher ist die Zuweisung immer erlaubt.

Könnte es sein, dass das Datumsfeld in der Datei beschädigt ist und ein ungültiges Datum an Xbase beim Lesen zurückgibt ?

kannst du die Datei mit clipper / DBU lesen ?
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Ich bearbeite meine DBF Datenbanken mit DBF Viewer 2000 und da gibt es keine Fehlermeldungen !

Normalerweise sollte er das rechnungsdatum und die zugehörigen artikel anzeigen - keine ahnung wo hier das problem liegt :-(

Hier nochmal die gesamte PROCEDURE:

Code: Alles auswählen

procedure vkuebs
#include "box.ch"
cls
select 8
use rechnung
index on rnr to tnummer
set index to tnummer
index on rdatum to vkdatum
set index to vkdatum
set scoreboard off

select 8
use rechnung index tnummer
select 5
set relation to terminnr into rechnung

clear
do uebschr with "Terminzeitraum"

clear gets
vsdat1=space(2)
vsjahr=space(4)
@4,20 to 8,56 double
@5,22 say 'Datumsauswahlkriterium eingeben:'
@7,27 say "Monat:" get vsdat1 picture "99"
@7,37 say "Jahr:" get vsjahr picture "9999"
vsdat1=month(date())
vsjahr=year(date())
read
*----------------------------zahlart F ausklammern-------------------
set filter to month(rechnung->rdatum)=(vsdat1) .and. year(rechnung->rdatum)=(vsjahr) .and. rechnung->zahlart<>"F" .and. rechnung->storno<>"S"
go top

cls
select 8
DECLARE F1 [7]
F1[1]="rechnung->rdatum"
F1[2]="verkauf1->bm1"
F1[3]="verkauf1->vkp1"
F1[4]="verkauf1->betrag0"
F1[5]="verkauf1->artikelnr"
F1[6]="verkauf1->vprodukt"
F1[7]="rechnung->rnr2"


DECLARE K1[7]
K1[1]="Verkaufsdatum"
K1[2]="Menge"
K1[3]="VKPreis netto"
K1[4]="VKSumme netto"
K1[5]="Artikelnummer"
K1[6]="Produktname"
K1[7]="Rechnungsnummer"

clear
@ 24,1 SAY "[ESC]=Zurck [F1]=Gesamtsumme [F2]=Drucken"
do f1 with "2"
DBEDIT(1,0,23,79,F1,"vkedit","",K1)
do f1 with "1"
set relation to
set scoreboard on
set filter to
return
FUNCTION vkedit
PARAMETERS Modus, Initial
Zeile=COL()
Reihe=ROW()
Rueck = 1
DO CASE

   CASE LASTKEY()=27
         Rueck=0
         clear gets
         CLs
         set cursor on

  CASE LASTKEY()=28
         do vkberechnung

  CASE LASTKEY()=-1
         do vkdruck1

endcase
return (rueck)
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

sobald ich:

Code: Alles auswählen

cls
select 8

GO TOP     <------------- nach dem einfügen wieder folgende fehlermeldung

DECLARE F1 [7]
F1[1]="rechnung->rdatum"
F1[2]="verkauf1->bm1"
F1[3]="verkauf1->vkp1"
F1[4]="verkauf1->betrag0"
F1[5]="verkauf1->artikelnr"
F1[6]="verkauf1->vprodukt"
F1[7]="rechnung->rnr2"
Fehlermeldung:
------------------------------------------------------------------------------
ERROR LOG of "C:\w2014\project.EXE" Date: 04.06.2014 13:41:38

Xbase++ version : Xbase++ (R) Version 1.82.306
Operating system : Windows 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: rechnung->rdatum
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Parameter has a wrong data type
oError:filename :
oError:genCode : 2,00
oError:operation : <[1]>:=<rechnung...>
oError:osCode : 0,00
oError:severity : 2,00
oError:subCode : 3,00
oError:subSystem : BASE
oError:thread : 1,00
oError:tries : 0,00
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from VKUEBS(37)
Called from VKMENU(20)
Called from ZMENU(33)
Called from MAIN(434)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:

Code: Alles auswählen

select 8
use rechnung index tnummer
select 5
set relation to terminnr into rechnung
...

SELECT 8      <----- nach dem einfügen der Zeile läuft es jetzt durch :-)
ich nehme mal an das auf "select 5" der Alias "Verkauf1" ist ?

Frage : wie ist dein Code für den Index "tnummer" und "terminnr" ?
xbaseklaus hat geschrieben:

Code: Alles auswählen

DECLARE F1 [7]
F1[1]=rechnung->rdatum      ----> hier wird nur beim ausführen des programms unter xbase eine fehlermeldung ausgegeben ! ( siehe unten )
F1[2]=verkauf1->bm1
F1[3]=verkauf1->vkp1
F1[4]=verkauf1->betrag0
F1[5]=verkauf1->artikelnr
F1[6]=verkauf1->vprodukt
F1[7]=rechnung->rnr2
versuche mal statt " = " eine Zuweisung " := "
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

wenn ich nach:

Code: Alles auswählen

set relation to terminnr into rechnung
ein: go top mache kommt folgende Fehlermeldung:

------------------------------------------------------------------------------
ERROR LOG of "C:\w2014\project.EXE" Date: 04.06.2014 13:50:32

Xbase++ version : Xbase++ (R) Version 1.82.306
Operating system : Windows 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: rechnung
-> VALTYPE: B VALUE: {|| terminnr}
-> VALTYPE: C VALUE: terminnr
-> VALTYPE: U VALUE: NIL
-> VALTYPE: U VALUE: NIL
-> VALTYPE: L VALUE: .F.
oError:canDefault : Y
oError:canRetry : N
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Unknown/Invalid symbol for alias
oError:filename :
oError:genCode : 66,00
oError:operation : DbSetRelation
oError:osCode : 0,00
oError:severity : 2,00
oError:subCode : 8021,00
oError:subSystem : BASE
oError:thread : 1,00
oError:tries : 0,00
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from VKUEBS(15)
Called from VKMENU(20)
Called from ZMENU(33)
Called from MAIN(434)
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Jan+Jimmy hat geschrieben:ich nehme mal an das auf "select 5" der Alias "Verkauf1" ist ?
JA
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:Normalerweise sollte er das rechnungsdatum und die zugehörigen artikel anzeigen - keine ahnung wo hier das problem liegt :-(
Cl*pper Code Syntax stimmt nicht immer mit Xbase++ überein
xbaseklaus hat geschrieben:

Code: Alles auswählen

procedure vkuebs
#include "box.ch"
cls
select 8
use rechnung
index on rnr to tnummer
set index to tnummer                    // wozu ein SET INDEX hier ?
index on rdatum to vkdatum
set index to vkdatum                    // wozu ein SET INDEX hier ?
set scoreboard off

select 8
use rechnung index tnummer              // hier Index gesetzt

select 5                                // jetzt auf 5 ... aber WO ist dein INDEX "terminnr" ??? 
set relation to terminnr into rechnung
xbaseklaus hat geschrieben: F1[1]="rechnung->rdatum"
F1[2]="verkauf1->bm1"
F1[3]="verkauf1->vkp1"
F1[4]="verkauf1->betrag0"
F1[5]="verkauf1->artikelnr"
F1[6]="verkauf1->vprodukt"
F1[7]="rechnung->rnr2"
versuche es mal OHNE Alias-> im String

p.s. SET OPTIMIZE OFF
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von AUGE_OHR »

AUGE_OHR hat geschrieben:

Code: Alles auswählen

select 5                                // jetzt auf 5 ... aber WO ist dein INDEX "terminnr" ??? 
set relation to terminnr into rechnung
Korrektur ... es ist wohl das Feld "verkauf1->terminnr" gemeint.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von brandelh »

dass du die Fehler erst beim Skippen erhälst, ist bei Xbase++ immer so (aus Performance Gründen), aber der Fehler liegt meist wo anders ... schau mal hier:

Code: Alles auswählen

do f1 with "1"
F1 muss bei dir eine Prozedur sein und mit declare F1 [7] versuchst du auch eine Variable mit gleichem Namen anzulegen.

Xbase++ erlaubt das nicht :!: FALSCH !

Xbase++ ist strenger ... aber ich kann den Fehler nicht provozieren.

PS: da habe ich mich wohl geirrt, auch wenn ich es nie machen würde aber das gibt keine Fehler ...

Code: Alles auswählen

procedure main
   local x, F1 := {,,,,,,}, F2 := {,,,,,,}
*   DECLARE F1 [7], F2 [7]

   for x := 1 to 7
       F1 [x] := "F1-"+str(x,1)
       F2 [x]  = "F2-"+str(x,1)
       ? x,F1[x],F2[x]
   next

   do F1

return

procedure F1
   ? "Test"
return
sprachlos ... :oops:
Gruß
Hubert
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

Nur mal ganz kurz zur Erklärung - dieser clipper CODE ist nicht von mir ... aber ich bin der Depp der sich bereit erklär hat das ganze auf xbase zu portieren

ich habe jetz mal die

set relation UMGEKEHRT

zumindest bekomme ich jetzt Daten in der Tabelle:

Code: Alles auswählen

procedure vkuebs
#include "box.ch"
cls
select 8
use rechnung
index on rnr to tnummer
*set index to tnummer
index on rdatum to vkdatum
*set index to vkdatum
set scoreboard off

select 8
use rechnung index tnummer
select 5
use verkauf1
index on terminnr to tttnr
use verkauf1 index tttnr

select 8
use rechnung index tnummer

set relation to tnummer into verkauf1
aber auch eine neue Fehlermeldung :-(

------------------------------------------------------------------------------
ERROR LOG of "C:\w2014\project.EXE" Date: 04.06.2014 15:02:37

Xbase++ version : Xbase++ (R) Version 1.82.306
Operating system : Windows 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args :
-> NIL
oError:canDefault : N
oError:canRetry : Y
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Unknown variable
oError:filename :
oError:genCode : 22,00
oError:operation : tnummer
oError:osCode : 0,00
oError:severity : 2,00
oError:subCode : 2000,00
oError:subSystem : BASE
oError:thread : 1,00
oError:tries : 1,00
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from (B)VKUEBS(22)
Called from (B)DBEDIT(0)
Called from DBEDIT(201)
Called from VKUEBS(68)
Called from VKMENU(20)
Called from ZMENU(33)
Called from MAIN(434)
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von Jan »

... ähm - Du machst 3x die rechnung.dbf auf in immer dem gleichen Select-Bereich? Muß ich nicht verstehen, oder?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von brandelh »

zumindest diese Fehlermeldung ist leicht erklärt:
oError:operation : tnummer
laut deinem obigen Code ist tnummer keine Variable sondern der Dateinamen der Indexdatei

Code: Alles auswählen

select 8
use rechnung
index on rnr to tnummer
*set index to tnummer
index on rdatum to vkdatum
*set index to vkdatum
set scoreboard off

select 8
use rechnung index tnummer
es ist auf jeden Fall keine gute Idee zwei Indexdateien zu erstellen, aber nur eine zu öffnen ...

Auch SET EXCLUSIVE könnte ein Problem darstellen, da Clipper standardmäßig ON hat und Xbase++ OFF

auch sollte man mit NETERR() prüfen ob USE erfolgreich war ...
erst USE ... ohne Indexe, NETERR() prüfen und dann SET INDEX TO ist die sichere Methode.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von AUGE_OHR »

xbaseklaus hat geschrieben:

Code: Alles auswählen

procedure vkuebs
select 5
use verkauf1 index tttnr
...
select 8
use rechnung index tnummer
set relation to tnummer into verkauf1
es müsste heissen

Code: Alles auswählen

set relation to rechnung->rnr into verkauf1
Frage : ist verkauf->terminnr = rechnung->rnr ?
gruss by OHR
Jimmy
xbaseklaus
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 246
Registriert: Mi, 04. Jun 2014 12:01
Wohnort: FRANKEN

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von xbaseklaus »

set relation to str(rnr) into verkauf1

OK so funktioniert es jetzt !!!

der knackpunkt der sache war auch , dass RNR in der einen Datenbank eine ZAHL ist und in der anderen ein CHARACTER

warum das so gemacht wurde keine AHNUNG .

Das Umschreiben des CODEs kann ja noch heiter werden .

Werde mir jetzt erstmal die Datenbankstrukturen ausdrucken und hoffen dass sowas nicht noch öfters vorkommt

VIELEN DANK erstmal an alle.



ein was hätte ich da noch:

vielleicht hat das ja schonmal jemand gemacht

wie muss der CODE verändert werden um hier ein DCPROGRESS vernünftig einzubauen:

Code: Alles auswählen

procedure ausreorg
cls
? " Vor dem Beenden werden die Datenbanken aus Sicherheitsgrümden REORGANISIERT ! "
?
? " Die REORGANISATION dauert eine kurze Zeit ! BITTE WARTEN ! "

if !file("kundnr.ntx")
use adresse1
index on field->kundnr to kundnr
endif
if !file("kundname.ntx")
use adresse1
index on field->name to kundname
endif
if !file("ktitel.ntx")
use adresse1
index on field->titel to ktitel
endif
if !file("hkundnr.ntx")
use adresse2
index on field->kundnr to hkundnr
endif
if !file("hname.ntx")
use adresse2
index on field->name to hname
endif
if !file("htitel.ntx")
use adresse2
index on field->titel to htitel
endif
if !file("Lartikel.ntx")
use lager1
index on artikelnr to Lartikel
endif
if !file("Lprodukt")
use lager1
index on produkt to Lprodukt
endif
*--------------neue lagernr------------------------------------
if !file("lnr.ntx")
use lager1
index on lagernr to lnr
endif
*---------------------------------------------------------------
if !file("terminnr.ntx")
use termin1
index on terminnr to terminnr
endif
if !file("tdat1.ntx")
use termin1
index on termin to tdat1
endif
if !file("find1.ntx")
use termin1
index on dkundnr to find1
endif

if !file("verkaufnr.ntx")
use verkauf1
index on verkaufnr to verkaufnr
endif
if !file("verktnr.ntx")
use verkauf1
index on terminnr to verktnr
endif
if !file("vartnr.ntx")
use verkauf1
index on artikelnr to vartnr
endif
*-----------------------------Verkauf1: lagernr---------------------
if !file("verklnr.ntx")
use verkauf1
index on lagernr to verklnr
endif
return
DANKE !
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9343
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 358 Mal
Kontaktdaten:

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von Tom »

wie muss der CODE verändert werden um hier ein DCPROGRESS vernünftig einzubauen:
Dafür gibt es fertige Beispiele in der eXpress++-Installation. Einfach mal nachschauen.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: set relation und fehler beim aufruf von dbedit ???

Beitrag von AUGE_OHR »

hi,

bin kein Express++ User aber mit einem native Progressbar könnte man es so machen

Code: Alles auswählen

LOCAL xMax     := 0
LOCAL nEvery   := 100
LOCAL i        := 0
   ...
   oProgress := DXE_ProgressBar():New(...)
   ...
   oProgress:Create()

   xMax     := Lastrec()
   nEvery   := INT(xMax/100)

   oProgress:Maximum := xMax
   oProgress:SetData( 1 )
   ...
   INDEX ON XXX TO YYY FOR Do_My_Progress(oProgress,nEvery,i++)


FUNCTION Do_My_Progress(oProgress,nEvery,i)
LOCAL nValue := i
   IF ((nValue) % (nEvery)) == 0
      nValue := oProgress:GetData()
      nValue += nEvery
      oProgress:SetData( nValue )
   ENDIF
RETURN .T.
gruss by OHR
Jimmy
Antworten