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

📄 edlgn.pas

📁 this is sample for traders
💻 PAS
字号:
unit edLgn;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, Menus, DB, JvGradientCaption, DBNumEdit, JvExControls,
  JvComponent, JvDBLookup, JvStaticText, Mask, DBCtrls, ExtCtrls, StdCtrls,
  Buttons, Grids, DBGrids, JvExDBGrids, JvDBGrid, JvDBUltimGrid,
  JvExStdCtrls, JvCombobox, JvExExtCtrls, JvDBRadioPanel, JvExtComponent,
  JvButton, JvCtrls, JvFooter, DynamicSkinForm;

type
  TedLgnForm = class(TForm)
    GroupBox1: TGroupBox;
    Panel3: TPanel;
    btnChange: TButton;
    dbedCode: TDBEdit;
    JvStaticText3: TJvStaticText;
    dbedName: TDBEdit;
    GroupBox2: TGroupBox;
    Image1: TImage;
    btnAddress: TBitBtn;
    Memo1: TMemo;
    GroupBox3: TGroupBox;
    Image2: TImage;
    TlpGrid: TJvDBUltimGrid;
    btnTlp: TBitBtn;
    GroupBox4: TGroupBox;
    Image3: TImage;
    CtcGrid: TJvDBUltimGrid;
    btnCtc: TBitBtn;
    JvDBLookupCombo2: TJvDBLookupCombo;
    dsEdLgn: TDataSource;
    dsCtc: TDataSource;
    dsPhone: TDataSource;
    dsTitleName: TDataSource;
    JvFooter1: TJvFooter;
    btnCancel: TJvFooterBtn;
    btnSave: TJvFooterBtn;
    ImageList1: TImageList;
    spDynamicSkinForm1: TspDynamicSkinForm;
    procedure btnAddressClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnCancelClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnTlpClick(Sender: TObject);
    procedure btnCtcClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure TlpGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure CtcGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    procedure ViewAddress;
    procedure ViewPhone;
  public
    procedure Edit;
    procedure Enter(LGNCODE:String);
  end;

var
  edLgnForm: TedLgnForm;
  nLGNCODE: String;

implementation

{$R *.dfm}

uses DataMod1, edLgnAddr, edLgnPhone, edLgnCtc, main;

procedure TedLgnForm.btnAddressClick(Sender: TObject);
begin
  LgnAddrForm:=TLgnAddrForm.Create(nil);
  if LgnAddrForm.ShowModalAddress = mrOk then ViewAddress;
end;

procedure TedLgnForm.Edit;
begin
  mainform.CreateMDIChild(TEdLgnForm);
end;

procedure TedLgnForm.Enter(LGNCODE:String);
begin
  DM1.qEdLgn.Append;
  DM1.qEdLgn.FieldByName('LGNCODE').Value := LGNCODE;
  nLGNCODE:=LGNCODE;
  mainform.CreateMDIChild(TEdLgnForm);
end;

procedure TedLgnForm.FormCreate(Sender: TObject);
begin
  DateSeparator := '-'; ShortDateFormat := 'dd/mm/yyyy';
  Top := 1; Left := 1;
end;

procedure TedLgnForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TedLgnForm.btnCancelClick(Sender: TObject);
begin
  DM1.qLgnPhone.CancelUpdates;
  DM1.qLgnCtc.CancelUpdates;
  DM1.qEdLgn.CancelUpdates;
  Close;
end;

procedure TedLgnForm.FormShow(Sender: TObject);
begin
  ViewAddress;
  ViewPhone;
end;

procedure TedLgnForm.ViewAddress;
begin
  Memo1.Lines.Clear;
  Memo1.Lines.Add(DM1.qEdLgnADDRESS.Value);
  Memo1.Lines.Add(DM1.qEdLgnCITY.Value+', '+DM1.qEdLgnPOSCODE.Value);
  Memo1.Lines.Add(DM1.qEdLgnCOUNTRY.Value);
end;

procedure TedLgnForm.btnTlpClick(Sender: TObject);
begin
  //DM1.qLgnPhone.Close;
  //DM1.qLgnPhone.Open;
  DM1.qLgnPhone.Append;
  edLgnPhoneForm:=TedLgnPhoneForm.Create(nil);
  edLgnPhoneForm.ShowModal;
end;

procedure TedLgnForm.ViewPhone;
begin
  with DM1.qLgnPhone do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM LGN_TLP WHERE LGNCODE=:LGNCODE ORDER BY LINENO ASC ');
    Open;
  end;
  with DM1.qLgnCtc do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM LGN_CTC WHERE LGNCODE=:LGNCODE ORDER BY LINENO ASC ');
    Open;
  end;
end;

procedure TedLgnForm.btnCtcClick(Sender: TObject);
begin
  DM1.qLgnCtc.Append;
  edLgnCtcForm:=TedLgnCtcForm.Create(nil);
  edLgnCtcForm.ShowModal;
end;

procedure TedLgnForm.btnSaveClick(Sender: TObject);
begin
  {with DM1.CHKCODE do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM LGN_ADDRESS WHERE LGNCODE=:nCode ');
    ParamByName('nCode').Value:=nLGNCODE;
    Open;
  end;
  if DM1.CHKCODE.RecordCount=0 then
  begin
    DM1.qLgnAddr.Append;
    DM1.qLgnAddr.Edit;
    DM1.qLgnAddrLGNCODE.Value:=nLGNCODE;
    DM1.qLgnAddrLINENO.Value:=1;
    DM1.qLgnAddrADDRESS.Value:='Jl.';
    DM1.qLgnAddrGRUP.Value:='BISNIS';
  end;}
  try
    DM1.dtaCon.StartTransaction;
    //DM1.qLgnAddr.ApplyUpdates; DM1.qLgnAddr.CommitUpdates;
    DM1.qLgnPhone.ApplyUpdates; DM1.qLgnPhone.CommitUpdates;
    DM1.qLgnCtc.ApplyUpdates; DM1.qLgnCtc.CommitUpdates;
    DM1.qEdLgn.ApplyUpdates; DM1.qEdLgn.CommitUpdates;
    DM1.dtaCon.Commit;
  except
    DM1.dtaCon.Rollback;
  end;
  //DM1.qLgn.Refresh;
  //Close;
end;

procedure TedLgnForm.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
    if not (ActiveControl is TDBGrid) then
    begin
      key := #0;
      Perform(WM_NEXTDLGCTL, 0, 0);
    end
end;

procedure TedLgnForm.TlpGridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = VK_DELETE) then Key := 0;
  if (key in [vk_next, vk_insert]) then key:=0;
  If (key in [vk_delete]) and (DM1.qLgnPhone.State in [dsBrowse, dsInsert]) then
  begin
    DM1.qLgnPhone.Delete;
    DM1.qLgnPhone.ApplyUpdates; DM1.qLgnPhone.CommitUpdates;
  end;
end;

procedure TedLgnForm.CtcGridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = VK_DELETE) then Key := 0;
  if (key in [vk_next, vk_insert]) then key:=0;
  If (key in [vk_delete]) and (DM1.qLgnCtc.State in [dsBrowse, dsInsert]) then
  begin
    DM1.qLgnCtc.Delete;
    DM1.qLgnCtc.ApplyUpdates; DM1.qLgnCtc.CommitUpdates;
  end;
end;

end.

⌨️ 快捷键说明

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