⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wizarddialog.java

📁 iReport-0.4.1-src是iReport的源代码,iReport是一个开源的报表项目,可以生成PDF等格式报表
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    jButtonNext.setEnabled(true);
                }
                else
                    jButtonNext.setEnabled(false);
                
                jButtonPrev.setEnabled(false);
               break; 
           case 2:                    
                // Read fields.... 
                if (oldStep < step)
                {
                    // We must retrive fields...
                    jButtonNext.setEnabled(false);
                    t = new Thread(this);
                    t.start();
                    return;
                }
                setViewedPanel(2);
                
                if (  ((javax.swing.DefaultListModel)jList2.getModel()).getSize() == 0 )
                    jButtonNext.setEnabled(false);
                else
                    jButtonNext.setEnabled(true);
                
                jButtonPrev.setEnabled(true);
               break; 
           case 3:    
                if (oldStep < step)
                {
                    jComboBox1.removeAllItems();
                    jComboBox2.removeAllItems();
                    jComboBox2.setEnabled(false);
                    jLabelG2.setEnabled(false);
                    jComboBox3.removeAllItems();
                    jComboBox3.setEnabled(false);
                    jLabelG3.setEnabled(false);
                    jComboBox4.removeAllItems();
                    jComboBox4.setEnabled(false);
                    jLabelG4.setEnabled(false);
                    
                    javax.swing.DefaultListModel dlm = (javax.swing.DefaultListModel)jList2.getModel();
                     jComboBox1.addItem("");
                    for (int i=0; i<dlm.getSize(); ++i)
                    {                       
                        jComboBox1.addItem( dlm.getElementAt(i));
                    }
                }
                setViewedPanel(3);
               break; 
           case 4:     
               
               jButtonNext.setEnabled( jList3.getSelectedIndex()>=0 );
                setViewedPanel(4);
               break; 
           case 5:                
                jButtonNext.setEnabled( false );
                jButtonCancel.setText("Finish");
                setViewedPanel(5);
               break; 
        }
        
        wzStep = step;
    }
    
    public void setViewedPanel(int panel)
    {
        this.jPanelRoot.removeAll();
        java.awt.Font f = new java.awt.Font( jLabelStep1.getFont().getName(), java.awt.Font.PLAIN, 11);
        java.awt.Font f2 = new java.awt.Font( jLabelStep1.getFont().getName(), java.awt.Font.BOLD, 11);
        this.jLabelStep1.setFont(f);
        this.jLabelStep2.setFont(f);
        this.jLabelStep3.setFont(f);
        this.jLabelStep4.setFont(f);
        this.jLabelStep5.setFont(f);
        
        switch (panel)
        {
           case 1:
                this.jPanelRoot.add(jPanelStep1);
                this.jLabelStep1.setFont(f2);
                break;
           case 2:
                
               
                this.jPanelRoot.add(jPanelStep2);
                this.jLabelStep2.setFont(f2);
                break;
           case 3:
                this.jPanelRoot.add(jPanelStep3);
                this.jLabelStep3.setFont(f2);
                break;
           case 4:
                this.jPanelRoot.add(jPanelStep4);
                this.jLabelStep4.setFont(f2);
                break;
           case 5:
                this.jPanelRoot.add(jPanelStep5);
                this.jLabelStep5.setFont(f2);
                break;
        }          
        
        jPanelRoot.updateUI();
    }
    
    /** When an object implementing interface <code>Runnable</code> is used
      * to create a thread, starting the thread causes the object's
      * <code>run</code> method to be called in that separately executing
      * thread.
      * <p>
      * The general contract of the method <code>run</code> is that it may
      * take any action whatsoever.
      *
      * @see     java.lang.Thread#run()
      *
      */
     public void run() {
         
         // This method is invoked to read fields....
         try {
                  IReportConnection irc = (IReportConnection)((MainFrame)this.getParent()).getProperties().get("DefaultConnection");
                  Connection c = irc.getConnection();
                  Statement stmt = c.createStatement();
                  ResultSet rs = stmt.executeQuery( jRSQLExpressionArea1.getText());
         
                  ((javax.swing.DefaultListModel)jList1.getModel()).removeAllElements();
                  ((javax.swing.DefaultListModel)jList2.getModel()).removeAllElements();
                 
                  ResultSetMetaData rsmd = rs.getMetaData();
	
                  javax.swing.DefaultListModel dlm1 =  (javax.swing.DefaultListModel)jList1.getModel();
                  javax.swing.DefaultListModel dlm2 =  (javax.swing.DefaultListModel)jList2.getModel();
                  
                  for (int i=1; i <=rsmd.getColumnCount(); ++i)
                  {
                    it.businesslogic.ireport.JRField field = new it.businesslogic.ireport.JRField(rsmd.getColumnLabel(i), Misc.getJdbcTypeClass(rsmd.getColumnType(i) ));
                    // Check if parameter already exists...
                    boolean found = false;
                    for (int k=0; i< dlm1.size(); ++k)
                    {
                        it.businesslogic.ireport.JRField f = (it.businesslogic.ireport.JRField)dlm1.getElementAt(k);
                        if (f.getName().equalsIgnoreCase(field.getName()))
                        {
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        //this.getJReportFrame().getReport().getFields().addElement(field);
                        dlm1.addElement(field);
                    }
                  }
                  setStep(2, 2);
                  
         } catch (Exception ex)
         {
            java.io.StringWriter sw = new java.io.StringWriter();
            ex.printStackTrace(new java.io.PrintWriter( sw ));
            javax.swing.JOptionPane.showMessageDialog(getParent(),sw.getBuffer()+"","SQL Error", javax.swing.JOptionPane.ERROR_MESSAGE);
            this.cancelElaborationStep1();
            return;
         }
         
         
     }
     
     public void cancelElaborationStep1()
     {
         this.jButtonNext.setEnabled(true);
         this.jButtonPrev.setEnabled(false);
     }
     
     
     /*
      *
      *
      */
     public Report createTabularReport(String templateFileName)
     throws Exception {
        Report template = new Report(templateFileName);
         
        template.setDirty(true);
        template.setFilename(null);
         
         //2. Find detail and column header bands...
	Band detail=null;
	Band columns=null;
				
	Enumeration e = template.getBands().elements();
	while (e.hasMoreElements())
	{
            Band band = (Band)e.nextElement();
		if (band.getName().equals("detail"))
		{
			detail = band;
		}
		else if (band.getName().equals("columnHeader"))
		{
			columns = band;
		}
	}
         
        // 1. Normalize position to band...
	e = template.getElements().elements();
	while (e.hasMoreElements())
	{
            ReportElement rElement = (ReportElement)e.nextElement();
            rElement.trasform(new java.awt.Point(0,- template.getBandYLocation( rElement.getBand() )),TransformationType.TRANSFORMATION_MOVE );  
	}
        
        //1. Adding groups...
	if (this.jComboBox1.getSelectedIndex() > 0)
	{
		Group g = template.getGroupByName("Group1");
		Group g1 = new Group( template, ""+jComboBox1.getSelectedItem(),  g.getGroupFooter().getHeight(),g.getGroupHeader().getHeight());
		g1.setGroupExpression("$F{"+ jComboBox1.getSelectedItem() + "}" );
		template.addGroup(g1);
					
		// Add to g1 all elements attached to g.header and g.footer...
		e = template.getElements().elements();
		while (e.hasMoreElements())
		{
			ReportElement rElement = (ReportElement)e.nextElement();
			if (rElement.getBand() == g.getGroupHeader())
          			rElement.setBand(g1.getGroupHeader() );
			else if (rElement.getBand() == g.getGroupFooter())
				rElement.setBand(g1.getGroupFooter() );
			// Set text to Group1 label...
			if (rElement instanceof StaticTextReportElement)
			{
				StaticTextReportElement stre = (StaticTextReportElement)rElement;
				if (stre.getText().equals("G1Label"))
					stre.setText( ""+jComboBox1.getSelectedItem());
			}
			else if (rElement instanceof TextFieldReportElement)
			{
				TextFieldReportElement tfre = (TextFieldReportElement)rElement;
				if (tfre.getText().equals("G1Field"))
					tfre.setText("$F{"+jComboBox1.getSelectedItem()+"}");
			}
		}
	}
           
	if (this.jComboBox2.getSelectedIndex() > 0)
	{
		Group g = template.getGroupByName("Group2");
		Group g2 = new Group( template, ""+jComboBox2.getSelectedItem(),  g.getGroupFooter().getHeight(),g.getGroupHeader().getHeight());
		g2.setGroupExpression("$F{"+ jComboBox2.getSelectedItem() + "}" );
		template.addGroup(g2);
					
		// Add to g2 all elements attached to g.header and g.footer...
		e = template.getElements().elements();
		while (e.hasMoreElements())
		{
			ReportElement rElement = (ReportElement)e.nextElement();
			if (rElement.getBand() == g.getGroupHeader())
          			rElement.setBand(g2.getGroupHeader() );
			else if (rElement.getBand() == g.getGroupFooter())
				rElement.setBand(g2.getGroupFooter() );
			// Set text to Group2 label...
			if (rElement instanceof StaticTextReportElement)
			{
				StaticTextReportElement stre = (StaticTextReportElement)rElement;
				if (stre.getText().equals("G2Label"))
					stre.setText( ""+jComboBox2.getSelectedItem());
			}
			else if (rElement instanceof TextFieldReportElement)
			{
				TextFieldReportElement tfre = (TextFieldReportElement)rElement;
				if (tfre.getText().equals("G2Field"))
					tfre.setText("$F{"+jComboBox2.getSelectedItem()+"}");
			}
		}
	}
        
        if (this.jComboBox3.getSelectedIndex() > 0)
	{
		Group g = template.getGroupByName("Group3");
		Group g3 = new Group( template, ""+jComboBox3.getSelectedItem(),  g.getGroupFooter().getHeight(),g.getGroupHeader().getHeight());
		g3.setGroupExpression("$F{"+ jComboBox3.getSelectedItem() + "}" );
		template.addGroup(g3);
					
		// Add to g3 all elements attached to g.header and g.footer...
		e = template.getElements().elements();
		while (e.hasMoreElements())
		{
			ReportElement rElement = (ReportElement)e.nextElement();
			if (rElement.getBand() == g.getGroupHeader())
          			rElement.setBand(g3.getGroupHeader() );
			else if (rElement.getBand() == g.getGroupFooter())
				rElement.setBand(g3.getGroupFooter() );
			// Set text to Group3 label...
			if (rElement instanceof StaticTextReportElement)
			{
				StaticTextReportElement stre = (StaticTextReportElement)rElement;
				if (stre.getText().equals("G3Label"))
					stre.setText( ""+jComboBox3.getSelectedItem());
			}
			else if (rElement instanceof TextFieldReportElement)
			{
				TextFieldReportElement tfre = (TextFieldReportElement)rElement;
				if (tfre.getText().equals("G3Field"))
					tfre.setText("$F{"+jComboBox3.getSelectedItem()+"}");
			}
		}
	}
        
        if (this.jComboBox4.getSelectedIndex() > 0)
	{
		Group g = template.getGroupByName("Group4");
		Group g4 = new Group( template, ""+jComboBox4.getSelectedItem(),  g.getGroupFooter().getHeight(),g.getGroupHeader().getHeight());
		g4.setGroupExpression("$F{"+ jComboBox4.getSelectedItem() + "}" );
		template.addGroup(g4);
					
		// Add to g4 all elements attached to g.header and g.footer...
		e = template.getElements().elements();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -