providerfrm.pas

来自「医药连锁经营管理系统源码」· PAS 代码 · 共 617 行 · 第 1/2 页

PAS
617
字号
    end;
    if  CdsPayModes.Locate('PayModeNo',CdsProvidersPayModeNo.value,[loPartialKey]) then
    begin
      CoKind.FindItem(CdsPayModesPayModeNo.Value+':'+CdsPayModesPayModeName.Value+':'+'['+CdsPayModesTimeLimit.AsString+'天]');
      CoKind.Items.Strings[CoKind.ItemIndex];
    end;
    If ShowModal<>mrOk then Begin
      CdsProviders.Cancel;
      CdsProviders.CancelUpdates;
    End;
  End;
End;

procedure TFmProvider.ActDeleExecute(Sender: TObject);
begin
  try
    If cdsProviders.IsEmpty then exit;
    If Application.MessageBox('确定删除当前厂商资料吗?', '删除', MB_YESNO+MB_ICONQUESTION)=IDYES then begin
      CdsProviders.Delete;
      If CdsProviders.ApplyUpdates(0)>0 Then Begin
        Messagebox(Handle,Pchar('提交数据失败!'),'错误',16);
        Exit;
      End;
    End;
  Except
    MessageBox(handle,'删除数据错误,可能数据已被其它表大量引用!','提示',MB_ICONWARNING+MB_OK);
  End;
end;

procedure TFmProvider.ActRefreshExecute(Sender: TObject);
Var iRecords,iTotal:Integer;
begin
  vOwnerData:=Null;
  iRecords:=PacketRcs;
  iTotal:=CdsProviders.RecordCount;
  PacketRcs:=iTotal;
  CdsProviders.Active:=False;
  CdsProviders.PacketRecords:=iTotal;
  CdsProviders.Active:=True;
  bTrueEof:=False;
  PacketRcs:=iRecords;
end;

procedure TFmProvider.ActMoreExecute(Sender: TObject);
Var
  abK:TBookMark;
begin
  Try
    If Packetrcs<0 Then
      CdsProviders.PacketRecords:=-1
    Else
      CdsProviders.PacketRecords:=Packetrcs;
    If (Not bTrueEof) Then
    Begin
      Try
        abK:=CdsProviders.GetBookmark;
        if abk<>PublicMark Then
          Abk:=PublicMark;
       if (CdsProviders.GetNextPacket<CdsProviders.PacketRecords) Then
       Begin
          bTrueEof:=True;
          ActMore.Enabled:=False;
       End;
        CdsProviders.Last;
        vOwnerData:=CdsProviders.FieldByname('ProvNo').Value;
        CdsProviders.GotoBookmark(abK);
        CdsProviders.Next;
      Finally
        CdsProviders.FreeBookmark(abK);
      End;
    End;
  Except
    On E:exception Do
      Messagebox(Handle,Pchar(E.Message),'',16);
  End;
End;

procedure TFmProvider.CdsProvidersBeforeGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
var val: Variant;
begin
  val := OwnerData;
  OwnerData := VarArrayCreate([0,1], varVariant);
  OwnerData[0] := val;
  OwnerData[1] := vOwnerData;
end;

procedure TFmProvider.CdsProvidersAfterOpen(DataSet: TDataSet);
begin
  with DataSet as TckClientDataSet do begin
    if VarIsNull(vOwnerData) then begin
      last;
      vOwnerData:=Fieldbyname('ProvNo').Value;
    end;
  end;
end;

procedure TFmProvider.CdsProvidersBeforeOpen(DataSet: TDataSet);
begin
  vOwnerData := null;
end;

