stringgride hesaplanan verileri teker teker yazmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
stringgride hesaplanan verileri teker teker yazmak
S.a. Arkadaşlar benim hesaplayıp örneğin 5 sütün halinde verileri stringgride yazmam gerekiyor. Foruma baktım ama hiç kullanmadığım için tam anlayamadım stringgridin kullanımını. 5 kolona başlıklarını ve alt alta belki 5000 satır veri yazacağım hesaplayıp ve bunu daha sonra excele gönderme durumumda olacak. Nasıl alt alta hesaplayıp hesaplayıp stringgride veri yazabilirim. Yardımlarınızı bekliyorum. Belki basit bir soru sordum ama hiç kullanmadığım için beceremedim.
Teşekkürler
Teşekkürler
Re: stringgride hesaplanan verileri teker teker yazmak
açıkçası forumda yada google da nasıl olup da bulamadığınız başlı başına hayret konusu ancak ;delphist yazdı:S.a. Arkadaşlar benim hesaplayıp örneğin 5 sütün halinde verileri stringgride yazmam gerekiyor. Foruma baktım ama hiç kullanmadığım için tam anlayamadım stringgridin kullanımını. 5 kolona başlıklarını ve alt alta belki 5000 satır veri yazacağım hesaplayıp ve bunu daha sonra excele gönderme durumumda olacak. Nasıl alt alta hesaplayıp hesaplayıp stringgride veri yazabilirim. Yardımlarınızı bekliyorum. Belki basit bir soru sordum ama hiç kullanmadığım için beceremedim.
Teşekkürler
mantıksal olarak bahsedelim ;
öncelikle string grid denen şey bir matristir. 0 0 indexlidir. siz 1. satır ve sütunu başlıklar için ayıracağınızdan döngü ile ilgili CELL değerlerine kendi değerlerinizi yazacaksınız.
kur programımdan örnek kod
Kod: Tümünü seç
Procedure TFrmdoviz.FillValuesToGrid;
Var
Loop:Integer;
Begin
For Loop := 1 to 12 do
Begin
Sgrid.Cells[0,Loop] := IntToStr(DkurUnit[Loop]);
Sgrid.Cells[1,Loop] := Dkur[Loop];
Sgrid.Cells[2,Loop] := Dkurn[Loop];
Sgrid.Cells[3,Loop] := FloatToStr(DkurAlis[Loop]);
Sgrid.Cells[4,Loop] := FloatToStr(DkurSatis[Loop]);
Sgrid.Cells[5,Loop] := FloatToStr(DkurEAlis[Loop]);
Sgrid.Cells[6,Loop] := FloatToStr(DkurESatis[Loop]);
Sgrid.Cells[7,Loop] := FloatToStr(DkurUsdPrt[Loop]);
Sgrid.Cells[8,Loop] := FloatToStr(DkurOthPrt[Loop]);
End;
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
string grid yazdırma
aslında bu ipucu bölümünede atılabilir ama buradada bulunsun
STRINGGRID YAZDIRAN FONKSIYON
STRINGGRID YAZDIRAN FONKSIYON
Kod: Tümünü seç
procedure PrintStringGrid(AGrid: TStringGrid);
var MaxSizes: array of Integer;
column, row, sx, sy, LeftSpace: Integer;
begin
SetLength(MaxSizes, AGrid.ColCount);
for column := 0 to AGrid.ColCount - 1 do
MaxSizes[column] := 0;
for row := 0 to AGrid.RowCount - 1 do
for column := 0 to AGrid.ColCount - 1 do
if Printer.Canvas.TextWidth(Agrid.Cells[column, row]) > MaxSizes[column] then
MaxSizes[column] := Printer.Canvas.TextWidth(Agrid.Cells[column, row]) + 10;
Printer.BeginDoc;
LeftSpace := 10; // sol bosluk
sx := LeftSpace;
sy := 0;
for row := 0 to AGrid.RowCount - 1 do
begin
for column := 0 to AGrid.ColCount - 1 do
begin
Printer.Canvas.TextOut(sx, sy, AGrid.Cells[column, row]);
sx := sx + MaxSizes[column];
end;
sx := LeftSpace;
sy := sy + Printer.Canvas.TextHeight('A') + 2;
end;
Printer.EndDoc;
end;
procedure TFrmdoviz.BtnPrnClick(Sender: TObject);
begin
PrintStringGrid(sgrid);
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
STRING GRID EXCELE ATMAK
Kod: Tümünü seç
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
const AValue: string);
var
L: Word;
const
{$J+}
CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
{$J-}
begin
L := Length(AValue);
CXlsLabel[1] := 8 + L;
CXlsLabel[2] := ARow;
CXlsLabel[3] := ACol;
CXlsLabel[5] := L;
XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
XlsStream.WriteBuffer(Pointer(AValue)^, L);
end;
function SaveAsExcelFile(SG: TStringGrid; AFileName: string): Boolean;
const
{$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
CXlsEof: array[0..1] of Word = ($0A, 00);
var
FStream: TFileStream;
I, J: Integer;
begin
Result := False;
FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
try
CXlsBof[4] := 0;
FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
for i := 0 to SG.ColCount - 1 do
for j := 0 to SG.RowCount - 1 do
XlsWriteCellLabel(FStream, I, J, SG.cells[i, j]);
FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
Result := True;
finally
FStream.Free;
end;
end;
procedure TFrmdoviz.BtnExcelClick(Sender: TObject);
begin
if SaveDialog.Execute then
SaveAsExcelFile(sgrid, SaveDialog.FileName);
end;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
EXCEL I AÇAN FONKSİYON VE İÇİNE SATIR SUTUN PARAMETRİK YAZAN FONKSİYON
Kod: Tümünü seç
Function ikOpenExcel(Show : Boolean) : Boolean;
Begin
ikOpenExcel := False;
Excelcreated := False;
{ Try
// If RunningInTheIDE=False then
// Begin
ExExcel := GetActiveOleObject('Excel.Application');
ExcelCreated := True;
If Show Then
ExExcel.Visible := True;
// End;
Except}
Try
ExExcel := CreateOleObject('Excel.Application');
If Show Then
Exexcel.Visible := True;
ExcelCreated := True;
Except
ExcelCreated := False;
ShowMessage('Excel Yüklü Değil ?');
End;
// End;
If ExcelCreated Then
ikOpenExcel := True;
End;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kod: Tümünü seç
///////////////////////////////////
Procedure IkWriteCell(line, col : Integer; txt : String; upper : Boolean);
Begin
Ex_Cell := ExWorkSheet.Cells[line, col];
If upper Then
txt := UpperstrTr(txt);
Ex_Cell.Value := txt;
End;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
STRING GRIDI DBYE YAZMA
Kod: Tümünü seç
Procedure TFrmdoviz.SetValuesToDb(typ:smallint);
Var
Loop : Integer;
Begin
If typ = 0 then DM.TblDoviz.Append else DM.TblDoviz.Edit;
DM.TblDovizDvzTar.AsDateTime :=KurTar;
DM.TblDovizDvzUpdated.AsBoolean :=True;
For Loop:=2 to 13 Do
Begin
DM.TblDoviz.Fields[Loop].AsInteger:=DkurUnit [Loop-1];
End;
For Loop:=14 to 25 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurAlis [Loop-13];
End;
For Loop:=26 to 37 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurSatis [Loop-25];
End;
For Loop:=38 to 49 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurEAlis [Loop-37];
End;
For Loop:=50 to 61 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurESatis [Loop-49];
End;
For Loop:=62 to 73 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurUsdPrt [Loop-61];
End;
For Loop:=74 to 85 Do
Begin
DM.TblDoviz.Fields[Loop].AsFloat:=DkurOthPrt [Loop-73];
End;
DM.TblDoviz.Post;
End;
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog