MICHELI_MARTINS
-
Total de itens
84 -
Registro em
-
Última visita
Posts postados por MICHELI_MARTINS
-
-
veja, no meu não existe um savedialog, este compontente para abrir esta caixa e salvar vem do proprio report preview do relatorio. é bem simples. se faço isso no proprio form e clico em salvar ele salva ok.
o problema é ao executar a aplicação. ele salva tambem. mas ao abrir o html tem um monte de lixo.
-
Bom dia a todos. Estou com um problema ao fazer o filtro do relatorio para html e não sei como resolver.
se você da um preview nas propriedades com botao direito em cima do relatorio dentro do form do delphi e pede para salva-lo em html, ele trabalha certinho.
o problema é quando se roda a aplicação, (exe) gera o relatorio, faz o preview e pede pra salva-lo ele ate salva mas quando vou verificar o html ele joga um monte de lixo na tela.
o que pode ser?
-
você vai ter q usar funcoes de string pra separar.
tipo, substring(), charindex(), etc.
tem q ver como você sabe ate onde vai o nome. o nome vem sempre primero?? tem tamanho fixo?? onde ele acaba?? ele vai somente ate o primero espaco??
sabendo disso, você usa as funcoes q eu falei pra separar a string.
sim o nome vem primeiro depois vem o codigo mas o nome não possui tamanho fixo de forma que o produto varia de tamanho. referente ao espaço entre o nome e o codigo, tem uns produtos que tem e outros q não....teria que ser um select q identificasse o primeiro numero na sequencia do nome do produto...
-
pessoal boa noite.
tenho uma base de dados com o nome de produto assim BUCHA 352.322.0050 H1001.
Gostaria de saber se tem possibilidade de fazer um select nesse campo em que ele so me retorne o numero do produto (sem o nome), pois foi cadastrado assim pelo usuario.
A intençao é pegar o codigo do produto e fazer um script para transporta-lo para outro campo.
O problema é que são muitos produtos pra fazer manualmente.
Agradeço se alguém tiver uma ideia.
-
micheus achei os erros acho q agora ta certo.
primeiro o loop é while "NOT" eu havia me esquecido.
segundo é um insert só na tabela para cada transaçao, e não um por registro. lembrando q este é o manual de peça/programacao. mas existem varios EDIs.
então o código fica assim:
procedure TFORMPROGRAMACAO.BTNIMPORTARClick(Sender: TObject);
Var
Txt:TextFile;
Linha,RegId,RegIdOld :string; // identificador do registro anterior
sArquivo: String;
BEGIN
if abrirarquivo.Execute then
begin
sArquivo:= (abrirarquivo.FileName);
end;
AssignFile(Txt,sArquivo);
Reset (txt);
{A variavel LINHA vai receceber linha a linha as informações do arquivo TXT.}
ReadLn(Txt,LINHA);
RegIdOld := '';
RegId := Copy(Linha, 1, 3);
if RegId = 'ITP' then
begin
// processa aqui os dados do registro ITP
TBLEDI.Insert;
{Nome do campo a ser gravado, coluna inicial e tamanho de cada campo.}
TBLEDI.FieldByName('ITPTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('ITPIDENTIFICACAOPROCESSO').ASSTRING :=(Copy(LINHA,04,03));
TBLEDI.FieldByName('ITPVERSAOTRANSACAO').ASSTRING :=(Copy(LINHA,07,02));
TBLEDI.FieldByName('ITPNUMEROCONTROLETRANSMISSAO').ASSTRING :=(Copy(LINHA,09,05));
TBLEDI.FieldByName('ITPIDGERACAOMOVIMENTO').ASSTRING :=(Copy(LINHA,14,12));
TBLEDI.FieldByName('ITPIDTRANSMISSORCOMUNICACAO').ASSTRING :=(Copy(LINHA,26,14));
TBLEDI.FieldByName('ITPIDRECEPTORCOMUNICACAO').ASSTRING :=(Copy(LINHA,40,14));
TBLEDI.FieldByName('ITPCODIGOINTERNOTRANSMISSOR').ASSTRING :=(Copy(LINHA,54,08));
TBLEDI.FieldByName('ITPCODIGOINTERNORECEPTOR').ASSTRING :=(Copy(LINHA,62,08));
TBLEDI.FieldByName('ITPNOMETRANSMISSOR').ASSTRING :=(Copy(LINHA,70,25));
TBLEDI.FieldByName('ITPNOMERECEPTOR').ASSTRING :=(Copy(LINHA,95,25));
TBLEDI.FieldByName('ITPESPACO').ASSTRING :=(Copy(LINHA,120,09));
// processa as linhas exceto a última que deverá ser do tipo 'FTP'
while not Eoln(Txt) do
begin
ReadLn(Txt,LINHA);
RegId := Copy(Linha, 1, 3);
if RegIdOld <> RegId then
begin
// quando há mudança do identificador, faz
// algum processamento/validação. Por ex, o
// tipo PE3 só pode aparecer depois de um tipo PE5
// ...
RegIdOld := RegId; // atualiza variável
end;
// processa aqui os dados do registro conforme identificador
if RegId = 'PE1' then
BEGIN
TBLEDI.FieldByName('PE1TIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE1CODFABRICADESTINO').ASSTRING :=(Copy(LINHA,04,03));
TBLEDI.FieldByName('PE1IDENTIFICACAOPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,07,09));
TBLEDI.FieldByName('PE1DATAPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,16,06));
TBLEDI.FieldByName('PE1IDPROGRAMAANTERIOR').ASSTRING :=(Copy(LINHA,22,09));
TBLEDI.FieldByName('PE1DATAPROGRAMAANTERIOR').ASSTRING :=(Copy(LINHA,31,06));
TBLEDI.FieldByName('PE1CODIGOITEMCLIENTE').ASSTRING :=(Copy(LINHA,37,30));
TBLEDI.FieldByName('PE1CODIGOITEMFORNECEDOR').ASSTRING :=(Copy(LINHA,67,30));
TBLEDI.FieldByName('PE1NUMEROPEDIDOCOMPRA').ASSTRING :=(Copy(LINHA,97,12));
TBLEDI.FieldByName('PE1CODIGOLOCALDESTINO').ASSTRING :=(Copy(LINHA,109,05));
TBLEDI.FieldByName('PE1IDENTIFICACAOCONTATO').ASSTRING :=(Copy(LINHA,114,11));
TBLEDI.FieldByName('PE1CODIGOUNIDADEMEDIDA').ASSTRING :=(Copy(LINHA,125,02));
TBLEDI.FieldByName('PE1QUANTIDADECASASDECIMAIS').ASSTRING :=(Copy(LINHA,127,01));
TBLEDI.FieldByName('PE1CODIGOTIPOFORNECIMENTO').ASSTRING :=(Copy(LINHA,128,01));
END
else if RegId = 'PE2' then
BEGIN
TBLEDI.FieldByName('PE2IDENTIFICACAOTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE2DATAULTIMAENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE2NUMEROULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,10,06));
TBLEDI.FieldByName('PE2SERIEULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,16,04));
TBLEDI.FieldByName('PE2DATAULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,20,6));
TBLEDI.FieldByName('PE2QTULTIMAENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,26,12));
TBLEDI.FieldByName('PE2QTENTREGAEMBARQUEACUMULADA').ASSTRING :=(Copy(LINHA,38,14));
TBLEDI.FieldByName('PE2QTNECESSACUMULADA').ASSTRING :=(Copy(LINHA,52,14));
TBLEDI.FieldByName('PE2QTLOTEMINIMO').ASSTRING :=(Copy(LINHA,66,12));
TBLEDI.FieldByName('PE2CODFREQUENCIAFORNECIMENTO').ASSTRING :=(Copy(LINHA,78,03));
TBLEDI.FieldByName('PE2DATALIBERACAOPRODUCAO').ASSTRING :=(Copy(LINHA,81,04));
TBLEDI.FieldByName('PE2DATALIBERACAOMATERIAPRIMA').ASSTRING :=(Copy(LINHA,85,04));
TBLEDI.FieldByName('PE2CODLOCALDESCARGA').ASSTRING :=(Copy(LINHA,89,07));
TBLEDI.FieldByName('P2PERIODOENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,96,04));
TBLEDI.FieldByName('PE2SITUACAODOITEM').ASSTRING :=(Copy(LINHA,100,02));
TBLEDI.FieldByName('PE2IDENTTIPOPROGRAMACAO').ASSTRING :=(Copy(LINHA,102,01));
TBLEDI.FieldByName('PE2PEDIDODAREVENDA').ASSTRING :=(Copy(LINHA,103,13));
TBLEDI.FieldByName('PE2QUALIFICACAOPROGRAMACAO').ASSTRING :=(Copy(LINHA,116,01));
TBLEDI.FieldByName('PE2TIPODEPEDIDOREVENDA').ASSTRING :=(Copy(LINHA,117,02));
TBLEDI.FieldByName('PE2CODDAVIATRANSPORTE').ASSTRING :=(Copy(LINHA,119,03));
TBLEDI.FieldByName('PE2ESPACO').ASSTRING :=(Copy(LINHA,122,07));
END
else if RegId = 'PE9' then
BEGIN
TBLEDI.FieldByName('PE9IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE9PEDIDOCOMPRAREF1').ASSTRING :=(Copy(LINHA,04,14));
TBLEDI.FieldByName('PE9TIPODOPEDIDO').ASSTRING :=(Copy(LINHA,18,02));
TBLEDI.FieldByName('PE9PEDIDODECOMPRAREF2').ASSTRING :=(Copy(LINHA,20,10));
TBLEDI.FieldByName('PE9NUMEROLOTEPRODUCAO').ASSTRING :=(Copy(LINHA,30,12));
TBLEDI.FieldByName('PE9DATAENTREGABEMITEM').ASSTRING :=(Copy(LINHA,42,06));
TBLEDI.FieldByName('PE9HORAENTREGA').ASSTRING :=(Copy(LINHA,48,04));
TBLEDI.FieldByName('PE9QUANTIDADEENTREGA').ASSTRING :=(Copy(LINHA,52,09));
TBLEDI.FieldByName('PE9CONTROLEPRODUCAOINICIAL').ASSTRING :=(Copy(LINHA,61,03));
TBLEDI.FieldByName('PE9ESPACO').ASSTRING :=(Copy(LINHA,64,65));
END
ELSE if REGID = 'PE3' then
BEGIN
TBLEDI.FieldByName('PE3IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,10,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,12,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,21,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,27,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,29,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,38,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,44,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,46,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,55,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,61,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,63,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,72,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,78,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,80,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,89,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,95,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,97,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM6').ASSTRING :=(Copy(LINHA,106,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM6').ASSTRING :=(Copy(LINHA,112,02));
TBLEDI.FIELDBYNAME('PE3QTENTREGAEMBARQUEITEM6').ASSTRING:= (Copy(LINHA,114,09));
TBLEDI.FieldByName('PE3ESPACO').ASSTRING :=(Copy(LINHA,123,06));
END
ELSE if REGID ='PE5' then
BEGIN
TBLEDI.FieldByName('PE5IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO').ASSTRING :=(Copy(LINHA,10,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,11,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,20,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO1').ASSTRING :=(Copy(LINHA,26,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL1').ASSTRING :=(Copy(LINHA,27,09));
TBLEDI.FieldByName('PE5DATAINICIALENTREGAEMBARQUE2').ASSTRING :=(Copy(LINHA,36,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO2').ASSTRING :=(Copy(LINHA,42,01));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMAATUAL2').ASSTRING :=(Copy(LINHA,43,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,52,06));
TBLEDI.FieldByName('PE5IDENTIFICACAODEPROGRAMACAO3').ASSTRING :=(Copy(LINHA,58,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL3').ASSTRING :=(Copy(LINHA,59,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,68,06));
TBLEDI.FieldByName('PE5IDENTIFICACAODEPROGRAMACAO4').ASSTRING :=(Copy(LINHA,74,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL4').ASSTRING :=(Copy(LINHA,75,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,84,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO5').ASSTRING :=(Copy(LINHA,90,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL5').ASSTRING :=(Copy(LINHA,91,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUE6').ASSTRING :=(Copy(LINHA,100,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO6').ASSTRING :=(Copy(LINHA,106,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL6').ASSTRING :=(Copy(LINHA,107,09));
TBLEDI.FieldByName('PE5ESPACO').ASSTRING :=(Copy(LINHA,116,13));
END
ELSE if REGID = 'PE6' then
BEGIN
TBLEDI.FieldByName('PE6IDENTDOTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE6FATORDECONVERSAO').ASSTRING :=(Copy(LINHA,04,10));
TBLEDI.FieldByName('PE6ALTERACAOTECNICADOITEM').ASSTRING :=(Copy(LINHA,14,04));
TBLEDI.FieldByName('PE6CODIGODEMATERIAL').ASSTRING :=(Copy(LINHA,18,10));
TBLEDI.FieldByName('PE6PESODOITEM').ASSTRING :=(Copy(LINHA,28,12));
TBLEDI.FieldByName('PE6UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,40,02));
TBLEDI.FieldByName('PE6ESPACO').ASSTRING :=(Copy(LINHA,42,87));
END
ELSE if REGID = 'PE7' then
BEGIN
TBLEDI.FieldByName('PE7IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE7IDENTEMBALAGEMPRIMCLIENTE').ASSTRING :=(Copy(LINHA,04,30));
TBLEDI.FieldByName('PE7DESCRICAOEMBALAGEM').ASSTRING :=(Copy(LINHA,34,20));
TBLEDI.FieldByName('PE7ALTURAEMBALAGEM').ASSTRING :=(Copy(LINHA,54,12));
TBLEDI.FieldByName('PE7LARGURAEMBALAGEM').ASSTRING :=(Copy(LINHA,66,12));
TBLEDI.FieldByName('PE7COMPRIMENTOEMBALAGEM').ASSTRING :=(Copy(LINHA,78,12));
TBLEDI.FieldByName('PE7UNIDMEDIDADIMEMBALAGEM').ASSTRING :=(Copy(LINHA,90,02));
TBLEDI.FieldByName('PE7PESODAEMBALAGEM').ASSTRING :=(Copy(LINHA,92,12));
TBLEDI.FieldByName('PE7UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,104,02));
TBLEDI.FieldByName('PE7CAPACIDEMBALPRIMCLIENTE').ASSTRING :=(Copy(LINHA,106,12));
TBLEDI.FieldByName('PE7CODRESPONSAVELPEMBALAGEM').ASSTRING :=(Copy(LINHA,118,01));
TBLEDI.FieldByName('PE7ESPACO').ASSTRING :=(Copy(LINHA,119,10));
END
ELSE if REGID = 'PE8' then
BEGIN
TBLEDI.FieldByName('PE8IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE8IDEMBALAGEMSECUNDARIACLIE').ASSTRING :=(Copy(LINHA,04,20));
TBLEDI.FieldByName('PE8DESCRICAOEMBALAGEM').ASSTRING :=(Copy(LINHA,24,20));
TBLEDI.FieldByName('PE8ALTURAEMBALAGEM').ASSTRING :=(Copy(LINHA,44,12));
TBLEDI.FieldByName('PE8LARGURAEMBALAGEM').ASSTRING :=(Copy(LINHA,56,12));
TBLEDI.FieldByName('PE8COMPRIMENTOEMBALAGEM').ASSTRING :=(Copy(LINHA,68,12));
TBLEDI.FieldByName('PE8UNIDMEDIDADIMEMBALAGEM').ASSTRING :=(Copy(LINHA,80,02));
TBLEDI.FieldByName('PE8PESOEMBALAGEM').ASSTRING :=(Copy(LINHA,82,12));
TBLEDI.FieldByName('PE8UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,94,02));
TBLEDI.FieldByName('PE8CAPACEMBALAGEMSECUNDARIA').ASSTRING :=(Copy(LINHA,96,12));
TBLEDI.FieldByName('PE8NEMBPRIMCAMEMBSEC').ASSTRING :=(Copy(LINHA,108,03));
TBLEDI.FieldByName('PE8NUMCAMEMBSECUNDARIA').ASSTRING :=(Copy(LINHA,111,03));
TBLEDI.FieldByName('PE8ESPACO').ASSTRING :=(Copy(LINHA,114,15));
END
ELSE if REGID ='PE4' then
BEGIN
TBLEDI.FieldByName('PE4IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE4IDENTEMBALSECUNDARIACLIE').ASSTRING :=(Copy(LINHA,04,20));
TBLEDI.FieldByName('PE4IDENTEMBALSECUNDARIAFORN').ASSTRING :=(Copy(LINHA,24,30));
TBLEDI.FieldByName('PE4CAPCEMBALAGEMSECUNDARIA').ASSTRING :=(Copy(LINHA,54,12));
TBLEDI.FieldByName('PE4IDENTEMBALPRIMARIAFORN').ASSTRING :=(Copy(LINHA,66,30));
TBLEDI.FieldByName('PE4CAPACEMBALPRIMARIAFORN').ASSTRING :=(Copy(LINHA,96,12));
TBLEDI.FieldByName('PE4CODRESPONSAVELPEMBALAGEM').ASSTRING :=(Copy(LINHA,108,01));
TBLEDI.FieldByName('PE4ESPACO').ASSTRING :=(Copy(LINHA,109,20));
END
ELSE if REGID = 'TE1' then
BEGIN
TBLEDI.FieldByName('TE1IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO').ASSTRING :=(Copy(LINHA,04,40));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO1').ASSTRING :=(Copy(LINHA,44,40));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO2').ASSTRING :=(Copy(LINHA,84,40));
TBLEDI.FieldByName('TE1ESPACO').ASSTRING :=(Copy(LINHA,124,05));
END
end;
if regid = 'FTP' then
begin
// processa dados do identificador FTP
TBLEDI.FieldByName('FTPIDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('FTPNUMEROCONTROLETRANSMISSAO').ASSTRING :=(Copy(LINHA,04,05));
TBLEDI.FieldByName('FTPQUANTREGISTROSTRANSACAO').ASSTRING :=(Copy(LINHA,09,09));
TBLEDI.FieldByName('FTPNUMEROTOTALVALORES').ASSTRING :=(Copy(LINHA,18,17));
TBLEDI.FieldByName('FTPCATEGORIAOPERACAO').ASSTRING :=(Copy(LINHA,35,01));
TBLEDI.FieldByName('FTPESPACO').ASSTRING :=(Copy(LINHA,36,93));
end;
TBLEDI.post;//Salva tabela
end else
TABELAEDI.SQL.CLEAR;
TABELAEDI.SQL.ADD('SELECT * FROM IMPORTACAOSCANIA');
TABELAEDI.ExecSQL;
TABELAEDI.OPEN;
end;
a mais uma coisa. muito obrigada mesmo pela sua ajuda.
sem sua ajuda não teria conseguido. :rolleyes:
-
micheus eu dei uma pequena modificada do seu codigo, esta quase la...só o loop q ta dando trabalho agora...
apenas desconsidere os id dos registros porque estou seguindo pelo nome que consta no manual.
procedure TFORMPROGRAMACAO.BTNIMPORTARClick(Sender: TObject);
Var
Txt:TextFile;
Linha,RegId,RegIdOld :string; // identificador do registro anterior
sArquivo: String;
BEGIN
if abrirarquivo.Execute then
begin
sArquivo:= (abrirarquivo.FileName);
end;
AssignFile(Txt,sArquivo);
Reset (txt);
{A variavel LINHA vai receceber linha a linha as informações do arquivo TXT.}
ReadLn(Txt,LINHA);
RegIdOld := '';
RegId := Copy(Linha, 1, 3);
if RegId = 'ITP' then
begin
// processa aqui os dados do registro ITP
TBLEDI.Insert;
{Nome do campo a ser gravado, coluna inicial e tamanho de cada campo.}
TBLEDI.FieldByName('ITPTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('ITPIDENTIFICACAOPROCESSO').ASSTRING :=(Copy(LINHA,04,03));
TBLEDI.FieldByName('ITPVERSAOTRANSACAO').ASSTRING :=(Copy(LINHA,07,02));
TBLEDI.FieldByName('ITPNUMEROCONTROLETRANSMISSAO').ASSTRING :=(Copy(LINHA,09,05));
TBLEDI.FieldByName('ITPIDGERACAOMOVIMENTO').ASSTRING :=(Copy(LINHA,14,12));
TBLEDI.FieldByName('ITPIDTRANSMISSORCOMUNICACAO').ASSTRING :=(Copy(LINHA,26,14));
TBLEDI.FieldByName('ITPIDRECEPTORCOMUNICACAO').ASSTRING :=(Copy(LINHA,40,14));
TBLEDI.FieldByName('ITPCODIGOINTERNOTRANSMISSOR').ASSTRING :=(Copy(LINHA,54,08));
TBLEDI.FieldByName('ITPCODIGOINTERNORECEPTOR').ASSTRING :=(Copy(LINHA,62,08));
TBLEDI.FieldByName('ITPNOMETRANSMISSOR').ASSTRING :=(Copy(LINHA,70,25));
TBLEDI.FieldByName('ITPNOMERECEPTOR').ASSTRING :=(Copy(LINHA,95,25));
TBLEDI.FieldByName('ITPESPACO').ASSTRING :=(Copy(LINHA,120,09));
TBLEDI.post;//Salva tabela
// processa as linhas exceto a última que deverá ser do tipo 'FTP'
while Eoln(Txt) do
begin
ReadLn(Txt,LINHA);
RegId := Copy(Linha, 1, 3);
if RegIdOld <> RegId then
begin
// quando há mudança do identificador, faz
// algum processamento/validação. Por ex, o
// tipo PE3 só pode aparecer depois de um tipo PE5
// ...
RegIdOld := RegId; // atualiza variável
end;
// processa aqui os dados do registro conforme identificador
if RegId = 'PE1' then
BEGIN
TBLEDI.Insert;
TBLEDI.FieldByName('PE1TIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE1CODFABRICADESTINO').ASSTRING :=(Copy(LINHA,04,03));
TBLEDI.FieldByName('PE1IDENTIFICACAOPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,07,09));
TBLEDI.FieldByName('PE1DATAPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,16,06));
TBLEDI.FieldByName('PE1IDPROGRAMAANTERIOR').ASSTRING :=(Copy(LINHA,22,09));
TBLEDI.FieldByName('PE1DATAPROGRAMAANTERIOR').ASSTRING :=(Copy(LINHA,31,06));
TBLEDI.FieldByName('PE1CODIGOITEMCLIENTE').ASSTRING :=(Copy(LINHA,37,30));
TBLEDI.FieldByName('PE1CODIGOITEMFORNECEDOR').ASSTRING :=(Copy(LINHA,67,30));
TBLEDI.FieldByName('PE1NUMEROPEDIDOCOMPRA').ASSTRING :=(Copy(LINHA,97,12));
TBLEDI.FieldByName('PE1CODIGOLOCALDESTINO').ASSTRING :=(Copy(LINHA,109,05));
TBLEDI.FieldByName('PE1IDENTIFICACAOCONTATO').ASSTRING :=(Copy(LINHA,114,11));
TBLEDI.FieldByName('PE1CODIGOUNIDADEMEDIDA').ASSTRING :=(Copy(LINHA,125,02));
TBLEDI.FieldByName('PE1QUANTIDADECASASDECIMAIS').ASSTRING :=(Copy(LINHA,127,01));
TBLEDI.FieldByName('PE1CODIGOTIPOFORNECIMENTO').ASSTRING :=(Copy(LINHA,128,01));
TBLEDI.post;//Salva tabela
END
else if RegId = 'PE2' then
BEGIN
TBLEDI.Insert;
TBLEDI.FieldByName('PE2IDENTIFICACAOTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE2DATAULTIMAENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE2NUMEROULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,10,06));
TBLEDI.FieldByName('PE2SERIEULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,16,04));
TBLEDI.FieldByName('PE2DATAULTIMANOTAFISCAL').ASSTRING :=(Copy(LINHA,20,6));
TBLEDI.FieldByName('PE2QTULTIMAENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,26,12));
TBLEDI.FieldByName('PE2QTENTREGAEMBARQUEACUMULADA').ASSTRING :=(Copy(LINHA,38,14));
TBLEDI.FieldByName('PE2QTNECESSACUMULADA').ASSTRING :=(Copy(LINHA,52,14));
TBLEDI.FieldByName('PE2QTLOTEMINIMO').ASSTRING :=(Copy(LINHA,66,12));
TBLEDI.FieldByName('PE2CODFREQUENCIAFORNECIMENTO').ASSTRING :=(Copy(LINHA,78,03));
TBLEDI.FieldByName('PE2DATALIBERACAOPRODUCAO').ASSTRING :=(Copy(LINHA,81,04));
TBLEDI.FieldByName('PE2DATALIBERACAOMATERIAPRIMA').ASSTRING :=(Copy(LINHA,85,04));
TBLEDI.FieldByName('PE2CODLOCALDESCARGA').ASSTRING :=(Copy(LINHA,89,07));
TBLEDI.FieldByName('P2PERIODOENTREGAEMBARQUE').ASSTRING :=(Copy(LINHA,96,04));
TBLEDI.FieldByName('PE2SITUACAODOITEM').ASSTRING :=(Copy(LINHA,100,02));
TBLEDI.FieldByName('PE2IDENTTIPOPROGRAMACAO').ASSTRING :=(Copy(LINHA,102,01));
TBLEDI.FieldByName('PE2PEDIDODAREVENDA').ASSTRING :=(Copy(LINHA,103,13));
TBLEDI.FieldByName('PE2QUALIFICACAOPROGRAMACAO').ASSTRING :=(Copy(LINHA,116,01));
TBLEDI.FieldByName('PE2TIPODEPEDIDOREVENDA').ASSTRING :=(Copy(LINHA,117,02));
TBLEDI.FieldByName('PE2CODDAVIATRANSPORTE').ASSTRING :=(Copy(LINHA,119,03));
TBLEDI.FieldByName('PE2ESPACO').ASSTRING :=(Copy(LINHA,122,07));
TBLEDI.post;//Salva tabela
END
else if RegId = 'PE9' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE9IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE9PEDIDOCOMPRAREF1').ASSTRING :=(Copy(LINHA,04,14));
TBLEDI.FieldByName('PE9TIPODOPEDIDO').ASSTRING :=(Copy(LINHA,18,02));
TBLEDI.FieldByName('PE9PEDIDODECOMPRAREF2').ASSTRING :=(Copy(LINHA,20,10));
TBLEDI.FieldByName('PE9NUMEROLOTEPRODUCAO').ASSTRING :=(Copy(LINHA,30,12));
TBLEDI.FieldByName('PE9DATAENTREGABEMITEM').ASSTRING :=(Copy(LINHA,42,06));
TBLEDI.FieldByName('PE9HORAENTREGA').ASSTRING :=(Copy(LINHA,48,04));
TBLEDI.FieldByName('PE9QUANTIDADEENTREGA').ASSTRING :=(Copy(LINHA,52,09));
TBLEDI.FieldByName('PE9CONTROLEPRODUCAOINICIAL').ASSTRING :=(Copy(LINHA,61,03));
TBLEDI.FieldByName('PE9ESPACO').ASSTRING :=(Copy(LINHA,64,65));
TBLEDI.post;//Salva tabela
END
ELSE if REGID = 'PE3' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE3IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,10,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,12,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,21,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,27,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,29,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,38,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,44,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM2').ASSTRING :=(Copy(LINHA,46,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,55,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,61,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,63,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,72,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,78,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,80,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,89,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,95,02));
TBLEDI.FieldByName('PE3QTENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,97,09));
TBLEDI.FieldByName('PE3DATAENTREGAEMBARQUEITEM6').ASSTRING :=(Copy(LINHA,106,06));
TBLEDI.FieldByName('PE3HORAENTREGAEMBARQUEITEM6').ASSTRING :=(Copy(LINHA,112,02));
TBLEDI.FIELDBYNAME('PE3QTENTREGAEMBARQUEITEM6').ASSTRING:= (Copy(LINHA,114,09));
TBLEDI.FieldByName('PE3ESPACO').ASSTRING :=(Copy(LINHA,123,06));
TBLEDI.post;//Salva tabela
END
ELSE if REGID ='PE5' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE5IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM').ASSTRING :=(Copy(LINHA,04,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO').ASSTRING :=(Copy(LINHA,10,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL').ASSTRING :=(Copy(LINHA,11,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM1').ASSTRING :=(Copy(LINHA,20,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO1').ASSTRING :=(Copy(LINHA,26,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL1').ASSTRING :=(Copy(LINHA,27,09));
TBLEDI.FieldByName('PE5DATAINICIALENTREGAEMBARQUE2').ASSTRING :=(Copy(LINHA,36,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO2').ASSTRING :=(Copy(LINHA,42,01));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMAATUAL2').ASSTRING :=(Copy(LINHA,43,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM3').ASSTRING :=(Copy(LINHA,52,06));
TBLEDI.FieldByName('PE5IDENTIFICACAODEPROGRAMACAO3').ASSTRING :=(Copy(LINHA,58,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL3').ASSTRING :=(Copy(LINHA,59,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM4').ASSTRING :=(Copy(LINHA,68,06));
TBLEDI.FieldByName('PE5IDENTIFICACAODEPROGRAMACAO4').ASSTRING :=(Copy(LINHA,74,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL4').ASSTRING :=(Copy(LINHA,75,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUEITEM5').ASSTRING :=(Copy(LINHA,84,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO5').ASSTRING :=(Copy(LINHA,90,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL5').ASSTRING :=(Copy(LINHA,91,09));
TBLEDI.FieldByName('PE5DATAINENTREGAEMBARQUE6').ASSTRING :=(Copy(LINHA,100,06));
TBLEDI.FieldByName('PE5IDENTIFICACAOPROGRAMACAO6').ASSTRING :=(Copy(LINHA,106,01));
TBLEDI.FieldByName('PE5IDENTPROGRAMAATUAL6').ASSTRING :=(Copy(LINHA,107,09));
TBLEDI.FieldByName('PE5ESPACO').ASSTRING :=(Copy(LINHA,116,13));
TBLEDI.post;//Salva tabela
END
ELSE if REGID = 'PE6' then
BEGIN
TBLEDI.Insert;
TBLEDI.FieldByName('PE6IDENTDOTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE6FATORDECONVERSAO').ASSTRING :=(Copy(LINHA,04,10));
TBLEDI.FieldByName('PE6ALTERACAOTECNICADOITEM').ASSTRING :=(Copy(LINHA,14,04));
TBLEDI.FieldByName('PE6CODIGODEMATERIAL').ASSTRING :=(Copy(LINHA,18,10));
TBLEDI.FieldByName('PE6PESODOITEM').ASSTRING :=(Copy(LINHA,28,12));
TBLEDI.FieldByName('PE6UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,40,02));
TBLEDI.FieldByName('PE6ESPACO').ASSTRING :=(Copy(LINHA,42,87));
TBLEDI.post;//Salva tabela
END
ELSE if REGID = 'PE7' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE7IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE7IDENTEMBALAGEMPRIMCLIENTE').ASSTRING :=(Copy(LINHA,04,30));
TBLEDI.FieldByName('PE7DESCRICAOEMBALAGEM').ASSTRING :=(Copy(LINHA,34,20));
TBLEDI.FieldByName('PE7ALTURAEMBALAGEM').ASSTRING :=(Copy(LINHA,54,12));
TBLEDI.FieldByName('PE7LARGURAEMBALAGEM').ASSTRING :=(Copy(LINHA,66,12));
TBLEDI.FieldByName('PE7COMPRIMENTOEMBALAGEM').ASSTRING :=(Copy(LINHA,78,12));
TBLEDI.FieldByName('PE7UNIDMEDIDADIMEMBALAGEM').ASSTRING :=(Copy(LINHA,90,02));
TBLEDI.FieldByName('PE7PESODAEMBALAGEM').ASSTRING :=(Copy(LINHA,92,12));
TBLEDI.FieldByName('PE7UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,104,02));
TBLEDI.FieldByName('PE7CAPACIDEMBALPRIMCLIENTE').ASSTRING :=(Copy(LINHA,106,12));
TBLEDI.FieldByName('PE7CODRESPONSAVELPEMBALAGEM').ASSTRING :=(Copy(LINHA,118,01));
TBLEDI.FieldByName('PE7ESPACO').ASSTRING :=(Copy(LINHA,119,10));
TBLEDI.post;//Salva tabela
END
ELSE if REGID = 'PE8' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE8IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE8IDEMBALAGEMSECUNDARIACLIE').ASSTRING :=(Copy(LINHA,04,20));
TBLEDI.FieldByName('PE8DESCRICAOEMBALAGEM').ASSTRING :=(Copy(LINHA,24,20));
TBLEDI.FieldByName('PE8ALTURAEMBALAGEM').ASSTRING :=(Copy(LINHA,44,12));
TBLEDI.FieldByName('PE8LARGURAEMBALAGEM').ASSTRING :=(Copy(LINHA,56,12));
TBLEDI.FieldByName('PE8COMPRIMENTOEMBALAGEM').ASSTRING :=(Copy(LINHA,68,12));
TBLEDI.FieldByName('PE8UNIDMEDIDADIMEMBALAGEM').ASSTRING :=(Copy(LINHA,80,02));
TBLEDI.FieldByName('PE8PESOEMBALAGEM').ASSTRING :=(Copy(LINHA,82,12));
TBLEDI.FieldByName('PE8UNIDMEDIDAUSADAPPESO').ASSTRING :=(Copy(LINHA,94,02));
TBLEDI.FieldByName('PE8CAPACEMBALAGEMSECUNDARIA').ASSTRING :=(Copy(LINHA,96,12));
TBLEDI.FieldByName('PE8NEMBPRIMCAMEMBSEC').ASSTRING :=(Copy(LINHA,108,03));
TBLEDI.FieldByName('PE8NUMCAMEMBSECUNDARIA').ASSTRING :=(Copy(LINHA,111,03));
TBLEDI.FieldByName('PE8ESPACO').ASSTRING :=(Copy(LINHA,114,15));
TBLEDI.post;//Salva tabela
END
ELSE if REGID ='PE4' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('PE4IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('PE4IDENTEMBALSECUNDARIACLIE').ASSTRING :=(Copy(LINHA,04,20));
TBLEDI.FieldByName('PE4IDENTEMBALSECUNDARIAFORN').ASSTRING :=(Copy(LINHA,24,30));
TBLEDI.FieldByName('PE4CAPCEMBALAGEMSECUNDARIA').ASSTRING :=(Copy(LINHA,54,12));
TBLEDI.FieldByName('PE4IDENTEMBALPRIMARIAFORN').ASSTRING :=(Copy(LINHA,66,30));
TBLEDI.FieldByName('PE4CAPACEMBALPRIMARIAFORN').ASSTRING :=(Copy(LINHA,96,12));
TBLEDI.FieldByName('PE4CODRESPONSAVELPEMBALAGEM').ASSTRING :=(Copy(LINHA,108,01));
TBLEDI.FieldByName('PE4ESPACO').ASSTRING :=(Copy(LINHA,109,20));
TBLEDI.post;//Salva tabela
END
ELSE if REGID = 'TE1' then
BEGIN
TBLEDI.INSERT;
TBLEDI.FieldByName('TE1IDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO').ASSTRING :=(Copy(LINHA,04,40));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO1').ASSTRING :=(Copy(LINHA,44,40));
TBLEDI.FieldByName('TE1TEXTOLIVREINFORMATIVO2').ASSTRING :=(Copy(LINHA,84,40));
TBLEDI.FieldByName('TE1ESPACO').ASSTRING :=(Copy(LINHA,124,05));
TBLEDI.post;//Salva tabela
END;
end;
if RegId = 'FTP' then
begin
// processa dados do identificador FTP
TBLEDI.INSERT;
TBLEDI.FieldByName('FTPIDENTTIPOREGISTRO').ASSTRING :=(Copy(LINHA,01,03));
TBLEDI.FieldByName('FTPNUMEROCONTROLETRANSMISSAO').ASSTRING :=(Copy(LINHA,04,05));
TBLEDI.FieldByName('FTPQUANTREGISTROSTRANSACAO').ASSTRING :=(Copy(LINHA,09,09));
TBLEDI.FieldByName('FTPNUMEROTOTALVALORES').ASSTRING :=(Copy(LINHA,18,17));
TBLEDI.FieldByName('FTPCATEGORIAOPERACAO').ASSTRING :=(Copy(LINHA,35,01));
TBLEDI.FieldByName('FTPESPACO').ASSTRING :=(Copy(LINHA,36,93));
TBLEDI.post;//Salva tabela
end else
ShowMessage('Identificador FTP não encontrado');
end else
ShowMessage('Identificador ITP não encontrado');
TABELAEDI.SQL.CLEAR;
TABELAEDI.SQL.ADD('SELECT * FROM IMPORTACAOSCANIA');
TABELAEDI.ExecSQL;
TABELAEDI.OPEN;
end;
end.
-
então ms sera que a separacao das linhas é feita pela identificaçao do registro? se você reparar existem linhas que já começam com numeros e não com o id...
-
Gente estou com uma duvida referente à importação.
Meu sistema esta pronto e já importa o arquivo txt. Mas o problema é que para cada tidpo de registro do edi (itp, pe1,pe2... e por ai vai) o layout começa sempre nas mesmas posições. por exemplo:
para itp: identificacao do registro, da posição 1 à posicao 3.
para pe1: identificacao do registro da posição 1 à posicao 3.
Quando meu sistema le isso ele simplesmente sobrescreve.
alguém saberia me dizer por onde eu posso diferenciar para que não aconteça isso? se é por linha, se é por elemento alguma coisa assim?
delphi2007Xquickreport4Xvista
em Delphi, Kylix
Postado
eu já havia colocado o qrexport na uses, e alem dele QRWebFilt que é o componente do quick para html. esta outra forma que você apresentou eu já havia tentado fazer, porem existe dois fatos:
1- se eu coloco desta forma, QuickReport.ExportToFilter(TQRHTMLDocumentFilter.Create('c:\teste.html')) ele diz q há incompatibilidade de tipos tcomponent e string.
2- pelo componente QRWebFilt não preciso desta linha porque ele proprio já adiciona na caixa dialog do preview a extensao html.
ainda assim no form, com botao direito clico em propriedades peço o preview, clico na dialog e peço para salvar em html. salva direitinho.
se eu pedir para correr (run) escolho o relatorio ele tb me da o preview, tambem me da o html na dialog do preview, mas este quando salvo, abro o html gera lixo.