Modal property sheet.

My application has a modal property sheet. Normally if the operator presses 
"Cancel" the logic throws away the data changes and the sheet closes.

Instead this is what I want to happen:
I check if any data changes were made. If changes were made, I pop up an 
OK/Cancel message box asking the question: "Data has been modified. Press OK 
to discard data modifications." So if the operator clicks OK, I throw away 
the data changes and the property sheet closes.

But if the operator clicks Cancel, I want to allow the property sheet to 
continue living. In other words... I want to abort the fact that the 
operator clicked Cancel on the property sheet.

I can't get this to work.

The OnCancel handler in the property pages allows me a way to ask my 
questions, but there is no way to abort closure of the property sheet.

IS THERE SOME WAY I CAN DO THIS? 


0
TonyG2127 (95)
5/31/2007 9:24:58 PM
vc.mfc 33608 articles. 0 followers. Follow

5 Replies
672 Views

Similar Articles

[PageSpeed] 57

Every time something is changed on the Propery page, call that page's

CPropertyPage::SetModified( TRUE ) function. This will enable the "Apply" 
button.

If you don't want the property sheet to close alltogether, override

CPropertyPage::OnQueryCancel()
{
  return FALSE; // This will abort the closure of the unsaved property 
sheet.
}

"TonyG" <TonyG@junk.com> wrote in message 
news:K2H7i.12098$rO7.2013@newssvr25.news.prodigy.net...
> My application has a modal property sheet. Normally if the operator 
> presses "Cancel" the logic throws away the data changes and the sheet 
> closes.
>
> Instead this is what I want to happen:
> I check if any data changes were made. If changes were made, I pop up an 
> OK/Cancel message box asking the question: "Data has been modified. Press 
> OK to discard data modifications." So if the operator clicks OK, I throw 
> away the data changes and the property sheet closes.
>
> But if the operator clicks Cancel, I want to allow the property sheet to 
> continue living. In other words... I want to abort the fact that the 
> operator clicked Cancel on the property sheet.
>
> I can't get this to work.
>
> The OnCancel handler in the property pages allows me a way to ask my 
> questions, but there is no way to abort closure of the property sheet.
>
> IS THERE SOME WAY I CAN DO THIS?
> 


0
5/31/2007 9:54:25 PM
Subclass CPropertySheet and add your handlers.  See the other reply for details.

