📄 c_component.~pas
字号:
procedure TForm1.c_kindChange(Sender: TObject);
var
sql_str: string;
begin
selectcombox(c_kind);
sql_str := format('select * from child_kind where para_kind_id=%d order by child_kind_order_id', [dc_kind[c_kind.tag]]);
initcombobox(c_child_kind, dc_child_kind, sql_str, 'id', 'child_kind_name');
end;
procedure TForm1.c_child_kindChange(Sender: TObject);
begin
selectcombox(c_child_kind);
end;
procedure TForm1.Button6Click(Sender: TObject);
var
sql_str: string;
begin
if e_name.Tag = 0 then
begin
sql_str := format('insert into component(name,kind_id,child_kind_id,encap_kind_id,sheet,[value],[number],price) values(''%s'',%d,%d,%d,''%s'',''%s'',%d,%f)', [e_name.text, dc_kind[c_kind.tag], dc_child_kind[c_child_kind.tag], dc_encap[c_encap.tag], e_sheet.text, e_value.text, strtoint(e_number.text), StrToCurr(e_price.text)]);
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
ExecSQL;
ado_component.close;
ado_component.Open;
ado_component.Locate('name', e_name.Text, [loCaseInsensitive]);
end;
gb2.Visible := false;
end;
if e_name.Tag > 0 then
begin
sql_str := format('update component set name=''%s'',kind_id=%d,child_kind_id=%d,encap_kind_id=%d,sheet=''%s'',[value]=''%s'',[number]=%d,price=%f where id=%d', [e_name.text, dc_kind[c_kind.tag], dc_child_kind[c_child_kind.tag], dc_encap[c_encap.tag], e_sheet.text, e_value.text, strtoint(e_number.text), StrToCurr(e_price.text), e_name.tag]);
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
ExecSQL;
ado_component.close;
ado_component.Open;
ado_component.Locate('name', e_name.Text, [loCaseInsensitive]);
end;
gb2.Visible := false;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
var
sql_str: string;
begin
gb2.Visible := true;
e_name.Tag := ado_component.fieldbyname('id').AsInteger;
e_name.text := ado_component.fieldbyname('name').AsString;
e_sheet.text := ado_component.fieldbyname('sheet').AsString;
e_value.text := ado_component.fieldbyname('value').AsString;
e_number.text := ado_component.fieldbyname('number').AsString;
e_price.text := ado_component.fieldbyname('price').AsString;
initcombobox(c_kind, dc_kind, 'select * from kind order by kind_order_id', 'id', 'kind_name');
unselectcombox(c_kind, dc_kind[ado_component.fieldbyname('kind_id').AsInteger]);
selectcombox(c_kind);
sql_str := format('select * from child_kind where para_kind_id=%d order by child_kind_order_id', [dc_kind[c_kind.tag]]);
initcombobox(c_child_kind, dc_child_kind, sql_str, 'id', 'child_kind_name');
unselectcombox(c_child_kind, dc_child_kind[ado_component.fieldbyname('child_kind_id').AsInteger]);
selectcombox(c_child_kind);
initcombobox(c_encap, dc_encap, 'select * from encap order by encap_order_id', 'id', 'encap_name');
unselectcombox(c_encap, dc_encap[ado_component.fieldbyname('encap_kind_id').AsInteger]);
selectcombox(c_encap);
end;
procedure TForm1.Button9Click(Sender: TObject);
var
sql_str: string;
bk: TBookmark;
begin
sql_str := format('delete from component where id=%d', [ado_component.fieldbyname('id').asinteger]);
ado_component.Prior;
bk := ado_component.GetBookmark;
with ado_temp do
begin
close;
sql.clear;
sql.add(sql_str);
ExecSQL;
ado_component.close;
ado_component.Open;
end;
if ado_component.RecordCount > 0 then
begin
ado_component.GotoBookmark(bk);
end;
ado_component.FreeBookmark(bk);
end;
procedure TForm1.c_encapChange(Sender: TObject);
begin
selectcombox(c_encap);
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
gb2.Visible := false;
end;
procedure TForm1.aa(sender: tobject);
var
id: integer;
begin
if (sender as TMenuItem).Caption = '升序' then
begin
with ado_component do
begin
id := fieldbyname('id').asinteger;
close;
sql.Strings[5] := ' [' + DBGrid1.Columns[(sender as TMenuItem).tag].FieldName + '] ';
sql.Strings[6] := ' asc ';
open;
Locate('id', id, [loCaseInsensitive]);
end;
exit;
end;
if (sender as TMenuItem).Caption = '降序' then
begin
with ado_component do
begin
id := fieldbyname('id').asinteger;
close;
sql.Strings[5] := ' [' + DBGrid1.Columns[(sender as TMenuItem).tag].FieldName + '] ';
sql.Strings[6] := ' desc ';
open;
Locate('id', id, [loCaseInsensitive]);
end;
exit;
end;
begin
with ado_component do
begin
id := fieldbyname('id').asinteger;
close;
if DBGrid1.Columns[(sender as TMenuItem).tag].Field.DataType in [ftInteger, ftFloat, ftCurrency] then
sql.Strings[3] := ' and [' + DBGrid1.Columns[(sender as TMenuItem).tag].FieldName + '] = ' + (sender as TMenuItem).Caption
else
sql.Strings[3] := ' and [' + DBGrid1.Columns[(sender as TMenuItem).tag].FieldName + '] = ''' + (sender as TMenuItem).Caption + '''';
open;
Locate('id', id, [loCaseInsensitive]);
end;
exit;
end;
end;
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
newitem: tmenuitem;
sql_str: string;
begin
if not ado_component.Active then
exit;
newitem := tmenuitem.create(self);
pop1.Items.Clear;
newitem.Caption := '升序';
newitem.Tag := column.Index;
pop1.Items.add(newitem);
pop1.Items[pop1.Items.Count - 1].OnClick := aa;
newitem := tmenuitem.create(self);
newitem.Caption := '降序';
newitem.Tag := column.Index;
pop1.Items.add(newitem);
pop1.Items[pop1.Items.Count - 1].OnClick := aa;
with ado_temp do
begin
close;
sql.clear;
sql.text := ado_component.SQL.Text;
sql.Strings[0] := 'select distinct ' + column.FieldName + ' from v_component ';
sql.strings[5] := '[' + column.FieldName + ']';
open;
while not eof do
begin
newitem := tmenuitem.create(self);
newitem.Caption := ado_temp.fieldbyname(column.FieldName).asstring;
newitem.Tag := column.Index;
pop1.Items.add(newitem);
pop1.Items[pop1.items.Count - 1].OnClick := aa;
next;
end;
end;
pop1.Popup(mouse.CursorPos.X, mouse.CursorPos.y);
// column.Field.DisplayText;
// dbgrid1.Columns[Column.Index].PopupMenu:=pop1;
// dbgrid1.PopupMenu := pop1;
// showmessage(sender.column.FieldName);
// showmessage(column.Field.DisplayText);
end;
procedure TForm1.FormActivate(Sender: TObject);
var
connet_str: string;
begin
connet_str := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' + ExtractFilePath(ParamStr(0)) + 'component.mdb;Mode=Share Deny None;Extended Properties="";';
connet_str := connet_str + 'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking ';
connet_str := connet_str + 'Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System ';
connet_str := connet_str + 'Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
d.ado1.ConnectionString := connet_str;
with ado_component do
begin
sql.clear;
sql.add('select * from v_component ');
sql.add(' where [name] like ');
sql.add(format('''%%%s%%''', [edit1.text]));
sql.add(' and [kind_name] = ');
sql.add(' order by ');
sql.add(' [name] ');
sql.add(' asc');
end;
if ado_component.Active then
begin
button2.Enabled := true;
button3.Enabled := true;
button4.Enabled := true;
button5.Enabled := true;
end
else
begin
button2.Enabled := false;
button3.Enabled := false;
button4.Enabled := false;
button5.Enabled := false;
end;
end;
procedure TForm1.ado_componentAfterOpen(DataSet: TDataSet);
begin
if ado_component.RecordCount > 0 then
begin
button2.Enabled := true;
button3.Enabled := true;
button4.Enabled := true;
button5.Enabled := true;
end
else
begin
button2.Enabled := false;
button3.Enabled := false;
button4.Enabled := false;
button5.Enabled := false;
end;
end;
procedure TForm1.Button11Click(Sender: TObject);
var
form2: tform2;
begin
form2 := tform2.create(self);
form2.showmodal;
form2.free;
end;
procedure TForm1.ado_memoAfterOpen(DataSet: TDataSet);
begin
if ado_memo.RecordCount > 0 then
begin
button4.Enabled := true;
button5.Enabled := true;
end
else
begin
button4.Enabled := false;
button5.Enabled := false;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -