问题1:已经回答过,响应WM_NCHITTEST消息。问题2:Position := poDesktopCenter;
解决方案 »
- 类似游戏登陆器那种半透明异形窗体是怎么实现的
- 请教一个问题,关于webbrowser和idhttp
- 100分求助(简单问题)
- 一个服务程序读取INI文件,并且创建新窗体,新窗体如何取得服务程序的INI数据?在线等待
- 关于如何在排序dbgrid是显示升序将序的三角符号
- 高手请进,一个奥林匹克的运算优化----------------在线等。。。
- 怎么把接口中的事件引出来?InterfaceConnect完后该怎么做?
- 如何将数据库中的数据生成html文件
- 请进,一个关于数据库设计的问题!很简单,送分!在线等候
- delphi for php 现在支持中文了吗?
- 一个Table是动态指定它的tablename。而与它相连的dbgrid就必须用代码来选择columns,请问如何实现?
- 有什么数据类型可以将大于255个字符串赋值
我感覺是比較方便的,哈哈哈!!!!
過程
unit TOOLS;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms,StdCtrls;
Procedure Autocenter(form:Tform;Ftop:integer=0);
Function Editisnull(EDit:Tedit):boolean;
Function Strisnull(STr:String):boolean;
Function Left(Const Str:String;i:integer):String;
Function right(Const Str:String;i:integer):String;
Procedure CON_VIEW(ii:integer) ; //控件顯示過程implementationuses main;Procedure Autocenter(form:Tform;Ftop:integer=0);
begin
with form do
begin
left:=(screen.Width-width) div 2 ;
if Ftop>0 then
top:=(screen.height-height) div 2
else
top:=Ftop ;
end;
end;Function Editisnull(EDit:Tedit):boolean;
begin
IF length(TRIM(edit.text))=0 then
Result:=True Else
Result:=False
end;Function Strisnull(STR:String):boolean;
begin
If length(TRim(STR))=0 then
Result:=True Else
Result:=False
end ;Function Left(Const Str:String;i:integer):String;
begin
Result:=Copy(Trim(Str),1,i) ;
end;Procedure CON_VIEW(ii:integer);
begin
// F_main.LV1 各單位員工列表LV1
// F_main.Panel7 員工基本資料處理
// F_main.Lv2 上月投保人名單
case ii of
0: begin //所有員工列表
F_main.LV1.Visible:=True ;
F_main.Panel7.Visible:=False ;
end ;
1: begin //員工基本資料處理
F_main.LV1.Visible:=False ;
F_main.Panel7.Visible:=True ;
end ;
end;
end ;Function right(Const Str:String;i:integer):String;
begin
Result:=Copy(Trim(Str),length(Trim(Str))-i+1,i) ;
end;
end.主程序
unit MAIN;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, StdCtrls, Buttons, ExtCtrls, Menus, inifiles, ActnList,
StdActns, ImgList, fcClearPanel, fcButtonGroup, fcOutlookBar, fcButton,
fcImgBtn, fcShapeBtn, TFlatEditUnit, Mask, Db, DBTables, Grids, DBGrids,
fcStatusBar, shellapi, TFlatSpeedButtonUnit, TFlatRadioButtonUnit, jpeg,
TFlatComboBoxUnit;
type
PBase = ^Base;
Base = record
Pemp_id: string; //工號
Pname: string; //姓名
PSex: string; //性別
Pdept: string; //部門
Piden: string; //身份証號
Pduty: string; //職稱
PPho: string;
end;type
TF_main = class(TForm)
MainMenu1: TMainMenu;
F1: TMenuItem;
E1: TMenuItem;
R1: TMenuItem;
V1: TMenuItem;
H1: TMenuItem;
F2: TMenuItem;
O1: TMenuItem;
N1: TMenuItem;
P1: TMenuItem;
P2: TMenuItem;
N2: TMenuItem;
X1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
F3: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
C1: TMenuItem;
E2: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
Al1: TActionList;
EditCopy1: TEditCopy;
EditCut1: TEditCut;
EditDelete1: TEditDelete;
EditPaste1: TEditPaste;
EditSelectAll1: TEditSelectAll;
EditUndo1: TEditUndo;
U1: TMenuItem;
N18: TMenuItem;
IL1: TImageList;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
Panel4: TPanel;
SBT1: TSpeedButton;
SBT4: TSpeedButton;
SBT5: TSpeedButton;
Bevel1: TBevel;
DataSource1: TDataSource;
DEPT1: TQuery;
Table1: TTable;
OB1: TfcOutlookBar;
OSB1: TfcShapeBtn;
TV1: TTreeView;
SB1: TfcStatusBar;
D_MXB: TQuery;
Panel5: TPanel;
Splitter2: TSplitter;
Panel6: TPanel;
Image1: TImage;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
FlatSpeedButton1: TFlatSpeedButton;
PopupMenu1: TPopupMenu;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
LV1: TListView;
L_G_IMG: TImageList;
L_M_IMG: TImageList;
Panel7: TPanel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
Bevel2: TBevel;
Database1: TDatabase;
Image2: TImage;
Label8: TLabel;
FE2: TFlatEdit;
FE3: TFlatEdit;
FE4: TFlatEdit;
RD1: TFlatRadioButton;
rd2: TFlatRadioButton;
LB1: TLabel;
FE5: TFlatEdit;
Label11: TLabel;
D1: TMenuItem;
Label12: TLabel;
Bevel3: TBevel;
SBT2: TSpeedButton;
Panel9: TPanel;
PICT1: TImage;
Label13: TLabel;
CB1: TFlatComboBox;
FE6: TFlatEdit;
OSB2: TfcShapeBtn;
OSB3: TfcShapeBtn;
TV2: TTreeView;
TV3: TTreeView;
SBT7: TSpeedButton;
Bevel4: TBevel;
SBT8: TSpeedButton;
Query1: TQuery;
Label14: TLabel;
Tv2_Q1: TQuery;
TV2_Q2: TQuery;
LV2: TListView;
SB_1: TSpeedButton;
SB_4: TSpeedButton;
SB_3: TSpeedButton;
SB_2: TSpeedButton;
T_GLF_GS: TTable;
T_GLF_ST: TTable;
GLF_II: TTable;
SpeedButton1: TSpeedButton;
Bevel5: TBevel;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton; procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure X1Click(Sender: TObject);
procedure TV1Change(Sender: TObject; Node: TTreeNode);
procedure OSB2Enter(Sender: TObject);
procedure OSB1Click(Sender: TObject);
procedure OSB2Click(Sender: TObject);
procedure OSB3Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure E2Click(Sender: TObject);
procedure FlatSpeedButton1Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure SB_1Click(Sender: TObject);
procedure SB_2Click(Sender: TObject);
procedure SB_3Click(Sender: TObject);
procedure SB_4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure LV1DblClick(Sender: TObject);
procedure Panel8Click(Sender: TObject);
procedure FE4Change(Sender: TObject);
procedure FE3Change(Sender: TObject);
procedure LV1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure FE5Change(Sender: TObject);
procedure FE5Exit(Sender: TObject);
procedure TV1Expanded(Sender: TObject; Node: TTreeNode);
procedure SBT5Click(Sender: TObject);
procedure SBT4Click(Sender: TObject);
procedure SBT2Click(Sender: TObject);
procedure FE1Exit(Sender: TObject);
procedure CB1Change(Sender: TObject);
procedure H1Click(Sender: TObject);
procedure TV2Change(Sender: TObject; Node: TTreeNode);
procedure OB1Change(ButtonGroup: TfcCustomButtonGroup; OldSelected,
Selected: TfcButtonGroupItem);
procedure LV2Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure SBT7Click(Sender: TObject);
procedure TV2Expanded(Sender: TObject; Node: TTreeNode);
procedure SpeedButton2Click(Sender: TObject);
procedure SBT8Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
private
procedure LoadNodes; //顯示TV1的數據分布
procedure LoadNodes2; //顯示TV2的數據分布
procedure Shownodes; //顯示狀態欄
{ Private declarations }
public { Public declarations }
end;var
F_main: TF_main;
APP: TApplication;
Company: string;
Datapath: string;
Pictpath: string;
INIF: TINIFILE;
Tips: integer;
LVB1: integer; //當前Listview列表情況記錄
TV1EXIT: integer;
LV1_changer: integer; //列表更改 LV1
T_Parent: string; //樹狀列表父類
Datamonth: string;
Datamonth1: string;
Sinit: string;
const Msg1 = '系統提示';implementation
uses tools, Reg, WELCOME, passwd, INIT, print, SQL;{$R *.DFM}procedure TF_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageBox(Application.handle, chr(13) + '請問您是否確認要退出工傷保險系統?' +
chr(13) + chr(13), Msg1, Mb_YESNO + mb_iconquestion) = IDNO then
abort else
begin
TABle1.close;
DEpt1.Active := False;
D_MXB.Active := False;
T_Glf_GS.Active:=False;
T_Glf_St.Active:=False;
Database1.Connected := False;
end;
end;procedure TF_main.LoadNodes; //第一個目錄樹
var TN: TTreeNode;
VtN: TTreenode;
WS, WS1: string;
P_Pbase: Pbase;
Img: integer;
begin
Dept1.First;
while not DEPT1.Eof do
begin
tv1.Update;
WS := DEpt1.fieLdbyname('Pdept').asstring;
Tn := Tv1.Items.Add(nil, Ws);
Tn.SelectedIndex := 28;
D_MXB.Close;
D_MXB.ParamByName('Value1').asstring := WS;
D_MXB.Open;
D_MXB.First;
while not D_MXB.eof do
begin
NEW(P_Pbase);
WS1 := D_MXB.fieldbyname('Pname').asstring;
P_Pbase^.Pemp_id := D_MXB.fieldbyname('PEmp_id').asstring;
P_Pbase^.Pdept := D_MXB.fieldbyname('Pdept').asstring;
P_Pbase^.Piden := D_MXB.fieldbyname('Piden').asstring;
P_Pbase^.Pduty := D_MXB.fieldbyname('Pduty').asstring;
P_Pbase^.Pname := D_MXB.fieldbyname('Pname').asstring;
P_Pbase^.PSex := D_MXB.fieldbyname('PSex').asstring;
P_Pbase^.PPho := D_MXB.fieldbyname('PPho').asstring;
if (Right(P_Pbase^.Piden, 1) > '9') or (Right(P_Pbase^.Piden, 1) < '0') then
img := 26 else
if odd(STRTOINT(Right(P_Pbase^.Piden, 1))) then
img := 24 else
img := 25;
VTn := TV1.Items.AddChildObject(TN, WS1, P_PBase);
Vtn.ImageIndex := img;
VTn.SelectedIndex := 27;
D_MXB.Next;
end;
DEPT1.Next;
end;
end;procedure TF_main.LoadNodes2; //第二個目錄樹
var TN: TTreeNode;
VtN: TTreenode;
WS, WS1: string;
P_Pbase: Pbase;
Img: integer;
begin
TV2_Q1.ParamByName('Value1').asstring := Datamonth;
TV2_Q1.Open;
if TV2_Q1.RecordCount < 1 then
Exit;
TV2_Q1.First;
while not TV2_Q1.Eof do
begin
WS := TV2_Q1.fieldbyname('GS05').Asstring;
TN := TV2.Items.Add(nil, WS);
Tn.SelectedIndex := 28;
TV2_Q2.Active := False;
TV2_Q2.ParamByName('Value1').asstring := WS;
TV2_Q2.ParamByName('Value2').asstring := DataMonth;
TV2_Q2.open;
TV2_Q2.First;
while not TV2_Q2.eof do
begin
NEW(P_Pbase);
WS1 := TV2_Q2.fieldbyname('GS02').asstring;
P_Pbase^.Pemp_id := TV2_Q2.fieldbyname('GS01').asstring;
P_Pbase^.Pdept := TV2_Q2.fieldbyname('GS05').asstring;
P_Pbase^.Piden := TV2_Q2.fieldbyname('GS04').asstring;
P_Pbase^.Pduty := TV2_Q2.fieldbyname('GS06').asstring;
P_Pbase^.Pname := TV2_Q2.fieldbyname('GS02').asstring;
if TV2_Q2.fieldbyname('GS03').asstring = '1' then
begin
P_Pbase^.PSex := '男';
img := 24;
end else
begin
P_Pbase^.PSex := '女';
img := 25;
end;
VTn := TV2.Items.AddChildObject(TN, WS1, P_PBase);
Vtn.ImageIndex := img;
VTn.SelectedIndex := 27;
TV2_Q2.Next;
end;
TV2_Q1.Next;
end;
end;
procedure TF_main.FormShow(Sender: TObject);
var wdm: string;
I: integer;
begin
Shortdateformat := 'yyyy/mm/dd';
TV1EXIT := 1;
App := Tapplication.Create(self);
Application.HintColor := Cllime;
wdm := Extractfilepath(Application.exename);
Dept1.First;
while not Dept1.Eof do
begin
Cb1.Items.Add(Dept1.fields[0].asstring);
Dept1.Next;
end; if not FileExists(wdm + 'GLF_GS.INI') then //初始化文件是否存在
begin
Messagebox(App.Handle, '檔案 GLF_GS.INI 文件不存在,初始化失敗!',
Msg1, MB_OK + MB_ICONSTOP);
App.Terminate;
end;
Inif := Tinifile.Create(wdm + 'GLF_GS.INI');
Company := Inif.ReadString('MAIN', 'COMPANY', '');
DATAPATH := Inif.ReadString('DATA', 'DATAPATH', '');
PictPath := Inif.ReadString('PICT', 'PICTPATH', '');
if (length(TRim(Inif.ReadString('MAIN', 'COMPANY', ''))) = 0) or
(length(TRim(Inif.ReadString('DATA', 'DATAPATH', ''))) = 0)
then //沒有注冊
if Messagebox(App.Handle, '系統還沒有進行初始化,您是否要進行系統初始化?',
Msg1, MB_YESNO + MB_ICONQUESTION) = ID_YES then
begin
F_reg := TF_reg.create(self);
F_Reg.showmodal;
F_Reg.Free;
end else
App.Terminate;
F_main.Caption := Company + '工傷保險系統';
Autocenter(F_main);
LoadNodes;
begin
Memo1.Lines.LoadFromFile('TIPS.TXT');
Randomize;
for i := 0 to memo1.Lines.Count - 1 do
Tips := Random(i);
label3.Caption := memo1.Lines.Strings[Tips];
end;
F_welcome.free;
end;procedure TF_main.FormActivate(Sender: TObject);
begin
F_Passwd := TF_passwd.Create(Self);
F_passwd.ShowModal;
Datamonth := F_passwd.fe1.text;
F_passwd.free;
Label14.Caption := Copy(Datamonth, 1, 4) + '年' + copy(Datamonth, 5, 2) + '月';
with GLF_II do //查找數據處理日期
if Findkey([Datamonth]) then
begin
Sinit := Glf_ii.Fields[1].AsString;
Glf_ii.Prior;
DataMonth1 := Glf_ii.Fields[0].AsString;
Glf_ii.Next;
end else
begin
MessageBox(Application.handle, '系統錯誤!' + chr(13), '系統信息', mb_ok +
mb_iconinformation);
Application.Terminate;
end;
if Sinit = 'F' then //此月數據是否有初始化
begin
F_Init:=TF_Init.Create(Self) ;
F_Init.showmodal;
F_init.Free;
end;
if (Strisnull(Inif.ReadString('MAIN', 'COMPANY', ''))) or
(Strisnull(Inif.ReadString('DATA', 'DATAPATH', ''))) then
begin
Messagebox(Application.handle, '系統初始化沒有成功,請初始化系統!',
Msg1, MB_OK + MB_ICONINFORMATION);
App.Terminate;
end;
Sb1.Panels[1].Text := Ob1.ActivePage.Caption;
Loadnodes2; //調用上月投保人員名單
end;procedure TF_main.X1Click(Sender: TObject);
begin
Close;
end;procedure TF_main.TV1Change(Sender: TObject; Node: TTreeNode);
var i: integer;
LVL: TListItem;
P_Pbase: Pbase;
begin
Sbt4.Enabled := False;
Sbt5.Enabled := False;
with Tv1.selected do
case Level of
0: begin
CON_view(0);
Sb1.Panels[2].Text := '部門:';
Sb1.Panels[3].Text := Text;
Shownodes;
LV1.Items.Clear;
for i := 0 to Node.Count - 1 do
begin
Lv1_Changer := 0;
LVL := lv1.Items.Add;
LvL.Caption := Copy(Node.Item[i].Text, 1, 10);
P_Pbase := Node.Item[i].Data;
LvL.SubItems.Add(P_Pbase^.Pemp_id);
LvL.SubItems.Add(P_Pbase^.PSex);
LvL.SubItems.Add(P_Pbase^.Pdept);
LvL.SubItems.Add(P_Pbase^.pduty);
LvL.SubItems.Add(P_Pbase^.piden);
end;
LV1_changer := 1;
end;
1: begin
if node.Parent.Text <> T_parent then
begin
Node.Parent.Selected;
Node.Parent.Expand(True);
end;
SBT2.Enabled := True;
if Panel7.Visible = False then
con_view(1);
P_Pbase := Node.Data;
Fe2.Text := P_Pbase^.Pemp_id;
Fe3.Text := P_Pbase^.Pname;
Fe4.Text := P_Pbase^.Pduty;
Fe6.Text := P_Pbase^.Pdept;
if fileexists(pictpath + '\' + P_Pbase^.PPho) then
Pict1.Picture.LoadFromFile(pictpath + '\' + P_Pbase^.PPho) else
Pict1.Picture := nil;
Fe5.Text := P_Pbase^.Piden;
if P_Pbase^.PSex = '女' then
Rd1.Checked := True else
Rd2.Checked := True;
if length(Fe5.Text) = 18 then
Lb1.Caption := Copy(Fe5.text, 7, 4) + '年' + Copy(Fe5.text, 11, 2) + '月';
if length(Fe5.Text) = 15 then
Lb1.Caption := '19' + Copy(Fe5.text, 7, 2) + '年' + Copy(Fe5.text, 9, 2) + '月';
end;
end;
end;procedure TF_main.OSB2Enter(Sender: TObject);
begin
Sb1.Panels[1].Text := OSB2.Caption;
end;procedure TF_main.OSB1Click(Sender: TObject);
begin
Sb1.Panels[1].Text := Osb1.Caption;
lv2.Visible := False;
LV1.Visible := True;
Sbt7.Enabled := False;
end;procedure TF_main.OSB2Click(Sender: TObject);
begin
Sb1.Panels[1].Text := Osb2.Caption;
LV1.Visible := False;
LV2.Visible := True;
Sbt8.Enabled := False;
end;procedure TF_main.OSB3Click(Sender: TObject);
begin
Sb1.Panels[1].Text := Osb3.Caption;
end;procedure TF_main.Shownodes;
begin
Dept1.First;
with Dept1 do
begin
dept1.Locate('PDept', TV1.selected.text, [loCaseInsensitive]);
Sb1.Panels[4].Text := '編制人數:';
Sb1.Panels[5].Text := Dept1.Fields[1].AsString + ' 人';
end;
end;procedure TF_main.C1Click(Sender: TObject);
begin
shellexecute(Application.handle, 'open', 'calc.exe', '', '', SW_SHOWNORMAL);
end;procedure TF_main.E2Click(Sender: TObject);
begin
shellexecute(Application.handle, 'open', 'mailto:', '', '', SW_SHOWNORMAL);
end;procedure TF_main.FlatSpeedButton1Click(Sender: TObject);
begin
if tips >= Memo1.Lines.Count - 1 then
Tips := 0 else
Tips := Tips + 1;
Label3.Caption := memo1.Lines.Strings[Tips];
end;procedure TF_main.N19Click(Sender: TObject);
begin
TV1.Selected.Expand(true);
end;procedure TF_main.N21Click(Sender: TObject);
begin
Tv1.Selected.Collapse(True);
end;procedure TF_main.SB_1Click(Sender: TObject);
begin
if lv1.Visible = True then
begin
Con_view(0);
LV1.ViewStyle := vsReport;
end;
if lv2.Visible = True then
LV2.ViewStyle := vsReport;
end;procedure TF_main.SB_2Click(Sender: TObject);
begin
if lv1.Visible = True then
begin
Con_view(0);
LV1.ViewStyle := vsList;
end;
if lv2.Visible = True then
LV2.ViewStyle := vsList;
end;procedure TF_main.SB_3Click(Sender: TObject);
begin
if lv1.Visible = True then
begin
Con_view(0);
LV1.ViewStyle := VSsmallicon;
end;
if lv2.Visible = True then
LV2.ViewStyle := vsSmallicon;
end;procedure TF_main.SB_4Click(Sender: TObject);
begin
if lv1.Visible = True then
begin
Con_view(0);
lv1.ViewStyle := vsIcon;
end;
if lv2.Visible = True then
LV2.ViewStyle := vsicon;
end;procedure TF_main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Dept1.close;
D_MXB.Close;
TABle1.close;
end;procedure TF_main.LV1DblClick(Sender: TObject);
var i: Integer;
begin
if LV1.SelCount < 1 then
MessageBox(Application.handle, '對不起,您還沒有選擇記錄!' + chr(13),
Msg1, MB_ok + MB_ICONINFORMATION) else
begin
if lv1.SelCount > 1 then
Exit;
for i := 0 to Tv1.Items.Count - 1 do
if Tv1.Items.Item[I].Text = lv1.Selected.Caption then
begin
TV1.Items.Item[i].Selected := True;
Exit;
end;
end;
end;procedure TF_main.Panel8Click(Sender: TObject);
begin
close;
end;procedure TF_main.FE4Change(Sender: TObject);
begin
if FE4.Modified = True then
begin
SBT5.Enabled := True;
SBt4.Enabled := True;
end;
end;procedure TF_main.FE3Change(Sender: TObject);
begin
if Fe3.Modified then
begin
SBT5.Enabled := True;
SBT4.Enabled := True;
end;
end;procedure TF_main.LV1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
if LV1.SelCount = 1 then
begin
SBt2.Enabled := True;
SBT8.Enabled := True
end else
begin
SBT2.Enabled := False;
SBT8.Enabled := False;
end;
end;procedure TF_main.FE5Change(Sender: TObject);
begin
if Fe5.Modified then
begin
SBT5.Enabled := True;
SBT4.Enabled := True;
Lb1.Caption := '';
end;
end;procedure TF_main.FE5Exit(Sender: TObject);
begin
if (length(Fe5.Text) <> 18) and (length(Fe5.Text) <> 15) then
begin
MessageBox(Application.handle, '對不起,身份証號長度應為15或18位!' +
Chr(13), Msg1, MB_OK + MB_ICONINFORMATION);
Fe5.SetFocus;
end else
begin
if length(Fe5.Text) = 15 then
Lb1.Caption := '19' + Copy(Fe5.text, 7, 2) + '年' +
Copy(Fe5.text, 9, 2) + '月' else
Lb1.Caption := Copy(Fe5.text, 7, 4) + '年' +
Copy(Fe5.text, 11, 2) + '月';
end;
end;procedure TF_main.TV1Expanded(Sender: TObject; Node: TTreeNode);
var P_Pbase: Pbase;
i: integer;
LVL: TListitem;
begin
T_Parent := Node.Text;
LV1.Items.Clear;
for i := 0 to Node.Count - 1 do
begin
Lv1_Changer := 0;
LVL := lv1.Items.Add;
LvL.Caption := Copy(Node.Item[i].Text, 1, 10);
P_Pbase := Node.Item[i].Data;
LvL.SubItems.Add(P_Pbase^.Pemp_id);
LvL.SubItems.Add(P_Pbase^.PSex);
LvL.SubItems.Add(P_Pbase^.Pdept);
LvL.SubItems.Add(P_Pbase^.pduty);
LvL.SubItems.Add(P_Pbase^.piden);
Con_view(0);
LV1.ViewStyle := Vsreport;
end;
end;procedure TF_main.SBT5Click(Sender: TObject);
var P_Pbase: Pbase;
begin
if Cb1.Text = '' then
MessageBox(Application.handle, '真不好意思,單位還沒有選擇!' +
Chr(13), Msg1, MB_OK + MB_ICONINFORMATION);
Fe5.SetFocus;
Exit;
if (Length(Fe5.text) <> 15) and (Length(Fe5.text) <> 18) then
begin
MessageBox(Application.handle, '對不起,身份証號長度應為15或18位!' +
Chr(13), Msg1, MB_OK + MB_ICONINFORMATION);
Fe5.SetFocus;
Exit;
end else
begin
Table1.FindKey([Fe2.Text]);
Table1.Edit;
Table1.FieldByName('Piden').Value := Fe5.Text;
Table1.FieldByName('Pduty').value := Fe4.Text;
if Rd1.Checked then
Table1.FieldByName('Psex').Value := '女' else
Table1.FieldByName('Psex').Value := '男';
Table1.FieldByName('Pduty').value := Fe4.Text;
Table1.FieldByName('Pdept').value := Fe6.Text;
Table1.Post;
P_Pbase := TV1.Selected.Data;
P_Pbase^.Piden := Fe5.Text;
P_Pbase^.Pduty := Fe4.Text;
P_Pbase^.Pdept := Fe6.Text;
P_Pbase^.PSex := Table1.FieldByName('Psex').Value;
Table1.Refresh;
Tv1.SetFocus;
end;
end;procedure TF_main.SBT4Click(Sender: TObject);
var P_Pbase: Pbase;
begin
P_Pbase := Tv1.Selected.Data;
Fe4.Text := P_Pbase^.Pduty;
Fe5.Text := P_Pbase^.Piden;
Fe6.Text := P_Pbase^.Pdept;
TV1.SetFocus;
end;procedure TF_main.SBT2Click(Sender: TObject);
begin
if Messagebox(Application.handle, '請確認您是否真要刪除此人?' +
chr(13), Msg1, MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
TAble1.FindKey([Tv1.Selected.Text]);
TAble1.Delete;
Tv1.Selected.Delete;
TV1.Update;
end;
end;procedure TF_main.FE1Exit(Sender: TObject);
begin
Dept1.First;
while not Dept1.Eof do
begin
Cb1.Items.Add(Dept1.Fields[0].AsString);
Dept1.Next;
end;
end;procedure TF_main.CB1Change(Sender: TObject);
begin
SBT5.Enabled := True;
SBT4.Enabled := True;
Fe6.Text := CB1.Text;
end;procedure TF_main.H1Click(Sender: TObject);
begin
Shellabout(Application.handle, '工 傷 保 險 系 統', chr(13) +
'段志杰提醒您:版權所有,[email protected]',
Application.Icon.Handle);
end;procedure TF_main.TV2Change(Sender: TObject; Node: TTreeNode);
var LVI: Tlistitem;
i: integer;
P_Pbase: Pbase;
begin
case node.Level of
0: begin
with TV2_Q1 do
begin
TV2_Q1.Locate('GS05', TV2.selected.text, [loCaseInsensitive]);
Sb1.Panels[4].Text := '投保人數:';
Sb1.Panels[5].Text := TV2_Q1.Fields[1].AsString + ' 人';
Lv2.Items.Clear;
for i := 0 to Node.Count - 1 do
begin
P_Pbase := Node.Item[i].Data;
LVI := LV2.Items.Add;
LVi.Caption := P_Pbase^.pname;
Lvi.SubItems.Add(P_Pbase^.Pemp_id);
Lvi.SubItems.Add(P_Pbase^.PSex);
Lvi.SubItems.Add(P_Pbase^.Pdept);
Lvi.SubItems.Add(P_Pbase^.Pduty);
Lvi.SubItems.Add(P_Pbase^.Piden);
if P_Pbase^.PSex = '男' then
Lvi.ImageIndex := 2 else
Lvi.ImageIndex := 1;
end;
end;
end;
1: begin
end;
end;
end;procedure TF_main.OB1Change(ButtonGroup: TfcCustomButtonGroup; OldSelected,
Selected: TfcButtonGroupItem);
begin
case selected.Index of
1: begin
Lv2.Visible := False;
LV1.Visible := True;
end;
2: begin
Lv1.Visible := False;
LV2.Visible := True;
end;
end;
end;procedure TF_main.LV2Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
if Lv2.SelCount > 0 then
Sbt7.Enabled := True else
Sbt7.Enabled := False;
end;procedure TF_main.SBT7Click(Sender: TObject);
var i: integer;
St: string;
begin
i := 0;
while i < Lv2.Items.Count do //在數據庫中刪除
begin
if Lv2.Items[i].Selected then
begin
St := Lv2.Items[i].SubItems.Strings[0];
if T_GLF_St.Locate('GS01;GS08', VarArrayOf([St, Datamonth]), []) then
begin
T_GLF_GS.Append;
T_GLF_GS.Fields[0].Value := T_GLF_ST.Fields[0].Value;
T_GLF_GS.Fields[1].Value := T_GLF_ST.Fields[1].Value;
T_GLF_GS.Fields[2].Value := T_GLF_ST.Fields[2].Value;
T_GLF_GS.Fields[3].Value := T_GLF_ST.Fields[3].Value;
T_GLF_GS.Fields[4].Value := T_GLF_ST.Fields[4].Value;
T_GLF_GS.Fields[5].Value := T_GLF_ST.Fields[5].Value;
T_GLF_GS.Fields[6].Value := T_GLF_ST.Fields[6].Value;
T_GLF_GS.Fields[7].Value := DataMonth;
T_GLF_GS.Fields[8].Value := '0';
T_GLF_GS.Fields[9].Value := T_GLF_ST.Fields[9].Value;
T_GLF_GS.Fields[10].Value := T_GLF_ST.Fields[10].Value;
T_GLF_GS.Fields[11].Value := T_GLF_ST.Fields[11].Value;
T_GLF_GS.Post;
T_GLF_St.Delete;
LV2.Items.Delete(I);
{ if TV2.Selected.Level = 1 then
// TV2.Items.Delete(Tv2.Selected.Item[i]);
TV2.Selected.Delete
else
begin
TV2.Selected.Parent.Expand(true);
Tv2.Selected.Parent.Selected:=True ;
Tv2.Selected.Item[i].Delete ;
end; }
end;
end else
inc(i);
end;
T_GLF_St.Refresh;
T_GLF_GS.Refresh;
LV2.update;
TV2.Update;
end;
{ if Tv2.Selected.Level = 0 then
TV2.Items.Delete(Tv2.Selected.item[i]) else
begin
Tv2.Selected.Parent.Selected := True;
TV2.Items.Delete(Tv2.Selected.item[i]);
end; }
procedure TF_main.TV2Expanded(Sender: TObject; Node: TTreeNode);
var P_Pbase: Pbase;
i: integer;
LVL: TListitem;
begin
Node.Selected := True;
T_Parent := Node.Text;
LV1.Items.Clear;
for i := 0 to Node.Count - 1 do
begin
Lv1_Changer := 0;
LVL := lv1.Items.Add;
P_Pbase := Node.Item[i].Data;
LvL.Caption := P_Pbase^.Pname;
LvL.SubItems.Add(P_Pbase^.Pemp_id);
LvL.SubItems.Add(P_Pbase^.PSex);
LvL.SubItems.Add(P_Pbase^.Pdept);
LvL.SubItems.Add(P_Pbase^.pduty);
LvL.SubItems.Add(P_Pbase^.piden);
LV2.ViewStyle := Vsreport;
end;end;procedure TF_main.SpeedButton2Click(Sender: TObject);
begin
Close;
Application.Terminate;
end;procedure TF_main.SBT8Click(Sender: TObject);
var St: string;
begin
St := LV1.Selected.SubItems.Strings[0];
if T_GLF_GS.Locate('GS01;GS08', VarArrayOf([St, Datamonth]), []) then
begin
if T_GLF_Gs.Fields[8].AsString = '0' then
begin
MessageBox(Application.handle, Pchar('工號:' + T_GLF_Gs.Fields[0].AsString +
' 姓名:' + T_GLF_Gs.Fields[1].AsString + '已經存在於' + Chr(13) + Chr(13) +
Label14.caption + '停保名單中,不能新增!' + chr(13)),
'系統提示', MB_OK + MB_ICONSTOP);
Exit;
end else
begin
MessageBox(Application.handle, Pchar('工號:' + T_GLF_Gs.Fields[0].AsString +
' 姓名:' + T_GLF_Gs.Fields[1].AsString + '已經存在於' + Chr(13) + Chr(13) +
Label14.caption + '新增名單中,不能新增!' + chr(13)),
'系統提示', MB_OK + MB_ICONSTOP);
Exit;
end;
end
else begin
if T_GLF_St.Locate('GS01;GS08', VarArrayOf([St, Datamonth]), []) then
begin
MessageBox(Application.handle, Pchar('工號:' + T_GLF_St.Fields[0].AsString +
' 姓名:' + T_GLF_ST.Fields[1].AsString + ' 已經存在於' + Chr(13) + Chr(13) +
'上月投保名單中,不能新增!' + chr(13)),
'系統提示', MB_OK + MB_ICONSTOP);
Exit;
end else
begin
with Table1 do
if Findkey([St]) then
begin
T_GLF_GS.Append;
T_GLF_GS.Fields[0].Value := Table1.fieldbyname('Pemp_id').Asstring;
T_GLF_GS.Fields[1].Value := Table1.fieldbyname('Pname').Asstring;
if Table1.fieldbyname('Psex').Asstring = '男' then
T_GLF_GS.Fields[2].Value := '1'
else
T_GLF_GS.Fields[2].Value := '2';
T_GLF_GS.Fields[3].Value := Table1.fieldbyname('piden').Asstring;
T_GLF_GS.Fields[4].Value := Table1.fieldbyname('pdept').Asstring;
T_GLF_GS.Fields[5].Value := Table1.fieldbyname('pduty').Asstring;
T_GLF_GS.Fields[7].Value := DataMonth;
T_GLF_GS.Fields[8].Value := '1';
T_GLF_GS.Fields[9].Value := '2';
T_GLF_GS.Fields[10].Value := '4';
T_GLF_GS.Fields[11].Value := Company;
T_GLF_GS.Post;
T_GLF_gs.Refresh;
end else
Showmessage('NOT found');
end;
end;
end;procedure TF_main.SpeedButton3Click(Sender: TObject);
begin
F_print := TF_print.create(Self);
F_Print.Showmodal;
F_Print.Free;
end;procedure TF_main.SpeedButton4Click(Sender: TObject);
begin
F_SQL:=TF_SQL.Create(Self);
F_SQL.Showmodal ;
F_SQL.Free ;
end;end.