Como pegar informação do BD Delphi 7

01/04/2016

0

Pessoal,como faço para adicionar algum campo do banco de dados dentro desse codico, uso o RDPRINT

preciso puxa uma a informação do Codico da venda dentro desse cupom
{==========================================================================}
{============================= IMPRESSAO DO CABEÇALHO =====================}
{==========================================================================}
if dm.IBTransaction.Active then
dm.IBTransaction.Commit;
dm.IBTransaction.StartTransaction;
with dm.QConsulta do
begin
close;
sql.Clear;
sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP ' +
'FROM EMPRESA WHERE COD_EMP = :CODEMP');
Parambyname('codemp').AsInteger:= iEmp;
Open;
RDprint.ImpC(1, 28, trim(FieldByName('RAZAO_EMP').AsString), []);
RDprint.ImpC(2, 28, trim(FieldByName('end_emp').AsString) + ', ' + trim(FieldByName('bai_emp').AsString), []);
RDprint.ImpC(3, 28, trim(FieldByName('cid_emp').AsString) + '-' + trim(FieldByName('est_emp').AsString) + ' CEP:' + trim(FieldByName('cep_emp').AsString), []);
RDprint.Imp(4, 1, 'CNPJ: ' + fieldbyname('cnpj_emp').AsString);
RDprint.Imp(5, 1, 'IE: ' + fieldbyname('insc_emp').AsString);
end;
dm.IBTransaction.Commit;
dm.QConsulta.Close;

RDprint.Imp(6, 1, '-----------------------------------------------------');
RDprint.Imp(7, 1, QConsVendasDATA_VEN.AsString + ' ' +
QConsVendasHORA.AsString + ' CCF:' +
FormataStringD(QConsVendasR04_CCF.AsString, '6', '0') +
' COO:' + FormataStringD(QConsVendasCUPOM_FISCAL_VEN.AsString, '6', '0') +
' ECF:' + FormataStringD(QConsVendasCOD_CAI.AsString, '3', '0'));
RDprint.Imp(8, 1, ' ');
RDprint.ImpC(9, 28, '2ª VIA - CUPOM FISCAL', []);
RDprint.Imp(10, 1, '-----------------------------------------------------');

{==========================================================================}
{================================= ITENS DA VENDA =========================}
{==========================================================================}
iLinha:= 11;
RDprint.imp(iLinha, 1, 'Item Codigo Desc. Quant. Unit. Total');
RDprint.imp(iLinha, 1, '-----------------------------------------------------');
inc(iLinha);
cAuxTotal:= 0;

if dm.IBTransaction.Active then
dm.IBTransaction.Commit;
dm.IBTransaction.StartTransaction;
with QBuscaItens do
begin
close;
Parambyname('codven').AsInteger:= QConsVendasCOD_VEN.AsInteger;
Open;
DisableControls;
First;
while not eof do
begin
RDprint.Imp(iLinha, 1, FormataStringD(QBuscaItensORDEM.AsString, '3', '0'));
RDprint.Imp(iLinha, 6, FormataStringD(QBuscaItensCODIGO_BARRA_PRO.AsString, '14', '0'));
RDprint.Imp(iLinha, 21, copy(trim(QBuscaItensNOME_PRO.AsString), 1, 30));
inc(iLinha);
RDprint.ImpVal(iLinha, 27, '#,##0.00', QBuscaItensQUANT.AsCurrency, []);
RDprint.ImpVal(iLinha, 36, '#,##0.00', QBuscaItensVALOR.AsCurrency, []);
RDprint.ImpVal(iLinha, 46, '#,##0.00', QBuscaItensCALC_TOTAL.AsCurrency, []);
Argos Oliveira

Argos Oliveira

Responder

Post mais votado

02/04/2016

O certo é passar o parametro antes do "Open;" mesmo. Ou...


dm.QConsulta.close;
dm.QConsulta.sql.Text := Format('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP FROM EMPRESA WHERE COD_EMP = %d', [iEmp]);
dm.QConsulta.Open;

Raylan Zibel

Raylan Zibel
Responder

Mais Posts

01/04/2016

Raylan Zibel

Adicione o campo na lista de campos:
sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP, CAMPO_DE_TESTE_QUE_NAO_TINHA_ANTES '...


Use o campo novo:
RDprint.ImpC(1, 28, trim(FieldByName('CAMPO_DE_TESTE_QUE_NAO_TINHA_ANTES').AsString), []);
Responder

01/04/2016

Raylan Zibel

Agora, se tu não manja nada de Delphi, pague um profissional.
Responder

01/04/2016

Argos Oliveira

Eis á Questão esotu em aprendizagem, segue informação, coloquei o codico fonte dessa maneira
{==========================================================================}
{============================= IMPRESSAO DO CABEÇALHO =====================}
{==========================================================================}
if dm.IBTransaction.Active then
dm.IBTransaction.Commit;
dm.IBTransaction.StartTransaction;
with dm.QConsulta do
begin
close;
sql.Clear;
sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP,COD_VEND' +
'FROM EMPRESA WHERE COD_EMP = :CODEMP');
Parambyname('codemp').AsInteger:= iEmp;
Open;

RDprint.ImpC(1, 28, trim(FieldByName('COD_VEN').AsString), []);
RDprint.ImpC(2, 28, trim(FieldByName('end_emp').AsString) + ', ' + trim(FieldByName('bai_emp').AsString), []);
RDprint.ImpC(3, 28, trim(FieldByName('cid_emp').AsString) + '-' + trim(FieldByName('est_emp').AsString) + ' CEP:' + trim(FieldByName('cep_emp').AsString), []);
RDprint.Imp(4, 1, 'CNPJ: ' + fieldbyname('cnpj_emp').AsString);
RDprint.Imp(5, 1, 'IE: ' + fieldbyname('insc_emp').AsString);
Responder

01/04/2016

Argos Oliveira

Tentei roda á Aplicação, e deu o seguinte erro..


[img]http://arquivo.devmedia.com.br/forum/imagem/379287-20160401-173923.png[/img]
Responder

01/04/2016

Argos Oliveira

tem como me ajudar, preciso colocar um campo no cupom nao fiscal, mas esta dando erro
Responder

01/04/2016

Raylan Zibel

sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP,COD_VEND' +
' FROM EMPRESA WHERE COD_EMP = :CODEMP');

faltou um espaço só eu acho...
Responder

02/04/2016

Raimundo Pereira

with dm.QConsulta do
begin
close; //Fechou
sql.Clear;//Limpou
sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP ' +
'FROM EMPRESA WHERE COD_EMP = :CODEMP'); //add
Parambyname('codemp').AsInteger:= iEmp; //Tenda edit sem realizar o open?
Open;

Tente
Open;
Parambyname('codemp').AsInteger:= iEmp; //Tenda edit sem realizar o open?
Responder

02/04/2016

Raimundo Pereira

Realmente é correto
O certo é passar o parametro antes do "Open;" mesmo. Ou...
dm.QConsulta.close;
dm.QConsulta.sql.Text := Format('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP FROM EMPRESA WHERE COD_EMP = %d', [iEmp]);
dm.QConsulta.Open;


iEmp é uma variavel, a mesma está sendo alimentada em qual momento?
É melhor debugar o código
Responder

02/04/2016

Argos Oliveira

COLOQUEI A OPERAÇÃO, MAS JA NÃO APAREÇE OS DADOS DA EMPRESA
Responder

02/04/2016

Argos Oliveira

COM ESSE CODÍCO ELE PUXOU
               sql.Add('SELECT RAZAO_EMP, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP ' +
                       'FROM EMPRESA WHERE COD_EMP = :CODEMP');
               Parambyname('codemp').AsInteger:= iEmp;
               dm.QConsulta.Open;
               RDprint.ImpC(1, 28, trim(FieldByName('RAZAO_EMP').AsString), []);
               RDprint.ImpC(2, 28, trim(FieldByName('end_emp').AsString) + ', ' + trim(FieldByName('bai_emp').AsString), []);
               RDprint.ImpC(3, 28, trim(FieldByName('cid_emp').AsString) + '-' + trim(FieldByName('est_emp').AsString) + ' CEP:' + trim(FieldByName('cep_emp').AsString), []);
               RDprint.Imp(4, 1, 'CNPJ: ' + fieldbyname('cnpj_emp').AsString);
               RDprint.Imp(5, 1, 'IE: ' + fieldbyname('insc_emp').AsString);


EU ESTAVA USANDO ERRADO , COLOCANDO O "PARAMBYNAME" DEPOIS DO dm.QConsulta.Open;

Agora á questão e esa aqui,
             sql.Add('SELECT RAZAO_EMP, COD_VEN, [img]http://arquivo.devmedia.com.br/forum/imagem/379287-20160402-115151.png[/img]CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP ' +
                       'FROM EMPRESA WHERE COD_EMP = :CODEMP');
                                            RDprint.ImpC(1, 28, trim(FieldByName('COD_VEN').AsString), []);
Responder

02/04/2016

Argos Oliveira

               sql.Add('SELECT RAZAO_EMP, COD_VEN, CNPJ_EMP, INSC_EMP, END_EMP, BAI_EMP, CID_EMP, EST_EMP, CEP_EMP ' +
                       'FROM EMPRESA WHERE COD_EMP = :CODEMP');
               Parambyname('codemp').AsInteger:= iEmp;
               dm.QConsulta.Open;
               RDprint.ImpC(1, 28, trim(FieldByName('COD_VEN').AsString), []);
               RDprint.ImpC(2, 28, trim(FieldByName('end_emp').AsString) + ', ' + trim(FieldByName('bai_emp').AsString), []);
               RDprint.ImpC(3, 28, trim(FieldByName('cid_emp').AsString) + '-' + trim(FieldByName('est_emp').AsString) + ' CEP:' + trim(FieldByName('cep_emp').AsString), []);
               RDprint.Imp(4, 1, 'CNPJ: ' + fieldbyname('cnpj_emp').AsString);
               RDprint.Imp(5, 1, 'IE: ' + fieldbyname('insc_emp').AsString);


Codico correto, mas tento roda a aplicação e puxa o cupom, e nao da o campo COD_VEN
Responder

02/04/2016

Raylan Zibel

Possivelmente é por que o campo "COD_VEN" não é da tabela "EMPRESA".
Responder

02/04/2016

Argos Oliveira

então, eu teria que adicionar sql.Add?
Responder

02/04/2016

Raylan Zibel

então, eu teria que adicionar sql.Add?


Não. Voce precisa identificar de que tabela esse campo pertence e fazer um Select pra trazer essa informação. Aí já é conhecimentos de SQL.

Se voce vai fazer outro Select, fazer um Join, usar um LookupFIeld, aí já é com você.

O ideal é voce aprender a desenvolver antes de meter a mão na massa...
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar