Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

How to show the latest revison of a part number using a filter or query

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    How to show the latest revison of a part number using a filter or query

    I need to show the highest revision of each unique P/N in a table and would like to do this via a filter or query and not loop records if at all possible.

    Here is an example (single table)

    Part Number- Revision
    pn1- C
    pn1- B
    pn1- A
    pn2- D
    pn2- C
    pn2- B
    pn2- A

    What I would like to see in a browse on the form would be only the latest revisions of each Part Number. In this example there would only be 2 records returned......

    Part Number- Revision
    pn1- C
    pn2- D

    I am wide open to any ideas, or suggestions.

    #2
    Re: How to show the latest revison of a part number using a filter or query

    Given a table, parts, with records

    PN REV
    pn1 a
    pn1 b
    pn1 c
    pn2 a
    pn2 b
    pn2 c
    pn2 d

    The filter

    REV = TABLEMAX("parts","pn = "+QUOTE(PN),"rev")

    displays

    PN REV
    pn1 c
    pn2 d
    There can be only one.

    Comment


      #3
      Re: How to show the latest revison of a part number using a filter or query

      An Index with records sorted "Descending" and showing only "Unique" should do.

      But is it the best solution?
      Is iterating over the records better?
      It all depends on how many records you are dealing with.

      Comment


        #4
        Re: How to show the latest revison of a part number using a filter or query

        Stan,

        Excellent, thanks for the very fast response. I am having a little trouble getting it to work. You are talking about placing this in the Filter Expression on the form, correct?

        Here is the actual table and field names....

        Table = revised_prints.dbf
        Part Number field = Rppcode
        Revision Field = Rprevlvl

        Here is what I tried on the forms filter expression....
        rprevlvl = TABLEMAX("revised_prints.dbf","Rppcode = "+QUOTE(Rppcode),"Rprevlvl")

        Can you see what I am doing wrong?

        Gabe, I looked at looping the records but I have a table with 500,000+ records and want to avoid looping if at all possible.

        Comment


          #5
          Re: How to show the latest revison of a part number using a filter or query

          Better attach a sample database. I'm confused by

          I would like to see in a browse on the form
          The filter I supplied is for a browse.
          Last edited by Stan Mathews; 11-03-2010, 12:23 PM. Reason: added example using form
          There can be only one.

          Comment


            #6
            Re: How to show the latest revison of a part number using a filter or query

            Stan,

            Can you look at my attached example, I do not get the same results.

            Scott

            Comment


              #7
              Re: How to show the latest revison of a part number using a filter or query

              Seems to me it's working.

              What do you want to see?
              There can be only one.

              Comment


                #8
                Re: How to show the latest revison of a part number using a filter or query

                Interesting, what you are see is what I need, attached is what I see using the exact same App I sent you.

                What version of Alpha are you running?

                I am running v10.5 build 3423 - 3608

                Comment


                  #9
                  Re: How to show the latest revison of a part number using a filter or query

                  V8

                  I have V9 but not here. Maybe someone else will test it for you.
                  There can be only one.

                  Comment


                    #10
                    Re: How to show the latest revison of a part number using a filter or query

                    And I get a different thing than both of you in both v9 and v10

                    Later:
                    I checked in v8... It returns what Stan showed. In V9, V10 3040-3571, I get two 123 - D's not C's
                    Last edited by Mike Wilson; 11-03-2010, 04:01 PM.
                    Mike W
                    __________________________
                    "I rebel in at least small things to express to the world that I have not completely surrendered"

                    Comment


                      #11
                      Re: How to show the latest revison of a part number using a filter or query

                      I had a database I was using with V10. I upgraded to V10.5 and a couple of things that used to work, didn't work any more(V10.5 started with patch 2924_3560) I sent examples of the problems to Sewlyn and he confirmed the problem, and said it would be fixed in the next patch. He even sent me a private patch to use until the new patch was issued, which as of OCT 30 it was issued. So you might try the latest patch 3553_3615 and see if it solves your problem.

                      Comment


                        #12
                        Re: How to show the latest revison of a part number using a filter or query

                        Garry,

                        Thanks for the idea. I tested it this morning and the issue still exists in v10.5 build 3553_3615.

                        Does anyone with v10 have a working solution or ideas on this?

                        Scott

                        Comment


                          #13
                          Re: How to show the latest revison of a part number using a filter or query

                          you could add a field to your table and "mark" the record that corresponds to the latest revision, and use that "mark" in a filter. You would have to write a script for all edit/save events to keep that updated, but very doable.
                          Mike W
                          __________________________
                          "I rebel in at least small things to express to the world that I have not completely surrendered"

                          Comment


                            #14
                            Re: How to show the latest revison of a part number using a filter or query

                            Mike, Thanks for the idea, unfortunately the example does not illustrate the whole problem, the "live" table I have will have up to 500,000+ records and gets updated frequently. I really don't want to loop that many records repeatedly.

                            Comment


                              #15
                              Re: How to show the latest revison of a part number using a filter or query

                              Scott, you don't need to loop through all the records every time. When you do an update (enter or edit) filter the table with reference to your current record. That, I imagine, would greatly reduce the records needed to be looped through.

                              I added a field (Last_Ent) to your example and then the following code in the CanSaveRecord event.
                              Code:
                              dim t as p = table.current()
                              dim shared thisrec as n = t.recno()
                              and then the following code in the OnSaveRecord event.

                              Code:
                              dim t as p = table.current()
                              dim shared thisrec as n
                              filter = "Rppcode='"+t.Rppcode+"' .and. Last_Ent"
                              q=t.query_create("TN",filter)    
                              t.fetch_first()
                              WHILE .not. t.fetch_eof()
                                  t.change_begin()
                                  t.Last_Ent = .f.
                                  t.change_end()
                                  t.fetch_next()
                              END WHILE
                              t.query_detach()
                              t.fetch_goto(thisrec)
                              t.change_begin()
                              t.last_ent = .t.
                              t.change_end()
                              This queries the table for the current repcode and values in 'Last_Ent' of 'true'.
                              Sets Last_Ent for these records to false. Detachs the query. Goes to the record just entered as saved in 'thisrec'. Sets the value in Last_Ent to 'true'.

                              Normally should only be affecting two records.

                              This is just to show that you don't need to look at all your records each time. The actual rules when this happens would need to be further developed according to your requirements.
                              Tim Kiebert
                              Eagle Creek Citrus
                              A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.

                              Comment

                              Working...
                              X