Générez QRCode sur ReportBuilder avec plusieurs rangées de données
-
26-12-2019 - |
Question
Alors voici ce qui se passe
Je travaille avec 2DDDBBarcode sur ReportBuilder (métaphores numériques) pour générer un QRCode qui encode tous les iTons (produits) dans le rapport, un élément par ligne. Mais cela n'encore que la première ligne de données. Le 2DDDBBarcode est positionné sur la bande d'en-tête du rapport.
Comment puis-je avoir plusieurs rangées de données à l'intérieur de 2dbdbarcode?
J'ai déjà consulté RBuilder Guide à http://www.digital-mephors.com/pdf/rbuilder.pdf mais je ne peux rien obtenir de là
La solution
J'ai trouvé un moyen de contourner ce problème.Au lieu de créer un pipeline de rapport pour obtenir des données à partir de la base de données directement à l'intérieur de 2dbarcode, je transmetce les données avant d'ouvrir le rapport.Le code est maintenant:
with DataModule2.Sql_IdQtd1 do
begin
Close;
SQL.Clear;
Sql.Add('select concat("when ",id_produto," then ",quant) from mv_vendas_movimento');
Sql.Add('where controle=:NumPed');
ParamByName('NumPed').Value := NumPed;
ExecSQL;
Open;
First;
-- here it goes thru each row of data and store it to 2dbarcode.data, one row by line
DataModule2.p2dbrcd1.Data := 'UPDATE cad_produtos SET estoque = estoque + CASE id';
while (not Eof) do begin
DataModule2.p2dbrcd1.Data := DataModule2.p2dbrcd1.Data +sLineBreak+ DataModule2.Sql_IdQtd1concatwhenid_produtothenquant.Text;
Next;
end;
DataModule2.p2dbrcd1.Data := DataModule2.p2dbrcd1.Data +sLineBreak+ 'ELSE estoque END'
end;