Forum Replies Created
-
AuthorReplies
-
We have received your email, thank you. Information about obtaining the latest Archive To Go 1.2 Beta has been mailed to you.
Regarding the “greyed out” option to include message properties, yes this option is only available when using local access mode. This (and your GroupWise version) eliminates GroupWise errors as the cause of the hang.
Regards,
Advansys SupportWe have replied by direct email with the Registry setting.
Regards,
Advansys SupportHave you obtained the Documentation for Forms Designer and Components?
The ItemIndex property of the ListBox is a convenient way of getting the selected index:
MsgBox IntToStr(FormName.ListBoxName.ItemIndex)
Here is a sample for getting the string data from the selected listbox item:
dim I dim iValue I = FormName.ListBoxName.ItemIndex iValue = FormName.ListBoxName.Item.Strings(I) MsgBox iValue
I hope this helps.
Regards,
Advansys SupportUnfortunately we cannot give you better news at this time. Thanks again for your feedback.
Regards,
Advansys SupportThank you for your enquiry.
In stationery or signatures that include eDir variables, the variables are known as SmartFields.
To answer your specific question: any user who requires “forms that may call an eDirectory variable” will need to install the Core and NDAP ActiveX controls.
The ActiveX controls are required for eDirectory SmartFields; these controls are not required for Account or AddressBook SmartFields.
I hope this helps.
Regards,
Advansys SupportThank you for letting us know.
Regards,
Advansys Supportquote:
I would like to set my TRZDateTimeEdit to this date but I keep getting this error:
Could not convert variant of type (OleStr) into type (Double) at line 312, column 7
The above error message indicates that the RzDateTimeEdit property Date requires the type Double, where you are trying to assign a String. You could fix this by assigning date_in instead of t_date_sel. However, the formatted date string t_date (MM/DD/YYYY) could be problematic if your applet runs in a locale other than English-US. Here is an alternative, locale-independent way to retrieve the date:
t_mth = iRST_Edit("month") t_year = IRST_Edit("year") CDIP_FRM.MonthEdit.Date = DateSerial(t_year, t_mth, 1) ' VBScript functionAs for selecting the correct ListView item, the expression
if .Item(I) = t_guideline then
is comparing a object reference (pointer) with a string. I think the complete if statement should be:
if .Item(I).Caption = t_guideline then .Item(I).selected = true exit for end ifI hope this helps.
Regards,
Advansys SupportYou are welcome; we are always happy to help whenever possible with developers’ questions.
I think ADOObj is no longer accessible because the variable used to reference this object goes out of scope. You will notice in the example you mention that Sub Main() declares the local variable:
dim iADOObj
Also in Sub Main(), this variable is passed to other subroutines which work with the database connection, eg.
case Btn5 EditRecord(iADOObj)
By passing the object reference to each subroutine that needs the reference, the solution ensures it is always accessible until the time comes to close the connection.
An alternative method is to declare a global variable (outside all subroutines/classes), usually at the beginning of the source code – before Sub Main(). Then all subroutines and class methods have access to the variable.
On your question about RzRadioGroup, I think it would be easier if the index (not the text) is stored in the database. This would help with supporting different human languages; then the text only appears in the user interface.
However, if your existing database stores the text, you will have to search the radio group for the item text to determine its index. If there are many items and the search is slow, you could add a “lookup table” to your solution. This might be a StringList object initialized from the radio group:
dim I dim iLookup ' Notice how the index (I) of each radio item is stored in the StringList ' as the Object associated with the item text: set iLookup = Utilities.StringList iLookup.Sorted = true for I = 0 to RadioGroup1.Items.Count - 1 call iLookup.AddObject(RadioGroup1.Items(I), I) nextThen, to look up the index for a given item’s text:
dim I if iLookup.Find(iItemText, I) then RadioGroup1.ItemIndex = iLookup.Objects(I) else RadioGroup1.ItemIndex = 0 end ifSee the Formativ Language Guide for details on using StringList.
I hope this helps.
Regards,
Advansys Support[This message was edited by Support 1 on October 23, 2006 at 05:52 PM.]
Thank you for your enquiry.
It sounds like something has gone awry with the Windows Script Host (WSH), perhaps after installing/uninstalling software on your machine. You could try reinstalling WSH (5.5 or above) or simply reinstall Internet Explorer (5.5 or above) which includes WSH.
If the above does not help, please check that all System Requirements listed in the Formativ ReadMe are installed.
If you are unable to resolve the issue, please send your Formativ configuration to support@advansyscorp.com . You can obtain the configuration by selecting Help | About Formativ… from the GroupWise main menu. When the About Formativ dialog appears, go to the Configuration tab and click the button Copy to clipboard. Then paste the text into your email (or save it to a plain-text file and include it as an attachment).
Regards,
Advansys SupportL.P.,
Thank you for passing on Glade’s information.
Regards,
Advansys SupportThis enquiry has been replied to by direct email.
Regards,
Advansys SupportThe online Help file entry on TListView does not indicate that there is a property like SelectedItems. This is true also for TRzListView.
Here is a simple example which tests the ListItem property Selected in order to extract your guideline data from multiple selected items (assume MultiSelect = True) and displays them in a message box:
'------------------------------------------------------------------------------- dim I dim iArea, iGuideline, iNum dim iText with CDIP_FRM.ListView.Items iText = "Selected Items:" & vbNewLine for I = 0 to .Count - 1 if .Item(I).Selected then iArea = .Item(I).Caption iGuideline = .Item(I).SubItems(1) iNum = .Item(I).SubItems(0) iText = iText & vbNewLine & iNum & vbTab & iArea & vbTab & iGuideline end if next end with msgbox iText '-------------------------------------------------------------------------------I hope this helps.
Regards,
Advansys SupportTim,
You can set the default save location (directory) through the Message Saver configuration. It is not possible to do this at install time.
There are two ways to do this. You can distribute the configuration to every user, or you can make the configuration accessible from a network share.
The Message Saver configuration is stored in two files:
- Message Saver_Flexalock.INI
- Message Saver_Flexalock Locations.INI
You will find these files in the following directory:
C:Documents and Settings[Windows user name]Local SettingsApplication DataAdvansysFormativ1.0Config
To set up the required configuration, follow the steps below.
- Use a test (or your own) machine to install Formativ and Message Saver Pack.
- After restarting GroupWise, hold CTRL down as you start Message Saver to enter configure mode. The Configuration Settings dialog will appear.
- If necessary, change the default settings on the Options and Attachments tabs.
- On the Save Locations tab, create at least one location that will be available to all users. Ensure this location is selected, and click Default; a small arrowhead will appear, indicating that the selected item is the default location.
- Click OK to save your changes.
- If you wish to distribute the Message Saver configuration files (see above) to all users, do so by manual file copy, or using Novell ZENworks.
- If you wish to use shared locations in your organisation, distribute only Message Saver_Flexalock.INI to all users. Move the file Message Saver_Flexalock Locations.INI to an appropriate network share, and edit the applet file Message Saver_Flexalock.vbf to use the shared INI file, as described in the Message Saver documentation.
For more information, see the section Shared Locations Option in the Message Saver documentation.
Regards,
Advansys SupportAugust 23, 2006 at 5:24 pm in reply to: Clearing the mouse/keyboard buffer after displaying a form #7713Simon,
Please note the following controls on the Formativ component palette:
- TButton
- TBitBtn
- TRzButton
- TRzBitBtn
All of these controls have the property ModalResult. If you add one of these controls to a form, you can see the list of legal values for ModalResult in the Object Inspector (open the drop-down list).
Forms also have the property ModalResult (not shown in the Object Inspector – it is only meaningful at runtime).
The way to close a modal dialog in code is to set Form.ModalResult to one of the legal values (except mrNone), for example:
frmWait.ModalResult = mrOK
The value that you choose will become the result of the function frmWait.ShowModal.
An applet’s behavior (whether code or forms) is always the same, whether it is an “open source” or Flexalocked applet.
Regards,
Advansys SupportAugust 21, 2006 at 8:24 pm in reply to: Clearing the mouse/keyboard buffer after displaying a form #7714Simon,
Thank you for your enquiry.
The problem you describe is a perennial issue for windowed user interfaces (UIs) which have background processes running half a second or longer. This is a “rule of thumb” time period: the amount of time it will take the average user to notice a pause in the responsiveness of the UI.
We know of two UI design options to address this issue:
- Display a “status” dialog for the duration of the background process. The dialog may, optionally, provide quality of service information (eg. a progress gauge or textual counter) and a way to cancel the process. A dialog like this is typically modeless, ie. other windows in the application are accessible at the same time. This means that the user could click on and make changes in another window, even if those changes are not noticeable until after the process completes.
Your “Please Wait” form is an example of a modeless dialog because it is displayed using the command
frmWait.Show
- Display a modal dialog for the duration of the background process. When a modal dialog is active, an application will not permit mouse or keyboard input to be sent to any other window within the application. With a Formativ Form, this is done using the command
frmWait.ShowModal
The dialog need not be a dedicated status dialog. It could be one used to specify parameters for the process, in which case it may be necessary to disable certain controls for the duration of the process.
For both options, window events must be processed with a frequency and regularity to keep the UI responsive. This is done using the command
Utilities.DoEvents
Obviously each option has advantages and disadvantages. The one to choose will depend on the specific circumstances of the process and/or UI involved. Below is a code sample demonstrating a simple implementation of the modal solution:
'------------------------------------------------------------------------------- ' The code below assumes that a form MainForm is defined. The form has the ' following controls: ' - A listview ListView, to display numbers counted by a background process. ' - A button bnConfig, to configure the solution. This control is disabled when ' processing. ' - A button bnToggle whose caption is initially "Start", but changes to "Stop" ' when processing. When the caption is "Stop", clicking the button cancels ' the process. The subroutine bnToggleClick is the event handler for clicking ' this button. ' ' Note the use of Utilities.DoEvents inside the tight loop of subroutine ' bnToggleClick. Without this command it would not be possible to stop the ' process manually after it has started. dim gCount dim gIndex dim gIsProcessing Sub Main(Client, GWEvent) gIsProcessing = false gCount = 0 MainForm.ShowModal End Sub Sub bnToggleClick(Sender) dim oItem with MainForm if gIsProcessing then gIsProcessing = false .bnConfig.Enabled = true .bnToggle.Caption = "Start" else gIsProcessing = true .bnToggle.Caption = "Stop" .bnConfig.Enabled = false gIndex = gCount + 1 gCount = gCount + 1000 do while (gIndex <= gCount) and gIsProcessing set oItem = .ListView.Items.Add oItem.Caption = "Item " & CStr(gIndex) gIndex = gIndex + 1 Utilities.DoEvents loop ' Restore the UI if the user did not cancel the process. if gIsProcessing then call bnToggleClick(nothing) end if end if end with End Sub '-------------------------------------------------------------------------------I hope this helps.
Regards,
Advansys Support[This message was edited by Support 1 on August 21, 2006 at 08:40 PM.]
-
AuthorReplies