Import Script: Εισαγωγή αγορών και ταυτόχρονη δημιουργία ειδών

1,155 views
Skip to first unread message

JacarandaBill

unread,
Sep 25, 2008, 7:24:50 AM9/25/08
to Softone Developers Network
Σε import script από Excel θέλω να εισαγάγω παραστατικά αγορών από
Excel και ταυτόχρονα να δημιουργώ είδη. Κάθε γραμμή στο Excel είναι
ταυτόχρονα γραμμή στο παραστατικό αγορών και πάντα θεωρείται ότι
αναφέρεται σε ένα νέο είδος που πρέπει να ανοίξω. Ο κωδικός του νέου
είδος θα πρέπει να δημιουργήται αυτόματα.

Αν είχα τον κωδικό του είδους στην γραμμή στο excel, ο σκελετός της
βασικής import συνάρτησης μου θα ήταν όπως παρακάτω συν το ότι θα
έπρεπε μέσα στο IteLines dsIteLines {} να βάλω και έναν converter
που να του δίνω τον κωδικού του είδους και να μου επιστέφει το σωστό
MTRL.

Υπάρχει καμια ιδέα πως μπορώ να δημιουργώ τα είδη μέσα στον παρακάτω
κώδικα; Υποθέτω ότι θα πρέπει να χρησιμοποιήσω το ITEMS αντικείμενο
αλλά δεν βρήκα τρόπο πως να το ορίσω ώστε να είναι ορατό.

Import ImpPurDoc(dsPurDoc, dsIteLines) into 'PURDOC,IMPORT:1' {

// ****************************************
// Ηeader του παρατατικού
// ****************************************
FinDoc dsPurDoc {
<αναθέσεις τιμών πεδίων>
}

// ****************************************
// Γραμμές παραστατικού
// ****************************************
IteLines dsIteLines {
<αναθέσεις τιμών πεδίων>
}
}

JacarandaBill

unread,
Sep 25, 2008, 7:27:28 AM9/25/08
to Softone Developers Network
Τυπογραφικό: ITEMS-> ITEM

Νίκος Μάλιακκας

unread,
Sep 25, 2008, 11:23:08 AM9/25/08
to Softone Developers Network
δεν είναι από excel αλλά απο access, ριξε μια ματιά
παρατηρησε τους converters για το existεγγραφη, και το fetch για να
κάνεις μόνο update...

//---------------------------------------------------------------------------------------------------------------------------
// ΕΙΣΑΓΩΓΗ ΚΥΡΙΩΝ ΠΙΝΑΚΩΝ ΑΠΟ ALFAWARE
// Create script BY RODIAKI PLIROFORIKI LTD, 2007 12 17
// NMM2
//---------------------------------------------------------------------------------------------------------------------------
// TableName = OriginalTableName; DomainFieldName {SoDtype or
CustType}; DomainFieldValue {12,51}; LocateStr; Caption; FieldType
{0,1,2,3=Sql, Report, Function}; 1 to 1 relation
// panelname = PanelType; Caption; Level; Info;
// filename = DataType; DisplaySize; Require; Visible; ReadOnly;
Caption; Editor; TblEditor; Forced; Default
// datatype = 1=ftString, 2=ftSmallint, 3=ftInteger, 4=ftWord,
6=ftFloat, 11=ftDateTime, 16=ftMemo

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

[ImpTable]
vImpWhouse=2;15;1;1;0;ΜΕΤΑΦΟΡΑ ΑΠΟΘΗΚΕΥΤΙΚΩΝ ΧΩΡΩΝ;$Y;;0;1
vImpMTRUNIT=2;15;1;1;0;ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ;$Y;;0;1
vImpMTRGROUP=2;15;1;1;0;ΟΜΑΔΑ;$Y;;0;1
vImpMtrMODEL=2;15;1;1;0;ΜΟΝΤΕΛΟ-ΥΠΟΚΑΤΗΓΟΡΙΑ;$Y;;0;1
vImpMTRL=2;15;1;1;0;ΕΙΔΗ;$Y;;0;1
vImpService=2;15;1;1;0;ΥΠΗΡΕΣΙΕΣ;$Y;;0;1
vImpPAGIA=2;15;1;1;0;ΠΑΓΙΑ ;$Y;;0;1
vImpYpiresia=2;15;1;1;0;ΥΠΗΡΕΣΙΑ;$Y;;0;1
vImpTmima=2;15;1;1;0;ΤΜΗΜΑ;$Y;;0;1
vImpCUST=2;15;1;1;0;ΠΕΛΑΤΕΣ;$Y;;0;1
vImpCUST1=2;15;1;1;0;ΚΑΤΑΘΕΤΕΣ;$Y;;0;1
vImpKrat=2;15;1;1;0;ΚΡΑΤΗΣΕΙΣ - ΠΙΣΤΩΤΙΚΕΣ ΚΑΡΤΕΣ;$Y;;0;1
vImpBank=2;15;1;1;0;ΤΡΑΠΕΖΕΣ;$Y;;0;1
vImpBankAcc=2;15;1;1;0;ΤΡΑΠΕΖΙΚΟΙ ΛΟΓΑΡΙΑΣΜΟΙ;$Y;;0;1
vImpEsoda=2;15;1;1;0;ΕΣΟΔΑ;$Y;;0;1
vImpEjoda=2;15;1;1;0;ΕΞΟΔΑ;$Y;;0;1
vImpKratiseis=2;15;1;1;0;ΚΡΑΤΗΣΕΙΣ - ΥΠΗΡΕΣΙΕΣ;$Y;;0;1
vImpDiorth=2;15;1;1;0;Διορθώσεις Προμηθευτών;$Y;;0;1

