📄 tass00_01.pas.svn-base
字号:
unit TasS00_01;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BAS100_01, Menus, StdCtrls, Buttons, ComCtrls, dxExEdtr,
dxCntner, dxTL, dxDBCtrl, dxDBGrid, DB, ADODB, dxDBTLCl, dxGrClms;
type
TTasS00_01Form = class(TBas100_01Form)
PageControl1: TPageControl;
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
TabSheet1: TTabSheet;
gbUnit: TGroupBox;
lblUnit: TLabel;
cbUnit: TComboBox;
edtDay: TEdit;
lblDay: TLabel;
edtWeek: TEdit;
lblWeek: TLabel;
edtMonth: TEdit;
lblMonth: TLabel;
cbChangeUnit: TCheckBox;
gbPriority: TGroupBox;
lblPriority: TLabel;
edtHight: TEdit;
edtLow: TEdit;
edtDefault: TEdit;
lblDefault: TLabel;
gbOther: TGroupBox;
cbDelete: TCheckBox;
cbStatus: TCheckBox;
TabSheet2: TTabSheet;
Label1: TLabel;
dxDBGrid1: TdxDBGrid;
dsTas120: TDataSource;
adsTas120: TADODataSet;
adsTas120FSel: TBooleanField;
adsTas120FNo: TIntegerField;
adsTas120FName: TStringField;
adsTas120FRemark: TStringField;
dxDBGrid1FSel: TdxDBGridCheckColumn;
dxDBGrid1FName: TdxDBGridMaskColumn;
dxDBGrid1FRemark: TdxDBGridMaskColumn;
qryQuery: TADOQuery;
lblByTotal: TLabel;
lblTotal: TLabel;
cbTotal: TComboBox;
lblByFinish: TLabel;
lblFinish: TLabel;
cbFinish: TComboBox;
cbUpdate: TCheckBox;
cbHours: TCheckBox;
cbItems: TCheckBox;
cbClass: TComboBox;
cbCount: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure edtDayKeyPress(Sender: TObject; var Key: Char);
procedure edtWeekKeyPress(Sender: TObject; var Key: Char);
procedure edtMonthKeyPress(Sender: TObject; var Key: Char);
procedure edtHightKeyPress(Sender: TObject; var Key: Char);
procedure edtLowKeyPress(Sender: TObject; var Key: Char);
procedure edtDefaultKeyPress(Sender: TObject; var Key: Char);
procedure dxDBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure dxDBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
procedure SetInterface;
{ Private declarations }
public
{ Public declarations }
end;
var
TasS00_01Form: TTasS00_01Form;
implementation
uses SYSDATA, CommFun;
{$R *.dfm}
procedure TTasS00_01Form.SetInterface;
var
S,ANo:String;
ABoolean:Boolean;
begin
Caption:=GetDBString('TASS0001001'); //任务管理参数
TabSheet1.Caption:=GetDBString('TASS0001002'); //参数设置
gbUnit.Caption:=GetDBString('TASS0001003'); //时间单位
gbPriority.Caption:=GetDBString('TASS0001004'); //优先级别
gbOther.Caption:=GetDBString('TASS0001005'); //其他参数
lblUnit.Caption:=GetDBString('TASS0001006'); //时间单位
lblDay.Caption:=GetDBString('TASS0001007'); //时为一天
lblWeek.Caption:=GetDBString('TASS0001008'); //天为一周
lblMonth.Caption:=GetDBString('TASS0001009'); //天为一月
cbChangeUnit.Caption:=GetDBString('TASS0001010'); //允许单据录入时更改时间单位
lblPriority.Caption:=GetDBString('TASS0001011'); //优先级别
lblDefault.Caption:=GetDBString('TASS0001012'); //优先级缺省值
cbDelete.Caption:=GetDBString('TASS0001013'); //允许删除状态为完成的任务计划下的任务汇报单
bbtnOk.Caption:=GetDBString('TASS0001014'); //确定(&O)
bbtnExit.Caption:=GetDBString('TASS0001015'); //退出(&X)
lblByTotal.Caption:=GetDBString('TASS0001016'); //按照
lblByFinish.Caption:=lblByTotal.Caption; //按照
lblTotal.Caption:=GetDBString('TASS0001017'); //统计任务计划的总数量
lblFinish.Caption:=GetDBString('TASS0001018'); //统计任务计划的完成数量
cbTotal.Clear;
cbTotal.Items.Add(GetDBString('TASS0001019')); //申报日期
cbTotal.Items.Add(GetDBString('TASS0001020')); //需求日期
cbTotal.Items.Add(GetDBString('TASS0001021')); //预计开始日期
cbTotal.Items.Add(GetDBString('TASS0001022')); //预计完成日期
cbTotal.Items.Add(GetDBString('TASS0001023')); //实际开始日期
cbTotal.Items.Add(GetDBString('TASS0001024')); //实际完成日期
cbTotal.ItemIndex:=0;
cbUpdate.Caption:=GetDBString('TASS0001025'); //任务完成时,反写客户资料的产品信息(安装日期、保养日期)
cbHours.Caption:=GetDBString('TASS0001026'); //任务汇报时,是否录入详细的工时信息
cbItems.Caption:=GetDBString('TASS0001027'); //任务汇报时,是否录入详细的零件信息
cbCount.Caption:=GetDBString('TASS0001028'); //计费工时允许为零
cbFinish.Clear;
cbFinish.Items:=cbTotal.Items;
cbFinish.ItemIndex:=5;
S:=GetSysParams('TAS0001');//时间单位 0=时,1=天,2=周,3=月
if S<>'' then cbUnit.ItemIndex:=StrToInt(S);
S:=GetSysParams('TAS0002'); //8时为一天
if S<>'' then edtDay.Text:=S;
S:=GetSysParams('TAS0003'); //5天为一周
if S<>'' then edtWeek.Text:=S;
S:=GetSysParams('TAS0004'); //22天为一月
if S<>'' then edtMonth.Text:=S;
S:=GetSysParams('TAS0005'); //允许单据录入时更改时间单位
if S<>'' then cbChangeUnit.Checked:=S='Y';
S:=GetSysParams('TAS0006'); //最高优先级别
if S<>'' then edtHight.Text:=S;
S:=GetSysParams('TAS0007'); //最低优先级别
if S<>'' then edtLow.Text:=S;
S:=GetSysParams('TAS0008'); //优先级缺省值
if S<>'' then edtDefault.Text:=S;
S:=GetSysParams('TAS0009'); //允许删除状态为完成的任务计划下的任务汇报单
if S<>'' then cbDelete.Checked:=S='Y';
S:=GetSysParams('TAS0010'); //使用颜色标明任务的状态。如:计划=黑色,执行=蓝色,完成=灰色,返工=红色
if S<>'' then cbStatus.Checked:=S='Y';
//完成数量统计中包含下列状态
S:=GetSysParams('TAS0011'); //完成数量统计中包含下列状态
if S='' then S:='[3]';
adsTas120.Close;
adsTas120.FieldDefs.Clear;
adsTas120.FieldDefs.Add('FSel',ftBoolean,0);
adsTas120.FieldDefs.Add('FNo',ftInteger,0);
adsTas120.FieldDefs.Add('FName',ftString,50);
adsTas120.FieldDefs.Add('FRemark',ftString,100);
adsTas120.CreateDataSet;
qryQuery.Close;
qryQuery.SQL.Clear;
qryQuery.SQL.Add('select * from TAS120 order by T120_002');
qryQuery.Open;
while not qryQuery.Eof do
begin
ANo:='['+qryQuery.FieldByName('T120_001').AsString+']';
if Pos(ANo,S)<>0 then ABoolean:=True else ABoolean:=False;
adsTas120.Append;
adsTas120.FieldByName('FSel').Value:=ABoolean;
adsTas120.FieldByName('FNo').Value:=qryQuery.FieldByName('T120_001').Value;
adsTas120.FieldByName('FName').Value:=qryQuery.FieldByName('T120_003').Value;
adsTas120.FieldByName('FRemark').Value:=qryQuery.FieldByName('T120_004').Value;
adsTas120.Post;
qryQuery.Next;
end;
//按照"申报日期"统计任务计划的总数量
S:=GetSysParams('TAS0012'); //按照"申报日期"统计任务计划的总数量
if S='' then S:='0';
cbTotal.ItemIndex:=StrToInt(S); //申报日期
//按照"实际完成日期"统计任务计划的完成数量
S:=GetSysParams('TAS0013'); //按照"实际完成日期"统计任务计划的完成数量
if S='' then S:='5';
cbFinish.ItemIndex:=StrToInt(S); //实际完成日期
S:=GetSysParams('TAS0014'); //任务完成时,反写客户资料的产品信息(安装日期、保养日期)
if S<>'' then cbUpdate.Checked:=S='Y';
S:=GetSysParams('TAS0015'); //任务汇报时,是否录入详细的工时信息
if S<>'' then cbHours.Checked:=S='Y';
S:=GetSysParams('TAS0016'); //任务汇报时,是否录入详细的零件信息
if S<>'' then cbItems.Checked:=S='Y';
S:=GetSysParams('TAS0018'); //计费工时允许为零
if S<>'' then cbCount.Checked:=S='Y';
cbClass.Clear;
qryQuery.Close;
qryQuery.SQL.Clear;
qryQuery.SQL.Add('select T100_001,T100_002 from TAS100 where T100_005<>0');
qryQuery.Open;
while not qryQuery.Eof do
begin
cbClass.Items.Add(qryQuery.FieldByName('T100_002').AsString);
qryQuery.Next;
end;
S:=GetSysParams('TAS0017'); //反写客户资料的产品信息(安装日期、保养日期)的任务类别
if S='' then S:='-1';
if qryQuery.Locate('T100_001',StrToInt(S),[]) then
S:=qryQuery.FieldByName('T100_002').AsString
else
S:='';
cbClass.ItemIndex:=cbClass.Items.IndexOf(S);
end;
procedure TTasS00_01Form.FormCreate(Sender: TObject);
begin
inherited;
SetInterface;
PageControl1.ActivePageIndex:=0;
end;
procedure TTasS00_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
qryQuery.Close;
adsTas120.Close;
end;
procedure TTasS00_01Form.bbtnOkClick(Sender: TObject);
var
S,ANo:string;
begin
inherited;
//确定(&O)
Screen.Cursor:=crHourGlass;
//时间单位 0=时,1=天,2=周,3=月
SetSysParams('TAS0001',IntToStr(cbUnit.ItemIndex));
//8时为一天
SetSysParams('TAS0002',edtDay.Text);
//5天为一周
SetSysParams('TAS0003',edtWeek.Text);
//22天为一月
SetSysParams('TAS0004',edtMonth.Text);
//允许单据录入时更改时间单位
if cbChangeUnit.Checked then SetSysParams('TAS0005','Y') else SetSysParams('TAS0005','N');
//最高优先级别
SetSysParams('TAS0006',edtHight.Text);
//最低优先级别
SetSysParams('TAS0007',edtLow.Text);
//优先级缺省值
SetSysParams('TAS0008',edtDefault.Text);
//允许删除状态为完成的任务计划下的任务汇报单
if cbDelete.Checked then SetSysParams('TAS0009','Y') else SetSysParams('TAS0009','N');
//使用颜色标明任务的状态。如:计划=黑色,执行=蓝色,完成=灰色,返工=红色
if cbStatus.Checked then SetSysParams('TAS0010','Y') else SetSysParams('TAS0010','N');
//完成数量统计中包含下列状态
S:='';
adsTas120.First;
while not adsTas120.Eof do
begin
if adsTas120.FieldByName('FSel').AsBoolean then
begin
ANo:='['+adsTas120.FieldByName('FNo').AsString+'],';
S:=S+ANo;
end;
adsTas120.Next;
end;
if S='' then S:='[3]' else Delete(S,Length(S),1); //删除最后的,号
SetSysParams('TAS0011',S); //完成数量统计中包含下列状态
//完成数量统计中包含下列状态
AStatusNo:=GetSysParams('TAS0011');
if AStatusNo='' then AStatusNo:='[3]';
ReplaceString('[','',AStatusNo);
ReplaceString(']','',AStatusNo);
//按照"申报日期"统计任务计划的总数量
SetSysParams('TAS0012',IntToStr(cbTotal.ItemIndex));
//按照"实际完成日期"统计任务计划的完成数量
SetSysParams('TAS0013',IntToStr(cbFinish.ItemIndex));
case cbTotal.ItemIndex of
0:AByTotal:='T510_006'; //0=申报日期 T510_006
1:AByTotal:='T510_007'; //1=需求日期 T510_007
2:AByTotal:='T510_025'; //2=预计开始日期 T510_025
3:AByTotal:='T510_026'; //3=预计完成日期 T510_026
4:AByTotal:='T510_027'; //4=实际开始日期 T510_027
5:AByTotal:='T510_028'; //5=实际完成日期 T510_028
end;
case cbFinish.ItemIndex of
0:AByFinish:='T510_006'; //0=申报日期 T510_006
1:AByFinish:='T510_007'; //1=需求日期 T510_007
2:AByFinish:='T510_025'; //2=预计开始日期 T510_025
3:AByFinish:='T510_026'; //3=预计完成日期 T510_026
4:AByFinish:='T510_027'; //4=实际开始日期 T510_027
5:AByFinish:='T510_028'; //5=实际完成日期 T510_028
end;
//任务完成时,反写客户资料的产品信息(安装日期、保养日期)
if cbUpdate.Checked then SetSysParams('TAS0014','Y') else SetSysParams('TAS0014','N');
//任务汇报时,是否录入详细的工时信息
if cbHours.Checked then SetSysParams('TAS0015','Y') else SetSysParams('TAS0015','N');
//任务汇报时,是否录入详细的零件信息
if cbItems.Checked then SetSysParams('TAS0016','Y') else SetSysParams('TAS0016','N');
//计费工时允许为零
if cbCount.Checked then SetSysParams('TAS0018','Y') else SetSysParams('TAS0018','N');
//反写客户资料的产品信息(安装日期、保养日期)的任务类别
qryQuery.Close;
qryQuery.SQL.Clear;
qryQuery.SQL.Add('select T100_001 from TAS100 where T100_002='+''''+cbClass.Text+'''');
qryQuery.Open;
S:=qryQuery.FieldByName('T100_001').AsString;
if S='' then S:='-1';
SetSysParams('TAS0017',S);
Screen.Cursor:=crDefault;
ShowMsg('UMS10000051'); //系统参数设置成功
Close;
end;
procedure TTasS00_01Form.bbtnExitClick(Sender: TObject);
begin
inherited;
//退出(&X)
Close;
end;
procedure TTasS00_01Form.edtDayKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.edtWeekKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.edtMonthKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.edtHightKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.edtLowKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.edtDefaultKeyPress(Sender: TObject;
var Key: Char);
begin
inherited;
ValidInteger(Sender,Key);
end;
procedure TTasS00_01Form.dxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if Key=#32 then //vk_space
begin
adsTas120.Edit;
adsTas120.FieldByName('FSel').AsBoolean:=not adsTas120.FieldByName('FSel').AsBoolean;
adsTas120.Post;
end;
end;
procedure TTasS00_01Form.dxDBGrid1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited;
if dxDBGrid1.GetColumnAt(X,Y)=nil then Exit;
if dxDBGrid1.GetColumnAt(X,Y).Field.FieldName='FSel' then
begin
adsTas120.Edit;
adsTas120.FieldByName('FSel').AsBoolean:=not adsTas120.FieldByName('FSel').AsBoolean;
adsTas120.Post;
end;
end;
initialization
RegisterClass(TTasS00_01Form);
finalization
UnRegisterClass(TTasS00_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -