Hiding the first 5 numbers of SSN within a Crystal Report?

Post Author: robertr
CA Forum: General
I am sure that this is easy - but how do you set a field such as an SSN field to only display the following: with a standard Crystal Report?
XXX-XX-1234  (I would like to get this output everytime I run this report)
We need this for security purposes.
I really appreciate anyone's help on this.
Thanks!

Post Author: SKodidine
CA Forum: General
create a formula such as this and place it instead of SSN:
SSN stored as numbers:
'XXX-XX-' & totext(({table.ssn}),0,'','')[6 to 9];
SSN stored as string with hyphens:
'XXX-XX-' & {table.ssn}[8 to 11];

Similar Messages

  • Cannot refresh a stored procedure within a Crystal Report from Xcelsius

    Please help...Xcelsius 2008 & Live Office problem...
    What I am trying to do is to refresh a stored procedure that is within a Crystal report from within my Xcelsius dashboard in Preview mode. The data returned appears on the Xcelsius dashboard. It works fine in Design mode, just not in Preview or when published as a swf.
    1. I set up a Crystal Report using a Stored Procedure as the data provider.
    2. The Stored Procedure has a parameter built into it.
    3. When the report is refreshed within Crystal, the prompt dialog box is displayed; I fill in the desired value, and run. Everything comes back fine.
    4. Crystal Report is exported to the repository.
    5. In Excel, I inserted the Crystal Report using Live Office. It shows up as a Live Office object just fine.
    6. I bound an Excel cell to the prompt; when you change the value in the bound cell, the Live Office object refreshes and displays the correct results.
    7. In Xcelsius, I imported the Excel spreadsheet.
    8. I set up a Text component that is bound to the cell containing the parameter value. Also set up a Grid to display the results, and a Connection Refresh button to call the refresh. Added a Live Office Data Connection pointing to the Web Service URL for the report.
    Note: When in Designer mode, if the value of the bound cell is changed, the results in the grid change accordingly.
    9. When in Preview mode (or generated swf), if the Refresh button is pressed, a "User Identification" dialog box appears asking me to log on. The values it asks for are: System, User Name, Password, and Authentication. I enter the same credentials as are within the Live Office settings in Excel, (which are working correctly), but receive an error "soapenv:Server.generalException: Database logon failed.".
    Note - all the id's are synced up - Business Objects, Database, etc.
    I've tried all kinds of combinations, but nothing gets me past this error. If I use any other server than the one listed under System in Live Office, the error message is "soapenv:Server.generalException: Server XXXXX not found or server may be down".
    I've noticed that in Excel directly, when I open the spreadsheet and refresh the Live Office object, I am prompted to log on to the database where the stored procedure is being executed. This dialog box does not appear once the Excel sheet has been imported into Xcelsius. One of the combinations I tried in the "User Identification" dialog box was the name of the database server, that didn't work either.
    I also tried creating the Live Office object directly within the Excel spreadsheet in Xcelsius, but then I was unable to bind the prompt value. Could never get the Live Office/Properties menu to appear.
    Ideas? Thoughts?
    Thanks in advance!
    Stephanie

    This post looks like a duplicate of: Live Office: Database logon failed error

  • How to embed the Word Document and PDF file into Crystal report?

    How to embed the Word Document and PDF file into Crystal report?
    I have word doc which having 10 pages. I need to show all of the 10 pages at a time. I tried OLE object but problem is it shows only one page.
    Is there any solution to show word doc / PDF file in CR?

    Symptom :
    When embedding a pdf document into a Crystal Report, only the one page shows.
    Reproducing the Issue
    Environment:
    Crystal Reports OLE object
    Cause
    An OLE object only displays the first page.
    Resolution
    Embed multiple objects, one for each page
    Or
    Use a hyperlink to the object instead
    Hope this helps!
    Regards,
    Vinay

  • How to store the value of sum of group in Crystal Report at the runtime!

    Hello all,
    I creates a Formula Field that hold the value of Sum of Group in Crystal Report. I would like to know how to store it in a variable and pass it to store procedure. Is it an option in Crystal report to do it. I knew that Crystal Report can cache the report for sharing. My detailed issue as following:
    - Created a Formula Field named TOTAL AMOUNT that calculated the complex expression. This TOTAL AMOUNT is dynamic based on group and variables.
    - I would like to store that value from TOTAL AMOUNT and pass it to the stored procedure parameter IN.
    Any helps are much appreciated. Thanks.

    I doubt that this is possible since it would only calculate this value once the report has data.  This sounds more like a report design question that should be asked over [here|SAP Crystal Reports;

  • Problem with the support of certain characters unicode in Crystal Reports

    Hello,
    Crystal Reports seems to have problems in the treatment of the following characters unicode: ethiopic Digits & Numbers u+1369… u+137c.
    As soon as one of these characters appears in the viewing of a Formula Field with Format>Paragraph>Text interpretation positioned with “RTF” or “HTML”, the component CrystalReportViewer posts the following dialog box
    (Failure of the Report Application Server)
    Any help would be appreciated…
    Regards,
    Claude

    What version of CR are you using?
    Any CR Service Packs applied?
    What version of CR was the report created in?
    What version of .NET are you using?
    What OS?
    Looking at this blog:
    http://blogs.msdn.com/b/michkap/archive/2005/02/01/364376.aspx
    I note that support for ethiopic Digits would not be supported until VS 2005 at the earliest:
    As such, the update will not be seen in Windows until Longhorn or in the .NET Framework until the version after Whidbey.
    So, if you're using .NET 2005 or later the point is probably moot..., but my other questions do need to be answered.
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter
    Got Enhancement ideas? Try the SAP Idea Place
    Share Your Knowledge in SCN Topic Spaces

  • Modifying the lengh of a long text field- Crystal Report version 2011

    Hello,
    I'm having a problem with the long text field in my crystal report.
    I'll desribe the problem:
    We work with BW version 7.4 sp 5.
    I created a BEX Report with an infobject of type Long Text (Long Text is XL).
    I know the length of this field is 1,333 char.
    When I run the Bex Report the field is displayed correctly (long text).
    I then created a Crystal Report 2011 version 14.0.6.1036 RTM based on my BEX Query.
    The problem is that the Crystal report brought this database long text field as a
    String[70]. Thus I get only the first 70 characters of the field.
    Can we modify the settings of the field to enlarge it to be 1,333 characters in
    length?
    Thank you,
    Ayelet

    Hi Jothi,
    Short Text and Long Text are associated objects of a Characteristic from a BEx query.
    The 'Short Text' will not turn to 'Long Text' by setting the 'Can Grow' option.
    In Fact, both are completely different objects.
    -Abhilash

  • How to change the name of a Box Object in Crystal Reports 2008

    I am trying to change the name of a box object in a crystal report - 2008. This report was originally developed by consultants and requires that certain boxes be named according to a specific naming convention. I am making a change to the report and need to add a box with a name that matches the naming convention.  This is so some program functionality will work for the new box.  I can't contact the consultants because they don't work with our company anymore.
    Does anybody have any ideas? I've tried 'Format Box', but it won't let me change the name from there. I also tried it in the Report Explorer but to no avail.
    Thanks,
    Joanne

    Hi Joanne,
    Boxes do not actually have a 'name'. When you add a Box in a report, it will be called 'Box 1' by default. And the only place this name is visible is under the Report Explorer.
    Or do you mean to say 'Text Object'?
    -Abhilash

  • How to limit the no of records per page in crystal reports 2008

    I have to limit the number of records =10 per page in crystal reports 2008.
    Any help appreciated.

    Hi,
    1. Open the report in Design View
    2. Right click on the Details section and select Section Expert
    3. Make sure the Details section is selected in the Section Expert dialog box. goto paging tab
    Check the box that says u201CNew Page Afteru201D
    4. Click the formula editor button to the right of the checkbox.
    5. Enter the following formula
    if Remainder (RecordNumber, 10) = 0 then true else false
    6. Click Save and Close and then click OK.
    If you run the report it should break after each 10 rows.
    @Sri
    Edited by: Sri kamesh on Jun 22, 2011 1:50 PM

  • About the connection destination change of Salesforce of Crystal Report

    Hi
    There are three kinds of Salesforce about Developer Edition, sandbox environment, and deploy environment(operation environment).
    In an in-house data base (SQLServer and Oracle), when it changes the database connectivility ahead, "connection string" is changed.
    However, how should be changed the connection destination in the Salesforce driver of Crystal Report?
    I can't found connection properties on Crystal Report for salesforce driver.
    Thank you.

    Hi, I am using salesforce.com group edition. 
    I have setup a crystalreports.com tab and have signed up for the free starter edition.
    I can login to crystalreports.com.  When I try to access my crystalreports.com tab from salesforce, it keeps asking me to register.
    I called salesforce and they said this is an SAP issue.
    Can anyone help me?
    Thanks,
    -Mike

  • Parameters within a Crystal Report

    I am having a problem when a try to add a parameter to my report.  I can create the parameter but when I try to allocate values from the dropdown option the application crashes with the message :
    crw32.exe has encountered a problem and needs to close.  We are sorry for the inconvenience.
    Has anybody else experienced a similar problem ?
    Ron Smith
    MAXIMO Administrator

    Hello Sir,
    I have faced this kind of problem when working in crystal reports, but not exactly with parameters. So, this message is not particular with the parameters. When it happens It will get close and I will reopen and do the changes I wanted to do.
    So My suggestion here is
    1. Try to change exisiting parameter values.
    2. Then try creating new and add values to it.
    It will work fine.
    Otherwise, reinstall Crystal Reports again. May be, some files will be missing.
    Thanks
    Usama

  • Looking for the best web-based replacement tool for Crystal report

    Hello everyone,
    A few days ago, I installed JDeveloper and went through the tutorials posted on oracle.com and have not known all the feature yet.
    In our office we provide end-users with crystal reports against our oracle database, and this fulfills their needs fairly enough but, recently, we received a request from some of remote users to use those crystal reports. So I just wanted to know whether ADF can replace a crystal report if I try to migrate them? A crystal report has rich functions. For example, I use DistinctCount(Param1, Param2) to display the number of distinct param 1s in each param 2.
    Any kind of suggestion would be much appreciated.
    Thank you.

    Came across: http://www.docstoc.com/
    Don't know if it works for you. There is always the thing with privacy.

  • Unable to hide the first page in the form

    Hi ,
    I am trying to design a dynamic form that has three pages. The form is being used in a LiveCycle process and during the process initiation, only the second page should be visible and the first and third pages should be hidden. I am trying to hide the first and the third pages using JavaScript. I noticed that the third page is being hidden but the first page gets displayed as an empty page. Based on this behavior here are couple of questions I need guidance with
    Can we hide the first page within a form? If so why am I seeing this inconsistent behavior when hiding the first and third pages?
    If the first page can not be hidden then is there a workaround to achieve my goal of re-arranging the pages so that I can add content to the first page dynamically and shift the previous content on the first page to the second page?
    Any suggestions will be appreciated.
    Thanks,
    Samanthapudi

    Hi,
    You've originally said.
    in the first page i don't want data in main window...
    yet using a command node to trigger the next page means you have to include a (presumably) empty main window in the first page.
    Your main window has to contain some output (a table usually) and it's contents are the same on every page (only it's height can change).  So, you can't have a blank main window on page 1 and a main window with data on pages 2 and 3.
    Remove the main window from page 1, set page2 as the next page for page 1.
    As for how to trigger page 3 you'll need to provide more detail on what the condition is.  Do you want multiple copies of page 2 to hold all of the main window data, or just one?  Do you want one copy of page 2 then the rest of the data on multiple copies of page 3.  Be specific.
    Regards,
    Nick

  • How to show the first page and then rest will be created in background

    Dear Friends,
    I am suffering from some seriouse issue of slow opening of report....
    I am using vs2005 and asp.net 2.0 and crXI R2 sp4,
    using oledb for getting data from ms sql server 2005.
    Now my one report called accounts ledger
    when i execute the report query it takes 1.03 mins for 515000 records..no issue with it ,
    when i execute the report from report desginer for 515000 records its taking 26 mins . It is generating all
    32000 pages.
    Now same report i run from my web based erp application it takes 30mins to execute 32000 pages now
    this is too much time it is taking and now our client is fedup of ussss..
    So is there any way that we can show First page at the earliest and rest of the pages willl be getting created in background? is it possible ?
    We have to give them the solution as sson as possible...
    can anyone suggest the diff ways to get out of this problem .......
    Please ur co operation will be appriciated....
    thansk

    Hi Mithun,
    Here are a few points related to performance issue. These might be helpful.
    The performance of a report is related to:
    External factors:
    1. The amount of time the database server takes to process the SQL query.
    ( Crystal Reports send the SQL query to the database, the database process it, and returns the data set to Crystal Reports. )
    2. Network traffics.
    3. Local computer processor speed.
    ( When Crystal Reports receives the data set, it generates a temp file to further filter the data when necessary, as well as to group, sort, process formulas, ... )
    4. The number of records returned
    ( If a SQL query returns a large number of records, it will take longer to format and display than if was returning a smaller data set.)
    Report design:
    1. Where is the Record Selection evaluated?
    Ensure your Record Selection Formula can be translated in SQL, so the data can be filter down on the server, otherwise the filtering will be done in a temp file on the local machine which will be much slower.
    They have many functions that cannot be translated in SQL because they may not have a standard SQL for it.
    For example, control structure like IF THEN ELSE cannot be translated into SQL. It will always be evaluated
    in Crystal Reports. But if you use an IF THEN ELSE on a parameter, it will convert the result of the condition to
    SQL, but as soon as uses database fileds in the conditions it will not be translated in SQL.
    2. How many subreports the report contains and in section section they are located.
    Minimise the number of subreports used, or avoid using subreports if possible because
    subreports are reports within a report, and if you have a subreport in a details section, and the report returns 100
    records, the subreport will be evaluated 100 times, so it will query the database 100 times. It is often the biggest
    factor why a report takes a long time to preview.
    3. How many records will be returned to the report.
    Large number of records will slow down the preview of the reports. Ensure you only returns the necessary data on the report, by creating a Record Selection Formula, or basing your report off a Stored Procedure, or a Command Object that only returns the desired data set.
    4. Do you use the special field "Page N of M", or "TotalPageCount"
    When the special field "Page N of M" or "TotalPageCount" is used on a report, it will have to generate each page
    of the report before it displays the first page, therfore it will take more time to display the first page of the report.
    If you want to improve the speed of a report, remove the special field "Page N of M" or "Total Page Count" or formula that uses the function "TotalPageCount". If those aren't use when you view a report it only format the page requested. It won't format the whole report.
    5. Link tables on indexed fields whenever possible.
    6. Remove unused tables, unused formulas, unused running totals from the report.
    7. Suppress unnecessary sections.
    8. For summaries, use conditional formulas instead of running totals when possible.
    9. Whenever possible, limit records through selection, not suppression.
    10. Use SQL expressions to convert fields to be used in record selection instead of using formula functions.
    For example, if you need to concatenate 2 fields together, instead of doing it in a formula, you can create a SQL Expression Field. It will concatenate the fields on the database server, instead of doing in Crystal Reports.
    SQL Expression Fields are added to the SELECT clause of the SQL Query send to the database.
    11. Using one command as the datasource can be faster if you returns only the desired data set. It can be faster if the SQL query written only return the desired data.
    12. Perform grouping on server
    This is only relevant if you only need to return the summary to your report but not the details. It will be faster as less data will be returned to the reports.
    Regards,
    Shweta

  • UITextView doesn't display the first part of the text

    I am having a trouble with UITextView.
    When a text view is loaded for the first time after my app is launched (the text view is created and text is filled from saved data), the text view displays from the first letter of the text.
    But once the text view becomes first responder, then disappers by pressing back button on a navigation bar, and come back to the text view again by using a control on the previous view (a button for instance), the text view always displays the last part of the text.
    This happens after the text view becomes first responder. What is changed before and after the text view becomes first responder? And how can I avoid this to display the first letter in the text view always when it appears?
    I tried resignFirstResponder, selectedRange, and scrollRangeToVisible: in viewWill/DidAppear/Disappear but all of them didn't work.

    Thank you iPhil_good, but it didn't work ...
    And RickMaddy, I don't know how to post image but as it is UITextView, I use text to explain.
    There are two views, home view and text view, and UITextView is in the text view. The first time the UITextView appears (slides in from the home view), it looks like:
    Test[1] Test[2] Test[3] Test[4]
    Test[5] Test[6] Test[7] Test[8]
    Test[9] Test[10] Test[11] Test[12]
    Suppose the text starts at Test[1] and ends at Test[200], and just the first 50 are visible within the size of the UITextView.
    Once I tap on the UITextView, keyboard appears and UITextView becomes first responder (editable). Then I go back to the home view using back button on the navigation bar.
    Then again I move back to the text view from the home view,. This time it looks like:
    Test[189] Test[190] Test[191] Test[192]
    Test[193] Test[194] Test[195] Test[196]
    Test[197] Test[198] Test[199] Test[200]
    I would like to display the text from Test[1] whenever the view appears. If the UITextView hasn't become first responder, this doesn't happen and the text starts from Test[1] when it appears. But once the UITextView becomes first responder, the UITextView always displays Test[200] at the bottom of the view when it appears.
    I am not sure but it looks as though some internal state of UITextView changes when it becomes first responder, but isn't reset even after it resigns first responder.

  • How to list the active Alerts used within a tab(report) within a Document

    Hello
    We have a number of tabs/reports within a single webi document. There are a couple of alerts within the webi document but only one is used within a given tab/report.
    Is there an API around that will help me query the alerts that are enabled within each tab/report within a given document instance?
    There is an IReportProcessingInfo class that is around for it looks like its not applicable for Webi documents.
    Regards
    Madhu
    BO XI R2 SP2 on Windows 2003

    Hi Madhu,
    Below is a sample code to traverse through the ReportStructure and get the Alerters from the cells.
    Hope this helps.
    Regards,
    Dan
    Main:
                /************************** RETRIEVING PARAMETERS **************************/
                // Retrieve the logon information
                String username = "username";
                String password = "password";
                String cmsName  = "cms name";
                String authType = "secEnterprise"; 
                // Retrieve the name of the Web Intelligence document to be used in the sample
                String webiDocName = "WebI Alerter Test";
                /************************** LOGON TO THE ENTERPRISE **************************/
                // Logon to the enterprise
                IEnterpriseSession boEnterpriseSession = CrystalEnterprise.getSessionMgr().logon( username, password, cmsName, authType);
                /************************** RETRIEVE INFOOBJECT FOR THE WEBI DOCUMENT **************************/
                // Retrieve the IInfoStore object
                IInfoStore boInfoStore =(IInfoStore) boEnterpriseSession.getService("InfoStore"); 
                session.setAttribute("SAMPLE.InfoStore", boInfoStore); 
                // Build query to retrieve the universe InfoObjects
                String sQuery = "SELECT * FROM CI_INFOOBJECTS WHERE SI_KIND='" + CeKind.WEBI + "' AND SI_NAME='" + webiDocName + "'";
                // Execute the query
                IInfoObjects boInfoObjects = (IInfoObjects) boInfoStore.query(sQuery);
                // Retrieve the InfoObject for the Web Intelligence document
                IInfoObject boInfoObject = (IInfoObject) boInfoObjects.get(0);
                /************************** RETRIEVE DOCUMENT INSTANCE FOR THE WEBI DOCUMENT **************************/
                // Retrieve the Report Engines
                ReportEngines boReportEngines = (ReportEngines) boEnterpriseSession.getService("ReportEngines");;
                // Retrieve the Report Engine for Web Intelligence documents
                ReportEngine boReportEngine = boReportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
                // Retrieve the document instance for the Web Intelligence document
                DocumentInstance boDocumentInstance = boReportEngine.openDocument(boInfoObject.getID());
                ReportStructure boReportStructure = boDocumentInstance.getStructure();
                out.print(traverseReportStructure(boReportStructure));
                out.print("<HR>Process Complete!<HR>");
                boDocumentInstance.closeDocument();
                boReportEngine.close();
                boEnterpriseSession.logoff();
    Functions:
    String traverseReportStructure(ReportStructure boReportStructure) {
                String output = "";
                for (int i=0; i<boReportStructure.getReportElementCount(); i++) {
                            output += traverseReportElement(boReportStructure.getReportElement(i), 0);
                return output;
    String traverseReportElement(ReportElement boReportElement, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boReportElement instanceof ReportContainer) {
                            output += padding + "Report Name: " + ((ReportContainer) boReportElement).getName() + "<BR>";
                } else if (boReportElement instanceof PageHeaderFooter) {
                            if (((PageHeaderFooter) boReportElement).isHeader()) {
                                        output += padding + "Report Header<BR>";
                            } else {
                                        output += padding + "Report Footer<BR>";
                } else if (boReportElement instanceof ReportBody) {
                            output += padding + "Report Body<BR>";
                } else if (boReportElement instanceof Cell) {
                            output += padding;
                            output += "Cell ID: " + ((Cell) boReportElement).getID() + " - ";
                            output += getAlerters(((Cell) boReportElement).getAlerters(), level+1);
                } else if (boReportElement instanceof ReportBlock) {
                            output += padding + "Block Name: " + ((ReportBlock) boReportElement).getName() + "<BR>";
                            output += traverseReportBlock((ReportBlock) boReportElement, level+1);
                } else {
                            output += padding + boReportElement.getClass().getName() + "<BR>";
                for (int i=0; i<boReportElement.getReportElementCount(); i++) {
                            output += traverseReportElement(boReportElement.getReportElement(i), level+1);
                return output;
    String traverseReportBlock(ReportBlock boReportBlock, int level) {
                String output = "";
                String padding = getPadding(level);
                Representation boRepresentation = boReportBlock.getRepresentation();
                output += padding + "Block type is [" + boRepresentation.getClass().getName() + "].<BR>";
                if (boRepresentation instanceof SimpleTable) {
                            SimpleTable boSimpleTable = (SimpleTable) boRepresentation;
                            output += padding + "Processing SimpleTable...<BR>";
                            output += padding + "Block Header<BR>" + traverseCellMatrix(boSimpleTable.getHeader(null), level+1);
                            output += padding + "Block Body<BR>" + traverseCellMatrix(boSimpleTable.getBody(), level+1);
                            output += padding + "Block Footer<BR>" + traverseCellMatrix(boSimpleTable.getFooter(null), level+1);
                } else {
                            output += padding + "Unhandled Block Type...<BR>";
                return output;
    String traverseCellMatrix(CellMatrix boCellMatrix, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boCellMatrix.getRowCount()>0) {
                            TableCell boTableCell = null;
                            for (int i=0; i<boCellMatrix.getColumnCount(); i++) {
                                        boTableCell = (TableCell) boCellMatrix.getCell(0, i);
                                        output += padding + "Column: " + i + " - " + boTableCell.getText() + " - ";
                                        output += getAlerters(boTableCell.getAlerters(), level+1);
                } else {
                            output += padding + "No Cells.<BR>";
                return output;
    String getAlerters(Alerters boAlerters, int level) {
                String output = "";
                String padding = getPadding(level);
                if (boAlerters.getCount()<=0) {
                            output += "No alerters.<BR>";
                } else {
                            output += "Alerters found!<BR>";
                            Alerter boAlerter = null;
                            for (int i=0; i<boAlerters.getCount(); i++) {
                                        boAlerter = boAlerters.getAlerter(i);
                                        output += padding + "<B>" + boAlerter.getName() + "</B><BR>";
                return output;
    String getPadding(int level) {
                String output = "";
                for (int i=0; i<level; i++) {
                            output += "     ";
                return output;
    Edited by: Dan Cuevas on May 25, 2009 9:45 PM

Maybe you are looking for

  • HP Deskjet Ink Advantage 2545 all in one not "scanning" properly

    I just received my printer today - HP Deskjet Ink advantage 2545. I was so psyched to use the scanner, and when I finally did, I learned that this printer/ scanneer doesn't really scan docs or pictures properly - parts of the scanned docs are covered

  • Black screen. Now saying Error code: 0xc0000185

    So I'm not sure what to do anymore. I am a college student taking 3 online classes, with no laptop! I was watching a movie on it about a week ago, when it suddenly went black. So like the genius that I am, I turned it off and turned it back on. my sc

  • Is Jolt part of Tuxedo?

    Our company is using Tuxedo and looking into some web based applcations using XML to communicate with the services. My question is, is Jolt part of Tuxedo in which it can be used without additional cost? What are ballpark figures to get the Jolt Serv

  • Difference - PB00 and PBXX

    Hello Can somebody help me to identify the difference between condition type PBXX and PB00. Why is it that, SAP has given two condition types? What is the significance of access sequence for these two condition types? Thanks for all your help. Best R

  • Mac OS 10.4 Compatible Palmtop

    So, I was thinking of getting a palmtop, pretty much for browsing the internet while I'm out and about. I'm not really sure where to begin looking for one so I was wondering if you folk could give me some recommendations. The minimal requirements for