procedure TFmProvider.BtnDelClick(Sender: TObject);
begin
  if CdsProviders.IsEmpty then Exit;
  if Application.MessageBox('确定删除当前供应商资料吗?', '消息', MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDNO then
    Exit;
  Try
    CdsProviders.Delete;
    CdsProviders.ApplyUpdates(0); 
  Except
    MessageBox(handle,'删除数据错误,可能有其它表使用了此表的数据!','提示',MB_OK);
  end;
end;

procedure TFmProvider.CdsProvidersReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  MessageBox(handle,pchar(E.Message),'提示',MB_OK);
  Action := raAbort;
end;

procedure TFmProvider.CdsProvGoodsReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  Action := raAbort;
end;

procedure TFmProvider.CdsProvLinkmansReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  Action := raAbort;
end;

procedure TFmProvider.CdsProvGoodsNewRecord(DataSet: TDataSet);
begin
  CdsProvGoodsProvNo.value := CdsProvidersProvNo.Value;
  cdsProvGoodsDataUsable.Value := true; 
  CdsProvGoodsNearDate.Value := Date;
end;

procedure TFmProvider.CdsProvLinkmansNewRecord(DataSet: TDataSet);
begin
  CdsProvLinkmansProvNo.value := CdsProvidersProvNo.Value;
  CdsProvLinkmansBirthday.Value := incmonth(Date,-300);
end;

procedure TFmProvider.CdsProvGoodsGoodsidChange(Sender: TField);
Var
  LogText,Flag,sGoodsID,sSetFields:String;
Begin
  IF FlagGoodsID<>'' Then Begin
    FlagGoodsID:='';
    Exit;
  End;
//  If bBrowGoods then Exit;
  sGoodsID:=CdsProvGoodsGoodsID.AsString;
  If sGoodsID='' Then Exit;
  if (BeforeGoodsID=sGoodsID) Then Exit;
  BeforeGoodsID:=sGoodsID;
  sSetFields:= 'Name,Specs,Unit1,Unit2';
  FlagGoodsID:=GetGoodsInfo(CdsProvGoods,'OPrice',sGoodsID,sSetFields, '', 'P', 0);
  If FlagGoodsID='' Then Begin
    Messagebox(Handle,'无效药品编号','错误:',16);
    Abort;
  End Else Begin
    if sGoodsID<>FlagGoodsID then
      CdsProvGoods.FieldByName('GoodsID').AsString:=FlagGoodsID
    Else
      FlagGoodsID:='';
  End;
End;

procedure TFmProvider.ActExitExecute(Sender: TObject);
begin
  Close;
end;

procedure TFmProvider.ActPrintExecute(Sender: TObject);
begin
  if not CdsProvLinkmans.Active then CdsProvLinkmans.Open;
  if not CdsProvGoods.Active then CdsProvGoods.Open;
  SelRepPrint(Name, [CdsProviders, cdsProvGoods, cdsProvLinkmans],
    '供应商资料;协议供应品种;供应商联系人',ActDesignReport.Enabled);
end;

procedure TFmProvider.ActNewLinkmanExecute(Sender: TObject);
begin
  if cdsProviders.IsEmpty then Exit;
  CdsProviders.Edit;
  CdsProvLinkmans.Append;
  with TFmProvLinkManEd.Create(self) do begin
    if ShowModal=mrOk then
      cdsProviders.ApplyUpdates(0)
    Else
      cdsProvLinkMans.CancelUpdates;
    Free;
  end;
end;

procedure TFmProvider.ActEdtLinkmanExecute(Sender: TObject);
begin
  if cdsProvLinkmans.IsEmpty then Exit;
  CdsProviders.Edit;
  with TFmProvLinkManEd.Create(self) do begin
    if ShowModal=mrOk then
      CdsProviders.ApplyUpdates(0)
    Else
      CdsProvLinkMans.CancelUpdates;
    Free;
  end;
end;

procedure TFmProvider.ActDelLinkmanExecute(Sender: TObject);
begin
  if cdsProvLinkmans.IsEmpty then Exit;
  if Application.MessageBox('确定删除当前供应商联系人资料吗?', '消息', MB_YESNO+MB_ICONQUESTION)=IDNO then
    Exit;
  CdsProviders.Edit;
  cdsProvLinkmans.Delete;
  cdsProviders.ApplyUpdates(0);
end;

procedure TFmProvider.ActEditProvGoodsExecute(Sender: TObject);
begin
  if CdsProvGoods.IsEmpty then Exit;
  CdsProviders.Edit;
  with TFmProvGoodsEd.Create(self) do begin
    if ShowModal=mrOk then
      CdsProviders.RefreshRecord;
    Free;
  end;
end;

procedure TFmProvider.ActNewProvGoodsExecute(Sender: TObject);
Var I:integer;
begin
  if cdsProviders.IsEmpty then Exit;
  with TFmProvGoodsEd.Create(self) do begin
    i:=CdsProvGoods.RecordCount;
    CdsProviders.Edit;
    CdsProvGoods.Append;
    If ShowModal=mrOk then Begin
      CdsProviders.RefreshRecord;
      CdsProvGoods.RecNo := i+1;
    End;
    Free;
  end;
end;

procedure TFmProvider.CdsProvidersAfterGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
begin
  PublicMark:=CdsProviders.GetBookmark;
end;

procedure TFmProvider.CdsProvidersBeforeRefresh(DataSet: TDataSet);
begin
  vOwnerData := null;
end;

procedure TFmProvider.ActDelProvGoodsExecute(Sender: TObject);
begin
  if CdsProvGoods.IsEmpty then Exit;
  if Application.MessageBox('确定删除当前供应商品种管理资料吗?', '消息', MB_YESNO+MB_ICONQUESTION)=IDNO then
    Exit;
  CdsProviders.Edit;
  CdsProvGoods.Delete;
  cdsProviders.ApplyUpdates(0);
end;

procedure TFmProvider.BtnPopMenuClick(Sender: TObject);
Var tp:TPoint;
begin
  tp.X:=BtnPopMenu.Left;
	tp.y:=BtnPopMenu.Top+BtnPopMenu.Height+1;
	tp:=ClientToScreen(tp);
	TopPopmenu.Popup(tp.x,tp.Y);
end;

procedure TFmProvider.ActFieldsLayOutExecute(Sender: TObject);
begin
  SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name,
                  [dbgProviders,dbgProvGoods,dbgProvLinkmans],
                  '供应厂商资料;供应商品种管理;供应商联系人管理');
end;

procedure TFmProvider.ActDataExportExecute(Sender: TObject);
begin
	ExportData([cdsProviders, cdsProvGoods, cdsProvLinkmans],
             '厂商资料;供应商品种资料;供应商联系人', '');
end;

procedure TFmProvider.dbgProvidersDblClick(Sender: TObject);
begin
  ActModify.Execute;
end;

initialization
  RegisterClass(TFmProvider);
finalization
  UnRegisterClass(TFmProvider);

end.

⌨️ 快捷键说明

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