📄 unitbasic2.pas
字号:
unit UnitBasic2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, Menus, ImgList, ToolWin;
type
//定义线路纪录
//TLineRecord = record
// LineID : string;
// Name : string;
//end;
TFormBasic2 = class(TForm)
ListView: TListView;
PopupMenu: TPopupMenu;
MenuAdd: TMenuItem;
MenuModify: TMenuItem;
MenuDelete: TMenuItem;
MenuSeek: TMenuItem;
MenuRefresh: TMenuItem;
MenuExit: TMenuItem;
ImageList: TImageList;
CoolBar: TCoolBar;
ToolBar: TToolBar;
BtnAdd: TToolButton;
BtnModify: TToolButton;
BtnDel: TToolButton;
BtnSeek: TToolButton;
BtnRefresh: TToolButton;
BtnExit: TToolButton;
procedure BtnAddClick(Sender: TObject);
procedure BtnExitClick(Sender: TObject);
procedure BtnRefreshClick(Sender: TObject);
procedure BtnModifyClick(Sender: TObject);
procedure BtnDeleteClick(Sender: TObject);
procedure BtnSeekClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
Function GetMaxBianTaiID() : Integer;
public
{ Public declarations }
end;
var
FormBasic2 : TFormBasic2;
//ArrayLine : Array of TLineRecord;
implementation
uses
UnitMyModule, UnitBasic1, UnitBianTai, UnitMain, UnitLine, UnitBianTaiSeek;
{$R *.dfm}
Function TFormBasic2.GetMaxBianTaiID() : Integer;
var
MaxBianTaiID : Integer;
begin
MaxBianTaiID := 1;
with MyModule.AdoQuery do
begin//with
//得到 fd_Index 最大序号
Close();
SQL.Clear();
SQL.Add('select isnull(max(fd_BianTaiID),0)+1 from tx_BianTai');
//ShowMessage(SQL.Text);
try
Open();
except
ExecSQL();
end;
if RecordCount <> 0 then
begin
MaxBianTaiID := StrToInt(Trim(Fields[0].AsString));
end; //end if
end; //with
result := MaxBianTaiID;
end;
procedure TFormBasic2.BtnAddClick(Sender: TObject);
var
I : Integer;
LineID : string; //ComboLineID
Status : string; //ComboStatus
AutoSend : string; //ComboAutoSend
DrqDataType : string; //ComboDrqDataType
ListItem : TListItem;
begin
FormBianTai.Caption := '变台基本信息-增加';
FormBianTai.iSetInfo := 0; //不是设置窗口
//设置focus窗口为 TabSheet1
FormBianTai.TabSheet1.Show();
FormBianTai.EditBianTaiID.Text := IntToStr(GetMaxBianTaiID());
FormBianTai.EditName.Text := '';
FormBianTai.EditMaxU.Text := '245';
FormBianTai.EditMinU.Text := '215';
FormBianTai.ComboLineID.Items.Clear();
//向FormBiantTai.ComboLineID中写入线路信息
//SetLength(ArrayLine,FormBasic1.ListView.Items.Count);
FormBianTai.ComboLineID.Text := '0';
For i:=0 to FormBasic1.ListView.Items.Count-1 do
begin
FormBianTai.ComboLineID.Items.Add(FormBasic1.ListView.Items[i].SubItems.Strings[0]);
FormBianTai.ComboLineID.Text := FormBasic1.ListView.Items[i].SubItems.Strings[0];
//ArrayLine[i].LineID := FormBasic1.ListView.Items[i].Caption;
//ArrayLine[i].Name := FormBasic1.ListView.Items[i].SubItems.Strings[0];
end;
if ListView.Items.Count >= 1 then
begin
FormBianTai.ComboLineID.Text := ListView.Items[ListView.Items.Count-1].SubItems.Strings[1];
end;
FormBianTai.PageControl.Pages[0].TabVisible := true;
FormBianTai.PageControl.Pages[1].TabVisible := true;
FormBianTai.PageControl.Pages[2].TabVisible := false;
FormBianTai.ShowModal();
if FormBianTai.iBtnClick = 1 then
begin
with MyModule.AdoQuery do
begin//with
SQL.Clear();
//SQL语句
SQL.Add('INSERT INTO tx_BianTai(fd_BianTaiID, fd_Name, fd_LineID, fd_Type, fd_Cap, fd_Status, fd_Gsm, fd_OnlyCard, fd_Ip, fd_Port, fd_YYID, fd_PD2000, fd_Addr, fd_Memo,');
SQL.Add('fd_DataCycle, fd_AutoSend, fd_DrqCycle, fd_DrqDataType, fd_CT, fd_PT, fd_FreezeDay, fd_FreezeDN, fd_Max_U, fd_Min_U, fd_Max_I, fd_Rated_I)VALUES(');
//0 fd_BianTaiID
SQL.Add(FormBianTai.EditBianTaiID.Text);
SQL.Add(',''');
//1 fd_Name
SQL.Add(FormBianTai.EditName.Text);
SQL.Add(''',');
//SQL.Add(FormBianTai.ComboLineID.Text);
//取得 fd_LineID
LineID := '0';
for i:=0 to ( FormBasic1.ListView.Items.Count - 1 ) do
begin
if FormBasic1.ListView.Items[i].SubItems.Strings[0] = FormBianTai.ComboLineID.Text then
begin
LineID := FormBasic1.ListView.Items[i].Caption;
break;
end;
end;
//2 fd_LineID
SQL.Add(LineID);
SQL.Add(',''');
//3 fd_Type
SQL.Add(FormBianTai.ComboType.Text);
SQL.Add(''',''');
//4 fd_Cap(Capcity)
SQL.Add(FormBianTai.EditCap.Text);
SQL.Add(''',');
if FormBianTai.ComboStatus.Text = '良好' then
Status := '0'
else if FormBianTai.ComboStatus.Text = '故障' then
Status := '1'
else if FormBianTai.ComboStatus.Text = '未运行' then
Status := '2'
else
Status := '1';
//5 fd_Status
SQL.Add(Status);
SQL.Add(',''');
//6 fd_GSM 手机号码
SQL.Add(FormBianTai.EditGSM.Text);
SQL.Add(''',''');
//7 fd_OnlyCard 唯一识别码
SQL.Add(FormBianTai.EditOnlyCard.Text);
SQL.Add(''',''');
//8 fd_IP IP地址
SQL.Add(FormBianTai.EditIP.Text);
SQL.Add(''',''');
//9 fd_Port 端口号(port)
SQL.Add(FormBianTai.EditPort.Text);
SQL.Add(''',''');
//10 fd_YYID
SQL.Add(Trim(FormBianTai.EditYYID.Text));
SQL.Add(''',''');
//11 fd_PD2000
SQL.Add(Trim(FormBianTai.ComboPD2000.Text));
SQL.Add(''',''');
//12 fd_Addr 地址
SQL.Add(FormBianTai.EditAddr.Text);
SQL.Add(''',''');
//13 fd_Momo 备注
SQL.Add(FormBianTai.EditMemo.Text);
SQL.Add(''',');
//14 fd_DataCycle
SQL.Add(FormBianTai.EditDataCycle.Text);
SQL.Add(',');
if FormBianTai.ComboAutoSend.Text = '是' then
AutoSend := '1'
else if FormBianTai.ComboAutoSend.Text = '否' then
AutoSend := '0'
else
AutoSend := '0';
//15 fd_AutoSend
SQL.Add(AutoSend);
SQL.Add(',');
//16 fd_DrqCycle
SQL.Add(FormBianTai.EditDrqCycle.Text);
SQL.Add(',');
if FormBianTai.ComboDrqDataType.Text = '级数' then
DrqDataType := '0'
else if FormBianTai.ComboDrqDataType.Text = '容量' then
DrqDataType := '1'
else
DrqDataType := '0';
//17 fd_DrqDataType
SQL.Add(DrqDataType);
SQL.Add(',''');
//18 fd_CT
SQL.Add(FormBianTai.EditCT.Text);
SQL.Add(''',''');
//19 fd_PT
SQL.Add(FormBianTai.EditPT.Text);
SQL.Add(''',''');
//20 fd_FreezeDay 冻结时间(日时)
SQL.Add(FormBianTai.EditFreezeDay.Text + '日' + FormBianTai.EditFreezeHour.Text + '时');
SQL.Add(''',''');
//21 fd_FreezeDN 电能时刻(小时)默认0时
SQL.Add(FormBianTai.EditFreezeDN.Text);
SQL.Add(''',');
//22 fd_MaxU 最大电压
SQL.Add(FormBianTai.EditMaxU.Text);
SQL.Add(',');
//23 fd_MinU 最小电压
SQL.Add(FormBianTai.EditMinU.Text);
SQL.Add(',');
//24 fd_MaxI 最大电流
SQL.Add(FormBianTai.EditMaxI.Text);
SQL.Add(',');
//25 fd_Rated_I 额定电流
SQL.Add(FormBianTai.EditRatedI.Text);
SQL.Add(')');
//26 fd_RefTime 更新时间
//ShowMessage(SQL.Text);
try
ExecSQL();
ListItem := ListView.Items.Add();
//0 fd_BianTaiID
ListItem.Caption := FormBianTai.EditBianTaiID.Text;
//1 fd_Name
ListItem.SubItems.Add(FormBianTai.EditName.Text);
//2 fd_LineID
ListItem.SubItems.Add(FormBianTai.ComboLineID.Text);
//3 fd_Type
ListItem.SubItems.Add(FormBianTai.ComboType.Text);
//4 fd_Cap(Capcity)
ListItem.SubItems.Add(FormBianTai.EditCap.Text);
//5 fd_Status
ListItem.SubItems.Add(FormBianTai.ComboStatus.Text);
//6 fd_GSM 手机号码
ListItem.SubItems.Add(FormBianTai.EditGSM.Text);
//7 fd_OnlyCard 唯一识别码
ListItem.SubItems.Add(FormBianTai.EditOnlyCard.Text);
//8 fd_IP IP地址
ListItem.SubItems.Add(FormBianTai.EditIP.Text);
//9 fd_Port 端口号(port)
ListItem.SubItems.Add(FormBianTai.EditPort.Text);
//10 fd_YYID
ListItem.SubItems.Add(FormBianTai.EditYYID.Text);
//11 fd_PD2000
ListItem.SubItems.Add(FormBianTai.ComboPD2000.Text);
//12 fd_Addr 地址
ListItem.SubItems.Add(FormBianTai.EditAddr.Text);
//13 fd_Momo 备注
ListItem.SubItems.Add(FormBianTai.EditMemo.Text);
//14 fd_DataCycle
ListItem.SubItems.Add(FormBianTai.EditDataCycle.Text);
//15 fd_AutoSend
ListItem.SubItems.Add(FormBianTai.ComboAutoSend.Text);
//16 fd_DrqCycle
ListItem.SubItems.Add(FormBianTai.EditDataCycle.Text);
//17 fd_DrqDataType
ListItem.SubItems.Add(FormBianTai.ComboDrqDataType.Text);
//18 fd_CT
ListItem.SubItems.Add(FormBianTai.EditCT.Text);
//19 fd_PT
ListItem.SubItems.Add(FormBianTai.EditPT.Text);
//20 fd_FreezeDay 冻结时间(日时)
ListItem.SubItems.Add(FormBianTai.EditFreezeDay.Text+'日' + FormBianTai.EditFreezeHour.Text + '时');
//21 fd_FreezeDN 电能时刻(小时)默认0时
ListItem.SubItems.Add(FormBianTai.EditFreezeDN.Text);
//22 fd_MaxU 最大电压
ListItem.SubItems.Add(FormBianTai.EditMaxU.Text);
//23 fd_MinU 最小电压
ListItem.SubItems.Add(FormBianTai.EditMinU.Text);
//24 fd_MaxI 最大电流
ListItem.SubItems.Add(FormBianTai.EditMaxI.Text);
//25 fd_RatedI 二次额定电流
ListItem.SubItems.Add(FormBianTai.EditRatedI.Text);
Finally
end; //finally
end; //with
end; //if
end;
{
flat ListView Header
平滑效果的 ListView
procedure TFormBasic2.FormShow(Sender: TObject);
const
LVM_GETHEADER = $1000 + 31;
var
hHeader: THandle;
style: dWord;
begin
Flat ListView Header
hHeader := SendMessage(ListView.Handle, LVM_GETHEADER, 0, 0);
//style := GetWindowLong(hHeader, GWL_STYLE);
//style := style xor $2;
style := 1;
SetWindowLong(hHeader, GWL_STYLE, style);
SetWindowPos(ListView.Handle, Self.Handle, 0, 0, 0, 0,SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or SWP_DRAWFRAME);
Self.Width := FormMain.Panel.Width;
self.Height := FormMain.Panel.Height;
self.ListView.Width := FormMain.Panel.Width;
end;
}
procedure TFormBasic2.BtnExitClick(Sender: TObject);
begin
self.Hide();
end;
procedure TFormBasic2.BtnRefreshClick(Sender: TObject);
begin
ListView.Clear();
FormMain.LoadTableBianTai('SELECT * FROM tx_BianTai ORDER BY fd_BianTaiID');
//FormMain.LoadTableBianTai('SELECT * FROM tx_BianTai Where fd_Name like ''%33%''');
end;
procedure TFormBasic2.BtnModifyClick(Sender: TObject);
var
i : Integer;
iPos1 : Integer;
iPos2 : Integer;
LineId : string;
Status : string;
AutoSend : string;
DrqDataType : string;
FreezeDay : string;
FreezeHour : string;
begin
if ListView.Selected <> nil then
begin
FormBianTai.Caption := '台区基本信息-修改';
FormBianTai.iSetInfo := 0; //不是设置窗口
FormBianTai.ComboLineID.Items.Clear();
//向FormBiantTai.ComboLineID中写入线路信息
//SetLength(ArrayLine,FormBasic1.ListView.Items.Count);
For i:=0 to FormBasic1.ListView.Items.Count-1 do
begin
FormBianTai.ComboLineID.Items.Add(FormBasic1.ListView.Items[i].SubItems.Strings[0]);
//ArrayLine[i].LineID := FormBasic1.ListView.Items[i].Caption;
//ArrayLine[i].Name := FormBasic1.ListView.Items[i].SubItems.Strings[0];
end;
//0 fd_BianTaiID
FormBianTai.EditBianTaiID.Text := ListView.Selected.Caption;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -