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

📄 accountinfoform.pas

📁 胜天财务进销存2003源代码,SQLSERVER版,目前最完整的财务进销存系统.
💻 PAS
字号:
unit AccountInfoForm;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  EditForm,
  dxExEdtr,
  dxEdLib,
  dxDBELib,
  dxCntner,
  dxEditor,
  KsControls,
  KsLabels,
  KsSkinLabels,
  KsHooks,
  KsForms,
  KsSkinForms,
  KsButtons,
  KsSkinButtons,
  DB,
  ADODB,
  SysPublic,
  KsPanels,
  KsSkinPanels,
  KsTabs,
  KsSkinTabs,
  StdCtrls,
  KsCheckBoxs,
  KsSkinCheckBoxs,
  KsGroupBoxs,
  KsSkinGroupBoxs,
  Buttons;

type
  TfrmAccountInfo = class(TfrmEditForm)
    bbOk: TSeSkinButton;
    bbNo: TSeSkinButton;
    dsSource: TDataSource;
    DataSet: TADODataSet;
    PageControl: TSeSkinPageControl;
    TabSheet1: TKsCustomTabSheet;
    TabSheet2: TKsCustomTabSheet;
    SeSkinPanel1: TSeSkinPanel;
    lblName: TSeSkinLabel;
    Label6: TSeSkinLabel;
    Label5: TSeSkinLabel;
    Label10: TSeSkinLabel;
    Label9: TSeSkinLabel;
    Label11: TSeSkinLabel;
    Label12: TSeSkinLabel;
    Label13: TSeSkinLabel;
    Label14: TSeSkinLabel;
    SeSkinLabel1: TSeSkinLabel;
    Label16: TSeSkinLabel;
    edtName: TdxDBEdit;
    dxDBEdit6: TdxDBEdit;
    dxDBEdit5: TdxDBEdit;
    dxDBEdit10: TdxDBEdit;
    dxDBEdit9: TdxDBEdit;
    dxDBEdit4: TdxDBEdit;
    dxDBMemo1: TdxDBMemo;
    dxDBEdit11: TdxDBEdit;
    dxDBEdit12: TdxDBEdit;
    dxDBEdit2: TdxDBEdit;
    dxDBEdit14: TdxDBEdit;
    SeSkinPanel2: TSeSkinPanel;
    SeSkinLabel2: TSeSkinLabel;
    edtOutOrder: TdxPickEdit;
    KsCustomTabSheet1: TKsCustomTabSheet;
    cbxLog: TSeSkinCheckBox;
    SeSkinPanel3: TSeSkinPanel;
    SeSkinGroupBox1: TSeSkinGroupBox;
    SeSkinLabel3: TSeSkinLabel;
    SeSkinLabel4: TSeSkinLabel;
    cbxStock: TSeSkinCheckBox;
    edtNum1: TdxEdit;
    edtNum2: TdxEdit;
    SeSkinGroupBox2: TSeSkinGroupBox;
    SeSkinLabel5: TSeSkinLabel;
    lblDate: TSeSkinLabel;
    cbxAR: TSeSkinCheckBox;
    edtRTotal: TdxEdit;
    edtRDate: TdxDateEdit;
    SeSkinGroupBox3: TSeSkinGroupBox;
    SeSkinLabel6: TSeSkinLabel;
    SeSkinLabel7: TSeSkinLabel;
    cbxAP: TSeSkinCheckBox;
    edtPTotal: TdxEdit;
    edtPDate: TdxDateEdit;
    cbxPrintSave: TSeSkinCheckBox;
    cbxTwoUnit: TSeSkinCheckBox;
    cbxRepGroup: TSeSkinCheckBox;
    cbxPriceCan0: TSeSkinCheckBox;
    KsCustomTabSheet2: TKsCustomTabSheet;
    SeSkinPanel4: TSeSkinPanel;
    SpeedButton2: TSpeedButton;
    SeSkinLabel13: TSeSkinLabel;
    pkBillName: TdxPickEdit;
    SeSkinGroupBox5: TSeSkinGroupBox;
    SeSkinLabel8: TSeSkinLabel;
    SeSkinLabel9: TSeSkinLabel;
    SeSkinLabel10: TSeSkinLabel;
    SeSkinLabel11: TSeSkinLabel;
    SeSkinLabel12: TSeSkinLabel;
    lblBillAutoDemo: TSeSkinLabel;
    SpeedButton1: TSpeedButton;
    edtBillSerialExp: TdxButtonEdit;
    edtBillSerialSp: TdxEdit;
    edtBillSerialNum: TdxEdit;
    edtBillSerialUser: TdxEdit;
    KsCustomTabSheet3: TKsCustomTabSheet;
    SeSkinPanel5: TSeSkinPanel;
    SeSkinGroupBox4: TSeSkinGroupBox;
    lblUnit: TSeSkinLabel;
    lblDepot: TSeSkinLabel;
    edtDepot: TdxButtonEdit;
    edtUnit: TdxButtonEdit;
    cbxMinusWare: TSeSkinCheckBox;
    procedure bbNoClick(Sender: TObject);
    procedure bbOkClick(Sender: TObject);
    procedure edtUnitButtonClick(Sender: TObject; AbsoluteIndex: Integer);
    procedure edtDepotButtonClick(Sender: TObject; AbsoluteIndex: Integer);
    procedure edtBillSerialExpButtonClick(Sender: TObject; AbsoluteIndex:
      Integer);
    procedure SpeedButton1Click(Sender: TObject);
    procedure edtBillSerialExpChange(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure edtBillSerialExpClick(Sender: TObject);
  private
    { Private declarations }
    lUnitID, lDepotID: Integer;
    bReturn: Boolean;
    function GetBillItemIndex: Integer;
    procedure MainShow;
    procedure LoadData;
  public
    { Public declarations }
  end;

function AccountInfoShow: Boolean;
implementation

uses DBData,
  UserLimitForm,
  ExpressionForm;
{$R *.dfm}

function AccountInfoShow: Boolean;
var
  frmAccountInfo: TfrmAccountInfo;
begin
  frmAccountInfo := TfrmAccountInfo.Create(Application);
  with frmAccountInfo do
  begin
    MainShow;
    Result := bReturn;
    Free;
  end;
end;

procedure TfrmAccountInfo.MainShow;
begin
  if not CheckLimit(ACCOUNT_INFO) then
  begin
    ShowMsg('对不起,你没有权限使用此功能!');
    Exit;
  end;
  LoadData;
  ShowModal;
end;

function TfrmAccountInfo.GetBillItemIndex: Integer;
begin
  case pkBillName.ItemIndex of
    //进货单编辑{100-110}
    0: Result := STOCK_ORDER_EDIT; //进货订单
    1: Result := STOCK_FORMAL_EDIT; //进货单
    2: Result := STOCK_MONEY_EDIT; //进货付款单
    3: Result := STOCK_BACK_EDIT; //进货退货单
    //销售单编辑{110-120}
    4: Result := SALE_ORDER_EDIT; //销售订单
    5: Result := SALE_FORMAL_EDIT; //销售单
    6: Result := SALE_MONEY_EDIT; //销售收款单
    7: Result := SALE_READY_EDIT; //现款销售单
    8: Result := SALE_BACK_EDIT; //销售退货单
    9: Result := SALE_POS_EDIT; //零售单(POS)
    //库存单据
    10: Result := EXIST_DRAW; //领料单
    11: Result := EXIST_RETURN; //退料单
    12: Result := EXIST_LOSING; //报损单
    13: Result := EXIST_INCREASE; //报溢单
    14: Result := EXIST_PRESENT; //赠送单
    15: Result := EXIST_GAIN; //获赠单
    16: Result := EXIST_ENTER_DEPOT; //产品进仓
    17: Result := EXIST_CHECK_LIST; //库存盘点
    18: Result := EXIST_CHANGE_PRICE; //存货调价
    19: Result := EXIST_EXCHANGE; //仓库调拨
    20: Result := EXIST_PRICE_EXCHANGE; //变价调拨
    21: Result := EXIST_ASSEMBLY; //组装拆卸
    22: Result := EXIST_OTHER; //库存变动
    //钱流单据
    23: Result := MONEY_EXPENSES; //其它费用单
    24: Result := MONEY_INCOME; //其它收入单
    25: Result := MONEY_DEPOSIT; //银行存取款
  else
    Result := -1;
  end;
end;

procedure TfrmAccountInfo.LoadData;
var
  sSql: string;
begin
  bReturn := false;

  pkBillName.Items.Text := '  进货订单' + #13 + '  进货单' + #13 + '  进货付款单'
    + #13 + '  进货退货单' + #13 +
    '  销售订单' + #13 + '  销售单' + #13 + '  销售收款单' + #13 + '  现款销售单'
    + #13 + '  销售退货单' + #13 +
    '  零售单(POS)' + #13 +
    '  领料单' + #13 + '  退料单' + #13 + '  报损单' + #13 + '  报溢单' + #13 +
    '  赠送单' + #13 +
    '  获赠单' + #13 + '  产品进仓' + #13 + '  库存盘点' + #13 + '  存货调价' +
    #13 + '  仓库调拨' + #13 +
    '  变价调拨' + #13 + '  组装拆卸' + #13 + '  库存变动' + #13 +
    '  其它费用单' + #13 + '  其它收入单' + #13 + '  银行存取款';
  pkBillName.ItemIndex := 0;

  PageControl.TabIndex := 0;
  edtOutOrder.ItemIndex := StrToInt2(GetIniValue(frmData.ADOConnet, 'OutOrder'));
  cbxLog.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'OperateLog'));
  cbxPrintSave.Checked := StrToBool2(GetIniValue(frmData.ADOConnet,
    'BillSavePrint'));
  cbxTwoUnit.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'UseTwoUnit'));
  //双单位
  cbxRepGroup.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'ReportGroup')); //表表分组
  cbxPriceCan0.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'BillPriceCan0'));
  cbxMinusWare.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'CanMinusWare'));

  //单据自动编号
  edtBillSerialSp.Text := GetIniValue(frmData.ADOConnet, 'BillSerialSp');
  edtBillSerialNum.Text := GetIniValue(frmData.ADOConnet, 'BillSerialNum');
  edtBillSerialUser.Text := GetIniValue(frmData.ADOConnet, 'BillSerialUser');
  edtBillSerialExp.Text := GetIniValue(frmData.ADOConnet, 'BillSerialExp');
  //报警
  cbxStock.Checked := StrToBool2(GetIniValue(frmData.ADOConnet,
    'StockAnnunct'));
  cbxAR.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'ARAnnunct'));
  cbxAP.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'APAnnunct'));
  //零售单
  lUnitID := StrToInt2(GetIniValue(frmData.ADOConnet, 'POSUnitID'));
  lDepotID := StrToInt2(GetIniValue(frmData.ADOConnet, 'POSDepotID'));
  if lUnitID > 0 then
    edtUnit.Text := FieldIdToName('Unit', IntToStr(lUnitID), 'Name');
  if lDepotID > 0 then
    edtDepot.Text := FieldIdToName('Depot', IntToStr(lDepotID), 'Name');
  sSql := 'SELECT * FROM CoAccountInfo';
  OpenDataSet(DataSet, sSql);
