1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// avant l'ouverture de l'état je récupère le nombre de ligne
procedure TFormReparer.RvUneReparationOpen(Connection: TRvCustomConnection);
begin
Connection.DataRows:=ZRQUneReparation.FieldByName('TOT').asInteger; // ok cela change bien selon le produit
end;
// initialisation de variables
procedure TFormReparer.RvUneReparationFirst(
Connection: TRvCustomConnection);
begin
reparationi:=1;
q:=0;
end;
// définition de champs
procedure TFormReparer.RvUneReparationGetCols(
Connection: TRvCustomConnection);
begin
Connection.WriteField('Lancement', dtString,16, '', '');
Connection.WriteField('Commande', dtString,16, '', '');
Connection.WriteField('Modele', dtString, 15, '', '');
Connection.WriteField('Assortiment', dtString, 40, '', '');
Connection.WriteField('Pointure', dtString, 3, '', '');
Connection.WriteField('Ordre',dtString,12,'','');
Connection.WriteField('Envoi',dtDate,0,'','');
end;
// envoi des données à Rave
procedure TFormReparer.RvUneReparationGetRow(
Connection: TRvCustomConnection);
var O : String;
i : Word;
begin
Connection.WriteStrData('',format('%s-%d-%dR',[ZRQUneReparation.FieldByName('SAISON').AsString,
ZRQUneReparation.FieldByName('NUMERO').AsInteger,
ZRQUneReparation.FieldByName('LIGNE').asInteger]));
Connection.WriteStrData('',format('%s-%d-%d',[ZRQUneReparation.FieldByName('CMDE_SAISON').AsString,
ZRQUneReparation.FieldByName('CMDE_NUMERO').AsInteger,
ZRQUneReparation.FieldByName('CMDE_LIGNE').asInteger]));
Connection.WriteStrData('',ZRQUneReparation.FieldByName('MODELE').asString);
Connection.WriteStrData('',format('%s %s',[ZRQUneReparation.FieldByName('ASSORTIMENT').AsString,
ZRQUneReparation.FieldByName('DESCRIPTION').AsString]));
// Partie qui me permet de naviguer dans le tableau
for i:=reparationi to 24 do
begin
if ZRQUneReparation.FieldByName('QT'+inttoStr(i)).asInteger>q then
begin
inc(q);
reparationi:=i;
Connection.WriteStrData('',ZRQUneReparation.FieldByName('PT_'+inttoStr(i)).asString);
if (q=ZRQUneReparation.FieldByName('QT'+inttoStr(i)).asInteger) AND (i<24)
then begin
inc(reparationi);
q:=0;
end;
break;
end;
end;
O:=FormatFloat('000000000000',((ZRQUneReparation.FieldByName('NUMEROORDRE').asInteger*100)+i));
Connection.WriteStrData('',O);
Connection.WriteDateTime(ZRQUneReparation.FieldByName('DATE_ENVOI').AsDateTime);
end; |
Partager