Italia
Foro

Rechnungswerte aktualisieren

 
Um mein Problem zu erläutern, zuerst ein Bildchen

Wenn nun die im Beispiel betonte Zeile gelöscht oder in die andere Anzeige kopiert wird, stimmt der Rechnungsverlauf nicht mehr. - Wie kann ich es lösen, dass sich die Anzeige verbessert, also aktualisiert ? - Es müsste gehen, aber ich habe absolut keine Vorstellung von einem Anfang - wer hilft ?
Die File (oder andere) wird als CSV-File gespeichert da sie in der Listview.dll von Frank angezeigt wird.
Für Freaks: Man beachte die Datumsanzeige !

54 kB
Kurzbeschreibung: Beispiel aus MoneyGuard-2
Hochgeladen:30.12.2007
Downloadcounter155
Download
 
30.12.2007  
 




Michael
Wodrich
Auslesen der Zeile
Wert ermitteln
Dann
- löschen (Wert abziehen)
- verschieben (hier Wert löschen, dort addieren)

Verständlich?

Wird ein feines Tool.

Schöne Grüße
Michael Wodrich

Ich weiß nicht, ob Du eine Message circa die Lösch- oder Drag&Drop-Tätigkeit erhälst. Wenn das nicht der Fall ist, dann wird unten ein Knöpfchen Löschen bzw Verschieben den Prozess in Gang setzen.
 
Programmieren, das spannendste Detektivspiel der Welt.
30.12.2007  
 



@Michael
Soweit war ich auch schon - Den Wert der gelöschten (kopierten) Zeile vom letzten Gesamtwert abziehen und (wenn kopiert) in der neuen Anzeige zuzählen. Soweit, so gut. Die anderen Einträge sind aber dann nicht aktualisiert worden.
Wenn ich z. B. 5 Einträge hab und jeder ist anders im Wert und ich lösche den zweiten Eintrag, stimmt der Rechnungsverlauf im 3. und 4. Eintrag nicht mehr. Der Endwert im 5. Eintrag wäre dann wieder richtig und da liegt mein Problem
 
30.12.2007  
 




Thomas
Freier
Ich würde die Beträge als +999 oder -999 einfügen und speichern ohne Zwischenstand.
Wenn der Istbetrag, der ja gross angezeigt wird, nicht reicht, die Werte der letzten Spalte beim Mostra ausrechnen lassen. Beim Datum könntest du durch Prüfen ein Vordatieren verhindern. Wird eine Buchung verändert, einfach die letzte Spalte neu berechnen lassen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
31.12.2007  
 




Dieter
Zornow
Hallo Horst,

ich wuerde ueber eine Schleife die kompletten Werte neu berechnen.

Gruss aus Bangkok

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
31.12.2007  
 



@Dieter


ich wuerde ueber eine Schleife die kompletten Werte neu berechnen.


Den Gedanken hatte ich schon, aber wie ??? -

@Thomas
Das mit der Datumsanzeige hast Du falsch verstanden. Auf Wunsch eines einzelnen Herren habe ich das automatische Datum aus der Version 1 (MoneyGuard) so umgestaltet, dass jetzt jede Datumseingabe entweder circa das Kalendertool aus Windows, mit eigenen Eingaben oder automatisch possibile ist. Eine Kontrollfunktion soll dann Termine per Zahlungen oder Eingänge melden. -

Mein Problem ist nach wie vor die Aktualisierung der Rechnungswege.

@Frank
Kann es sein dass Du Listview_Funktionen.inc unter XProfan-11 angleichen musst oder hab ich eine veraltete Version der Include-File ?
 
31.12.2007  
 




Frank
Abbing

Kann es sein dass Du Listview_Funktionen.inc unter XProfan-11 angleichen musst oder hab ich eine veraltete Version der Include-File ?


Inwiefern?
 
31.12.2007  
 




Thomas
Freier
Nur ein schnell gestricktes Muster aus einer anderen Anwendung:
KompilierenMarkierenSeparieren
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Franks ListView
Declare lvdll&,bereich#,bytes&
Declare handle&,indexline&,status&,x&,xn1!,xn2!
vdll&=usedll(bvr/Listview.dll)
 $I Listview_Funktionen.inc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mein Konto ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Proc Rechne_MeinKonto

    DIM bereich#,1024
    Decimals 2
    GetItemText(listview_B&,bereich#,2,0)
    text$=String$(bereich#,0)
    SetItemText(listview_B&,addr(text$),3,0)

    WhileLoop GetLines(listview_B&)

        GetItemText(listview_B&,bereich#,3,(&Loop-1))
        xn1!=val(String$(bereich#,0))
        GetItemText(listview_B&,bereich#,2,&Loop)
        xn2!=val(String$(bereich#,0))
        text$= str$(xn1! + xn2!)
        SetItemText(listview_B&,addr(text$),3,&Loop)

    EndWhile

    AddItemValues(listview_B&,2,bereich#,2)
    SetText num33&,Kontostand:  + String$(bereich#,0)
    Dispose bereich#

EndProc

Proc Konto_Liste

    Def @Waitmessage(0) !USER32,WaitMessage
    Declare num33&,Boot_dlg&,listview_B&,BP_but1&,BP_but2&,BP_but3&,BP_but4&,BP_but5&,BP_but6&
    Boot_dlg& = @Create(Window,%hwnd,   Mein Konto ,50,24,896,680)
    Zeile neu
    BP_but1& = CreateButton(Boot_dlg&,Neu,40,620,80,25)
    Zeile löschen
    BP_but2& =  CreateButton(Boot_dlg&,Löschen,160,620,80,25)
    Liste speichern
    BP_but5& =  CreateButton(Boot_dlg&,Speichern,650,620,80,26)
    Ende Button
    BP_but4& =  CreateButton(Boot_dlg&,Ende,740,620,80,25)
    num33&=@Control(STATIC,,$50000080,350,624,160,13,Boot_dlg&,1,%hinstance,$1000)
    SetFont num33&,lfont&
    listview_B&=CreateListView(Boot_dlg&,%hinstance,Rgb(0,0,0),Rgb(250,250,250),-1,$21)
    InsertColumn listview_B&,Eingabe / Ausgabe,490,0
    InsertColumn listview_B&,Datum,100,1
    InsertColumn listview_B&,Betrag,100,1
    InsertColumn listview_B&,Stand,100,1
    text$=MeinKonto.csv
    bytes&=@FileSize(text$)

    If bytes&>0

        Dim bereich#,bytes&
        ReadFileQuick(addr(text$),bereich#,0,bytes&)
        CsvToListview(listview_B&,bereich#,bytes&,4)
        Dispose bereich#

    EndIf

    SetFont listview_B&,lfont&
    AutoSortListview listview_B&,1,1,1
    ShowListView(listview_B&,32,22,820,560)
    Rechne_MeinKonto
    InitMessages(Boot_dlg&)
    EnableEdits(listview_B&,1)
    @SetFocus(Boot_dlg&)
    Usecursor 0

    While %Menuitem<>-2

        @Waitmessage()
        x&=GetVar(0)

        IfNot x&

            Rechne_MeinKonto

        EndIf

        If GetFocus(BP_but2&)

            x&=GetSelectedLine(listview_B&)        Nummer der markierten Zeile abfragen
            case x& > 0 : Sendmessage(listview_B&,$1008,x&,0)    Zeile löschen

        ElseIf GetFocus(BP_but1&)                 Erzeugt eine neue Zeile, scrollt dort hin

            und selektiert sie (alle anderen werden deselektiert)
            SetItem listview_B&,,,
            x&=GetLines(listview_B&)
            SelectLine(listview_B&,(x&-1),1)

        ElseIf GetFocus(BP_but5&)

            text$=MeinKonto.csv
            x&=GetNeededMemory(listview_B&,1)
            Dim bereich#,x&
            x&=ListviewToCsv(listview_B&,bereich#,0,0)
            x&=WriteFileQuick(addr(text$),bereich#,0,x&)
            Dispose bereich#
            MessageBox  Liste gespeichert...,Information,$40040
            @SetFocus(Boot_dlg&)

        ElseIf GetFocus(BP_but4&)

            BREAK

        EndIf

        Usecursor 0

    Wend

    @DestroyWindow(Boot_dlg&)

Endproc

################################## H A U P T T E I L ####################################
WINDOWSTYLE 512+8+2
WINDOW 1,1-%maxx,710
SETTRUECOLOR 1
Cls RGB(230,230,200)
USEFONT Arial,16,0,0,0,0
SETDIALOGFONT 1
Declare text$
var  lfont& = @Create(Font,Arial,15,0,0,0,0)
Konto_Liste
freedll lvdll&
DeleteObject lfont&
 $I Listview_Dispose.inc
End

CSV-Anhänge mag er nicht. Erzeuge mit dem Inhalt eine : MeinKonto.csv
KompilierenMarkierenSeparieren
Einnahme ,2007-01-01,1000.00,1000.00
 
Gruß Thomas
Windows XP SP2, XProfan X2
31.12.2007  
 



@Frank


Inwiefern?


Mit der Version 11 meckert XProfan circa die Sub... in Deiner listview_funktionen.inc - Roland hat dazu extra eine Inc-File mitgeliefert per alte Programme profalt.inc per alte Profan-Programme, die keine Operatoren benutzen. Daher dachte ich, dass Du das Sub in Deiner INC auch modernisieren müsstest
 
31.12.2007  
 



@Thomas
KompilierenMarkierenSeparieren
GetItemText(etatO&,bereich#,3,2)
teil$=String$(bereich#,0)
print teil$
GetItemText(etatO&,bereich#,4,(anzO%-1))
end$=String$(bereich#,0)
print end$
teil!=VAL(teil$)
end!=VAL(end$)
end!=(end!-teil!)
betragO$=STR$(end!)
print betragO$
Sendmessage(etatO&,$1008,2,0)
OBEN_AKTIV Hier wird die Anzeige in einer eigenen Procedur aktu
rt

So sieht mein Probecode aus und ich denke, dass unterm Strich das herauskommt, was mir vorschwebt.
Printen tut er schon mal das, was ich will. Jetzt nur noch in die Schleife und dann neu abspeichern.
(Wunder Dich nocht circa die grossen O - da ich mit zwei Mostra arbeite, hab ich die Variablen mit Oben und Unten getrennt)
 
31.12.2007  
 




Frank
Abbing

Daher dachte ich, dass Du das Sub in Deiner INC auch modernisieren müsstest


Natürlich, mit der neuen Version gibt es dann eine geänderte Inc. Ist sowieso erheblich schlanker geworden, da ich sechs Procs und Defs jetzt direkt in die Dll integriert habe.
 
31.12.2007  
 



@Frank

[offtopic] Nun verrate uns doch mal, wer die Hübsche auf Deinem Atavar ist ? - Deine Enkelin oder... ? [/offtopic]
 
31.12.2007  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.137 Views

Untitledvor 0 min.
Peter Max Müller13.11.2017

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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