Graph-Functions

Hi,
I don't know if it has been discussed yet but it seems
that the topic is not yet on the feature requests.
I'd like so much to have more and better graph-functions.
In fact, I'd like a feature like Object-Styles. I design
one pie-graph f.ex. and can save the layout so to transfer
it to another graph. I'd also like to see graphstyles
like in Apple's Numbers f.ex.
Sometimes I like to make graphs and use the 3D-feature
to create a cool effect. But the 3D-tool does not work
with every perspective and sometimes creates strange
effects. I don't know if it's difficult to fix that
but I guess that goes too far into 3dD Rendering to
integrate more of that into Illustrator?
Ok, just wanted to make that note. When working on a
brochure with more than 40 graphs that would save a
lot of time.
Thanks for noticing.
Regards,
Sacha Heck

What do you mean by "sin^{-1}"? If you mean arcsin, then say arcsin. But arcsin would make your equation an identity function (a straight line a 45 degrees). If I paste your equation into Grapher (I am currently at a Leopard box with Grapher 2.0) it is interpreted as sin(1/sin(x)). It is a weird graph, but it is correct.

Similar Messages

  • Illustrator CC 2014 Graph function, SVG conversion to text outline option for web Firefox etc. compatibility

    In order to have Firefox and other browsers display text as designed in Illustrator, I've been converting text to outline when exporting to SVG. It's not ideal but it works generally - except now I am using the graphing function and it won't create outline fonts even when that option is selected.
    I've not been able to break the link with the graph function, e.g. by exporting to SVG or EPS and then opening those files and trying to export to SVG from there.
    Any suggestions e.g. about other ways of forcing illustrator to break the link with the graph data function - I'd keep the original file, this is just about getting a SVG file that will display text as intended in all browsers
    Cheers, Malcolm

    Make a copy of the AI file, select the graph object and expand is one way of doing it. You might also find this interesting, esp the later messages
    Does anybody know why type might render strangely when viewing a PDF in Chrome, Firefox and IE?

  • No chart/graph functionality in UIX?

    What functionality is currently available within Jdeveloper 10g 9.0.5.1 to build charts/graphs against a 10g database within a UIX page?
    The Jdeveloper docs says that the the built-in graph component (a part of BI Beans) is not available for UIX - only for JSP:
    From the docs:
    "Easy to integrate with custom applications - Since a graph component is reusable, you can add it to custom applications, including Oracle ADF web applications (currently JSP pages only) and ADF JClient applications."
    What did Oracle use to add charts/graphs to OEM10g ( a UIX application)?
    If we were to use a third-party java chart class and add the class as a component data source, how should we link user input, say from a text box on a UIX page, to the java class? For example, the user browses to a UIX page, types in ORCL, and the bottom half of the UIX page refreshes with a dynamically produced stock chart of Oracle's price history pulled from a 10g database. Or the java class returns a chart of the same data within a read-only table all within a UIX page.

    Thanks, but the issue is including a dynamically generated chart - especially one based on input in the UIX page, not simply including a static image.
    According to the UIX docs, includes do not allow parameters to be set.
    If a user types "ORCL" into a text box, how may my java class receive/obtain that value in order to use it within its charting code? I'm trying to link values on the UIX page to the java classes extending UIX. After reading the UIX docs, I remain unsure how to make this happen.
    I can use a datascope with the method element to bind a UINode to my java class - but how to send parameter(s) to the java class to alter what it returns to the databound UINode?
    I'd like to do something like this:
    (1) Drop into the page a MessageChoice.
    (2) Send the user-selected value of the MessageChoice to a java class bound to a UINode through a datascope - or have the class itself grab the MessageChoice value.
    (3) The class returns a chart generated using the value of the MessageChoice.
    kind of like this:
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <data name="stockChart">
    <method class="yourpackage.ChartDemo" method="getTheChart(VALUE.OF.MESSAGECHOICE)"/>
    </data>
    </provider>
    <contents>
    <image image="${uix.data.stockChart.theChart}"/>
    </contents>
    The seeming lack of any chart/graph functionality within UIX seems like a big loss.
    Does anyone know how Oracle is producing charts/graphs in OEM 10g on UIX pages?

  • Help Creating a Graph (of sorts) for Professional Driver Daily Logs

    Hey All!
    I'm working on a project for myself, that could go commercial if it gets as good as I'm hoping it will. This application (which I'm calling Truck Manager) will manage income and expenses, help plan trips, track trip/load information and do the US-MCSA/DOT regulated Driver's Daily Log. This log is a line graph that runs from midnight to midnight and has four lines: (1) Off Duty; (2) Sleeper Berth; (3) On Duty, Driving; and (4) On Duty, Not Driving. If anyone needs to see a paper form of this log book, just ask and I'll scan in one of my copies and post.
    Anyway, I'm using J2D to handle the log book "pages" and have already gotten the grid laid out just fine...it runs from midnight to midnight and is broken into 15-minute increments, with the four required lines described above. Now that I have that done, I've hit a logic block that is keeping me from figuring out the best and/or simplest way to log the status changes and time lines. For example, let's say that I work the following day:
    Midnight until 06:00 == off duty
    06:00 until 06:15 == on duty, not driving: performing pre-trip inspection
    06:15 until 08:00 == on duty, driving to customer to be loaded
    08:00 until 08:15 == on duty, not driving: being loaded (only required to log 15 minutes for this)
    08:15 until 09:00 == off duty (still being loaded)
    09:00 until 12:00 == on duty, driving (heading toward delivery)
    12:00 until 12:45 == off duty (lunch)
    12:45 until 15:00 == on duty, driving (heading toward delivery)
    15:00 until 15:15 == on duty, not driving (being unloaded)
    15:15 until 16:00 == off duty, (still being unloaded)
    16:00 until 20:00 == on duty, driving (heading home)
    20:00 until midnight == sleeper (ran out of hours)
    This graph would look like the following (provided each dash represents one 15-minute block:
    <pre>
    1. -----------------------| |---| |---| |---|
    2. | | | | | | | |----------------
    3. | -------| | |------------| |---------| | |----------------|
    4. |-| |-| |-|
    </pre>
    Though the above graph is crappy, it should give the idea of what needs to be done. At each change of status (i.e., from off duty to on duty, not driving) there must be a vertical line between the statuses, not going above and below like in the example above. Then, once the status changes again, the horizontal line needs to be drawn from the vertical line of the last status change to the time of the new status change and then the vertical line to the new status.
    The way the driver's daily log works is like this...When I come on duty, I am required to do a pre-trip inspection of my truck/trailer, which requires 15 minutes on duty, not driving, so I log that all at once, including the vertical line up to the 3rd line of the graph, which is on duty, driving. Then, in this example, I drive for 1.75 hours, until I arrive at my pick-up. Once I get there, I draw the horizontal line on line 3 of the graph, the vertical line down to line 4 (on duty, not driving), the 15-minute horizontal line and the vertical line up to line 1 (off duty). When I get ready to leave the pick-up after I am loaded, I draw the horizontal line across line 1, the vertical line down to line 3 and then drive until I stop.
    Other things that are desired for this graph logic is to take into account the US-MCSA/DOT regulations for drivers that state the following:
    a. A driver may not be on duty for more than 14 hours, without a 10-hour break
    - Nothing stops this "14-hour clock" except a 10-hour break, so if a driver comes on duty at 06:00 and spends 15 minutes doing the pre-trip inspection and then goes off duty for the next 8 hours, the 14-hour clock is still running and the driver will only have 5 hours and 45 minutes to work (roughly).
    b. A driver may not drive for more than 11 hours, without a 10-hour break, provided the 14-hour rule is obeyed.
    - In other words, even if a driver only drives for a total of 7 hours, but the 14-hour clock expires, the driver may not complete his/her 11 hours of driving allowed.
    c. A driver must take a break of 10 consecutive hours in each 24-hour period.
    *** This is confusing because the 10-hour break can span midnight and still be considered consecutive, even though part of the break is on one graph and the other part is on another graph.
    In taking these rules into account, I would like the graphing part of the program's logic to change the horizontal line color from blue (the regular line color) to red if the driver is in violation of the rules above. Where this gets really complicated is where the same status crosses midnight from day-to-day.
    As I said, I have successfully gotten the grid painted using java.awt.Graphics2D methods, but am having trouble coming up with the logic for drawing the driver status throughout the day. All data will be stored in a MySQL database table and can be pulled at any time that it is needed. The user will be entering the current status change time, as well as location (city and state) and a comment (which is not required, except for when doing a pre-trip inspection, fueling, loading or unloading), then clicking a button labeled "Update Log".
    Any help with the logic for this part of the application is greatly appreciated. If you can provide sample code to help demonstrate the logic you are describing, I will be grateful.
    Thank you all for your assistance. If you would like a better idea of what the daily log graph looks like, you can run the class below.
    Cheers,
    Sean
    <pre>
    * DriverLog.java: Driver's Daily Log entry screen. By completing the small form at the bottom of
    * dialog, the system will automatically update your log.
    * Created on Sep 30, 2010, 2:03:18 PM
    package net.pekinsoft.trkmgr.gui;
    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Point;
    import java.awt.Toolkit;
    * @author Sean Carrick
    public class DriverLog extends javax.swing.JFrame {
    // Private class-level variables.
    * @code{java.awt.Graphics2D} object that we will use for drawing on our
    * view port, which is a @code{javax.swing.JPanel} on our form. This view
    * port will hold our driver's log graph that shows the driver's status at
    * different times of the day based upon the data the driver provides.
    private Graphics2D canvas;
    * @code{java.awt.geom.Point} object to hold the starting x, y coordinates
    * for the driver's daily log off duty line.
    private Point offDutyStartPoint;
    * @code{java.awt.geom.Point} object to hold the ending x, y coordinates
    * for the driver's daily log off duty line.
    private Point offDutyEndingPoint;
    * @code{java.awt.geom.Point} object to hold the starting x, y coordinates
    * for the driver's daily log sleeper berth line.
    private Point sleeperStartPoint;
    * @code{java.awt.geom.Point} object to hold the ending x, y coordinates
    * for the driver's daily log sleeper berth line.
    private Point sleeperEndingPoint;
    * @code{java.awt.geom.Point} object to hold the starting x, y coordinates
    * for the driver's daily log driving line.
    private Point drivingStartPoint;
    * @code{java.awt.geom.Point} object to hold the ending x, y coordinates
    * for the driver's daily log driving line.
    private Point drivingEndingPoint;
    * @code{java.awt.geom.Point} object to hold the start x, y coordinates
    * for the driver's daily log not driving line.
    private Point notDrivingStartPoint;
    * @code{java.awt.geom.Point} object to hold the ending x, y coordinates
    * for the driver's daily log not driving line.
    private Point notDrivingEndingPoint;
    * @code{int} that holds the number of 15-minute blocks in a 24-hour period.
    private static final int qtrHourBlocks = (24 * 60) / 15;
    /** Creates new form DriverLog */
    public DriverLog() {
    // Initialize the window's components. {handled by NetBeans}
    initComponents();
    // Center the window on the screen.
    Toolkit tk = Toolkit.getDefaultToolkit();
    int winX = (tk.getScreenSize().width - getWidth()) / 2;
    int winY = (tk.getScreenSize().height - getHeight()) / 2;
    setLocation(winX, winY);
    // Initialize our drawing canvas.
    canvas = (Graphics2D) viewPort.getGraphics();
    // Next, we need to initialize our line starting and ending point objects.
    int qtr = (viewPort.getHeight() / 8);
    int y = qtr + 20;
    int startX = 20;
    int endX = viewPort.getWidth() - 20;
    offDutyStartPoint = new Point(startX, y);
    offDutyEndingPoint = new Point(endX, y);
    y = (qtr * 2) + 20; // Double the value of y
    sleeperStartPoint = new Point(startX, y);
    sleeperEndingPoint = new Point(endX, y);
    y = (qtr * 3) + 20; // Triple the value of y.
    drivingStartPoint = new Point(startX, y);
    drivingEndingPoint = new Point(endX, y);
    y = (qtr * 4) + 20; // Quadruple the value of y.
    notDrivingStartPoint = new Point(startX, y);
    notDrivingEndingPoint = new Point(endX, y);
    // Now that our objects have been initialized, we need to draw our grid.
    paint();
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    bgrpStatus = new javax.swing.ButtonGroup();
    viewPort = new javax.swing.JPanel();
    lblStatusChange = new javax.swing.JLabel();
    txtStatusChange = new javax.swing.JFormattedTextField();
    rbtnOffDuty = new javax.swing.JRadioButton();
    rbtnSleeper = new javax.swing.JRadioButton();
    rbtnDriving = new javax.swing.JRadioButton();
    rbtnNotDriving = new javax.swing.JRadioButton();
    btnUpdate = new javax.swing.JButton();
    lblComment = new javax.swing.JLabel();
    txtComment = new javax.swing.JTextField();
    lblLocation = new javax.swing.JLabel();
    txtLocation = new javax.swing.JTextField();
    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    setTitle("Driver's Daily Log");
    setAlwaysOnTop(true);
    setResizable(false);
    addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowOpened(java.awt.event.WindowEvent evt) {
    formWindowOpened(evt);
    addWindowStateListener(new java.awt.event.WindowStateListener() {
    public void windowStateChanged(java.awt.event.WindowEvent evt) {
    formWindowStateChanged(evt);
    javax.swing.GroupLayout viewPortLayout = new javax.swing.GroupLayout(viewPort);
    viewPort.setLayout(viewPortLayout);
    viewPortLayout.setHorizontalGroup(
    viewPortLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 674, Short.MAX_VALUE)
    viewPortLayout.setVerticalGroup(
    viewPortLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 351, Short.MAX_VALUE)
    lblStatusChange.setText("Status Change Time:");
    txtStatusChange.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(
    new javax.swing.text.DateFormatter(new java.text.SimpleDateFormat("HH:mm"))));
    bgrpStatus.add(rbtnOffDuty);
    rbtnOffDuty.setSelected(true);
    rbtnOffDuty.setText("Off Duty");
    bgrpStatus.add(rbtnSleeper);
    rbtnSleeper.setText("Sleeper");
    bgrpStatus.add(rbtnDriving);
    rbtnDriving.setText("Driving");
    bgrpStatus.add(rbtnNotDriving);
    rbtnNotDriving.setText("On Duty; Not Driving");
    btnUpdate.setMnemonic('U');
    btnUpdate.setText("Update Driver Log");
    btnUpdate.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    btnUpdateActionPerformed(evt);
    lblComment.setText("Reason/Comment:");
    lblLocation.setText("Location: City, ST:");
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
    .addContainerGap()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(viewPort, javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addGroup(layout.createSequentialGroup()
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addComponent(lblLocation)
    .addComponent(lblStatusChange))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
    .addGroup(layout.createSequentialGroup()
    .addComponent(txtStatusChange, javax.swing.GroupLayout.PREFERRED_SIZE, 50,
    javax.swing.GroupLayout.PREFERRED_SIZE)
    .addGap(18, 18, 18)
    .addComponent(rbtnOffDuty)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
    .addComponent(rbtnSleeper)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
    .addComponent(rbtnDriving)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
    .addComponent(rbtnNotDriving)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
    65, Short.MAX_VALUE)
    .addComponent(btnUpdate))
    .addGroup(layout.createSequentialGroup()
    .addComponent(txtLocation, javax.swing.GroupLayout.DEFAULT_SIZE,
    232, Short.MAX_VALUE)
    .addGap(18, 18, 18)
    .addComponent(lblComment)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(txtComment, javax.swing.GroupLayout.PREFERRED_SIZE,
    227, javax.swing.GroupLayout.PREFERRED_SIZE)))))
    .addContainerGap())
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
    .addContainerGap()
    .addComponent(viewPort, javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addGap(18, 18, 18)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(lblStatusChange)
    .addComponent(txtStatusChange, javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(rbtnOffDuty)
    .addComponent(rbtnSleeper)
    .addComponent(rbtnDriving)
    .addComponent(rbtnNotDriving)
    .addComponent(btnUpdate))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(txtComment, javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(lblComment)
    .addComponent(lblLocation)
    .addComponent(txtLocation, javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addContainerGap())
    pack();
    }// </editor-fold>
    private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // KEEP AS LAST LINE IN THIS FUNCTION!!! //
    paint();
    private void formWindowStateChanged(java.awt.event.WindowEvent evt) {                                       
    // Draw the driver's daily log grid.
    paint();
    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 
    // Draw the driver's daily log grid.
    paint();
    private void paint() {
    drawOutline();
    * @code{net.pekinsoft.gui.DriverLog.drawOutline()} function handles the
    * rendering of the driver's daily log grid outline only.
    private void drawOutline() {
    // Set up the starting point for our log grid's upper-left corner.
    int x = 0; // 20 points down from the top.
    int y = 0; // 20 points in from the left.
    int offset = 28;
    // Get the height and width of our log grid from the panel.
    int h = 112;
    int w = 671;
    // Set the color of our border to Red.
    canvas.setStroke(new BasicStroke(1));
    canvas.setPaint(Color.BLACK);
    // Draw our log graph outline.
    canvas.drawRect(x, y, w, h);
    // Draw our log's horizontal lines.
    for ( int i = 1; i < 5; i++ ) {
    canvas.drawLine(x, y + (i * offset), w + offset, y + (i * offset));
    // Draw our log's hour lines.
    for ( int i = 1; i < 24; i++ ) {
    canvas.drawLine(x + (i * offset), 0, x + (i * offset), 112);
    // Draw our log's 30-minute ticks.
    for ( int i = 1; i < 48; i++ ) {
    for ( int j = 0; j < 5; j++ ) {
    canvas.drawLine(x + (i * (offset / 2)), y + (j * offset),
    x + (i * (offset / 2)), (y + (j * offset) + 10));
    // Draw our log's 15-minute ticks.
    for ( int i = 1; i < 96; i++ ) {
    for ( int j = 0; j < 5; j++ ) {
    canvas.drawLine(x + (i * (offset / 4)), y + (j * offset),
    x + (i * (offset / 4)), (y + (j * offset) + 5));
    canvas.drawLine(0, 112, 0, 122);
    canvas.drawLine(w, 112, w, 122);
    * @param args the command line arguments
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new DriverLog().setVisible(true);
    // Variables declaration - do not modify
    private javax.swing.ButtonGroup bgrpStatus;
    private javax.swing.JButton btnUpdate;
    private javax.swing.JLabel lblComment;
    private javax.swing.JLabel lblLocation;
    private javax.swing.JLabel lblStatusChange;
    private javax.swing.JRadioButton rbtnDriving;
    private javax.swing.JRadioButton rbtnNotDriving;
    private javax.swing.JRadioButton rbtnOffDuty;
    private javax.swing.JRadioButton rbtnSleeper;
    private javax.swing.JTextField txtComment;
    private javax.swing.JTextField txtLocation;
    private javax.swing.JFormattedTextField txtStatusChange;
    private javax.swing.JPanel viewPort;
    // End of variables declaration
    </pre>
    Edited by: 799477 on Oct 1, 2010 2:42 PM

    <blockquote>Sean, I checked your code and seen that package net.pekinsoft..., is this an Illinois Company by any chance?</blockquote>
    Yes, this is a company that I have tried (unsuccessfully) to start in central Illinois...I'm guessing that the "Pekin" part gave it away.
    <blockquote>Thanks for posting the DB TABLE -- we'll need that later, plus I wanted to see if you would respond.</blockquote>
    Not a problem on the DB table. Why wouldn't I respond...I want and NEED help here... ;-)
    <blockquote>I have a few questions but don't want to complicate your line of thinking, so I'll just describe generally how I have approached a big project like this. </blockquote>
    I will answer them the best that I can.
    <blockquote>For one thing, I do not start with a GUI or even consider what I want it to look like... I start with the data, and how that data is broken down into different classes, and then how those classes come together to form an Object Hierarchy. I have and do maintain a large MySQL database myself with 18 TABLES. Some of the TABLES hold very little information which I use as static final information. As a matter of fact, one of those TABLES is called status and contains 5 fields. This status TABLE is storing 7 rows of information because I have 7 different levels. The fields in my status TABLE are status_id, status_type, status_title, status_desc, and status_icon. This means I will have 7 icons to represent the different status levels, a description, a title, a type (maybe yours could be ON or OFF duty for example), and the ID of the status.
    Another thing at this stage of development is that I don't make up my mind concretely about any of the data or how the data will fit together. I want to remain as flexible as possible, so that as my design develops, the design allows for the addition or subtraction of data and different data types to be created. In other words, I completely atomize all structure, associations, relationships, dependencies, or just anything in general that makes two or more pieces of information stick together.
    At this point, all I have is a loose bag of primitive data types with no structure whatsoever. Like I just tore up a piece of paper into a hundred pieces and threw into the air letting the pieces fall where they may.
    While I'm at this point, I will make decisions about which languages and platform would be the best to raise the beast. In my case, I chose to run it on the internet, so I chose MySQL to store the data, SQL to communicate to the DB, and the server uses a PHP scripting engine to spit out the HTML, also PHP lets me create OO classes very similar to a JAVA class. This is a very important step and must be made now, not later -- you don't want to do all this work only to find out that it should have been done in another language! Been there done that.
    Once I've decided all of the above, then I come back and decide how the data should be organized. NOW I make all the database TABLES. Then I write a class definition for each of the db tables. Each class will provide methods for saving, editing, and retrieving info to and from the db using SQL.
    Once I get to this point I will make FORMS for the easy entry of data. The FORMS, CLASSES and and db TABLES all mirror each other now, so the CLASSES handle all the info from FORM to DB, DB to FORM. Notice at this point I am still dealing with data and data flow, NOT the display of pretty information -- not even close.
    Ok, enough about this Sean, let me know if this helps any.</blockquote>
    This information was helpful, but also how I typically approach a large project.
    The only problem with what you talk about above is dealing with allowing "wiggle-room" for changing the data because the data that I'm storing is codified by the federal government through the CSA-2010 laws that regulate the trucking industry. Therefore, I really don't have any wiggle-room with the data at all.
    As for choosing Java over another language, I made this choice because I don't like limiting myself (or others) on what operating system they use and platform-independence is one of the best things about Java (provided you don't use any OS-specific code, which I try like hell not to do). I am a huge Linux guy, but have to use Windows to update my GPS and would like to be able to use this application no matter which OS I'm booted into. Just so you understand, I am fluent in multiple languages, including PHP, Java, Python, Ruby, C/C++, BASIC and Bash. I am also very big on OOP and always leave accessing the database to the class that holds that data (i.e., LogEntry class will access the database to store and retrieve the log data). I am also using MySQL as the database back-end, because it is the SQL server that I am most comfortable with and also has versions for various OSes. I use the mysql-connector.jar library for accessing MySQL from Java, so that's not even an issue.
    As for "static final" data in the database, I do store my statuses, with the status_id numbers the same as the row number on the hard-copy Driver's Daily Log books. These records simply hold the status_id and description (i.e., 1, "Off Duty").
    I believe that I've got the logic for logging an entry such as: 08:00-10:00, On Duty, Driving, status location Indianapolis, IN, comment: Tire check. This whole entry is on the same day and therefore fairly easy to graph. The type of entry that I'm having problems figuring the logic for is one where the last change of duty status was before midnight and the current change of duty status is after midnight, on the next day. For example, I typically stop for the night (my DOT 10-hour break) at 5:00 PM (17:00) and am in the sleeper across midnight, then get going at 3:00 AM (03:00). I'm having trouble figuring out how many hours to log on the current day. In the example that I just gave, I'm not getting how I can figure out when to start at midnight and when to start out at the prior status change time through code. Nothing that I try seems to work correctly and I keep getting horizontal status lines outside of my graph area.
    As for what data I need to store and how I need to store it, I am very flexible, except with the daily log data, since it is federally mandated. Once I figure out the logic for actually logging the statuses and changes of status properly, I will create the class for storing and retrieving the database data...for now I'm just using hard-coded times to get the graphing logic right without the overhead of database access. Changing this code to use the data from the database will be a snap in comparison to figuring out the graphing functionality.
    Thanks for your insights and assistance. I look forward to seeing what other ideas you have to share.
    Sean

  • What is the best way to graph CAN data?

    Hi All,
    Even after years of trying, I am still really lousy at using the LabVIEW graphing functions, so I hope you will be patient with me.
    I am currently writing code to monitor a CAN bus.  I have messages with five different arbitration IDs coming in at irregular time intervals.  Generally, there is between between 5ms and 100ms between packet arrival times.  My first currently captures the raw CAN data and parses it according to the format requirements for each arbitration ID and shows the corresponding values from the parsed data.   It also saves the raw data into a txt file.  Each entry saves a time stamp, Arb ID, message length and 8 CAN bytes, which is the length of each CAN packet.
    I have another program which takes the raw data from the original txt file and resaves it as formatted data, broken out into parsed values.  I use this two-step process to make my CAN capture program run faster.
    I have two graphing needs right now:
    1.  Graphing the ruasi-real-time values of the parsed CAN data as they are acquired in my CAN capture program.  This needs to happen in as little time as possible, giving me usable graphs or charts without bogging down the program.  If graphing the data takes up too much CPU time, I could graph data samples once every XXXms, instead of graphing everything that comes in.  If graphing the data proves too CPU intensive, I might just give up on this real time graphing.
    2.  Graphing the entire parsed data set in my second, post-capture program.  Speed is not as important in this program because I am not capturing real time data while it is running.  This graph needs to include each data point vs. its associated timestamp.
    Any recommendations on which graphing functions to use in these programs would be greatly appreciated.
    Thanks!

    I'm not sure what you mean by "graphing functions."  I have code running now that receives a CAN message every 1ms.  Every 100ms, all the data received in that period is added to a chart.  I'm using a less-expensive USB CAN card (so no on-board filtering) and my code has no problem filtering by arb id in software.  I'm doing this by grabbing all received messages from the buffer every 10ms and, in a for loop, checking the arbitration ID of each packet.  If the ID matches the one I want to graph, I convert the CAN packet to 4 16-bit values and put them in a queue.  In a separate loop, every 100ms I flush the queue and write the contents to the chart.  Here's the relevant bit of my code.  Does this help?

  • Two Graphs in a single screen

    Hi Experts,
    I want to display two graphs in a single screen. It should be a pie chart.
    Currently I did one pie chart using GRAPH_MATRIX_2D.
    It is working fine.
    But i want to display another PIE Chart within the same screen.
    Can anyone help me sort out?
    Thanks in advance

    Hi Vimal,
    Go throungh the following code. it will help you.
    REPORT Z_3DGRAPH.*structure declaration for performance measurementTYPES: BEGIN OF ty_performance,
          company(15) TYPE c,
          q1 TYPE i,
          q2 TYPE i,
          q3 type i,
          q4 type i,
          END OF ty_performance.*structure declaration for options table
    types : BEGIN OF ty_opttable,
            options(30) TYPE c,
            END OF ty_opttable.*Internal table and work area declarations
    DATA: it_performance TYPE STANDARD TABLE OF ty_performance,
          wa_performance TYPE ty_performance.DATA : it_opttable type standard table of ty_opttable,
           wa_opttable type ty_opttable.*initialization event
    INITIALIZATION.*start of selection event
    START-OF-SELECTION.*clearing the work areas
    CLEAR WA_PERFORMANCE.
    CLEAR wa_opttable.*appending values into the performance internal table
    wa_performance-company = 'Company A'.
    wa_performance-q1      = 78.
    wa_performance-q2      = 68.
    wa_performance-q3      = 79.
    wa_performance-q4      = 80.append wa_performance to it_performance.wa_performance-company = 'Company B'.
    wa_performance-q1      = 48.
    wa_performance-q2      = 68.
    wa_performance-q3      = 69.
    wa_performance-q4      = 70.append wa_performance to it_performance.wa_performance-company = 'Company C'.
    wa_performance-q1      = 78.
    wa_performance-q2      = 48.
    wa_performance-q3      = 79.
    wa_performance-q4      = 85.append wa_performance to it_performance.*appending values into the options internal tablewa_opttable-options = 'P3TYPE = TO'.
    APPEND wa_opttable TO it_opttable.wa_opttable-options = 'P2TYPE = VB'.
    APPEND wa_opttable TO it_opttable.wa_opttable-options = 'TISIZE = 1'.
    APPEND wa_opttable TO it_opttable.*calling the graph function module
      CALL FUNCTION 'GRAPH_MATRIX_3D'
        EXPORTING
          col1      = 'Quarter 1'
          col2      = 'Quarter 2'
          col3      = 'Quarter 3'
          col4      = 'Quarter 4'
           dim1      = 'In Percentage%'
          set_focus = 'X'
          titl      = 'Company Performances'
        TABLES
          data      = it_performance
          opts      = it_opttable
        EXCEPTIONS
          others    = 1.
    Regards,
    Rajesh Kumar

  • Server Admin Graphing No Longer Works in 10.4.6

    Has anyone else noticed that the graphing functions no longer work in 10.4.6?
    I have also noticed that the CPU % Usage in the System - Hardware displays 62% no matter that the system is idle. This only appears on my single processor G4 not my Dual G4 Xserve.

    Ever since I have upgraded to Xserve 10.4.6 the graphing function does not work and shows 0% - pretty light load for a dual 867 MHz G4 and about 12 users at the time
    It is my hope that Apple does fix the problem shortly - it's useful to see the load on the CPU and network. Over the last while I did notice that the CPU load was "creeping" up steadily when the "Server Admin" utility was left running. The graph did not creep up when "Server Admin" was terminated and a graph was plotted after a few days.

  • Multiple Line Graph

    First off, thanks to kglad for the line graph function I
    started with, it has been a huge help. Now the step I'm trying to
    take is 2 fold.
    First, I'd like to graph more than one line segment on the
    graph. Right now I am graphing functions f1 and f2, but f2
    currently overwrites f1. I want them to coincide so f1 goes from
    x=1 to x=15, f2 goes from x=15 to x=25, f3 goes from x=25 to x=10
    at a different y (these are all curves), and finally f4 goes from
    x=10 to x=1 creating a closed shape. Also, I want the x values and
    the y values to be variable based on the temperature. I'm using
    PV=nRT and n, R, and T are all known. so I have something like
    P=nRT/V where P is y, V is X and the nRT can be calculated for two
    steps of the 4. The other two steps are adiabatic, so Q=0, I don't
    know yet how to fit the lines but i do know that y = a / (x^(5/3))
    is a formula that works, I just need to find the proper a values
    for steps 2 and 4.
    Part two of this issue is that currently the graph is drawing
    as the whole canvas, which is fine for testing until i get the
    multiple line part worked out; however I only want this to be 1/4
    of the viewing area as I have other movie clips and such to put on
    this. A conceptual drawing of what I plan on making can be found
    at:
    http://www.students.bucknell.edu/gbement/Steps.html
    I'm a novice to Actionscript and movie clips, I previously
    did everything with motion tweens and nothing was dynamic. I plan
    on creating the piston and molecule simulation in another movie
    clip, then I can vary the play speed relative to the hot and cold
    temperatures by looping the movieclip and having it play faster for
    a high T and slower for a low T.
    Any help on any of my many issues would be greatly
    appreciated and the user will be recognized for their assistance in
    my research presentation :)

    Hi Arun, thanks again for the help but upon closer inspection
    (along with only a basic knowledge of java and actionscript), I
    think your script would need editing to work for me (editing i'm
    unsure of how to do). What I'm looking for is a graph that will
    create a line based on a function. Much like y=(a*b*c)/x or
    y=(a*b*c)/(x^1.66) The a*b*c would be complicated also, but here's
    what i've thought up on paper that I have to move to script, I hope
    this is useful:
    Step 1: Calculate the a*b*c
    The original function is PV=nRT , nRT being the a*b*c ,
    however the Thot and Tcold terms are input boxes that the user
    types in before hitting the "go" button.
    So I have to do this much:
    tcold = Number(tcold_num.text);
    thot = Number(thot_num.text);
    var n:Number = 1;
    var R:Number = 0.0825;
    var a:Number;
    var b:Number;
    var c:Number;
    var d:Number;
    a = n*R*thot // Step 1 constant
    b = // Step 2 constant (formula to be finished :-/) Looks to
    be a formula using ((b) / (Math.pow(x, 1.666)))
    c = n*R*tcold // Step 3 constant
    d = // Step 4 constant (formula to be finished :-/)
    Then I need to find a way to initialize axis to line the
    graph, I can label the P and V axis using static text boxes later I
    suppose.
    The problem I have with yours that I don't understand is that
    I could add the function into the y part of the addLine() function,
    however it's noted as inity= y1 (requires a number), and the
    function definition has y1:Number.
    Now the issue i'm tackling below is just a newbie's lack of
    understanding (i hope), but the script kglad wrote (snipped below)
    will graph one line, and i can't figure out for the life of me how
    to write this up to graph more than one instance without
    overwritting the previous line. Again, Thanks for the help so far,
    it has helped me find the points where I lacked direction and solid
    ideas before.

  • Chart graph in 10g

    12/01/2012 12:00:00 AM
    12/31/2012 12:00:00 AM
    Hi
    I have one chart graph report in 10g.I migrated 11g.
    In 10 i selected creteria tab in Time,ID,Name,Addrss,Am1,Amount2,Amount3,........................
    In chart graph(Line-Bar) X axis is "Time" and Y axis Vertical bar is "Amount1" and Line is "Amount2)
    Now graph result displays based on this 3 columns(Time,Amount1 and ampount2) not based on creteria selected columns.
    In 11g
    The same report not showing correct data.(Mismatch 10g and 11g)
    When i recreate pivot graph report instead of chart graph report and i selected "server complex agg" in pivot view then data will matching.
    My Question.
    1.10g chart graph and 11g chart graph functionality same or ?
    e.g
    in 10g
    graph result displays based on this 3 columns(Time,Amount1 and ampount2) not based on creteria selected columns.
    But 11g retrun based on ceteria selection am i correct?
    In 11g,If i seleted this 3 column only in criteria tab then 10g report matching.
    2.All chart report in 10g we have to convert pivot view in 11g or no need?
    Thanks

    Raj,
    If you edit your chart, check the columns in "Layout > Line-Bar Graph > Bar and Lines > Group by section" you'll see most of your columns here. you'll have to either remove unnecessary columns from criteria tab or drag them in "Excluded" section.
    If you pull more than necessary columns in criteria, the analysis result will be shown as per the logic attached to all these columns. Try to keep only columns that are necessary for final output.
    Regards,
    Jitendra

  • Creating many of the same graphs/infrographics

    I have created reports with infographics (bar charts/pie charts etc.) where the raw data and charts were created in Excel and then I copy it into Illustrator and tweak the design (colour, text, etc) and then drop it into InDesign.
    I am now in the process of creating several (30+) reports that will use the same design template from InDesign - but all of the garphics will be uniqe. 
    What is the best approach to create all of these graphs? Is there a script or macro that I can create and save when I tweak one graph, and then apply it to the subsequent graphs?
    I know Illustrator has the graphing function but I havent had too much luck with and, and some of the graphs that I will create, such as donut graphs, cannot be created in Illustrator.
    Thanks!

    ...(30+) reports that will use the same design...but all of the garphics will be uniqe.
    Is there a script or macro that I can create and save when I tweak one graph, and then apply it to the subsequent graphs?
    It depends on what exactly you mean by "tweaking one graph" and "the garphics will be uniqe".
    Graph Data is one of the four kinds of Variables supported by Illustrator's Variables feature. So you can design a graph using one of Illustrator's limited graph types, leave it "live" (don't deconstruct it into mere graphic elements), and import any number of different DataSets into it to automatically generate dozens of similar graphs based on different values.
    But the Variables feature is based on XML and therefore requires import/export of XML files properly formatted for Illustrator's feature. Illustrator does not provide the detailed documentation on how to do this; you have to know (or learn) an amount of XML esoterica on your own.
    Moreover...
    ...some of the graphs that I will create, such as donut graphs, cannot be created in Illustrator...
    There's your answer. If you need graph types other than those few which Illustrator can create, you really need to use some other software.
    Nowadays, for my own graph needs, I use FileMaker Pro whenever I can, because of its full relational-database functionality. That is, it can generate graphs in real-time based not just on data from a single flat XY table, but from any aggregate (summary, etc.) data that is modeled in the multi-table relational database. For example, FileMaker can individually graph the sales history of 30,000 different items over time. I can setup the graph once and instantly have as many different graphs as I have records in the database--and they automatically update in real time whenever the data changes.
    But FileMaker is not a "graphics program" per se. So I can export the graphs to PDFs if I need to, but I cannot, for example, tell FileMaker to use a drawing of a skyscraper in place of a column bar. That's the kind of "illustratorish" functionality you need a drawing program for--and for which you have to make trade-offs between fast and practical data-driven functionality and time-consuming "info graphics" illustration customization.
    And FileMaker probably cannot do whatever you mean by "donut graph". So it's a matter of what specifics you actually need, and what trade-offs you are willing to accommodate.
    JET

  • BI-Beans functionality

    Great Tech-Preview but any information on how and when bi-beans functionality will be available?

    The graph functionality of BI Beans is now "renamed" ADF Data Visualization Components - they are our graph JSF components.
    You can play with them in the preview.
    Some resources:
    http://download.oracle.com/otn_hosted_doc/jdeveloper/11/demos/graph/ADFGraphDemoFinal.html
    http://www.oracle.com/technology/products/adf/adffaces/11/doc/dvt_graph_gauge_tags/dvt_adf_faces_tag_list.html
    http://www.oracle.com/technology/products/jdev/11/how-tos/graph/configuring_graph_types.html
    http://technology.amis.nl/blog/?p=2007

  • How to create graph through form9i

    dear,
    I mant to know how to create graph in form 9i.Right now i have no idea about graphs use in form9i.
    please reply me as soon as possible.
    my mail id is [email protected]
    If you have any answer related to this problem please mail me in my mail id that i have given .
    with regards
    monika gupta

    Hi Monika,
    http://www.oracle.com/technology/products/reports/htdocs/faq/faq_migration.htm
    http://www.oracle.com/technology/products/reports/10gr2/Reports_guide_to_changed_functionality.pdf
    http://download.oracle.com/docs/html/A90900_01/rwtutorial_graph.htm#1005697
    How do I migrate my charts from Oracle Graphics to the new graph format in Oracle Reports 10g?
    Since release 9i, Oracle Reports uses Business Intelligence Beans (BI Beans) to create and display graphs in reports. There is no direct migration path from Oracle Graphics to the BI Beans graphing functionality. As such, the user will need to rewrite all of their graphs using the new Graph Wizard within the Oracle Reports Builder 10g. Oracle Reports 10g supports over 50 graph types, including 3D graphs. However, keep in mind that it does not support some special types, such as Gantt charts.
    It seems direct graph 6i migration is not possible from reports10g.
    It is asking to use the chart wizard again with your query.
    Please follow the above two link it may helps u a lot.

  • XY graph as control input device

    I'm trying to use a XY graph as an input device (virtual joystick) that controls a crosshair nad also provides coordinates inside a live video feedback from a webcam in labview 2012 64bit , but I can't get the VI to work properly. I've made the VI for the "virtual joystick" and for the video feedback . I can't figure out how to make the VI for the crosshair.
    Attachments:
    2D AXIS CONTROL BUTTON 1.vi ‏15 KB
    WEBCAM VIDEO CAPTURE subvi.vi ‏45 KB

    To use a cursor of an XY graph as a 2D control, the graph does not need to be a control, it can as well be an indicator.
    It seems using an xy graph is overkill adds a bit too much overhead, because you only use 5% of the xy-graph functionality. You could easily use e.g. a picture indicator. If you would use a picture indicator, you could even draw some stylized background looking like a joystick as a function of mouse position, for example. You would need to keep the "mouse down" state in a shift register, and only react to mouse positions while the button is held down.
    If you want to use a cursor of an xy graph, you should do a few things. For example you should disable "cursors scroll graphs", else the axes will scroll when the cursor is moved past the boundary. Your code also spins the while loop like crazy. All you need is spin the loop when the cursor changes. Use an event structure. Attached is a very simple rewrite of your code. (You still should ensure that the cursors remain coerced to the plot area, not shown).
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    2D AXIS CONTROL BUTTON 1_MOD.vi ‏10 KB

  • Programming Marker Color in XY Graph

    Hello Everyone,
    In Igor by Wavemetrics, I can plot XY graph with marker only, the marker color can be tied to the corresponding value in a third data column.  In some sense, this is similar to but not quite like an intensity graph.  Is it possible to do this in Labview?
    I will move my X-Y stages to search for a laser beam in large steps and nail its maximum in finer steps.  I would like to plot the trails of my search.  I would appreciate if someone already has this kind of search vi.
    Thanks in advance.
    Fang

    Fang,
    It is possible to change plot point colors of an XY graph by using a property node run through a case structure.  If the results found entering the case structure set it to either true or false, the points can be set to be a certain color.  The property you are looking for is Plot.Fill/Point Color.  However, this is definitely not the most robust method for doing this, as it involves breaking down your x and y data into individual numbers using a for loop.  Also, because the way the XY graph pulls in data, it is essentially impossible to change the color of just one point.  In order to do this, you would need to set up a multiplot and have one plot using one color and the other plot using the default color.  The plot that utilized your signal color would only plot if certain conditions were met.  
    So, I would say that using the 3-D graph functions would be a much simpler method, as was suggested by the previous user.
    Mr. Moore

  • Graph in forms

    Hello members ,,
    i made a master detail graph in graph builder 6i ,,
    Master graph = 'Pie chart"
    Detail graph = "Bar Chart"
    when i click on the Pie chart, detail Bar chart change according to Master Chart
    but when i call it in the form 6i , the graph function / trigger is not work ,, so i made a button and through it i refresh the graph.. and its work well
    but i want to some functionality as it in the graph builder that when i click the master chart , detail chart change ,,
    is it possible
    thanks

    The focus of this forum is the use of BI Beans with the OLAP datasource. Connecting BI Beans to non-OLAP data sources is owned by the respective the other product teams as they know the exact details of how they have implemented the BI Beans and which APIs they have exposed.
    Hope this helps
    Business Intelligence Beans Product Management Team
    Oracle Corporation

Maybe you are looking for

  • Movie With Chapters

    I have designed a Flash movie for a client that, now that the project is near completion, has asked for a menu to appear at the end of the entire movie that would allow for a viewer to jump back to the introduction or any other chapter (principle 1-p

  • Change of fiscal year (ie:april2007 -- march2008, to oct 2007 - sep 2008

    Dear all,    I have defined fiscal year as v3 ie: April 2007 to march 2008, now i have closed the the fincial year in the month of sep 2007 (so it will be six months ie: 6 months i have closed the financial period), after this I have opened new finan

  • Inbound proxy with attachment

    Hi All, I have a scenario where in I need to pick one zip file from FTP and pass it to SAP system over proxy communication.I have searched on SDN,find blogs on outbound proxy but didnt get much information on inbound proxy with attachment. Or please

  • Design Patterns needed for SAP XI

    Hi

  • [Event] End point vs BAPI concurrent calls ?

    Hi, I have a question regarding events. It is possible to launch an event to, let's say, an end point and 2 BAPIs. In which order VC is going to process the 3 of them ?! To my opinion, this is not possible to tell. But, it is guaranteed that all the