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

operations on web

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

  • operations on web

    I have a number of database operations, such as appends, field updates, and deleting selected records, which work fine on the desk top. How do I get these operations to run on the data on the server from a web application?

  • #2
    Re: operations on web

    There are a couple ways to do this.

    One would be to encapsulate your operations in functions and/or scripts, then create an .AEX file to add to your web server. Plenty of info on that in the help files and further on this board.

    There are also various ways to create the instructions right in a component or on an .a5w page. For instance, if you were working with an export of the Alphasports customer.dbf, you could put this code in an Advanced Button on a dialog:

    Code:
    <%A5
    a_tbl = table.open("[pathalias.adb_path\customer")
    export.type = 4
    export.names = .T.
    export.file = "[pathalias.adb_path]\customer.xls"
    export.options = "QLTS"
    export.field_sep = ","
    export.record_sep = "<CR><LF>"
    export.fields = 19
    export.field1 = "customer_id"
    export.field2 = "firstname"
    export.field3 = "lastname"
    etc. etc. etc.
    a_tbl.export()
    a_tbl.close()
    %>
    You don't have to write the code by hand; you can use the operations you already have, and just borrow the Xbasic for your web page or component.
    -Steve
    sigpic

    Comment


    • #3
      Re: operations on web

      First I would go through the Samples that come with Alpha and read/purchase
      xbasic for everyone by Dr Peter Wayne good read and very helpful.

      Like Steve just mentioned take your current xbasic and add to an advanced button.

      Besides the AEX route which I would love but cant seem to get to work you can make a5w page called e.g. update_customertable.a5w
      and put your customer table update code in there and call the page from a link or to do a redirect after you have finished with the current page so the code runs and another to go back etc.

      Hope this is helpful

      Nicholas Wieland
      Nicholas Wieland
      LedgerSuite.com Corp
      [email protected]
      http://www.ledgersuite.com

      Comment


      • #4
        Re: operations on web

        I set up a trial database and created an operation to update a field. I made a grid of the database, put it on a web page, and published it. I made up an advanced button dialog and copied into it the xbasic from the operation. I put the dialog into a webpage and published it. I opened the dialogue page and clicked on the button. Something seemed to happen, but the data in the database page did not change (after refreshing). I clicked on the button and then clicked submit. Still, no field update occurred.

        Comment


        • #5
          Re: operations on web

          Do you have the table name fully qualified? You need the path and table name.. Just in case the database isn't open on the server.....

          Or like Steve's example...
          "[pathalias.adb_path]\customer"
          Al Buchholz
          Bookwood Systems, LTD
          Weekly QReportBuilder Webinars Thursday 1 pm CST

          Occam's Razor - KISS
          Normalize till it hurts - De-normalize till it works.
          Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
          When we triage a problem it is much easier to read sample systems than to read a mind.
          "Make it as simple as possible, but not simpler."
          Albert Einstein

          http://www.iadn.com/images/media/iadn_member.png

          Comment


          • #6
            Re: operations on web

            Conrad,
            And you did place the xbasic between the Alpha code tags?? Just one of the very FEW things I realize must be done.

            Code:
            <%A5
            
            xbasic code
            
            %>
            Mike
            __________________________________________
            It is only when we forget all our learning that we begin to know.
            It's not what you look at that matters, it's what you see.
            Henry David Thoreau
            __________________________________________



            Comment


            • #7
              Re: operations on web

              Thanks for the suggestion. I had not done that. When I tried to do it, in the server events part of the dialogue builder, I got an error message - line 1, column 1 - "Error:Expected value" . What am I doing wrong?

              Comment


              • #8
                Re: operations on web

                Originally posted by Conrad Lindes View Post
                Thanks for the suggestion. I had not done that. When I tried to do it, in the server events part of the dialogue builder, I got an error message - line 1, column 1 - "Error:Expected value" . What am I doing wrong?
                Conrad

                Please post what you have... My guessing is not too good today..
                Al Buchholz
                Bookwood Systems, LTD
                Weekly QReportBuilder Webinars Thursday 1 pm CST

                Occam's Razor - KISS
                Normalize till it hurts - De-normalize till it works.
                Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
                When we triage a problem it is much easier to read sample systems than to read a mind.
                "Make it as simple as possible, but not simpler."
                Albert Einstein

                http://www.iadn.com/images/media/iadn_member.png

                Comment


                • #9
                  Re: operations on web

                  dim mru as p
                  mru = mru_query("z_experiment")
                  current_filter = mru.filter
                  current_order = mru.order
                  current_flags = mru.flags

                  'Check to see if current filter/order is valid in the context of "z_experiment"
                  if current_filter <> "" then
                  if eval_valid(current_filter,"z_experiment") =.f. then
                  a5_Operation_Warning() 'Display warning if current selection is meaningless
                  current_filter = ".t."
                  end if
                  end if

                  if current_order <> "" then
                  if eval_valid(current_order,"z_experiment") = .f. then
                  current_order = ""
                  end if
                  end if

                  a_tbl = table.open("z_experiment")
                  ON ERROR GOTO ERROR06062009195656890


                  DIM a5_operation_filter as C
                  a5_operation_filter = current_filter
                  query.filter = a5_operation_filter
                  DIM a5_operation_order as C
                  a5_operation_order = current_order
                  query.order = a5_operation_order
                  query.options = "I"+current_flags
                  query.description = "Temporary Query"
                  a_tbl.query_create("N")

                  update.fields = 1
                  update.field1 = "TRUE_OF_FALSE"
                  update.expr1 = "if(Numbre_Two>5,.t.,.f.)"

                  'Prompt for confirmation before running the Operation.......
                  dim rec_count as n

                  rec_count = a5_get_records_in_query("z_experiment",a5_operation_filter,-1,.f.)
                  message_text = rec_count + " record(s) from 'z_experiment' will be updated."+crlf(2)+ "OK to proceed?"
                  operation_result=ui_msg_box("Update Operation",message_text,UI_OK_CANCEL+ UI_FIRST_BUTTON_DEFAULT+ UI_INFORMATION_SYMBOL)
                  If operation_result <> ui_ok_selected then
                  end
                  end if



                  a_tbl.update()


                  GOTO CONTINUE06062009195656890
                  ERROR06062009195656890:
                  ON ERROR GOTO 0
                  ui_msg_box("Error","Error running Update Operation"+crlf()+error_text_get())
                  END
                  CONTINUE06062009195656890:
                  a_tbl.close()
                  'Display a dialog box showing the results of the Operation
                  '(If last parameter is blank, button to show result is not displayed).
                  dim args as sql::arguments
                  if eval_valid("arguments") then
                  if typeof(arguments) = "P" then
                  args = arguments
                  end if
                  end if
                  a5_update_op_result(a_records_processed, a_records_violated,"z_experiment",a5_operation_filter,args)

                  'If the Operation is run from within a Form or Browse, then refresh the window
                  if is_object(topparent.this) then
                  if topparent.Class() = "form" .or. topparent.class() = "browse" then
                  topparent.Refresh_layout()
                  end if
                  end if

                  Comment


                  • #10
                    Re: operations on web

                    Conrad

                    Let me clarify. If you've tried this on the web, you have a web page or dialog that contains your code.....

                    All of that code would be good to look at.
                    Al Buchholz
                    Bookwood Systems, LTD
                    Weekly QReportBuilder Webinars Thursday 1 pm CST

                    Occam's Razor - KISS
                    Normalize till it hurts - De-normalize till it works.
                    Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
                    When we triage a problem it is much easier to read sample systems than to read a mind.
                    "Make it as simple as possible, but not simpler."
                    Albert Einstein

                    http://www.iadn.com/images/media/iadn_member.png

                    Comment


                    • #11
                      Re: operations on web

                      You have to come down a level. Yes, I have set up a dialogue that contains the code I sent you. What else do you want me to sent. Tell me in English, not alpha-ese.

                      Comment

                      Working...
                      X