⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tass00_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 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 + -