Help required for dynamic quarter calculation

I have a requirement, where the user will have the liberty to choose his self defined Quarter and the report output will be grouped based on what he selects.
The data in the table is at daily grain.
So ,if the user selects date as 1st April and number of quarters as 2.
The report should show the data aggregated for previous 2 quarters where 1st April is the start date.
i.e.Feb-March-April as Q2
and Nov-Dec-Jan as Q1
Please suggest how to implement this.
Best Regards,
Sud

Hi,
Welcome to the forum!
Whenever you have a question, please post a little sample data (CREATE TABLE and INSERT statements) for all the tables involved, so the people who want to help you can re-create the problem and test their ideas. Also post the results you want from that data, and an explanation of how you get those results from that data.
If the problem involves parameters (such as the number of quarters you want, and the starting point of one of the quarters) then post a few sets of parameters, and the results you want from the same sample data for each set.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
See the forum FAQ {message:id=9360002}
Here's one way you can pass the set the number of quarters, and the starting date of the last quarter wanted:
WITH   params      AS
     SELECT  TO_DATE ( '01-Apr-2012'     -- Beginning of last quarter
               , 'DD-Mon-YYYY'
               )     AS s_date
     ,     5          AS num_quarters
     FROM     dual
,     quarters_wanted         AS
     SELECT  ADD_MONTHS ( start_date)
                  , 3 * (1 - LEVEL)
                  )   AS start_dt
     ,     ADD_MONTHS ( start_date)
                  , 3 * (2 - LEVEL)
                  )   AS end_dt
     FROM     params
     CONNECT BY     LEVEL <= num_quarters
SELECT       q.start_date
,       COUNT (*)     AS num_rows
FROM       quarters_wanted  a
JOIN       your_table        t  ON  t.date_column  >= q.start_date
                       AND t.date_coplumn <  q.end_date
