Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  Werte aus Table auslesen/anzeigen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo
  
Windows Server 2025 - Was ist neu im Microsoft Server-Betriebssystem, eine Pressemitteilung
Autor Thema:  Werte aus Table auslesen/anzeigen (1529 mal gelesen)
am
Mitglied
Ingenieur FH / Manager Development Tools


Sehen Sie sich das Profil von am an!   Senden Sie eine Private Message an am  Schreiben Sie einen Gästebucheintrag für am

Beiträge: 245
Registriert: 01.02.2003

zurzeit: ptc creo elements/direct modeling 20.0
mit ASCAD Schnittstelle ins SAP
vormals: SolidWorks
mit Direktschnittstelle CIDEON in SAP

erstellt am: 24. Jul. 2015 13:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


BAD_PLIST.png

 
Guten Tag Miteinander
das Thema ist schon etwas älter. Brauche dennoch eure Hilfe.

Habe eine Tabelle erstellt. In den Feldern sind Werkstoffbezeichnungen hinterlegt.
Hier das Lisp (Anfänger!): Habe die vermutlichen Fehlerzeilen mit XXXX markiert.
Möchte eigentlich nur den angeklickten Werkstoff in der Zelle anzeigen.
Fehlermeldung: siehe BAD_PLIST.png


; Tabelle einlesen. Tabelle ist im csv Format, getrennt mit ;
; bei Doppelclick auf ein beliebiges Feld, soll der Wert angezeigt werden. (vorerst)
; Erstellt: 22.07.2015 Urs Ammann
; Vorlage aus cad.de / Internet
; Tabelle unter C:\Temp\ws.csv
#|
CH;DE;CN;Bemerkung / remark / ??
DC01;DC01;fff14;Blech 0.5-3mm
DD11;DD11;iDD11-a;Blech 3-12mm
S235JR;S235JR;Q235;Stahl normal
100Cr6;100Cr6;0100;Stahl fff
100MnCrW4;100MnCrW4;100-MnCrW4;fsdfsadfsad nicht verwenden!
|#

(in-package  :custom)
(use-package :OLI)

(sd-defdialog 'pw_table_foo
:dialog-title "Tabelle einlesen c:\\Temp\\ws.csv"
:toolbox-button t 
:variables
'()
  k-action '(pw_create_ltab)
:local-functions
'(
(pw_create_ltab ()
(progn
(pw_read_table_csv_build)
)
)
)
)

(defun zeige_wert_an (table)
  (let* (
         (table-sel (third (sd-get-display-table-selection table :units :external))) ; 3. Wert in Zeile? XXXX
    (Wert nil)   ; Wert auf nichts setzen
         )
; bis hier funktioniert es wohl noch.
  (setf Wert (getf table-sel :external ""))    ;; <---- FEHLER  XXXX  
  (display Wert) 
    ;  (sd-hide-display-table "Werkstoffe")
    ) ;end let
  ) ;end defun


(defun pw_read_table_csv_build ()
(let (A1 A2 A3 A4 ZEILE_STRING_IN ZEILE_STRING_LISTE FI NEW_LIST)
(with-open-file (FI (sd-convert-filename-to-platform "C:/Temp/ws.csv") :direction :input :if-does-not-exist nil)
(sd-create-logical-table "Werkstoffe"
:columns     '(:CH     E   :CN    :Bemerkung)
:columnNames (sd-string-split (read-line FI nil) ";")
; :types       '(:string      :string    :string     :string )
:types       '( nil nil nil nil )
:units       '(   nil       :nil        :nil         :nil   )
:contents  '(
)
)
(setf ZEILE_STRING_IN (read-line FI nil))
(loop while ZEILE_STRING_IN do
;; (display "naechste Zeile")
(setf ZEILE_STRING_LISTE (sd-string-split ZEILE_STRING_IN ";"))
(setf A1 (nth 0 ZEILE_STRING_LISTE))
(setf A2 (read-from-string (nth 1 ZEILE_STRING_LISTE)))
(setf A3 (read-from-string (nth 2 ZEILE_STRING_LISTE)))
(setf A4 (read-from-string (nth 3 ZEILE_STRING_LISTE)))
(setf NEW_LIST (list A1 A2 A3 A4))
(sd-insert-logical-table-row "Werkstoffe"
  osition :bottom
  verwriteIfExists nil
:contents NEW_LIST
)
(setf ZEILE_STRING_IN (read-line FI nil))
)
(sd-create-display-table
"Werkstoffe"
:tableTitle "Werkstoffe Welt"
:logicalTable  "Werkstoffe"
:columns     '(:CH   E  :CN   :Bemerkung)
:applyColumns          '(:CH   E :CN :Bemerkung)
:displayHeight 400
:filterStatusLine       nil
:selectionMode          :single-cell      ;war single-row
:selectionAction      nil
:doubleClickAction   'zeige_wert_an
:applyAction            :default-tokens

)
(sd-show-display-table "Werkstoffe"
                       osition '("TOP-MENU-TOOLBOX-TB"
                                  :bottomleft  330 250)
)
)
)
)
; (trace zeige_wert_an) ; (trace pw_read_table_csv_build)
;; Direkt einlesen: nächste Zeile kann dann auskommentiert werden.
pw_table_foo

------------------
am

[Diese Nachricht wurde von am am 24. Jul. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Patrick Weber
Mitglied
Konstruktionstechniker, Admin


Sehen Sie sich das Profil von Patrick Weber an!   Senden Sie eine Private Message an Patrick Weber  Schreiben Sie einen Gästebucheintrag für Patrick Weber

Beiträge: 659
Registriert: 20.11.2006

erstellt am: 20. Aug. 2015 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für am 10 Unities + Antwort hilfreich

(sd-get-display-table-selection table :units :external) gibt dir eine Liste aus 3 Werten:
first: geklickte Zeilennummer
second: Name der Spalte, in der der selektierte Wert steht
third: Der Wert selbst

(setf Wert (getf table-sel :external "")) ;; <---- FEHLER XXXX
Ja, da ist der Fehler. Ein (setf Wert table-sel) ist vollkommen ausreichend.

Noch was anderes:
:types '(:string :string :string :string )
:units '( nil nil nil nil )

sollten definiert sein.

(setf A2 (nth 1 ZEILE_STRING_LISTE))
(setf A3 (nth 2 ZEILE_STRING_LISTE))
(setf A4 (nth 3 ZEILE_STRING_LISTE))

Ein read-from-string wäre nur erforderlich, wenn Zahlenwerte eingelesen werden sollen.

------------------
Patrick

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz