On Jan 3, 2007, at 11:29 AM, Jayson Garrett wrote:
[snip]
2. The inclusion of a built-in data-aware banded report writer would radically simplify my life, and I suspect that of a great many people. I know this can be done with third-party plugins, but I think something as basic as this needs to be included in a tool that aspires to be a rapid-development environment. Such a facility should also have the ability to output its reports to printers, PDF, HTML, and possibly plain text.

Or how about a simplified (or - at least - simpler to use) printing model. I imagine it would:

* have a System.Printers object that would be an iterable container of available printers (and print-modes that simulate printers, such as the OS X ability to print-to-PDF) * a Printer object (from the above System.Printers container) that would have 1) an Open() and Close() method (i.e. you call .Open(), print what you want to it, then call .Close() to send the 'sheet' to the actual printer) 2) User scalable 'printing grid' (in pixels, picas, inches, cm, and characters - this last though would only be accurate as long as the font size/style wasn't changed in between .Open() and .Close() calls)
  3) a Color property that can get/set the current printing color. Ex:

    Dim c As Color

    ...
    c = myPrinter.Color(rbForeGroundColor)
    // or
    c = myPrinter.Color(rbBackGroundColor)
    ...
    myPrinter.Color(rbForeGroundColor) = rbRed
    myPrinter.Color(rbBackGroundColor) = &cFFFF00 // yellow

and an Invert() method which would flip the currently assigned foreground and background colors (call again to revert to the original.) 4) a Locate(Integer, Integer) method which would position the 'cursor' so that the next character would "print" on the sheet at the specified coordinates of the printing grid, based on the scale. This would have a companion HorizVert property that - if true - indicates it expects the two arguments to be the column, then row. If false, then the row value comes first (like in the older MS QuickBasic) 5) a Get(Integer, Integer) method which would retrieve the character at that position (accurate only as long as; 1) no character has over-printed at that location, and 2) the grid size/scale remain constant between the time you set the grid size/scale, and the time you make the Get() call.) 6) a Sheet property (of type Graphics; same as the 'g As Graphics' in a Paint() event) so you could do fancy things like add colored lines for a custom report. 7) a Print(String, Variant) method. The String parameter would be a print specifier (a-la C/C++ printf() function), and the Variant would be the variable to be printed using the print specifier. Prints at the current 'cursor' location. The overloaded Print(String, Variant, Boolean) method would allow you to choose whether text wraps around, or is truncated at the right margin.
  8) an Input(String, String) As String method. Ex:

    Dim userName As String

    // code to setup the 'printer'
userName = myPrinter.Input("Type your User Name in the field", "Username:")

this would cause a message box to appear whose TitleBar's caption would be the 1st parameter's value, and would display a StaticText just to the left of an EditField, and finally an "OK" button. The StaticText's caption would be the value of the 2nd parameter (the prompt string), and whatever was typed in would be returned as the result of the function call. The prompt string, plus the user's response would be printed to the 'sheet' much like the older BASIC Input statement. 9) the resulting Printer object's 'Sheet' property could also be used as an off-screen buffer and copied to the 'g As Graphics' object in a Canvas's Paint() event. 10) a 'Width' and 'Height' property that would return the correct values based on the current printing scale of the grid (so you could figure out how many character would fit across using Courier 12 Normal, for example)

3. In addition to POP3 and SMTP, the inclusion of email classes for the IMAP protocol.
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to