;********************************************************************************************* ; Dateiname : SD_Externe_Attribute.lsp ; Autor : Stephan Wörz ; Erstellt : 20.04.2005 ; geändert : ;********************************************************************************************* ; Beschreibung: - AttributeTool / Lightversion ; ;********************************************************************************************* ; Änderungen ; ;********************************************************************************************* ;(in-package :teo) (use-package :oli) ;(setq flag "HLZ") (sd-defdialog 'SD_Externe_Attribute :dialog-title "Externe_Attribute" :toolbox-button t :start-variable 'object ;;================================================================================================ ;;=========== VARIABLEN ========================================================================== ;;================================================================================================ :variables'( (OBJECT :value-type :part-assembly :initial-value nil :size :third :modifies nil :title "Teil" :prompt-text "Teil auswählen" :after-input (progn (attriholen) (maske) ); end progn ); end OBJECT (Artikelnummer :initial-optional :true :initial-visible nil :after-input (progn (sd-set-text-control-value "TC_Artikelnummer" :text Artikelnummer) (maske) ); end progn :size :third :value-type :string :title "Artikel" :prompt-text "Artikel eingeben" ); end Lesa_HLZ_Artikel (Benennung :initial-optional :true :initial-visible nil :after-input (progn (sd-set-text-control-value "TC_Benennung" :text Benennung) (maske) );progn :size :third :value-type :string :title "Benennung" :prompt-text "Benennung waehlen" ); end Lesa_HLZ_Benennung ) ;end variables ;;================================================================================================ ;;=========== FUNKTIONEN ========================================================================= ;;================================================================================================ :local-functions '( (attriholen () ;Attribute von OBJECT holen und in Variablen streichen -> Auswerten der Attribute am OBJECT (setq Artikelnummer (bomattr-get-Artikelnummer object)) (setq Benennung (bomattr-get-Benennung object)) ); end attriholen (abgleichen () ; Werte aus TextControls holen und in Variablen schreiben -> Auswerten der Benutzereingabe (setq Artikelnummer (sd-get-text-control-value "TC_Artikelnummer" )) (setq Benennung (sd-get-text-control-value "TC_Benennung" )) ; (display (format nil "Benennung: ~A " Benennung)) );end abgleichen (maskezu () (sd-hide-dialog-shell "UICT-TEST" :ignorePin t ) );end maskezu (attrisetzen () (sd-attach-item-attribute object "WZ_ATTRIBUTE" :attachment :contents :on-copy :maintain :on-merge :maintain :on-split :detach :on-xform :maintain :filing '(:sd-file) :values `( :Artikelnummer , Artikelnummer :Benennung , Benennung ); end values ); end sd-attach-item-attribute );end attrisetzten ;;================================================================================================ ;;=========== Definition der Maske ============================================================== ;;================================================================================================ (maske () (sd-create-dialog-shell "UICT-TEST" :title "Attribute" :areaBackground :command ); end maske (sd-append-area "UICT-TEST-1-AA" "UICT-TEST-AA" :frame t :title "SCHILLER" :margin 5 :titleForeground "#ffff00" :background :option) ;;================================================================================================ ;;========= GridArea 'Stuecklisteneintraege ====================================================== ;;================================================================================================ (sd-append-grid-area "Eingabemaske" "UICT-TEST-1-AA" :frame t :title "Attribute" :spacing 1 :margin 4 :cellSize 10,12 :width 273 :height 80 ) ;;================================================================================================ ;;=========== Textfelder 'TextControls' ========= GridArea 'Stuecklisteneintraege ================ ;;================================================================================================ (sd-create-text-control "TC_Artikelnummer" "Eingabemaske" :x 11 :y 0 :width 15 :height 2 :editable t :showModified nil :showFocus t :killFocusAction '(progn (abgleichen) ) :enterAction '(progn (abgleichen))) (sd-create-text-control "TC_Benennung" "Eingabemaske" :x 11 :y 2 :width 15 :height 2 :editable t :showModified nil :showFocus t :killFocusAction '(progn (abgleichen) ) :enterAction '(progn (abgleichen))) ;;================================================================================================ ;;=========== Textfelder 'TextControls' == aktualisieren ========================================= ;;================================================================================================ (sd-set-text-control-value "TC_Artikelnummer" :text Artikelnummer ) (sd-set-text-control-value "TC_Benennung" :text Benennung ) ;;================================================================================================ ;;=========== Schaltflaechen 'PushButton' ========= GridArea 'Stuecklisteneintraege ============== ;;================================================================================================ (sd-create-pushbutton-control "Artikelnummer" "Eingabemaske" :x 0 :y 0 :width 11 :height 2 :title "Artikel:" :pushAction '(progn (sd-show-display-table "Artikelnummer") )) (sd-create-pushbutton-control "Benennung" "Eingabemaske" :x 0 :y 2 :width 11 :height 2 :title "Benennung:" :pushAction '(progn (sd-show-display-table "Benennung" ) )) ;;================================================================================================ ;;=========== GridArea 'Befehle' ================================================================= ;;================================================================================================ ;nächstes Grid unterhalb! (sd-append-newline "UICT-TEST-1-AA") (sd-append-grid-area "Befehle" "UICT-TEST-1-AA" :frame t :title "Befehle" :spacing 1 :margin 4 :cellSize 10,12 :width 273 :height 80) ;;================================================================================================ ;;=========== Schaltflaechen 'PushButtons ======== GridArea 'Befehle' ============================ ;;================================================================================================ (sd-create-pushbutton-control "Lesa_pb_Schliessen" "Befehle" :x 0 :y 0 :width 26 :height 2 :title "Schliessen" :pushAction '(progn (maskezu) )) (sd-create-pushbutton-control "Lesa_pb_Attriesetzen" "Befehle" :x 0 :y 2 :width 26 :height 2 :title "Attribute setzen / Fenster schliessen" :pushAction '(progn (abgleichen) (attrisetzen) (maskezu) )) ; Zeigt Dialog "UICT-TEST" an (sd-show-dialog-shell "UICT-TEST" :position '("TOP-MENU-TOOLBOX-TB" :bottomleft 160 0)) );endmaske );endlocalfunk :ok-action '(progn (maskezu) );end ok_action :cancel-action '(progn (maskezu) );end cancel-ACTION :help-action '(progn (sd-display-url ( Format NIL "~A/SD_Externe_Attribute.htm" (oli::sd-convert-filename-from-platform (oli::sd-sys-getenv "SCHILLERHELPDIR")))) ); end progn );end defdialog ;;================================================================================================ ;;=========== Attribute auslesen ================================================================= ;;================================================================================================ (defun bomattr-get-Artikelnummer (selitem) (let ((attr (sd-inq-item-attribute selitem "WZ_ATTRIBUTE" :values :attachment :contents))) (if attr (getf attr :Artikelnummer) nil))) (defun bomattr-get-Benennung(selitem) (let ((attr (sd-inq-item-attribute selitem "WZ_ATTRIBUTE" :values :attachment :contents))) (if attr (getf attr :Benennung) nil)))