Πώς να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ στο ερώτημα φόρμας InfoPath κατά τη σύνδεση με προέλευση δεδομένων ADO

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 826992 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Το Microsoft Office InfoPath καθιστά τα σύνδεσης Microsoft SQL Server ή Microsoft Access απλή. Το InfoPath μπορεί να δημιουργήσει αυτόματα ερωτήματα απλή, άμεση πίνακα σε μια βάση δεδομένων SQL ή σε μια βάση δεδομένων της Access, χρησιμοποιώντας το Microsoft ActiveX Data Objects (ADO). Στη συνέχεια, το InfoPath ενεργοποιεί τα αποτελέσματα του ερωτήματος, εμφάνιση και επεξεργασία στη φόρμα.

Για πιο σύνθετα ερωτήματα, το InfoPath διαθέτει διάφορες μεθόδους προγραμματισμού για τους έμπειρους χρήστες ή για τον προγραμματιστή. Αυτές οι μέθοδοι προγραμματισμού δώσουν προχωρημένος χρήστης ή ο κύριος του έργου για να δημιουργήσετε φόρμες που μπορούν να εκτελέσουν ένα προσαρμοσμένο ερώτημα που χρησιμοποιεί πιο περίπλοκα σύνταξη SQL. Ένα παράδειγμα μιας κοινής προσαρμοσμένο ερώτημα χρησιμοποιεί ένα χαρακτήρα μπαλαντέρ για να βρείτε εγγραφές που ταιριάζουν εν μέρει τα καθορισμένα κριτήρια.

Τα ακόλουθα βήματα δείχνουν τον τρόπο χρήσης διαχειριζόμενου κώδικα του InfoPath για να εκτελέσετε μια αναζήτηση χαρακτήρων μπαλαντέρ σε έναν πίνακα SQL ή σε έναν πίνακα της Access χρησιμοποιώντας τοADOAdapterτο αντικείμενο.

Περισσότερες πληροφορίες

Το InfoPath σάς επιτρέπει να μετατραπεί μια σύνδεση δεδομένων ερωτήματος ως έναAdoQueryConnectionτο αντικείμενο. Αυτό σας παρέχει μεθόδους για να ανακτήσετε και να ορίσετε πληροφορίες σχετικά με τα ακόλουθα στοιχεία:
  • Η συμβολοσειρά σύνδεσης
  • Το κείμενο της εντολής SQL
  • Η τιμή χρονικού ορίου
Χρησιμοποιώντας τοAdoQueryConnectionτο αντικείμενο, μπορείτε να αλλάξετε μια εντολή SQL, για να εκτελέσετε πιο σύνθετες λειτουργίες, όπως ένα ερώτημα που χρησιμοποιεί χαρακτήρες μπαλαντέρ.

Οι πληροφορίες σε αυτό το άρθρο ισχύει για βάσεις δεδομένων SQL και βάσεις δεδομένων της Access. Τα ακόλουθα παραδείγματα χρησιμοποιούν τη βάση δεδομένων Northwind που περιλαμβάνεται με το Microsoft Office Access 2007 και 2010 του Microsoft Office Access.

Δημιουργία της βάσης δεδομένων

Εάν δεν έχουν ακόμη χρησιμοποιηθεί το δείγμα βάσης δεδομένων Northwind από την έκδοση του InfoPath, δημιουργήστε τη βάση δεδομένων, τοπικά. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

  1. Ξεκινήστε τη Microsoft Office Access.
  2. Με τοΔιαθέσιμα πρότυπαενότητα, επιλέξτεΔείγματα προτύπων.
  3. Επιλέξτε τοNorthwindβάση δεδομένων και, στη συνέχεια, κάντε κλικ στο κουμπίΔημιουργία.

Σχεδίαση φόρμας που θέτει ερωτήματα στη βάση δεδομένων

Αυτή η ενότητα περιγράφει τον τρόπο σχεδίασης μιας φόρμας ερωτήματος στο InfoPath. Αυτό το παράδειγμα χρησιμοποιεί τον πίνακα "Προμηθευτές" από τη βάση δεδομένων Northwind. Για να δημιουργήσετε μια φόρμα που να υποβάλλει ερώτημα σε αυτόν τον πίνακα, ακολουθήστε τα βήματα που παρέχονται για την έκδοση του InfoPath.

Το InfoPath 2010

