Добрый день, столкнулся с такой вещью: при продае товара все норм, если кол-во целое число, но если передаю не целое число : Float то касса не печатает чек и уходит в ошибку, если печатать в "тест драйвер" - то там дробное кол-во проходит, например 1.3 или 66.6
Код:
Form2.ADOQuery2.SQL.Clear;
Form2.ADOQuery2.SQL.Text:='SELECT nomen, kol, suma FROM kassa ';
Form2.ADOQuery2.Open;
Form2.Memo1.Lines.Add('Печать чека ');
//Открываем чек и указываем, что это чек ПРИХОДА
Driver.CheckType := 0;
Driver.OpenCheck;
Driver.RegisterNumber :=148;
Driver.GetOperationReg;
cheq_kkm:= Driver.OpenDocumentNumber;
//Передаем тег ИНН Кассира
Driver.TagNumber := 1203;
Driver.TagType := 7;
Driver.TagValueStr := Form2.Label11.Caption;
Driver.FNSendTag;
Driver.TagNumber := 1084;
Driver.FNBeginSTLVTag;
my_TagID := Driver.TagID;
Driver.TagID := my_TagID;
Driver.TagNumber := 1085;
Driver.TagType := 7;
Driver.TagValueStr := '';
Driver.FNAddTag;
Driver.TagID := my_TagID;
Driver.TagNumber := 1086;
Driver.TagType := 7;
Driver.TagValueStr := '';
Driver.FNAddTag;
Driver.FNSendSTLVTag;
while not Form2.ADOQuery2.Eof do
begin
Driver.QuantityFormat:=1;
q1 := Form2.ADOQuery2.FieldByName('kol').AsFloat;
q1 := RoundTO(q1, -1);
//Стоимость товара с учетом скидок и наценок
pq1:= Form2.ADOQuery2.FieldByName('suma').AsFloat;
Form2.Memo1.Lines.Add(FLoatToStr(q1)+' '+FLoatToStr(pq1)+' '+nal );
Driver.Quantity := q1;
Driver.Price:=pq1;
Driver.Summ1Enabled := false;
Driver.Tax1 := 1;
Driver.Department := 1;
Driver.PaymentTypeSign := 1; //Признак способа расчета для ФФД 1.05
Driver.PaymentItemSign := 2; //Признак предмета расчета
Driver.StringForPrinting := Form2.ADOQuery2.FieldByName('nomen').Asstring;
Driver.FNOperation;
Form2.ADOQuery2.Next;
end;
//Передаем данные поставщика
Driver.TagNumber := 1224;
Driver.FNBeginSTLVTag;
my_TagID := Driver.TagID;
Driver.TagID := my_TagID;
Driver.TagNumber := 1225;
Driver.TagType := 7;
Driver.TagValueStr := '';
Driver.FNAddTag;
Driver.TagID := my_TagID;
Driver.TagNumber := 1171;
Driver.TagType := 7;
Driver.TagValueStr := '';
Driver.FNAddTag;
Driver.FNSendSTLVTagOperation;
Driver.CheckSubtotal;
if (ibeznal=1) AND (inal=0) then
begin
Driver.Summ1 := 0;
Driver.Summ2 := StrToFloat(beznal);
end;
if (ibeznal=0) AND (inal=1)then
begin
Driver.Summ1 :=StrToFloat(nal);
Driver.Summ2 := 0 ;
end;
if (ibeznal=1) AND (inal=1) then
begin
Driver.Summ1 :=StrToFloat(nal);
Driver.Summ2 :=StrToFloat(beznal) ;
end;
if kc=1 then Driver.Summ3 := bonuscard;
Driver.Summ3 := 0;
Driver.Summ4 := 0;
Driver.Summ5 := 0;
Driver.Summ6 := 0;
Driver.Summ7 := 0;
Driver.Summ8 := 0;
Driver.Summ9 := 0;
Driver.Summ10 := 0;
Driver.Summ11 := 0;
Driver.Summ12 := 0;
Driver.Summ13 := 0;
Driver.Summ14 := 0;
Driver.Summ15 := 0;
Driver.Summ16 := 0;
Driver.RoundingSumm := 0;
Driver.TaxType := 1;
//Driver.StringForPrinting := 'ИД ЧЕКА : '+IntToStr(chek);
//if car_number<>0 then Driver.StringForPrinting := 'ГОС НОМЕР АВТОМОБИЛЯ : '+IntToStr(car_number);
if kc=1 then
begin
if nach_bal<=0 then
begin
Driver.StringForPrinting := '========Бонусная программа========';
Driver.StringForPrinting := 'Списано баллов : '+IntToStr(spis_bal);
end
else
begin
if spis_bal<=0 then
Driver.StringForPrinting := 'Начислено баллов : '+IntToStr(nach_bal);
end;
end;
Driver.FNCloseCheckEx;
Подскажите пожалуста, что яделаю не так?