One think I like to do is compute a checksum based on the values in the controls.  So if
you simply respond to EN_CHANGE or BN_CLICKED notifications to set the "changed" flag, and
someone clicks a button, then unclicks, they have made no change, but the simplistic
solution thinks they have.  Instead, I iterate through the controls.  If it is a check box
or radio button, I add its value into the checksum (you need something like CRC32 or
something else other than a simple add-the-values-and-take-the-result because you don't
want unchecking one button and checking another to produce the same result.  Similarly, I
checksum every character of an edit control.  This means that if the original string was
ABC, you place the cursor at the end and type <backspace>C, the result is no net change.
The BN_CLICKED and EN_CHANGE notifications trigger the checksum.  I usually display a
"changed" flag, so if the user resets the values, the "changed" flag would disappear.  So
if the checksum after a change equals the original checksum, you just call
SetModified(FALSE).
					joe



On Thu, 31 May 2007 21:24:58 GMT, "TonyG" <TonyG@junk.com> wrote:

>My application has a modal property sheet. Normally if the operator presses 
>"Cancel" the logic throws away the data changes and the sheet closes.
>
>Instead this is what I want to happen:
>I check if any data changes were made. If changes were made, I pop up an 
>OK/Cancel message box asking the question: "Data has been modified. Press OK 
>to discard data modifications." So if the operator clicks OK, I throw away 
>the data changes and the property sheet closes.
>
>But if the operator clicks Cancel, I want to allow the property sheet to 
>continue living. In other words... I want to abort the fact that the 
>operator clicked Cancel on the property sheet.
>
>I can't get this to work.
>
>The OnCancel handler in the property pages allows me a way to ask my 
>questions, but there is no way to abort closure of the property sheet.
>
>IS THERE SOME WAY I CAN DO THIS? 
>
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
6/1/2007 1:07:26 AM
What does your flag look like? Do you use a word or what? What color? And 
where do you put it on the property page?

A company I worked for years ago, on a Unix system, put a red dot in front 
of the text labels of any control that was changed. They called it the 
"dirty bit".

Thank you. You always write some good stuff when I ask a question. Thank you 
for your time.



"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message 
news:5pru53104ljqkeu0fh3u7grtrvkjhkumao@4ax.com...
> Subclass CPropertySheet and add your handlers.  See the other reply for 
> details.
>
> One think I like to do is compute a checksum based on the values in the 
> controls.  So if
> you simply respond to EN_CHANGE or BN_CLICKED notifications to set the 
> "changed" flag, and
> someone clicks a button, then unclicks, they have made no change, but the 
> simplistic
> solution thinks they have.  Instead, I iterate through the controls.  If 
> it is a check box
> or radio button, I add its value into the checksum (you need something 
> like CRC32 or
> something else other than a simple add-the-values-and-take-the-result 
> because you don't
> want unchecking one button and checking another to produce the same 
> result.  Similarly, I
> checksum every character of an edit control.  This means that if the 
> original string was
> ABC, you place the cursor at the end and type <backspace>C, the result is 
> no net change.
> The BN_CLICKED and EN_CHANGE notifications trigger the checksum.  I 
> usually display a
> "changed" flag, so if the user resets the values, the "changed" flag would 
> disappear.  So
> if the checksum after a change equals the original checksum, you just call
> SetModified(FALSE).
> joe
>
>
>
> On Thu, 31 May 2007 21:24:58 GMT, "TonyG" <TonyG@junk.com> wrote:
>
>>My application has a modal property sheet. Normally if the operator 
>>presses
>>"Cancel" the logic throws away the data changes and the sheet closes.
>>
>>Instead this is what I want to happen:
>>I check if any data changes were made. If changes were made, I pop up an
>>OK/Cancel message box asking the question: "Data has been modified. Press 
>>OK
>>to discard data modifications." So if the operator clicks OK, I throw away
>>the data changes and the property sheet closes.
>>
>>But if the operator clicks Cancel, I want to allow the property sheet to
>>continue living. In other words... I want to abort the fact that the
>>operator clicked Cancel on the property sheet.
>>
>>I can't get this to work.
>>
>>The OnCancel handler in the property pages allows me a way to ask my
>>questions, but there is no way to abort closure of the property sheet.
>>
>>IS THERE SOME WAY I CAN DO THIS?
>>
> Joseph M. Newcomer [MVP]
> email: newcomer@flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm 


0
TonyG2127 (95)
6/1/2007 1:24:47 AM
It usually depends on what is appropriate for the form.  Sometimes I just use a 16x16 icon
and do a SetIcon to a control.  In the case of property sheets, I sometimes put one on
each tab. For example, see

http://www.extorr.com/Extorr_RGA_UserManual060714.pdf

page 18 has a picture of a tab with a red check mark, meaning "a setting on this page has
changed"

The choice of color is entirely up to you.  I tend to use something red.

Implementing a "dirty bit" is also easy.  You can just checksum the contents of edit
controls and keep a simple boolean value for check boxes and radio buttons.  You would
subclass the controls, use reflected control messages, modify the control to ON_REFLECT_EX
style notifications, manage your change notifications in the subclassed controls, and then
let the parent see the notification.

My own inclination would be to put the dirty-bit indicator to the right, and make a
requirement that the tab order be 1+ the affected control, so the subclass will simply
GetWindow(GW_HWNDNEXT) to get the control.  So the label goes to the left, and the dirty
flag to the right.

				joe
On Fri, 01 Jun 2007 01:24:47 GMT, "TonyG" <TonyG@junk.com> wrote:

>What does your flag look like? Do you use a word or what? What color? And 
>where do you put it on the property page?
>
>A company I worked for years ago, on a Unix system, put a red dot in front 
>of the text labels of any control that was changed. They called it the 
>"dirty bit".
>
>Thank you. You always write some good stuff when I ask a question. Thank you 
>for your time.
>
>
>
>"Joseph M. Newcomer" <newcomer@flounder.com> wrote in message 
>news:5pru53104ljqkeu0fh3u7grtrvkjhkumao@4ax.com...
>> Subclass CPropertySheet and add your handlers.  See the other reply for 
>> details.
>>
>> One think I like to do is compute a checksum based on the values in the 
>> controls.  So if
>> you simply respond to EN_CHANGE or BN_CLICKED notifications to set the 
>> "changed" flag, and
>> someone clicks a button, then unclicks, they have made no change, but the 
>> simplistic
>> solution thinks they have.  Instead, I iterate through the controls.  If 
>> it is a check box
>> or radio button, I add its value into the checksum (you need something 
>> like CRC32 or
>> something else other than a simple add-the-values-and-take-the-result 
>> because you don't
>> want unchecking one button and checking another to produce the same 
>> result.  Similarly, I
>> checksum every character of an edit control.  This means that if the 
>> original string was
>> ABC, you place the cursor at the end and type <backspace>C, the result is 
>> no net change.
>> The BN_CLICKED and EN_CHANGE notifications trigger the checksum.  I 
>> usually display a
>> "changed" flag, so if the user resets the values, the "changed" flag would 
>> disappear.  So
>> if the checksum after a change equals the original checksum, you just call
>> SetModified(FALSE).
>> joe
>>
>>
>>
>> On Thu, 31 May 2007 21:24:58 GMT, "TonyG" <TonyG@junk.com> wrote:
>>
>>>My application has a modal property sheet. Normally if the operator 
>>>presses
>>>"Cancel" the logic throws away the data changes and the sheet closes.
>>>
>>>Instead this is what I want to happen:
>>>I check if any data changes were made. If changes were made, I pop up an
>>>OK/Cancel message box asking the question: "Data has been modified. Press 
>>>OK
>>>to discard data modifications." So if the operator clicks OK, I throw away
>>>the data changes and the property sheet closes.
>>>
>>>But if the operator clicks Cancel, I want to allow the property sheet to
>>>continue living. In other words... I want to abort the fact that the
>>>operator clicked Cancel on the property sheet.
>>>
>>>I can't get this to work.
>>>
>>>The OnCancel handler in the property pages allows me a way to ask my
>>>questions, but there is no way to abort closure of the property sheet.
>>>
>>>IS THERE SOME WAY I CAN DO THIS?
>>>
>> Joseph M. Newcomer [MVP]
>> email: newcomer@flounder.com
>> Web: http://www.flounder.com
>> MVP Tips: http://www.flounder.com/mvp_tips.htm 
>
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15974)
6/1/2007 4:05:16 AM
Thank you. Your suggestion worked great.




"Ashot Geodakov" <a_geodakov@nospam.hotmail.com> wrote in message 
news:u7R2B58oHHA.1852@TK2MSFTNGP05.phx.gbl...
> Every time something is changed on the Propery page, call that page's
>
> CPropertyPage::SetModified( TRUE ) function. This will enable the "Apply" 
> button.
>
> If you don't want the property sheet to close alltogether, override
>
> CPropertyPage::OnQueryCancel()
> {
>  return FALSE; // This will abort the closure of the unsaved property 
> sheet.
> }
>
> "TonyG" <TonyG@junk.com> wrote in message 
> news:K2H7i.12098$rO7.2013@newssvr25.news.prodigy.net...
>> My application has a modal property sheet. Normally if the operator 
>> presses "Cancel" the logic throws away the data changes and the sheet 
>> closes.
>>
>> Instead this is what I want to happen:
>> I check if any data changes were made. If changes were made, I pop up an 
>> OK/Cancel message box asking the question: "Data has been modified. Press 
>> OK to discard data modifications." So if the operator clicks OK, I throw 
>> away the data changes and the property sheet closes.
>>
>> But if the operator clicks Cancel, I want to allow the property sheet to 
>> continue living. In other words... I want to abort the fact that the 
>> operator clicked Cancel on the property sheet.
>>
>> I can't get this to work.
>>
>> The OnCancel handler in the property pages allows me a way to ask my 
>> questions, but there is no way to abort closure of the property sheet.
>>
>> IS THERE SOME WAY I CAN DO THIS?
>>
>
> 


0
TonyG2127 (95)
6/4/2007 4:56:47 PM
Reply:

Similar Artilces:

Access MODAL form does not seem to act "MODALLY"
Sorry this is a bit long but I hope it is clear... I have a parameter field PARAM on a parameter form into which I want to enter a string validated as comprising three parts made up from different fields in the database. In "native" form on the parameter form it works well as follows: 1 - Double click on PARAM field and that makes a combo box visible and hides the PARAM field. 2 - Select from combo and on tab (lost focus) make next combo visible.... etc. 3 - on completion of last combo and tab (lost focus) build the PARAM value from the Me.cbo...values and makes all...

Folder properties says there are items in Deleted Items but not th
Hello, I have a client that is over his mailbox limit. I checked his folder size and it says there are many emails in his deleted items but when you click on the folder there is nothing there. He is using Office 2007 SP2 on XP SP3. Thanks are you sure you checked the right folders? which version of Exchange do you use? -- Diane Poremsky [MVP - Outlook] Outlook Tips: http://www.outlook-tips.net/ Outlook & Exchange Solutions Center: http://www.slipstick.com/ Outlook Tips by email: mailto:dailytips-subscribe-request@lists.outlooktips.net EMO - a weekly newslet...

Macro to copy sheets
Every month I have to copy about 35 sheets for 17 different people, sometimes is only 1 sheet but the maximun could be 15 sheets. Could I have a macro to select the sheets (any number of sheets) and do a copy to a new sheet(s). I tried to do with the Macro record, but unfortunately comes with the sheet name. Any help would be appreciated. Fernando I'd definately use a macro, esp if the source/target sheets dont change. Need more details to code it, but here's a start. Experiment with a copy of your file because macros are not subject to the Undo command. sub copysheets() 'Copy...

Serializing some properties of a UserControl-derived class
I have a class derived from UserControl. I need to serialize an object of this class, but only some properties of it, as not all properties are serializable (some of the properties coming from UserControl are like that). When serializing, how could I ignore all the properties coming from the UserControl class? I know there is XmlIgnoreAttribute, but how could I set it to every property of UserControl, as it is not my class? Thank you very much, Chris Use IXmlSerializable interface to de-/serialize only some props. [http://msdn2.microsoft.com/en-us/library/system.xml.serialization.ixmlseria...

Load a Property Page from a mfc Dll
Hello, I'm trying to load a custom property page from a list of plugins dlls, and i'm doing like that: in my exe: CPropertySheet cSheet(_T("Teste"),this); CMainPage cMain; cSheet.AddPage(&cMain); PPSETPPAGES pSetPagesFunc = (PPSETPPAGES)GetProcAddress(m_pDLLhInstance, SETPPPAGES); if(pSetPagesFunc) { pSetPagesFunc(&cSheet); } cSheet.DoModal(); And in the plugin dll's i'm doing the following: __declspec(dllexport) void SetNewPages(CPropertySheet* rp_psheet) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CDllPage* pcPage=new CDl...

How do I center a sheet i 10 business cards on a pre-perf'd sheet
I used Publisher from Office 2003 to create a set of 10 business card which, together look like a rectange that is smaller than the pre-porforated A4 page it it should be printed onto. Unfortunately, the set of 10 business cards is displaced towards the top of the pre-perforated A4 page in a way that leaves the perforations cutting through the graphics of each of the cards. How do I recenter the set of business cards to the middle of the sheet to be printed on, or how do I adjust the margins of the A4 page so that my cards are appropriately positioned? Are you using a label template...

Does system.xml have any way to transofrm data with an xswl style sheet using strings like MSXML2 does?
Does system.xml have any way to transofrm data with an xswl style sheet using strings like MSXML2 does? how to convert this to use System.XML so i do not depend on MSXML2 interop? static public string XslTransform(string style, string strdata) { MSXML2.IXMLDOMDocument pDoc = new MSXML2.DOMDocumentClass(); pDoc.async = false; pDoc.loadXML(strdata); MSXML2.IXMLDOMDocument pTemplate = new MSXML2.DOMDocumentClass(); pTemplate.async = false; pTemplate.loadXML(style); strdata = pDoc.transformNode(pTemplate); return strdata; } ...

How to get a copied sheet to update?
I made a copy of sheet 1, and it is names sheet 2. How can I get th data that I entered in sheet 1 to copy or update directly into the 2n sheet. Like I said the sheet are identical, sheet for sheet. Onc that is done, how can I set it up so only the 2nd sheet prints? Thank in advance! Mile -- mcr ----------------------------------------------------------------------- mcr1's Profile: http://www.excelforum.com/member.php?action=getinfo&userid=1549 View this thread: http://www.excelforum.com/showthread.php?threadid=27759 To get a "linked" copy of sheet1 that updates. Wi...

Variable Sheets
Morning All, We have a program that produces an excel file with multiple sheets (IE Sheet1, Sheet2, Sheet3......). The number of sheets it produces is variable. Could be 1, could 20, could be 50. On each sheet we have been able to sum a column to give us a page total. What we need now is a grand total of all the sheets on the last sheet. How can we achieve this when we dont know the number of sheets in any given file that is output? Is it via VBA? Or is there a simpler solution? Cheers for any help, Scott Scott Insert a dummy sheet at beginning and name it Start Insert a du...

Non-modal dialog in CSplitterWindow???
Hello newsgroup, is it possible to show a non-modal dialog in a pane of a CSplitterWindow? The documentation says that CSplitterWindow may contain windows that are not views, but I have some doubts. Since CSplitterWindow's CreateView method assumes that the window _IS_ a view (it calls Wnd::Create, which is utterly inappropriate if I want to create a modeless dialog), I don't see how I can use CSplitterWindow. Is there any alternative to CSplitterWindow? Some words about my project: My app should display image data. This done via the common doc-view approach. There must be a dialog...

Cell ID property
Excel 2003, sp2 Hi, I'm using an add-in to retrieve data from a webservice. The data is "looped" into a table in a worksheet. Typicaly the webservice returns 200 records. I would like to store each records ROWSTAMP in column A so that the add-in can retrieve additional information about that record if the user needs it (and display the additional information in a msgbox). I do not however want the rowstamp id to be displayed to the user. Since the workbook already heavyly relies on ranged names I do not want to use 200 additional range names to store this ty...

Copy a Sheet to an AddIn
Hi All, I've been building an addin for a while that will have multiple users. The user's workbook is referenced to the addin. I'm far from an expert on the addin object but with Walkenbach's book I've been exectuting code from the addin successfully. I'm trying to have the addin hold 'template' sheets that can be added to a user's workbook. I know I can copy a range, and formats, but I ALSO want the template to hold the vba code for selected sheet events like change and activa- tion. This has worked for me when copying from ...

vb code to copy and list selected row to diff sheets
I am working with workbook with 30sheets for each day x each worksheet having same headers and colmuns x I want to copy selected rows to corresponding sheets with different name . eg. date name details amount type 13feb kk ccj/dxb 1300 inv 14feb pv ccj/auh 1200 alh I would like to copy first row to a sheet named inv and second row to sheet names alh. can u adv me the code to be used -- pvkkutty new to discussion group however a freequent reader of discussion group posts Try the below code with all the sheets... Sub CopyRowstoDifferentSheets() Dim wb As Workbook...

array formular to add cell A1 across a number of sheets
any idears. is there a simple way to add the contents of a cell that is duplicated across a number of sheets. i have a workbook with 100 sheets on it and want to be able to total the contents a cell A1, which is repeted across sheets 2-100 Ta dave ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~View and post usenet messages directly from http://www.ExcelForum.com/ Hi Dave =SUM(Sheet2:Sheet100!A1) no array entry needed. But it sums by sheet placement index, not by sheet name, so do not move sheets out of the initial order. -- HTH. Be...

Binding an Access 2003 form to an object property
Hi, I'm using a form which is bound to an disconnected ADODB recordset. The control source of my form are set to the fields names of this recordset. This works great and enables my form to receive data input from my user without saving these data to the database. My user selects an article number, and this implies that the package unit and the currency (= two of my article fields) are implicitly selected as well. Currency and package unit of my articles are defined as foreign key in other tables/recordsets. So, selecting article #47 sets currency #1 (EUR) and package unit #23 (yar...

Bitmap in the wizard property page dialog
Good day, I want a bitmap image drawn on the opening page of the wizard. While this appears a fairly easy task accomplished in the resource editor, due to some reason there's no image being displayed when the wizard is launched from within the executable. I remember reading somewhere that, if a bitmap is used in the PropertyPage-based wizards, OnPaint() or, possibly, another function must be employed to redraw the respective screen area. So, can it be the reason why my bitmap never shows up at all ? Thanks for ideas, Andy Let me know the details of bitmap. I don't think OnP...

Active Sheet
Whats the easiest way to find out what sheet is "active"? I need to get the name of the sheet the macro is run from for some conditions in code however this is prooving harder then I thought. How do I do this? TIA Scott, Variable = ActiveSheet.Name. I wouldn't however call this "the sheet the macro is run from" as the macro can change the active sheet bij Sheet("name").activate. An other possibility is that the macro was invoked by an event occuring on a sheet (for instance a change taking place on that sheet by inpuuting a value in a cell on that sheet...

Moving data between sheets (tabs?)
Hi all, sorry for the potential newbie-question but I really didn´t know what to search for... I have an Excel 2003 file with 3 sheets (tabs) in it. All 3 sheets look the same but I would like the third sheet to only show the products bought on sheet 1 & 2. The first two sheets are the product-lists - which are pre-filled with product information and prices. One product for each row and the "F"-Column is where i will enter the amount of each product which has been purchased - default value is blank. However on the 3´d sheet i would like to collect all the produ...

Splash screen/modal interaction?
Hiya I'm using the splash window code from http://www.microsoft.com/msj/1099/c/c1099.aspx in an MDI application I'm working on. I create the splash window on the heap in CWinApp::InitInstance() while I do some time- consuming initialisation (loading a few big files needed by the application). I added a couple of members to the CSplash class to allow me to update the splash window title on the way through the initialisation process (eg. 'loading big file 1', loading even bigger file 2') - everything worked fine. The problem came when I added a modal licence dialog ...

Problem: Non-modality of modal dialogs
Hi All, I have a dialog-based application in MFC (main window is CDialog1). I have a separate thread (class derived from CWinThread) in the application. The main window (m_pmainWnd) of the thread is a hidden modeless dialog (this is CDialog2). I have created the thread in InitInstance() of my application class using AfxBeginThread (). I PostMessage() to the "hidden modeless dialog" on a button-click of the application dialog. The PostMessage() handler displays a modal dialog (this is CDialog3). Button-click on 'Dialog3' displays another modal dialog (this is...

Fill series that combines data from 2 sheets in blocks of 10
Hi, I have a spreadsheet with two sheets... Sheet1, and Sheet2, that I us as sort of a staging area to format info before bulk uploading to m product database. The products I'm working with at the moment have 1 subcategories below each of them. Sheet1 is the full product databas listing. I place new subcategories in blocks of 10 that I plan to ad to the database on Sheet2. Sheet2 also holds the default partia category names in cells A2-A11. Part 1: I am currently using the following formula on Sheet2, in column C t combine the category name value on Sheet1, with the default partia cat...

Access 2007 force new page property not working for me
In Access 2007, Force New Page property is not working for me. I have tried selecting "Before section", "After section" in the Force New Page properties of the group header and group footer sections of my report, in report design view. Any suggestions? jerry176 ...

Modal? acDialog?
Hi folks. I've inherited an Access project, and I'm a VB6 guy, so I'm in territory that looks familiar, but isn't acting familiar. I need to create a form with 2 fields on it (date and amount), and pass into that form a recordset that I can use to AddNew or Update as appropriate. How do I instantiate a form? After that, how do I show that form "modal" so that they have to deal with that input form before doing anything else? Any advice is very appreciated. Matt Hi Matt, Try: DoCmd.OpenForm "YourFormName", , , , , acDialog YYZ wrote: >Hi folks. ...

Modal Object
A form can be Modal. Menus also appear to be Modal. Is there anyway to create an object and make it modal (independent) of the form or any control on the form? "David" <NoWhere@earthlink.net> wrote in message news:e$WMI%23t5KHA.6052@TK2MSFTNGP02.phx.gbl... >A form can be Modal. Menus also appear to be Modal. > > Is there anyway to create an object and make it modal (independent) > of the form or any control on the form? I think you need to elaborate on what you are trying to do. 'Modal' is not a synonym for 'independent'. ...

how can i add lines to the balance sheet template
how can i add lines to the balance sheet template ...