Forum Replies Created

Viewing 15 replies - 16 through 30 (of 45 total)
  • Author
    Replies
  • in reply to: DateTimePicker Control #8132
    ctaleck
    Participant

      Yes. Sample code would be nice as I’m not familiar with calling a COM enabled component concept from Formativ.

      I’ve test calling applets from Excel using the Formativ API concept, but have not used it in applet yet.

      in reply to: DateTimePicker Control #8131
      ctaleck
      Participant

        I am using version 2.0. I am familiar with the new forms designer and I’m aware that using the Utilities.NewControlBoxDialog method is “outdated.” However, I would like to be able to create my entire form dynamically and not use the form designer. Is this possible with the new technology?

        in reply to: User Cache Directory #5343
        ctaleck
        Participant

          Got it. A bit of reverse thinking, but I guess it will do the trick. Thank you.

          in reply to: User Cache Directory #5344
          ctaleck
          Participant

            I guess I should clarify the problem.

            I’m asking the question exactly because I do have these options checked and yet, the cache was not cleared on one of my users machines.

            How do I ensure the old ones are gone with out having to go to each machine and delete the cache directory?

            Does the Formativ Control panel settings override the Config object settings in this case? In other words, if a user un-checked the options, would this turn it off for them?

            in reply to: Run menu is not disabed when option is un-checked #5340
            ctaleck
            Participant

              I have confirmed that it does not occur for all users. However, I have not confirmed what Config object is being assigned to those that it does not. I am keeping an eye on it…

              in reply to: Custom Fields #8121
              ctaleck
              Participant

                I created my own class to handle adding custom fields to a draft message using the Novell Object API. I hope the following code is of some assistance to you.

                quote:


                ‘ Custom Fields
                Set myFields = New CCustomFields
                If myFields.AttachToMsg(DraftMsg) Then
                Call myFields.SetFieldValue(FIELD_ACCOUNT, NewMsgDlg.eAccount.Text, fgwString)
                Call myFields.SetFieldValue(FIELD_PROJDESC, NewMsgDlg.eProjectDesc.Text, fgwString)
                End If


                Here is the full code of how I send a message with custom fields:

                '-------------------------------------------------------------------------------
                ' Send the message
                '-------------------------------------------------------------------------------
                Function SendMessage(ByVal RecipientEmail, ByVal CCEmail, ByVal BCEmail, ByVal Subject, ByVal BodyText, ByVal AttachList)
                  Dim i, DraftMsg, SentMsg, myFields
                  SendMessage = ""
                  ' Use the Object API to create a new draft email message
                  Set DraftMsg = GroupWise.Account.Mailbox.Messages.Add("GW.MESSAGE.MAIL", fgwDraft)
                  ' Subject and Body
                  DraftMsg.Subject = Subject
                  DraftMsg.BodyText.PlainText = BodyText
                  ' Recepient Field
                  If RecipientEmail.Count > 0 Then
                    For i = 0 To RecipientEmail.Count - 1
                      Call DraftMsg.Recipients.Add(RecipientEmail.EmailAddress(i), "NGW", fgwTo)
                    Next
                  End If
                  ' CC Field
                  If CCEmail.Count > 0 Then
                    For i = 0 To CCEmail.Count - 1
                      Call DraftMsg.Recipients.Add(CCEmail.EmailAddress(i), "NGW", fgwCC)
                    Next
                  End If
                  ' BC Field
                  If BCEmail.Count > 0 Then
                    For i = 0 To BCEmail.Count - 1
                      Call DraftMsg.Recipients.Add(BCEmail.EmailAddress(i), "NGW", fgwBC)
                    Next
                  End If
                  ' Attachments
                  Dim sFilename
                  For i = 0 to AttachList.Items.Count - 1
                    sFilename = Toolbox.NormalizeFilePathLoc(AttachList.Items(i).SubItems(0))
                    Utilities.Trace "Attach sFilename " & sFilename
                    DraftMsg.Attachments.Add(sFilename)
                  Next
                  ' Custom Fields
                   Set myFields = New CCustomFields
                  If myFields.AttachToMsg(DraftMsg) Then
                    Call myFields.SetFieldValue(FIELD_ACCOUNT, NewMsgDlg.eAccount.Text, fgwString)
                    Call myFields.SetFieldValue(FIELD_PROJDESC, NewMsgDlg.eProjectDesc.Text, fgwString)
                  End If
                  ' Send the message and return the message ID
                  Set SentMsg = DraftMsg.Send
                  If not SentMsg is nothing then
                    Utilities.Trace "SentMsg.MessageID=" & SentMsg.MessageID
                    SendMessage = SentMsg.MessageID
                    Set SentMsg = Nothing
                  End If
                  Set DraftMsg = Nothing
                  Set myFields = Nothing
                End Function

                And here is my class to handle custom fields:

                '-------------------------------------------------------------------------------
                '
                ' CCustomFields Class
                '
                ' Methods:
                '   AttachToMsg(Msg) - Attach to the current message.  Return a boolean indicating success
                '   SetFieldValue(TheName, TheValue, TheType) - Store TheValue in TheName field
                '   GetFieldValue(TheName, TheType) - Return the value currently stored in the custom field of TheName
                '
                ' Use:
                '   Dim iFields
                '   Set iFields = New CCustomFields
                '   iFields.AttachToMsg(Msg)
                '   MsgBox (iFields.GetFieldValue(FIELD_NAME,1)
                '   Call iFields.SetFieldValue(FIELD_NAME,Value,1)
                '
                ' TheType is of eFieldType
                '   fgwString   1   String
                '   fgwNumeric  2   Numeric (32 bits)
                '   fgwDate     3   Date
                '   fgwBinary   4   Binary
                '   fgwReserved 5   Reserved
                '
                '
                ' This class contains methods designed to make access to GroupWise message
                ' custom fields simpler.  Use the AttachToMsg to connect to the message we
                ' want to write to/read from, then use the SetFieldValue()/GetFieldValue()
                ' methods to read/write the data
                '
                '-------------------------------------------------------------------------------
                class CCustomFields
                
                  Private iMsg
                
                  Private Sub class_terminate
                    set iMsg = nothing
                  End sub
                
                  Public Function AttachToMsg(ByRef Msg)
                    If Toolbox.SkipErrors Then On Error Resume Next
                    AttachToMsg = false
                    set iMsg = Msg
                    if iMsg is Nothing then
                      exit function
                    else
                      AttachToMsg = true
                    end if
                    Toolbox.OnErrorCheckUp("AttachToMsg")
                  end function
                
                  Public Sub SetFieldValue(ByVal TheName, ByVal TheValue, ByVal TheType)
                    If Toolbox.SkipErrors Then On Error Resume Next
                    If Len(TheName) = 0 Then Exit Sub
                    If Not FieldExists(TheName, TheType) Then
                      Call GroupWise.Account.FieldDefinitions.Add(TheName, TheType)
                    End If
                    Call iMsg.Fields.Add(TheName, TheType, TheValue)
                    Toolbox.OnErrorCheckUp("SetFieldValue")
                  End Sub
                
                  Public Function GetFieldValue(TheName, TheType)
                    If Toolbox.SkipErrors Then On Error Resume Next
                    Dim iField
                    If iMsg.Fields.Count > 0 Then
                      Set iField = iMsg.Fields.Item(TheName, TheType)
                      GetFieldValue = iField.Value
                    Else
                      GetFieldValue = ""
                    End If
                    Toolbox.OnErrorCheckUp("GetFieldValue")
                  End Function
                
                  Private Function FieldExists(TheName, TheType)
                    If Toolbox.SkipErrors Then On Error Resume Next
                    Dim FieldObj
                    Dim FieldDefs
                    Set FieldDefs = GroupWise.Account.FieldDefinitions
                    Set FieldObj = FieldDefs.Item(TheName,TheType)
                    If IsObject(FieldObj) Then
                      FieldExists = TRUE
                    Else
                      FieldExists = FALSE
                    End If
                    Toolbox.OnErrorCheckUp("FieldExists")
                    Set FieldObj = Nothing
                    Set FieldDefs = Nothing
                 End function
                
                End Class
                '
                ' End CCustomFields Class
                '-------------------------------------------------------------------------------

                Please note: You cannot use this class as is, because there are other classes involved that I have not presented.

                in reply to: Config Object Assigned via Code #5331
                ctaleck
                Participant

                  Sorry by VB, I was referring to the VB Scripting engine of Formativ as opposed to just looking at the About Formativ dialog.

                  It would be helpful to have access to this information like you do for other applet information in the Utilities object:

                   Utilities.UserCacheDirectory 

                  Perhaps something like:

                   Utilities.UserConfig 

                  Thank you.

                  in reply to: Changing Config Assignment #5332
                  ctaleck
                  Participant

                    Yes, every one of the boxes mentioned is checked and always has been (Are these the defaults?) and I still experienced a problem. I will have to investigate further to see if the problem persists.

                    in reply to: Discovery Process for Groups #5325
                    ctaleck
                    Participant

                      Yes, I am aware of the info in the About Formativ dialog.

                      What I would like to know is how does Formativ determine which group to use when a user is in multiple groups that have different Config objects. Using this information, I will then arrange my groups so that I can pre-determine which applets a user will get.

                      For example, would groups higher up in the eDir tree take precedence over groups deeper in the tree? Or would it be the other way?

                      in reply to: Discovery Process for Groups #5327
                      ctaleck
                      Participant

                        I understand the discovery process for objects, however there is no documentation for the Group Object specifically, which is confusing because a user can be a member of multiple groups.

                        In other words, if a certain user is a member of two groups (Group A and Group B) and those groups are associated with two different Config Objects: Config Object 1 -> Group A and Config Object 2 -> Group B, then which Config Object will the user be assigned?

                        in reply to: Interact with Portal with Form Open #8095
                        ctaleck
                        Participant

                          Interesting development: The Portal now allows scrolling while a form is open with no changes except a restart of my machine and GroupWise!

                          I do so much development on my machine (with many crashes of GroupWise from bad code) that I’m thinking I had bad memory which needed to be cleared out.

                          In the meantime, I also explored the “EmbeddedWB” control which also worked for me.

                          I also considered your suggestion but opted not to put a control on the report that would “ruin” it visually.

                          Thanks.

                          in reply to: Interact with Portal with Form Open #8098
                          ctaleck
                          Participant

                            One more thing to clarify…

                            So even though I am using the “frmMain.Show” instead of “frmMain.ShowModal” it still is acts as modal because all of the Formativ application is modal to the GroupWise application (but not other external applications)?

                            in reply to: Interact with Portal with Form Open #8096
                            ctaleck
                            Participant

                              I am not familiar with the FormativAPI yet. Maybe I need to rethink my solution. Basically, I am trying to create a report (in HTML) which can be previewed first (does not have to be a Portal) and then printed while having a form open.

                              Are there any other approaches people have used to do this? I am currently researching these controls: “EmbeddedWB,” “HTMLEditorEx” or “OleContainer” to see if they can help. Any insight would be appreciated.

                              in reply to: Web Services and Formativ #8949
                              ctaleck
                              Participant

                                I am unable to get the “Dilbert” or “Web Service Signature” Web Service examples to work on my machine using SoapClient method.

                                set SoapClient = CreateObject("MSSOAP.SoapClient"). 
                                

                                I receive this error:

                                quote:


                                Client
                                C:Documents and SettingsctaleckMy DocumentsAdvansysFormativAppletsTUT333 – Web Service Signature.vbf
                                WSDLReader:Loading of the WSDL file failed HRESULT=0x80070057 – WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: System error: -2147012867.
                                HRESULT=0x1 at line 31, column 6


                                Can anyone tell me how I would check that I have the appropriate files to support this technique?

                                In the meantime, I have been able to get this Web Service to work using the POST method:

                                    Set httpReq = CreateObject("MSXML2.ServerXMLHTTP")
                                    httpReq.Open "POST", webServiceUrl, False
                                    httpReq.Send
                                    Set myXmlDoc = CreateObject("MSXML.DOMDocument")
                                    myXmlDoc.load(httpReq.responseBody)
                                

                                Thank you.

                                in reply to: How to tell user Configuration Association? #7878
                                ctaleck
                                Participant

                                  Can this be changed to another attribute? We currently use the “See Also” field for what it was intended for and now it is displaying “Development+config” in our see also list. This can be very confusing for our end users!

                                  Please advise.

                                Viewing 15 replies - 16 through 30 (of 45 total)