DLL και χρώμα-μέγεθος

484 views
Skip to first unread message

vagelis

unread,
Jun 14, 2010, 11:20:12 AM6/14/10
to Softone Developers Network
Γεια σας.
Προσπαθώ να καταχωρήσω ένα παραστατικό με είδος που έχει χρώμα-μέγεθος
αλλά μου πετάει ένα μυνημα "operation aborted".
Το μυνημα έρχεται όταν περνάω τιμη στο qty & qty1.
mtrlines.QTY := 1;
mtrlines.QTY1 := 1;
Τι μπορώ να κάνω;
Ευχαριστώ.

function execProc(UserPointer:Pointer; const ACommandID:
OleVariant):OleVariant; stdcall;
var
saldoc, mtrlines, qtyanal, X: OleVariant;
series: integer;
objintf: variant;
amtrl, amtrlines, atrdr, aFindoc: integer;
qry, qry2, header: OleVariant;
sql: string;
id: integer;
trndate: TDatetime;
begin
objintf := tsalobj(UserPointer).obj;
if (Integer(ACommandID)) <> 100001 then
Exit;
saldoc := objintf.FINDTABLE('SALDOC');
id := saldoc.FINDOC;
header := objintf.GETSQLDATASET('select * from findoc where findoc='
+ inttostr(saldoc.FINDOC), '');
mtrlines := objintf.GETSQLDATASET('select * from mtrlines where
findoc=' + inttostr(saldoc.FINDOC), '');
X := objintf.CREATEOBJ('SALDOC');
saldoc := x.FINDTABLE('SALDOC');
mtrlines := x.FINDTABLE('ITELINES');
qtyanal := x.FINDTABLE('VQTYANAL');
x.DBINSERT();
saldoc.SERIES := 7066;
saldoc.TRNDATE := header.TRNDATE;
saldoc.TRDR := header.TRDR;
mtrlines.INSERT;
mtrlines.MTRL := 17684;
mtrlines.PRICE := 1;
mtrlines.FINDOCS := id;
mtrlines.QTY := 1;
mtrlines.QTY1 := 1;

qtyanal.INSERT;
qtyanal.MTRLINES := mtrlines.MTRLINES;
qtyanal.CDIMLINES1 := 24;
qtyanal.CDIMLINES2 := 2;
qtyanal.QTY := 1;
qtyanal.QTY1 := 1;
qtyanal.PRICE := 1;
qtyanal.POST;
mtrlines.POST;
x.DBPOST();
objintf.DBLOCATE(x.NEWID);
end;

Χρήστος Τσερεντζούλιας

unread,
Jun 14, 2010, 12:03:28 PM6/14/10
to Softone Developers Network
Τα πεδία που πρέπει να ενημερώνεις για το χρώμα και μέγεθος είναι τα
ITELINES.CDIMNO1 & ITELINES.CDIMNO2 και όχι qty1 ή qty2 . Αυτά θα τα
ενημερώνει το softone καθώς εσύ περιγράφεις τα προηγούμενα . To
qtyanal επίσης δεν σου χρειάζεται.

vagelis dermos

unread,
Jun 14, 2010, 12:36:27 PM6/14/10
to so...@googlegroups.com
Δεν υπάρει δηλαδή VQTYANAL όπως υπάρχει στα import script;

--
Softone Developers Network group.
To post to this group, send email to so...@googlegroups.com

Mpogiatzis Kostas

unread,
Jun 15, 2010, 2:27:37 AM6/15/10
to Softone Developers Network
Επίσης πρόσεξε στον τύπο της σειράς που πας να καταχωρήσεις να έχεις
βάλει να έρχονται αναλυτικά τα χαρακτηριστικά σε ξεχωριστές στήλες.

Κωνσταντίνος Μουχελής

unread,
Jun 15, 2010, 5:23:36 AM6/15/10
to so...@googlegroups.com
Σου παραθέτω δύο functions.
Η πρώτη καταχωρεί παραστατικό με είδη χωρίς χρώμα - μέγεθος(function TForm1.PostSalDoc(series: integer; custCode, iteCode:string):integer;)
και η δεύτερη με χρώμα μέγεθος(function TForm1.PostSalDocWithColorSize(series: integer; custCode, iteCode:string):integer;).



function TForm1.PostSalDoc(series: integer; custCode, iteCode:string):integer;
var
  workObj, SALDOC, MtrDoc, IteLines : variant;
  LoginDate: TDateTime;
  theID: integer;
begin
  workObj   := FSoftOne.CreateObj('SALDOC');
  LoginDate := workObj.LOGINDATE;
  SALDOC  := workObj.FindTable('SALDOC');
  MtrDoc    := workObj.FindTable('MTRDOC');
  IteLines  := workObj.FindTable('ITELINES');

  workObj.DBInsert;

  SALDOC.SERIES := series;
  SALDOC.TRNDATE := LoginDate;
  SALDOC.TRDR := workObj.ID('CUSTOMER', custCode);
  MtrDoc.WHOUSE := 1;

  IteLines.Insert;
  IteLines.MTRL := workObj.ID('ITEM', iteCode);
  IteLines.QTY1 := 1;
  IteLines.Post;

result := workObj.DBPost;
end;


function TForm1.PostSalDocWithColorSize(series: integer; custCode, iteCode:string):integer;
var
  workObj, SALDOC, MtrDoc, IteLines, ColSize : variant;
  LoginDate: TDateTime;
  theID: integer;
begin
  workObj   := FSoftOne.CreateObj('SALDOC');
  LoginDate := workObj.LOGINDATE;

  SALDOC  := workObj.FindTable('SALDOC');
  MtrDoc    := workObj.FindTable('MTRDOC');
  IteLines  := workObj.FindTable('ITELINES');
  ColSize   := workObj.FindTable('VQTYANAL');


  workObj.DBInsert;

  SALDOC.SERIES := series;
  SALDOC.TRNDATE := LoginDate;
  SALDOC.TRDR := workObj.ID('CUSTOMER', custCode);
  MtrDoc.WHOUSE := 1;

  IteLines.Insert;
  IteLines.MTRL := workObj.ID('ITEM', iteCode);
  //IteLines.QTY1 := 1

  ColSize.APPEND;
  ColSize.MTRLINES    := ITELINES.MTRLINES;
  ColSize.CDIMLINES1  := 1;
  ColSize.CDIMLINES2  := 3;
  ColSize.QTY         := 1;
  ColSize.QTY1        := 1;
  ColSize.POST;

  workObj.EVAL('IteLineAnal.SumQAnal('+IntToStr(IteLines.MTRLINES)+',"QTY1")');
  IteLines.PRICE       := 100;
  IteLines.Post;
result := workObj.DBPost;
end;



procedure TForm1.Button6Click(Sender: TObject);
begin
  PostSalDoc(7001, '000-002', '000-004');
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  PostSalDocWithColorSize(7001, '000-002', 'CL000000000001');
end;


2010/6/14 vagelis dermos <vag...@gmail.com>
Reply all
Reply to author
Forward
0 new messages