;;----------------------------------------------------------------------------- ;; Distinta by Willy 26-5-2010 ;;----------------------------------------------------------------------------- (in-package :willy) (use-package '( :oli )) ;;----------------------------------------------------------------------------- ;; Finestra di dialogo BOM ;;----------------------------------------------------------------------------- (sd-defdialog 'my_special_bom_attr :dialog-title "Assegna Propieta" :toolbox-button t :start-variable 'object :variables '( (OBJECT :value-type :part-assembly :modifies :contents :title "Parte" :prompt-text "Scelta Parte" :after-input (progn (setq CODICE (bomattr-get-CODICE object)) (setq DENOMINAZIONE (bomattr-get-DENOMINAZIONE object)) (setq DENOMINAZIONE_AGG (bomattr-get-DENOMINAZIONE_AGG object)) (setq CLASSE (bomattr-get-CLASSE object)) (setq MATERIALE (bomattr-get-MATERIALE object)) (setq TRATTAMENTO (bomattr-get-TRATTAMENTO object)) (setq DISEGNATORE (bomattr-get-DISEGNATORE object)) (setq DATA (bomattr-get-DATA object)) (setq COMMESSA (bomattr-get-COMMESSA object)) (setq N_REV (bomattr-get-N_REV object)) (setq DESCR_REV (bomattr-get-DESCR_REV object)) (setq AUT_REV (bomattr-get-AUT_REV object)) (setq DATA_REV (bomattr-get-DATA_REV object)) );;progn );;OBJECT ;;----------------------------------------------------------------------------- ;; Valori variabili Finestra di dialogo BOM ;;Con :range la scelta e vincolata ai campi ;;Con :value-type :string Immissione libera ;;Con :proposals Suggerimenti e proposte ;;Con :initial-optional t Valore opzionale ;;----------------------------------------------------------------------------- ;; (Materiale ;; :value-type :string ;; :proposals ("S235JR UNI-EN 10025" "S275JR UNI-EN 10025" "S355JR UNI-EN 10025" "C40E UNI-EN 10083" "C45E UNI-EN 10083" "P-ALMg0.5Si0.4Fe - UNI 9006/1" "PCuZn40Pb2 UNI 5706" "GCuSn12 UNI 7013" "16 CR NI4" "39 NI CR MO 3" "39 NI CR MO 3 BONIFICATO" "41 CR AL MO 7" "41 CR AL MO 7 BONIFICATO" "ACCIAIO INOX AISI 304" "ALLUMINIO ALCOA PLUS" "ALLUMINIO ANTICORODAL 100" "ALLUMINIO AVIONAL" "ALUCOBOND" "BACHELITE" "BOHLER M314 EXTRA INOX" "BOHLER M340" "BOHLER N700 (AISI 630)" "BRONZO B14" "C 45 RETTIFICATO" "C 67 TEMPRATO BLEU PER MOLLE" "ERTALON" "ERTALON NERO" "ERTALON VERDE" "ERTALYTE" "ESAGONO FE37 H11" "FE 360 B" "FE 52" "GOMMA 30 SHORE" "GOMMA 60 SHORE" "GOMMA SILICONICA" "LAMIERA FE 00" "LAMINATO C 40" "LAMINATO C 45" "LEGNO" "LEXAN" "NYLON" "NYLON VERDE" "OTTONE" "PLEXIGLAS" "POLICARBONATO" "POLIZENE" "POLYDUR NERO" "POLYDUR VERDE" "PVC" "RAME" "TEFLON" "TONDO FE 37 H11" "TRAFILATO C40 H11" "TRAFILATO FE 37 H11" "TUBO 'SICAM' FE 33" "TUBO GROSSO SPESSORE FE 52" "TUNGSTENO" "U 85 MV 8" "VETRONITE" "VULKOLAN" "X205 CR 12 KU") ;; :title "Materiale" ;; :prompt-text "Materiale" ;; );;Materiale (CODICE :value-type :string :title "CODICE" :initial-optional t );;CODICE (DENOMINAZIONE :value-type :string :proposals ("-" "Albero" "Perno" "Distanziale" "Fusione" "Piatto" "Tondo" "Quello che ti pare" "Aggiungi tutte le voci che vuoi") :title "DENOMINAZIONE" :prompt-text "DENOMINAZIONE massimo 26 caratteri" );;DENOMINAZIONE (DENOMINAZIONE_AGG :value-type :string :proposals ("-" "Albero" "Perno" "Distanziale" "Fusione" "Piatto" "Tondo" "Quello che ti pare" "Aggiungi tutte le voci che vuoi") :title "DENOMINAZIONE_AGG" :prompt-text "DENOMINAZIONE_AGG massimo 26 caratteri" );;DENOMINAZIONE_AGG (CLASSE :range ("P" "G" "C" "CL") :title "CLASSE" :initial-optional t :prompt-text "P" );;CLASSE (MATERIALE :range (" - " "Da Commerciale" "S235JR UNI-EN 10025" "S275JR UNI-EN 10025" "S355JR UNI-EN 10025" "C40E UNI-EN 10083" "C45E UNI-EN 10083" "P-ALMg0.5Si0.4Fe - UNI 9006/1" "PCuZn40Pb2 UNI 5706" "GCuSn12 UNI 7013" "16 CR NI4" "39 NI CR MO 3" "39 NI CR MO 3 BONIFICATO" "41 CR AL MO 7" "41 CR AL MO 7 BONIFICATO" "ACCIAIO INOX AISI 304" "ALLUMINIO ALCOA PLUS" "ALLUMINIO ANTICORODAL 100" "ALLUMINIO AVIONAL" "ALUCOBOND" "BACHELITE" "BOHLER M314 EXTRA INOX" "BOHLER M340" "BOHLER N700 (AISI 630)" "BRONZO B14" "C 45 RETTIFICATO" "C 67 TEMPRATO BLEU PER MOLLE" "ERTALON" "ERTALON NERO" "ERTALON VERDE" "ERTALYTE" "ESAGONO FE37 H11" "FE 360 B" "FE 52" "GOMMA 30 SHORE" "GOMMA 60 SHORE" "GOMMA SILICONICA" "LAMIERA FE 00" "LAMINATO C 40" "LAMINATO C 45" "LEGNO" "LEXAN" "NYLON" "NYLON VERDE" "OTTONE" "PLEXIGLAS" "POLICARBONATO" "POLIZENE" "POLYDUR NERO" "POLYDUR VERDE" "PVC" "RAME" "TEFLON" "TONDO FE 37 H11" "TRAFILATO C40 H11" "TRAFILATO FE 37 H11" "TUBO 'SICAM' FE 33" "TUBO GROSSO SPESSORE FE 52" "TUNGSTENO" "U 85 MV 8" "VETRONITE" "VULKOLAN" "X205 CR 12 KU") :title "MATERIALE" :initial-optional t :prompt-text "-" );;MATERIALE (TRATTAMENTO :value-type :string :proposals ("-" "BRUNITURA" "CROMO DURO A BAGNO" "CROMO DURO LUCIDO" "FOSFATAZIONE" "LUCIDATURA" "NICH. CHIMICA 5micron" "ANODIZZAZIONE" "SABBIATURA" "TEFLONATURA" "RIPORTO DI TIN" "VERNICIATURA RAL ..." "Zinc. bianca" "Oliare / Protect with oil") :title "TRATTAMENTO" :initial-optional t :prompt-text "-" );;Trat_superf (DISEGNATORE :value-type :string :proposals ("STI-AM" "STI-RG" "STI-FF" "STI-SC" "STI-MG") :title "DISEGNATORE" :initial-optional t :prompt-text "STI-AM" );;Disegnatore (DATA :value-type :string :title "DATA" :initial-optional t );;DATA ; (COMMESSA ; :value-type :string ; :title "COMMESSA" ; :prompt-text "DENOMINAZIONE massimo 26 caratteri" ; );;COMMESSA (COMMESSA :range (" - " "132-1310") :title "COMMESSA" :initial-optional t :prompt-text "132-1310" );;COMMESSA (N_REV :range ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9") :title "Revisione" :initial-optional t :prompt-text "0" );;N_REV (DESCR_REV :value-type :string :title "DESCRIZ. REV." :prompt-text "DENOMINAZIONE massimo 26 caratteri" );;DESCR_REV (AUT_REV :value-type :string :proposals ("STI-AM" "STI-RG" "STI-FF" "STI-SC" "STI-MG") :title "AUT. REV." :initial-optional t :prompt-text "STI-AM" );;AUT_REV (DATA_REV :value-type :string :title "DATA REV." :initial-optional t );;DATA REV );;Variables :ok-action '(progn (sd-attach-item-attribute object "MY_SPECIAL_BOM_ATTR" :attachment :contents :on-copy :copy :on-merge :maintain :on-split :copy :on-xform :maintain :filing '(:sd-file) :values `( :CODICE ,CODICE :DENOMINAZIONE ,DENOMINAZIONE :DENOMINAZIONE_AGG ,DENOMINAZIONE_AGG :CLASSE ,CLASSE :MATERIALE ,MATERIALE :TRATTAMENTO ,TRATTAMENTO :DISEGNATORE ,DISEGNATORE :DATA ,DATA :COMMESSA ,COMMESSA :N_REV ,N_REV :DESCR_REV ,DESCR_REV :AUT_REV ,AUT_REV :DATA_REV ,DATA_REV ) ) ) ) ;;----------------------------------------------------------------------------- ;; Interroga BOM ;;----------------------------------------------------------------------------- (defun bomattr-get-CODICE (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :CODICE) nil) ) ) (defun bomattr-get-DENOMINAZIONE (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DENOMINAZIONE) nil) ) ) (defun bomattr-get-DENOMINAZIONE_AGG (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DENOMINAZIONE_AGG) nil) ) ) (defun bomattr-get-CLASSE (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :CLASSE) nil) ) ) (defun bomattr-get-MATERIALE (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :MATERIALE) nil) ) ) (defun bomattr-get-TRATTAMENTO (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :TRATTAMENTO) nil) ) ) (defun bomattr-get-DISEGNATORE (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DISEGNATORE) nil) ) ) (defun bomattr-get-DATA (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DATA) nil) ) ) (defun bomattr-get-COMMESSA (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :COMMESSA) nil) ) ) (defun bomattr-get-N_REV(selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :N_REV) nil) ) ) (defun bomattr-get-DESCR_REV (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DESCR_REV) nil) ) ) (defun bomattr-get-AUT_REV (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :AUT_REV) nil) ) ) (defun bomattr-get-DATA_REV (selitem) (let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR" :values :attachment :contents))) (if attr (getf attr :DATA_REV) nil) ) ) ;;----------------------------------------------------------------------------- ;; Definisci BOM ;;----------------------------------------------------------------------------- ; (defun my-bom-attr-part-name (selitem) ; (let ((contents-name (oli::sd-inq-obj-contents-name selitem))) ; (if contents-name contents-name (oli::sd-inq-obj-basename selitem)) ; ) ; ) (defun my-bom-attr-CODICE (selitem) (let ((CODICE (bomattr-get-CODICE selitem))) (if CODICE CODICE "") ) ) (defun my-bom-attr-DENOMINAZIONE (selitem) (let ((DENOMINAZIONE (bomattr-get-DENOMINAZIONE selitem))) (if DENOMINAZIONE DENOMINAZIONE "") ) ) (defun my-bom-attr-DENOMINAZIONE_AGG (selitem) (let ((DENOMINAZIONE_AGG (bomattr-get-DENOMINAZIONE_AGG selitem))) (if DENOMINAZIONE_AGG DENOMINAZIONE_AGG "") ) ) (defun my-bom-attr-CLASSE (selitem) (let ((CLASSE (bomattr-get-CLASSE selitem))) (if CLASSE CLASSE "") ) ) (defun my-bom-attr-MATERIALE (selitem) (let ((MATERIALE (bomattr-get-MATERIALE selitem))) (if MATERIALE MATERIALE "") ) ) (defun my-bom-attr-TRATTAMENTO (selitem) (let ((TRATTAMENTO (bomattr-get-TRATTAMENTO selitem))) (if TRATTAMENTO TRATTAMENTO "") ) ) (defun my-bom-attr-DISEGNATORE (selitem) (let ((DISEGNATORE (bomattr-get-DISEGNATORE selitem))) (if DISEGNATORE DISEGNATORE "") ) ) (defun my-bom-attr-DATA (selitem) (let ((DATA (bomattr-get-DATA selitem))) (if DATA DATA "") ) ) (defun my-bom-attr-COMMESSA (selitem) (let ((COMMESSA (bomattr-get-COMMESSA selitem))) (if COMMESSA COMMESSA "") ) ) (defun my-bom-attr-N_REV (selitem) (let ((N_REV (bomattr-get-N_REV selitem))) (if N_REV N_REV "") ) ) (defun my-bom-attr-DESCR_REV (selitem) (let ((DESCR_REV (bomattr-get-DESCR_REV selitem))) (if DESCR_REV DESCR_REV "") ) ) (defun my-bom-attr-AUT_REV (selitem) (let ((AUT_REV (bomattr-get-AUT_REV selitem))) (if AUT_REV AUT_REV "") ) ) (defun my-bom-attr-DATA_REV (selitem) (let ((DATA_REV (bomattr-get-DATA_REV selitem))) (if DATA_REV DATA_REV "") ) ) ;;----------------------------------------------------------------------------- ;; Registra campi ;;----------------------------------------------------------------------------- (docu::docu-unregister-bom-attr-all) (docu::docu-register-bom-attr :attr-type "CODICE" :attr-title "CODICE" :attr-display t :attr-value-fnc #'my-bom-attr-CODICE) (docu::docu-register-bom-attr :attr-type "DENOMINAZIONE" :attr-title "DENOMINAZIONE" :attr-display t :attr-value-fnc #'my-bom-attr-DENOMINAZIONE) (docu::docu-register-bom-attr :attr-type "DENOMINAZIONE_AGG" :attr-title "DENOMINAZIONE_AGG" :attr-display t :attr-value-fnc #'my-bom-attr-DENOMINAZIONE_AGG) (docu::docu-register-bom-attr :attr-type "CLASSE" :attr-title "CLASSE" :attr-display t :attr-value-fnc #'my-bom-attr-CLASSE) (docu::docu-register-bom-attr :attr-type "MATERIALE" :attr-title "MATERIALE" :attr-display t :attr-value-fnc #'my-bom-attr-MATERIALE) (docu::docu-register-bom-attr :attr-type "TRATTAMENTO" :attr-title "TRATTAMENTO" :attr-display t :attr-value-fnc #'my-bom-attr-TRATTAMENTO) (docu::docu-register-bom-attr :attr-type "DISEGNATORE" :attr-title "DISEGNATORE" :attr-display t :attr-value-fnc #'my-bom-attr-DISEGNATORE) (docu::docu-register-bom-attr :attr-type "DATA" :attr-title "DATA" :attr-display t :attr-value-fnc #'my-bom-attr-DATA) (docu::docu-register-bom-attr :attr-type "COMMESSA" :attr-title "COMMESSA" :attr-display t :attr-value-fnc #'my-bom-attr-COMMESSA) (docu::docu-register-bom-attr :attr-type "N_REV" :attr-title "N_REV" :attr-display t :attr-value-fnc #'my-bom-attr-N_REV) (docu::docu-register-bom-attr :attr-type "DESCR_REV" :attr-title "DESCR_REV" :attr-display t :attr-value-fnc #'my-bom-attr-DESCR_REV) (docu::docu-register-bom-attr :attr-type "AUT_REV" :attr-title "AUT_REV" :attr-display t :attr-value-fnc #'my-bom-attr-AUT_REV) (docu::docu-register-bom-attr :attr-type "DATA_REV" :attr-title "DATA_REV" :attr-display t :attr-value-fnc #'my-bom-attr-DATA_REV) (docu::docu-register-bom-attr :attr-type "DOCU_BOM_QUANTITY" :attr-title "Quantita" :attr-display t :attr-value-fnc nil) ;; system BOM attribute) ;;----------------------------------------------------------------------------- ;; Definizioni ;;----------------------------------------------------------------------------- (defun my-tr-get-CODICE (setq SHEET_TEXT1 (bomattr-get-CODICE (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DENOMINAZIONE (setq SHEET_TEXT1 (bomattr-get-DENOMINAZIONE (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DENOMINAZIONE_AGG (setq SHEET_TEXT1 (bomattr-get-DENOMINAZIONE_AGG (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-CLASSE (setq SHEET_TEXT1 (bomattr-get-CLASSE (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-MATERIALE (setq SHEET_TEXT1 (bomattr-get-MATERIALE (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-TRATTAMENTO (setq SHEET_TEXT1 (bomattr-get-TRATTAMENTO (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DISEGNATORE (setq SHEET_TEXT1 (bomattr-get-DISEGNATORE (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DATA (setq SHEET_TEXT1 (bomattr-get-DATA (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-COMMESSA (setq SHEET_TEXT1 (bomattr-get-COMMESSA (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-N_REV (setq SHEET_TEXT1 (bomattr-get-N_REV (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DESCR_REV (setq SHEET_TEXT1 (bomattr-get-DESCR_REV (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-AUT_REV (setq SHEET_TEXT1 (bomattr-get-AUT_REV (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG) (defun my-tr-get-DATA_REV (setq SHEET_TEXT1 (bomattr-get-DATA_REV (OLI::SD-INQ-CURR-PART)))) (AM_TEXT_REFERENCE :tr_update :tr_group-BFG)