[PANELS]
PANEL1=0;Εντολές Χειρισμού;0;025,055000,000,G10


[PANEL1]
ImpTable.vImpWhouse
ImpTable.vImpMTRUNIT
ImpTable.vImpMTRGROUP
ImpTable.vImpMtrMODEL
ImpTable.vImpMTRL
ImpTable.vImpService
ImpTable.vImpPAGIA
ImpTable.vImpYpiresia
ImpTable.vImpTmima
ImpTable.vImpCUST
ImpTable.vImpCUST1
ImpTable.vImpKrat
ImpTable.vImpBank
ImpTable.vImpBankAcc
ImpTable.vImpEsoda
ImpTable.vImpEjoda
ImpTable.vImpKratiseis
ImpTable.vImpDiorth

} //Form



Converter ConvMtrl (MTRL, 'COMPANY=1;CODE;SODTYPE=51', MTRL);
Converter ConvCust (TRDR, 'COMPANY=1;SODTYPE=13;CODE', TRDR);
Converter ConvCustAFM (TRDR, 'COMPANY=1;SODTYPE=13;AFM', TRDR);
Converter ConvPolItem (MTRL, 'COMPANY=1;CODE;SODTYPE=53', MTRL);
Converter ConvVat (VAT, 'PERCNT', VAT);
Converter ConvVatp (VAT, 'VAT', PERCNT);
Converter ConvCreditCard(CREDITCARDS, 'COMPANY=1;CODE', CREDITCARDS);
Converter ConvSeries (CCCSERIESMAPPING,
'otherscode;SOSOURCE=1351',softonecode);
Converter ConvItem (MTRL,
'COMPANY=1;CODE;SODTYPE=51', MTRL);
Converter ConvFindoc2 (FINDOC, 'INT01', FINDOC);
Converter ConvFindoc (FINDOC, 'FINCODE;COMPANY=1;SOSOURCE=1351',
FINDOC);
Converter ConvSalesMan (PRSN, 'COMPANY=1;WEBPAGE;', PRSN);
Converter ConvMtrlSubstitute (MTRSUBSTITUTE, 'CODE', MTRL);
Converter ConvMtrGroup (MTRMODEL, 'MTRMODEL;SODTYPE=51', MTRGROUP);
Converter ConvMtrUnit (MTRUNIT, 'NAME', MTRUNIT);
Converter ExistsCustomer (TRDR , 'CODE;SODTYPE=13' , TRDR);
Converter Existsk (TRDR , 'CODE1;WEBPAGE;SODTYPE=13' , TRDR);
converter ConvBank (BANKBRANCH, CODE, BANK);
converter ConvBankBRANCH (BANKBRANCH, CODE, BANKBRANCH);


Var
vTmp, vDate, vErrors, vSeries, vEidos, vvBranch, vvWhouse, vvSERIES,
vPelatis,
vVat, vCC, vCCs, vfact, vStat, vlineval, vvmtrl,vStatus, vfactor,
tmpseries, vAkyromena, vinserted ;



Import ImpWhouse(awhouse) into '$WHOUSE' {
WHOUSE awhouse {
WHOUSE = awhouse.OikApothID+100;
vvWhouse = Trim(awhouse.OikApothShort);
if (vvWhouse='') {vvWhouse=awhouse.OikApothID+100;}
SHORTCUT = vvWhouse;
// SHORTCUT = awhouse.OikApothShort;

CONTACT =awhouse.Apothikarios;
NAME = awhouse.OikApothDescr;
// ZIP = awhouse.ZIPCODE;
ADDRESS = awhouse.ApothAddress;
// PHONE1 = awhouse.PHONE1;
// PHONE2 = awhouse.PHONE2;
// ACNMSK = awhouse.ACCMASK;
COMPANY= :x.sys.company;


} //WHOUSE
}

// ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ
Import ImpMTRUNIT(CMTRUNIT) into 'MTRUNIT' {
MTRUNIT CMTRUNIT {
MTRUNIT=CMTRUNIT.OikMonMetrID;
SHORTCUT=CMTRUNIT.OikMonMetrID;
//SHORTCUT=CMTRUNIT.OikMonMetrDescr;
NAME=CMTRUNIT.OikMonMetrDescr;
QDECIMALS = 2;
ISACTIVE = 1;
SODIM=1;
SODIV=1;
ACNMSK=NULL;
}
} //ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ


// ΟΜΑΔΑ
Import ImpMTRGROUP(CMTRGROUP) into '$MTRGROUP' {
MTRGROUP CMTRGROUP {
SODTYPE = 51;
MTRGROUP=CMTRGROUP.OikKatEidosID;
CODE=Trim(CMTRGROUP.OikKatEidosID) + '-' +
CMTRGROUP.OikKatEidosShort;
// CODE=CMTRGROUP.OikKatEidosShort;
// CCCSTRORDER=CMTRGROUP.STRORDER;
NAME=Trim(CMTRGROUP.OikKatEidosDescr);
ISACTIVE = 1;
}
} //ΟΜΑΔΑ

//MONTELO
Import ImpMtrModel (cmtrmodel) into 'ITEMODEL' {
MTRMODEL cmtrmodel {
MTRMODEL=cmtrmodel.OikYpokatEidosID;
CODE=cmtrmodel.OikYpokatEidosID;
NAME=cmtrmodel.OikYpokatEidosDescr;
MTRGROUP=cmtrmodel.OikKatEidosID;
SODTYPE=51;


}
} //MONTELO

//ΕΙΔΗ
Import ImpItem(CMTRL) into 'ITEM' {
ITEM CMTRL {
WEBPAGE=CMTRL.OikEidosID;
//CODE=CMTRL.OikEidosShort;
CODE=CMTRL.OikEidosShort + '-' +
Trim(CMTRL.OikEidosID);
NAME=CMTRL.OikEidosDescr;
//MTRPLACE=CMTRL.SUBCODE2;
//CODE2=CMTRL.CODE2;
//CODE1=CMTRL.CODE1;
//COUNTRY=1;
//MTRMANFCTR=CMTRL.MTRMANFCTR;
INSDATE=CMTRL.OikEidosLastSpecific;
vVat=Trim(CMTRL.OikEidosFPAPerc);
if (vVat='') {vVat=0;}
if (vVat='18') {vVat=19;}
VAT=ConvVAT(vVat);

//MTRACN=CMTRL.GLMID;
MTRTYPE = 0;
MTRTYPE1 = 0;
//MTRCATEGORY=CMTRL.INTID;

//MTRMARK=CMTRL.MTRMARK;
MTRMODEL=CMTRL.OikYpokatEidosID;

MTRGROUP=ConvMtrGroup(CMTRL.OikYpokatEidosID);
//COUNTRY=CMTRL.COUNTRY;
//PRICEW=CMTRL.PRICEW;
//PRICER=CMTRL.PRICER;
//MARKUPW=CMTRL.MARKUPW;
//MARKUPR=CMTRL.MARKUPR;
//REPLPRICE=CMTRL.REPLPRICE;
//MTRPCATEGORY=CMTRL.MTRPCATEGORY;

MTRUNIT1=ConvMtrUnit(Trim(CMTRL.OikEidosMonada));
MTRUNIT2=ConvMtrUnit(Trim(CMTRL.OikEidosMonada));
MTRUNIT3=ConvMtrUnit(Trim(CMTRL.OikEidosMonada));
MTRUNIT4=ConvMtrUnit(Trim(CMTRL.OikEidosMonada));
MU21=1;
MU31=1;
MU41=1;
MU12MODE=1;
MU13MODE=1;
MU14MODE=1;

SALQTY=1;
PURQTY=1;
ITEQTY=1;
//NAME1=1;
ACNMSK=CMTRL.DipLogDiplID;
//ACNMSK1=CMTRL.GLSALESCODE;
//ACNMSK2=CMTRL.ANALPURCHASECODE;
//ACNMSK3=CMTRL.ANALSALESCODE;
//ACNMSK4=CMTRL.PRODCODE;
//VOLUME=CMTRL.VOLUME;
//WEIGHT=CMTRL.WEIGHT;

vErrors = 'id: ' + VarToStr(CMTRL.OikEidosID) +' ,code:' +
VarToStr(CMTRL.OikEidosShort) + ',name:' + Trim(CMTRL.OikEidosDescr);
}

ITEEXTRA CMTRL {

UTBL01 = Null;
UTBL02 = Null;
UTBL03 = Null;
UTBL04 = Null;
UTBL05 = Null;
VARCHAR01 = Null;
VARCHAR02 = Null;
VARCHAR03 = Null;
VARCHAR04 = Null;
VARCHAR05 = Null;
NUM01 = Null;
NUM02 = Null;
NUM03 = Null;
NUM04 = Null;
NUM05 = Null;

DATE01 = Null;
DATE02 = Null;
DATE03 = Null;
DATE04 = Null;
DATE05 = Null;
BOOL01 = 0;
BOOL02 = 0;
BOOL03 = 0;
BOOL04 = 0;
}
} //ΕΙΔΗ

Import ImpService(CSERVICE) into 'SERVICE,1' {

SERVICE CSERVICE {

WEBPAGE = CSERVICE.OikEidosID;
//CODE = CMTRL.OikEidosShort;
CODE = CSERVICE.OikEidosShort + '-' +
Trim(CSERVICE.OikEidosID);
NAME = CSERVICE.OikEidosDescr;
//MTRACN = S.SRTID;
MTRTYPE = 1;
MTRUNIT1= 100;
//VAT = ConvVat(S.PERCENTAGE);
vVat = Trim(CSERVICE.OikEidosFPAPerc);
if (vVat='') {vVat=0;}
if (vVat='18') {vVat=19;}
VAT = ConvVAT(vVat);
//ACNMSK = S.ACCMASK;
CODE1 = CSERVICE.OikEidosID;
//NAME1 = S.LONGDESCR;
ISACTIVE= 1;
MTRUNIT2= 100;
MTRUNIT3= 100;
MTRUNIT4= 100;
}
}


Import ImpYpiresia(cYpiresia) into '$CCCYPIRESIA'
{
CCCYPIRESIA cYpiresia
{
CCCYPIRESIA = cYpiresia.OikYpirID;
NAME = cYpiresia.OikYpirDescr;
}
}

Import ImpTmima(cTmima) into '$CCCTMIMA'
{
CCCTMIMA cTmima
{
CCCTMIMA = cTmima.OikTmimaID;
NAME = cTmima.OikTmimaDescr;
CCCYPIRESIA= cTmima.OikYpirID;
}
}



var vname;
//==================ΠΕΛΑΤΕΣ ==============
Import ImpCustomer(cust) into 'CUSTOMER' {
CUSTOMER cust {
vErrors = 'Πελάτης : ' + Trim(cust.OikOfeilID) + ' ,Ονομα : ' +
Trim(cust.OikOfeilEponymia);
CODE=cust.OikOfeilID;
CODE1=cust.ParEpixKartella;
vname=Trim(cust.OikOfeilEponymia);
if (vname<>'') {NAME=cust.OikOfeilEponymia;}
else {NAME=cust.OikOfeilEponymo + ' - ' +
cust.OikOfeilOnoma ; }
AFM=cust.OikOfeilAFM;
ISACTIVE = 1;
IRSDATA = Trim(cust.DOY);
JOBTYPETRD=cust.JOB;
//BRANCH=cust.1;
//AREAS=cust.GEOID;
ADDRESS =Trim(cust.OikOfeilAddress + ' ' +
cust.OikOfeilStreetNumber);
DISTRICT=cust.CITY;
CITY=cust.CITY;
ZIP=cust.OikOfeilZip;
FAX=cust.OikOfeilFAX;
PHONE01 =cust.OikOfeilTelephon;
//PHONE02 =cust.PHONE2;
//PAYMENT = cust.PAYMENT;
//SALESMAN = ConvSalesman(cust.SALESMAN);
//COLLECTOR= ConvSalesman(cust.COLLECTOR);
//PRCCATEGORY = cust.TIMKATIG;
//PRCPOLICY = cust.SENARIO;
//ACNMSK = cust.ACCMASK;
}
} //==================ΠΕΛΑΤΕΣ


//==================KATAUETES ==============
Import ImpCustomer1(cust1) into 'CUSTOMER' {
CUSTOMER cust1 {
vErrors = 'Πελάτης : ' + Trim(cust1.OikKatathOfilID) + ' ,Ονομα :
' + Trim(cust1.OikKatathOfilDescr);
CODE='1-' + Trim(cust1.OikKatathOfilID);
CODE1=cust1.OikKatathOfilID;
NAME=Trim(cust1.OikKatathOfilDescr);

AFM=cust1.OikKatathOfilAFM;
ISACTIVE = 1;
IRSDATA = Trim(cust1.DOY);
//JOBTYPETRD=cust.JOB;
//BRANCH=cust.1;
//AREAS=cust.GEOID;
ADDRESS =Trim(cust1.OikKatathOfilAddress);
DISTRICT=cust1.CITY;
CITY=cust1.CITY;
ZIP=cust1.OikKatathOfilZip;
//FAX=cust.OikOfeilFAX;
//PHONE01 =cust.OikOfeilTelephon;
WEBPAGE='Καταθέτης';

}
} //================= KATAUETES


//============ΚΡΑΤΗΣΕΙΣ - ΠΙΣΤΩΤΙΚΕΣ ΚΑΡΤΕΣ =====

Import ImpKratiseis(krat) into 'CREDITCARDS'
{
CREDITCARDS krat{
CREDITCARDS = krat.OikKratisID;
CODE = krat.OikKratisID;
NAME = krat.OikKratisDescr;
BANKCOMMITION = krat.OikKratislPerc;
}
}

