DCGET POPUP die nächste [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCGET POPUP die nächste [ERLEDIGT]

Beitrag von Manfred »

Ich habe ein DCGET mit POPUP für den Kalender.

Es gibt ein Feld für Datum ab und ein Feld für Datum bis. Wenn ich im Kalender für "ab" bin, würde ich ganz gerne das Datum für "bis" direkt daraus errechnen und dann in das "Datum bis" Feld übernehmen. Aber wo baut man sowas ein? Ich habe es versucht direkt in dem Codeblock Popup hinter DC_POPDATE(), aber das klappt nicht. Außerdem scheint zu diesem Zeitpunkt das gewählte Datum noch nicht in den Buffer übertragen worden zu sein.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste

Beitrag von Tom »

Beispielsweise so:

Code: Alles auswählen

... POPUP {|d|d:=DC_PopDate(d),dDate2 := d + 14,DC_GetRefresh(oDate2)}

@ n,n DCGET dDate2 OBJECT oDate2
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

Hi Tom,

Ist das jetzt eine Vermutung, oder hast Du das so ausprobiert?

Ich habe in den Codeblock eine Funktion gebaut, die sofort danach den Buffer prüfbar macht. Der ist aber zu dem Zeitpunkt noch leer. Und nach der Funktion knallt es.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste

Beitrag von Tom »

Das funktioniert so. :wink:
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

Nö,

es klappt nicht bei mir

Code: Alles auswählen

          @ nOben,nLinks DCSAY "gültig ab:";
                        OBJECT oText;
                        PARENT oRahmenRabatt;
                          SIZE nSayBreite,nSayHoehe
          @ DCGUI_ROW,DCGUI_COL DCGET oRabattGenre:gueltigab;
                                 EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl,oRabattGenre:addEditControl(o)};
                               OBJECT oRabattGenre:oGueltigab;
                               PARENT oRahmenRabatt;
                                POPUP {|d| DC_PopDate(d),oRabattGenre:gueltigbis := d,DC_GetRefresh(oRabattGenre:oGueltigbis)};
                           POPCAPTION 7714 POPFONT "10.Arial Bold";
                                 SIZE 100,nSayHoehe;
                              TABSTOP
          nOben += nAbstand
          @ nOben,nLinks DCSAY "gültig bis:";
                        OBJECT oText;
                        PARENT oRahmenRabatt;
                          SIZE nSayBreite,nSayHoehe
          @ DCGUI_ROW,DCGUI_COL DCGET oRabattGenre:gueltigbis;
                                 EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl,oRabattGenre:addEditControl(o)};
                               OBJECT oRabattGenre:oGueltigbis;
                               PARENT oRahmenRabatt;
                                POPUP {|d| DC_PopDate(d,,,,,.F.,2)};
                           POPCAPTION 7714 POPFONT "10.Arial Bold";
                                 SIZE 100,nSayHoehe;
                              TABSTOP
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste

Beitrag von Tom »

POPUP {|d|d:=DC_PopDate(d)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

#-o
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

Ändert aber nichts an der Tatsache, dass jetzt zwar das 2.Datum gesetzt wird, aber Startdatum immer noch leer bleibt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste

Beitrag von Tom »

Sorry, stimmt. Du musst im Popup direkt auf die Variable zugreifen. Das hier funktioniert so, wie Du es erwartest:

Code: Alles auswählen

PROCEDURE MAIN()
LOCAL oDialog, GetList := {}, GetOptions := {}, oDate1, oDate2

dDate1 := CtoD('  .  .    ')
dDate2 := dDate1

@ 1,1 DCSAY 'Datum 1:' GET dDate1 GETOBJECT oDate1 POPUP {||dDate1:=DC_PopDate(dDate1),dDate2:=dDate1+14,DC_GetRefresh(oDate2)}
@ 2,1 DCSAY 'Datum 2:' GET dDate2 GETOBJECT oDate2

DCREAD GUI FIT ADDBUTTONS
RETURN
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

Ich hatte mir sowas schon gedacht, bin aber jetzt etwas abgelenkt worden durch die Tatsache, dass ich gerade erst gemerkt habe, welche Parameter es alles gibt und die teste ich gerade aus. Nicht schlecht, was Roger da gebastelt hat. =D>
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET POPUP die nächste

Beitrag von Manfred »

Danke Tom für den Tipp. So wie es aussieht, was es genau das, was ich brauchte.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 278
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste [ERLEDIGT]

Beitrag von Hans Zethofer »

Hallo Leute!

Ich hätte da ein Problem mit folgendem gewünschten Ablauf

Ich habe bei der Eingabe eines Datenfeldes (EAN-Nummer) eine Validfunction die mir die plausible Prüfung (bei händischer Eingabe) und die Verfügbarkeit der eingegebenen EAN-Nummer abnimmt.
Bei richtiger Eingabe der EAN-Nummer werden ::cKATEGORIE, ::cGRUPPE, ::cTYPE und ::cBEZEICHN automatisch befüllt.
Zur Auswahl der möglichen EAN-Nummer habe ich dem Kunden noch zusätzlich ein POPUP mit allen EAN-Nummern zur Auswahl bereitgestellt.

Soweit so gut - das läuft eigentlich einwandfrei bis auf folgenden Umstand.

Holt sich der User eine bestehende EAN-Nummer mit der POPUP hinterlegten Funktion und wird diese in das Getfeld übertragen so bleibt der Cursor in dem EAN-Feld stehen und springt nicht wie gewünscht ins darauffolgende/nächste GETFELD (::nSTUECK).
was ja eigentlich Sinn macht

Wie könnte ich das so einrichten das nach einer Auswahl aus einem POPUP das nächste GETFELD aktiviert werden kann?

Code: Alles auswählen

.
.
.

   @  6.4,22 DCGET ::cEAN OBJECT ::EcEAN   ;
      GETCOLOR {||if(::lShow,{GRA_CLR_BLUE,GRA_CLR_BACKGROUND},{GRA_CLR_DEFAULT,GRA_CLR_WHITE})};
      VALID {||::Artnummer_Valid(::cEAN)};
      POPUP {|o|::FindEAN(o,::cWAGENNR,::cBUCH_ART,1)};  
       POPCAPTION "v" ;
       POPFONT "10.Marlett" ;
       POPSTYLE DCGUI_POPUPSTYLE_IMBEDDED ;
       POPKEY xbeK_F1 ;
      EDITPROTECT {|| ::lShow}

   @  7.6,22 DCGET ::cKATEGORIE ;
      GETCOLOR {||{GRA_CLR_BLUE,GRA_CLR_BACKGROUND}};
      NOTABSTOP ;
      EDITPROTECT {|| .t.}

   @  8.8,22 DCGET ::cGRUPPE ;
      GETCOLOR {||{GRA_CLR_BLUE,GRA_CLR_BACKGROUND}};
      NOTABSTOP ;
      EDITPROTECT {|| .t.}

   @  10.0,22 DCGET ::cTYPE ;
      GETCOLOR {||{GRA_CLR_BLUE,GRA_CLR_BACKGROUND}};
      NOTABSTOP ;
      EDITPROTECT {|| .t.}

   @  11.2,22 DCGET ::cBEZEICHN ;
      GETCOLOR {||{GRA_CLR_BLUE,GRA_CLR_BACKGROUND}};
      NOTABSTOP ;
      EDITPROTECT {|| .t.}

   @  12.4,22 DCGET ::nSTUECK picture "9999999.99" OBJECT ::EnSTUECK ;
      GETCOLOR {||if(::lShow,{GRA_CLR_BLUE,GRA_CLR_BACKGROUND},{GRA_CLR_DEFAULT,GRA_CLR_WHITE})};
      EDITPROTECT {|| ::lShow}

   DCGETOPTIONS ;
      NOSUPERVISE;
      NOESCAPEKEY;
      EXITQUERY MSG {|| ::WriteCheck(GetList) } ;
      ABORTQUERY MSG {|| ::AbortCheck(GetList) } ;
      CLOSEQUERY MSG {|| ::AbortCheck(GetList) };
      HILITEGETS GRA_CLR_BLUE;
      NOMAXBUTTON;
      NOMINBUTTON;
      TABSTOP;
      GETFONT "10.Courier New";
      SAYFONT "8.Arial"
 
   lImmediate := DC_GetComboImmediate(.t.)
 
   DCREAD GUI;
      MODAL;
      SETAPPWINDOW;
      OPTIONS GetOptions ;
      TITLE "Buchungsdatensatz" ;
      FIT;
      SETFOCUS ::EcBUCH_ART;
      EVAL {|| DC_SetAppFocus(oEnter), if( ::lNew, PostAppEvent(xbeP_Keyboard, xbeK_RETURN),nil) };  // damit in 1.Getfeld springt!
      TO lOk
 
   DC_GetComboImmediate(lImmediate)
_____________
lg
Hans
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste [ERLEDIGT]

Beitrag von Wolfgang Ciriack »

Hallo Hans,
wenn dein POPUP ein Array mit zwei Elementen zurückliefert, dann ist der erste Wert des Arrays dein Wert, der zweite ist das Objekt, dass den Focus erhalten soll.
Gib also deinem Get, dass den Focus erhalten soll, einen Objektnamen (oGETxx) und ändere das Popup

Code: Alles auswählen

...
POPUP {|o| {::FindEAN(o,::cWAGENNR,::cBUCH_ART,1), oGETxx} }
...
Viele Grüße
Wolfgang
Benutzeravatar
Hans Zethofer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 278
Registriert: Fr, 27. Jan 2006 8:29
Wohnort: 2700 Wiener Neustadt
Hat sich bedankt: 1 Mal
Kontaktdaten:

Re: DCGET POPUP die nächste [ERLEDIGT]

Beitrag von Hans Zethofer »

Hallo Wolfgang!

Danke =D> - das wars - so springt nach Auswahl der Cursor automatisch auf mein nächstes Getfeld.

Steht ja auch so in der Hilfe - aber offensichtlich habe ich das nicht genau genug gelesen #-o oder einfach nicht richtig kapiert. :banghead:

Besten Dank nochmals
_____________
lg
Hans
Antworten