Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Autodesk Productstream Professional
  Dialog mit Checkboxen VB.Net

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 Autodesk Produkte
  
PNY GeForce RTX® 4090, RTX® 4080 16GB, und RTX® 4080 12GB; PNY stellt die neue Generation der NVIDIA GeForce RTX 40 GPUs vor
Autor Thema:  Dialog mit Checkboxen VB.Net (819 mal gelesen)
freak-tom
Moderator
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

Productstream Professional Pro 2011 / Jobserver / Replikator
Productstream Professional Office 2011
Productstream Professional Pro 2010 / Jobserver / Replikator
Productstream Professional Office 2010
Inventor Suite 2011
Solid Works 2015
ECTR

erstellt am: 04. Apr. 2013 10:52    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

Hallo Forumuser,

ich möchte gerne ein Dialog mit Checkboxen öffnen und wenn man im Dialog auf OK klickt dann werden die Werte aus den selektierten Checkboxen an eine PSP Funktion übergeben.

Bis dahin funktioniert es auch, nur der Aufruf der Funktion gibt dann in der Errlog.err folgende Meldung zurück.

Thu Apr 04 10:48:33 2013  05200)(?, Etype:?)Public not found: "Funktionsname"  , errno=2

Wie kann ich die Funktion auf den aktuell selektierten Datensatz ausführen, bzw. warum macht er das nicht von selbst?

Gruß
Thomas

P.S. Oder kann ich irgendwie anders ein Dialog mit Checkboxen erstellen?

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

freak-tom
Moderator
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

Productstream Professional Pro 2011 / Jobserver / Replikator
Productstream Professional Office 2011
Productstream Professional Pro 2010 / Jobserver / Replikator
Productstream Professional Office 2010
Inventor Suite 2011
Solid Works 2015
ECTR

erstellt am: 04. Apr. 2013 11:01    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

Hier noch der Code aus VB.NET

Code:
Imports CMPNetModule
Imports System.Windows.Forms
Imports System.Drawing


Namespace CustomerFunction
    <PSPClassAttribute("Exposed PSP class")> _
    Public Class PSP_Functions
        Inherits CCustomerNetModuleBase

#Region "Member Variables"

        Private PSPenv_WsPath As String
        Private PSPenv_PrgPath As String
        Private PSPenv_DatPath As String
        Private PSPenv_Question As String
        Private PSPenv_CheckBoxValues As String
        Private PSPenv_FunctionToCall As String
        Private PSPenv_AIMKEY As String
        Private frm As Form
        Private data As String()
        Private Hash As New Hashtable
        Private Checked As String()
        Private ReturnValue As String
        Private RetVal As Integer

#End Region

        Private Sub CreateEnvironment()
            PSPenv_WsPath = Substitute("$(WSPATH:t)")
            PSPenv_PrgPath = Substitute("$(PRGPATH:t)")
            PSPenv_DatPath = Substitute("$(DATPATH:t)")
            PSPenv_Question = Substitute("$(QUESTION)")
            PSPenv_CheckBoxValues = Substitute("$(CHECKBOXVALUES)")
            PSPenv_FunctionToCall = Substitute("$(FUNCTIONTOCALL)")
            PSPenv_AIMKEY = Substitute("#AIMKEY")
        End Sub

        Private Function PSP_Substitute(ByVal Expression As String) As String
            Try
                Return Substitute(Expression)
            Catch ex As Exception
                Throw New Exception("PSP_Functions :: PSP_Substitute: " & ex.Message)
            End Try

        End Function

        <PSPMethodAttribute("PSP Method")> _
        <PSPMethodCondAttribute("TRUE", "TRUE", "", "")> _
        Public Function Checkboxes(ByVal Question As String) As Integer
            RetVal = 1

            Try
                CreateEnvironment()
                If PSPenv_CheckBoxValues = "$(CHECKBOXVALUES)" Then
                    Throw New Exception("Variable $CHECKBOXVALUES ist nicht gefüllt")
                Else
                    Call DrawForm(PSPenv_Question, PSPenv_CheckBoxValues)
                End If
                'CallFunction(PSPenv_FunctionToCall, Nothing)
            Catch ex As Exception
                Throw New Exception("_Checkboxes: " & ex.Message)
            End Try

            Return (RetVal)
        End Function

        Public Function DrawForm(ByVal Question As String, ByVal Values As String) As Integer
            Try
                frm = New Form()

                frm.Text = "PSP"
                frm.ControlBox = False
                frm.Size = New Size(10, 10)
                frm.AutoSize = True

                Dim offset = 10

                If PSPenv_Question Is Nothing Then
                    Dim label As New Label()
                    frm.Controls.Add(label)
                    label.Location = New Point(10, offset)
                    label.Text = PSPenv_Question
                    label.AutoSize = True
                    offset = offset + 30
                End If

                data = Values.Split(New Char() {","c})

                Dim i As Integer = 1
                For Each cur In data
                    If Not cur = "" Then
                        Dim checkBox = New CheckBox()
                        AddHandler checkBox.CheckedChanged, AddressOf checkBoxCheckedChangedFunction
                        frm.Controls.Add(checkBox)
                        checkBox.Location = New Point(10, offset)
                        checkBox.Text = cur
                        checkBox.Name = "checkBox" + i.ToString()
                        checkBox.Checked = False
                        checkBox.AutoSize = True
                        offset = offset + 30
                        If Hash.ContainsKey(checkBox.Text) = False Then
                            Hash.Add(checkBox.Text, checkBox.CheckState)
                        End If

                        i = i + 1
                    End If

                Next
                offset = offset
                'frm.Size = New Size(300, offset + 100)
                Dim OkButton As New Button()
                AddHandler OkButton.Click, AddressOf OkButton_Click
                frm.Controls.Add(OkButton)
                OkButton.Location = New Point(10, offset)
                OkButton.Size = New Size(50, 25)
                OkButton.Name = "btn_OK"
                OkButton.Text = "OK"
                Dim CancelButton As New Button()
                AddHandler CancelButton.Click, AddressOf CancelButton_Click
                frm.Controls.Add(CancelButton)
                CancelButton.Location = New Point(70, offset)
                CancelButton.AutoSize = True
                CancelButton.Name = "btn_Cancel"
                CancelButton.Text = "Cancel"

                frm.Show()
            Catch ex As Exception
                Throw New Exception("DrawForm: " & ex.Message)
            End Try
            Return Nothing

        End Function

        Sub OkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim DicEntry As DictionaryEntry
            ReturnValue = Nothing
            For Each DicEntry In Hash
                If DicEntry.Value = True Then
                    If ReturnValue = Nothing Then
                        ReturnValue = DicEntry.Key
                    Else
                        ReturnValue = ReturnValue + "," + DicEntry.Key
                    End If

                End If
            Next
            ' MsgBox(PSPenv_AIMKEY)
            CallFunction("___Environment", "OUTPUTVAR=" + ReturnValue)
            CallFunction("___Environment", "AIMKEY=" + PSPenv_AIMKEY)

            CallFunction(PSPenv_FunctionToCall, Nothing)
            frm.Close()
            frm.Dispose()
        End Sub
        Sub CancelButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            frm.Close()
            frm.Dispose()
        End Sub

        Sub checkBoxCheckedChangedFunction(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim objCheckbox = DirectCast(sender, CheckBox)
            'MessageBox.Show(sender)
            If objCheckbox.CheckState = False Then
                Hash.Item(objCheckbox.Text) = False
            Else
                Hash.Item(objCheckbox.Text) = True
            End If
            'MsgBox(Hash.Item(objCheckbox.Text))
        End Sub
    End Class
End Namespace


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

freak-tom
Moderator
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

Productstream Professional Pro 2011 / Jobserver / Replikator
Productstream Professional Office 2011
Productstream Professional Pro 2010 / Jobserver / Replikator
Productstream Professional Office 2010
Inventor Suite 2011
Solid Works 2015
ECTR

erstellt am: 04. Apr. 2013 11:51    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

Hallo,

ich habs gefunden :-)

Ich hätte einfach noch 2 Zeilen einfügen müssen!

                frm.DialogResult = DialogResult.OK
                frm.DialogResult = DialogResult.Cancel

Gruß
Thomas

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)2024 CAD.de | Impressum | Datenschutz