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

📄 ss_grpkccsh.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    except
    end;
    qry_initZK.OnChange := nil;
    qry_initZK.AsFloat := Old_Value;
    qry_initZK.OnChange := qry_initZKChange;
    Abort;
  end;

  qry_initJSJ.OnChange := nil;
  qry_init.FieldByName('JSJ').AsFloat := 0;
  qry_initJSJ.OnChange := qry_initJSJChange;

  qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{结算价}
procedure Tfrm_GRPKCCSH.qry_initJSJChange(Sender: TField);
var
  Old_Value: Double;
begin
  {判断结算价是否合法}
  if qry_initJSJ.AsFloat < 0 then
  begin
    CHQMsgBox('结算价不能为负!');
    Old_Value := 0;
    if qry_init.FieldByName('PPDM').AsString <> '' then
    try
      Old_Value := qry_initJSJ.OldValue;
    except
    end;
    qry_initJSJ.OnChange := nil;
    qry_initJSJ.AsFloat := Old_Value;
    qry_initJSJ.OnChange := qry_initJSJChange;
    Abort;
  end;

  qry_initZK.OnChange := nil;
  qry_init.FieldByName('ZK').AsFloat := 0;
  qry_initZK.OnChange := qry_initZKChange;

  qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{显示面值、售价、进价、销价、结算价}
procedure Tfrm_GRPKCCSH.qry_initGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  try
    Sender.AsFloat;
    if not Sender.IsNull then
      if Sender.Name = 'qry_initJJ' then
        Text := FormatFloat('#,##0.0000##', Sender.AsFloat / 100)
      else
        Text := FormatFloat('#,##0.00##', Sender.AsFloat / 100)
  except
  end;
end;
{保存进价、销价、结算价}
procedure Tfrm_GRPKCCSH.qry_initSetText(Sender: TField;
  const Text: string);
begin
  Sender.AsFloat := strToFloat(Text) * 100;
end;

{-------------------------------------------------------------------------------}
{库位号}
procedure Tfrm_GRPKCCSH.qry_initKWHChange(Sender: TField);
begin
  qry_init.FieldByName('TEMP').AsInteger := 1;
end;

{-------------------------------------------------------------------------------}
{新增同一票品的不同进价}
procedure Tfrm_GRPKCCSH.Add_Init_Data;
var
  l_ZH, l_TMC, l_KWH, l_TDM: string;
  l_TPMZ, l_TPSJ, l_XJ, l_ZK, l_JSJ: Double;
//  l_JJ,l_TS,
  Before_Insert: TDataSetNotifyEvent;
begin
  with qry_Init do
  begin
    l_ZH := FieldByName('ZH').AsString;
    l_TMC := FieldByName('TMC').AsString;
    l_KWH := FieldByName('KWH').AsString;
    l_TDM := FieldByName('TDM').AsString;
    l_TPMZ := FieldByName('TPMZ').AsFloat;
    l_TPSJ := FieldByName('TPSJ').AsFloat;
//  l_JJ := FieldByName('JJ').AsInteger;
    l_XJ := FieldByName('XJ').AsFloat;
//  l_TS := FieldByName('TS').AsInteger;
    l_ZK := FieldByName('ZK').AsFloat;
    l_JSJ := FieldByName('JSJ').AsFloat;

    DisableControls;

    Before_Insert := BeforeInsert;
    BeforeInsert := nil;
    Insert;
    BeforeInsert := Before_Insert;

    FieldByName('ZH').AsString := l_ZH;
    FieldByName('TMC').AsString := l_TMC;
    FieldByName('KWH').AsString := l_KWH;
    FieldByName('TDM').AsString := l_TDM;
    FieldByName('TPMZ').AsFloat := l_TPMZ;
    FieldByName('TPSJ').AsFloat := l_TPSJ;
//  FieldByName('JJ').AsInteger := l_JJ;

    qry_initXJ.OnChange := nil;
    FieldByName('XJ').AsFloat := l_XJ;
    qry_initXJ.OnChange := qry_initXJChange;

    FieldByName('TS').AsFloat := 0;
    FieldByName('ZK').AsFloat := l_ZK;
    FieldByName('JSJ').AsFloat := l_JSJ;

    EnableControls;

    {设置处于编辑状态}
    rxdb_Init.SelectedIndex := 4;
    if not (dgAlwaysShowEditor in rxdb_Init.Options) then
    begin
      rxdb_Init.Options := rxdb_Init.Options + [dgAlwaysShowEditor];
      rxdb_Init.Options := rxdb_Init.Options - [dgAlwaysShowEditor];
    end;

    rxdb_Init.SetFocus;
  end;
end;

{==============================================================================}
{批量设置进价等}
procedure Tfrm_GRPKCCSH.Set_Data;
begin
  with TFrm_GRP_Init_PLSR.Create(Application) do
  try
    ShowModal;
    if ModalResult = mrok then
      case State of
        1: Set_ZK(Set_Result);
        21: Set_JSJ(Set_Result);
        22: Set_JSJ(Set_Result, false);
        31: Set_JJ1(Set_Result, Over_Write);
        32: Set_JJ2(Set_Result, Over_Write);
        4: Set_XJ(Over_Write);
      end;
  finally
    Free;
  end;
end;

{-------------------------------------------------------------------------------}
{批量设置折扣}
procedure Tfrm_GRPKCCSH.Set_ZK(Value: Double);
var
  cur_pos: Pointer;
  i: Integer;
begin
  with qry_Init do
  begin
    lbl_Search.Visible := False;
    pgb_State.Visible := True;
    lbl_State.Visible := True;
    lbl_State.Caption := '正在设置...';
    lbl_State.Refresh;
    Self.Refresh;
    pgb_State.Max := RecordCount;
    i := 0;

    cur_pos := GetBookmark;
    try
      DisableControls;
      ds_init.DataSet := nil;
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('JSJ').AsFloat := 0;
        FieldByName('ZK').AsFloat := Value;

        pgb_State.Position := i;
        i := i + 1;
        Next;
      end;
      GotoBookmark(cur_pos);
    finally
      FreeBookmark(cur_pos);
      ds_init.DataSet := qry_init;
      EnableControls;
    end;
    pgb_State.Visible := False;
    lbl_State.Visible := False;
    lbl_Search.Visible := True;
  end;
end;

{-------------------------------------------------------------------------------}
{批量设置结算价}
procedure Tfrm_GRPKCCSH.Set_JSJ(Value: Double; AGDZ: boolean = true);
var
  cur_pos: Pointer;
  i: Integer;
begin
  with qry_Init do
  begin
    lbl_Search.Visible := False;
    pgb_State.Visible := True;
    lbl_State.Visible := True;
    lbl_State.Caption := '正在设置...';
    lbl_State.Refresh;
    Self.Refresh;
    pgb_State.Max := RecordCount;
    i := 0;

    cur_pos := GetBookmark;
    try
      DisableControls;
      ds_init.DataSet := nil;
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('ZK').AsFloat := 0;
        if AGDZ then
          FieldByName('JSJ').AsFloat := Value * 100
        else
          FieldByName('JSJ').AsFloat := FieldByName('JJ').AsFloat;

        pgb_State.Position := i;
        i := i + 1;
        Next;
      end;
      GotoBookmark(cur_pos);
    finally
      FreeBookmark(cur_pos);
      ds_init.DataSet := qry_init;
      EnableControls;
    end;
    pgb_State.Visible := False;
    lbl_State.Visible := False;
    lbl_Search.Visible := True;
  end;
end;

{-------------------------------------------------------------------------------}
{批量设置进价1,依据折算价计算}
procedure Tfrm_GRPKCCSH.Set_JJ1(Value: Double; Over_Write: Boolean);
var
  cur_pos: Pointer;
  i: Integer;
begin
  with qry_Init do
  begin
    lbl_Search.Visible := False;
    pgb_State.Visible := True;
    lbl_State.Visible := True;
    lbl_State.Caption := '正在设置...';
    lbl_State.Refresh;
    Self.Refresh;
    pgb_State.Max := RecordCount;
    i := 0;

    cur_pos := GetBookmark;
    try
      DisableControls;
      ds_init.DataSet := nil;
      First;
      while not Eof do
      begin
        if (Over_Write = True) or (FieldByName('JJ').AsFloat = 0) then
        begin
          Edit;
          FieldByName('JJ').AsFloat := FieldByName('TPSJ').AsFloat * Value / 100;
        end;

        pgb_State.Position := i;
        i := i + 1;
        Next;
      end;
      GotoBookmark(cur_pos);
    finally
      FreeBookmark(cur_pos);
      ds_init.DataSet := qry_init;
      EnableControls;
    end;

    pgb_State.Visible := False;
    lbl_State.Visible := False;
    lbl_Search.Visible := True;
  end;
end;

{批量设置进价2,直接赋值}
procedure Tfrm_GRPKCCSH.Set_JJ2(Value: Double; Over_Write: Boolean);
var
  cur_pos: Pointer;
  i: Integer;
begin
  with qry_Init do
  begin
    lbl_Search.Visible := False;
    pgb_State.Visible := True;
    lbl_State.Visible := True;
    lbl_State.Caption := '正在设置...';
    lbl_State.Refresh;
    Self.Refresh;
    pgb_State.Max := RecordCount;
    i := 0;

    cur_pos := GetBookmark;
    try
      DisableControls;
      ds_init.DataSet := nil;
      First;
      while not Eof do
      begin
        if (Over_Write = True) or (FieldByName('JJ').AsFloat = 0) then
        begin
          Edit;
          FieldByName('JJ').AsFloat := Value * 100;
        end;

        pgb_State.Position := i;
        i := i + 1;
        Next;
      end;
      GotoBookmark(cur_pos);
    finally
      FreeBookmark(cur_pos);
      ds_init.DataSet := qry_init;
      EnableControls;
    end;
    pgb_State.Visible := False;
    lbl_State.Visible := False;
    lbl_Search.Visible := True;
  end;
end;

{批量设置销价}
procedure Tfrm_GRPKCCSH.Set_XJ(Over_Write: Boolean);
var
  cur_pos: Pointer;
  XjChange: TFieldNotifyEvent;
  i: Integer;
begin
  XjChange := qry_initXJ.OnChange;
  qry_initXJ.OnChange := nil;

  with qry_Init do
  begin
    lbl_Search.Visible := False;
    pgb_State.Visible := True;
    lbl_State.Visible := True;
    lbl_State.Caption := '正在设置...';
    lbl_State.Refresh;
    Self.Refresh;
    pgb_State.Max := RecordCount;
    i := 0;

    cur_pos := GetBookmark;
    try
      DisableControls;
      ds_init.DataSet := nil;
      First;
      while not Eof do
      begin
        if (Over_Write = True) or (FieldByName('XJ').AsFloat = 0) then
        begin
          with qry_Tmp do
          begin
            Close;
            SQL.Text := 'Select KCHSJ From TG_GJPPJGB where PPDM=''' + qry_Init.FieldByName('TDM').ASString + '''';
            Open;
          end;

          Edit;
          FieldByName('XJ').AsFloat := qry_Tmp.FieldByName('KCHSJ').AsFloat;
          FieldByName('TEMP').AsInteger := 1;
        end;

        pgb_State.Position := i;
        i := i + 1;
        Next;
      end;
      GotoBookmark(cur_pos);
    finally
      FreeBookmark(cur_pos);
      ds_init.DataSet := qry_init;
      EnableControls;
    end;

    pgb_State.Visible := False;
    lbl_State.Visible := False;
    lbl_Search.Visible := True;
  end;

  qry_initXJ.OnChange := XjChange;
end;

{===============================================================================}
{查询}
procedure Tfrm_GRPKCCSH.bbtn_FindClick(Sender: TObject);
begin
  with TFrm_GRP_Init_Search.Create(Application) do
  begin
    try
      ShowModal;
      if ModalResult = mrOk then
      begin
        lbl_Search.Caption := Search_Caption;
        Find_SQL := part_SQL;
        Show_Data;
      end;
    finally
      Free;
    end;
  end;
end;

{-------------------------------------------------------------------------------}
{更改库房,则按照默认显示其内容}
procedure Tfrm_GRPKCCSH.fcb_KFChange(Sender: TObject);
begin
  if Edit_State <> 1 then
    Show_Data;
end;

{-------------------------------------------------------------------------------}
{取消保存初始化数据,恢复原来的状态}
procedure Tfrm_GRPKCCSH.Cancel_Init_Data;
begin
  if CHQMsgBox('确实要取消所做的修改吗?', 2) = mrNo then
    Exit;
  qry_init.CancelUpdates;
  Set_State(0);
end;

{-------------------------------------------------------------------------------}
{保存初始化数据}
function Tfrm_GRPKCCSH.Save_Init_Data: Boolean;
var
  cur_pos: Pointer;
  l_PPDM, l_failPPDM: string;
  l_JJ, l_failJJ: Double;
  Can_Continue: Boolean;
  Have_Find: Boolean;
  i: Integer;
  procedure DoFailLocate;
  begin
    qry_Init.Locate('TDM', l_failPPDM, [loCaseInsensitive]);
    qry_Init.Locate('TDM;JJ', VarArrayOf([l_failPPDM, l_failJJ]), [loCaseInsensitive]);
  end;
begin
  l_JJ := 0;
  l_PPDM := '';

  with qry_init do
  begin
    DisableControls;
    ds_init.DataSet := nil;
    cur_pos := GetBookmark;

    {保存完毕以后返回原始位置}
    Have_Find := False;
    while not Eof do
    begin
      if FieldByName('TS').AsInteger <> 0 then
      begin
        l_PPDM := FieldByName('TDM').AsString;
        l_JJ := FieldByName('JJ').AsFloat;
        Have_Find := True;
        Break;
      end;
      Next;
    end;

    if Have_Find = False then
    begin
      GotoBookmark(cur_pos);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -