Khabibb Mubarakk Ответов: 0

Как установить автономер с форматом даты в VB net


как реализовать в коде ..
меня пробовали, но все равно увеличивали при смене даты...
я все еще сбит с толку ...
Счетчик ---

КОД ДАТА НОМЕР
PL-18.07.2017-0001
PL-18.07.2017-0002
PL-18.07.2017-0003
ПЛ-19/07/2017-0001 -----&ГТ; Дата изменения номер "0001"
PL-19.07.2017-0002
PL-19.07.2017-0003

пожалуйста, помогите мне, ребята..
Спасибо!!

Что я уже пробовал:

Call koneksi()
        sql = "select * from penjualan order by no_faktur desc"
        cmd = New OleDbCommand(sql, conn)
        dr = cmd.ExecuteReader
        dr.Read()
        If Not dr.HasRows Then
            penfaktur.Text = "PL" + Format(Now, "ddMMyyyy") + "0001"
        Else
            penfaktur.Text = Val(Microsoft.VisualBasic.Mid(dr.Item("no_faktur").ToString, 11, 4)) + 1
        End If
        If Len(penfaktur.Text) = 1 Then
            penfaktur.Text = "PL" + Format(Now, "ddMMyyyy") + "000" & penfaktur.Text & ""
        ElseIf Len(penfaktur.Text) = 2 Then
            penfaktur.Text = "PL" + Format(Now, "ddMMyyyy") + "00" & penfaktur.Text & ""
        ElseIf Len(penfaktur.Text) = 3 Then
            penfaktur.Text = "PL" + Format(Now, "ddMMyyyy") + "0" & penfaktur.Text & ""
        ElseIf Len(penfaktur.Text) = 4 Then
            penfaktur.Text = "PL" + Format(Now, "ddMMyyyy") + "" & penfaktur.Text & ""
        End If

Bernhard Hiller

Ваш код потерпит неудачу, если 2 (или более пользователей) сохранят данные в базе данных одновременно. Генерация этого номера должна быть делегирована базе данных.

Khabibb Mubarakk

правда... ты можешь сказать мне это с помощью кода ?.

Ralf Meier

Вы уже получили ответ на свой вопрос здесь :
https://www.codeproject.com/Questions/1196103/Automatic-number-with-date-format

Почему вы не последовали этому предложению ?
Единственный способ определить, изменилась ли дата, - это сравнить ее с датой из предыдущей записи - если они отличаются, Вы можете начать снова с 1 с ваших чисел ...

Khabibb Mubarakk

потому что я новичок, и мне нужен полный код, чтобы понять..

Ralf Meier

ОК... в вашем примере кода Вы читаете последнее число +1 в ' penfaktur.Текст".
Как я понимаю ваш код dr.Элемент ("no_faktur") содержит дату и номер последней сохраненной записи - so ... если вы сможете извлечь из него число ... почему бы вам не извлечь из него часть даты и не сравнить ее с сегодняшним днем ? Если обе даты не равны, вы делаете то же самое, что и тогда, когда dr имеет теперь строки - в чем проблема. Это не имеет ничего общего с Новичком или не-Новичком ... это означает " подумай о"

Khabibb Mubarakk

я получаю ответ

Ralf Meier

Хорошо ... затем добавьте его к своему вопросу или предоставьте в качестве решения ...
Возможно, возможны некоторые оптимизации. Если я увижу, как вы создаете свой номер, я буду очень уверен ...

Khabibb Mubarakk

но этот код надолго..
у меня есть более короткий, чем этот код с той же функцией

0 Ответов