Boa tarde segue um trecho do programa onde eu clico em um botão e entra na tela para pesagem e emissão de etiqueta.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
varSopradoraId,varProdutoId,varProduto,varTurno,varTurnoAnterior,varTurnoPosterior: String;
begin
// conectar balança
// se houver conecção aberta, Fecha a conecção
if acbrBal1.Ativo then
ACBrBAL1.Desativar;
// configura porta de comunicação
ACBrBAL1.Modelo := TACBrBALModelo( 2 );
ACBrBAL1.Device.HandShake := TACBrHandShake( 0 );
ACBrBAL1.Device.Parity := TACBrSerialParity( 0 );
ACBrBAL1.Device.Stop := TACBrSerialStop( 0 );
ACBrBAL1.Device.Data := 8;
ACBrBAL1.Device.Baud := 9600;
ACBrBAL1.Device.Porta := 'COM1';
// Conecta com a balança =
ACBrBAL1.Ativar;
// monitora balança
ACBrBAL1.MonitorarBalanca := True ;
end;
procedure TForm1.ACBrBAL1LePeso(Peso: Double; Resposta: String);
var
varProdutoID,varDataAtual,varDataSequencia,varDataHora,varhora,varSequencia,
varCodProduto,varProduto,varCodBarras,varDataEtiqueta,varIdentificador,varPncliente,varCodigoInterno: String;
varPesoMin,varPesoMax,varPesoMinEng,varPesoMaxEng: Real;
begin
if Peso >= (qrProduto2.FieldValues['PESO_MINIMO'] - 2) then
begin
lblPeso.Caption := formatFloat('##0.000', Peso );
varCodProduto := qrProduto2.FieldValues['codigo_produto'];
varProduto := qrProduto2.FieldValues['nome_produto'];
varCodigoInterno := qrProduto2.fieldValues['codigo_produto'];
varPesoMin := qrProduto2.FieldValues['peso_minimo'];
varPesoMax := qrProduto2.FieldValues['peso_maximo'];
teste:= varIdentificador;
if (Peso >= varPesoMin) AND (Peso <= varPesoMax) then
begin
varStatus := '1'; // aprovado
varEngenharia := '0'; // aprovado
varReprovado := '0'; // não reprovado
lblStatus.Caption := ' APROVADO ';
end
else
begin
varStatus := '0'; // Reprovado
lblStatus.Caption := ' REPROVADO ';
end;
// verifica data sequencia
qrProduto2.Close;
qrProduto2.Open;
qrProduto2.Locate('codigo_produto',varCodigoInterno,[]);
varDataSequencia := FormatDateTime('yyyy-mm-dd',qrProduto2.FieldValues['data_sopro']);
//Verifica a Sequencia
if (varDataAtual <> varDataSequencia) then
begin
varSequencia := '1';
lblSequencia.Caption := varSequencia;
with qrSalvar do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE produto SET data = '''+varDataAtual+''',sequencia = '+varSequencia+'');
SQL.Add('WHERE codigo_produto ='+QuotedStr(DBEdit1.Text)+'');
ExecSQL;
end;
end
else
begin
varSequencia := IntToStr( QrProduto2.FieldValues['sequencia'] + 1 );
lblSequencia.Caption := varSequencia;
//Grava nova Sequencia em ParametroPeso
with qrSalvar do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE produto SET sequencia = '+varSequencia+'');
SQL.Add('WHERE codigo_produto ='+QuotedStr(DBEdit1.Text)+'');
ExecSQL;
end;
end;
with qrSalvar2 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO registros (cod_barras,data,aprovado,peso,produto)');
SQL.Add('VALUES ('''+varCodBarras+''','''+varDataHora+''','+varStatus+',:pPeso,'''+varcodProduto+''')');
Prepare;
ParamByName('pPeso').AsInteger := Round(Peso*1000);
ExecSQL;
end;
lbl1.Caption :='';
lbl2.Caption := VarPncliente;
lbl3.Caption := '';
lbl4.Caption := '';
lbl5.Caption := '';
lbl7.Caption := varCodBarras;
// usa Quickreport
QRImage1.Enabled := true;
Qrlabel2.Enabled := false;
QrLabel1.Enabled := true;
lbl8.Caption := '';
lbl9.Caption := '';
lbl3.Caption := varDataHora;
// Imprime a etiqueta
qrepEtiqueta.Print;
end;
end;