?? realtyf63c.pas
字號:
unit RealtyF63C;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dbcgrids, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls,
StrUtils, ExtDlgs, ComCtrls, math, Menus, ImgList, ToolWin;
type
Tf_RealtyF63C = class(TForm)
L1: TLabel;
Label2: TLabel;
Edit1: TEdit;
edit2: TEdit;
Label1: TLabel;
Label7: TLabel;
Label12: TLabel;
Label4: TLabel;
edit3: TEdit;
Label3: TLabel;
Label6: TLabel;
Label8: TLabel;
edit4: TEdit;
Label9: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
edit6: TEdit;
Label21: TLabel;
edit13: TEdit;
CheckBox1: TCheckBox;
edit8: TDateTimePicker;
edit9: TDateTimePicker;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ListView2: TListView;
ListView3: TListView;
PopupMenu1: TPopupMenu;
N4: TMenuItem;
N8: TMenuItem;
N10: TMenuItem;
Edit5: TEdit;
Label10: TLabel;
Edit7: TEdit;
Label11: TLabel;
edit10: TEdit;
Label13: TLabel;
edit11: TEdit;
Label14: TLabel;
edit12: TEdit;
CheckBox2: TCheckBox;
TabSheet3: TTabSheet;
ListView1: TListView;
Button7: TButton;
Button5: TButton;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ToolButton10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure ListView3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N4Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
bOK:bool;
T:string;
bNew:bool;
end;
var
f_RealtyF63C: Tf_RealtyF63C;
sNum:string;
implementation
uses data, main,RealtyF63,RealtyF63CC;
{$R *.dfm}
//新增 1
procedure Tf_RealtyF63C.ToolButton5Click(Sender: TObject);
begin
end;
//查看 2
procedure Tf_RealtyF63C.ToolButton4Click(Sender: TObject);
begin
//
end;
//刪除 3
procedure Tf_RealtyF63C.ToolButton7Click(Sender: TObject);
begin
//
end;
//復制 5
procedure Tf_RealtyF63C.ToolButton6Click(Sender: TObject);
begin
//
end;
//關閉 7
procedure Tf_RealtyF63C.ToolButton10Click(Sender: TObject);
begin
close;
end;
//公共函數**************************************************
//初始化 一
procedure Tf_RealtyF63C.FormCreate(Sender: TObject);
var
i:integer;
s,s1:string;
query:TADOQuery;
begin
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
query.SQL.Add('select * from 服務派工單 where 單號='''+f_RealtyF63.listview1.selected.Caption+'''');
query.Open;
if query.RecordCount>0 then
begin
edit1.text:=query.fieldbyname('單號').Value;
edit2.text:=query.fieldbyname('派工單號').Value;
edit3.text:=query.fieldbyname('客戶').Value;
edit4.text:=query.fieldbyname('服務類別').Value;
edit5.text:=query.fieldbyname('受理時間').Value;
edit6.text:=query.fieldbyname('要求處理事項').Value;
edit8.date:=strtodate(query.fieldbyname('開工時間').Value);
edit9.date:=strtodate(query.fieldbyname('完工時間').Value);
if query.fieldbyname('需要生成臨時費用單').Value='Y' then checkbox1.checked:=true
else checkbox1.checked:=false;
query.SQL.Clear;
query.SQL.Add('select * from 服務派工驗收 where 單號='''+edit1.Text+'''');
query.Open;
if query.RecordCount>0 then
begin
s1:=query.fieldbyname('客戶驗收通過').Value;
if s1='Y' then
begin
button7.Enabled:=false;
checkbox2.Checked:=true;
end
else checkbox2.Checked:=false;
edit7.Text:=query.fieldbyname('實際處理事項').Value;
edit10.Text:=query.fieldbyname('處理結果').Value;
edit11.Text:=query.fieldbyname('服務評價').Value;
edit12.Text:=floattostr(query.fieldbyname('人工費').Value);
edit13.Text:=query.fieldbyname('備注').Value;
end
else
begin
edit7.Text:='';
edit10.Text:='';
edit11.Text:='';
edit12.Text:='';
edit13.Text:='';
checkbox2.Checked:=false;
end;
listview1.Items.Clear;
query.sql.clear;
query.SQL.Add('select * from 服務派工單派工物料 where 單號='''+edit1.text+'''');
query.Open;
while not query.Eof do
begin
with listview1.Items.Add do
begin
caption:=query.fieldbyname('編號').value;
subitems.add(query.fieldbyname('名稱').value);
subitems.add(query.fieldbyname('單價').value);
subitems.add(query.fieldbyname('數量').value);
subitems.add(query.fieldbyname('金額').value);
end;
query.Next;
end;
listview2.Items.Clear;
query.sql.clear;
query.SQL.Add('select * from 服務派工單派工房間 where 單號='''+edit1.text+'''');
query.Open;
while not query.Eof do
begin
with listview2.Items.Add do
begin
caption:=query.fieldbyname('房間').value+'--'+mainform.getName('房間',query.fieldbyname('房間').value);
subitems.add(query.fieldbyname('建筑面積').value); ;
end;
query.Next;
end;
listview3.Items.Clear;
query.sql.clear;
query.SQL.Add('select * from 服務派工單服務人員 where 單號='''+edit1.text+'''');
query.Open;
while not query.Eof do
begin
with listview3.Items.Add do
begin
caption:=query.fieldbyname('職員').value;
subitems.add(query.fieldbyname('備注').value); ;
end;
query.Next;
end;
end;
query.Close;
query.Free;
end;
//Tab
procedure Tf_RealtyF63C.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
Begin
key:=0;
perform(WM_NEXTDLGCTL,0,0);
end
else if key=VK_ESCAPE then close;
end;
procedure Tf_RealtyF63C.ListView3MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if button=mbright then
PopupMenu1.Popup(mouse.CursorPos.X,mouse.CursorPos.Y);
end;
procedure Tf_RealtyF63C.N4Click(Sender: TObject);
begin
bNew:=true;
f_RealtyF63CC:=Tf_RealtyF63CC.Create(self);
f_RealtyF63CC.ShowModal;
end;
procedure Tf_RealtyF63C.N10Click(Sender: TObject);
begin
if listview2.selcount=0 then exit;
bNew:=false;
f_RealtyF63CC:=Tf_RealtyF63CC.Create(self);
f_RealtyF63CC.ShowModal;
end;
procedure Tf_RealtyF63C.N8Click(Sender: TObject);
begin
if listview2.SelCount=0 then exit;
if(Application.MessageBox(PChar('確認要刪除所選記錄嗎?') ,'提示',Mb_OKCANCEL+Mb_IconInformation)=0) then exit;
listview2.Selected.Delete;
if listview2.Items.Count>0 then listview2.Items.Item[0].Selected:=true;
end;
procedure Tf_RealtyF63C.Button7Click(Sender: TObject);
var
i,j:integer;
s,s1,s2:string;
Query,query1,query2,query3:TADOQuery;
d,d1,d2:double;
begin
s1:='N';
if checkbox1.checkED=true then s1:='Y';
s2:='N';
if checkbox2.checkED=true then s2:='Y';
// 1 關鍵字段不能為空
if Edit2.Text='' then
begin
showmessage('請輸入派工單號。');
Edit2.SetFocus;
exit;
end;
// 2 檢查所有字段的數據完整性
if edit7.text='' then edit7.text:='-';
if edit10.text='' then edit10.text:='-';
if edit11.text='' then edit11.text:='-';
if edit12.text='' then edit12.text:='0.00';
if edit13.text='' then edit13.text:='-';
// 3 定義數據集
Query:=TADOQuery.Create(nil);
Query.Connection:=DataModuleADO.ADOConnection1;
Query1:=TADOQuery.Create(nil);
Query1.Connection:=DataModuleADO.ADOConnection1;
// 一更新主表
DataModuleADO.ADOConnection1.BeginTrans;
query.sql.clear;
Query.SQL.Text:='delete from 服務派工驗收 where 單號='''+f_RealtyF63.listview1.Selected.caption+'''';
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
s:='insert into 服務派工驗收(單號,實際處理事項,到達時間,完工時間,處理結果,服務評價,';
s:=s+'人工費,備注,客戶驗收通過) values (:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9)' ;
query.SQL.Clear;
query.SQL.Add(s);
query.Parameters.ParamByName('s1').Value:=edit1.text;
query.Parameters.ParamByName('s2').Value:=edit7.text;
query.Parameters.ParamByName('s3').Value:=datetostr(edit8.date);
query.Parameters.ParamByName('s4').Value:=datetostr(edit9.date);
query.Parameters.ParamByName('s5').Value:=edit10.text;
query.Parameters.ParamByName('s6').Value:=edit11.text;
query.Parameters.ParamByName('s7').Value:=strtofloat(mainform.StdDou2(edit12.text));
query.Parameters.ParamByName('s8').Value:=edit13.text;
query.Parameters.ParamByName('s9').Value:=s2;
DataModuleADO.ADOConnection1.BeginTrans;
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
s:='update 服務派工單 set 派工單號='''+edit2.text;
s:=s+''',需要生成臨時費用單='''+s1;
s:=s+''',開工時間='''+datetostr(edit8.date);
s:=s+''',完工時間='''+datetostr(edit9.date);
s:=s+''' where 單號='''+f_RealtyF63.ListView1.Selected.caption+'''';
query.SQL.Clear;
query.SQL.Add(s);
DataModuleADO.ADOConnection1.BeginTrans;
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
// 二刪除從表再重新保存從表
DataModuleADO.ADOConnection1.BeginTrans;
query.sql.clear;
Query.SQL.Text:='delete from 服務派工單服務人員 where 單號='''+f_RealtyF63.listview1.Selected.caption+'''';
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
for i:=0 to listview3.Items.Count-1 do
begin
s:='insert into 服務派工單服務人員(職員,備注,單號) values(:s1,:s2,:s3)';
query.SQL.Clear;
query.SQL.Add(s);
query.Parameters.ParamByName('s1').Value:=trim(listview3.Items.Item[i].Caption);
query.Parameters.ParamByName('s2').Value:=trim(listview3.Items.Item[i].SubItems[0]);
query.Parameters.ParamByName('s3').Value:=trim(edit1.Text);
DataModuleADO.ADOConnection1.BeginTrans;
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
end;
showmessage('驗收成功');
// 三 更新父窗口listview中的當前行數據
query.SQL.Clear;
query.SQL.Add('select * from 服務派工單 where 單號='''+edit1.Text+'''');
query.Open;
if query.recordcount>0 then
begin
with f_RealtyF63.listview1.Selected do
begin
subitems[0]:=query.fieldbyname('派工單號').Value;
query1.sql.clear;
query1.sql.add('select * from 服務派工驗收 where 單號='''+query.fieldbyname('單號').Value+'''');
query1.open;
if query1.recordcount>0 then
begin
subitems[7]:=query1.fieldbyname('實際處理事項').Value;
subitems[8]:=query1.fieldbyname('處理結果').Value;
subitems[9]:=query1.fieldbyname('到達時間').Value;
subitems[10]:=query1.fieldbyname('完工時間').Value;
subitems[11]:=query1.fieldbyname('客戶驗收通過').Value;
subitems[12]:=query1.fieldbyname('服務評價').Value;
end
else
begin
subitems[7]:='';
subitems[8]:='';
subitems[9]:='';
subitems[10]:='';
subitems[11]:='';
subitems[12]:='';
end;
end;
end;
query1.Close;
query1.Free;
query.Close;
query.Free;
// 四 關閉窗口
close;
end;
procedure Tf_RealtyF63C.Button5Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyF63C.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -