Σας ευχαριστώ πάρα πολύ.Πέρασε με χρώμα.
Παραθέτω τον κώδικα σαν παράδειγμα σε περίπτωση που το χρειαστεί και κάποιος άλλος:
Form {
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vExcel = 1;4000;1;1;0;Orders(Excel);$Filename;;;
vDBTable = 1;64;1;0;0;TableName;;;;CCCEXCELORDER
[PANELS]
PANEL10=0;;0;50
[PANEL10]
ImpTable.vExcel
ImpTable.vDBTable
}
//--Converters
Converter ConvCustomer(TRDR,'COMPANY;SODTYPE=13;CODE',TRDR);
Import ImpOrder(sHead,sLine) into 'SALDOC,T,WARNINGS:ON'{
FINDOC sHead {
TRNDATE = sHead.TRNDATE;
COMPANY = sHead.COMPANY;
BRANCH = sHead.BRANCH;
SERIES = sHead.SERIES;
TRDR = ConvCustomer(:X.SYS.COMPANY,sHead.TRDRCODE);
}
MTRDOC sHead {
WHOUSE = sHead.WHOUSE;
}
ITELINES sLine {
MTRLINES = sLine.AA;
MTRL = sLine.MTRL;
CDIMNO1 = sLine.CDL;
QTY1 = sLine.QTY1;
PRICE = sLine.PRICE;
NUM01 = sLine.NUM01;
DISC1PRC = sLine.DISC1PRC;
DISC2PRC = sLine.DISC2PRC;
}
}
Connect Xplorer SoftOne {
Connect();
sHead =
SELECT DISTINCT
TRDRCODE,
TRNDATE,
COMPANY,
BRANCH,
SERIES,
WHOUSE
FROM dbo.$REMOVEQUOTES(:$ImpTable.vDBTable);
sLine =
SELECT
CAST(NULLIF(LTRIM(RTRIM(d.AA)),'') AS INT) AS AA,
LTRIM(RTRIM(d.TRDRCODE)) AS TRDRCODE,
TRNDATE,
LTRIM(RTRIM(d.SERIES)) AS SERIES,
LTRIM(RTRIM(d.ITEMCODE)) AS ITEMCODE,
(SELECT TOP 1
m.MTRL
FROM MTRL m
WHERE m.COMPANY = :X.SYS.COMPANY
AND m.SODTYPE = 51
AND (m.CODE = LTRIM(RTRIM(d.ITEMCODE))) OR m.CODE1 = LTRIM(RTRIM(d.ITEMCODE))) AS MTRL,
(SELECT TOP 1m.cdim1FROM MTRL mWHERE m.COMPANY = :X.SYS.COMPANYAND m.SODTYPE = 51AND (m.CODE = LTRIM(RTRIM(d.ITEMCODE))) OR m.CODE1 = LTRIM(RTRIM(d.ITEMCODE))) AS cdim,(SELECT TOP 1 CDIMLINES FROM MTRL MJOIN CDIMLINES C ON C.CDIM=M.CDIM1WHERE M.COMPANY=:X.SYS.COMPANYAND (m.CODE = LTRIM(RTRIM(d.ITEMCODE))) OR m.CODE1 = LTRIM(RTRIM(d.ITEMCODE))AND (C.CODE = LTRIM(RTRIM(d.COLOR))) OR C.NAME = LTRIM(RTRIM(d.COLOR))) AS CDL,COLOR, COALESCE(CAST(NULLIF(LTRIM(RTRIM(d.QTY1)),'') AS NUMERIC(18,5)),0) AS QTY1,
COALESCE(CAST(NULLIF(LTRIM(RTRIM(d. PRICE )),'') AS NUMERIC(18,5)),0) AS PRICE,
COALESCE(CAST(NULLIF(LTRIM(RTRIM(d. NUM01 )),'') AS NUMERIC(18,5)),0) AS NUM01 ,
COALESCE(CAST(NULLIF(LTRIM(RTRIM(d. DISC1PRC )),'') AS NUMERIC(18,5)),0) AS DISC1PRC ,
COALESCE(CAST(NULLIF(LTRIM(RTRIM(d. DISC2PRC )),'') AS NUMERIC(18,5)),0) AS DISC2PRC ,
FROM dbo.$REMOVEQUOTES(:$ImpTable.vDBTable) d
WHERE
LTRIM(RTRIM(d.TRDRCODE)) = :$sHead.TRDRCODE
AND d.TRNDATE = :$sHead.TRNDATE
AND CAST(d.SERIES AS INT) = :$sHead.SERIES
ORDER BY CAST(NULLIF(LTRIM(RTRIM(d.AA)),'') AS INT);
}
include 'PiLib';
include 'ModuleIntf';
include 'SysRequest';
var a,x,vRow,vRowCancel;
{
vRow = 0;
vRowCancel = 0;
a= ExecSQL('SoftOne','DROP TABLE dbo.CCCEXCELORDER',null);
a = CallPublished('SysRequest.Evaluate',
VarArray(
ImportModule('ImpOrder'),
'ExcelImport(' + QuotedStr(VarToStr(:ImpTable.vExcel)) + ',' + QuotedStr('CCCEXCELORDER') + ',1,1)',
2
)
);
x = ShowWarning('Import Begins');
fetch sHead{
ImpOrder(sHead,sLine);
if (ImportError = 0){
vRow = vRow + 1;
x = ShowWarning('Success import order '+VarToStr(vRow));
}else{
x = ShowWarning('Import error for '+ ErrorMessage);
}
}
x = ShowWarning('Import Ended');
}