end;

procedure TfrmAccountInfo.bbNoClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmAccountInfo.bbOkClick(Sender: TObject);
begin
  inherited;
  SetIniValue(frmData.ADOConnet, 'OutOrder', IntToStr(edtOutOrder.ItemIndex));
  SetIniValue(frmData.ADOConnet, 'OperateLog', BoolToStr(cbxLog.Checked, False));
  SetIniValue(frmData.ADOConnet, 'BillSavePrint', BoolToStr(cbxPrintSave.Checked));
  SetIniValue(frmData.ADOConnet, 'ReportGroup', BoolToStr(cbxRepGroup.Checked));
  SetIniValue(frmData.ADOConnet, 'BillPriceCan0', BoolToStr(cbxPriceCan0.Checked)); //录单时商品单价可以为零
  SetIniValue(frmData.ADOConnet, 'CanMinusWare', BoolToStr(cbxMinusWare.Checked)); //允许产生负库存商品
  SetIniValue(frmData.ADOConnet, 'UseTwoUnit', BoolToStr(cbxTwoUnit.Checked));
  //双单位
  bUseTwoUnit := cbxTwoUnit.Checked;
  //单据自动编号
  SetIniValue(frmData.ADOConnet, 'BillSerialSp', edtBillSerialSp.Text);
  SetIniValue(frmData.ADOConnet, 'BillSerialNum', edtBillSerialNum.Text);
  SetIniValue(frmData.ADOConnet, 'BillSerialUser', edtBillSerialUser.Text);
  SetIniValue(frmData.ADOConnet, 'BillSerialExp', edtBillSerialExp.Text);
  //报警
  SetIniValue(frmData.ADOConnet, 'StockAnnunct', BoolToStr(cbxStock.Checked));
  SetIniValue(frmData.ADOConnet, 'ARAnnunct', BoolToStr(cbxAR.Checked));
  SetIniValue(frmData.ADOConnet, 'APAnnunct', BoolToStr(cbxAP.Checked));
  //零售单
  SetIniValue(frmData.ADOConnet, 'POSUnitID', IntToStr(lUnitID));
  SetIniValue(frmData.ADOConnet, 'POSDepotID', IntToStr(lDepotID));

  if SaveDataSet(DataSet, false) then
    bReturn := True;
  Close;
end;

procedure TfrmAccountInfo.edtUnitButtonClick(Sender: TObject; AbsoluteIndex:
  Integer);
var
  sUnit: string;
begin
  inherited;
  sUnit := BaseSelect(BASE_CLIENT, 1, edtUnit.Text);
  if (sUnit <> '') then
  begin
    lUnitID := StrToInt2(sUnit);
    edtUnit.Text := FieldIdToName('Unit', sUnit, 'Name');
  end;
end;

procedure TfrmAccountInfo.edtDepotButtonClick(Sender: TObject; AbsoluteIndex:
  Integer);
var
  sDepot: string;
begin
  inherited;
  sDepot := BaseSelect(BASE_DEPOT, 1, edtDepot.Text);
  if (sDepot <> '') then
  begin
    lDepotID := StrToInt2(sDepot);
    edtDepot.Text := FieldIdToName('Depot', sDepot, 'Name');
  end;
end;

procedure TfrmAccountInfo.edtBillSerialExpButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
var
  sItem, sExp: string;
begin
  inherited;
  sExp := edtBillSerialExp.Text;
  sItem := '单据简拼' + #13 + '年' + #13 + '月' + #13 + '日' + #13 + '自增序号'
    + #13 + '自定义' + #13 + '分割符';
  sExp := GetExpression(sItem, sExp, 1);
  if sExp <> '' then
    edtBillSerialExp.Text := sExp;
end;

procedure TfrmAccountInfo.SpeedButton1Click(Sender: TObject);
begin
  inherited;
  edtBillSerialExp.Text := '单据简拼+年+月+日+自增序号';
end;

procedure TfrmAccountInfo.edtBillSerialExpChange(Sender: TObject);
begin
  inherited;
  lblBillAutoDemo.Caption :=
    GetAutoSerial2(GetBillItemIndex, 0, edtBillSerialSp.Text,
    edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
end;

procedure TfrmAccountInfo.SpeedButton2Click(Sender: TObject);
var
  sSql: string;
begin
  inherited;
  if MsgBox('重设单据起始序号,会使单据的编号恢复到以上自增序号的值!' + #13 +
    '是否重设?', '提示', MB_OKCancel) = IDOK then
  begin
    sSql := 'DELETE FROM SysDef WHERE Mode=' + IntToStr(GetBillItemIndex);
    if ExecSql(sSql) then
      GetAutoSerial2(GetBillItemIndex, 1, edtBillSerialSp.Text,
        edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
  end;
end;

procedure TfrmAccountInfo.edtBillSerialExpClick(Sender: TObject);
begin
  inherited;
  lblBillAutoDemo.Caption := GetAutoSerial2(GetBillItemIndex, 0, edtBillSerialSp.Text,
    edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
end;

end.

⌨️ 快捷键说明

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