Import ImpcBank(cBank, cBankYpo) into 'BANK' {
BANK cBank {
CODE = cBank.OikBankID;
NAME = Trim(cBank.OikBankDescr);
ISACTIVE = 1;
COUNTRY = :x.sys.COUNTRY;
// ACNMSK = Trim(cBank.ACCMASK);
// ACNMSK1 = Null;
WEBPAGE = cBank.OikBankID;
// CODE1 = cBank.OikBankCode;
EMAIL = cBank.OikBankCode;
EMAIL1 = Null;
REMARKS = Null;
}

BANKBRANCH cBankYpo {
CODE = cBankYpo.OikBankYpoID;
NAME = 'Υποκ/μα ' + cBankYpo.OikBankYpoDescr;
ISACTIVE = 1;
COUNTRY = :x.sys.COUNTRY;
// ACNMSK = Trim(cBank.ACCMASK);
}
}


Import ImpBankacc (abankaccount) into 'BANKACC' {
BANKACC abankaccount {
CODE = abankaccount.OikBankLogsID;
NAME = abankaccount.OikBankLogsNo;
BANCTYPE = 3;
BANKACCNUMBER = abankaccount.OikBankLogsNo;

BANK= ConvBank(abankaccount.OikBankYpoID);
BANKBRANCH = ConvBankBRANCH(abankaccount.OikBankYpoID);
BRANCH = :X.SYS.BRANCH;
SOCURRENCY = :X.SYS.SOCURRENCY;
//ACNMSK = abankaccount.ACCMASK;
//ACNMSK1 = abankaccount.ACCMASKBILL;
COUNTRY = :X.SYS.COUNTRY;
CODE1= abankaccount.OikBankLogsID;

}


} //import


Import ImpLineItem(alineitem) into 'LINEITEM,1' {
LINEITEM alineitem {
CODE=alineitem.OikEsoCode;
NAME=alineitem.OikesoAnal;
CODE1=alineitem.OikEsodaID;
MTRTYPE=0;
MTRTYPE1=2;
VAT=1000;
//ACNMSK=alineitem.ACCMASK;
//TURNOVR=alineitem.TURNOVERUPD;
//KEPYO=alineitem.KEPYOUPD;
LISOURCETYPE='13,15';
MTRUNIT1=100;
MTRUNIT2=100;
MTRUNIT3=100;
MTRUNIT4=100;

vErrors = 'id: ' + VarToStr(alineitem.OikEsoCode) +' ,name:' +
Trim(alineitem.OikesoAnal);
}
}

Import ImpLineItemEjoda(ajlineitem) into 'LINEITEM,1' {
LINEITEM ajlineitem {
CODE=ajlineitem.OikExoCode;
NAME=ajlineitem.OikExoAnal;
CODE1=ajlineitem.OikExodaID;
MTRTYPE=0;
MTRTYPE1=1;
VAT=1000;
//ACNMSK=ajlineitem.ACCMASK;
//TURNOVR=ajlineitem.TURNOVERUPD;
//KEPYO=ajlineitem.KEPYOUPD;
LISOURCETYPE='12,16';
MTRUNIT1=100;
MTRUNIT2=100;
MTRUNIT3=100;
MTRUNIT4=100;

vErrors = 'id: ' + VarToStr(ajlineitem.OikExoCode) +' ,name:' +
Trim(ajlineitem.OikExoAnal);
}
}


Import ImpLineItemKratiseis(aklineitem) into 'LINEITEM,1' {
LINEITEM aklineitem {
CODE='1-' + Trim(aklineitem.OikKratisID);
NAME=aklineitem.OikKratisDescr;
CODE1='1-' + Trim(aklineitem.OikKratisID);
CODE2='Κρατήσεις';
MTRTYPE=1;
MTRTYPE1=1;
VAT=1000;
//ACNMSK=ajlineitem.ACCMASK;
//TURNOVR=ajlineitem.TURNOVERUPD;
//KEPYO=ajlineitem.KEPYOUPD;
LISOURCETYPE='12,16';
MTRUNIT1=100;
MTRUNIT2=100;
MTRUNIT3=100;
MTRUNIT4=100;

vErrors = 'id: ' + VarToStr(aklineitem.OikKratisID) +' ,name:' +
Trim(aklineitem.OikKratisDescr);
}
}


Connect Xplorer ServerData {
connect();
tipota=select 1;
} //Connect

Connect DBDriver OtherData {

connect( 'XADODrv.bpl', 'CUSTOM', 'Driver={Microsoft Access Driver
(*.mdb)};Dbq=\\pcnick\alfaware\alfaoik.mdb;Uid=Admin;Pwd=;' );

awhouse = SELECT * FROM OikApoth;

CMTRUNIT = SELECT * FROM OikMonMetr;

CMTRGROUP = SELECT * FROM OikKatEidos;

cmtrmodel = SELECT * FROM OikYpokatEidos;

CMTRL = SELECT OikEidos.*, OikEidosKategory.katigoria
FROM OikEidosKategory RIGHT JOIN OikEidos ON
OikEidosKategory.OikEidosID = OikEidos.OikEidosID
;
// WHERE katigoria=2;

CSERVICE = SELECT OikEidos.*, OikEidosKategory.katigoria
FROM OikEidosKategory RIGHT JOIN OikEidos ON
OikEidosKategory.OikEidosID = OikEidos.OikEidosID
WHERE katigoria=2;

CPAGIA = SELECT OikEidos.*, OikEidosKategory.katigoria
FROM OikEidosKategory RIGHT JOIN OikEidos ON
OikEidosKategory.OikEidosID = OikEidos.OikEidosID
WHERE katigoria=2;

cYpiresia = SELECT * FROM OikYpir;

cTmima = SELECT * FROM OikTmima;


cust= SELECT *
,(SELECT OikDoyDescr FROM OikDoy WHERE OikDoyID =
OikOfeil.OikOfeilDoyID) as DOY
,(SELECT OikJobDescr FROM OikJob WHERE OikJobID =
OikOfeil.OikOfeilJobID) as JOB
,(SELECT OikPoliDescr FROM OikPoli WHERE OikPoliID =
OikOfeil.OikKatathOfilPoliID) as CITY
from OikOfeil;

cust1= SELECT *
,(SELECT OikDoyDescr FROM OikDoy WHERE OikDoyID =
OikKatathOfil.OikKatathOfilDoyID) as DOY
,(SELECT OikPoliDescr FROM OikPoli WHERE OikPoliID =
OikKatathOfil.OikKatathOfilPoliID) as CITY
from OikKatathOfil;

krat= SELECT * FROM OikKratis;


cBank = SELECT * FROM OikBank;

cBankYpo = SELECT top 1 * FROM OikBankYpo where OikBankID=:
$cBank.OikBankID union all SELECT * FROM OikBankYpo where OikBankID=:
$cBank.OikBankID;


abankaccount = SELECT * FROM OikBankLogs;

alineitem = SELECT * FROM OikEsoda where Xrisi=2007;

ajlineitem = SELECT * FROM OikExoda where Xrisi=2007;

aklineitem = SELECT * FROM OikKratis;

Misthodotoumenoi=SELECT DISTINCT OikProm.OikPromID
FROM OikMist INNER JOIN OikProm ON
OikMist.OikPromithID = OikProm.OikPromID;

} //connect other data source;


var
x, vRow, vRowCancel, UserResp, vRowTot, vExistsFindoc, vCnt,
vmovefile, vvShopId, vvDate,
vrecs, vrecs1, vid, viscan, vftrcan, pvid, pviscan, pvftrcan, vDot,
vMonth, vvDay, vkatathetis;


//----------------------- ΕΙΣΑΓΩΓΗ -----------
{

if (:ImpTable.vImpWhouse=1) {
fetch awhouse
{
ImpWhouse(awhouse);
} //fetch

} //if vImpWhouse


if (:ImpTable.vImpTmima=1) {
fetch cTmima {
ImpTmima(cTmima);
if (ImportError=0) vRow=vRow+1; else vRowCancel=vRowCancel+1;
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}

}


if (:ImpTable.vImpYpiresia=1) {
fetch cYpiresia {
ImpYpiresia(cYpiresia);
if (ImportError=0) vRow=vRow+1; else vRowCancel=vRowCancel+1;
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}

}


// ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ ----------------------------------------

if (:ImpTable.vImpMTRUNIT=1 ) {
vRow=GetQueryResults('OtherData', 'select count(*) from
OikMonMetr', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
fetch CMTRUNIT { ImpMTRUNIT(CMTRUNIT);
if (ImportError=0) vRow=vRow+1; else
vRowCancel=vRowCancel+1;
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}

} //ΜΟΝΑΔΕΣ ΜΕΤΡΗΣΗΣ

// ΟΜΑΔΕΣ ----------------------------------------

if (:ImpTable.vImpMTRGROUP=1 ) {
vRow=GetQueryResults('OtherData', 'select count(*) from
OikKatEidos', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά ΟΜΑΔΩΝ',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
fetch CMTRGROUP { ImpMTRGROUP(CMTRGROUP);
if (ImportError=0) vRow=vRow+1; else
vRowCancel=vRowCancel+1;
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC'); }

} //ΟΜΑΔΕΣ


// model -------------
if (:ImpTable.vImpMtrMODEL=1) {
fetch cmtrmodel {ImpMtrModel (cmtrmodel);
if (ImportError=0) vRow=vRow+1; else
vRowCancel=vRowCancel+1;
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');

}

}

// ΕΙΔΗ ----------------------------------------

if (:ImpTable.vImpMTRL=1 ) {
vRow=GetQueryResults('OtherData', 'select count(*) from
OikEidos', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά ΕΙΔΩΝ',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
x=ExecSQL('ServerData', 'delete from imperrors where company = :
1 and somodule = '+#39+'ITEM'+#39, VarArray(:x.sys.company,1) );

fetch CMTRL {
vinserted=GetQueryResults('ServerData','select
count(*) from mtrl where sodtype=51 and webpage=' +
VarToStr(CMTRL.OikEidosID), Null);
if (vinserted=0) {
ImpItem(CMTRL);
if (ImportError=0) vRow=vRow+1;
else
{ vRowCancel=vRowCancel+1;
verrors=verrors+ErrorMessage;
x=ExecSQL('ServerData', 'insert into
imperrors (imperrors,company,somodule,soerrors) values ( :1, :2, :3, :
4 )', VarArray(vRowCancel,:x.sys.company,'ITEM',vErrors,4) );
verrors='';
}
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}
} //fetch

} //ΕΙΔΗ

// υπηρεσιες
if (:ImpTable.vImpService=1)
{
vRow=GetQueryResults('OtherData', 'select count(*) from
OikEidos', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά Υπηρεσιών',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
x=ExecSQL('ServerData', 'delete from imperrors where company = :
1 and somodule = '+#39+'SERVICE'+#39, VarArray(:x.sys.company,1) );

fetch CSERVICE { ImpService(CSERVICE);
if (ImportError=0) vRow=vRow+1;
else
{ vRowCancel=vRowCancel+1;
verrors=verrors+ErrorMessage;
x=ExecSQL('ServerData', 'insert into
imperrors (imperrors,company,somodule,soerrors) values ( :1, :2, :3, :
4 )', VarArray(vRowCancel,:x.sys.company,'SERVICE',vErrors,4) );
verrors='';
}
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
} //fetch
} // if (:ImpTable.vImpOk


//-----------------------------------------------------
ΠΕΛΑΤΕΣ--------------------------------------------------------
if (:ImpTable.vImpCUST=1) {
vRow=GetQueryResults('OtherData', 'select count(*) from
OikOfeil', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά πελατών',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
x=ExecSQL('ServerData', 'delete from imperrors where company = :
1 and somodule = '+#39+'CUSTOMER'+#39, VarArray(:x.sys.company,1) );
fetch cust { x=ExistsCustomer(cust.OikOfeilID);
if (not x=Null) {
ImpCustomer(cust);
if (ImportError=0) vRow=vRow+1;
else { vRowCancel=vRowCancel+1;
x=ExecSQL('ServerData', 'insert into
imperrors (imperrors,company,somodule,soerrors) values ( :1, :2, :3, :
4 )', VarArray(vRowCancel,:x.sys.company,'CUSTOMER',vErrors,4) );
}
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}
}


}


//-----------------------------------------------------
katauetes--------------------------------------------------------
if (:ImpTable.vImpCUST1=1) {
vRow=GetQueryResults('OtherData', 'select count(*) from
OikKatathOfil', Null);
UserResp=SendResponse( vRow, 0, 0, 'Μεταφορά πελατών -
Καταθετών',
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT');
vRow = 0;
vRowCancel = 0;
x=ExecSQL('ServerData', 'delete from imperrors where company = :
1 and somodule = '+#39+'CUSTOMER'+#39, VarArray(:x.sys.company,1) );

vkatathetis='Καταθέτης';
fetch cust1 { x=Existsk(cust1.OikKatathOfilID, vkatathetis );
if (not x=Null) {
ImpCustomer1 (cust1);
if (ImportError=0) vRow=vRow+1;
else { vRowCancel=vRowCancel+1;
x=ExecSQL('ServerData', 'insert into
imperrors (imperrors,company,somodule,soerrors) values ( :1, :2, :3, :
4 )', VarArray(vRowCancel,:x.sys.company,'CUSTOMER',vErrors,4) );
}
UserResp=SendResponse(vRow, vRowCancel,
'RESULTS.CURREC;RESULTS.CANREC');
}
}


}


//=====KRATISEIS - PISTOTIKES KARTES
if (:ImpTable.vImpKrat=1) {
vRow=0;
fetch krat { ImpKratiseis(krat); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }

} // =====KRATISEIS - PISTOTIKES KARTES


//====Bank
if (:ImpTable.vImpBank=1){
vRow=0;
fetch cBank { ImpcBank(cBank, cBankYpo); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }
} //====Bank

//BANKACC
if (:ImpTable.vImpBankAcc=1) {
vRow=0;
fetch abankaccount { ImpBankacc (abankaccount); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }

} //BANKACC


if (:ImpTable.vImpEsoda=1)
{
vRow=0;
fetch alineitem { ImpLineItem(alineitem); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }
UserResp=SendResponse('οκ esoda', 'RESULTS.LABELTEXT');
} // if (:ImpTable.vImpOk


if (:ImpTable.vImpEjoda=1)
{
vRow=0;
fetch ajlineitem { ImpLineItemEjoda(ajlineitem); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }
UserResp=SendResponse('οκ exoda', 'RESULTS.LABELTEXT');
} // if (:ImpTable.vImpOk

if (:ImpTable.vImpKratiseis=1)
{
vRow=0;
fetch aklineitem { ImpLineItemKratiseis(aklineitem); vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC'); }
UserResp=SendResponse('οκ kratiseis', 'RESULTS.LABELTEXT');
} // if (ImpTable.vImpKratiseis


if (:ImpTable.vImpDiorth=1)
{
vRow=0;
//x=ExecSQL('ServerData', 'DELETE FROM TRDBUSINESS WHERE SODTYPE=12
AND COMPANY=:1', VarArray(:x.sys.company,1) );
//vRow=vRow+x;
//UserResp=SendResponse(vRow, 'RESULTS.CURREC');
//x=ExecSQL('ServerData', 'INSERT INTO TRDBUSINESS (COMPANY,
SODTYPE, TRDBUSINESS, CODE, NAME, ISACTIVE)
// SELECT COMPANY, SODTYPE,
TRDCATEGORY, CODE, NAME, ISACTIVE
// FROM TRDCATEGORY
// WHERE SODTYPE=12 AND COMPANY=:1',
VarArray(:x.sys.company,1));
//vRow=vRow+x;
//UserResp=SendResponse(vRow, 'RESULTS.CURREC');
//x=ExecSQL('ServerData', 'DELETE FROM TRDCATEGORY WHERE COMPANY=:1
AND SODTYPE=12', VarArray(:x.sys.company,1));
//vRow=vRow+x;
//UserResp=SendResponse(vRow, 'RESULTS.CURREC');

fetch Misthodotoumenoi { x=ExecSQL('ServerData', 'UPDATE TRDR SET
TRDCATEGORY=60 WHERE SODTYPE=12 AND CODE=:1' ,
VarArray(Misthodotoumenoi.OikPromID,1));
vRow=vRow+1;
UserResp=SendResponse(vRow, 'RESULTS.CURREC');
}



} //διορωσεις
} //ΕΙΣΑΓΩΓΗ
> > }- Απόκρυψη κειμένου σε παράθεση -
>
> - Εμφάνιση κειμένου σε παράθεση -

JacarandaBill

unread,
Sep 26, 2008, 5:03:54 AM9/26/08
to Softone Developers Network
Νίκο, σε ευχαριστώ για το παράδειγμα. Είναι πολύ καλό αλλά δεν έχει να
κάνει με αυτό που ρώτησα. Όλες οι import συναρτήσεις του π.χ.Import
ImpMTRUNIT(CMTRUNIT) into 'MTRUNIT' { ... } χρησιμοποιούν μόνο ένα
βασικό αντικείμενο. Αυτό που θέλω να κάνω με απλά λόγια είναι από μια
Import συνάρτηση που χρησιμοποιεί το αντικείμενο των αγορών PURDOC να
χρησιμοποιήσω το αντικείμενο της αποθήκης ITEM.

Τελικά αυτό που έκανα ήταν όρισα στο MTRL είναι custom πεδίο στο οποίο
βάζω ένα προσωρινό δικό μου ID και στην συνέχεια ακολούθησα την
πεπατημένη δηλαδή όρισα δυο διακριτά περάσματα το κάθενα με τα fetch
του και τα δικά του αντικείμενα: στο ένα περνάω τα είδη μου και τους
ορίζω το δικό μου ID και στο δεύτερο πέρασμα περνάω τις αγορές και με
έναν converter φέρνω το σωστό είδος.

JacarandaBill

unread,
Sep 30, 2008, 10:06:06 AM9/30/08
to Softone Developers Network
Για σύνδεση με xls αρχείο χρησιμοποιώ το παρακάτω (όπου XLSPURDOC
είναι το όνομα του ODBC connection που κοιτάει στο .xls αρχείο).
Ξέρεις κανείς αν υπάρχει άλλος τρόπος για σύνδεση με xls αρχείο χωρίς
να απαιτείται δημιουργία ODBC DSN;

connect DBDriver ExportData
{
connect( 'XADODrv.bpl', 'CUSTOM', 'Provider=MSDASQL.1;Persist
Security Info=False;Data Source=XLSPURDOC');

dsIteLines = SELECT * FROM [Data$] WHERE Descr <> NULL;

Κώστας Βάππας

unread,
Sep 30, 2008, 11:38:56 AM9/30/08
to Softone Developers Network
Έχω ανεβάσει ένα import script με όνομα antistix.imp

Δεν χρησιμοποιεί odbc αλλά με χρήση της CallPublished φορτώνει το
excel στον προσωρινό πίνακα που δίνεται στη συνάρτηση.

Η χρήση του object SALDOC είναι εικονική. (Το απαιτεί η CallPubllished
να υπάρχει ένα object).

Παραθέτω επίσης και ένα import script με όνομα sysco.imp το οποίο
εισάγει πελάτες, είδη, παραστατικά πωλήσεων και παραστατικά
εισπράξεων.
> > > κάνεις μόνο update...- Απόκρυψη κειμένου σε παράθεση -
Reply all
Reply to author
Forward
0 new messages