Problem with drawing in a scrollpane using clipbounds

Hello
Setup is a JFrame containing a splitpane with on the left just some config buttons and on the right a scrollpane.
Inside the scrollpane I want to draw big waveforms.
This is represented by a long array of 1's and 0's for the Y coordinates.
On drawing in paintComponents method I allways reconstruct a GeneralPath, based on the Clipbouns returned by the Graphics variable.
I have to reconstruct the GeneralPath polygon because my data can be millions long. And therefor I have to limit the points that are drawn.
When I allways reconstruct this GeneralPath, upon scrolling the polygon is shown scrappy, as in the line connecting the points will only be half shown or almost not.
Resizing the window or just minimize maximize and it is shown ok.
I do not have this problem when the GeneralPath I construct is only once made upfront and never remade in the paintComponent method.
But as I need the clipbounds to know which part to construct I need to rebuild this polygon over and over again.
I have tried to draw it with Line2D.Double but I get almost the same effect, parts of the lines not being drawn ok.
Below is the code of the Panel inside the ScrollPane responsible for this drawing.
public class Usr_Test_L extends JPanel
  final static Color bg   = Color.black;
  final static Color fg   = Color.white;
  final static Color wave = Color.red;
  final static Color txt  = Color.green;
  final static Color grid = Color.lightGray;
  private static final BasicStroke SOLID = new BasicStroke(1.0f);
  private static final BasicStroke BOLD  = new BasicStroke(3.0f);
  private double maxX = 0.0;
  private double maxY = 0.0;
  private double gridWidth;
  private double gridHeight;
  private int panelWidth;
  private int panelHeight;
  boolean firstTime = true;
  private double[] xPoints = null;
  private double[] yPoints = null;
  GeneralPath polygon;
  boolean polyOk = false;
  private double waveHeight = 0;
  private boolean gridOn = true;
  private Usr_Test_R scrollPane = null;
  Usr_Test_L(Usr_Test_R scrollPane)
    super(true);
    this.scrollPane = scrollPane;
    buildGui();
  void buildGui()
    setBackground(bg);
    setForeground(fg);
    //Let the user scroll by dragging to outside the window.
    setAutoscrolls(true); //enable synthetic drag events
//    addMouseMotionListener(this); //handle mouse drags
    repaint();
  private void generateWave(int cycles, double height)
    waveHeight = height;
    xPoints = new double[cycles];
    yPoints = new double[cycles];
    Random r = new Random();
    for ( int i = 0; i < cycles; i++ )
      xPoints[i] = i;
      yPoints[i] = (int)( Math.pow(-1.0,i) ) * ( r.nextInt(2) );
//      if ( ( i % 10 ) == 0 ) yPoints[i] = height;
//      else                   yPoints[i] = height + gridHeight;
//      System.err.println("P"+i+"("+xPoints[i]+","+yPoints[i]+")");
  private void generateSineWave(int cycles, double height)
    waveHeight = height;
    xPoints = new double[cycles];
    yPoints = new double[cycles];
    double j, xval, yval;
    j = 0;
    int i = 0;
    while (i < cycles)
      xval = j;
      yval = Math.sin(j) * 10.0 + 20;
      xPoints[i] = xval;
      yPoints[i] = yval;
      i++;
      j += 0.01;
  public Dimension getPreferredSize()  // <== used because of revalidate, parent scrollpane asks preferredsize ..., so we overruled the method
    return new Dimension(panelWidth, panelHeight);
  public void drawLine(int cycles, int height)
    generateWave(cycles,(int)(gridHeight*height));
    maxX = gridWidth  * cycles;
    maxY = gridHeight * cycles;
    while ( maxX > panelWidth  ) panelWidth  *= 2;
    while ( maxY > panelHeight ) panelHeight *= 2;
//    polyOk = buildPolygon();
    revalidate();
    repaint();
  public void drawSine(int cycles, int height)
    generateSineWave(cycles,(int)(gridHeight*height));
    maxX = gridWidth  * cycles;
    maxY = gridHeight * cycles;
    while ( maxX > panelWidth  ) panelWidth  *= 2;
    while ( maxY > panelHeight ) panelHeight *= 2;
//    polyOk = buildPolygon();
    revalidate();
    repaint();
  public void zoomIn()
    gridWidth  *= 2;
    gridHeight *= 2;
    repaint();
  public void zoomOut()
    gridWidth  /= 2;
    gridHeight /= 2;
    repaint();
  private void initPanel()
    Dimension d = getSize();
    panelWidth = d.width;
    panelHeight = d.height;
    maxX = panelWidth;
    maxY = panelHeight;
    gridWidth  = panelWidth / 8;
    gridHeight = panelHeight / 8;
    scrollPane.getHorBar().setUnitIncrement((int)(gridWidth*3));           // times 2 otherwise no clipbounds are allways too small
    scrollPane.getHorBar().setBlockIncrement((int)(gridWidth*3));
    scrollPane.getVerBar().setUnitIncrement((int)(gridHeight*3));
    scrollPane.getVerBar().setBlockIncrement((int)(gridHeight*3));
  public void grid()
    if ( gridOn ) gridOn = false;
    else          gridOn = true;
  private void drawGrid(Graphics2D g2, Rectangle clip)
    if ( ! gridOn ) return;
    // draw grid
    g2.setPaint(grid);
    // new good grid
    double startX = clip.getX() + ( gridWidth - ( clip.getX() % gridWidth ) );
    double endX   = clip.getX() + clip.getWidth();
    double startY = clip.getY() + ( gridHeight - ( clip.getY() % gridHeight ) );
    double endY   = clip.getY() + clip.getHeight();
    double y = startY;
    while ( startX < endX )
      while ( y < endY )
        g2.draw(new Rectangle2D.Double( startX - 0.5, y - 0.5, 1.0, 1.0 ));
        y += gridHeight;
      y = startY;
      startX += gridWidth;
  private boolean buildPolygon(Rectangle clip)
    if ( xPoints != null && yPoints != null )
      polygon = new GeneralPath(GeneralPath.WIND_NON_ZERO,xPoints.length);
    else
      return false;
    double x = xPoints[0] * gridWidth;
    double y = waveHeight;
    polygon.moveTo((float)xPoints[0], (float)yPoints[0]);
    for ( int index = 0; index < xPoints.length; index++ )
      x = xPoints[index] * gridWidth;
      y = waveHeight + ( yPoints[index] * gridHeight );
      if ( x > ( clip.getX() + clip.getWidth() ) ) break;
      if ( y < clip.getY() || y > ( clip.getY() + clip.getHeight() ) ) continue;
      if ( x < clip.getX() || x > ( clip.getX() + clip.getWidth()  ) ) continue;
      polygon.lineTo((float)x, (float)y);
    return true;
  private boolean drawLines(Graphics2D g2, Rectangle clip)
    if ( xPoints == null || yPoints == null ) return false;
    double x1 = xPoints[0] * gridWidth;
    double y1 = waveHeight;
    double x2, y2;
    boolean cont = false;
    for ( int index = 0; index < xPoints.length; index++ )
      x2 = xPoints[index] * gridWidth;
      y2 = waveHeight + ( yPoints[index] * gridHeight );
      if ( x1 > ( clip.getX() + clip.getWidth() ) )
        break;
      if ( x2 > ( clip.getX() + clip.getWidth() ) )
        break;
      if ( y2 < clip.getY() || y2 > ( clip.getY() + clip.getHeight() ) )
        cont = true;
      if ( x2 < clip.getX() || x2 > ( clip.getX() + clip.getWidth()  ) )
        cont = true;
      if ( ! cont ) g2.draw(new Line2D.Double(x1,y1,x2,y2));
      x1 = x2;
      y1 = y2;
      cont = false;
    return true;
  public void paintComponent(Graphics g)
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    if ( firstTime )
      initPanel();
      firstTime = false;
    // get clip bounds
    Rectangle clip = new Rectangle();
    clip = g2.getClipBounds(clip);
    // draw grid
    drawGrid(g2,clip);
    // draw waveform
    g2.setPaint(wave);
    g2.setStroke(SOLID);
    if ( buildPolygon(clip) ) g2.draw(polygon);
//    if ( polyOk ) g2.draw(polygon);
//    drawLines(g2,clip);
  }

I have added a standalone testcase for ease.
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
public class Scrolling {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(new JScrollPane(new DrawPanel()));
        f.setSize(400,300);
        f.setLocationRelativeTo(null);
        f.setVisible(true);
class DrawPanel extends JPanel {
    private GeneralPath polygon = new GeneralPath(GeneralPath.WIND_NON_ZERO,1000);
    private int[] coords;
    public DrawPanel() {
        setBackground(Color.white);
        buildPolygon();
    private void buildPolygon() {
     coords = new int[2000];
        Random r = new Random();
        int height = 80;
        int gridHeight = 10;
        int gridWidth = 10;
     int j = 0;       
        for (int i=0, dir=-1; i<1000; i++, dir=-dir) {
            coords[j++] = i * gridWidth;
            coords[j++] = height + dir*gridHeight*r.nextInt(2);
    private void drawPolygonClipped(Rectangle clip)
polygon = new GeneralPath(GeneralPath.WIND_NON_ZERO,1000);
       polygon.moveTo(0,80);
       for ( int i = 0; i < 2000; i++ )
      if ( coords[i] > ( clip.getX() + clip.getWidth() ) ) break;
      if ( coords[i+1] < clip.getY() || coords[i+1] > ( clip.getY() + clip.getHeight() ) ) continue;
      if ( coords[i] < clip.getX() || coords[i] > ( clip.getX() + clip.getWidth()  ) ) continue;
            polygon.lineTo(coords[i++],coords);
private void drawPolygon(Rectangle clip)
polygon = new GeneralPath(GeneralPath.WIND_NON_ZERO,1000);
     polygon.moveTo(0,80);
     for ( int i = 0; i < 2000; i++ )
          polygon.lineTo(coords[i++],coords[i]);
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
     Rectangle clip = new Rectangle();
     g.getClipBounds(clip);
     drawPolygonClipped(clip);
     //drawPolygon(clip);
g2.draw(polygon);
public Dimension getPreferredSize() {
return new Dimension(1500,500);

Similar Messages

  • Problem with flash on IE11 after using adobe cleaner

    Problem with flash on IE11 after using adobe cleaner to remove a trial version of photoshop because there was not any entry on add/remove applications in windows 8.1
    Its to frustrating to reinstall everything. I tried everything from your support page with no luck…

    Link for Download & Install & Setup & Activation problems may help
    -Online Chat http://www.adobe.com/support/download-install/supportinfo/

  • Problem with Adobe Premiere Elements 12 using Scary Halloween template

    I'm having a problem with Adobe Premiere Elements 12 using Scary Halloween template under Menu Theme.  My problem is the red line is default to Scenes.  I would like it to default to Play.  How can I do that? Is it a bug?
    Side Note:  Other template default to Play Movie
    Thanks

    jeffrey caban
    No bug. Just the way the .psd for the Scary Halloween template was put together.
    You are going to have to get into the .psd for the Scary Halloween template and rearrange the
    Layer Sets. Do you know how to do that? If not, I will give you very specific instructions on how to
    do that.
    You want the order of the Layer Sets to look like
    That is what worked for me just now to get the disc menu Preview to open to the main
    menu with the red highlight under Play.
    We will be watching for your reply.
    ATR

  • I have a problem with iphone4 I bought a used and unlocked iphone4 old apple id because the first owner dies please help me how to activate iphone4 I unlocked with icloud

    I have a problem with iphone4
    I bought a used and unlocked iphone4
    old apple id because the first owner dies
    please help me how to activate iphone4
    I unlocked with icloud

    fherly nur arief wrote:
    I unlocked with icloud
    If you had already removed the device from 'Find My iPhone' in iCloud, then you jus tneed to powercycle the device in order to activate it.
    Source: http://support.apple.com/kb/TS4515
    "After the device is removed from the previous owner’s account, turn the device off by pressing and holding the Sleep/Wake button located on the top-right side of the device. Then restart your device and proceed with device setup as you would normally."
    If it has not been removed, then the activation lock is still active.
    If the previous owner cannot remove the device from their account there is nothing you can do unless the place you purchased it from will give you a refund.
    Activation Lock: http://support.apple.com/kb/ht5818
    What if I purchase a device that is still linked to the previous owner's account?
    Contact the previous owner as soon as possible and ask them to erase the device and remove it from their account. For complete instructions, read how to remove a device from a previous owner's account.
    How do I check for Activation Lock before purchasing a used device?
    When purchasing an iPhone, iPad, or iPod touch from someone other than Apple or an authorized Apple reseller, it is up to you to ensure that the device has been erased and is no longer linked to the previous owner’s account.
    Follow each of these steps to make sure that you can use the device you purchase:
    Turn the device on and slide to unlock.If the passcode lock screen or the home screen appears, the device has not been erased. Ask the seller to completely erase the device by going to Settings > General > Reset > Erase All Content and Settings. Do not take ownership of any used iPhone, iPad, or iPod touch until it has been erased.
    Begin the device setup process.After choosing a language, choosing a country, and connecting to a network, the device will begin activation. If you are asked for the previous owner’s Apple ID and password, the device is still linked to their account. Hand the device back to the seller and ask them to enter their password. If the previous owner is not present, they can remove the device from their account by signing in to icloud.com/find. Do not take ownership of any used iPhone, iPad, or iPod touch until it has been removed from the previous owner’s account.
    You will know that a device is ready for you to use when you are asked to “Set up your iPhone", “Set up your iPad", or “Set up your iPod” during the device setup process.

  • I have the new iPad. Even with airplane mode on, my battery life is extremely limited. Is there a problem with the battery? I used to have the ipad2 and had no such problem.

    I have the new iPad. Even with airplane mode on, my battery life is extremely limited. Is there a problem with the battery? I used to have the ipad2 and had no such problem.

    What is your brightness setting & how many apps are open?
    The quickest way (and really the only way) to charge your iPad is with the included 10W USB Power Adapter. iPad will also charge, although more slowly, when attached to a computer with a high-power USB port (many recent Mac computers) or with an iPhone Power Adapter (5W). When attached to a computer via a standard USB port (most PCs or older Mac computers) iPad will charge very slowly (but iPad indicates not charging). Make sure your computer is on while charging iPad via USB. If iPad is connected to a computer that’s turned off or is in sleep or standby mode, the iPad battery will continue to drain.
    Apple recommends that once a month you let the iPad fully discharge & then recharge to 100%.
    How to Calibrate Your Mac, iPhone, or iPad Battery
    http://www.macblend.com/how-to-calibrate-your-mac-iphone-or-ipad-battery/
    At this link http://www.tomshardware.com/reviews/galaxy-tab-android-tablet,3014-11.html , tests show that the iPad 2 battery (25 watt-hours) will charge to 90% in 3 hours 1 minute. It will charge to 100% in 4 hours 2 minutes. The new iPad has a larger capacity battery (42 watt-hours), so using the 10W charger will obviously take longer. If you are using your iPad while charging, it will take even longer. It's best to turn your new iPad OFF and charge over night. Also look at The iPad's charging challenge explained http://www.macworld.com/article/1150356/ipadcharging.html
    Also, if you have a 3rd generation iPad, look at
    Apple: iPad Battery Nothing to Get Charged Up About
    http://allthingsd.com/20120327/apple-ipad-battery-nothing-to-get-charged-up-abou t/
    Apple Explains New iPad's Continued Charging Beyond 100% Battery Level
    http://www.macrumors.com/2012/03/27/apple-explains-new-ipads-continued-charging- beyond-100-battery-level/
    New iPad Takes Much Longer to Charge Than iPad 2
    http://www.iphonehacks.com/2012/03/new-ipad-takes-much-longer-to-charge-than-ipa d-2.html
    Apple Batteries - iPad http://www.apple.com/batteries/ipad.html
    Extend iPad Battery Life (Look at pjl123 comment)
    https://discussions.apple.com/thread/3921324?tstart=30
    New iPad Slow to Recharge, Barely Charges During Use
    http://www.pcworld.com/article/252326/new_ipad_slow_to_recharge_barely_charges_d uring_use.html
    Tips About Charging for New iPad 3
    http://goodscool-electronics.blogspot.com/2012/04/tips-about-charging-for-new-ip ad-3.html
    Prolong battery lifespan for iPad / iPad 2 / iPad 3: charging tips
    http://thehowto.wikidot.com/prolong-battery-lifespan-for-ipad
    In rare instances when using the Camera Connection Kit, you may notice that iPad does not charge after using the Camera Connection Kit. Disconnecting and reconnecting the iPad from the charger will resolve this issue.
     Cheers, Tom

  • We encountered a problem with some client machines that use Firefox version 24ESR and IE8. Ajax requests of aspx pages from Firefox are getting the following er

    I encountered a problem with some client machines that use Firefox version 24ESR and IE8.
    Ajax requests of aspx pages from Firefox are getting the following error from the iis server (iis version 7.5):
    Bad Request - Request Too Long
    HTTP Error 400. The size of the request headers is too long.
    From analyzing the request that was sent to the server, I saw that the request consist of only the viewstate of the aspx page.
    I tried to disable the viewstate for one page and the server got the request correctly.
    I do not encounter any issues on these laptops with postback requests from Firefox or when running the same application with IE8.

    Sometimes that means that the page address sent is loo long.
    Check the link address you are using.
    I can't help you further and will send for more help.

  • Problem with variables in formulas when using CrystalReportViewer

    Post Author: Aksu
    CA Forum: Formula
    Hi! I have a problem with variables in Crystal Reports formulas, when using CrystalDecisions.Windows.Forms.CrystalReportViewer class from VS2005-project. ReportViewer always gives error:*************Crystal Report Windows Forms ViewerThis field name is not known.Details: errorKindError in File C:\{dir&#93;}\{file}.rpt:Error in formula <mCustomerAttributes>.'Dim result As String'This field name is not known.Details: errorKind ************* Report without variables works fine with Viewer and in Crystal Reports Designer report with variables works also fine. I have tried with both "formula-syntaxes" - basic and crystal. But Viewer always gives error when trying to define new variable.I think the problem might be with CR -versions, because VS-project has formerly been designed to VS2003 and CR9 or 10. Now I'm using VS2005 and CR11. Though I have changed all references to new CrystalDecisions-asseblies (Ver.11.0.3300.0), when I debug the project and checkout the Viewers ReportSources FormatEngine Shows version CR9_2.... I have no idea where it gets this version...***************DEBUG-view when Viewer is created *******************CrystalReportViewer    |_        ReportSourceClassFactoryName ... , Version=11.0.3300.0 , ...    |_            ReportSource            |_                FormatEngine    {CrystalDecisions.CrystalReports.Engine.FormatEngine}                        |_                        ClientVersionHeader    {CrystalDecisions.Shared.ReportServiceVersionHeader}                            |_                            |    version = 920     (int)                            |_                                Static members                                            |_                                        VER_CR9    = 920    (int)**************************************** Could anyone have any answers or tips for this problem? I'd really appreciate it... ---Aksu

    Has anyone been able to answer this question?
    I am having the same problem:
    I am designing a report in Crystal Reports XI Developer that contains parameters, which are passed to a stored procedure and are also used within formulas ( in Crystal Syntax ie. {?FORMAT_ID} ) in the report itself.
    I can run the report successfully in CRXI Developer.  The formulas use the correct values from the parameters entered during execution and everything looks good.
    I then deploy the report to Business Objects Enterprise XI.  I do all of the things necessary to manage the report including setting up the proper database connection information and default parameter values.
    When I run the report using the Crystal Report Viewer, I get the following error message:
    Error in File Forecasting.rpt:
    Error in formula <Report Format>.
    'if (not isNull({?FORMAT_ID} ) ) then
    This field name is not known.
    Details: errorKind
    This happens when I press the "Preview" button in the Manage Object dialog from Crystal or when I run the report using InfoView.
    I have changed the formulas and it doesn't seem to matter what the specific content of the formula is; other than the existence of a parameter reference in the formula.  If I comment out the parameter and replace it with a hard-coded value, it gets through the formula fine.
    Does Business Objects Enterprise XI support crystal reports with parameter references in the formulas?
    Thanks,
    Tim H.
    Edited by: Tim Haley on Nov 25, 2008 11:11 PM
    Edited by: Tim Haley on Nov 25, 2008 11:12 PM

  • Problem with Chroma/Lume Keys while using Drop Shadows

    I have been using the box now for almost two years and I still am getting problems with green/blue/purples artifacts showing up after a chroma/luma key has been applied with a drop shadow. The artifacts do not show up under a preview but only when the sequence has been rendered. As soon as I take the drop shadow off, the artifacts go away. This is happening with both still graphics with or without Alphas and green/blue screen video. Please help, am I just missing something or is there a work around that I could be using.
    Thanks,
    Alex

    c'mon, Bogie - tell us what you really feel - don't hold back... < </div>
    Oh, Patrick, buddy, I am so totally torqued out of shape today. Don't get me started. Too late. FCP's insane render handler is dropping my files, seemingly at random. The nests, Motion and LiveType material are not rendering in the correct order which makes the effects all wonky.
    I add drop shadows in the last stage and FCP just ain't holding it together. I get glitches. And then I keep getting these Media Offline notices because FCP cant' track the render files that are actually in use in the upstream nests.
    I'll certainly admit a likely a user error. I just don't know what it could be. I've somehow told FCP to destroy its children.
    bogiesan

  • Problems with symbol characters in WIKI using plaintext authentication

    Hi!
    I have a Lion Server with Wiki service enabled, and using plaintext to authenticate against third provider LDAP server (Oracle/SUN ldap server).
    The authentication fails if the password has a at least & character inside (I do not test another symbols).
    If the password has just letters and number it does not fails.
    Any Idea how to fix it?
    It is a new "feature" in the Wiki service???
    Thanks in advance
    H.

    Same problem when I use Chinese.
    The only thing we can do now is to wait for an update! Which is hopefully make the Playbook worth something!

  • Problem with too small page size using Java 2D Printing API.

    Hello,
    I have problem with resolution of printer using Java 2D Printing API. Despite my printer has 600 x 600 DPI, inside java.awt.print.Printable.print(Graphics, PageFormat, int) I receive page format with 600 x 840 page size.
    I have tried to set resolution using javax.print.attribute.PrintRequestAttributeSetand javax.print.attribute.standard.PrinterResolution, but with no result.
    Can anybody solve this problem?
    Regards,
    Karl.

    600 x 840 is a Point value; Point is defined as 1/72nd of an inch. Printers do have much higher DPI than this, but I believe that this DPI has to do with richness of the printed image, not an actual ability to color with that level of resolution. You might want to try calling zoom on your Graphics2D object. Otherwise, I don't know what else you can try.

  • Sliding Window Table Partitioning Problems with RANGE RIGHT, SPLIT, MERGE using Multiple File Groups

    There is misleading information in two system views (sys.data_spaces & sys.destination_data_spaces) about the physical location of data after a partitioning MERGE and before an INDEX REBUILD operation on a partitioned table. In SQL Server 2012 SP1 CU6,
    the script below (SQLCMD mode, set DataDrive  & LogDrive variables  for the runtime environment) will create a test database with file groups and files to support a partitioned table. The partition function and scheme spread the test data across
    4 files groups, an empty partition, file group and file are maintained at the start and end of the range. A problem occurs after the SWITCH and MERGE RANGE operations, the views sys.data_spaces & sys.destination_data_spaces show the logical, not the physical,
    location of data.
    --=================================================================================
    -- PartitionLabSetup_RangeRight.sql
    -- 001. Create test database
    -- 002. Add file groups and files
    -- 003. Create partition function and schema
    -- 004. Create and populate a test table
    --=================================================================================
    USE [master]
    GO
    -- 001 - Create Test Database
    :SETVAR DataDrive "D:\SQL\Data\"
    :SETVAR LogDrive "D:\SQL\Logs\"
    :SETVAR DatabaseName "workspace"
    :SETVAR TableName "TestTable"
    -- Drop if exists and create Database
    IF DATABASEPROPERTYEX(N'$(databasename)','Status') IS NOT NULL
    BEGIN
    ALTER DATABASE $(DatabaseName) SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    DROP DATABASE $(DatabaseName)
    END
    CREATE DATABASE $(DatabaseName)
    ON
    ( NAME = $(DatabaseName)_data,
    FILENAME = N'$(DataDrive)$(DatabaseName)_data.mdf',
    SIZE = 10,
    MAXSIZE = 500,
    FILEGROWTH = 5 )
    LOG ON
    ( NAME = $(DatabaseName)_log,
    FILENAME = N'$(LogDrive)$(DatabaseName).ldf',
    SIZE = 5MB,
    MAXSIZE = 5000MB,
    FILEGROWTH = 5MB ) ;
    GO
    -- 002. Add file groups and files
    --:SETVAR DatabaseName "workspace"
    --:SETVAR TableName "TestTable"
    --:SETVAR DataDrive "D:\SQL\Data\"
    --:SETVAR LogDrive "D:\SQL\Logs\"
    DECLARE @nSQL NVARCHAR(2000) ;
    DECLARE @x INT = 1;
    WHILE @x <= 6
    BEGIN
    SELECT @nSQL =
    'ALTER DATABASE $(DatabaseName)
    ADD FILEGROUP $(TableName)_fg' + RTRIM(CAST(@x AS CHAR(5))) + ';
    ALTER DATABASE $(DatabaseName)
    ADD FILE
    NAME= ''$(TableName)_f' + CAST(@x AS CHAR(5)) + ''',
    FILENAME = ''$(DataDrive)\$(TableName)_f' + RTRIM(CAST(@x AS CHAR(5))) + '.ndf''
    TO FILEGROUP $(TableName)_fg' + RTRIM(CAST(@x AS CHAR(5))) + ';'
    EXEC sp_executeSQL @nSQL;
    SET @x = @x + 1;
    END
    -- 003. Create partition function and schema
    --:SETVAR TableName "TestTable"
    --:SETVAR DatabaseName "workspace"
    USE $(DatabaseName);
    CREATE PARTITION FUNCTION $(TableName)_func (int)
    AS RANGE RIGHT FOR VALUES
    0,
    15,
    30,
    45,
    60
    CREATE PARTITION SCHEME $(TableName)_scheme
    AS
    PARTITION $(TableName)_func
    TO
    $(TableName)_fg1,
    $(TableName)_fg2,
    $(TableName)_fg3,
    $(TableName)_fg4,
    $(TableName)_fg5,
    $(TableName)_fg6
    -- Create TestTable
    --:SETVAR TableName "TestTable"
    --:SETVAR BackupDrive "D:\SQL\Backups\"
    --:SETVAR DatabaseName "workspace"
    CREATE TABLE [dbo].$(TableName)(
    [Partition_PK] [int] NOT NULL,
    [GUID_PK] [uniqueidentifier] NOT NULL,
    [CreateDate] [datetime] NULL,
    [CreateServer] [nvarchar](50) NULL,
    [RandomNbr] [int] NULL,
    CONSTRAINT [PK_$(TableName)] PRIMARY KEY CLUSTERED
    [Partition_PK] ASC,
    [GUID_PK] ASC
    ) ON $(TableName)_scheme(Partition_PK)
    ) ON $(TableName)_scheme(Partition_PK)
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_GUID_PK] DEFAULT (newid()) FOR [GUID_PK]
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_CreateDate] DEFAULT (getdate()) FOR [CreateDate]
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_CreateServer] DEFAULT (@@servername) FOR [CreateServer]
    -- 004. Create and populate a test table
    -- Load TestTable Data - Seconds 0-59 are used as the Partitoning Key
    --:SETVAR TableName "TestTable"
    SET NOCOUNT ON;
    DECLARE @Now DATETIME = GETDATE()
    WHILE @Now > DATEADD(minute,-1,GETDATE())
    BEGIN
    INSERT INTO [dbo].$(TableName)
    ([Partition_PK]
    ,[RandomNbr])
    VALUES
    DATEPART(second,GETDATE())
    ,ROUND((RAND() * 100),0)
    END
    -- Confirm table partitioning - http://lextonr.wordpress.com/tag/sys-destination_data_spaces/
    SELECT
    N'DatabaseName' = DB_NAME()
    , N'SchemaName' = s.name
    , N'TableName' = o.name
    , N'IndexName' = i.name
    , N'IndexType' = i.type_desc
    , N'PartitionScheme' = ps.name
    , N'DataSpaceName' = ds.name
    , N'DataSpaceType' = ds.type_desc
    , N'PartitionFunction' = pf.name
    , N'PartitionNumber' = dds.destination_id
    , N'BoundaryValue' = prv.value
    , N'RightBoundary' = pf.boundary_value_on_right
    , N'PartitionFileGroup' = ds2.name
    , N'RowsOfData' = p.[rows]
    FROM
    sys.objects AS o
    INNER JOIN sys.schemas AS s
    ON o.[schema_id] = s.[schema_id]
    INNER JOIN sys.partitions AS p
    ON o.[object_id] = p.[object_id]
    INNER JOIN sys.indexes AS i
    ON p.[object_id] = i.[object_id]
    AND p.index_id = i.index_id
    INNER JOIN sys.data_spaces AS ds
    ON i.data_space_id = ds.data_space_id
    INNER JOIN sys.partition_schemes AS ps
    ON ds.data_space_id = ps.data_space_id
    INNER JOIN sys.partition_functions AS pf
    ON ps.function_id = pf.function_id
    LEFT OUTER JOIN sys.partition_range_values AS prv
    ON pf.function_id = prv.function_id
    AND p.partition_number = prv.boundary_id
    LEFT OUTER JOIN sys.destination_data_spaces AS dds
    ON ps.data_space_id = dds.partition_scheme_id
    AND p.partition_number = dds.destination_id
    LEFT OUTER JOIN sys.data_spaces AS ds2
    ON dds.data_space_id = ds2.data_space_id
    ORDER BY
    DatabaseName
    ,SchemaName
    ,TableName
    ,IndexName
    ,PartitionNumber
    --=================================================================================
    -- SECTION 2 - SWITCH OUT
    -- 001 - Create TestTableOut
    -- 002 - Switch out partition in range 0-14
    -- 003 - Merge range 0 -29
    -- 001. TestTableOut
    :SETVAR TableName "TestTable"
    IF OBJECT_ID('dbo.$(TableName)Out') IS NOT NULL
    DROP TABLE [dbo].[$(TableName)Out]
    CREATE TABLE [dbo].[$(TableName)Out](
    [Partition_PK] [int] NOT NULL,
    [GUID_PK] [uniqueidentifier] NOT NULL,
    [CreateDate] [datetime] NULL,
    [CreateServer] [nvarchar](50) NULL,
    [RandomNbr] [int] NULL,
    CONSTRAINT [PK_$(TableName)Out] PRIMARY KEY CLUSTERED
    [Partition_PK] ASC,
    [GUID_PK] ASC
    ) ON $(TableName)_fg2;
    GO
    -- 002 - Switch out partition in range 0-14
    --:SETVAR TableName "TestTable"
    ALTER TABLE dbo.$(TableName)
    SWITCH PARTITION 2 TO dbo.$(TableName)Out;
    -- 003 - Merge range 0 - 29
    --:SETVAR TableName "TestTable"
    ALTER PARTITION FUNCTION $(TableName)_func()
    MERGE RANGE (15);
    -- Confirm table partitioning
    -- Original source of this query - http://lextonr.wordpress.com/tag/sys-destination_data_spaces/
    SELECT
    N'DatabaseName' = DB_NAME()
    , N'SchemaName' = s.name
    , N'TableName' = o.name
    , N'IndexName' = i.name
    , N'IndexType' = i.type_desc
    , N'PartitionScheme' = ps.name
    , N'DataSpaceName' = ds.name
    , N'DataSpaceType' = ds.type_desc
    , N'PartitionFunction' = pf.name
    , N'PartitionNumber' = dds.destination_id
    , N'BoundaryValue' = prv.value
    , N'RightBoundary' = pf.boundary_value_on_right
    , N'PartitionFileGroup' = ds2.name
    , N'RowsOfData' = p.[rows]
    FROM
    sys.objects AS o
    INNER JOIN sys.schemas AS s
    ON o.[schema_id] = s.[schema_id]
    INNER JOIN sys.partitions AS p
    ON o.[object_id] = p.[object_id]
    INNER JOIN sys.indexes AS i
    ON p.[object_id] = i.[object_id]
    AND p.index_id = i.index_id
    INNER JOIN sys.data_spaces AS ds
    ON i.data_space_id = ds.data_space_id
    INNER JOIN sys.partition_schemes AS ps
    ON ds.data_space_id = ps.data_space_id
    INNER JOIN sys.partition_functions AS pf
    ON ps.function_id = pf.function_id
    LEFT OUTER JOIN sys.partition_range_values AS prv
    ON pf.function_id = prv.function_id
    AND p.partition_number = prv.boundary_id
    LEFT OUTER JOIN sys.destination_data_spaces AS dds
    ON ps.data_space_id = dds.partition_scheme_id
    AND p.partition_number = dds.destination_id
    LEFT OUTER JOIN sys.data_spaces AS ds2
    ON dds.data_space_id = ds2.data_space_id
    ORDER BY
    DatabaseName
    ,SchemaName
    ,TableName
    ,IndexName
    ,PartitionNumber  
    The table below shows the results of the ‘Confirm Table Partitioning’ query, before and after the MERGE.
    The T-SQL code below illustrates the problem.
    -- PartitionLab_RangeRight
    USE workspace;
    DROP TABLE dbo.TestTableOut;
    USE master;
    ALTER DATABASE workspace
    REMOVE FILE TestTable_f3 ;
    -- ERROR
    --Msg 5042, Level 16, State 1, Line 1
    --The file 'TestTable_f3 ' cannot be removed because it is not empty.
    ALTER DATABASE workspace
    REMOVE FILE TestTable_f2 ;
    -- Works surprisingly!!
    use workspace;
    ALTER INDEX [PK_TestTable] ON [dbo].[TestTable] REBUILD PARTITION = 2;
    --Msg 622, Level 16, State 3, Line 2
    --The filegroup "TestTable_fg2" has no files assigned to it. Tables, indexes, text columns, ntext columns, and image columns cannot be populated on this filegroup until a file is added.
    --The statement has been terminated.
    If you run ALTER INDEX REBUILD before trying to remove files from File Group 3, it works. Rerun the database setup script then the code below.
    -- RANGE RIGHT
    -- Rerun PartitionLabSetup_RangeRight.sql before the code below
    USE workspace;
    DROP TABLE dbo.TestTableOut;
    ALTER INDEX [PK_TestTable] ON [dbo].[TestTable] REBUILD PARTITION = 2;
    USE master;
    ALTER DATABASE workspace
    REMOVE FILE TestTable_f3;
    -- Works as expected!!
    The file in File Group 2 appears to contain data but it can be dropped. Although the system views are reporting the data in File Group 2, it still physically resides in File Group 3 and isn’t moved until the index is rebuilt. The RANGE RIGHT function means
    the left file group (File Group 2) is retained when splitting ranges.
    RANGE LEFT would have retained the data in File Group 3 where it already resided, no INDEX REBUILD is necessary to effectively complete the MERGE operation. The script below implements the same partitioning strategy (data distribution between partitions)
    on the test table but uses different boundary definitions and RANGE LEFT.
    --=================================================================================
    -- PartitionLabSetup_RangeLeft.sql
    -- 001. Create test database
    -- 002. Add file groups and files
    -- 003. Create partition function and schema
    -- 004. Create and populate a test table
    --=================================================================================
    USE [master]
    GO
    -- 001 - Create Test Database
    :SETVAR DataDrive "D:\SQL\Data\"
    :SETVAR LogDrive "D:\SQL\Logs\"
    :SETVAR DatabaseName "workspace"
    :SETVAR TableName "TestTable"
    -- Drop if exists and create Database
    IF DATABASEPROPERTYEX(N'$(databasename)','Status') IS NOT NULL
    BEGIN
    ALTER DATABASE $(DatabaseName) SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    DROP DATABASE $(DatabaseName)
    END
    CREATE DATABASE $(DatabaseName)
    ON
    ( NAME = $(DatabaseName)_data,
    FILENAME = N'$(DataDrive)$(DatabaseName)_data.mdf',
    SIZE = 10,
    MAXSIZE = 500,
    FILEGROWTH = 5 )
    LOG ON
    ( NAME = $(DatabaseName)_log,
    FILENAME = N'$(LogDrive)$(DatabaseName).ldf',
    SIZE = 5MB,
    MAXSIZE = 5000MB,
    FILEGROWTH = 5MB ) ;
    GO
    -- 002. Add file groups and files
    --:SETVAR DatabaseName "workspace"
    --:SETVAR TableName "TestTable"
    --:SETVAR DataDrive "D:\SQL\Data\"
    --:SETVAR LogDrive "D:\SQL\Logs\"
    DECLARE @nSQL NVARCHAR(2000) ;
    DECLARE @x INT = 1;
    WHILE @x <= 6
    BEGIN
    SELECT @nSQL =
    'ALTER DATABASE $(DatabaseName)
    ADD FILEGROUP $(TableName)_fg' + RTRIM(CAST(@x AS CHAR(5))) + ';
    ALTER DATABASE $(DatabaseName)
    ADD FILE
    NAME= ''$(TableName)_f' + CAST(@x AS CHAR(5)) + ''',
    FILENAME = ''$(DataDrive)\$(TableName)_f' + RTRIM(CAST(@x AS CHAR(5))) + '.ndf''
    TO FILEGROUP $(TableName)_fg' + RTRIM(CAST(@x AS CHAR(5))) + ';'
    EXEC sp_executeSQL @nSQL;
    SET @x = @x + 1;
    END
    -- 003. Create partition function and schema
    --:SETVAR TableName "TestTable"
    --:SETVAR DatabaseName "workspace"
    USE $(DatabaseName);
    CREATE PARTITION FUNCTION $(TableName)_func (int)
    AS RANGE LEFT FOR VALUES
    -1,
    14,
    29,
    44,
    59
    CREATE PARTITION SCHEME $(TableName)_scheme
    AS
    PARTITION $(TableName)_func
    TO
    $(TableName)_fg1,
    $(TableName)_fg2,
    $(TableName)_fg3,
    $(TableName)_fg4,
    $(TableName)_fg5,
    $(TableName)_fg6
    -- Create TestTable
    --:SETVAR TableName "TestTable"
    --:SETVAR BackupDrive "D:\SQL\Backups\"
    --:SETVAR DatabaseName "workspace"
    CREATE TABLE [dbo].$(TableName)(
    [Partition_PK] [int] NOT NULL,
    [GUID_PK] [uniqueidentifier] NOT NULL,
    [CreateDate] [datetime] NULL,
    [CreateServer] [nvarchar](50) NULL,
    [RandomNbr] [int] NULL,
    CONSTRAINT [PK_$(TableName)] PRIMARY KEY CLUSTERED
    [Partition_PK] ASC,
    [GUID_PK] ASC
    ) ON $(TableName)_scheme(Partition_PK)
    ) ON $(TableName)_scheme(Partition_PK)
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_GUID_PK] DEFAULT (newid()) FOR [GUID_PK]
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_CreateDate] DEFAULT (getdate()) FOR [CreateDate]
    ALTER TABLE [dbo].$(TableName) ADD CONSTRAINT [DF_$(TableName)_CreateServer] DEFAULT (@@servername) FOR [CreateServer]
    -- 004. Create and populate a test table
    -- Load TestTable Data - Seconds 0-59 are used as the Partitoning Key
    --:SETVAR TableName "TestTable"
    SET NOCOUNT ON;
    DECLARE @Now DATETIME = GETDATE()
    WHILE @Now > DATEADD(minute,-1,GETDATE())
    BEGIN
    INSERT INTO [dbo].$(TableName)
    ([Partition_PK]
    ,[RandomNbr])
    VALUES
    DATEPART(second,GETDATE())
    ,ROUND((RAND() * 100),0)
    END
    -- Confirm table partitioning - http://lextonr.wordpress.com/tag/sys-destination_data_spaces/
    SELECT
    N'DatabaseName' = DB_NAME()
    , N'SchemaName' = s.name
    , N'TableName' = o.name
    , N'IndexName' = i.name
    , N'IndexType' = i.type_desc
    , N'PartitionScheme' = ps.name
    , N'DataSpaceName' = ds.name
    , N'DataSpaceType' = ds.type_desc
    , N'PartitionFunction' = pf.name
    , N'PartitionNumber' = dds.destination_id
    , N'BoundaryValue' = prv.value
    , N'RightBoundary' = pf.boundary_value_on_right
    , N'PartitionFileGroup' = ds2.name
    , N'RowsOfData' = p.[rows]
    FROM
    sys.objects AS o
    INNER JOIN sys.schemas AS s
    ON o.[schema_id] = s.[schema_id]
    INNER JOIN sys.partitions AS p
    ON o.[object_id] = p.[object_id]
    INNER JOIN sys.indexes AS i
    ON p.[object_id] = i.[object_id]
    AND p.index_id = i.index_id
    INNER JOIN sys.data_spaces AS ds
    ON i.data_space_id = ds.data_space_id
    INNER JOIN sys.partition_schemes AS ps
    ON ds.data_space_id = ps.data_space_id
    INNER JOIN sys.partition_functions AS pf
    ON ps.function_id = pf.function_id
    LEFT OUTER JOIN sys.partition_range_values AS prv
    ON pf.function_id = prv.function_id
    AND p.partition_number = prv.boundary_id
    LEFT OUTER JOIN sys.destination_data_spaces AS dds
    ON ps.data_space_id = dds.partition_scheme_id
    AND p.partition_number = dds.destination_id
    LEFT OUTER JOIN sys.data_spaces AS ds2
    ON dds.data_space_id = ds2.data_space_id
    ORDER BY
    DatabaseName
    ,SchemaName
    ,TableName
    ,IndexName
    ,PartitionNumber
    --=================================================================================
    -- SECTION 2 - SWITCH OUT
    -- 001 - Create TestTableOut
    -- 002 - Switch out partition in range 0-14
    -- 003 - Merge range 0 -29
    -- 001. TestTableOut
    :SETVAR TableName "TestTable"
    IF OBJECT_ID('dbo.$(TableName)Out') IS NOT NULL
    DROP TABLE [dbo].[$(TableName)Out]
    CREATE TABLE [dbo].[$(TableName)Out](
    [Partition_PK] [int] NOT NULL,
    [GUID_PK] [uniqueidentifier] NOT NULL,
    [CreateDate] [datetime] NULL,
    [CreateServer] [nvarchar](50) NULL,
    [RandomNbr] [int] NULL,
    CONSTRAINT [PK_$(TableName)Out] PRIMARY KEY CLUSTERED
    [Partition_PK] ASC,
    [GUID_PK] ASC
    ) ON $(TableName)_fg2;
    GO
    -- 002 - Switch out partition in range 0-14
    --:SETVAR TableName "TestTable"
    ALTER TABLE dbo.$(TableName)
    SWITCH PARTITION 2 TO dbo.$(TableName)Out;
    -- 003 - Merge range 0 - 29
    :SETVAR TableName "TestTable"
    ALTER PARTITION FUNCTION $(TableName)_func()
    MERGE RANGE (14);
    -- Confirm table partitioning
    -- Original source of this query - http://lextonr.wordpress.com/tag/sys-destination_data_spaces/
    SELECT
    N'DatabaseName' = DB_NAME()
    , N'SchemaName' = s.name
    , N'TableName' = o.name
    , N'IndexName' = i.name
    , N'IndexType' = i.type_desc
    , N'PartitionScheme' = ps.name
    , N'DataSpaceName' = ds.name
    , N'DataSpaceType' = ds.type_desc
    , N'PartitionFunction' = pf.name
    , N'PartitionNumber' = dds.destination_id
    , N'BoundaryValue' = prv.value
    , N'RightBoundary' = pf.boundary_value_on_right
    , N'PartitionFileGroup' = ds2.name
    , N'RowsOfData' = p.[rows]
    FROM
    sys.objects AS o
    INNER JOIN sys.schemas AS s
    ON o.[schema_id] = s.[schema_id]
    INNER JOIN sys.partitions AS p
    ON o.[object_id] = p.[object_id]
    INNER JOIN sys.indexes AS i
    ON p.[object_id] = i.[object_id]
    AND p.index_id = i.index_id
    INNER JOIN sys.data_spaces AS ds
    ON i.data_space_id = ds.data_space_id
    INNER JOIN sys.partition_schemes AS ps
    ON ds.data_space_id = ps.data_space_id
    INNER JOIN sys.partition_functions AS pf
    ON ps.function_id = pf.function_id
    LEFT OUTER JOIN sys.partition_range_values AS prv
    ON pf.function_id = prv.function_id
    AND p.partition_number = prv.boundary_id
    LEFT OUTER JOIN sys.destination_data_spaces AS dds
    ON ps.data_space_id = dds.partition_scheme_id
    AND p.partition_number = dds.destination_id
    LEFT OUTER JOIN sys.data_spaces AS ds2
    ON dds.data_space_id = ds2.data_space_id
    ORDER BY
    DatabaseName
    ,SchemaName
    ,TableName
    ,IndexName
    ,PartitionNumber
    The table below shows the results of the ‘Confirm Table Partitioning’ query, before and after the MERGE.
    The data in the File and File Group to be dropped (File Group 2) has already been switched out; File Group 3 contains the data so no index rebuild is needed to move data and complete the MERGE.
    RANGE RIGHT would not be a problem in a ‘Sliding Window’ if the same file group is used for all partitions, when they are created and dropped it introduces a dependency on full index rebuilds. Larger tables are typically partitioned and a full index rebuild
    might be an expensive operation. I’m not sure how a RANGE RIGHT partitioning strategy could be implemented, with an ascending partitioning key, using multiple file groups without having to move data. Using a single file group (multiple files) for all partitions
    within a table would avoid physically moving data between file groups; no index rebuild would be necessary to complete a MERGE and system views would accurately reflect the physical location of data. 
    If a RANGE RIGHT partition function is used, the data is physically in the wrong file group after the MERGE assuming a typical ascending partitioning key, and the 'Data Spaces' system views might be misleading. Thanks to Manuj and Chris for a lot of help
    investigating this.
    NOTE 10/03/2014 - The solution
    The solution is so easy it's embarrassing, I was using the wrong boundary points for the MERGE (both RANGE LEFT & RANGE RIGHT) to get rid of historic data.
    -- Wrong Boundary Point Range Right
    --ALTER PARTITION FUNCTION $(TableName)_func()
    --MERGE RANGE (15);
    -- Wrong Boundary Point Range Left
    --ALTER PARTITION FUNCTION $(TableName)_func()
    --MERGE RANGE (14);
    -- Correct Boundary Pounts for MERGE
    ALTER PARTITION FUNCTION $(TableName)_func()
    MERGE RANGE (0); -- or -1 for RANGE LEFT
    The empty, switched out partition (on File Group 2) is then MERGED with the empty partition maintained at the start of the range and no data movement is necessary. I retract the suggestion that a problem exists with RANGE RIGHT Sliding Windows using multiple
    file groups and apologize :-)

    Hi Paul Brewer,
    Thanks for your post and glad to hear that the issue is resolved. It is kind of you post a reply to share your solution. That way, other community members could benefit from your sharing.
    Regards.
    Sofiya Li
    Sofiya Li
    TechNet Community Support

  • Any problem with a single MySQL database used on more than one site?

    I have a set of multiple sites hosted separately I'm working on. I'd like to set up a PHP/MySQL database on one site, and be able to pull data from it for completely separate sites. Seems like it shouldn't be a problem. Are there any problems with doing this I need to be aware of?

    I've set up databases on three different hosts, and in all cases I could access the databases from outside the domain of the site itslef.  GoDaddy is one of them, they used to restrict it, but now they give you the option when setting up a new database on your account.

  • Problem with Bulk printing of invoices using VF31.

    Hi,
    I tried to give bulk print of invoices using VF31, for around 200+ copies. Printing was going on but suddenly stopped after 50 copies get printed.
    Situation is the same even after i retry it.
    Can someone advice on the reason please.
    Thanks.
    Best regards,
    Srikrishhna13

    Issue identified and there was a problem with Network.

  • I've a problem with QuickTime controlbar when I use transparent wmode

    Hello All,
    I've a problem with QuickTime controlbar. When I use this code :
    <object height="592" width="690" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B">
    <param value="http://streamer.podcast.ulg.ac.be/reflexions/scienceensamusant/doccafe/D ocHorlogesBis.mov" name="src">
    <param value="true" name="autoplay">
    <param value="true" name="controller">
    <param value="true" name="kioskmode">
    <param value="true" name="loop">
    <param value="video/quicktime" name="type">
    <param value="transparent" name="wmode">
    <embed height="592" width="690" type="video/quicktime" loop="true" kioskmode="true" controller="true" autoplay="true" pluginspage="http://www.apple.com/quicktime/download/" src="http://streamer.podcast.ulg.ac.be/reflexions/scienceensamusant/doccafe/Doc HorlogesBis.mov">
    </object>
    with transparent wmode, the controlbar don't print correcty on IE7/IE8.
    If I use this code without wmode='transparent', It work but my css menu doesn't work.
    Anybody can help me ? Thank in advance.
    JP

    Hello,
    The suggestion made by Golubkov is correct. Make sure that you have configured the CAN objects to correspond to the Ports- for instance, Port1 to CAN0 and Port 2 to CAN1.
    If this dosen't fix the problem, let us know what the error message clearly states ( can be found out by clicking on the details tab).

  • Problems with my yahoo email account using Firefox

    I am using Firefox 14.0.1 and I have problems with my yahoo email account. I send an email, the receiver got a good version of my email, but when I see the same email into my sent box I see a differente text. When I use any other Internet browser, I can see a good version of my original email into the sent box.
    Why???

    Hi,
    Please try a '''Ctrl + F5''' refresh. This helps to bring in the page contents afresh. You can also consider the [https://support.mozilla.org/en-US/kb/reset-firefox-easily-fix-most-problems Reset Firefox] feature via '''Help''' ('''Alt''' + '''H''') > '''Troubleshooting Information'''.
    (To revert to the previous profile, close the new profile, start Firefox and choose the '''*.default''' profile. While the [https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles Profile Manager] is open, you can also delete the newly reset profile (the one containing random numbers)).
    [https://support.mozilla.org/en-US/kb/Managing-profiles Managing profiles]
    [https://support.mozilla.org/en-US/kb/Profiles?s=profile&r=2&e=sph&as=s Profiles Howto]
    If you have security software (antivirus, firewall etc.) installed, you can try deleting all existing instances of Firefox and related files in all the different configuration areas/modules of the security software. Instead create new allow/trusted rules for Firefox + its related processes. Even otherwise the security software may also ask again when Firefox is started and you can try to allow/trust at that time. Please see [https://support.mozilla.org/en-US/kb/Firewalls this].
    [http://kb.mozillazine.org/Firewalls AV/Firewalls Configuration]

Maybe you are looking for

  • Error while accessing Query using Query Analyzer

    dear experts... while accesiing the query using query analayzer... we are getting below error... What has happened? URL http://xxx.xxx.xxx.xx:XXXX/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2f

  • ICloud log in away from home

    Hi If I am away from home and my iPad is stolen and I want to log into iCloud to block data etc on the stolen iPad is it possible to log in on a computer that does not have iCloud? i.e. internet cafe etc etc Maybe this sounds a daft question - sorry.

  • 25 days and counting, a disgrace!

    Hi everyone, let me share with you a little timeline. Day 1, April 14th, our broadband and phoneline suddenly stop working. I hear from a neighbour that his is down too, so we both call it in. Will be sorted in 3 days we're told. Day 3, April 16th, I

  • T/Code to find what portal is connected?

    Dear Experts, is there any t/code where I can get all the information related to the portal that is connected to the BI Server? I was under the impression RZ10 would help but it had all sorts of info that I could not understand.

  • Installing Bluetooth into dual G5 tower

    I know this question's been posted before, but I thought I'd check to see if anyone's found a solution... I bought my dual 1.8 G5 tower 2 years ago with the Airport Extreme, but WITHOUT the Bluetooth. Of course, now I want it. I'm interested in the i