Δημιουργήστε το πρότυπο φόρμας και, στη συνέχεια, να ορίσετε τη γλώσσα κώδικα προτύπου φόρμας σε C#. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
  1. Ξεκινήστε το 2010 σχεδίασης του InfoPath.
  2. Με τοΤα πρότυπα φόρμας για προχωρημένουςενότητα, επιλέξτεΒάση δεδομένων, και στη συνέχεια κάντε κλικ στο κουμπίΣχεδίαση φόρμας.
  3. Στον "Οδηγό σύνδεσης δεδομένων", κάντε κλικ στο κουμπίΕπιλογή βάσης δεδομένων.
  4. Εντοπίστε το φάκελο όπου αποθηκεύσατε τη βάση δεδομένων Northwind, επιλέξτε το αρχείο Northwind.accdb και, στη συνέχεια, κάντε κλικ στο κουμπίΆνοιγμα.
  5. Με τοΕπιλέξτε τον πίνακατο παράθυρο, κάντε κύλιση στο κάτω μέρος της λίστας, επιλέξτε τοΠρομηθευτέςπίνακας και στη συνέχεια κάντε κλικOK.
  6. Βεβαιωθείτε ότι είναι επιλεγμένο μόνο τα παρακάτω πεδία στο τοΠρομηθευτέςΠίνακας:
    • ΑΝΑΓΝΩΡΙΣΤΙΚΌ
    • Εταιρεία
    • Επώνυμο
    • Όνομα
    • Job_Title
    • Business_Phone
  7. Κάντε κλικ στο κουμπίΕπόμενη.
  8. Κάντε κλικ στο κουμπίΛήξηΓια να ολοκληρώσετε τον "Οδηγό σύνδεσης δεδομένων".
  9. Με τοΠεδίατμήμα του παραθύρου, αναπτύξτε τοdataFieldsκόμβος και στη συνέχεια σύρετε την προσθήκηd:Suppliersστο πλαίσιο κάτω από τον κόμβο τουΕκτέλεση ερωτήματοςκουμπί.
  10. Όταν σας ζητηθεί, κάντε κλικ για να επιλέξετεΕπαναλαμβανόμενος πίνακας.
  11. Με τοΠεδίατμήμα του παραθύρου, αναπτύξτε τοqueryFieldsκόμβος και στη συνέχεια σύρετε την προσθήκηq: προμηθευτέςστο πλαίσιο κάτω από τον κόμβο τουΝέα εγγραφήκουμπί. (Αυτό προστίθεται αυτόματα μια ενότητα με στοιχεία ελέγχου.)
  12. Κάτω από τηνΟ προγραμματιστήςη καρτέλα, κάντε κλικ στο κουμπίΓλώσσα.
  13. Με τοΓλώσσα προγραμματισμούκάτω τμήμαΓλώσσα κώδικα προτύπου φόρμας, επιλέξτεC#, και στη συνέχεια κάντε κλικ στο κουμπίOK.

Το InfoPath 2007

Δημιουργία του προτύπου φόρμας. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
  1. Εκκίνηση του InfoPath 2007.
  2. Στο παράθυρο πλοήγησης, τοΣυμπλήρωση φόρμαςστο παράθυρο διαλόγου, κάντε κλικ στο κουμπίΣχεδίαση ενός προτύπου φόρμας.
  3. Με τοΣχεδίαση ενός προτύπου φόρμαςπαράθυρο, Κάντε κλικ στο κουμπίΚενό,και, στη συνέχεια, κάντε κλικ στο κουμπίOK.
  4. Σχετικά με τηνΕργαλείαμενού, κάντε κλικ στο κουμπίΔεδομένα Συνδέσεις, και στη συνέχεια κάντε κλικ στο κουμπίΠροσθήκη. ΤοΔεδομένα ΣύνδεσηΑνοίγει το παράθυρο.
  5. Με τοΣύνδεση δεδομένωντο παράθυρο, κάντε κλικ για να Επιλέξτε τοΔημιουργήστε μια νέα σύνδεση μετο πλαίσιο ελέγχου, κάντε κλικ για να Επιλέξτε τοΛήψη δεδομένωντο πλαίσιο ελέγχου και, στη συνέχεια, κάντε κλικ στο κουμπίΕπόμενη.
  6. Κάντε κλικ για να επιλέξετε τοΒάση δεδομένων (Microsoft SQL Server ή του Microsoft Office Access μόνο)το πλαίσιο ελέγχου και, στη συνέχεια, κάντε κλικ στο κουμπίΕπόμενη.
  7. Κάντε κλικ στο κουμπίΕπιλογή βάσης δεδομένων.
  8. Εντοπίστε το φάκελο όπου αποθηκεύσατε τη βάση δεδομένων Northwind, επιλέξτε το φάκελο και, στη συνέχεια, κάντε κλικ στο κουμπίΆνοιγμα.
  9. Με τοΕπιλέξτε τον πίνακαστο παράθυρο διαλόγου, κάντε κύλιση στο κάτω μέρος της λίστας, επιλέξτε τοΠρομηθευτέςπίνακας και στη συνέχεια κάντε κλικOK.
  10. Με τοΔομή του αρχείου προέλευσης δεδομένωνΒεβαιωθείτε ότι είναι επιλεγμένο μόνο τις ακόλουθες κεφαλίδες στήλης:
    • ΑΝΑΓΝΩΡΙΣΤΙΚΌ
    • Εταιρεία
    • Όνομα
    • Επώνυμο
    • Job_Title
    • Business_Phone
  11. Κάντε κλικ στο κουμπίΕπόμενη.
  12. Κάντε κλικ στο κουμπίΣχεδίαση προβολής δεδομένων πρώτα, και στη συνέχεια Κάντε κλικ στο κουμπίΛήξηΓια να κλείσετε τον Οδηγό εγκατάστασης αρχείου προέλευσης δεδομένων και για τη δημιουργία η προεπιλεγμένη φόρμα.
  13. Με τοΑρχείο προέλευσης δεδομένωνπαράθυρο εργασιών, κάντε διπλό κλικdataFields.
  14. Μετακινήστε τοd:Suppliersκόμβος για τηνΔεδομέναΠροβολή της φόρμας.
  15. Όταν σας ζητηθεί, προσθήκηd:Suppliersως έναΕπαναλαμβανόμενος πίνακας.
  16. Σχετικά με τηνΠροβολήμενού, κάντε κλικ στο κουμπίΔιαχείριση Προβολές.
  17. Με τοΠροβολέςπαράθυρο εργασιών, κάντε κλικ στην επιλογή τουΕρώτημαπροβολή.
  18. Σχετικά με τηνΕργαλείαμενού, κάντε κλικ στο κουμπίΕπιλογές φόρμας.
  19. Με τοΚατηγορίαλίστα, κάντε κλικ στο κουμπίΠρογραμματισμός.
  20. Με τοΓλώσσα κώδικα προτύπου φόρμαςΚάντε κλικC#, και στη συνέχεια κάντε κλικ στο κουμπίOK.

Για να αλλάξετε τη φόρμα για να εκτελέσετε ένα προσαρμοσμένο ερώτημα

Αυτή η ενότητα περιγράφει τον τρόπο εγγραφές που έχουν τιμές που μοιάζουν με τη συμβολοσειρά αναζήτησης αλλά δεν ταιριάζουν ακριβώς στη συμβολοσειρά αναζήτησης. Για να αναζητήσετε εγγραφές που έχουν παρόμοιες τιμές, μπορείτε να χρησιμοποιήσετε μια συμβολοσειρά χαρακτήρων μπαλαντέρ και τοΌΠΩΣπρόταση σε ένα ερώτημα SQL. Όταν ο χαρακτήρας μπαλαντέρ χαρακτήρας συμβολοσειράς και τηνΌΠΩΣδήλωση χρησιμοποιούνται μαζί, μπορούν να εντοπίσουν τις εγγραφές, με βάση τα κριτήρια αναζήτησης του χαρακτήρα μπαλαντέρ. Αυτές οι εγγραφές επιστρέφονται στη συνέχεια στο InfoPath.

Για να αλλάξετε τη φόρμα για να εκτελέσετε ένα προσαρμοσμένο ερώτημα από τοΤίτλος εργασίαςπεδίο στο InfoPath 2010 ή InfoPath 2007, ακολουθήστε τα εξής βήματα:

  1. Σε κατάσταση σχεδίασης, κάντε δεξιό κλικ τουΕκτέλεση ερωτήματοςκουμπί και, στη συνέχεια, κάντε κλικ στο κουμπίΙδιότητες κουμπιού.
  2. Κάντε τις ακόλουθες αλλαγές:
    • Αλλαγή τουΕνέργειατο κουμπί για ναΚανόνες και προσαρμοσμένος κώδικας
    • Αλλαγή τουΕτικέταΓια ναΕκτέλεση ερωτήματος
    • Αλλαγή τουΑΝΑΓΝΩΡΙΣΤΙΚΌΓια ναbtnQuery
  3. Κάντε κλικ στην επιλογή τουΕπεξεργασία κώδικα φόρμαςΓια να εφαρμόσετε τις αλλαγές, και στη συνέχεια ξεκινήστε το Visual Studio Tools για εφαρμογές επεξεργασίας. Θα ανοίξει το πρόγραμμα χειρισμού συμβάντων "Clicked" btnQuery.
  4. Αντικαταστήστε το σχόλιο "/ / Γράψτε τον κώδικά σας εδώ" με τον ακόλουθο κώδικα:
    //Create an XPathNavigator object for the main data source
    XPathNavigator xnMain = this.MainDataSource.CreateNavigator();
     
    //Create an AdoQueryConnection from the main data source by "casting" the default
    //data connection to an "AdoQueryConnection"
    AdoQueryConnection cn = (AdoQueryConnection)this.DataConnections["Main connection"];
     
    //Obtain the default SQL command for the form.
    string strOrigSQLCommand = cn.Command.ToString();
     
     
     
    // Obtain the query node that you want to change.
    XPathNavigator xnSuppliersQuery = xnMain.SelectSingleNode("/dfs:myFields/dfs:queryFields/q:Suppliers", this.NamespaceManager);
     
    //Obtain the text that was entered for the wildcard character search, and then clear the current query parameter so that InfoPath will leave the current query parameter blank.
    string strJobTitle = xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(string.Empty);
     
    //Have InfoPath construct an SQL command that is based on all other field values.
    string strMySQLCommand = cn.BuildSqlFromXmlNodes(xnSuppliersQuery);
     
    //Save the other query items, and then clear the other query items before the next query.
    string strSupplierID = xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(string.Empty);
    string strCompany = xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(string.Empty);
    string strLastName = xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(string.Empty);
    string strFirstName = xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(string.Empty);
    string strBusPhone = xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(string.Empty);
     
    //Add Job_Title to the query so that Job_Title can support wildcard characters.
    if (strJobTitle != string.Empty)
    {
           if (strMySQLCommand != string.Empty)
                  strMySQLCommand += " AND ";
     
           //Check whether the user entered the wildcard character (%) as part of the title.
    if(strJobTitle.Contains("%"))
                 strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "'";
           else
                 strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "%'";               
    }
     
    //Construct the full query string.
    string strSQLQuery = strOrigSQLCommand;
    if (strMySQLCommand != string.Empty)
    strSQLQuery += " WHERE " + strMySQLCommand;
     
    //Set the command and run the query.
    cn.Command = strSQLQuery;
    cn.Execute();
     
    //Restore all the user entries to the Query fields so that the user entries will 
    //be available if you want to change and to rerun the query.
    xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(strSupplierID);
    xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(strCompany);
    xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(strLastName);
    xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(strFirstName);
    xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(strJobTitle);
    xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(strBusPhone);
     
    //Restore the default table command (for the next time).
    cn.Command = strOrigSQLCommand;
     
    //Clean up
    xnMain = null;
    cn = null;
    xnSuppliersQuery = null;
  5. Δημιουργήστε το έργο κάνοντας κλικ τοΔόμησητο στοιχείο μενού και στη συνέχεια κάνοντας κλικ στην επιλογήΔόμησηόνομα έργου.
  6. Αποθηκεύστε τις αλλαγές και, στη συνέχεια, επιστρέψτε στο InfoPath.

Ελέγξτε τον κωδικό

Το δείγμα κώδικα που παρέχεται στην προηγούμενη διαδικασία σάς επιτρέπει να κάνετε μια αναζήτηση χαρακτήρων μπαλαντέρ τηςΤίτλος εργασίαςπεδίο τηςΠρομηθευτέςστον πίνακα. Παρέχοντας ένα ερώτημα αναζήτησης όπως% Πωλήσεων, όλες τις εγγραφές που επιστρέφονται θα έχετε επαφές σε πωλήσεων θέση. Οι επαφές αυτές μπορεί να είναι αντιπρόσωπος, ένας διαχειριστής ή ένας παράγοντας, εφόσον τους εγγραφή πληροί τα κριτήρια αναζήτησης του% Πωλήσεων. Οι επαφές που έχουν "Πωλήσεις" στοΤίτλος εργασίαςτο πεδίο είναι φιλτράρει.


Για να επαληθεύσετε ότι όλες οι εγγραφές που επιστρέφονται έχετε επαφές σε πωλήσεων θέση, ακολουθήστε τα εξής βήματα:
  1. Για το 2010 του InfoPath:Σχετικά με τηνΚεντρική σελίδακαρτέλα στην κορδέλα, κάντε κλικ στο κουμπίΠροεπισκόπηση.
    Για το InfoPath 2007:Στη γραμμή εργαλείων, κάντε κλικ στο κουμπίΠροεπισκόπηση, και στη συνέχεια κάντε κλικ στο κουμπίΦόρμα.
  2. Με τοΤίτλος εργασίαςπεδίο ερωτήματος, τύπος% Πωλήσεων.
  3. Κάντε κλικ στο κουμπίΕκτέλεση ερωτήματος.

Οι εγγραφές που επιστρέφονται από το προσαρμοσμένο ερώτημα είναι όλες τις επαφές σε πωλήσεων θέση.

Ιδιότητες

Αναγν. άρθρου: 826992 - Τελευταία αναθεώρηση: Δευτέρα, 7 Φεβρουαρίου 2011 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
Λέξεις-κλειδιά: 
kbhowto kbmt KB826992 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:826992

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com