Deutsch
Forum

Datenbank"einsteiger"probleme mit Profan

 

Ulrich
Bednarz
Hallo,
Soory, ich muß mich erst einmal hier zurechtfinden!
In meiner Vorstellung habe ich bereits über einige meine Schwierigkeiten in Sachen DB-Programmierung mit Profan berichtet.
Thomas war so nett und hat bereits auf einen Teil geantwortet (Danke!).
Hier ist der Quellode mit meinen Anmerkungen (die erste Frage - Index mit Pfadangabe - und der Schleifenteil sind bereits erledigt)!
Vielleicht hat der ein oder andere eine Idee was ich besser machen kann!

7 kB
Hochgeladen:18.12.2007
Ladeanzahl172
Herunterladen
 
UlrichB
Windows XP
Profan-Version 8.0
18.12.2007  
 




ByteAttack
Mal so auf die schnelle:
Ich würde an deiner Stelle alle absoluten Pfad generell rausnehmen. g:XProfanUmsatzUmsatz.dbf
und die durch $ProgDir+Umsatz.dbf ersetzen.
 
Website:  [...] 
Facebook:  [...] 
18.12.2007  
 




Thomas
Freier
In dieser Woche ist sicher bei vielen die Zeit knapp.
Das Ziel deiner Anwendung ist schwach zu erkennen. Ich vermute es sollen die verkauften Artikel, Umsatz und Gewinn leicht erkennbar sein.
An dieser Stelle würde ich bei XProfan 8 Franks Listview einsetzen. Zwei Tabs: 1. mit eigenen Daten und 2. mit Lieferanten und Artikeln. Da lassen sich die Daten, ergänzt mit Verkaufsort und Datum, locker von einer Tabelle in die Andere kopieren.
Als Anregung ein Bild beigelegt. Die Lieferanten.dbf würde ich sicher auftrennen in Lieferanten.dbf (L-Nummer, Adresse, (Umsatz?)) und Artikel.dbf (L-Nummer und Artikeldaten).

164 kB
Hochgeladen:18.12.2007
Ladeanzahl191
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
18.12.2007  
 




Thomas
Freier
hier noch etwas zu den anderen Problemen:
Bei dieser Konstruktion:
KompilierenMarkierenSeparieren
zeigst du nach jedem verlassen des WaitInput den alten Datensatz an. Änderungen werden weggebügelt. Also GetUSatz entfernen und erstmals vor WhileNot E% einsetzen.
Neue Satzdaten anzeigen :
KompilierenMarkierenSeparieren
GetUSatz hattest du ja schon drin, macht aber nur Sinn, wenn der Satzzeiger sich verändert hat.
Das das Datumsfeld kein D-Feld in der Datenbank ist hat wohl seine Gründe.
Wohl auch das suchen nach Firma , da hier sonst der Begriff Verkaufsstelle verwendet wird.
Ergebnisfelder ( z.B. : Umsatz, Gewinn) als Edit-Felder ?
Änderungen ohne Button speichern? Und dann mit %Key(13) ???
Schwer nachvollziehbar auch Daten speichern und einlesen. Weniger Felder werden gespeichert als ausgelesen?
Nun gut, erst einmal bis hier.
Unter XProfan 8.0 gibt es sonst auch:
@Create(DateEdit,N,S,X1,Y1,X2,Y2) für Datumseingaben und hier unter Includes Hilfe (z.B.: date.inc) für die Ermittlung der KW zum Datum.
 
Gruß Thomas
Windows XP SP2, XProfan X2
19.12.2007  
 




Thomas
Freier
Setze hier noch einmal den 1. Teil geändert ein, da stümperhaft und mit Fehlern.
KompilierenMarkierenSeparieren
@dbOpen(#2,Lieferanten.dbf)
@dbUse(#2)
String1$= @GetDir$(@) + \Ordner\IX
dbCreateIndex PRODUKT > String1$   warum sind hier keine Pfadangaben möglich?
@dbIndex(String1$)                   sind!
@dbUse(#2)
@dbgo(TOP)
declare x%

If &dbRecCount > 0

    Let string1$ = @trim$(@dbget$(Produkt))
    ADDchoice(produkt%,@dbget$(PRODUKT))
    @dbgo(NEXT)

    While x% <&dbRecCount

        IF string1$ <> @trim$(@dbget$(Produkt))

            Let string1$ = @trim$(@dbget$(Produkt))
            ADDchoice(produkt%,@dbget$(PRODUKT))

        EndIf

        inc x%
        @dbgo(NEXT)

    EndWhile

    @Sendmessage(produkt%,$14E,2,0) hier 3. Zeile  anzeigen (3-1=2)

EndIf

@dbclose(#2)                               bei Aktivieren kann nicht kompiliert werden

Habe ich mit Profan 6.6 getestet und und kein Problem beim Compilieren.
WhileLoop geändert, da noch nicht in Profan 6.6 vorhanden.
 
Gruß Thomas
Windows XP SP2, XProfan X2
19.12.2007  
 




Ulrich
Bednarz
Hallo Thomas,
die Ungereimtheiten, auf die Du gestoßen bist, liegen daran, daß ich an dem Prog noch herumfeile. Da aber einige Basics bei mir nicht funktionierten, habe ich um Hilfe gebeten. Vielen Dank für Deine Mühe! Deine Vorschläge habe ich ausprobiert. Sie funktionieren (was auch zu erwarten war).
Noch Unterstützung benötige ich in dem Fall, wo ich im SubProg ein Fenster mit einem bestimmten Handle öffne, aber beim Schließen das gesamte Prog beendet wird, was eigentlich so nicht gedacht war.
Dennoch recht herzlichen Dank für Deine Hilfe!
Ein besinnliches Weihnachtsfest und ein erfolgreiches Neues Jahr 2008 wünscht Dir
UlrichB
 
UlrichB
Windows XP
Profan-Version 8.0
22.12.2007  
 




Thomas
Freier
Hallo Ulrich,
ohne Code ist da kaum ein Tip zu geben. Hier ein Beispiel und eventuell findest du die Lösung für dein Problem.
KompilierenMarkierenSeparieren
cls
declare a%,b%,d1%,d2%,d3%,dlg%, End1%,End2%
usefont ms sans serif,15,7,0,0,0
setdialogfont 1
print Unterschiedliche Reaktionen beim Klick ins Fenster-Kreuz
print zum Schließen eines Dialog-Fensters.
let a%=createbutton(%hwnd,Ende,50,150,50,20)
let d1%=createbutton(%hwnd,Dialog 1,150,150,50,20)
let d2%=createbutton(%hwnd,Dialog 2,250,150,50,20)
let d3%=createbutton(%hwnd,Dialog 3,350,150,50,20)

whilenot End1%

    WaitInput

    If %key=2

        BREAK

    ElseIf getfocus(a%)

        let End1%=1

    ElseIf getfocus(d1%) Dialog wird durch Klick im Fenster-Kreuz beendet

        let dlg%=Createdialog(%hwnd,Dialog 1,300,250,200,200)
        let b%=createbutton(dlg%,Ende,50,150,50,20)
        let End2%=0
        print
        print Nur das Dialog-Fenster wird durch Klick ins Fenster-Kreuz beendet!

        whilenot End2%

            WaitInput

            If %key=2

                BREAK

            ElseIf getfocus(b%)

                let End2%=1

            EndIf

        EndWhile

        @DestroyWindow(dlg%)

    ElseIf getfocus(d2%) Dialog wird durch Klick im Fenster-Kreuz beendet aber nicht zerstört

        ein zweiter Klick schließt das Hauptfenster
        let dlg%=Createdialog(%hwnd,Dialog 2,300,250,200,200)
        let b%=createbutton(dlg%,Ende,50,150,50,20)
        let End2%=0

        whilenot End2%

            WaitInput

            If %key=2

                print
                print Beim nächsten Klick schließt auch das Hauptfenster!
                BREAK

            ElseIf getfocus(b%)

                @DestroyWindow(dlg%)
                let End2%=1

            EndIf

        EndWhile

    ElseIf getfocus(d3%) Dialog wird durch Klick im Fenster-Kreuz beendet und

        das Hauptfenster wird beendet da auch hier die If %key=2 Abfrage
        eingebaut ist
        print
        print Beim nächsten Klick schließt auch das Hauptfenster!
        let dlg%=Createdialog(%hwnd,Dialog 3,300,250,200,200)

    endif

endwhile

end

Und weiterhin frohes Fest, ein gutes neues Jahr und frohes Arbeiten mit XProfan.
Ein Verwaltungsbeispiel (Profan 6.6) mit Listendarstellung aus meinen Profananfängen findest du unter [web]https:///www.pliete.de/Links/links_02.html[/web]
 
Gruß Thomas
Windows XP SP2, XProfan X2
22.12.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.679 Betrachtungen

Unbenanntvor 0 min.
Walter24.02.2022
Christof Neuß15.07.2021
Uwe Lang07.02.2019
gerd25.08.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie