Khabibb Mubarakk Ответов: 1

Автоматический номер с форматом даты


у меня есть код здесь ...
<pre>   If Not dr.HasRows Then
            penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF" + "0001"
        Else
            penfaktur.Text = Val(Microsoft.VisualBasic.Mid(dr.Item("no_faktur").ToString, 11, 4)) + 1
            If Len(penfaktur.Text) = 1 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF000" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 2 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF00" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 3 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF0" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 4 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF" & penfaktur.Text & ""
            End If
        End If

Я хочу, чтобы каждая дата меняла номер обратно на" 0001"..
Помоги мне..

экс :

01072017NF0099
01072017NF0100
02072017NF0001 < - - - изменить обратно на NF + 0001 здесь, так как дата изменилась
02072017NF0002
03072017NF0001 < - - - изменить обратно на NF + 0001 здесь, так как дата изменилась

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

If Not dr.HasRows Then
            penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF" + "0001"
        Else
            penfaktur.Text = Val(Microsoft.VisualBasic.Mid(dr.Item("no_faktur").ToString, 11, 4)) + 1
            If Len(penfaktur.Text) = 1 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF000" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 2 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF00" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 3 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF0" & penfaktur.Text & ""
            ElseIf Len(penfaktur.Text) = 4 Then
                penfaktur.Text = "" + Format(Now, "ddMMyyyy") + "NF" & penfaktur.Text & ""
            End If
        End If

Michael_Davies

Вместо того чтобы тестировать длину с таким количеством вложенных If вы могли бы просто;

пенфактур.Текст = "" формат + (теперь, "ддммгггг") + penfaktur.Текст.&Ампер PadLeft("0",4) ; ""

Кроме того, вы используете старые базовые вызовы функций, такие как Val и Mid, когда в файле .Net есть методы и функции для строк.

Не испытывал этого, но просто чтобы показать;

пенфактур.Text = (Целое Число.Синтаксический анализ(др.Пункт("no_faktur").Метод toString.Подстрока(10, 4)) + 1).Метод toString

Кроме того, вы должны быть уверены, что в строке было число, иначе вы получите исключение.

Khabibb Mubarakk

пожалуйста, дайте мне полный код

1 Ответов

Рейтинг:
2

CPallini

Сохранять последнее присвоенное Datetime и сравните его Date расстаться с одним из Datetime в настоящее время вы назначаете. При несоответствии перезагрузите счетчик.


Khabibb Mubarakk

я знаю, что хочу, чтобы cek был в базе данных, если дата не совпадает, то возвращаюсь к 0001
но я все еще путаю, как реализовать код..потому что я действительно любитель на vb