(in-package :custom) (use-package :OLI) ;;--------------------------------------------------------------------------* (sd-defdialog 'iwg-reservierungsliste-speichern-dialog :dialog-title "Speichere Reservierungsliste" ;;:dialog-control :sequential :toolbox-button t :variables '( (teillist :selection (*sd-object-seltype*) :multiple-items t :show-select-menu t :prompt-text "Teile oder Baugruppen angeben" :title "Teil/Bgr" ) (datei :value-type :filename :direction :output :prompt-text "Dateiname der Reservierungsliste angeben" :title "Datei" :if-exists :confirm-overwrite :size :third ) ) :local-functions '() :ok-action '(sd-call-cmds (iwg-speichere-reservierungsliste (first datei) teillist)) :help-action '() ) ;;--------------------------------------------------------------------------* (sd-defdialog 'iwg-reservierungsliste-laden-dialog :dialog-title "Lade Reservierungsliste" ;;:dialog-control :sequential :toolbox-button t :variables '( (datei :value-type :filename :direction :input :prompt-text "Dateiname der Reservierungsliste angeben" :title "Datei" :size :third ) ) :local-functions '() :ok-action '(sd-call-cmds (iwg-desman-reserviere-teile-nach-liste (first datei))) :help-action '() ) ;;--------------------------------------------------------------------------* (defun iwg-speichere-reservierungsliste (datei teillist) (let (strm teil_bgr) (setf strm (open datei :direction :output)) (dolist (teil_bgr teillist) (when (not (sd-inq-obj-contents-read-only-p teil_bgr)) (format strm "~a~%" (sd-inq-obj-pathname teil_bgr)) );;when );;dolist (close strm) );;let ) ;;--------------------------------------------------------------------------* (defun iwg-desman-reserviere-teile-nach-liste (datei) (let (input line err) (setf input (sd-display-warning (format nil "Teile und Baugruppen werden~%~%entsprechend der eingelesenen Liste reserviert!"))) (when(eql input :yes) (progn (display "Folgende Teile wurden reserviert:") (with-open-file (strm datei :direction :input) (do ((line (read-line strm nil 'eof) (read-line strm nil 'eof) )) ((eql line 'eof)) (when (sd-pathname-to-obj line) (progn (setf teil_bgr (sd-pathname-to-obj line)) (when (or (sd-inq-part-p teil_bgr) (sd-inq-assembly-p teil_bgr) (sd-inq-container-p teil_bgr) );;or (progn (setq err nil) (sd-call-cmds (modelmanager::ndm_reserve :objects (sd-inq-obj-pathname teil_bgr)) :failure (progn (sd-display-error (sd-inq-error-obj :message)) (setq err (sd-inq-error-obj :message)) );;Progn ) (when (not err) (display line)) );;progn );;when );;progn );;when );;do );;with );;progn );;when );; let )