Excel και Import Script

969 views
Skip to first unread message

kko

unread,
Mar 19, 2013, 6:06:34 AM3/19/13
to so...@googlegroups.com
Καλημέρα,
 έχει κάνει κανείς excel import σε πίνακα sql από import script ;

Στο Black Book λέει στην σελίδα 214,
 "...
 2. Εισαγωγή Excel αρχείου από επιλεγμένο αρχείο παραμέτρων (vExcelFile) σε sql πίνακα με όνομα
CCCIMPORTEXCEL(Κλήση της συνάρτησης Evaluate από τη Library SysRequest).
x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'), 
'ExcelImport('+#39+:ImpTable.vExcelFile+#39+','+#39+'CCCIMPORTEXCEL'+#39+',1,2)', 2));
..."

Οπότε έφτιαξα κι εγώ ένα import script όπως από κάτω... αλλά τρώω access violation, το χει δοκιμάσει κάποιος και δουλεύει;

{
 if (:ImpTable.vImpOK=1) 
{
      x = SafeExecSql('SoftOne', 'DROP TABLE [TEMPGLDT]', Null);
      x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),'ExcelImport('+#39+:ImpTable.vEXLFile+#39+','+#39+'TEMPGLDT'+#39+',1,2)', 2));
             UserResp=SendResponse('Ολοκλήρωση Εργασίας...  !', 'RESULTS.LABELTEXT');
}
else
{
UserResp=SendResponse('...πάτα ένα οκ, και ξανά...', 'RESULTS.LABELTEXT');
}
}

kko

unread,
Mar 19, 2013, 6:10:45 AM3/19/13
to so...@googlegroups.com

Κωνσταντίνος Βάππας

unread,
Mar 19, 2013, 6:11:31 AM3/19/13
to so...@googlegroups.com
Καλημέρα,
μία από τις παραμέτρους είναι ImportModule('Imp')
Υπάρχει το imp στο import script?

π.χ. Import Imp into 'SALDOC' {}

σαν να έκανες import δηλαδή σε κάποιο object.
Αν κάνεις import βάζεις το όνομά του, αν όχι βάζεις κάτι σαν το παραπάνω.


--
--
Softone Developers Network group.
To post to this group, send email to so...@googlegroups.com
---
Λάβατε αυτό το μήνυμα επειδή έχετε εγγραφεί στην ομάδα Softone Developers Network των Ομάδων Google.
 
Για να καταργήσετε την εγγραφή σας από αυτή την ομάδα και να σταματήσετε να λαμβάνετε μηνύματα ηλεκτρονικού ταχυδρομείου από αυτή, στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στη διεύθυνση soft1+un...@googlegroups.com.
Για περισσότερες επιλογές, επισκεφτείτε τη διεύθυνση https://groups.google.com/groups/opt_out.
 
 

KONSTANTINOS KOURENTZES

unread,
Mar 19, 2013, 6:14:13 AM3/19/13
to so...@googlegroups.com
δηλαδή απλά κάνω ένα Import Imp χωρίς τίποτα μέσα...;

Λάβατε αυτό το μήνυμα επειδή έχετε εγγραφεί σε ένα θέμα στην ομάδα "Softone Developers Network" στις Ομάδες Google.
Για να καταργήσετε την εγγραφή σας από αυτό το θέμα, επισκεφτείτε τη διεύθυνση https://groups.google.com/d/topic/soft1/ddfZPe_a2-o/unsubscribe?hl=el. Για να καταργήσετε την εγγραφή σας από αυτή την ομάδα και όλα τα θέματα της, στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στη διεύθυνση soft1+un...@googlegroups.com.

Για περισσότερες επιλογές, επισκεφτείτε τη διεύθυνση https://groups.google.com/groups/opt_out.
 
 



--
Konstantinos Kourentzes


kko

unread,
Mar 19, 2013, 6:18:38 AM3/19/13
to so...@googlegroups.com
Λοιπόν έπαιξε κανονικά, ευχαριστώ!

Παραθέτω το imp που δούλεψε για μελλοντική αναφορά...

form {
[TABLES]
ImpTable=;;;;Master;3

[ImpTable]
vImpOK=2;15;1;1;0;Επιβεβαίωση μεταφοράς;$Y;;0;1
vEXLFile=1;255;1;1;0;Διαδρομή αρχείου;$Filename;;;

[PANELS]
PANEL11=0;;0;055,000,000,000,G10;;

[PANEL11]
ImpTable.vImpOK
ImpTable.vEXLFile
}

var vModule, x, vRow, vRowCancel, UserResp;

Import Imp into 'SALDOC,IMPORT:1'
{        }

Connect Xplorer SoftOne {
   connect();
     s1data = select 1 as ena from company;

    }

{
 if (:ImpTable.vImpOK=1)
    {

         x = SafeExecSql('SoftOne', 'DROP TABLE [TEMPGLDT]', Null);
         x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),'ExcelImport('+#39+:ImpTable.vEXLFile+#39+','+#39+'TEMPGLDT'+#39+',1,2)', 2));

             UserResp=SendResponse('Ολοκλήρωση Εργασίας...!', 'RESULTS.LABELTEXT');

Κωνσταντίνος Βάππας

unread,
Mar 19, 2013, 6:19:24 AM3/19/13
to so...@googlegroups.com
Ναι για να το χρησιμοποιήσεις στην Evaluate.

kko

unread,
Mar 19, 2013, 6:37:33 AM3/19/13
to so...@googlegroups.com
έτσι από περιέργεια, 
στο 
       x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),'ExcelImport('+#39+:ImpTable.vEXLFile+#39+','+#39+'TEMPGLDT'+#39+',1,2)', 2));
το 1 σημαίνει αν έχει γραμμή τίτλων ή όχι για την ονομασία των πεδίων του πίνακα,
το 2 δεν βλέπω να κάνει διαφορά...

Κωνσταντίνος Βάππας

unread,
Mar 19, 2013, 7:02:18 AM3/19/13
to so...@googlegroups.com
Αν αντί για 2 δώσεις τιμή 1 δε θα διαγράψει τον πίνακα αν υπάρχει.



--

kko

unread,
Mar 19, 2013, 12:42:41 PM3/19/13
to so...@googlegroups.com
Το βρίσκω καταπληκτικό,
Ευχαριστώ πολύ,
Reply all
Reply to author
Forward
0 new messages