Dataset Várias Colunas Só 1 é apresentada no DBGrid
Tenho um dataset com 5 colunas mas só aparece 1 no DBgrid
procedure TForm2Importa.btnLerArquivoClick(Sender: TObject);
var
ListaItens, ListaDados : TStringList;
QntLinhasTotal, y,aWW : Integer;
stringLinha, Casa, Data, comodos, Qtde, Valor: string;
begin
ListaItens := TStringList.Create;
ListaDados := TStringList.Create;
ListaDados.Delimiter:=';';
ListaDados.StrictDelimiter:=True;
aWW:=0;
ListaItens.LoadFromFile(EdtArquivoOriginal.Text);
QntLinhasTotal := ListaItens.Count-strtoint(D_cabec)+1 ; //Total de linhas do arquivo menos onde começa o cabecçalho+1
//for y := strtoint(D_cabec)+1 to QntLinhasTotal do
for y := 1 to QntLinhasTotal do
begin
if d_sep2<>'T' then
begin
stringLinha := StringReplace(ListaItens[y],d_sepT,';',[rfReplaceAll]);
stringLinha := StringReplace(stringLinha,d_sep1,'',[rfReplaceAll]);
stringLinha := StringReplace(stringLinha,'pts','',[rfReplaceAll]);
end
else
begin
stringLinha := ListaItens[y]
end;
ClientDataSet1.Open;
ClientDataSet1.Insert;
Split(stringLinha, ';', ListaDados); //Função que separa colunas pelo ;
aWW:=POS('EDI',ListaDados[0])+POS('KIT',ListaDados[0]);
if aWW<>0 then //Se tiver uma Casa válido começa a gravar
begin
Casa := ListaDados[strtoint(D_Casa)-1];
if d_dataTp='S' then
begin
Data := ListaDados[strtoint(D_data)-1];
end
else
begin
Data := ListaDados[strtoint(D_data)-1];
end;
comodos := ListaDados[strtoint(D_qtde)-1];
Qtde := ListaDados[strtoint(D_pts)-1];
Valor := ListaDados[strtoint(D_vr)-1];
ClientDataSet1.append;
ClientDataSet1Casa.AsString := Casa;
ClientDataSet1Data.AsString := Data;
ClientDataSet1comodos.AsString := comodos;
ClientDataSet1Qtde.AsString := Qtde;
ClientDataSet1Valor.AsString := Valor;
ClientDataSet1.Post;
end;
end;
ListaItens.Free;
ListaDados.Free;
end;
procedure TForm2Importa.DBGrid2CellClick(Column: TColumn); //Função pega Plataforma Escolhida
begin
EditPlatfSelect.text:=dbgrid2.Fields[1].Value;
D_sep1 :=dbgrid2.Fields[2].Value; //Separador1
D_sep2 :=dbgrid2.Fields[3].Value; //Separador2
D_sepT :=dbgrid2.Fields[2].Value+dbgrid2.Fields[3].Value; //Separador1+//Separador2
D_cabec :=dbgrid2.Fields[4].Value; //Linha Cabçalho
D_Casa :=dbgrid2.Fields[5].Value; //Coluna Casa
D_data :=dbgrid2.Fields[6].Value; //Coluna Data
D_dataTp :=dbgrid2.Fields[7].Value; //Coluna Se a Data tem horas
D_qtde :=dbgrid2.Fields[8].Value; //Coluna Quantidade
D_pts :=dbgrid2.Fields[9].Value; //Coluna Portas
D_vr :=dbgrid2.Fields[10].Value; //Coluna Valor
end;
procedure TForm2importa.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
EdtArquivoOriginal.Text := OpenDialog1.FileName;
end;
procedure TForm2importa.Split(DelimiterText: string; Delimiter: Char;
ListOfStrings: TStrings);
begin
ListOfStrings.DelimitedText := DelimiterText;
end;
end.
procedure TForm2Importa.btnLerArquivoClick(Sender: TObject);
var
ListaItens, ListaDados : TStringList;
QntLinhasTotal, y,aWW : Integer;
stringLinha, Casa, Data, comodos, Qtde, Valor: string;
begin
ListaItens := TStringList.Create;
ListaDados := TStringList.Create;
ListaDados.Delimiter:=';';
ListaDados.StrictDelimiter:=True;
aWW:=0;
ListaItens.LoadFromFile(EdtArquivoOriginal.Text);
QntLinhasTotal := ListaItens.Count-strtoint(D_cabec)+1 ; //Total de linhas do arquivo menos onde começa o cabecçalho+1
//for y := strtoint(D_cabec)+1 to QntLinhasTotal do
for y := 1 to QntLinhasTotal do
begin
if d_sep2<>'T' then
begin
stringLinha := StringReplace(ListaItens[y],d_sepT,';',[rfReplaceAll]);
stringLinha := StringReplace(stringLinha,d_sep1,'',[rfReplaceAll]);
stringLinha := StringReplace(stringLinha,'pts','',[rfReplaceAll]);
end
else
begin
stringLinha := ListaItens[y]
end;
ClientDataSet1.Open;
ClientDataSet1.Insert;
Split(stringLinha, ';', ListaDados); //Função que separa colunas pelo ;
aWW:=POS('EDI',ListaDados[0])+POS('KIT',ListaDados[0]);
if aWW<>0 then //Se tiver uma Casa válido começa a gravar
begin
Casa := ListaDados[strtoint(D_Casa)-1];
if d_dataTp='S' then
begin
Data := ListaDados[strtoint(D_data)-1];
end
else
begin
Data := ListaDados[strtoint(D_data)-1];
end;
comodos := ListaDados[strtoint(D_qtde)-1];
Qtde := ListaDados[strtoint(D_pts)-1];
Valor := ListaDados[strtoint(D_vr)-1];
ClientDataSet1.append;
ClientDataSet1Casa.AsString := Casa;
ClientDataSet1Data.AsString := Data;
ClientDataSet1comodos.AsString := comodos;
ClientDataSet1Qtde.AsString := Qtde;
ClientDataSet1Valor.AsString := Valor;
ClientDataSet1.Post;
end;
end;
ListaItens.Free;
ListaDados.Free;
end;
procedure TForm2Importa.DBGrid2CellClick(Column: TColumn); //Função pega Plataforma Escolhida
begin
EditPlatfSelect.text:=dbgrid2.Fields[1].Value;
D_sep1 :=dbgrid2.Fields[2].Value; //Separador1
D_sep2 :=dbgrid2.Fields[3].Value; //Separador2
D_sepT :=dbgrid2.Fields[2].Value+dbgrid2.Fields[3].Value; //Separador1+//Separador2
D_cabec :=dbgrid2.Fields[4].Value; //Linha Cabçalho
D_Casa :=dbgrid2.Fields[5].Value; //Coluna Casa
D_data :=dbgrid2.Fields[6].Value; //Coluna Data
D_dataTp :=dbgrid2.Fields[7].Value; //Coluna Se a Data tem horas
D_qtde :=dbgrid2.Fields[8].Value; //Coluna Quantidade
D_pts :=dbgrid2.Fields[9].Value; //Coluna Portas
D_vr :=dbgrid2.Fields[10].Value; //Coluna Valor
end;
procedure TForm2importa.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
EdtArquivoOriginal.Text := OpenDialog1.FileName;
end;
procedure TForm2importa.Split(DelimiterText: string; Delimiter: Char;
ListOfStrings: TStrings);
begin
ListOfStrings.DelimitedText := DelimiterText;
end;
end.
Alessandro Carvalho
Curtidas 0
Respostas
Alessandro Carvalho
02/05/2021
Consegui Resolver
GOSTEI 0