FPW 2.6 in VFP 9 kompilieren
-
Dienstag, 13. Oktober 2009 08:02Ich habe ein altes FPW 26 PRG, alles PRG keine Forms, mit VFP 9 kompiliert. Nun gehen ein paar Sachen nicht. Gibt es einen Kompatibilätsschalter, den man einstellen kann?
Kusti
Alle Antworten
-
Dienstag, 13. Oktober 2009 13:46z.B.
SET ENGINEBEHAVIOR 70
SET REPORTBEHAVIOR 80
Wobei ohne GUI nehme ich auch an keine Reports. Welche Fehler kreigst Du denn?
Tschüß, Olaf. -
Dienstag, 13. Oktober 2009 15:02
Danke Olaf
Ich schildere Dir mal ausführlich mein Problem:
Das Problem ist folgendes: Ich habe eine Datenbank Namens Kasse.dbf Ich habe eine Maske umgewandelt in ein PRG. Auf dieser Maske hat es ein Listenfeld. In diesem Listen Feld hat es Elemente aus Feld z.B. Kasse.Betrag + Kasse.Datum + Kasse.Verwendung. Die Variable heisst m.kasse, abgeleitet von der DBF Kasse
Nun fülle ich Daten in die Datenbank Kasse. Nach jedem Abfüllen sollten die Daten im Listenfeld angezeigt werden. Mit Fox 5 und 6 kompiliert ist es kein Problem, doch mit Fox 9 bleibt das Listenfeld leer. Verlasse ich die Maske und starte diese anschliessend wieder, werden die vorher erfassten Daten im Listenfeld angezeigt.
Kusti -
Mittwoch, 14. Oktober 2009 10:54Ah, ich dachte Du hast NULL Benutzeroberfläche.
Was Dir da mit in die Suppe spuckt ist VFP's Theme Unterstützung. Aber die kann auch generell abgeschaltet werden.
Sys(2700,0) beim Start sollte eigentlich schon reichen, READs wieder normal darzustellen.
Tschüß, Olaf. -
Mittwoch, 14. Oktober 2009 17:37Hallo Olaf
Ich habe mit _screen.themes = .F. dieses Themes ausgeschaltet. Es funktioniert alles nur das mit dem Listfeld geht nicht. Listenfelder, die Bereits Daten enthalten und nur noch die Berträge ändern, funktionieren, nur das leere Listenfeld, das mit den Buchungssätzen des Kassenbuches gefüllt wird, bleibt leer.
Kusti -
Donnerstag, 15. Oktober 2009 07:41probiere doch bitte SYS(2700,0) zusätzlich zu _Screen.Themes = .F.
Außerdem wäre Code hilfreich, um Dein Problem nachzuvollziehen. Sowohl der Code, der Kasse.DBF befüllt als auch die Definition des Listenfeldes.
Tschüß, Olaf. -
Donnerstag, 15. Oktober 2009 07:42Hast Du Sys(2700,0) zusätzlich mal probiert? Bezüglich des Listenfeldes wäre Code sehr hilfreich, das Problem nachzuvollziehen. Sowohl Code, der die Kasse.DBF füllt als auch die Definition des Listenfeldes.
Tschüß, Olaf. -
Donnerstag, 15. Oktober 2009 12:51Hallo Olaf
Auch zusätzlich Sys(2700,0) nützt nichts. Die Maskewurde ursprünglich mit FPW 26 erstellt und dann in ein PRG umgewandelt. Das Listenfeld wurde wie oben beschrieben behandelt.
Kusti -
Samstag, 17. Oktober 2009 16:05Wie Du sagst ein PRG, da wird doch irgendwelcher Code drin sein, ein @GET, irgendwas FPW 2.6 mäßiges...
Wie soll man Dir helfen, ohne irgendwelchen Reprocode. Ich habe hier kein FPW26 zur Verfügung, um mir einfach ein Listenfeld irgendwo hin zu setzen.
Ganz allgemein hast Du ein refresh problem, was man typischerweise in VFP mit THISFORM.Refresh() oder dem Requery() der Recordsource einer Listbox/Combobox löst.
Tschüß, Olaf. -
Donnerstag, 29. Oktober 2009 14:33Danke für Deine Hilfe.
Der Code ist eigentlich o.K. denn unter VFP 7 und VFP 5 läuft es problemlos.
Ich werde die Sache anders lösen müssen.
Peter -
Donnerstag, 5. November 2009 09:06Du könntest Dir wie schon zweimal gesagt am besten helfen, indem Du mal ein Beispiel PRG, was aus einem FP2.6 screen entstand hier postest, damit man damit mal in VFP9 probieren kann, was wie wirkt.
Tschüß, Olaf. -
Donnerstag, 5. November 2009 15:56
Hallo Olaf
Also Dein Wunsch ist mir Befehl. Nachfolgend das PRG mit der Maske und danach das Prg, aus dem die Maske aufgerufen wird:
Es handelt sich um das Popup DEFINE POPUP _1cw0z1sq5
Hier das PRG der Maske:
* +---------------------------------------------------------+
* ¦ ¦
* ¦ 18.10.2004 SWBUCHMB.SPR 16:21:10 ¦
* ¦ ¦
* ¦---------------------------------------------------------¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ ¦
* ¦ Beschreibung: ¦
* ¦ Dieses Programm wurde automatisch mit GENSCR generiert. ¦
* ¦ ¦
* +---------------------------------------------------------+
#REGION 0
REGIONAL m.currarea, m.talkstat, m.compstatIF SET("TALK") = "ON"
SET TALK OFF
m.talkstat = "ON"
ELSE
m.talkstat = "OFF"
ENDIF
m.compstat = SET("COMPATIBLE")
SET COMPATIBLE FOXPLUSm.rborder = SET("READBORDER")
SET READBORDER ONm.currarea = SELECT()
* +---------------------------------------------------------+
* ¦ ¦
* ¦ Windows Fensterdefinitionen ¦
* ¦ ¦
* +---------------------------------------------------------+
*IF NOT WEXIST("buchhaupt") ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.PJX" ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.SCX" ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.MNX" ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.PRG" ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.FRX" ;
OR UPPER(WTITLE("BUCHHAUPT")) == "BUCHHAUPT.QPR"
DEFINE WINDOW buchhaupt ;
AT 0.000, 0.000 ;
SIZE 27.615,125.800 ;
TITLE "Buchungssatz erfassen" ;
FONT "MS Sans Serif", 8 ;
FLOAT ;
NOCLOSE ;
MINIMIZE ;
COLOR RGB(,,,192,192,192)
MOVE WINDOW buchhaupt CENTER
ENDIF
#REGION 1
DEFINE POPUP _1cw0z1sq4 ;
PROMPT FIELD swkonto.ktnr + ' ' + str(Swkonto.saldo, 12, 2) + ' ' + alltrim(Swkonto.kname) ;
SCROLL
DEFINE POPUP _1cw0z1sq5 ;
PROMPT FIELD Swbuch.soktnr + ' ' + Swbuch.haktnr + ' ' + DTOC(Swbuch.valuta) + ' ' + Str(Swbuch.betrag, 12, 2) + ' ' + str(Swbuch.beleg, 5, 0) + ' ' + Swbuch.text + ' ' + Swbuch.mwst ;
SCROLL
DEFINE POPUP _1cw0z1sq6 ;
PROMPT FIELD Swtext.btext ;
SCROLL
DEFINE POPUP _1cw0z1sq7 ;
PROMPT FIELD Swmwst.nm + ' ' + str( Swmwst.pm, 5 , 2) + ' % ' + Swmwst.am ;
SCROLL
DEFINE POPUP _1cw0z1sq8 ;
PROMPT FIELD Swmuster.suchb ;
SCROLL* +---------------------------------------------------------+
* ¦ ¦
* ¦ SWBUCHMB/Windows Maskenlayout ¦
* ¦ ¦
* +---------------------------------------------------------+
*#REGION 1
IF WVISIBLE("buchhaupt")
ACTIVATE WINDOW buchhaupt SAME
ELSE
ACTIVATE WINDOW buchhaupt NOSHOW
ENDIF
@ 8.538,0.400 TO 11.846,71.400 ;
PEN 2, 8
@ 11.692,59.400 TO 11.692,71.400 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(255,255,255,255,255,255)
@ 8.923,71.000 TO 11.846,71.000 ;
PEN 2, 8 ;
COLOR RGB(255,255,255,255,255,255)
@ 8.692,71.000 TO 10.692,71.000 ;
PEN 2, 8 ;
COLOR RGB(255,255,255,255,255,255)
@ 13.000,1.200 SAY "Betrag" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 17.077,1.200 SAY "Text" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 14.462,1.200 SAY "Beleg" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 15.769,1.200 SAY "Mwst" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 11.692,0.400 TO 18.538,48.400 ;
PEN 2, 8
@ 18.385,39.400 TO 18.385,48.400 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(255,255,255,255,255,255)
@ 18.385,0.800 TO 18.385,43.600 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(255,255,255,255,255,255)
@ 14.462,48.000 TO 18.385,48.000 ;
PEN 2, 8 ;
COLOR RGB(255,255,255,255,255,255)
@ 11.846,48.000 TO 15.077,48.000 ;
PEN 2, 8 ;
COLOR RGB(255,255,255,255,255,255)
@ 9.077,1.000 SAY "Soll" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 10.385,1.000 SAY "Haben" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 11.692,47.800 TO 11.692,69.600 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(255,255,255,255,255,255)
@ 11.692,0.800 TO 11.692,43.200 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(192,192,192,192,192,192)
@ 11.692,32.400 TO 11.692,48.000 ;
PEN 2, 8 ;
STYLE "1" ;
COLOR RGB(192,192,192,192,192,192)
@ 11.692,1.200 SAY "Valuta" ;
FONT "MS Sans Serif", 8 ;
STYLE "BT"
@ 9.077,10.000 GET sktnr ;
SIZE 1.000,8.000 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
PICTURE "@K XXXXXX" ;
WHEN _1cw0z1sq9() ;
VALID _1cw0z1sqa() ;
COLOR ,RGB(0,0,0,255,255,255)
@ 10.385,10.000 GET hktnr ;
SIZE 1.000,8.000 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
PICTURE "@K XXXXXX" ;
WHEN _1cw0z1sqc() ;
VALID _1cw0z1sqd() ;
COLOR ,RGB(0,0,0,255,255,255)
@ 11.692,10.000 GET zvaluta ;
SIZE 1.000,11.800 ;
DEFAULT { / / } ;
FONT "MS Sans Serif", 8 ;
VALID _1cw0z1sqf() ;
COLOR ,RGB(,,,255,255,255)
@ 13.000,10.000 GET zbetrag ;
SIZE 1.000,14.600 ;
DEFAULT 0 ;
FONT "MS Sans Serif", 8 ;
PICTURE "@K" ;
COLOR ,RGB(,,,255,255,255)
@ 14.462,10.200 GET zbeleg ;
SPINNER 1.000, 0, 99999 ;
PICTURE "@K 99999" ;
SIZE 0.846, 8.000 ;
DEFAULT 0.000 ;
FONT "MS Sans Serif", 8 ;
COLOR ,RGB(,,,255,255,255)
@ 15.769,10.000 GET zmwst ;
SIZE 1.000,1.000 ;
DEFAULT 0 ;
FONT "MS Sans Serif", 8 ;
PICTURE "@KZ 9" ;
COLOR ,RGB(,,,255,255,255)
@ 17.077,10.000 GET ztext ;
SIZE 1.000,37.000 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
PICTURE "@K" ;
COLOR ,RGB(,,,255,255,255)
@ 25.462,0.400 GET busweit ;
PICTURE "@*HN Buchen" ;
SIZE 2.000,8.333,0.667 ;
DEFAULT 1 ;
FONT "MS Sans Serif", 8 ;
STYLE "B" ;
VALID _1cw0z1sqh()
@ 25.462,12.000 GET m.exit_btn ;
PICTURE "@*BHT " + ;
(LOCFILE("wizards\wizbmps\wzexit.bmp","BMP|ICO|PCT|ICN","Wo ist wzexit?")) ;
SIZE 2.000,5.200,0.800 ;
DEFAULT 1 ;
FONT "MS Sans Serif", 8 ;
VALID _1cw0z1sr0() ;
MESSAGE 'Schließt die Maske.'
@ 14.308,49.600 GET m.swkonto ;
PICTURE "@&N" ;
POPUP _1cw0z1sq4 ;
SIZE 11.333,54.286 ;
DEFAULT " " ;
FONT "Courier New", 9 ;
STYLE "" ;
VALID _1cw0z1sr2()
@ 0.308,0.600 GET m.swbuch ;
PICTURE "@&N" ;
POPUP _1cw0z1sq5 ;
SIZE 6.800,66.286 ;
DEFAULT " " ;
FONT "Courier New", 9 ;
STYLE ""
@ 9.077,19.400 GET sname ;
SIZE 1.000,30.400 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXX" ;
WHEN NIMMERLEIN ;
VALID _1cw0z1sr5() ;
COLOR ,RGB(0,0,0,255,255,255)
@ 9.077,51.200 GET ssaldo ;
SIZE 1.000,18.600 ;
DEFAULT 0 ;
FONT "MS Sans Serif", 8 ;
WHEN NIMMERLEIN ;
COLOR ,RGB(,,,255,255,255)
@ 10.385,19.400 GET hname ;
SIZE 1.000,30.400 ;
DEFAULT " " ;
FONT "MS Sans Serif", 8 ;
PICTURE "XXXXXXXXXXXXXXXXXXXXXXXXX" ;
WHEN NIMMERLEIN ;
COLOR ,RGB(0,0,0,255,255,255)
@ 10.385,51.200 GET hsaldo ;
SIZE 1.000,18.600 ;
DEFAULT 0 ;
FONT "MS Sans Serif", 8 ;
WHEN NIMMERLEIN ;
COLOR ,RGB(,,,255,255,255)
@ 8.615,72.600 GET m.swtext ;
PICTURE "@&N" ;
POPUP _1cw0z1sq6 ;
SIZE 4.533,37.857 ;
DEFAULT " " ;
FONT "Courier New", 9 ;
STYLE "" ;
VALID _1cw0z1sr6()
@ 19.538,26.000 GET m.swmwst ;
PICTURE "@&N" ;
POPUP _1cw0z1sq7 ;
SIZE 6.800,15.857 ;
DEFAULT " " ;
FONT "Courier New", 9 ;
STYLE "" ;
VALID _1cw0z1sr7()
@ 0.308,94.600 GET m.swMUSTER ;
PICTURE "@&N" ;
POPUP _1cw0z1sq8 ;
SIZE 6.800,22.143 ;
DEFAULT " " ;
FONT "Courier New", 9 ;
STYLE "" ;
VALID _1cw0z1sr9()IF NOT WVISIBLE("buchhaupt")
ACTIVATE WINDOW buchhaupt
ENDIFREAD CYCLE MODAL
RELEASE WINDOW buchhaupt
SELECT (m.currarea)RELEASE POPUPS _1cw0z1sq4, _1cw0z1sq5, _1cw0z1sq6, _1cw0z1sq7, _1cw0z1sq8
#REGION 0
SET READBORDER &rborder
IF m.talkstat = "ON"
SET TALK ON
ENDIF
IF m.compstat = "ON"
SET COMPATIBLE ON
ENDIF
* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQ9 sktnr WHEN ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 21 ¦
* ¦ Variable: sktnr ¦
* ¦ Aufruf durch: WHEN-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 1 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sq9 && sktnr WHEN
#REGION 1
LASTOBJ = 1* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQA sktnr VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 21 ¦
* ¦ Variable: sktnr ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 2 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sqa && sktnr VALID
#REGION 1
SELECT 5
STORE SKTNR TO ABSKTNR
IF SKTNR <> SPACE(6)
SELECT 4
SET ORDER TO 1
SEEK ABSKTNR
IF SWKONTO.KTNR = ABSKTNR
REPLACE SWKONF.SSALDO WITH SWKONTO.SALDO
REPLACE SWKONF.SART WITH SWKONTO.ARTK
REPLACE SWKONF.SNAME WITH SWKONTO.KNAME
REPLACE SWKONF.ZMWST WITH SWKONTO.MWST
ELSE
REPLACE SWKONF.SSALDO WITH 0
REPLACE SWKONF.SART WITH SPACE(7)
REPLACE SWKONF.SNAME WITH SPACE(25)
REPLACE SWKONF.SKTNR WITH SPACE(6)
REPLACE SWKONF.ZMWST WITH SPACE(1)
_CUROBJ = 1
ENDIF
ENDIF
SELECT 5
SHOW GET SWKONF.SNAME
SHOW GET SWKONF.SSALDO
SHOW GET SWKONF.ZMWST
RETURN* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQC hktnr WHEN ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 22 ¦
* ¦ Variable: hktnr ¦
* ¦ Aufruf durch: WHEN-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 3 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sqc && hktnr WHEN
#REGION 1
LASTOBJ = 2* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQD hktnr VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 22 ¦
* ¦ Variable: hktnr ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 4 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sqd && hktnr VALID
#REGION 1
SELECT 5
STORE SWKONF.HKTNR TO ABSKTNR
IF SWKONF.HKTNR <> SPACE(6)
SELECT 4
SET ORDER TO 1
SEEK ABSKTNR
IF SWKONTO.KTNR = ABSKTNR
REPLACE SWKONF.HSALDO WITH SWKONTO.SALDO
REPLACE SWKONF.HART WITH SWKONTO.ARTK
REPLACE SWKONF.HNAME WITH SWKONTO.KNAME
SELECT 5
IF SWKONF.ZMWST = SPACE(1)
REPLACE SWKONF.ZMWST WITH SWKONTO.MWST
SHOW GET SWKONF.ZMWST
ENDIF
ELSE
REPLACE SWKONF.HSALDO WITH 0
REPLACE SWKONF.HART WITH SPACE(7)
REPLACE SWKONF.HNAME WITH SPACE(25)
REPLACE SWKONF.HKTNR WITH SPACE(6)
_CUROBJ = 2
ENDIF
ENDIF
SELECT 5
SHOW GET SWKONF.HNAME
SHOW GET SWKONF.HSALDO
RETURN* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQF zvaluta VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 23 ¦
* ¦ Variable: zvaluta ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 5 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sqf && zvaluta VALID
#REGION 1
IF YEAR(ZVALUTA) > 2090 .OR. YEAR(ZVALUTA) < 1980
_CUROBJ=3
ENDIF* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SQH busweit VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 28 ¦
* ¦ Variable: busweit ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Schaltfläche ¦
* ¦ Codeteilnummer: 6 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sqh && busweit VALID
#REGION 1
DO SWBWEITK.PRG
SELECT 5
IF TABFR = 'E'
IF ZBETRAG <> 0
DO SWBWEITM.PRG
ENDIF
ENDIF
SELECT 5
REPLACE TABFR WITH SPACE(1)
REPLACE TMWST WITH SPACE(1)
REPLACE ZMWST WITH SPACE(1)
DO SWBSALD.PRG
SHOW GETS
_CUROBJ=1
RETURN* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR0 m.exit_btn VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 29 ¦
* ¦ Variable: m.exit_btn ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Schaltfläche ¦
* ¦ Codeteilnummer: 7 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sr0 && m.exit_btn VALID
#REGION 1
DO SWBWEITK.PRG
SELECT 5
IF TABFR = 'E'
IF ZBETRAG <> 0
DO SWBWEITM.PRG
ENDIF
ENDIF
SELECT 5
REPLACE TABFR WITH SPACE(1)
RETURN* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR2 m.swkonto VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 30 ¦
* ¦ Variable: m.swkonto ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Listenfeld ¦
* ¦ Codeteilnummer: 8 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sr2 && m.swkonto VALID
#REGION 1
store space(6) to abfukt
store space(20) to abnfukt
store space(9) to abafukt
store space(1) to abmfukt
select 4
store ktnr to abfukt
store kname to abnfukt
store artk to abafukt
store mwst to abmfukt
STORE SALDO TO ABSFUKT
select 5
IF LASTOBJ = 1
replace Sktnr with abfukt
replace Sname with abnfukt
replace Sart with abafukt
REPLACE SSALDO WITH ABSFUKT
if ZMWST = space(1)
replace zmwst with abmfukt
replace tmwst with 'S'
endif
SHOW GET SKTNR
SHOW GET SNAME
SHOW GET SSALDO
SHOW GET ZMWST
endif
IF LASTOBJ = 2
replace hktnr with abfukt
replace hname with abnfukt
replace hart with abafukt
REPLACE HSALDO WITH ABSFUKT
if ZMWST = space(1)
replace zmwst with abmfukt
replace tmwst with 'H'
endif
SHOW GET HKTNR
SHOW GET HNAME
SHOW GET HSALDO
SHOW GET ZMWST
ENDIF
_CUROBJ=LASTOBJ
RETURN* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR5 sname VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 32 ¦
* ¦ Variable: sname ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Feld ¦
* ¦ Codeteilnummer: 9 ¦
* ¦ ¦
* +---------------------------------------------------------+
*FUNCTION _1cw0z1sr5 && sname VALID
* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR6 m.swtext VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 36 ¦
* ¦ Variable: m.swtext ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Listenfeld ¦
* ¦ Codeteilnummer: 10 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sr6 && m.swtext VALID
#REGION 1
select 8
store btext to abtext
select 5
replace ztext with abtext
show get ZTEXT
_curobj = 7
return* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR7 m.swmwst VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 37 ¦
* ¦ Variable: m.swmwst ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Listenfeld ¦
* ¦ Codeteilnummer: 11 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sr7 && m.swmwst VALID
#REGION 1
select 7
store nm to abnm
select 5
replace zmwst with abnm
show get ZMWST
_curobj = 6
return* +---------------------------------------------------------+
* ¦ ¦
* ¦ _1CW0Z1SR9 m.swMUSTER VALID ¦
* ¦ ¦
* ¦ Funktionsursprung: ¦
* ¦ ¦
* ¦ Von Plattform: Windows ¦
* ¦ In Maske: SWBUCHMB, Satznummer: 38 ¦
* ¦ Variable: m.swMUSTER ¦
* ¦ Aufruf durch: VALID-Klausel ¦
* ¦ Objekttyp: Listenfeld ¦
* ¦ Codeteilnummer: 12 ¦
* ¦ ¦
* +---------------------------------------------------------+
*
FUNCTION _1cw0z1sr9 && m.swMUSTER VALID
#REGION 1
SELECT 5
REPLACE SWKONF.SKTNR WITH SWMUSTER.SOKTNR
REPLACE SWKONF.HKTNR WITH SWMUSTER.HAKTNR
DO SWBSALD
REPLACE SWKONF.ZBETRAG WITH SWMUSTER.BETRAG
REPLACE SWKONF.ZTEXT WITH SWMUSTER.TEXT
REPLACE SWKONF.ZMWST WITH SWMUSTER.MWST
SHOW GET SWKONF.SKTNR
SHOW GET SWKONF.SNAME
SHOW GET SWKONF.SSALDO
SHOW GET SWKONF.HKTNR
SHOW GET SWKONF.HNAME
SHOW GET SWKONF.HSALDO
SHOW GET SWKONF.ZMWST
SHOW GET SWKONF.ZTEXT
SHOW GET SWKONF.ZBETRAG
IF SWKONF.ZBETRAG = 0
_CUROBJ = 3
ELSE
_CUROBJ = 8
ENDIF
RETURN -
Donnerstag, 5. November 2009 15:57
Und hier noch das PRG, aus dem die Maske gestartet wird:
SET TALK OFF
SET CONSOLE OFF
SET DATE TO GERMAN
SET BELL OFF
SET CENTURY ON
SET DELETED ON
SET EXACT OFF
CLOSE DATABASES
PUBLIC NIMMERLEIN
NIMMERLEIN = .F.
SELECT 3
USE SWBUCH INDEX SWBUVA, SWBUBE
SET ORDER TO 2 DESCENDING
SELECT 4
USE SWKONTO INDEX SWKTNR, SWKTNA
SELECT 4
SEEK '999999'
IF KTNR <> '999999'
APPEND BLANK
REPLACE KTNR WITH '999999'
REPLACE ARTK WITH 'Aktiv'
REPLACE KNAME WITH 'Saldoausgleich'
ELSE
REPLACE ARTK WITH 'Aktiv'
REPLACE KNAME WITH 'Saldoausgleich'
ENDIF
GO TOP
SELECT 5
USE SWKONF
SELECT 7
USE SWMWST
SELECT 14
USE SWMUSTER INDEX SWMUSTER
SELECT 8
USE SWTEXT INDEX SWTEXT
SELECT 4
SET FILTER TO TRIM(ARTK) = 'Aufwand' .OR. TRIM(ARTK) = 'Ertrag' .OR. TRIM(ARTK) = 'Aktiv' .OR. TRIM(ARTK) = 'Passiv'
GO TOP
SELECT 5
REPLACE TABFR WITH SPACE(1)SELECT 5
IF BELEGJN <> 0
ABBELEG = 0
STORE BELEGNR TO ABBELEG
ABBELEG = ABBELEG + 1
REPLACE BELEGNR WITH ABBELEG
REPLACE ZBELEG WITH ABBELEG
ELSE
REPLACE ZBELEG WITH 0
ENDIFREPLACE TABFR WITH SPACE(1)
REPLACE TMWST WITH SPACE(1)
REPLACE ZMWST WITH SPACE(1)
LASTOBJ = 0IF KONTOJN = 0
REPLACE SKTNR WITH SPACE(6)
REPLACE SNAME WITH SPACE(25)
REPLACE SART WITH SPACE(9)
REPLACE HKTNR WITH SPACE(6)
REPLACE HNAME WITH SPACE(25)
REPLACE HART WITH SPACE(9)
REPLACE ZMWST WITH SPACE(1)
ENDIFREPLACE SSALDO WITH 0
REPLACE HSALDO WITH 0IF TEXTJN = 0
REPLACE ZTEXT WITH SPACE(30)
REPLACE MTEXT WITH SPACE(30)
ENDIFIF BETRAGJN = 0
REPLACE ZBETRAG WITH 0
ENDIFDO SWBUCHMB.PRG
SELECT 5
IF BELEGJN <> 0
ABBELEG = 0
STORE ZBELEG TO ABBELEG
ABBELEG = ABBELEG - 1
REPLACE BELEGNR WITH ABBELEG
ENDIFSELECT 4
SET FILTER TO
GO TOP
CLEAR READ
RETURN -
Donnerstag, 5. November 2009 17:33Leider habe ich Deine Daten nicht, so daß es bereits beim USE SWBUCH scheitert.
Ich dachte an ein keines Repro-Beispiel, was ein problematisches Control enthält. Abgesehen davon vermisse ich im aufrufenden Programm die empfohlenen Maßnahmen _Screen.Themes = .F. bzw. Sys(2700,0). Vielleicht einfach, weil's ja nichts half. Ich würd's vor das SET TALK OFF ansetzen.
Ansonsten - wenn es nicht zuviel Aufwand ist - probiere mal zu reduzieren und nehme als Datengrundlage z.B. die Tastrade-Datenbank, die bei VFP9 dabei ist oder Northwind: Home(2)+"Northwind". Bzw. als freie Tabelle zur Not die foxcode.dbf.
Tschüß, Olaf. -
Donnerstag, 5. November 2009 21:01Hallo Olaf
Bitte gib mir Deine E-Mail und ich mail Dir die Dateien inkl. Index PRG
Peter -
Freitag, 6. November 2009 09:24Ungern in Klartext, aber prinzipiell gerne für jeden Foxproler:
_cliptext = strconv("b2xhZkBkb3NjaGtlLm5hbWU",14)
Und Du hast Du hast meine Mailadresse in der Zwischenablage.
Ich dachte, daß Du ein generelles Problem mit einem bestimmten Control hast, zu dem Du auch leicht ein ganz kleines Reprobeispiel geben könntest, aber schick mir ruhig alles zusammen. Hauptsache es bleibt unter 10 MB Anhangsgröße.
Das einzige, was ich so im Verdacht habe ist das READ CYCLE MODAL. Wird aber recht schwierig, da dieses und viele andere fox2 Befehle in der Doku nur noch unter "veraltet, nutzen Sie stattdessen..." laufen.
Tschüß, Olaf.- Bearbeitet Robert BreitenhoferMicrosoft Contingent Staff, Moderator Donnerstag, 19. November 2009 09:39 Link entfernt
-
Freitag, 6. November 2009 13:07Geht leider nicht mit diesem Link. Aber Du kannst mir die Adresse auf Kuster.peter by Hotmail.com mailen.
Peter -
Montag, 9. November 2009 23:41Ich weiß nicht, warum das Forum diesen String als Link, offensichtlich sogar als mailto-URL darstellt.
Es ist eine Zeile Foxpro-Code, die Du einfach bitte im Commandfenster ausführst, danach hast Du meine Mailadresse in der Zwischenablage und kannst sie z.B. in Deinem Mailprogramm einfach per STRG+V einfügen.
Tschüß, Olaf. -
Mittwoch, 18. November 2009 13:54Hallo Olaf
Danke für Deine Hilfe. War leider krank. Habe heute alles gemailt.
Bin gespannt auf Deine Antwort.
Peter -
Mittwoch, 18. November 2009 20:05
Hallo Peter, ist soweit angekommen. Ein ZIP wäre angebrachter, dann muß man nicht erst die Sicherheitsoptionen von Outlook ändern, um das prg zu speichern.
Ich frage mich jetzt, wo kasse.bdf ist, oder die Variable m.kasse.
Dein eigentliches Problem kann ich so nur halb nachvollziehen: Oben im Formular sind zwei leere Boxen, rechts oben evtl. die Liste, die Du meinst, aber Buchen verlangt z.B. nach einem SWBWEITK.PRG - ich komme so nicht weiter.
Ich sehe vor allem aber keine visuellen Schwierigkeiten, wenn ich in dem startprogramm die _SCREEN.Themes = .F. und SYS(2700,0) einbaue. Ohne das verschwindet u.U. der ganze Screeninhalt wenn man mit der Maus rüberfährt.
Das Programm, was Du mir noch geschickt hast (swinde.prg) packt nur die Daten und indiziert sie, da ist gar nichts visuelles los, aber das sollte wohl auch nur vorbereitend gestartet werden, richtig?
Tschüß, Olaf.
-
Donnerstag, 19. November 2009 08:52
Hallo Olaf
Sorry wegen dem Zip, bei mir werden nur exe geblockt.
Wegen den PRG:Im Hauptprg kannste alle Programme, die mit do sw..... aufgerufen werden löschen. Diese PRG braucht es für den Test nicht.
Das index Prg erstellt nur die Index.
Danke für Deine Hilfe.
Peter
-
Donnerstag, 19. November 2009 14:03Hallo Peter,
PRG gehört in Outlook und Outlook Express zu den Dateiendungen ausführbarer Dateien und wird damit geblockt. Ich hab's ja rausgekriegt, das ist nicht das Problem, man kann diese Sicherheit ja kurzfristig abschalten, aber angenehmer ist immer ein ZIP, ganz allgemein bei Mails, schon alleine weils dann ein kürzerer Anhang ist...
Wenn ich die Aufrufe auskommentiere, passiert aber bei Buchen nichts. Ich kriege nie rechts oben Datensätze rein.
Ich kann Dir so nicht helfen. Das einzige, was ich sagen kann, ist das SYS(2700,0) und _SCREEN.Themes = .F. sehr wohl hilft das visuelle Verhalten des Screens zu heilen.
Wenn Daten nicht angezeigt werden oder erst beim zweiten Mal, dann ist das wohl ein Programmflussproblem.
Ich weiß immer noch nicht mal, welche Listbox Du nun meinst. Und welchem Codebereich sie entspricht müßte man anhand der Koordinaten ausknobeln.
Tschüß, Olaf.