GROUP BY  q.start_date
;No matter what date you pick (it doesn't have to be the beginning of a month) or how many quarters you want, you only have to change 2 lines in the params sub-query.
If you want to include quarters that have no data in your table (with a COUNT of 0) then change the inner JOIN in the main query to a LEFT OUTER JOIN.

Similar Messages

  • Help required for unicode compatibilty

    Dear All,
    We are in a process of analyzing the impact of unicode compatibility for our environment.
    Following is our scenario:
    - ECC6.0 is non unicode systsem
    - Need to buid unicode CRM 7, SCM 7, PI 7.1 and BI7
    - Need to integrate the above systems to non unicode ECC system.
    Our questions are :
    1. Is there any performance consideration when using communication between an Unicode and non-Unicode system?
       Is Unicode - Unicode faster than Unicode - non-Unicode communication performance wise?
    2. Do we face any  technical or functinal problems while trying to integrate
       unicode BI/ NW Java Stack  to non unicode systems.
    3. Do we need to review our sizing estimations due to unicode implemenation?
    5. what will be the storage consumption increase for unicode systems compared to non unicode?
    It would be greatly helpful for me if you can clarify these doubts.
    Thanks and Regards

    Hi,
    1. I think no one has really measured this. I expect a slightly higher requirement for Unicode <--> Non-Unicode interfaces.
    2. Please have a look at SAP Notes 838402, 73606, 975768 and 1358929 for restrictions in Non-Unicode systems. SAP highly recommends to go for Unicode in the whole landscape.
    3. and 5.  If you use the SAP quicksizer (http://service.sap.com/quicksizing), then Unicode is integrated.
    " Please note that the Quick Sizer results include Unicode requirements. For more
    information on additional requirements caused by Unicode, see
    http://service.sap.com/unicode -> Unicode Media Library -> Unicode information on
    specific topics: SAP Business Suite Unicode Hardware Requirements"
    Best regards,
    Nils Buerckel
    SAP AG

  • Balance sheet required for current quarter and previous quarter

    Hi Guys,
                 I am using 0FIGL_C10 cube for balance sheet report,i need to create balances for current quarter and previous quarter.
    user will enter the fisper, based on fisper it has to show the current quarter and previous quarter balance.
    how to calculate the quarter using fisper.

    you can use offset with ranges.
    or
    just offset of -1 , -2 & -3 seperately in 3 selections and add it in one column in formula (this will give u current quarter).
    similarly offset of -4, -5 , -6 will give u previous quarter result.
    total of 6 selection and 2 formulas. hide all selections from display.

  • PCUI 4.0, Search Help Required for New field

    Hi everyone
    I am working in CRM 4.0 Sales Order application
    We created a new field in CRM sales Order in Header level in SAP GUI through EEWB.
    The search help for the new field is working fine in SAP GUI. We want to add the same field with F4 help functionaliity in PCUI as well.
    The field has been added in structure CRMT_BSP_SLS_OD1_General. It also shows domain value for the field however Origin of input field ie empty
    The field has been added in PCUI and is successfully showing data inputted in SAPGUI
    However we need search help functionality for the field
    i tried these two steps
    1) i checked on domain value checkbox and changed the field from input to dropdown. However the dropdown is empty in PCUI. Whenever i check box domain values for some field then all the possible values in SPA GUI are displayed in PCUI, however this is not working here.
    2) I put Value_table in F4 of the field
    This is also throwing up empty values
    Am i missing something in this case
    Please let me know how to go about it
    TIA
    Asad

    Hi Frederic
    Thanks for your response
    I am not sure what is meant by regenerating the field group in this case
    I added the entries for my view in the field group and generated the layout of the field group (If this is what you mean)
    The field is working fine. I am able to save values to the field and able to see values saved in GUI.
    I haven't linked search help of the field in PCUI
    I am not sure how to go about it.
    I used the data element in the structure for the field.
    The data element has Domain entry in <b>Entry Help/Check</b> of the structure
    If i check the Domain Value checkbox in my field group then the domain values should be available in dropdown if the field is dropdown
    However i am not able to see the possible values of the field (It is present in SAP GUI)
    Does something else needs to be done in this case
    TIA
    Asad

  • Seeburger help required for 810 and Dispatch Advice (IDOC type DESADV).

    Hi All,
    1. Please let me know blogs which clearly shows settings for Seeburger components for 850 (Purchase Order) to IDOC Scenario
    --- Seeburger Workbench
    --- Seeburger Mapping Designer (BIC)
    --- Seeburger Counter and Varaibles
    --- Seeburger AS2 Spoke
    --- Any other Seeburger Component setting required
    I have understand blog for 850 -- /people/rajeshkumar.pasupula/blog/2009/08/05/wanna-implement-seeburger-for-edi-find-the-booster
    2. Anybody has blog for 810 or Dispatch Advice (IDOC type DESADV).
    3. Can anybody provide me Mapping Logic (at field level) done in XI/PI for 850, 810 , Dispatch Advice (IDOC type DESADV) .
    Regards

    Hi Rickkk,
    1. Please let me know blogs which clearly shows settings for Seeburger components for 850 (Purchase Order) to IDOC Scenario
    --- Seeburger Workbench
    --- Seeburger Mapping Designer (BIC)
    --- Seeburger Counter and Varaibles
    --- Seeburger AS2 Spoke
    --- Any other Seeburger Component setting required
    For SEEBURGER workbench please go through this blog and navigate the enbebbed links furthur to know about Seeburger workbench too.
    /people/prateek.srivastava3/blog/2009/08/01/seeburger--part-1--the-basics
    2
    2. Anybody has blog for 810 or Dispatch Advice (IDOC type DESADV).
    For 810 i think the procedure would be the same but themseeburger mapping program that validates the ANSX 810 would be different.As far as 997is concerned 997 is a functional acknowledgement.Its a genric format that is used to send acknowledgement for any EDI transaction set that has been sent.
    3. Can anybody provide me Mapping Logic (at field level) done in XI/PI for 850, 810 , Dispatch Advice (IDOC type DESADV) .
      The logic will be based on the trading partner guidelines which will contain the description of all the semantic and syntactiic description about the segments ,its feilds.we need to consider the guidelines and target side specifications too while mapping.
    Thanks,
    Ram.

  • Input help required for parameter on the selection screen

    hi all,
    i have created two parameters on the selection screen.
    1. deptno
    2.empname
    so my requirement is if i input any deptno then i should get all
    the empname corresponding to that deptno in the parameter empname
    ie for deptno 10 there should be f4 help for empname.
    here i am pasting my code plz check where i am doing wrong--
    *& Report  ZTEST10
    *& Developer
    *& Date:   &DATE
    REPORT  ZTEST10.
    tables: zemployee1.
    parameters: p_deptno like zemployee1-deptno,
                p_empnam like zemployee1-empname.
    Data: begin of itab occurs 0,
           deptno like zemployee1-deptno,
           empname like zemployee1-empname,
           empno like zemployee1-empno,
           end of itab.
    At selection-screen on value-request for p_empnam.
    select empname
            from zemployee1
            into corresponding fields of table itab
            where deptno = p_deptno.
        CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
          EXPORTING
          DDIC_STRUCTURE         = ' '
            retfield               = 'empname'
          PVALKEY                = ' '
           DYNPPROG               = sy-repid
           DYNPNR                 = sy-dynnr
          DYNPROFIELD            = 'p_empnam'
          STEPL                  = 0
          WINDOW_TITLE           =
          VALUE                  = ' '
          VALUE_ORG              = 'C'
          MULTIPLE_CHOICE        = ' '
          DISPLAY                = ' '
          CALLBACK_PROGRAM       = ' '
          CALLBACK_FORM          = ' '
          MARK_TAB               =
        IMPORTING
          USER_RESET             =
          tables
            value_tab              = itab
          FIELD_TAB              =
          RETURN_TAB             =
          DYNPFLD_MAPPING        =
        EXCEPTIONS
          PARAMETER_ERROR        = 1
          NO_VALUES_FOUND        = 2
          OTHERS                 = 3
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    I will award ur efforts.
    Thanks
    sanjeev

    Hi Sanjeev,
    If you input any deptno and you should get all the empname corresponding then first you need to use CALL FUNCTION 'DYNP_VALUES_READ'.
    EXPORTING
        DYNAME                         = sy-repid
        DYNUMB                         = sy-dynnr
      TRANSLATE_TO_UPPER             = ' '
       REQUEST                        = 'A'
      PERFORM_CONVERSION_EXITS       = ' '
      PERFORM_INPUT_CONVERSION       = ' '
      DETERMINE_LOOP_INDEX           = ' '
      TABLES
        DYNPFIELDS                     = gt_dynp
    declare: DATA : gt_dynp LIKE dynpread OCCURS 0.
    loop at gt_dynp into wt_dynp where fieldname = 'P_SUPRID-LOW'.
      lv_low = wt_dynp-fieldvalue.
      endloop.
    Then while selecting use this p_superid-low instead of p_deptno.
    Then :
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    After this funtion module:
    write:
      IF sy-subrc = 0.
        READ TABLE itab
    INDEX 1.
        'p_empnam' = return_tab-fieldval.
    Declare return_tab as:
        DATA: return_tab   LIKE ddshretval OCCURS 0 WITH HEADER LINE.
    Thanks,
    Shweta
      ENDIF.

  • Help Required for Adobe Forms.....

    Hello All,
    I have a very unique requirement as such we have a form and in the "TO" string field where we specify the email address of the receivers, now we want to send address memo to multiple users, however in our search window we can search only one name at a time & need to open search window every time for every new user to be included in the address field.  We need to have AJAX type of functionality such as AJAX does asynchronous calls to the back-end and get help values dynamically even when the user is entering help values.
    In my case if I start typing S in the manager filed, an event should get triggered and return back the names of all managers who start with the letter S,
    If we go to Google.com and start typing, as you type,e Google  gets help values and displays them below the  input field. This is based on making asynchronous calls to the back-end.
    We want to send interactive adobe forms to the multiple users for their approval or information. while entering email ids of multiple users, we need to have functionality as described above.
    I'll appreciate if anyone can help with some clear steps, document link or working code sample etc.
    Regards,
    Moderator message: sorry wrong forum, please have a look in the forum for "Adobe Interactive Forms".
    Edited by: Thomas Zloch on May 25, 2011 10:49 AM

    Dear Sunitha,
    Thanks for your reply.
    Can you please specify how to create a virtual table and Associated dataset in Adobe Forms.
    Our scenario is to create a Sales Order in SAP via Adobe Forms through Offline.
    Please find the below image.
    Data for Company Code and Plant is available in 2 Internal Table.
    Please assist in the following
    How to combine these 2 Internal tables inside Adobe Forms.
    Filter the values of Plant based on Company Code.

  • Help required for improving performance of the Query

    Hello SAP Techies,
    I have MRP Query which shows Inventory projection by Calendar Year/Month wise.
    There are 2 variables Plant and Material in free charateristics where it has been restricted by replacement of Query result .
    Another query is Control M Query which is based on multiprovider. Multiprovider is created on 5 cubes.
    The Query is taking 20 -15 Mins to get the result.
    Due to replacement path by query result for the 2 variables first the control M Query is excuted. Business wanted to see all those materials in MRP query which are allocated to base plant hence they designed the query to use replacement Path by Query result. So it will get all the materials and plants from the control M query and will find the Invetory projection for the same selection in MRP query.
    Is there any way I can improve the performance of the Query.
    Query performance has been discussed innumerable times in the forums and there is a lot of information on the blogs and the WIKI - please search the forums before posting and if the existing posts do no answer your question satisfactorily then please raise a new post - else almost all the answers you get will be rehashed versions of previous posts ( and in most cases without attribution to the original author )
    Edited by: Arun Varadarajan on Apr 19, 2011 9:23 PM

    Hi ,
    Please see if you can make these changes currently to the report . It will help in improving the performance of the query
    1. Select the right read mode.
        Reading data during navigation minimizes the impact on
         the application server resources because only data that
        the user requires will be retrieved.
    2. Leverage filters as much as possible. Using filters contributes to
       reducing the number of database reads and the size of the result set,
        hereby significantly improving query runtimes.
       Filters are especially valuable when associated with u201Cbig
        dimensionsu201D where there is a large number of characteristics such as
        customers and document numbers.
    3. Reduce RKFs in the query to as few as possible. Also, define
    calculated & RKFs on the Infoprovider level instead of locally within the query.
    Regards
    Garima

  • Help! Urgent help required for adjusting image

    Hi - hoping someone can help.
    I sent the attached PDF -  http://www.sensecreative.co.uk/custUploads/SENSE-36-7977-95928/77317/SENSE-36-7977-95928-7 7317-2440.zip - to print with Sense Creative. The cards were printed and they've turned out quite visibly green on the reverse (where it should be white).
    I've printed the artwork on several printers I have access to and it looks as it should, however SC are saying that the issue is with the artwork
    "The green tinge you see on the reverse of these cards is prevalent in the artwork. The makeup of the background is approximately c-15 m-11 y-15 k-0. the predominant levels of the yellow and cyan will give you the green tint. Upping the levels of the artwork in or substituting the cyan, magenta and yellow levels with more black in Photoshop will likely give you the result you require. We are satisfied that in both instances, the artwork has printed correctly and the colours are well within tolerance given the nature of the artwork."
    So, I'm in a bit of a pickle as the cards are needed for an event next week.
    How do I change the image levels? Or are they talking nonsense and trying to pass the buck?
    Help!

    station_two,
    Acrobat View> Tools> Print Production> Output Preview: Object Inspector will call out the objects' profiles if you click on each one individually (in this case all appeaar to be "Device CMYK" or Untagged CMYK)
    untagged CMYK has the same pitfalls as untagged RGB... if one applys or assumes the wrong SOURCE PROFILE it doesn't CONVERT colors to Monitor RGB or Print Space correctly

  • Urgent help required for network configuration

    sir
    i have a mixed scenario right now.
    I have only three computer on home network.
    1.vista accer travelmate 4720 laptop loaded with vista sp1 ultimate
    2.normal pc : Core2 duo with XFX ATI REDION graphics card and this pc is loaded with OEL 5.3.x linux but this pc has 2 NICs(eth 0,eth 1) I have connected both with a switch and the switch is connected to a modem for internet.can I use one NIC as private and another NIC as public to access internet?
    3. normal pc : P4 HT and its loaded with win xp sp2 having eth 0
    how to set my network.
    I have connected each NIC with a D-Link switch.And the D-Link switch is connected with DataOne Nokia Siemens network c2110 modem.
    But problems are that
    1) each time i can connect only one PC at a time.
    2)OEL 5.3.x is not connected to the specified modem ever....by [adsl seup|http://forums.oracle.com/forums/thread.jspa?threadID=832112&tstart=0] command.should i configure it during installation?is there any easy shell scriot avilable to do this stuff?
    please help as soon as you can.......
    regards
    Edited by: mango_boy on Sep 7, 2009 4:44 AM

    ifconfig output:
    eth1      Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF 
              inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:1 errors:0 dropped:0 overruns:0 frame:0
              TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:243 (243.0 b)  TX bytes:9406 (9.1 KiB)
              Interrupt:16 Base address:0xec00
    lo        Link encap:Local Loopback 
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:3779 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3779 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:6124500 (5.8 MiB)  TX bytes:6124500 (5.8 MiB)
    virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00 
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:8360 (8.1 KiB)
    xenbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00 
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)adsl-setup output
    [root@localhost ~]# adsl-setup
    Welcome to the ADSL client setup.  First, I will run some checks on
    your system to make sure the PPPoE client is installed properly...
    LOGIN NAME
    Enter your Login Name (default root): kris_9929
    INTERFACE
    Enter the Ethernet interface connected to the ADSL modem
    For Solaris, this is likely to be something like /dev/hme0.
    For Linux, it will be ethX, where 'X' is a number.
    (default eth0): eth1
    Do you want the link to come up on demand, or stay up continuously?
    If you want it to come up on demand, enter the idle time in seconds
    after which the link should be dropped.  If you want the link to
    stay up permanently, enter 'no' (two letters, lower-case.)
    NOTE: Demand-activated links do not interact well with dynamic IP
    addresses.  You may have some problems with demand-activated links.
    Enter the demand value (default no):
    DNS
    Please enter the IP address of your ISP's primary DNS server.
    If your ISP claims that 'the server will provide dynamic DNS addresses',
    enter 'server' (all lower-case) here.
    If you just press enter, I will assume you know what you are
    doing and not modify your DNS setup.
    Enter the DNS information here: server
    PASSWORD
    Please enter your Password:
    Please re-enter your Password:
    USERCTRL
    Please enter 'yes' (three letters, lower-case.) if you want to allow
    normal user to start or stop DSL connection (default yes): yes
    FIREWALLING
    Please choose the firewall rules to use.  Note that these rules are
    very basic.  You are strongly encouraged to use a more sophisticated
    firewall setup; however, these will provide basic security.  If you
    are running any servers on your machine, you must choose 'NONE' and
    set up firewalling yourself.  Otherwise, the firewall rules will deny
    access to all standard servers like Web, e-mail, ftp, etc.  If you
    are using SSH, the rules will block outgoing SSH connections which
    allocate a privileged source port.
    The firewall choices are:
    0 - NONE: This script will not set any firewall rules.  You are responsible
              for ensuring the security of your machine.  You are STRONGLY
              recommended to use some kind of firewall rules.
    1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
    2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
                    for a LAN
    Choose a type of firewall (0-2): 1
    Start this connection at boot time
    Do you want to start this connection at boot time?
    Please enter no or yes (default no):no
    ** Summary of what you entered **
    Ethernet Interface: eth1
    User name:          xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Activate-on-demand: No
    DNS addresses:      Supplied by ISP's server
    Firewalling:        STANDALONE
    User Control:       yes
    Accept these settings and adjust configuration files (y/n)? y
    Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
    Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
      (But first backing it up to /etc/ppp/chap-secrets.bak)
      (But first backing it up to /etc/ppp/pap-secrets.bak)
    Congratulations, it should be all set up!
    Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'
    to bring it down.
    Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'
    to see the link status.Edited by: mango_boy on Sep 7, 2009 9:02 AM
    added adsl setup output
    Edited by: mango_boy on Sep 7, 2009 9:15 AM

  • Urgent help required for update Plz help!!

    Hi i am updating my E51 and its displaying updating software please wait estimated time left 15 minutes for the past 1 hour.
    Please tell me what should i do....
    Its really urgent pls help....

    Hi,
    There might be a problem with either the NSU or the phone itself. Any updates on what happened?
    Next time make sure you meet the certain system requirements before proceeding with the update.
    Message Edited by nj15 on 01-Oct-2008 01:44 PM

  • Urgent Help Required for Connect Four Game

    Hi all,
    I am a student and I have a project due 20th of this month, I mean May 20, 2007 after 8 days. The project is about creating a Connect Four Game. I have found some code examples on the internet which helped me little bit. But there are lot of problems I am facing developing the whole game. I have drawn the Board and the two players can play. The players numbers can fill the board, but I have problem implementing the winner for the game. I need to implement the hasWon() method for Horizontal win, Vertical win and Diagonal win. I also found some code examples on the net but I was unable to make it working. I have 5 classes and one interface which I m implementing. The main problem is how to implement the hasWon() method in the PlayGame class below with Horizontal, vertical and diagonal moves.
    Sorry there is so much code.
    This the interface I must implement, but now I am only implementing the int move() of this interface. I will implement the rest later after solving the winner problem with your help.
    Interface code..............
    interface Player {
    void init (Boolean color);
    String name ();
    int move ();
    void inform (int i);
    Player1 class......................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class Player1 implements Player
    public Player1()
    public int move()
    Scanner scan = new Scanner(System.in);
    // BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
    int player1;
    System.out.println ("What is your Number, player 1?");
    player1 = scan.nextInt();
    System.out.println ("Hey number"+player1+" are you prepared to CONNECT FOUR");
    System.out.println();
    return player1;
    //Player.move();
    //return player1;
    }//end move method
    public void init (Boolean color)
    public void inform (int i)
    public String name()
    return "Koonda";
    }//end player1 class
    Player2 class...........................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class Player2 implements Player
    public int move()
    //int cup0,cup1,cup2,cup3,cup4,cup5,cup6;
    // cup0=5;cup1=5;cup2=5;cup3=5;cup4=5;cup5=5;cup6=5;
    //int num1, num2;
    Scanner scan = new Scanner(System.in);
    // BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
    int player2;
    System.out.println ("What is your Number, player 2?");
    player2 = scan.nextInt();
    System.out.println ("Hey "+player2+" are you prepared to CONNECT FOUR");
    System.out.println();
    //return player1;
    return player2;
    }//end move method
    public void init (Boolean color)
    public void inform (int i)
    public String name()
    return "malook";
    }//end player1 class
    PlayGame class which contains all the functionality.........................................................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class PlayGame
    //Player player1;
    //Player player2;
    int [][]ConnectFourArray;
    boolean status;
    int winner;
         int player1;
         int player2;
         public PlayGame()
              //this.player1 = player1;
              //this.player2 = player2;
         public void StartGame()
         try{
         // int X = 0, Y = 0;
         //int value;
         int cup0,cup1,cup2,cup3,cup4,cup5,cup6;
    cup0=5;cup1=5;cup2=5;cup3=5;cup4=5;cup5=5;cup6=5;
         int[][] ConnectFourArray = new int[6][7];
         int num1, num2;
         for(int limit=21;limit!=0;limit--)
    BufferedReader selecter = new BufferedReader (new InputStreamReader(System.in));
    String column1;
    System.out.println();
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    System.out.println ("Please Select a column of 0 through 6 ");
    column1 = selecter.readLine();
    num1= Integer.parseInt(column1);
    System.out.println();
    if (num1==0){
    ConnectFourArray[cup0][0]=1;
    cup0=cup0-1;
    else if (num1==1){
    ConnectFourArray[cup1][1]=1;
    cup1=cup1-1;
    else if (num1==2){
    ConnectFourArray[cup2][2]=1;
    cup2=cup2-1;
    else if (num1==3){
    ConnectFourArray[cup3][3]=1;
    cup3=cup3-1;
    else if (num1==4){
    ConnectFourArray[cup4][4]=1;
    cup4=cup4-1;
    else if (num1==5){
    ConnectFourArray[cup5][5]=1;
    cup5=cup5-1;
    else if (num1==6){
    ConnectFourArray[cup6][6]=1;
    cup6=cup6-1;
    System.out.println();
    BufferedReader selecter2 = new BufferedReader (new InputStreamReader(System.in));
    String column2;
    System.out.println();
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    System.out.println ("Please Select a column of 0 through 6 ");
    column1 = selecter.readLine();
    num1= Integer.parseInt(column1);
    System.out.println();
    if (num1==0){
    ConnectFourArray[cup0][0]=2;
    cup0=cup0-1;
    else if (num1==1){
    ConnectFourArray[cup1][1]=2;
    cup1=cup1-1;
    else if (num1==2){
    ConnectFourArray[cup2][2]=2;
    cup2=cup2-1;
    else if (num1==3){
    ConnectFourArray[cup3][3]=2;
    cup3=cup3-1;
    else if (num1==4){
    ConnectFourArray[cup4][4]=2;
    cup4=cup4-1;
    else if (num1==5){
    ConnectFourArray[cup5][5]=2;
    cup5=cup5-1;
    else if (num1==6){
    ConnectFourArray[cup6][6]=2;
    cup6=cup6-1;
    System.out.println();
    System.out.println();
    catch (Exception E){
    System.out.println("Error with input");
    System.out.println("Would you like to play again");
    try{
    String value;
    BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
    // Scanner scan = new Scanner(System.in);
    System.out.println("Enter yes to play or no to quit");
    // value = scan.nextLine();
    // String value2;
    value = reader.readLine();
    //value2 = reader.readLine();
    if (value.equals("yes"))
    System.out.println("Start again");
    StartGame(); // calling the StartGame method to play a game once more
    else if (value.equals("no"))
    System.out.println("No more games to play");
    // System.exit(0);
    else
    System.exit(0);
    System.out.println();
    catch (Exception e){
    System.out.println("Error with input");
    finally
    System.out.println(" playing done");
    //StartGame();
    //check for horizontal win
    public int hasWon()
    int status = 0;
    for (int row=0; row<6; row++)
    for (int col=0; col<4; col++)
    if (ConnectFourArray[col][row] != 0 &&
    ConnectFourArray[col][row] == ConnectFourArray[col+1][row] &&
    ConnectFourArray[col][row] == ConnectFourArray[col+2][row] &&
    ConnectFourArray[col][row] == ConnectFourArray[col+3][row])
    //status = true;//int winner;
    if(status == player1)
    System.out.println("Player 1 is the winner");
    else if(status == player2)
    System.out.println("Player 2 is the winner" );
    }//end inner for loop
    }// end outer for loop
    } // end method Winner
    return status;
    }//end class
    ClassConnectFour which designs the board........................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class ClassConnectFour
         //Player player1;
         //Player player2;
         public ClassConnectFour()
              //this.player1 = player1;
    public void DrawBoard()
    int[][] ConnectFourArray = new int[6][7] ;
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    }//end class
    TestConnetFour class which uses most of the above class..................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class TestConnectFour
    public static void main(String[] args)
    ClassConnectFour cf = new ClassConnectFour();
    cf.DrawBoard();
    Player1 player1 = new Player1();
    Player2 player2 = new Player2();
    player1.move();
    player2.move();
    System.out.println("Number 1 belongs to player " + player1.name());
    System.out.println("Number 2 belongs to player " + player2.name());
    PlayGame pg = new PlayGame();
    pg.StartGame();
    pg.hasWon();
    //pg.Play();
    //System.out.println(player.name());
    //System.out.println(player2.name());
    }// end main
    }//end class
    I am sorry for all this junk code but I only understand it this way. Your urgent help is required. Looking forward to your reply.
    Thanks in advance.
    Koonda
    //

    Hi,
    Thanks for your help but I really don't understand the table lookup algorithm. Could you please send me some code to implement that.
    I will send you the formatted code as well
    Thanks for your help.
    looking forward to your reply.
    Koonda
    Hi all,
    I am a student and I have a project due 20th of this month, I mean May 20, 2007 after 8 days. The project is about creating a Connect Four Game. I have found some code examples on the internet which helped me little bit. But there are lot of problems I am facing developing the whole game. I have drawn the Board and the two players can play. The players numbers can fill the board, but I have problem implementing the winner for the game. I need to implement the hasWon() method for Horizontal win, Vertical win and Diagonal win. I also found some code examples on the net but I was unable to make it working. I have 5 classes and one interface which I m implementing. The main problem is how to implement the hasWon() method in the PlayGame class below with Horizontal, vertical and diagonal moves.
    Sorry there is so much code.
    This the interface I must implement, but now I am only implementing the int move() of this interface. I will implement the rest later after solving the winner problem with your help.
    Interface code..............
    interface Player {
    void init (Boolean color);
    String name ();
    int move ();
    void inform (int i);
    Player1 class......................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class Player1 implements Player
    public Player1()
    public int move()
    Scanner scan = new Scanner(System.in);
    // BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
    int player1;
    System.out.println ("What is your Number, player 1?");
    player1 = scan.nextInt();
    System.out.println ("Hey number"+player1+" are you prepared to CONNECT FOUR");
    System.out.println();
    return player1;
    //Player.move();
    //return player1;
    }//end move method
    public void init (Boolean color)
    public void inform (int i)
    public String name()
    return "Koonda";
    }//end player1 class
    Player2 class...........................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class Player2 implements Player
    public int move()
    //int cup0,cup1,cup2,cup3,cup4,cup5,cup6;
    // cup0=5;cup1=5;cup2=5;cup3=5;cup4=5;cup5=5;cup6=5;
    //int num1, num2;
    Scanner scan = new Scanner(System.in);
    // BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
    int player2;
    System.out.println ("What is your Number, player 2?");
    player2 = scan.nextInt();
    System.out.println ("Hey "+player2+" are you prepared to CONNECT FOUR");
    System.out.println();
    //return player1;
    return player2;
    }//end move method
    public void init (Boolean color)
    public void inform (int i)
    public String name()
    return "malook";
    }//end player1 class
    PlayGame class which contains all the functionality.........................................................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class PlayGame
    //Player player1;
    //Player player2;
    int [][]ConnectFourArray;
    boolean status;
    int winner;
    int player1;
    int player2;
    public PlayGame()
    //this.player1 = player1;
    //this.player2 = player2;
    public void StartGame()
    try{
    // int X = 0, Y = 0;
    //int value;
    int cup0,cup1,cup2,cup3,cup4,cup5,cup6;
    cup0=5;cup1=5;cup2=5;cup3=5;cup4=5;cup5=5;cup6=5;
    int[][] ConnectFourArray = new int[6][7];
    int num1, num2;
    for(int limit=21;limit!=0;limit--)
    BufferedReader selecter = new BufferedReader (new InputStreamReader(System.in));
    String column1;
    System.out.println();
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    System.out.println ("Please Select a column of 0 through 6 ");
    column1 = selecter.readLine();
    num1= Integer.parseInt(column1);
    System.out.println();
    if (num1==0){
    ConnectFourArray[cup0][0]=1;
    cup0=cup0-1;
    else if (num1==1){
    ConnectFourArray[cup1][1]=1;
    cup1=cup1-1;
    else if (num1==2){
    ConnectFourArray[cup2][2]=1;
    cup2=cup2-1;
    else if (num1==3){
    ConnectFourArray[cup3][3]=1;
    cup3=cup3-1;
    else if (num1==4){
    ConnectFourArray[cup4][4]=1;
    cup4=cup4-1;
    else if (num1==5){
    ConnectFourArray[cup5][5]=1;
    cup5=cup5-1;
    else if (num1==6){
    ConnectFourArray[cup6][6]=1;
    cup6=cup6-1;
    System.out.println();
    BufferedReader selecter2 = new BufferedReader (new InputStreamReader(System.in));
    String column2;
    System.out.println();
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    System.out.println ("Please Select a column of 0 through 6 ");
    column1 = selecter.readLine();
    num1= Integer.parseInt(column1);
    System.out.println();
    if (num1==0){
    ConnectFourArray[cup0][0]=2;
    cup0=cup0-1;
    else if (num1==1){
    ConnectFourArray[cup1][1]=2;
    cup1=cup1-1;
    else if (num1==2){
    ConnectFourArray[cup2][2]=2;
    cup2=cup2-1;
    else if (num1==3){
    ConnectFourArray[cup3][3]=2;
    cup3=cup3-1;
    else if (num1==4){
    ConnectFourArray[cup4][4]=2;
    cup4=cup4-1;
    else if (num1==5){
    ConnectFourArray[cup5][5]=2;
    cup5=cup5-1;
    else if (num1==6){
    ConnectFourArray[cup6][6]=2;
    cup6=cup6-1;
    System.out.println();
    System.out.println();
    catch (Exception E){
    System.out.println("Error with input");
    System.out.println("Would you like to play again");
    try{
    String value;
    BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
    // Scanner scan = new Scanner(System.in);
    System.out.println("Enter yes to play or no to quit");
    // value = scan.nextLine();
    // String value2;
    value = reader.readLine();
    //value2 = reader.readLine();
    if (value.equals("yes"))
    System.out.println("Start again");
    StartGame(); // calling the StartGame method to play a game once more
    else if (value.equals("no"))
    System.out.println("No more games to play");
    // System.exit(0);
    else
    System.exit(0);
    System.out.println();
    catch (Exception e){
    System.out.println("Error with input");
    finally
    System.out.println(" playing done");
    //StartGame();
    //check for horizontal win
    public int hasWon()
    int status = 0;
    for (int row=0; row<6; row++)
    for (int col=0; col<4; col++)
    if (ConnectFourArray[col][row] != 0 &&
    ConnectFourArray[col][row] == ConnectFourArray[col+1][row] &&
    ConnectFourArray[col][row] == ConnectFourArray[col+2][row] &&
    ConnectFourArray[col][row] == ConnectFourArray[col+3][row])
    //status = true;//int winner;
    if(status == player1)
    System.out.println("Player 1 is the winner");
    else if(status == player2)
    System.out.println("Player 2 is the winner" );
    }//end inner for loop
    }// end outer for loop
    } // end method Winner
    return status;
    }//end class
    ClassConnectFour which designs the board........................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class ClassConnectFour
    //Player player1;
    //Player player2;
    public ClassConnectFour()
    //this.player1 = player1;
    public void DrawBoard()
    int[][] ConnectFourArray = new int[6][7] ;
    for ( int row=0; row < ConnectFourArray.length; row++ ){
    System.out.print("Row " + row + ": ");
    for ( int col=0; col < ConnectFourArray[row].length; col++ )
    System.out.print( ConnectFourArray[row][col] + " ");
    System.out.println();
    System.out.println();
    }//end class
    TestConnetFour class which uses most of the above class..................
    import java.util.*;
    import java.io.*;
    import javax.swing.*;
    public class TestConnectFour
    public static void main(String[] args)
    ClassConnectFour cf = new ClassConnectFour();
    cf.DrawBoard();
    Player1 player1 = new Player1();
    Player2 player2 = new Player2();
    player1.move();
    player2.move();
    System.out.println("Number 1 belongs to player " + player1.name());
    System.out.println("Number 2 belongs to player " + player2.name());
    PlayGame pg = new PlayGame();
    pg.StartGame();
    pg.hasWon();
    //pg.Play();
    //System.out.println(player.name());
    //System.out.println(player2.name());
    }// end main
    }//end classI am sorry for all this junk code but I only understand it this way. Your urgent help is required. Looking forward to your reply.
    Thanks in advance.
    Koonda

  • Help needed for dynamic update form

    I could really use some advice - I've been asked to build a time tracking application (basically a timesheet) and I have a fair bit done but the part I am really struggling with is the best way to accommodate some of the specifications. I am NOT a programmer (I have some coldfusion experience but nothing really advanced) so I have not managed to sucessfully integrate the various methods I've found on the web so far. The database is created and so are all the queries, and I have also written a cfc to handle the drop-down menu logic needed but I don't really know how to integrate it with the form.
    Our production server has ColdFusion MX7 so all the great functionality in the CF8 examples I can't use.
    The issue is the user should ideally be able to add/edit/delete multiple rows at once- I like CFGRID, and the HTML version seems best. The main issue with the Flash version is the scrolling to get to the insert/delete buttons- I couldn't see how to get rid of that. A separate add and edit form could be ok depending on how easy it is to use.
    One problem I have is that I can't work out how to have default values with the grid (the userID which is a session variable, and the date which is constantly changing- there is a cfcalendar for the user to change date).
    The biggest hurdle is the related select drop-downs I need- it's not quite as simple as the city,state,postcode examples. For the first drop down the pick an option- and for only 2 of those options there is a second drop-down. Anything else and it stops there. For the second drop-down, there are 2 options, and depending on which one of these they pick the 3rd drop-down pulls a query from one or another table in the database (2 entirely different things). The three  options have different database tables. The main timesheet table just stores the id number from those tables (so I also need to display the names on the drop-down from the options tables not the number).
    I played with simple and complicated javascript and coldfusion solutions as well, but because it's a form to update records and also because of the above specs I just couldn't get anything to work right. I tried binding with the cfc and nothing would bind, plus I don't know how to make all happen without a page reload.
    Does anyone have any advice for the best approach to this? As I mentioned I've got tables, queries and even a cfc but I'm not too clear on how to put it all together properly within the constraints of MX7.
    PS I also can't post a lot of code because of where I work- I know that's not helpful but am looking for the best approach to this, then I can work on the details. Right now I am jumping from solution to solution and not getting anywhere.

    Well, a lot of code has come and gone because I couldn't make it work, where I'm currently at is:
    <cfform name="updateform" id="updateform" action="#CurrentPage#?#CGI.QUERY_STRING#">
      <cfgrid name="MainData" height="400" insertbutton="add" deletebutton="remove" query="getMainData" insert="yes" delete="yes" rowheight="20"  selectmode="edit" format="html">
      <cfgridcolumn name="id" display="no">
    <cfgridcolumn name="userID" display="no">
    <cfgridcolumn name="entrydate" display="no">
    <cfgridcolumn name="activityID" >
    <cfgridcolumn name="typeID">
    <cfgridcolumn name="projectID" values="#ValueList(getProjects.id)#" valuesdisplay="#ValueList(getProjects.name)#">
    <cfgridcolumn name="time" width="10">
    <cfgridcolumn name="comment" width="150">
    </cfgrid>
    <cfinput type="hidden" name="entrydate" value="#Session.username#">
    <cfinput type="hidden" name="entrydate" value="#editdate#">
    <cfinput name="update" type="Submit" value="Update">
    </cfform>
    ** for some reason getProjects.name doesn't work and causes an error. I haven't worked out how to get the default inputs for the date and user ID to work either. I also tried binding and a flash form somewhere along the way.
    ** the CFC is below, #ds# didn't work and I had to put in the actual DSN name, not sure why, but anyway this is the logic of the thing. Ideally I would like to use this logic with the cfgrid, but I'm not sure if that is possible? It seems like it would be the most user friendly approach.
    The CFC so far is:
    <cfcomponent>
       <cffunction name="getActivities" access="remote" returnType="query">
            <cfquery name="getActivities" datasource="#ds#">
    SELECT * FROM timesheet_activities
    </cfquery>
            <cfreturn getActivities>
        </cffunction>
        <cffunction name="getTypes" access="remote" returnType="query">
        <cfargument name="Activity" type="any" required="true">
        <cfif ARGUMENTS.Activity EQ "">
            <cfset getType = "">
        <cfelse>
            <cfquery name="getTypes" datasource="#ds#">
            SELECT * FROM timesheet_type
            </cfquery>
        </cfif>
        <cfreturn getTypes>
        </cffunction>
        <cffunction name="GetProjects" access="remote" returnType="query">
        <cfargument name="Activity" type="any" required="true">
        <cfargument name="Type" type="any" required="true">
        <cfif ARGUMENTS.Activity EQ "" OR ARGUMENTS.Type EQ "">
            <cfset LstProjects = "">
        <cfelseif ARGUMENTS.Activity EQ "1" OR "3">
        <cfquery name="getProjects" datasource="#ds#">
    SELECT id,name FROM projectsa
    WHERE completed = 'false'
    </cfquery>
    <cfelse>
    <cfquery name="getEProjects" datasource="#dse#">
    SELECT id,name FROM projectsb
    WHERE statusID = '6'
    </cfquery>
        </cfif>
        <cfreturn getProjects>
        </cffunction>
    </cfcomponent>
    Any attempts to actually use the cfc didn't work. I tried to use it with a normal html update form and got the message- failed to bind, Activity didn't exist. I also tried to bind it to a flash grid. The argument for Activity needs to come from the drop-down Activity type selected. Maybe I'm missing something.
    ETA:
    just moved everything to the live MX7 server (because my dev server is Coldfusion8) and I get the following:
    Attribute validation error for tag CFGRID. The tag does not allow the attribute(s) BINDONLOAD,BIND.
    Does this mean I definitely can't use the CFC with the cfgrid on MX7? Or is there a way to do it?
    Any advice would be greatly appreciated.

  • Help required for Payment Term change report in SAP BI

    Dear Experts ,
    I have got a client requirement to develop a report to present all the purchase orders for which there has been a change in Payment Term. Could any one provide his input as which extractor can give me this information or where can I get this data to capture changes in Payment Term in ECC.
    Any suggestions welcome !
    Regards
    Anurag Krishna Dev

    HI,
    Purchase relavant information will be getting from
    2LIS_02_ITM     -  item level information
    2LIS_02_HDR   - Header level information
    2LIS_02_SCL   - schedule level information
    find the below link hope it will help you get more idea...
    http://help.sap.com/saphelp_sm32/helpdata/en/1d/f4383fdb800804e10000000a114084/frameset.htm
    Regards
    BVR

  • Help required for SSO

    Hi,
    I am looking for a single sign-on solution for Tomcat platform. This solution should work on Active Directory-Internet Explorer 6-Tomcat 5 combo.
    The requirement is - When a user requests a certain page from his browser, the web server must be able to identify the (active directory domain name/domain user name) from his request.
    I tried a product by appliedcrypto.com, which works on Kerberos/SPNEGO, but it doesn't seem to be working.
    I am running on a very tight schedule, please help me out.
    Thanx and Regards
    Vibhor

    Have you checked out the Oracle Single Sign On Application Developer's Guide that comes with the Portal Services documentation? Here's a link to it on OTN.
    http://technet.oracle.com/docs/products/ias/doc_library/ias102/portal.102/a86782/toc.htm
    You may find it helpful.

Maybe you are looking for

  • Can connect wow wireless MAC

    I returned my headsett because it stopped charging after a few months. Today i received my new wow headsett and i was happy again How ever it wont connect .. it shows up in my system and it works a few minutes, then it shuts down. I need to restart t

  • Login problem in sun fire V490 through Hyper terminal

    I am a new user of sun Solaris 10 . In my sun fire v490 server every thing is configured fine there is no fault in booting .But when I configured the file /etc/inet/hosts in solaris 10 and missed to configure the file /etc/inet/netmask and /etc/inet/

  • How can I install JWSDP in LINUX?

    I am not able to do it in my PC under Linux read hat 7.2, Can someone help me? Thanks

  • QuickTime out of date error...

    Everytime I load QuickTime or load a program that makes use of it I get the following popup: QuickTime Some of your Quick Time software is out of date. You can fix the problem by updating to the latest version. What I've tried... reinstalling QuickTi

  • Having  trouble with FaceTime on iPad

    Since my 11 year old daughter played around with FaceTime on my iPad 2 I can no longer sign into FaceTime. I've updated my Apple ID password which works fine with my Mac and my iPhone. Has anybody got any ideas?