?? frmmps.vb
字號:
Public Class frmMPS
Inherits 生產管理系統.frmBase
Dim dvDetailResult As DataView
#Region " Windows 窗體設計器生成的代碼 "
Public Sub New()
MyBase.New()
'該調用是 Windows 窗體設計器所必需的。
InitializeComponent()
'在 InitializeComponent() 調用之后添加任何初始化
End Sub
'窗體重寫 dispose 以清理組件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗體設計器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下過程是 Windows 窗體設計器所必需的
'可以使用 Windows 窗體設計器修改此過程。
'不要使用代碼編輯器修改它。
Friend WithEvents SqlDataAdapter1 As System.Data.SqlClient.SqlDataAdapter
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
Friend WithEvents txbEndDate As System.Windows.Forms.TextBox
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents txbBegDate As System.Windows.Forms.TextBox
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents txbPlanDate As System.Windows.Forms.TextBox
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents txbDate As System.Windows.Forms.TextBox
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents txbName As System.Windows.Forms.TextBox
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents txbID As System.Windows.Forms.TextBox
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents btnDate As System.Windows.Forms.Button
Friend WithEvents btnProduct As System.Windows.Forms.Button
Friend WithEvents txbPriStock As System.Windows.Forms.TextBox
Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents txbDemCount As System.Windows.Forms.TextBox
Friend WithEvents Label11 As System.Windows.Forms.Label
Friend WithEvents txbMPSCount As System.Windows.Forms.TextBox
Friend WithEvents Label12 As System.Windows.Forms.Label
Friend WithEvents txbProCount As System.Windows.Forms.TextBox
Friend WithEvents Label13 As System.Windows.Forms.Label
Friend WithEvents txbExpStock As System.Windows.Forms.TextBox
Friend WithEvents Label14 As System.Windows.Forms.Label
Friend WithEvents txbRemark As System.Windows.Forms.TextBox
Friend WithEvents Label15 As System.Windows.Forms.Label
Friend WithEvents btnSubmit As System.Windows.Forms.Button
Friend WithEvents SqlSelectCommand1 As System.Data.SqlClient.SqlCommand
Friend WithEvents SqlInsertCommand1 As System.Data.SqlClient.SqlCommand
Friend WithEvents SqlUpdateCommand1 As System.Data.SqlClient.SqlCommand
Friend WithEvents SqlDeleteCommand1 As System.Data.SqlClient.SqlCommand
Friend WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection
Friend WithEvents DataSet11 As 生產管理系統.DataSet1
Friend WithEvents dgdDetailList As System.Windows.Forms.DataGrid
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmMPS))
Me.SqlDataAdapter1 = New System.Data.SqlClient.SqlDataAdapter
Me.SqlDeleteCommand1 = New System.Data.SqlClient.SqlCommand
Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection
Me.SqlInsertCommand1 = New System.Data.SqlClient.SqlCommand
Me.SqlSelectCommand1 = New System.Data.SqlClient.SqlCommand
Me.SqlUpdateCommand1 = New System.Data.SqlClient.SqlCommand
Me.GroupBox1 = New System.Windows.Forms.GroupBox
Me.txbRemark = New System.Windows.Forms.TextBox
Me.DataSet11 = New 生產管理系統.DataSet1
Me.Label15 = New System.Windows.Forms.Label
Me.txbExpStock = New System.Windows.Forms.TextBox
Me.Label14 = New System.Windows.Forms.Label
Me.txbProCount = New System.Windows.Forms.TextBox
Me.Label13 = New System.Windows.Forms.Label
Me.txbMPSCount = New System.Windows.Forms.TextBox
Me.Label12 = New System.Windows.Forms.Label
Me.txbDemCount = New System.Windows.Forms.TextBox
Me.Label11 = New System.Windows.Forms.Label
Me.txbPriStock = New System.Windows.Forms.TextBox
Me.Label10 = New System.Windows.Forms.Label
Me.btnDate = New System.Windows.Forms.Button
Me.btnProduct = New System.Windows.Forms.Button
Me.txbEndDate = New System.Windows.Forms.TextBox
Me.Label9 = New System.Windows.Forms.Label
Me.txbBegDate = New System.Windows.Forms.TextBox
Me.Label8 = New System.Windows.Forms.Label
Me.txbPlanDate = New System.Windows.Forms.TextBox
Me.Label7 = New System.Windows.Forms.Label
Me.txbDate = New System.Windows.Forms.TextBox
Me.Label6 = New System.Windows.Forms.Label
Me.txbName = New System.Windows.Forms.TextBox
Me.Label5 = New System.Windows.Forms.Label
Me.txbID = New System.Windows.Forms.TextBox
Me.Label4 = New System.Windows.Forms.Label
Me.GroupBox2 = New System.Windows.Forms.GroupBox
Me.dgdDetailList = New System.Windows.Forms.DataGrid
Me.btnSubmit = New System.Windows.Forms.Button
Me.GroupBox1.SuspendLayout()
CType(Me.DataSet11, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox2.SuspendLayout()
CType(Me.dgdDetailList, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'SqlDataAdapter1
'
Me.SqlDataAdapter1.DeleteCommand = Me.SqlDeleteCommand1
Me.SqlDataAdapter1.InsertCommand = Me.SqlInsertCommand1
Me.SqlDataAdapter1.SelectCommand = Me.SqlSelectCommand1
Me.SqlDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "主生產計劃", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("物料編號", "物料編號"), New System.Data.Common.DataColumnMapping("編號", "編號"), New System.Data.Common.DataColumnMapping("年份", "年份"), New System.Data.Common.DataColumnMapping("計劃期", "計劃期"), New System.Data.Common.DataColumnMapping("開始日期", "開始日期"), New System.Data.Common.DataColumnMapping("結束日期", "結束日期"), New System.Data.Common.DataColumnMapping("期初庫存", "期初庫存"), New System.Data.Common.DataColumnMapping("需求數量", "需求數量"), New System.Data.Common.DataColumnMapping("MPS數量", "MPS數量"), New System.Data.Common.DataColumnMapping("生產單數量", "生產單數量"), New System.Data.Common.DataColumnMapping("預計庫存", "預計庫存"), New System.Data.Common.DataColumnMapping("記帳人", "記帳人"), New System.Data.Common.DataColumnMapping("修改日期", "修改日期"), New System.Data.Common.DataColumnMapping("審核人", "審核人"), New System.Data.Common.DataColumnMapping("審核日期", "審核日期"), New System.Data.Common.DataColumnMapping("狀態", "狀態"), New System.Data.Common.DataColumnMapping("備注", "備注")})})
Me.SqlDataAdapter1.UpdateCommand = Me.SqlUpdateCommand1
'
'SqlDeleteCommand1
'
Me.SqlDeleteCommand1.CommandText = "DELETE FROM 主生產計劃 WHERE (年份 = @Original_年份) AND (物料編號 = @Original_物料編號) AND (計劃期 " & _
"= @Original_計劃期) AND (MPS數量 = @Original_MPS數量) AND (修改日期 = @Original_修改日期 OR @Or" & _
"iginal_修改日期 IS NULL AND 修改日期 IS NULL) AND (備注 = @Original_備注 OR @Original_備注 IS " & _
"NULL AND 備注 IS NULL) AND (審核人 = @Original_審核人 OR @Original_審核人 IS NULL AND 審核人 I" & _
"S NULL) AND (審核日期 = @Original_審核日期 OR @Original_審核日期 IS NULL AND 審核日期 IS NULL) A" & _
"ND (開始日期 = @Original_開始日期 OR @Original_開始日期 IS NULL AND 開始日期 IS NULL) AND (期初庫存 " & _
"= @Original_期初庫存 OR @Original_期初庫存 IS NULL AND 期初庫存 IS NULL) AND (狀態 = @Original" & _
"_狀態) AND (生產單數量 = @Original_生產單數量 OR @Original_生產單數量 IS NULL AND 生產單數量 IS NULL) " & _
"AND (結束日期 = @Original_結束日期 OR @Original_結束日期 IS NULL AND 結束日期 IS NULL) AND (編號 =" & _
" @Original_編號 OR @Original_編號 IS NULL AND 編號 IS NULL) AND (記帳人 = @Original_記帳人 O" & _
"R @Original_記帳人 IS NULL AND 記帳人 IS NULL) AND (需求數量 = @Original_需求數量 OR @Original" & _
"_需求數量 IS NULL AND 需求數量 IS NULL) AND (預計庫存 = @Original_預計庫存 OR @Original_預計庫存 IS " & _
"NULL AND 預計庫存 IS NULL)"
Me.SqlDeleteCommand1.Connection = Me.SqlConnection1
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_年份", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "年份", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_物料編號", System.Data.SqlDbType.VarChar, 14, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "物料編號", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_計劃期", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "計劃期", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_MPS數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "MPS數量", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_修改日期", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "修改日期", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_備注", System.Data.SqlDbType.VarChar, 40, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "備注", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_審核人", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "審核人", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_審核日期", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "審核日期", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_開始日期", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "開始日期", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_期初庫存", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "期初庫存", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_狀態", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "狀態", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_生產單數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "生產單數量", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_結束日期", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "結束日期", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_編號", System.Data.SqlDbType.VarChar, 14, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "編號", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_記帳人", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "記帳人", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_需求數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "需求數量", System.Data.DataRowVersion.Original, Nothing))
Me.SqlDeleteCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@Original_預計庫存", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "預計庫存", System.Data.DataRowVersion.Original, Nothing))
'
'SqlConnection1
'
Me.SqlConnection1.ConnectionString = "workstation id=CS;packet size=4096;integrated security=SSPI;data source=cs;persis" & _
"t security info=False;initial catalog=mrpbook"
'
'SqlInsertCommand1
'
Me.SqlInsertCommand1.CommandText = "INSERT INTO 主生產計劃(物料編號, 編號, 年份, 計劃期, 開始日期, 結束日期, 期初庫存, 需求數量, MPS數量, 生產單數量, 預計庫存, " & _
"記帳人, 修改日期, 審核人, 審核日期, 狀態, 備注) VALUES (@物料編號, @編號, @年份, @計劃期, @開始日期, @結束日期, @期初庫存" & _
", @需求數量, @MPS數量, @生產單數量, @預計庫存, @記帳人, @修改日期, @審核人, @審核日期, @狀態, @備注); SELECT 物料編號" & _
", 編號, 年份, 計劃期, 開始日期, 結束日期, 期初庫存, 需求數量, MPS數量, 生產單數量, 預計庫存, 記帳人, 修改日期, 審核人, 審核日期," & _
" 狀態, 備注 FROM 主生產計劃 WHERE (年份 = @年份) AND (物料編號 = @物料編號) AND (計劃期 = @計劃期)"
Me.SqlInsertCommand1.Connection = Me.SqlConnection1
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@物料編號", System.Data.SqlDbType.VarChar, 14, "物料編號"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@編號", System.Data.SqlDbType.VarChar, 14, "編號"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@年份", System.Data.SqlDbType.Int, 4, "年份"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@計劃期", System.Data.SqlDbType.Int, 4, "計劃期"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@開始日期", System.Data.SqlDbType.Int, 4, "開始日期"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@結束日期", System.Data.SqlDbType.Int, 4, "結束日期"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@期初庫存", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "期初庫存", System.Data.DataRowVersion.Current, Nothing))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@需求數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "需求數量", System.Data.DataRowVersion.Current, Nothing))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@MPS數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "MPS數量", System.Data.DataRowVersion.Current, Nothing))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@生產單數量", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "生產單數量", System.Data.DataRowVersion.Current, Nothing))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@預計庫存", System.Data.SqlDbType.Decimal, 9, System.Data.ParameterDirection.Input, False, CType(15, Byte), CType(2, Byte), "預計庫存", System.Data.DataRowVersion.Current, Nothing))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@記帳人", System.Data.SqlDbType.VarChar, 10, "記帳人"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@修改日期", System.Data.SqlDbType.Int, 4, "修改日期"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@審核人", System.Data.SqlDbType.VarChar, 10, "審核人"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@審核日期", System.Data.SqlDbType.Int, 4, "審核日期"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@狀態", System.Data.SqlDbType.VarChar, 10, "狀態"))
Me.SqlInsertCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@備注", System.Data.SqlDbType.VarChar, 40, "備注"))
'
'SqlSelectCommand1
'
Me.SqlSelectCommand1.CommandText = "SELECT 物料編號, 編號, 年份, 計劃期, 開始日期, 結束日期, 期初庫存, 需求數量, MPS數量, 生產單數量, 預計庫存, 記帳人, 修改日期, " & _
"審核人, 審核日期, 狀態, 備注 FROM 主生產計劃"
Me.SqlSelectCommand1.Connection = Me.SqlConnection1
'
'SqlUpdateCommand1
'
Me.SqlUpdateCommand1.CommandText = "UPDATE 主生產計劃 SET 物料編號 = @物料編號, 編號 = @編號, 年份 = @年份, 計劃期 = @計劃期, 開始日期 = @開始日期, 結束日期" & _
" = @結束日期, 期初庫存 = @期初庫存, 需求數量 = @需求數量, MPS數量 = @MPS數量, 生產單數量 = @生產單數量, 預計庫存 = @預計" & _
"庫存, 記帳人 = @記帳人, 修改日期 = @修改日期, 審核人 = @審核人, 審核日期 = @審核日期, 狀態 = @狀態, 備注 = @備注 WHERE" & _
" (年份 = @Original_年份) AND (物料編號 = @Original_物料編號) AND (計劃期 = @Original_計劃期) AND (" & _
"MPS數量 = @Original_MPS數量) AND (修改日期 = @Original_修改日期 OR @Original_修改日期 IS NULL AN" & _
"D 修改日期 IS NULL) AND (備注 = @Original_備注 OR @Original_備注 IS NULL AND 備注 IS NULL) A" & _
"ND (審核人 = @Original_審核人 OR @Original_審核人 IS NULL AND 審核人 IS NULL) AND (審核日期 = @O" & _
"riginal_審核日期 OR @Original_審核日期 IS NULL AND 審核日期 IS NULL) AND (開始日期 = @Original_開" & _
"始日期 OR @Original_開始日期 IS NULL AND 開始日期 IS NULL) AND (期初庫存 = @Original_期初庫存 OR @O" & _
"riginal_期初庫存 IS NULL AND 期初庫存 IS NULL) AND (狀態 = @Original_狀態) AND (生產單數量 = @Ori" & _
"ginal_生產單數量 OR @Original_生產單數量 IS NULL AND 生產單數量 IS NULL) AND (結束日期 = @Original_" & _
"結束日期 OR @Original_結束日期 IS NULL AND 結束日期 IS NULL) AND (編號 = @Original_編號 OR @Orig" & _
"inal_編號 IS NULL AND 編號 IS NULL) AND (記帳人 = @Original_記帳人 OR @Original_記帳人 IS NUL" & _
"L AND 記帳人 IS NULL) AND (需求數量 = @Original_需求數量 OR @Original_需求數量 IS NULL AND 需求數量" & _
" IS NULL) AND (預計庫存 = @Original_預計庫存 OR @Original_預計庫存 IS NULL AND 預計庫存 IS NULL)" & _
"; SELECT 物料編號, 編號, 年份, 計劃期, 開始日期, 結束日期, 期初庫存, 需求數量, MPS數量, 生產單數量, 預計庫存, 記帳人, 修改日" & _
"期, 審核人, 審核日期, 狀態, 備注 FROM 主生產計劃 WHERE (年份 = @年份) AND (物料編號 = @物料編號) AND (計劃期 = @" & _
"計劃期)"
Me.SqlUpdateCommand1.Connection = Me.SqlConnection1
Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@物料編號", System.Data.SqlDbType.VarChar, 14, "物料編號"))
Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@編號", System.Data.SqlDbType.VarChar, 14, "編號"))
Me.SqlUpdateCommand1.Parameters.Add(New System.Data.SqlClient.SqlParameter("@年份", System.Data.SqlDbType.Int, 4, "年份"))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -