Tampilan penyortiran Lotus pada tanggal pemesanan tidak berfungsi dengan benar

Saya telah membuat tampilan di mana saya juga memiliki kolom yang berisi tanggal. Kolom ini dapat diurutkan secara ascending dan descending. Ini adalah nilai properti kolom saya:

masukkan deskripsi gambar di sini

Namun masalahnya adalah tampilan tidak mengurutkan tanggal dengan benar:

masukkan deskripsi gambar di sini

Dan berikut tangkapan layar dari bidang tanggal pemesanan itu sendiri:

masukkan deskripsi gambar di sini

Dan berikut tangkapan layar dokumen dengan tanggal pemesanan yang tidak berurutan dalam tampilan:

masukkan deskripsi gambar di sini

Perbarui

Beberapa dokumen memiliki tanggal pemesanan sebagai teks, bukan tanggal.. Saya membuat dokumen ini melalui agen Java. Bidang orderdate saya isi seperti ini:

SimpleDateFormat formatterDatumForField=new SimpleDateFormat("dd-MM-yyyy");
docOrder.replaceItemValue("Orderdatum",formatterDatumForField.format(currentDateForField));

Tapi itu disimpan sebagai teks, bukan tanggal. Ada yang tahu kenapa?


person YdB    schedule 10.01.2017    source sumber
comment
apakah tanggal pesananmu benar-benar sebuah tanggal? Menampilkan properti salah satu dokumen yang memperlihatkan item yang Anda gunakan dalam tampilan   -  person Torsten Link    schedule 10.01.2017
comment
Harap tunjukkan tangkapan layar yang sama dari dokumen pertama yang rusak (19-12-2016)   -  person Torsten Link    schedule 10.01.2017
comment
Oke, saya perbarui pertanyaan saya lagi   -  person YdB    schedule 10.01.2017
comment
@bboni Apakah ini kolom pertama dalam tampilan?   -  person Dmytro Pastovenskyi    schedule 10.01.2017
comment
@bboni mungkin terkait dengan penyortiran di kolom pertama. Apa yang terjadi jika Anda mengeklik tajuk kolom untuk menyortir dokumen (apakah itu berfungsi?)?   -  person Dmytro Pastovenskyi    schedule 10.01.2017
comment
Ya, kolom pertama dapat diurutkan dari atas ke atas dan ini berfungsi dengan baik   -  person YdB    schedule 10.01.2017
comment
Ada total 10 header kolom dalam tampilan dan semuanya dapat diurutkan   -  person YdB    schedule 10.01.2017
comment
jika kolom pertama diurutkan, maka kolom kedua akan mengikuti pengurutan kolom pertama. Cobalah untuk mengatur kolom Tanggal sebagai yang pertama - ini akan berfungsi seperti yang Anda harapkan (kemungkinan besar)   -  person Dmytro Pastovenskyi    schedule 10.01.2017
comment
Masih masalah yang sama jika saya menetapkan tajuk kolom tanggal sebagai yang pertama   -  person YdB    schedule 10.01.2017
comment
Jadikan kami contoh dan mari kita lihat databasenya :)   -  person Dmytro Pastovenskyi    schedule 10.01.2017
comment
oke itu akan sulit saya rasa saya hanya menggunakan pengaturan ini tidak masalah   -  person YdB    schedule 10.01.2017
comment
Sudahkah Anda mencoba membuka tab keempat dalam dialog properti kolom dan mengubah pilihan Gaya dari Umum ke Tanggal?   -  person Richard Schwartz    schedule 10.01.2017
comment
Apakah nilai-nilai di semua dokumen bertanggal? Atau apakah ada tanggal dan string?   -  person Duston    schedule 10.01.2017
comment
@RichardSchwartz ya sudah mencoba dan masih tidak berhasil.   -  person YdB    schedule 10.01.2017
comment
@Duston Dan Duston Anda benar, beberapa dokumen memiliki teks sebagai tanggal pemesanan. Saya memperbarui pertanyaan saya.   -  person YdB    schedule 10.01.2017
comment
Itu disimpan sebagai teks karena ketika Anda menyimpan nilai dari bagian belakang Anda harus secara eksplisit memberi tahu item bahwa itu adalah Tanggal/Waktu. (Tidak, tidak masalah bagaimana hal itu didefinisikan pada formulir.) Tampaknya Anda melakukannya dengan menyetel properti DateTimeValue.   -  person Duston    schedule 10.01.2017


Jawaban (3)


Masalahnya adalah bidang tanggal pemesanan disetel oleh agen backend dan bidang ini disetel dengan string.

Saya tahu menyimpan waktu saat ini sebagai objek DateTime dan sekarang berfungsi:

 DateTime timenow = session.createDateTime("Today");
 timenow.setNow();

 docOrder.replaceItemValue("Orderdatum",  timenow);
person YdB    schedule 11.01.2017

Tidak jelas bagi saya mengapa ini tidak berhasil untuk Anda, tetapi Anda dapat memaksanya dengan sesuatu seperti ini di rumus kolom

dateForSure := @TextToTime(OrderDatum);
@Text(@Year(dateForSure)) + "-" + @Text(@Month(dateForSure)) + "-" + @Text(@Day(dateForSure)); 

Selain itu: kode Java Anda menyimpan nilai teks karena metode format() dari SimpleDateFormat mengembalikan StringBuffer. Metode GantiItemValue menghasilkan item teks ketika inputnya berupa String atau StringBuffer. Dengan asumsi formulir Anda mendefinisikan OrderDatum sebagai bidang Waktu/Tanggal, Anda dapat memanggil Document.ComputeWithForm dalam kode Anda untuk memaksanya mengonversi item teks menjadi Waktu/Tanggal. Metode lain - mungkin lebih baik mengingat potensi efek samping dari pemanggilan ComputeWithForm adalah dengan membuat objek DateTime dalam kode Java Anda dan meneruskannya ke metode GantiItemValue.

person Richard Schwartz    schedule 10.01.2017

Itu karena formatterDatumForField.format(currentDateForField) mengembalikan sebuah String, bukan nilai tanggal/waktu. Dengan asumsi bahwa currentDateForField adalah nilai tanggal/waktu, Anda harus mengubahnya

SimpleDateFormat formatterDatumForField=new SimpleDateFormat("dd-MM-yyyy");
docOrder.replaceItemValue("Orderdatum",formatterDatumForField.format(currentDateForField));

to

docOrder.replaceItemValue("Orderdatum",currentDateForField);
person JSmart523    schedule 10.01.2017