Logical Problem

I've got a problem with simple vb logic. Not sure what's going on. I can't seem to get this if statement to fire the way I'd expect.
If room.HasFirstVisit = True And String.IsNullOrEmpty(room.FirstVisitDescription) Then
MsgBox("FIRED")
canAddRoom = False
errorList.Add("Room has first visit checked, but no description was given for first visit.")
End If
I've tried
If room.HasFirstVisit = True And room.FirstVisitDescription = "" Then
MsgBox("FIRED")
canAddRoom = False
errorList.Add("Room has first visit checked, but no description was given for first visit.")
End If
I have no idea why this isn't working.

hmm,
Thanks for the demo :) Looks exactly the same as what you've shown, at least logically. Not sure why it didn't work..
Public Sub applycreate_room()
Dim map As cMap = New cMap
Dim mainWindow As MainWindow = New MainWindow
mainWindow = Application.Current.MainWindow
map = mainWindow.return_map()
Dim room As cRoom = New cRoom
Dim canAddRoom As Boolean = False
Dim errorList As List(Of String) = New List(Of String)
''Room's basic info
room.Name = txtRoomName.Text
room.HasFirstVisit = chkHasFirstVisit.IsChecked
rtxFirstVisitDescription.SelectAll()
room.FirstVisitDescription = rtxFirstVisitDescription.Selection.Text
room.FirstVisitDescription = room.FirstVisitDescription.Trim(" ")
rtxRoomDescription.SelectAll()
room.Description = rtxRoomDescription.Selection.Text
''Rooms connected rooms
Dim roomText() As String
room.North = cmboNorthRoom.SelectedItem.ToString()
roomText = room.North.Split(" ")
room.North = roomText(roomText.Count - 1)
roomText = Nothing
room.NorthEast = cmboNorthEastRoom.SelectedItem.ToString()
roomText = room.NorthEast.Split(" ")
room.NorthEast = roomText(roomText.Count - 1)
roomText = Nothing
room.East = cmboEastRoom.SelectedItem.ToString()
roomText = room.East.Split(" ")
room.East = roomText(roomText.Count - 1)
roomText = Nothing
room.SouthEast = cmboSouthEastRoom.SelectedItem.ToString()
roomText = room.SouthEast.Split(" ")
room.SouthEast = roomText(roomText.Count - 1)
roomText = Nothing
room.South = cmboSouthRoom.SelectedItem.ToString()
roomText = room.South.Split(" ")
room.South = roomText(roomText.Count - 1)
roomText = Nothing
room.SouthWest = cmboSouthWestRoom.SelectedItem.ToString()
roomText = room.SouthWest.Split(" ")
room.SouthWest = roomText(roomText.Count - 1)
roomText = Nothing
room.West = cmboWestRoom.SelectedItem.ToString()
roomText = room.West.Split(" ")
room.West = roomText(roomText.Count - 1)
roomText = Nothing
room.NorthWest = cmboNorthWestRoom.SelectedItem.ToString()
roomText = room.NorthWest.Split(" ")
room.NorthWest = roomText(roomText.Count - 1)
roomText = Nothing
room.Up = cmboUpRoom.SelectedItem.ToString()
roomText = room.Up.Split(" ")
room.Up = roomText(roomText.Count - 1)
roomText = Nothing
room.Down = cmboDownRoom.SelectedItem.ToString()
roomText = room.Down.Split(" ")
room.Down = roomText(roomText.Count - 1)
roomText = Nothing
room.InRoom = cmboInRoom.SelectedItem.ToString()
roomText = room.InRoom.Split(" ")
room.InRoom = roomText(roomText.Count - 1)
roomText = Nothing
room.Out = cmboOutRoom.SelectedItem.ToString()
roomText = room.Out.Split(" ")
room.Out = roomText(roomText.Count - 1)
roomText = Nothing
'' remember to code doors.
'' Locked State of connected rooms.
room.isLockedNorth = chkLockNorthDoor.IsChecked
room.IsLockedNorthEast = chkLockNorthEastDoor.IsChecked
room.IsLockedEast = chkLockEastDoor.IsChecked
room.IsLockedSouthEast = chkLockSouthEastDoor.IsChecked
room.IsLockedSouth = chkLockSouthDoor.IsChecked
room.IsLockedSouthWest = chkLockSouthWestDoor.IsChecked
room.IsLockedWest = chkLockWestDoor.IsChecked
room.IsLockedNorthWest = chkLockNorthWestDoor.IsChecked
room.IsLockedIn = chkLockInDoor.IsChecked
room.IsLockedOut = chkLockOutDoor.IsChecked
room.IsLockedUp = chkLockUpDoor.IsChecked
room.IsLockedDown = chkLockDownDoor.IsChecked
''Blocked Text for rooms, text only applys to blocked exits.
rtxNorthBlockedText.SelectAll()
rtxNorthEastBlockedText.SelectAll()
rtxEastBlockedText.SelectAll()
rtxSouthEastBlockedText.SelectAll()
rtxSouthBlockedText.SelectAll()
rtxSouthWestBlockedText.SelectAll()
rtxWestBlockedText.SelectAll()
rtxNorthWestBlockedText.SelectAll()
rtxUpBlockedText.SelectAll()
rtxDownBlockedText.SelectAll()
rtxInBlockedText.SelectAll()
rtxOutBlockedText.SelectAll()
room.NorthBlockedMessage = rtxNorthBlockedText.Selection.Text
room.NorthEastBlockedMessage = rtxNorthEastBlockedText.Selection.Text
room.EastBlockedMessage = rtxEastBlockedText.Selection.Text
room.SouthEastBlockedMessage = rtxSouthEastBlockedText.Selection.Text
room.SouthBlockedMessage = rtxSouthBlockedText.Selection.Text
room.SouthWestBlockedMessage = rtxWestBlockedText.Selection.Text
room.WestBlockedMessage = rtxSouthWestBlockedText.Selection.Text
room.NorthWestBlockedMessage = rtxNorthWestBlockedText.Selection.Text
room.UpBlockedMessage = rtxUpBlockedText.Selection.Text
room.DownBlockedMessage = rtxDownBlockedText.Selection.Text
room.InBlockedMessage = rtxInBlockedText.Selection.Text
room.OutBlockedMessage = rtxOutBlockedText.Selection.Text
'' Room attributes
room.IsDark = chkIsDark.IsChecked
room.CanBeLit = chkCanBeLit.IsChecked
room.IsInside = chkIsInside.IsChecked
room.CanEnemiesEnter = chkEnemiesEnter.IsChecked
room.CanEnemiesLeave = chkEnemiesLeave.IsChecked
'' Test name
If room.Name = "" Then
canAddRoom = False
errorList.Add("Room needs a name.")
End If
If room.HasFirstVisit = True And Not Regex.IsMatch(room.FirstVisitDescription, "\w") Or Not Regex.IsMatch(room.FirstVisitDescription, "\W") Then
MsgBox("FIRED")
canAddRoom = False
errorList.Add("Room has first visit checked, but no description was given for first visit.")
End If
If canAddRoom = True Then
Else
Dim errorLog As roomerrorlog = New roomerrorlog
errorLog.Owner = Me
For Each errorText As String In errorList
Dim errorLabel As Label = New Label
errorLabel.Content = "Error: " + errorText
errorLabel.Margin = New Thickness(0, 4, 0, 0)
errorLog.errorStack.Children.Add(errorLabel)
errorLog.Height = errorLog.Height + 12
Next
errorLog.Show()
End If
End Sub

Similar Messages

  • The logical problem in turnover in  for ?

    Welcome
    wrote this code, everything is true but there is a logical problem to be solved first idea of this program is a moving train to the contrary, it can stop and operated once again and that can add cars and locomotives and can delete it but there is a problem when adding that the train carriages have remained stable cart after the first turnover Thus ...
    THAT shows us the error ..
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Train extends JFrame implements ActionListener{
        private boolean check = false;
        private boolean stopped = true;
        private boolean add = false;
        private int trainPlace = 0;
        private int INDEX_START = 0;
        public int speed = 300;
        private ImageIcon CurrentImage ;
        private boolean front=true, back=false ;
        private int carrNum = 0 ;
        private JPanel screen, area , controlroom;
        private JButton[][] street;
        public JButton[] keybord;
        private String s[] = {"Start","Back","Fast","Slow","Add Carriage","Delete Carriage","Rest","Check","Desiners"};
        private ImageIcon images[][] ={{
                        new ImageIcon("images/UpRight.jpg"),
                        new ImageIcon("images/RightDown.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        {new ImageIcon("images/Vert.jpg"),
                        new ImageIcon("images/DownRight.jpg"),
                        new ImageIcon("images/Horiz.jpg"),
                        new ImageIcon("images/RightDown.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/Vert.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/Vert.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/Vert.jpg"),
                        new ImageIcon("images/UpRight.jpg"),
                        new ImageIcon("images/Horiz.jpg"),
                        new ImageIcon("images/RightUp.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/DownRight.jpg"),
                        new ImageIcon("images/RightUp.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/NoTrack.jpg"),
                        new ImageIcon("images/NoTrack.jpg")}};
        private ImageIcon frontImagesTrain[]={
                        new ImageIcon("images/TrainDown.jpg"),
                        new ImageIcon("images/TrainDown.jpg"),
                        new ImageIcon("images/TrainLeft.jpg"),
                        new ImageIcon("images/TrainLeft.jpg"),
                        new ImageIcon("images/TrainDown.jpg"),
                        new ImageIcon("images/TrainLeft.jpg"),
                        new ImageIcon("images/TrainUp.jpg"),
                        new ImageIcon("images/TrainUp.jpg"),
                        new ImageIcon("images/TrainUp.jpg"),
                        new ImageIcon("images/TrainUp.jpg"),
                        new ImageIcon("images/TrainRight.jpg"),
                        new ImageIcon("images/TrainDown.jpg"),
                        new ImageIcon("images/TrainRight.jpg"),
                        new ImageIcon("images/TrainDown.jpg")};
            private ImageIcon trackImagesTrain[]={
                    new ImageIcon("images/Vert.jpg"),
                    new ImageIcon("images/RightUp.jpg"),
                    new ImageIcon("images/Horiz.jpg"),
                    new ImageIcon("images/UpRight.jpg"),
                    new ImageIcon("images/RightUp.jpg"),
                    new ImageIcon("images/DownRight.jpg"),
                    new ImageIcon("images/Vert.jpg"),
                    new ImageIcon("images/Vert.jpg"),
                    new ImageIcon("images/Vert.jpg"),
                    new ImageIcon("images/UpRight.jpg"),
                    new ImageIcon("images/RightDown.jpg"),
                    new ImageIcon("images/DownRight.jpg"),
                    new ImageIcon("images/Horiz.jpg"),
                    new ImageIcon("images/RightDown.jpg")};
              private ImageIcon carrinImagesTrain[]={
                        new ImageIcon("images/Carriage1Down.jpg"),
                        new ImageIcon("images/Carriage1Down.jpg"),
                        new ImageIcon("images/Carriage1Left.jpg"),
                        new ImageIcon("images/Carriage1Left.jpg"),
                        new ImageIcon("images/Carriage1Down.jpg"),
                        new ImageIcon("images/Carriage1Left.jpg"),
                        new ImageIcon("images/Carriage1Up.jpg"),
                        new ImageIcon("images/Carriage1Up.jpg"),
                        new ImageIcon("images/Carriage1Up.jpg"),
                        new ImageIcon("images/Carriage1Up.jpg"),
                        new ImageIcon("images/Carriage1Right.jpg"),
                        new ImageIcon("images/Carriage1Down.jpg"),
                        new ImageIcon("images/Carriage1Right.jpg"),
                        new ImageIcon("images/Carriage1Down.jpg")};
        private int[]frontPath={13, 18,17,16,21,20,15,10,5,0,1,6,7,8};
      private int[]frontPath2={8, 13,18,17,16,21,20,15,10,5,0,1,6,7};  
        private ImageIcon icon;
        private JLabel labelInfo;
        public Train () {  
           screen = new JPanel(new GridLayout(1,1));
           Font f =new Font ("Sanserif",Font.BOLD,18);
           labelInfo = new JLabel("WELCOM" ,JLabel.CENTER);
           labelInfo.setFont(f);
           screen.setBackground(Color.red);
           screen.add(labelInfo);
           getContentPane().add(BorderLayout.NORTH,screen );
            street = new JButton[5][5];
            area = new JPanel (new GridLayout(5,5));
            for(int r=0; r<5; r++) 
                for (int c=0; c<5; c++){
                    street[r][c] = new JButton("", images[r][c]);
                    area.add(street[r][c]);
            getContentPane().add(BorderLayout.CENTER,area );   
            keybord = new JButton[9];
            controlroom = new JPanel(new GridLayout(5,2));   
    //        ActionHandler handler = new ActionHandler();
            for (int i=0; i <9; i++)
                keybord[i] = new JButton(s);
    keybord[i].addActionListener(this);
    controlroom.add(keybord[i]);
              keybord[i].setEnabled(false);
              keybord[7].setEnabled(true);
    getContentPane().add(BorderLayout.SOUTH,controlroom );
    public void moveTrainFront(){
    int trainPlace1 = trainPlace;
    try{
    if (trainPlace == frontPath.length-1) trainPlace = 0;
    else trainPlace ++;
                   if (carrNum == 0 )
         int i = frontPath[trainPlace]/5;
         int j = frontPath[trainPlace] - i * 5;
         int r = frontPath[trainPlace1]/5;
         int c = frontPath[trainPlace1] - r * 5;
         street[i][j].setIcon(frontImagesTrain[trainPlace]);
         street[r][c].setIcon(trackImagesTrain[trainPlace1]);
                   else
                        int i1 = frontPath[trainPlace]/5;
                        int j1 = frontPath[trainPlace] - i1 * 5;
                        street[i1][j1].setIcon(frontImagesTrain[trainPlace]);     
                        int trainPlace2 = trainPlace;
                        for (int z = 1; z <= carrNum; z++)
    if (trainPlace2 - z < 0) trainPlace2 = 13;
                                  int i2 = frontPath[trainPlace2 - z]/5;
                                  int j2 = frontPath[trainPlace2 - z] - i2 * 5;
                                  street[i2][j2].setIcon(carrinImagesTrain[trainPlace2 - z]);
              int r1 = frontPath[trainPlace1 - carrNum]/5;
                        int c1 = frontPath[trainPlace1 - carrNum] - r1 * 5;
                        street[r1][c1].setIcon(trackImagesTrain[trainPlace1 - carrNum]);
    }catch(ArrayIndexOutOfBoundsException aiex){System.out.println("the array out of index");}
    // Move train Back
    public void moveTrainBack(){
    int trainPlace1 = trainPlace;
    try{
    if (trainPlace == 0) trainPlace = 13;
    else trainPlace--;
    int i = frontPath[trainPlace]/5;
    int j = frontPath[trainPlace] - i * 5;
    int r = frontPath[trainPlace1]/5;
    int c = frontPath[trainPlace1] - r * 5;
    street[i][j].setIcon(frontImagesTrain[trainPlace]);
    street[r][c].setIcon(trackImagesTrain[trainPlace1]);
    }catch(ArrayIndexOutOfBoundsException aiex){System.out.println("the array out of index");}
    public void setRest(){
    setStop(true);
              setSpeed(300);
    int i = frontPath[trainPlace]/5;
    int j = frontPath[trainPlace] - i * 5;
    street[i][j].setIcon(trackImagesTrain[trainPlace]);
    trainPlace = 0;
    i = frontPath[trainPlace]/5;
    j = frontPath[trainPlace] - i * 5;
    street[i][j].setIcon(frontImagesTrain[0]);
    public void setCheck (boolean c)
    int i = frontPath[trainPlace]/5;
    int j = frontPath[trainPlace] - i * 5;
    street[i][j].setIcon(frontImagesTrain[0]);
    check = c ;
    public boolean getCheck (){ return  check ;}
    public void setSpeed (int s){speed = s ;}
    public int getSpeed(){return  speed;}
    public void setStop(boolean s){stopped = s ;}
    public boolean getStop(){return  stopped ;}
    public void setBack(boolean s){back = s ;}
    public boolean getBack(){return  back;}
         public void setAdd(){carrNum++ ;}
    public boolean getAdd(){return  add;}
    // Action
         public void actionPerformed(ActionEvent e){
              if(e.getSource()==keybord[0])//Start
              if (stopped)
              keybord[0].setText("Stop");
                   setStop(false);
                   labelInfo.setText("Running");
    else      
                   {    setStop(true);
                   keybord[0].setText("Start");
                        labelInfo.setText("Stop");
              if(e.getSource()==keybord[1])//Front And Back
              if (!back)
                   setBack(true);
              keybord[1].setText("Front");
                   labelInfo.setText("Back");
              else      
                   setBack(false);
              keybord[1].setText("Back");
                   labelInfo.setText("Front");
              }     else if (e.getSource()==keybord[2])//Fast
              if (speed <= 0)
              labelInfo.setText("You've arrived the maximum speed : " + getSpeed());
              else {      setSpeed(speed  - 10);
                   labelInfo.setText("The Train speed is slow down to : " + getSpeed());
         else if(e.getSource()==keybord[3])//Slow
              {setSpeed(speed + 10);
                    labelInfo.setText("The Train speed is pulled up to : "+getSpeed());
    else if(e.getSource()==keybord[4]) //ADD carrin
                        setAdd();
                        labelInfo.setText("Add Carriage");
              //setStop(false);
    else if(e.getSource()==keybord[5]) //Delete carrin
                   labelInfo.setText("Delete Carrin");
         else if(e.getSource()==keybord[6]) //Rest
                   setRest();     
              labelInfo.setText("Rest");
         else if (e.getSource()==keybord[7]) //Check
         setCheck(true);
         keybord[7].setEnabled(false);
         keybord[0].setEnabled(true);
         keybord[1].setEnabled(true);
         keybord[2].setEnabled(true);
         keybord[3].setEnabled(true);
         keybord[4].setEnabled(true);
         keybord[5].setEnabled(true);
         keybord[6].setEnabled(true);
         keybord[8].setEnabled(true);
         labelInfo.setText("The Train is Checked");
    else if(e.getSource()==keybord[8]) //desiners
         String x = "";
                   labelInfo.setText("Desiners About");
                   JOptionPane.showMessageDialog(null,"The Progect is Under The Auspices of:"
                   + "\n??" + "\n" + "\n ??" +
                   "\n ??" + "\n??" + "\n ??" + "\n" + "\n" + "\n?? " + "\n C 2007");     }     
    This main ..
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.lang.Thread;
    public class TestTrain{     
        public static void main(String[]args){
            Train train = new Train ();
              MoveTrain mt = new MoveTrain(train);
            train.setTitle("Train");
            train.setSize(421,550);
            train.setVisible(true);
            train.addWindowListener (
            new WindowAdapter (){
                 public void windowClosing(WindowEvent e ){
                      System.exit(0);
              mt.start();
    }This Threads
    import java.lang.Thread;
    public class MoveTrain extends Thread {
         Train train ;
        public MoveTrain (Train train){
               this.train= train;
         public void run(){
               while(!train.getCheck());
               while (train.getCheck()){
                    try {sleep (train.getSpeed()); }
                    catch (InterruptedException e ){System.out.println("unknown error");}
                     if (!train.getStop())
                        if(!train.getBack())
                                {train.moveTrainFront();
                          else  train.moveTrainBack();
    }This Link image icon ..
    http://www.geocities.com/alhairan_2003/as/777/UpRight.jpg
    http://www.geocities.com/alhairan_2003/as/777/Vert.jpg
    http://www.geocities.com/alhairan_2003/as/777/TrainUp.jpg
    http://www.geocities.com/alhairan_2003/as/777/TrainRight.jpg
    http://www.geocities.com/alhairan_2003/as/777/TrainLeft.jpg
    http://www.geocities.com/alhairan_2003/as/777/TrainDown.jpg
    http://www.geocities.com/alhairan_2003/as/777/Train.jpg
    http://www.geocities.com/alhairan_2003/as/777/RightUp.jpg
    http://www.geocities.com/alhairan_2003/as/777/RightDown.jpg
    http://www.geocities.com/alhairan_2003/as/777/NoTrack.jpg
    http://www.geocities.com/alhairan_2003/as/777/Horiz.jpg
    http://www.geocities.com/alhairan_2003/as/777/DownRight.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage3Up.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage3Right.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage3Left.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage3Down.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage2Up.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage2Right.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage2Left.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage2Down.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage1Right.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage1Left.jpg
    http://www.geocities.com/alhairan_2003/as/777/Carriage1Down.jpg
    thanks :)

            String[] car1Names = {
                "Carriage1Down", "Carriage1Left", "Carriage1Down", "Carriage1Right"
            };The first image name should be "Carriage1Up" but it is missing in your directory.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    public class MC6 implements Runnable, ActionListener {
        JLabel[] grid;
        BufferedImage[] trackImages;
        BufferedImage[] trainImages;
        BufferedImage[][] carImages;
        int[] imageKeys;
        int[] trackKeys;
        int[] forwardKeys;
        int[] reverseKeys;
        int keyIndex = 0;
        int carCount = 0;           // [0 - 3]
        boolean goingAhead = true;
        boolean changeDirections = false;
        Thread thread = null;
        boolean moving = false;
        final int DELAY = 1000;
        public MC6() {
            loadImages();
        public void actionPerformed(ActionEvent e) {
            String ac = e.getActionCommand();
            if(ac.equals("START"))
                changeDirections = false;
                start();
            if(ac.equals("STOP"))
                stop();
            if(ac.equals("FORWARD") || ac.equals("REVERSE"))
                changeDirections = true;
            if(ac.equals("ADD CARRIAGE"))
                carCount += (carCount+1 <= 3) ? 1 : 0;
            if(ac.equals("REMOVE CARRIAGE")) {
                int carIndex = getCarIndex(carCount);
                int trackIndex = trackKeys[carIndex];
                int imageIndex = imageKeys[carIndex];
                grid[trackIndex].setIcon(new ImageIcon(trackImages[imageIndex]));           
                carCount -= (carCount-1 >=0 ) ? 1 : 0;
        public void run() {
            while(moving) {
                // Clear track in preparation for next advance.
                if(changeDirections) {
                    clearTrack();
                    // Adjust keyIndex by one increment in the direction of travel
                    // to allow it to return it to its current position after the
                    // next advance in position (further below).
                    advance();
                    goingAhead = !goingAhead;
                    changeDirections = false;
                } else {
                    // Replace last car with track image before train advances.
                    int carIndex = getCarIndex(carCount);
                    int trackIndex = trackKeys[carIndex];
                    int imageIndex = imageKeys[carIndex];
                    grid[trackIndex].setIcon(new ImageIcon(trackImages[imageIndex]));
                // Move to next position on the track.
                advance();
                // Set locomotive.
                setLocomotive();
                // Set the cars following the locomotive.
                setCars();
                try {
                    Thread.sleep(DELAY);
                } catch(InterruptedException e) {
                    System.out.println("interrupted");
                    stop();
        private int getCarIndex(int carNumber) {
            int n = carNumber;
            int index;
            if(goingAhead) {
                index = keyIndex-n;
                if(index < 0)
                    index += trackKeys.length;
            } else {
                index = (keyIndex+n) % trackKeys.length;
            return index;
        private void advance() {
            keyIndex = goingAhead ?
                           (keyIndex+1 > trackKeys.length-1) ? 0 : keyIndex+1
                           (keyIndex-1 < 0) ? trackKeys.length-1 : keyIndex-1;
        private void clearTrack() {
            // Remove all cars from track before direction change.
            for(int j = 0; j < carCount; j++) {
                int carIndex = getCarIndex(j+1);
                int trackIndex = trackKeys[carIndex];
                int imageIndex = imageKeys[carIndex];
                grid[trackIndex].setIcon(new ImageIcon(trackImages[imageIndex]));
        private void setLocomotive() {
            int trackIndex = trackKeys[keyIndex];
            int imageIndex = goingAhead ? forwardKeys[keyIndex]
                                        : reverseKeys[keyIndex];
            grid[trackIndex].setIcon(new ImageIcon(trainImages[imageIndex]));
        private void setCars() {
            for(int j = 0; j < carCount; j++) {
                int carIndex = getCarIndex(j+1);
                int trackIndex = trackKeys[carIndex];
                int imageIndex = goingAhead ? forwardKeys[carIndex]
                                            : reverseKeys[carIndex];
                grid[trackIndex].setIcon(new ImageIcon(carImages[j][imageIndex]));
        private void start() {
            if(!moving) {
                moving = true;
                thread = new Thread(this);
                thread.setPriority(Thread.NORM_PRIORITY);
                thread.start();
        public void stop() {
            moving = false;
            if(thread != null)
                thread.interrupt();
            thread = null;
        private void loadImages() {
            String[] trackNames = {
                "UpRight", "RightDown", "Vert", "DownRight", "Horiz", "RightUp", "NoTrack"
            String[] trainNames = { "TrainUp", "TrainLeft", "TrainDown", "TrainRight" };
            String[] car1Names = {
                "Carriage1Down", "Carriage1Left", "Carriage1Down", "Carriage1Right"
            String[] car2Names = {
                "Carriage2Up", "Carriage2Left", "Carriage2Down", "Carriage2Right"
            String[] car3Names = {
                "Carriage3Up", "Carriage3Left", "Carriage3Down", "Carriage3Right"
            trackImages = getImages(trackNames);
            trainImages = getImages(trainNames);
            BufferedImage[] car1Images = getImages(car1Names);
            BufferedImage[] car2Images = getImages(car2Names);
            BufferedImage[] car3Images = getImages(car3Names);
            carImages = new BufferedImage[][]{ car1Images, car2Images, car3Images };
        private BufferedImage[] getImages(String[] ids) {
            BufferedImage[] images = new BufferedImage[ids.length];
            for(int j = 0; j < ids.length; j++) {
                String path = "images/" + ids[j] + ".jpg";
                try {
                    images[j] = ImageIO.read(new File(path));
                } catch(IOException e) {
                    System.out.println("Read error for " + path +
                                       ": " + e.getMessage());
                    images[j] = null;
            return images;
        private JPanel getCenterComponent() {
            imageKeys = new int[] {
                0, 1, 3, 4, 1,  2,  5,  4,  0,  5,  3,  2,  2, 2
            trackKeys = new int[] {
                0, 1, 6, 7, 8, 13, 18, 17, 16, 21, 20, 15, 10, 5
            forwardKeys = new int[] {
                0, 3, 2, 3, 3,  2,  2,  1,  1,  2,  1,  0,  0, 0
            reverseKeys = new int[] {
                1, 0, 1, 1, 0,  0,  3,  3,  0,  3,  2,  2,  2, 2
            grid = new JLabel[25];
            JPanel panel = new JPanel(new GridLayout(5,0));
            for(int j = 0; j < grid.length; j++) {
                ImageIcon icon;
                int index = getIndexForValue(j);
                if(index != -1) {
                    icon = new ImageIcon(trackImages[imageKeys[index]]);
                } else {
                    icon = new ImageIcon(trackImages[6]);
                grid[j] = new JLabel(icon);
                panel.add(grid[j]);
            return panel;
        private int getIndexForValue(int value) {
            for(int j = 0; j < trackKeys.length; j++) {
                if(value == trackKeys[j])
                    return j;
            return -1;
        private JPanel getControls() {
            String[] ids = {
                "Start", "Stop", "Forward", "Reverse", "Add Carriage", "Remove Carriage"
            JPanel panel = new JPanel(new GridLayout(0,2));
             for(int j = 0; j < ids.length; j++) {
                JButton button = new JButton(ids[j]);
                button.setActionCommand(ids[j].toUpperCase());
                button.addActionListener(this);
                panel.add(button);
            return panel;
        public static void main(String[] args) {
            MC6 test = new MC6();
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(test.getCenterComponent());
            f.getContentPane().add(test.getControls(), "Last");
            f.pack();
            f.setLocation(200,100);
            f.setVisible(true);
    }

  • Logical problem using vectors

    Hi and Happy New Year,
    I have a vector in my java application which contains a number of elements that is not fix which means each time the number of elements might change.
    I want to retrieve the elements of the vector 3 by 3 its like table records paging in jsp , asp or php
    - lets say this time i've got 10 elements in my vector , I have to JButtons previous_3 and next_3
    - The first time the program runs I want to get the first three elements of the vector (0 to 2)
    - By clicking on the next_3 button I want to get the next 3 ( 3 to 5) and so on... providing that the exist
    - By clicking on the privious_3 button I want to get the previous 3 ( 0 to 2) in this instance and so on... providing that the exist
    Can anyone give me a hint as how to solve this problem at least give me some ideas cause i am lacking of ideas my brain is frozen, I know that is it more a logical problem that a programming one
    I 've done this kind of thing in Asp and PHP but as I am new to Java
    I just can not figure out how to tackle this issue

    You may want to use the modulus function.
    lets look at an example.
    pseudo code
    vector v = new vector()
    v.size = 10; //lets say there are 10 elements in the vector
    int n = 3; // you want to jump maximum 3 elements each time
    // you can jump 3.3 times before running outide the scope
    // of the vector, well after the third time you must check
    // how many elements that is left in the vector, this is
    // done by modulus n%10 = 1, this means that the last time
    // you can not jump more than 1 element.
    I have to go now so I cant give you any code to cope with the problem, Ill be back in 3 hours, maybe I can give a good axample, but this outline is the way to go.
    TheLaw

  • Help in script logic - problem in FOR loop

    Hi Experts,
    We are using BPC 7.5 SP08. I have written a FOR loop in script logic default.lgf which is as follows:
    *FOR %TIM_MEM%=%TIME_SET%
    *XDIM_MEMBERSET TIME =%TIM_MEM%
    *WHEN P_ACCT2
    *IS "OSDU"
    REC(EXPRESSION=[P_ACCT2].[ASSTCAINVURO][P_ACCT2].[COGSUPRVIPSA]/[P_ACCT2].[ASSTUPRVTAQTY],P_ACCT2="COGSUIPSAO")
    *ENDWHEN
    *COMMIT
    *NEXT
    As per my requirement, all this members: [ASSTCAINVURO], [COGSUPRVIPSA], [ASSTUPRVTAQTY] exists for months September to next year's August. But in my input schedule, the months are from August to next year's July(which is the company's fiscal year). Consequently the loop runs for month August to next year's July while I need to run the loop 1 month late(i.e. September to next year's August). This was achieved earlier by hard-coding the time members which we cannot afford as this requires to update these hard-coded member IDs every year.
    We have also tried using the "NEXT" property of TIME dimension as follows:
    *XDIM_MEMBERSET TIME =%TIM_MEM%.NEXT
    but %TIM_MEM%.NEXT doesn't get the month in 'NEXT'.
    Please suggest if there is any way out to solve this problem.
    Thanks in advance.

    Hi Appu,
    Even if you restrict the scope using the XDIM statement, your script will just run the number of times as per the for loop. Actually, in reality, the same calculation is happening again and again, in your code; since your calculation is not based on the time member.
    To use the for loop effectively, you need to incorporate the time member in your calculation.
    Please look at the below sample code:
    *XDIM_MEMBERSET TIME = %TIME_SET%
    *FOR %TIM_MEM%=%TIME_SET%
       *WHEN P_ACCT2
       *IS "OSDU"
          *REC(EXPRESSION=<CALCULATION>,P_ACCT2="COGSUIPSAO")
       *ENDWHEN
    *NEXT
    And in your calculation, you can use statements like
    ([P_ACCT2].[ASSTCAINVURO],TMVL(1, [TIME].[%TIM_MEM%]))
    This will ensure that everytime (as per the for loop), the calculation works on separate set of data.
    Hope you got the idea.

  • Mixing in Logic, problems with levels!

    Mixing problem here: I can’t figure out how to get all my equipment/ software levels correct to get an accurate level/ sound. I use Logic Pro 7 on a Mac dual G5, my sound card is MOTU and my monitors (2) are Event 20/20 BAS. Here’s the problem I believe that something is too low and I am compensating in the somewhere else and I am getting distortion in my mix downs- but I can barely hear the song. Here are my levels/ gains:
    Logic Main Mixdown track: 0.0 dB
    MOTU Main out: -34 db
    Event Monitors input level: 7 (max is 10)
    My plug-ins and such are at the level that I load them at, I don’t mess with the gains on these too much.
    Should I turn something down and turn something else up so that I can actually mix correctly? Thank you for your help!
    Cappy

    Hi.
    I have the same problem as you. I have a dual 2.7 G5 mac using a PCI MOTU 424 with a 2408 mk3 interface. Before I updated my Logic software to 7.2, The audio seemed to work fairly deccently as far as levels. I even utilize a Presonus Digimax LT via adat pipeline into the MOTU which in the past has worked great to attenuate levels digitally and Logic and MOTU worked seemlessly BUT ever since the new intel revolution, I have noticed tons of problems with the universal version of Logic. So far I would say maybe at least 30 features doesn't work properly anymore with Logic 7.2 and 7.2.1. Seems like with each new updates, the version gets worse and worse with more problems for my G5 mac. Example, Bouncing audio. Several of my settings such as plugins, levels, crossfades getting skipped or ignored and at times even crashes. I also have other issues like cracks and pops in my audio recordings lately which really is beginning to **** me off to no end. My adat transfered audio has weird pops added to the audio when transfered digitally which it didn't do before. I also noticed several playback functions that are very unstable. Some of my song files wont even play back!! My levels are no longer accurate anymore when recording in Logic. I have to crank my presonus levels just to barely hear my guitar tracks being recorded which I didn't have to do in previous versions, which also means more hisses and noises added. Apple seriously needs to correct these issues with Logic especially when we have to pay for bad updates.
    Scary thing is Logic 7.2.1 seems to run much smoother using the built in audio on my 2.0 intel macbook than my dual 2.7 G5 with my MOTU gear.

  • Script logic problem BPC 7.5

    Hi!
    We have a script logic that worked fine in BPC 5.1 but after our upgrade to BPC 7.5 it doesn´t work anymore.
    I will try to explain the part of or logic that doesn´t work anymore.
    We have 2 lines that will pass through the script, each line creates a temporary value  on KATEGORI ="#avskr1").
    Depending on the value created on  u201C#avskr1" it should do calculation A if the value is negative and calculation B if the value is positive. To do this we the following script logic:
    *WHEN GET(KATEGORI="#avskr1")
           *IS < 0
    *Calculation A
    ELS
    *Calculation B
    And this logic worked fine in BPC 5.1.
    If line X had -50 as a value in  u201C#avskr1"   and line Y had 75 as a value  in u201C#avskr1" , calculation A would be performed on line X and calculation B on line Y
    With the same example as above in BPC 7.5 calculation A will be performed on both lines.
    But if I change the logic to the following script logic in BPC 7.5:
    *WHEN GET(KATEGORI="#avskr1")
           *IS  = -50
    *Calculation A
    ELS
    *Calculation B
    Calculation A would be performed on line X and calculation B on line Y. It seems like the logic can´t handle <> signs in this script logic anymore.
    Regards
    Fredrik

    Hi!
    Unfortunately it didn´t help still the same error.
    And I just got an answer from SAP Support that there are a bug in the use of "Get whith When or lookup" in 7.5 SP03 which we currently are using, but it has been fixed in SP04. They just put up a SAP not 1515973 about the issue.
    Unfortunately they have no work around for this problem so I don´t know how to solve it untill we have installed SP04.
    Regards
    Fredrik

  • OSX MOUNTAIN LION AND LOGIC PROBLEMS

    I have a this problem... if my logic is running and i open logic EQ i cant do nothing, even stop the logic just nothing to do , only force quit.... ANY HELP on this.....????

    Not a new problem.
    https://discussions.apple.com/message/19254621#19254621
    https://discussions.apple.com/thread/4142085

  • A logic problem help

    hello experts,
    i have a problem with a logic
    here I have to pass the VBRK-WAERK and VBRK-FKDAT into TCURR-FCURR and TCURR-GDATU, but here the FKDAT and GDATU are of not the same data type and another specification is that
    >GDATU is in the inverted date format i have to convert it to date format but how ? and another problem is even if i convert it , i have one more specification given my functional consultant is that the FKDAT will be in some precise date like ( 23.10.2008) where as the GDATU will be in the starting date of the month like (01.10.2008 means it denotes the whole) , so here i have to make the FKDAT to the starting date of its months but how?.
    please kindly help me with some detail explaination , here this is the specification given to me.
    "To get the value part
    Pass VBRK-WAERK and VBRK-FKDAT into TCURR-FCURR and TCURR-GDATU for TCURR-KURST=ZCUS. Get UKURS for corresponding entry in INR"
    please kindly explain me with 'for all entries' and the complete logic joining the two tables to achive the specification.
    Thanks in advance

    Hi,
    for date conversion you can take help from this..
    CONVERSION_EXIT_PDATE_OUTPUT
    Eg: input = 24012008 and output = 24.01.2008
    CONVERT_DATE_FORMAT
    Eg: input = 20080201 and output = 01.02.2008
    CONVERSION_EXIT_SDATE_OUTPUT
    Eg: input = 20070201 and output = 01.FEB.2007
    CONVERSION_EXIT_IDATE_INPUT
    Eg: input = 01.02.2008 and Output = 20080201
    CONVERSION_EXIT_LDATE_OUTPUT
    Eg: input = 20070301 and output = 01. March 2007
    CONVERSION_EXIT_PDATE_OUTPUT
    Eg: input = 20070301 and output = 03.01.2007
    now to match the data type you can use the function module...
    CONVERSION_EXIT_INVDT_INPUT    Conversion exit routine for inverted date (INPUT)
    CONVERSION_EXIT_INVDT_OUTPUT   Conversion exit routine for inverted date (OUTPUT)
    Regards,
    Arunima

  • MOTU 828mkII and Logic Problems

    Mac G5 OSX 10.4.6 Logic Pro 7.1.1 MOTU 828mkII I've installed the new driver for the firewire software for the MOTU, I've reset factory settings, i've double checked and triple checked the internal clock settings. I am still getting distortion and high pitched whistles and error message. This happend once before but after installing the new driver things worked fine. Now i'm not getting anywhere. Thanks for any help !!!!

    Just a note, I've had this problem as well with the MoTu 828ii. There is an issue with this system not functioning properly with Pro Logic 7.1. Out of the blue, I start getting a message "Midi and Audio out of synch" messages, and there is no sound. I tried downloading the latest driver, no go.
    I called the MoTu people and they aren't very helpful with their system's conflict with Pro Logic. I wouldn't recommend anyone buying the Motu at this point. I'm thinking of Apogee if I can't get this thing running soon.

  • Strange Logic problem

    Hi folks,
    I seem to having a problem with my FX Trans logic that I can't fix, and I'm hoping someone else has seen this problem.
    My FX Trans script is simply calling the MULTICURRENCYTRANS.LGL file, but when I validate the logic I get this error:
    "No match defined for lookup dimension CATEGORY"
    I've checked my system_library.lgl file, to make sure the dimension names are correct (they are non-standard), and they are fine, so I can't understand what is causing this problem.
    Please can someone help? I'm running BPC for MS 7 SP4, and the FX Trans seems to work fine on other apps in my appset.
    Thanks a lot!
    Jason

    Hi Jason,
    I would recommend several things:
    1) Re-Validate and Re-save your Default Logic from the Administration Console
    2) Check the "System_Constants.lgl" file under AdminApp folder on the server. In this file, make sure that you have correctly mapped your dimensions.
    3) Save your application from the Administration console ("Modify Application" link with both "Re-Assign SQL index" and "Process Application" options checked).
    4) Try to revalidate your FX trans logic  then, and see the result.
    Hope it will help.
    Kind Regards,
    Patrick

  • Logical problem in Purchase Order Release (urgent)

    Hai Guys ,
                            I am defining a workflow for PO release and i did the release procedure for 3 levels of approve. My workflow running successfully. the workitem send to the appropriate users and they release the workitem as very well. I used the standard workflow. my logic was
               Release Code      =            Approver
                      01         =            user1
                      02         =            user2
                      03         =            user3
    when i create the PO the workitem was send to the user1 for release. he execute the workitem it will go to the release screen and he is able to release. after releasing and before saving user1 is able to release the user2 and user3 releases also. that was the logical mistake happening. the user1 should not allow to release the user2 and user3 releases. how it can be done?
                  Thanks in Advance.
    Regards,
    R.Sathis Kumar.

    Your rel strategy has to be fixed, some extract from standard doco.........
                                                                                    o   Release code                                                          
             Via the release code, you specify the release codes with which the    
             user may release purchasing documents.                                                                               
    Examples                                                                               
    For user Miller, the following values have been defined in the            
         authorization object:                                                                               
    o   Release group: 01 and 02 (see example b)                                                                               
    o   Release code: 01 and 02                                                                               
    The user Miller may thus release POs and RFQs using the release codes 01  
         and 02.
    Hope this helps, also what version are you on?

  • Left channel not working--it's a logic problem, but I can't debut it! HELP!!!

    I'm using a SB Audigy SE card on my XP machine. In the past, I've made good music files from CDs and records (remember those?), but I have not used the thing in about 18 months, and now I'm having a weird problem.
    I get output only on the LEFT channel. I'm sure it's not a problem with the input source, because I've used a cassette player and a turntable, and with both, I get output only on the left channel. This happens even when I reverse the phono cables from either device. That tells me the problem is not in the cabling leading from my device to the SB card.
    I checked the speakers using the Audigy Speaker Settings application, and it shows that both speakers are working properly: when I click on CHANNEL, I get the words "left channel" and then "right channel" successively on the proper speakers. Same when I click NOISE.
    This shows me that the problem is not on the (physical) output side: if it were, I would not get the words "left channel" on that channel, and then the words "right channel" on the right channel. As well, I can play videos (e.g. Youtube) and get sound on both channels.
    My guess is that somehow there is some setting somewhere in Audigy that is saying "process only output to the left channel." But I cannot find any setting that might be doing that.
    Anyone got any ideas???? I'm stumped.

    Originally Posted by deafguy999
    OOPS, I meant "right channel not working"! Sometimes I don't know my L from my R.
    ALSO, CDs play properly--and my speakers are connected only to the sound card.

  • Help needed in logic problem

    HI,
    I am trying to implement one marketing application, where the goods will be dispatched via some transportation. The receipt name is lr number or lrno. Some times for same lr no., 2-3 goods will be dispatched. Now, I am developing one application, if an user selects the from and to date from the web page, the web page should display all the lrno. Form date to to-date, its destination place and total amount, etc. These values are coming from backend.
    Eg.
    Trname      Lrno           dt          amt
    BLR     LR300          1/2/05          1000
    MUM     LR400          1/2/05          2000
    MUM     LR400          1/2/05          100
    MUM     LR400          1/2/05          200
    DL     LR600          3/2/05          1000
    My problem is if there are 2-3 goods for same lrno, the amounts should add up and final amount should come. Only in one record.(in one row). In the above example, for MUM 3 rows are there. So, the trname, lrno, dt shuld be same , but the total amount of all the three records should be added up and display.
    Expected output
    BLR     LR300          1/2/05          1000 as it is displayed
    MUM     LR400          1/2/05          2300// it should display like this.
    DL     LR600          3/2/05          1000 // as it displayed.
    My output as follows: I cold add the amount, but, each time, the record is displayed. Like this
    BLR     LR300          1/2/05          1000 //correct output
    MUM     LR400          1/2/05          2000 //this should not display
    MUM     LR400          1/2/05          2100 // this should not display
    MUM     LR400          1/2/05          2300 //Only this record should be displayed.
    DL     LR600          3/2/05          1000 //correct output
    Code sample as follows:
    <%
    while(rs.next())
              trfamt=rs.getInt("cfrta");
              String carnam=rs.getString("ccara").trim();
              String lrdt=rs.getString("clrd").trim();
              String lrnum=rs.getString("clrn").trim();
              brk="y";
              cnt1=0;
              cnt=cnt+1;
              out.println("Counter="+cnt);
              if(cnt==1)
                   subtot=trfamt;
                   tmp=lrnum;
              }//end of if(cnt==1) cndition
              else
                   if(lrnum.equals(tmp)) //compares whether two lrno are same or not.
                        brk="n";
                        subtot=subtot+trfamt; // if lrno are same, its amount is added up
                        //carnam1=carnam;
                        //lrnum1=lrnum;
                        System.out.println(lrnum+""+tmp+" "+"Lr numbers are same.totaling is continued");
                        tmp=lrnum;
                        cnt1=cnt1+1;
                        }//end of if     
                   else
                        if(cnt1==0)
                             subtot=0; // if lrno are different, fresh totaling is done
                             subtot=trfamt;
                             System.out.println("Lr numbers are different.Fresh Totaling is done");
                             tmp=lrnum;
                             }//end of if(cnt1=0)condition
                   }//end of else
                   }//end of if(cnt==1)condition else part
         if((cnt==1)||(brk.equals("y"))||(cnt1>0))
                        {%>
                        <TABLE>
                        <TR>
                             <TD><%out.println("Carier Name="+carnam);%></TD>
                             <TD><%out.println("Lrnumber="+lrnum);%></TD>
                             <TD><%out.println("Amount="+subtot);%></TD>
                        </TR>
                        </TABLE>
                        <%}
         }//end of while condition %>          
    How to correct this error ! please help me.
    With regards,
    AShvini

    Thank you Ram.
    I will try your code. ok, i took another look at it and dont see y it shouldnt
                            if(lrnum == mc.getLrNum())
                  //if this has already been added, just update amount
                  mc.addAmount(trfamt);
                  dupRecord = true;
                                               break; //it would work correctly even without this, but y do unnecessary iterations if id found
    ,/code]
    Since past 3 days, i am struggling with this bug. SO,
    i asked for line by line compilation. As u said, i
    tried to download IDE from www.ecllips.com, but,
    stuckup somewhere. so, i gave up.
      don't give up, install eclipse (or any other ide), it would do wonders to ur development effort.
    I will try with your code and get back to u.
       cool :-)
    ram.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Message Mapping Logical Problem

    Hi there I have an issue with my message mapping. My source structure looks like this.
    IDOC
    -Seg1
    ---Element1
    ---Element2
    ---Seg2
    ElementA
    ElementB
    Ok so I have to map the IDOC to a flat file. Seg 1 is the Header and Seg2 is the Details. For each flat file there will only be 1 Seg1 but there can be X amount of Seg2s' in the flat file. My problem is mapping Element 1 to Element A. Element A has the value of Element 1 and 2 combined. It appears I cannot map a lower hierarchy to an higher hierarchy? I tried changing the context but with no luck.
    Any idea?
    Thanx,
    Jan

    My problem is mapping Element 1 to Element A.
    What do you mean by this? I guess you want the Element1 to appear with each Segment occurrence. If yes, you may use standard function useOneAsMany as shown.
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Regards,
    Prateek

  • Logic Problem in HR-ABAP...

    Hi Experts,
    i am developing outbound interface in HR module. in that i got stckup.
    i ve Ztable like YSHR_NRIC  there are some ICNUM and in my code every PERNR which am reading
    through GET pernr. i want to compare my current Pernr(ICNUM) with YSHR_NRIC table ICNUM, if my
    curreny ICNUM is there in my Ztable, then i want Bypass the pernr.
    if not there in Ztable then i want to INSERT my Current Pernr-icnum into Ztable...
    how can i procede in this ...i need logic...
    Thanks in advance...
    sudeer.

    Hi Marcin,
    thank you verymuch for ur replay.  and here i have doubt.
    i.e suppose in my Ztable i ve 10 (ICNUM) records, if i use Read statement will it be compare with all 10 recors r not?
    bcoz in my case i should compare with all 10 (ICNUM)records with current ICNUM. then it will be inserted into Ztable...
    Thanks & Regards,
    sudeer.

Maybe you are looking for