2.3 ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠΎΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠΎΡΠΌΡ Enabled ΡΠ°Π²Π½ΠΎΠ΅ False. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΡΡΠ°Π½Π΅Ρ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π½Π΅ΡΡΠΈ Π² Π½Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½ΠΈΠΆΠ΅: ΠΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
2.3 ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΄Π΅Π»ΡΠ»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΈ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ ΠΌΠΎΠ³ Π±Π΅Π· ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΡΡΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π‘Π£ΠΠ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠΎΡΠΌΡ. ΠΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π½ΠΈΡΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄:
Π ΠΈΡ. 2.6 Π€ΠΎΡΠΌΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΡΡΠ°
2.4 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΡΠΎΡΠΌΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΠ Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΎΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ StringGrid.
ΠΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΊ ΡΠ°ΠΌΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ SQLite3. pas, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ SQLite3.dll. ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ Delphi 7 ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° SQLite.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ SQLite3 ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΠ Π½Π° ΡΠ·ΡΠΊΠ΅ SQL. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Stringgrid ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΎΡΠΌΡ).
procedure TfrmMain. FormCreate (Sender: TObject);
begin.
strngrd.ColCount:=4;
strngrd.Cells[0,0]: ='β';
strngrd.Cells[1,0]: ='Π€.Π.Π.';
strngrd.Cells[2,0]: ='ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΡ';
strngrd.Cells[3,0]: ='ΠΡΠ΄Π΅Π»';
strngrd.ColWidths[0]: =30;
strngrd.ColWidths[1]: =200;
strngrd.ColWidths[2]: =250;
strngrd.ColWidths[3]: =230;
sldb := TSQLiteDatabase. Create ('czn.db');
try.
if not sldb. TableExists ('po') then.
begin.
ShowMessage ('ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π°. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ.');
Application.Terminate;
end;
except.
ShowMessage ('ΠΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ Π±Π°Π·Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.');
Application.Terminate;
exit;
end;
UpdatePO;
end;
ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ΅ΡΡΠ°, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π²ΡΠ½Π΅ΡΠ΅Π½ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ UpdatePo, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΠ.
procedure TfrmMain. UpdatePO ();
var.
sltb:TSQLiteTable;
begin.
sltb := sldb. GetTable ('SELECT name FROM po');
try.
cbbBezRab.Clear;
while not sltb. EOF do.
begin.
cbbBezRab.AddItem (UTF8Decode (sltb.FieldAsString (0)), self);
sltb.Next;
end;
finally.
sltb.Free;
end;
end;
Π Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ· Π½ΠΈΡ :
procedure TfrmGr. UpdateTable ();
var.
sltb, sltb2: TSQLiteTable;
i:integer;
begin.
for i:=strngrd.FixedRows to strngrd. RowCount-1 do.
strngrd.Rows[i]. Clear;
sltb := sldb. GetTable ('SELECT * FROM po');
try.
strngrd.RowCount := sltb. Count+1;
strngrd.ColCount := sltb. ColCount;
i := strngrd. FixedRows;
while not sltb. EOF do.
begin.
strngrd.Cells[0,i] := UTF8Decode (sltb.FieldAsString (0));
strngrd.Cells[1,i] := UTF8Decode (sltb.FieldAsString (1));
strngrd.Cells[2,i] := UTF8Decode (sltb.FieldAsString (2));
strngrd.Cells[3,i] := UTF8Decode (sltb.FieldAsString (3));
strngrd.Cells[4,i] := UTF8Decode (sltb.FieldAsString (4));
strngrd.Cells[5,i] := UTF8Decode (sltb.FieldAsString (5));
strngrd.Cells[6,i] := UTF8Decode (sltb.FieldAsString (6));
sltb.Next;
i:=i+1;
end;
finally.
sltb.Free;
end;
end;
procedure TfrmDol. UpdateTable ();
var.
sltb, sltb2: TSQLiteTable;
i:integer;
begin.
for i:=strngrd.FixedRows to strngrd. RowCount-1 do.
strngrd.Rows[i]. Clear;
sltb := sldb. GetTable ('SELECT * FROM sotr');
try.
strngrd.RowCount := sltb. Count+1;
strngrd.ColCount := sltb. ColCount;
i := strngrd. FixedRows;
while not sltb. EOF do.
begin.
strngrd.Cells[0,i] := UTF8Decode (sltb.FieldAsString (0));
strngrd.Cells[1,i] := UTF8Decode (sltb.FieldAsString (1));
strngrd.Cells[2,i] := UTF8Decode (sltb.FieldAsString (2));
strngrd.Cells[3,i] := UTF8Decode (sltb.FieldAsString (3));
sltb2:=sldb.GetTable ('SELECT name FROM po WHERE id='+UTF8Decode (sltb.FieldAsString (4)));
strngrd.Cells[4,i]: = UTF8Decode (sltb2.FieldAsString (0));
sltb2.Free;
sltb.Next;
i:=i+1;
end;
finally.
sltb.Free;
end;
UpdateOrg;
end;
procedure TfrmDol. UpdateOrg ();
var.
sltb:TSQLiteTable;
begin.
sltb := sldb. GetTable ('SELECT name FROM po');
try.
cbbEdPo.Clear;
while not sltb. EOF do.
begin.
cbbEdPo.AddItem (UTF8Decode (sltb.FieldAsString (0)), Self);
sltb.Next;
end;
finally.
sltb.Free;
end;
end;
ΠΡΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΌΠ°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΡΠΎΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠΎΡΠΌΡ Enabled ΡΠ°Π²Π½ΠΎΠ΅ False. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΠΎΡΠΌΠ° ΡΡΠ°Π½Π΅Ρ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π½Π΅ΡΡΠΈ Π² Π½Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ² ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ. ΠΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½ΠΈΠΆΠ΅:
procedure TfrmMain. N3Click (Sender: TObject);
begin.
frmOrg.show;
frmMain.Enabled:=false;
end;
ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π‘Π£ΠΠ. ΠΠ°ΠΏΡΠΎΡΡ, Π²Π½ΠΎΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ExecSQL, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊ ΡΠΆΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡΡ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠΈΠΏΠ° TSQLiteDatabase Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ SQL Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (ΡΡΠΏΠ΅ΡΠ½ΡΠΉ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
//ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅:
procedure TfrmGr. btnAddClick (Sender: TObject);
begin.
sldb.ExecSQL ('INSERT INTO po (name, desc, price, dev, datebuy, dateend) VALUES («'+AnsiToUtf8(edtName.text)+.
'" ," '+AnsiToUtf8(edtDesc.text)+.
'" ," '+AnsiToUtf8(edtPrice.text)+.
'" ," '+AnsiToUtf8(edtDev.text)+.
'" ," '+AnsiToUtf8(edtBuy.text)+.
'" ," '+AnsiToUtf8(edtEnd.text)+.
'")');
edtName.Text:='';
edtDesc.Text:='';
edtPrice.Text:='';
edtDev.Text:='';
edtBuy.Text:='';
edtEnd.Text:='';
ShowMessage ('ΠΠΎΡΠΎΠ²ΠΎ!');
UpdateTable;
end;
//ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
procedure TfrmGr. btnSaveClick (Sender: TObject);
begin.
if idn='' then.
ShowMessage ('Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ!').
else.
begin.
sldb.ExecSQL ('UPDATE po SET name="'+AnsiToUtf8(edtName.text)+.
'", desc="'+AnsiToUtf8(edtDesc.text)+.
'", price="'+AnsiToUtf8(edtPrice.text)+.
'", dev="'+AnsiToUtf8(edtDev.text)+.
'", datebuy="'+AnsiToUtf8(edtBuy.text)+.
'", dateend="'+AnsiToUtf8(edtEnd.text)+.
'" WHERE id='+idn);
UpdateTable;
end;
end;
//Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅:
procedure TfrmGr. btnDelClick (Sender: TObject);
begin.
if idn='' then.
ShowMessage ('Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ!').
else.
begin.
sldb.ExecSQL ('DELETE FROM po WHERE id='+idn);
UpdateTable;
end;
end;
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΡΠΌ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΡΡΡΡ.
ΠΡΡΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ ΠΎΡΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π΄Π²ΡΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ:
ΠΎΡΡΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΈ ΠΎΠ±ΡΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ² Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ;
ΠΎΡΡΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², Π½Π°ΠΊΠ»Π΅Π΅ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΎΠ² Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠΎΡΠΌΠ°. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΎΡΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΌ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ (ΠΈΠ»ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΡΠ°ΠΉΠ»). ΠΠ»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΡΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ΅Π΄Ρ Delphi 7 ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Printers.pas. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠ΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎ Π±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΠΎΡΡΡΡ. ΠΡΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ±ΡΠ°Π½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠ½ΡΠ΅Ρ, ΠΎΡΡΡΡ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ».
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ°ΡΠΈ ΠΎΡΡΡΡΠ°:
procedure PrintGrid (sGrid: TStringGrid; sTitle: string);
var.
X1, X2: Integer;
Y1, Y2: Integer;
TmpI: Integer;
F: Integer;
TR: TRect;
begin.
Printer.Title := sTitle;
Printer.BeginDoc;
Printer.Canvas.Pen.Color := 0;
Printer.Canvas.Font.Name := 'Times New Roman';
Printer.Canvas.Font.Size := 12;
Printer.Canvas.Font.Style := [fsBold, fsUnderline];
Printer.Canvas.TextOut (0, 100, Printer. Title);
for F := 1 to sGrid. ColCount — 1 do.
begin.
X1 := 0;
for TmpI := 1 to (F — 1) do.
X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
Y1 := 300;
X2 := 0;
for TmpI := 1 to F do.
X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
Y2 := 450;
TR := Rect (X1, Y1, X2 — 30, Y2);
Printer.Canvas.Font.Style := [fsBold];
Printer.Canvas.Font.Size := 7;
Printer.Canvas.TextRect (TR, X1 + 50, 350, sGrid. Cells[F, 0]);
Printer.Canvas.Font.Style := [];
for TmpI := 1 to sGrid. RowCount — 1 do.
begin.
Y1 := 150 * TmpI + 300;
Y2 := 150 * (TmpI + 1) + 300;
TR := Rect (X1, Y1, X2 — 30, Y2);
Printer.Canvas.TextRect (TR, X1 + 50, Y1 + 50, sGrid. Cells[F, TmpI]);
end;
end;
Printer.EndDoc;
end;
ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΡΡΡΡΠ° Π² ΡΠ°ΠΉΠ» ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: