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

📄 accountinfoform.pas.~1~

📁 胜天进销存源码,国产优秀的进销存
💻 ~1~
字号:
unit AccountInfoForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, EditForm, dxExEdtr, dxEdLib, dxDBELib, dxCntner, dxEditor,
  KsSkinLabels, KsSkinForms, KsSkinButtons, DB, ADODB, SysPublic,
  KsSkinPanels, KsSkinTabs, StdCtrls, KsSkinCheckBoxs, KsSkinGroupBoxs,
  Buttons, se_controls, KsSkinSpeedButtons;

type
  TfrmAccountInfo = class(TfrmEditForm)
    bbOk: TSeSkinButton;
    bbNo: TSeSkinButton;
    dsSource: TDataSource;
    DataSet: TADODataSet;
    PageControl: TSeSkinPageControl;
    TabSheet1: TSeCustomTabSheet;
    TabSheet2: TSeCustomTabSheet;
    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: TSeCustomTabSheet;
    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: TSeCustomTabSheet;
    SeSkinPanel4: TSeSkinPanel;
    SeSkinLabel13: TSeSkinLabel;
    pkBillName: TdxPickEdit;
    SeSkinGroupBox5: TSeSkinGroupBox;
    SeSkinLabel8: TSeSkinLabel;
    SeSkinLabel9: TSeSkinLabel;
    SeSkinLabel10: TSeSkinLabel;
    SeSkinLabel11: TSeSkinLabel;
    SeSkinLabel12: TSeSkinLabel;
    lblBillAutoDemo: TSeSkinLabel;
    edtBillSerialExp: TdxButtonEdit;
    edtBillSerialSp: TdxEdit;
    edtBillSerialNum: TdxEdit;
    edtBillSerialUser: TdxEdit;
    KsCustomTabSheet3: TSeCustomTabSheet;
    SeSkinPanel5: TSeSkinPanel;
    SeSkinGroupBox4: TSeSkinGroupBox;
    lblUnit: TSeSkinLabel;
    lblDepot: TSeSkinLabel;
    edtDepot: TdxButtonEdit;
    edtUnit: TdxButtonEdit;
    cbxMinusWare: TSeSkinCheckBox;
    SpeedButton2: TSeSkinSpeedButton;
    SpeedButton1: TSeSkinSpeedButton;
    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 + -