Druckposition

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Druckposition

Beitrag von Rolf Ramacher »

Hallo zusammen.

Für unseren Etikettendruck muß ich unseren Usern die Möglichkeit geben,
zu bestimmen, von welcher Position aus die Klebeetiketten gedruckt werden sollen. Das mit Checkboxen zu gestalten scheint mir die sinnsvollste Lösung zu sein.

Da aber nur eine Checkbox ausgewählt werden darf, muß ich nachdem die Box ausgewählt wurde die anderen auf nicht ausgewählt setzen.

Bei 48 Möglichkeiten ist dies eine Menge Programmierung der If-Abfragen.

Hat jemand eine andere Idee vielleicht ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Druckposition

Beitrag von AUGE_OHR »

hi,
Rolf Ramacher hat geschrieben: Für unseren Etikettendruck muß ich unseren Usern die Möglichkeit geben,
zu bestimmen, von welcher Position aus die Klebeetiketten gedruckt werden sollen. Das mit Checkboxen zu gestalten scheint mir die sinnsvollste Lösung zu sein.

Da aber nur eine Checkbox ausgewählt werden darf, muß ich nachdem die Box ausgewählt wurde die anderen auf nicht ausgewählt setzen.

Bei 48 Möglichkeiten ist dies eine Menge Programmierung der If-Abfragen.

Hat jemand eine andere Idee vielleicht ??
ich habe 2 Spinbutton´s wo du VON bzw. BIS einstellst wobei ich davon
ausgehe von links nach rechts und dann die nächste "Zeile". Es wird dabei
nummerisch vorgegangen d.h. man kann nicht ein Etikett überspringen.

Code: Alles auswählen

   bCallback := {|mp1, mp2, oXbp| PB1_PB2( oSpinvon, oSpinbis,1) }

   oSpinvon := XbpSpinButton():new( drawingArea,, {600,452}, {50,24} )
*   oSpinvon:fastSpin := .T.
   oSpinvon:create()
   oSpinvon:setNumLimits( 1, 48 )
   oSpinvon:dataLink := VARBLOCK(@mVON )
   oSpinvon:endSpin  := bCallback
   oSpinvon:keyboard := bCallback

   bCallback := {|mp1, mp2, oXbp| PB1_PB2( oSpinvon, oSpinbis,2) }

   oSpinbis := XbpSpinButton():new( drawingArea,, {600,402}, {50,24} )
*   oSpinbis:fastSpin := .T.
   oSpinbis:create()
   oSpinbis:setNumLimits( 1 , 48 )
   oSpinbis:dataLink := VARBLOCK(@mBIS )
   oSpinbis:endSpin  := bCallback
   oSpinbis:keyboard := bCallback

...

STATIC PROCEDURE PB1_PB2( oSpinvon, oSpinbis ,nNum)
LOCAL nVON,nBIS

   nVON := oSpinvon:getdata()
   nBIS := oSpinbis:getdata()

   IF nNum = 1
      DO CASE
         CASE nVON > nBIS
            nVON := nBIS
            oSpinvon:setdata(nVON)

         CASE nVON = nBIS
            oSpinbis:setNumLimits( nVON, nBIS )
            oSpinbis:setdata(nBIS)

         CASE nVON < nBIS
            oSpinbis:setNumLimits( nVON, nBIS )
            oSpinbis:setdata(nBIS)
      ENDCASE
      SetAppFocus(oSpinvon)
   ELSE
      DO CASE
         CASE nBIS > nVON
            oSpinbis:setNumLimits( nVON, nBIS+1 )
            oSpinbis:setdata(nBIS)

         CASE nBIS = nVON
            oSpinbis:setNumLimits( nVON, nBIS+1 )
            oSpinbis:setdata(nBIS)

         CASE nBIS < nVON
            nBIS := nVON
            oSpinbis:setNumLimits( nVON, nBIS+1 )
            oSpinbis:setdata(nBIS)
      ENDCASE
      SetAppFocus(oSpinbis)
   ENDIF

RETURN
gruss by OHR
Jimmy
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
sorry - aber genau dafür gibt es die RadioButtons! Alles andere ist nicht Windows-konform!!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo,

danke für eure Beiträge, aber ich bin bei meinen Checkbox geblieben, da ich an anderer Stelle ebenfalls checkboxen definiert habe. Um aber die Definition und abfragen der 48 Checkboxen zu umgehen, habe ich die Checkboxen in einer for next-schleife erzeugt. Allerdings mit dem gleichen
objecktnamen oXbp.

Dann habe ich die objekte in ein Array addiert und in die Abfrage-Funktion übergeben. Die Abfragefunktion wird jedesmal gestartet, wenn ein anderes Feld angeklicht oder mit TAB. angesprungen wird.

In der Abfragefunktion wird dann das Objektarray durchlaufen und das einzelne objekt mit getdata abgefragt. Bei treffer werden dann alle anderen objekte auf .f. gesetzt.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
Rolf Ramacher hat geschrieben:Bei treffer werden dann alle anderen objekte auf .f. gesetzt.
und genau darum brauchst Du Dich bei RadioButtons nicht kümmern! Da kann innerhalb einer Gruppe immer nur einer aktiviert werden.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hallo zusammen,

hierzu habe ich nochmal eine kleine Rückfrage. Ich habe das jetzt mit den Radiobutton gelöst. Klappt wunderbar. Aber in meinem Dialog gibt es
einen Button "weiter", der dann die Druckroutine auslöst.

Kann ich hierbei mit übergeben, welcher Button angeklickt wurde. Oder geht das direkt nur mit Selected als Codeblock ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Rolf,

laut Doku bekommst das Objekt mit:

Code: Alles auswählen

oButton:activate := {| uNIL1, uNIL2, self | ... }
Gruß,

Andreas
VIP der XUG Osnabrück
Antworten