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

Creating a (sub)table from a form

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

    Creating a (sub)table from a form

    Hi all,

    I have a form which allows a user select the range of records to be used in several calculations. The records are selected only from one main table. The filter query with the record ranges is saved in a variable called "query.filter_summary". I want to create a new table based on the record ranges selected by the user. Basically, I want to duplicate the main table but only with the user selected record range. Any suggestions?

    Thanks,

    Inanc

    #2
    Re: Creating a (sub)table from a form

    Probably easiest to duplicate the current table and then append the records you want. Append operations accept a filter.
    There can be only one.

    Comment


      #3
      Re: Creating a (sub)table from a form

      Originally posted by Stan Mathews View Post
      Probably easiest to duplicate the current table and then append the records you want. Append operations accept a filter.
      Thank you very much Stan! You are saving my day here!

      Inspired by your advice, I will clone the main table structure without any records and then append to the new table with the records I want. Here is the part of the code. I am just trying to create a new table and then fill it with records (no filtering yet) :

      Code:
      dim tbl as P
      dim tbl_main as P
      dim filename as C
      filename = "C:\A5\new_table.dbf" 
      
      tbl_main = table.current() 
      tbl_main.duplicate(filename,3)
      
      tbl=table.open(filename)
      tbl.close()
      
      append.t_db = tbl_main
      append.m_key = "" 
      append.t_key = "" 
      append.m_filter = "" 
      append.t_filter = "" 
      append.type = "All" 
      append.t_count = 0 
      tbl.append()
      However, I am getting an error:

      tbl.append()
      Type mismatch: variable append.t_db is of type Property variable, expected type Character

      Any suggestions? Thanks!

      Inanc

      Comment


        #4
        Re: Creating a (sub)table from a form

        Try this

        Code:
        dim tbl as P
        dim tbl_main as P
        dim filename as C
        dim tname as c
        filename = "C:\a5\new_table.dbf"  'table to be created
        
        
        tbl_main=table.current()
        tname=a5.get_path()+"/"+dbf() 'gets the table path and the name of the table in table.current() and coverts it to a character path
        
        tbl_main.duplicate(filename,3)  'duplicate the current table without records but with layouts/operations, field rules and indexes
        
        
        tbl=table.open(filename)  'open the new table for append
        
        
        append.t_db = tbl_main  'transaction table is table.current
        append.m_key = "" 
        append.t_key = "" 
        append.m_filter = "" 
        append.t_filter = "" 
        append.type = "All" 
        append.t_count = 0 
        tbl.append(tname)  '  tname is the source of the append - in this case the current table
        
        
        tbl.close()
        Adding the source or transaction table's name was the only way I could get it to append to the new table.

        FWIW

        Tom

        Comment


          #5
          Re: Creating a (sub)table from a form

          Originally posted by Tbaker View Post
          Try this

          .............

          Adding the source or transaction table's name was the only way I could get it to append to the new table.

          FWIW

          Tom
          Tom, thank you very much, it worked! Now I am at the next step, trying to append only the records that are filtered. I already have a filter expression working for the Report Preview which is called from a Form:

          Code:
          if Report_Summary= .T. then 
          	:Report.Preview("Summary_Linked2",query.filter_summary,query.order)
          end if
          I am trying to use the same query filter (query.filter_summary) in this append operation. I used various combination such as

          Code:
          append.m_key = "" 
          append.t_key = "" 
          append.m_filter = query.filter_summary
          append.t_filter = "" 
          append.type = "Unique Only"
          But every time, I just get a clone of the original table. Any suggestions for how to format the filtering part of the append function?

          Thanks,

          Inanc

          Comment


            #6
            Re: Creating a (sub)table from a form

            Code:
            append.m_key = "" 
            append.t_key = "" 
            append.m_filter = ""
            append.t_filter = query.filter_summary
            append.type = "Unique Only"
            You need to filter which records from the transaction table will be appended. The master table is the destination and having no records originally can't be filtered.
            There can be only one.

            Comment


              #7
              Re: Creating a (sub)table from a form

              Originally posted by Stan Mathews View Post
              Code:
              append.m_key = "" 
              append.t_key = "" 
              append.m_filter = ""
              append.t_filter = query.filter_summary
              append.type = "Unique Only"
              You need to filter which records from the transaction table will be appended. The master table is the destination and having no records originally can't be filtered.
              But Stan aren't we trying to bring in records into an empty table by filtering records from the transaction table? I am confused...

              Comment


                #8
                Re: Creating a (sub)table from a form

                Yes, but your sample code had the filter on the master table....


                Code:
                append.m_key = "" 
                append.t_key = "" 
                append.[COLOR="Red"][B]m_filter [/B][/COLOR]= query.filter_summary
                append.t_filter = "" 
                append.type = "Unique Only"
                There can be only one.

                Comment


                  #9
                  Re: Creating a (sub)table from a form

                  Thanks Stan. I missed what you changed in your code first time... However, I'm still having problems with filtering.

                  I changed the format little bit. When I created new tables, I was also getting new forms, reports etc... I am not sure why. So I decided to have a "fixed" sub table, but have its records get deleted when the form runs initially and then append the appropriate records with the filter.

                  Code:
                  dim tbl_sub as P
                  dim tbl_main as P
                  dim main_table as C
                  dim sub_table as C
                  
                  main_table=table.actual_filename_get("research_table1") 'get the full filename for the main table
                  sub_table=table.actual_filename_get("query_table1") 'get the full filename for the sub table
                  
                  tbl_main=table.current()
                  tbl=table.open(sub_table)
                  tbl.zap(.T.)   ' delte the records in the sub table
                  
                  append.t_db = tbl_main  ' Set the main table as the transaction table = table.current
                  append.m_key = "" 
                  append.t_key = "" 
                  append.m_filter = ""
                  append.t_filter = query.filter_summary
                  append.type="Unique Only" 
                  append.t_count = 0 
                  tbl.append(main_table) 
                  tbl.close()
                  Stan, I made the changes you suggested for the filtering part. And also tried simpler filters but it has no effect on the append. It's as if filtering has no effect...

                  As an example in its simplest form for the query,

                  query.filter_summary= "RTS='rts1'"

                  This format works well in the following:

                  Code:
                  if Report_Summary= .T. then 
                  	:Report.Preview("Summary_Linked2",query.filter_summary,query.order)
                  end if
                  I am not sure what I am missing here!!!

                  Thanks,

                  Inanc

                  Comment


                    #10
                    Re: Creating a (sub)table from a form

                    Originally posted by blue waters View Post
                    When I created new tables, I was also getting new forms, reports etc... I am not sure why.
                    tbl_main.duplicate(filename,3) 'duplicate the current table without records but with layouts/operations, field rules and indexes

                    tbl_main.duplicate(filename,9) 'duplicate table, field rules, and indexes

                    Code:
                    tbl.zap(.T.)   ' delte the records in the sub table
                    [COLOR="Red"]debug(1)[/COLOR]
                    append.t_db = tbl_main  ' Set the main table as the transaction table = table.current
                    append.m_key = "" 
                    append.t_key = "" 
                    append.m_filter = ""
                    append.t_filter = query.filter_summary

                    When the debugger opens type

                    query.filter_summary

                    into the example box, press Tab, the current value will show in the Value box. We can find out if the query.filter_summary still has the value we expect.
                    There can be only one.

                    Comment


                      #11
                      Re: Creating a (sub)table from a form

                      Originally posted by Stan Mathews View Post

                      ...

                      When the debugger opens type

                      query.filter_summary

                      into the example box, press Tab, the current value will show in the Value box. We can find out if the query.filter_summary still has the value we expect.
                      Thanks Stan, now I got on the table duplication. Indeed, I was also copying operations too...

                      Regarding the debugger, I ran it and the filter value is still what I expected. Actually, right after the append operation a report preview opens up and I can see the values that are filtered. So the filter logic/syntax is working fine (in the report preview).

                      Am I missing something in the filter settings for the append operation?

                      Thanks,

                      Inanc

                      Comment


                        #12
                        Re: Creating a (sub)table from a form

                        Shouldn't be any difference.

                        I think this

                        append.t_db = tbl_main

                        should be

                        append.t_db = main_table

                        I'd be glad to look at a sample database if you can create one.
                        There can be only one.

                        Comment


                          #13
                          Re: Creating a (sub)table from a form

                          Originally posted by Stan Mathews View Post
                          Shouldn't be any difference.

                          I think this

                          append.t_db = tbl_main

                          should be

                          append.t_db = main_table

                          I'd be glad to look at a sample database if you can create one.
                          Stan, thank you very much. I created a sample database with a similar form I use. Please look at the code in the form with the Code Explorer. This is giving me a different error this time. But I think you'll clearly see what I am trying to do... Thanks....

                          Comment


                            #14
                            Re: Creating a (sub)table from a form

                            I find it easiest to design such an operation in the genie, capture the xbasic, then modify it.
                            There can be only one.

                            Comment


                              #15
                              Re: Creating a (sub)table from a form

                              Originally posted by Stan Mathews View Post
                              I find it easiest to design such an operation in the genie, capture the xbasic, then modify it.
                              STAN, THANK YOU VERY MUCH!!! It worked in my main application :) Thanks for the tip too. It sounds like similar to recording a macro in Excel and modifying the VBA...

                              Last question for you this time, is it possible to change the font size used in a table? I'm trying to increase the font size. I couldn't find a way of doing that.

                              Thanks.

                              Comment

                              Working...
                              X