Pertanyaan Cara membuat kolom terhitung dengan data dari daftar lain


Saya memiliki situasi berikut: Daftar A memiliki dua kolom (Nama, Jumlah) dan di Daftar B (Nama) Saya ingin menambahkan kolom terhitung yang seharusnya merupakan jumlah semua entri dalam Daftar A yang memiliki nama yang sama seperti di Daftar B Contoh:

Daftar A:

NAME      Amount
L0011     100
L0011     50
L0020     234

Jadi dalam Daftar B saya ingin kolom terhitung untuk menunjukkan:

NAME      Amount
L0011     150
L0020     234

Bagaimana ini bisa dilakukan? Alur kerja (segera setelah saya menambahkan / mod entri di Daftar A, memperbarui Daftar B) atau sesuatu yang lain? Terima kasih


4
2018-04-30 08:39


asal


Jawaban:


Ini tidak dapat dilakukan menggunakan kolom terhitung karena kolom terhitung hanya dapat digunakan untuk kolom pada daftar yang sama.

Menggunakan SharePoint Designer Workflow yang bisa Anda gunakan Create List Item dan Update List Item tindakan sehingga setiap kali pengguna menambahkan nilai untuk L0011, jumlahnya akan ditambahkan di kolom daftar lain yang berisi jumlah sebelumnya.

Beri tahu saya jika Anda memerlukan jawaban yang lebih detail untuk pendekatan SharePoint dan saya akan memberi Anda petunjuk langkah demi langkah tentang apa yang harus dilakukan.


5
2018-04-30 20:31



Jawaban lem.mallari adalah rasa sakit yang luar biasa kecuali Anda dapat mengasumsikan bahwa Jumlah dalam Daftar A tidak pernah berubah, karena itu tidak melacak apakah suatu item telah ditambahkan ke penjumlahan. Tidak ada cara bagi Alur kerja untuk mengulang melalui daftar SharePoint, yang berarti tidak ada cara mudah untuk menghitung jumlah atau rata-rata beberapa daftar item.

Cara yang benar untuk menerapkan ini akan memerlukan beberapa pengembangan. Pelatihan Pengembang SharePoint (2010, 2013) akan benar-benar membawa Anda ke sana: penerima acara harus dipicu saat item ditambahkan atau diubah di Daftar A dan B yang menggunakan API SharePoint untuk melalui Daftar A dan nilai rata-rata menurut Nama, kemudian perbarui semua (atau hanya terpengaruh) item dalam Daftar B. Alternatifnya, Anda dapat menggunakan JavaScript untuk menampilkan jumlah semua entri dalam Daftar A yang memiliki nama yang sama dengan item dalam Daftar B selama semua data ditampilkan di halaman Anda. Jika Anda berguna dengan XPath dan InfoPath, Anda bisa menambahkan Daftar A sebagai sumber data sekunder ke formulir Daftar B dan pilih hanya item yang berlaku di Daftar A untuk menjumlahkan.

Tetapi jika kita berbicara Workflows, inilah metode "workflow only". Ini telah diuji dan berhasil pada tahun 2010. Buat Custom List C dengan kolom-kolom berikut:

  • Judul (string, wajib, menegakkan nilai unik)
  • TotalItems (integer, wajib, standar 0)
  • Jumlah (angka, tempat desimal sesuai keinginan Anda, wajib, standar 0)
  • Rata-rata (dihitung, = IF (TotalItems = 0,0, Jumlah / TotalItems)) (opsional)

Ganti kolom Nama dalam Daftar A dan B dengan kolom pencarian yang menunjuk pada Daftar C. Hapus kolom Jumlah di Daftar B, sebagai gantinya termasuk kolom Sum sebagai kolom tambahan. Tambahkan kolom berikut ke Daftar A, dan pastikan bahwa pengguna tidak dapat mengubahnya secara langsung. Ini dapat dibatasi dengan membuat formulir InfoPath atau dengan membuat tampilan alternatif dan mengedit formulir.

  • JumlahArsip (nomor, identik dengan Jumlah, standar 0)
  • JumlahHasBeen Dikirimkan (yes / no, default no)

Buat Alur Kerja untuk dijalankan setiap kali item dibuat atau diubah di Daftar A. Gunakan perintah ini (Saya menggunakan daftar untuk keterbacaan; itu semakin jelek ketika diformat sebagai kode):

  • Jika Item Saat Ini: Jumlah tidak sama dengan Item Saat Ini: JumlahArsip
    • Set Variabel: Item Hitung ke (Sumber data: Daftar C; Bidang dari sumber: TotalItem; Temukan Item Daftar: Judul Bidang; Nilai: Item Saat Ini: Nama (bidang Kembali sebagai: Nilai Pencarian (sebagai Teks)))
    • Hitung Variabel: ItemCount plus 1 (Output ke Variabel: ItemCount)
    • Hitung Daftar C: Jumlah (pengaturan serupa seperti di atas; pastikan untuk menggunakan Nilai Pencarian (sebagai Teks) dan bukan String!) Dikurangi Item Saat Ini: JumlahArsip (Keluaran ke Variabel: JumlahTengahTotal)
    • Hitung Variabel: SumWithoutValue plus Current Item: Jumlah (Output ke Variabel: NewSum)
    • Jika Item Saat Ini: JumlahHasBeen Dikirim sama dengan No
      • Setel JumlahHasBeen Dikirim ke Ya
      • Perbarui item dalam Daftar C (Set TotalItems menjadi Variabel: ItemCount; Set Sum ke Variable: NewSum; Temukan Item Daftar dengan cara yang sama dari Field: Judul; Nilai: Item Saat Ini: Nama (bidang Kembali sebagai: Nilai Pencarian (sebagai Teks) )
    • Lain
      • Perbarui item dalam Daftar C (jangan lakukan apa pun untuk TotalItems; gunakan logika yang sama untuk mengatur Jumlah ke Variabel: NewSum)
    • Set Jumlah ke Item Saat Ini: JumlahArsip

7
2017-10-11 21:03



Bagaimana dengan menggunakan fungsi DSum? https://support.office.com/en-us/article/DSum-Function-08F8450E-3BF6-45E2-936F-386056E61A32

Daftar B

NAME      Amount
L0011     =DSum("[Amount]","List A","[NAME]=''" & [NAME] & "'")
L0020     =DSum("[Amount]","List A","[NAME]=''" & [NAME] & "'")

0
2017-12-28 21:04