Kanban dalam setengah jam

Pertama-tama, saya akan mulai dengan mendefinisikan target pembaca artikel. Artikel ini bukan tentang cara kerja Kanban. Artikel ini ditujukan bagi mereka yang tahu cara bekerja dengan teknologi ini dan ingin dengan cepat dan tanpa banyak biaya membuat alat yang memungkinkan Anda untuk memvisualisasikan papan Kanban dan bekerja dengannya. Karena anggaran kami minimal, jika tidak nol, kami akan mencoba menyelesaikan semuanya dengan cara minimal. Kami membutuhkan database untuk menyimpan informasi, alat visualisasi papan tulis, dan dua fungsi:

  • Buat kartu;
  • Ganti kartu dan pindahkan di sepanjang rel.

Untuk meminimalkan pengembangan, meluncurkan eksekusi fungsi akan dilakukan menggunakan permintaan http, sebentar lagi saya akan membuat antarmuka web yang dapat dilihat di artikel lain (selama tidak ada tautan).

Saya percaya bahwa saya akan memiliki papan dengan lagu-lagu berikut (Anda dapat menentukan konfigurasi Anda):


Sebagai basis data, Anda dapat mengambil semua yang Anda miliki, saya akan mengambil MS SQL dan hanya membuat satu tabel (dalam kasus saya, sekelompok database seperti itu berputar di perusahaan, sehingga memiliki satu tablet tidak membuat cuaca)

create table tasks( ID int IDENTITY(1,1) PRIMARY KEY, Project nvarchar(250) default 'Unknown', Track nvarchar(250) default 'To Do', Worker nvarchar(250) default 'Unknown', [Description] nvarchar(1000) DEFAULT '', UpdDate datetime default GETDATE(), CrtDate datetime default GETDATE() ) 

Seperti yang Anda lihat dari definisi, saya akan secara otomatis memberi nomor tugas dalam urutan angka 1, 2, 3 ... Pisahkan tugas menjadi trek - Lacak. Proyek - Proyek. Tunjukkan artis - Pekerja. Simpan deskripsi singkat di - Deskripsi, dan dua tanggal: CrtDate - tanggal pembuatan, UpdDate - Tanggal pembaruan tugas terakhir, misalnya, pindah ke trek ini.

Kami akan memvisualisasikan papan menggunakan generator laporan FastReport Desktop. Tautan ke kode dan file laporan diberikan di akhir artikel. Demo ini gratis, untuk meliput tugas-tugas seperti itu cukup fungsional. Jadi unduh laporannya dan buka di perancang



Semua yang tidak Anda sukai, ubah sesuai kebijakan Anda. Misalnya, tambahkan trek baru, dll. Ingatlah untuk menyesuaikan laporan dengan basis data Anda.



Papan sudah siap. Sekarang buat tugas pertama



Untuk melakukan ini, kami menerapkan fungsi di Azure yang akan menyisipkan catatan baru ke dalam tabel

 #r "Newtonsoft.Json" using System.Net; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; using System.Data.SqlClient; public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("Create task function processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"{requestBody}"); dynamic data = JsonConvert.DeserializeObject(requestBody); string project = data?.project; if (project==null) {return new BadRequestObjectResult($"Please pass a Project in the request body");} string worker = data?.worker; if (worker==null) {return new BadRequestObjectResult($"Please pass a Worker in the request body");} string description = data?.description??""; var your_username = "ufocombat"; var your_password = "***"; using (SqlConnection conn = new SqlConnection($"Server=tcp:fast,1433;Initial Catalog=FastReportSQL;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;")) { conn.Open(); SqlCommand cmd = new SqlCommand($"INSERT INTO tasks(Project,Worker,Description) VALUES (@p,@w,@d)", conn); cmd.Parameters.AddWithValue("p",project); cmd.Parameters.AddWithValue("w",worker); cmd.Parameters.AddWithValue("d",description); cmd.ExecuteNonQuery(); conn.Close(); } return new OkObjectResult($"Task created {DateTime.Now}"); } 

Jangan lupa untuk menentukan nama pengguna dan kata sandi Anda untuk terhubung ke database. Buka program apa pun yang dapat mengirim permintaan web. Saya mengambil tukang pos. Masukkan alamat tautan dan isi kartu tubuh dalam format json. Permintaan disimpan jika digunakan kembali. Kami mengirim permintaan. Jika semuanya berhasil, maka kami mendapatkan tanggal dan waktu kartu itu dibuat di server.



Jalankan laporan di FastReport:



Untuk mengganti kartu atau memindahkan, buat fungsi di Azure

 #r "Newtonsoft.Json" using System.Net; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; using Newtonsoft.Json; using System.Data.SqlClient; public static async Task<IActionResult> Run(HttpRequest req, ILogger log) { log.LogInformation("Update task function processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); log.LogInformation($"{requestBody}"); dynamic data = JsonConvert.DeserializeObject(requestBody); string ID = data?.id; if (ID == null) {return new BadRequestObjectResult($"Please pass an ID in the request body");} string paras = "UpdDate=@u"; string description = data?.description; if (description != null) { paras += ", Description=@d"; } string track = data?.track; if (track != null) { paras += ", Track=@t"; } string worker = data?.worker; if (worker != null) { paras += ", Worker=@w"; } var your_username = "ufocombat"; var your_password = "***; if (paras!="") { using (SqlConnection conn = new SqlConnection($"Server=tcp:fast,1433;Initial Catalog=FastReportSQL;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;")) { conn.Open(); SqlCommand cmd = new SqlCommand($"UPDATE tasks SET {paras} WHERE ID=@id", conn); cmd.Parameters.AddWithValue("id",ID); cmd.Parameters.AddWithValue("u",DateTime.Now.AddHours(3)); if (description != null) { cmd.Parameters.AddWithValue("d",description); } if (worker != null ) { cmd.Parameters.AddWithValue("w",worker); } if (track != null) { cmd.Parameters.AddWithValue("t",track); } cmd.ExecuteNonQuery(); conn.Close(); } } return new OkObjectResult($"Task created {DateTime.Now}"); } 

Dengan bantuannya, kami akan mengubah bidang kartu apa pun kecuali ID, termasuk Lacak.

Untuk memindahkan kartu ke trek lain, hubungi permintaan http:



FastReport memahami di kolom mana untuk menempatkan kartu ini menggunakan skrip yang dibangun ke dalam laporan:

  if (string.Compare(track,"Doing",false)==0) { Shape1.Left = Units.Centimeters * 6.75F; } else if (string.Compare(track,"Done",false)==0) { Shape1.Left = Units.Centimeters * 13.25F; } else { Shape1.Left = 0; } 

Jika Anda memutuskan untuk menambahkan kolom, maka ubah skrip sehingga indentasi kartu sesuai dengan nama trek baru. Sebagai hasilnya, kita mendapatkan:



Jadi untuk meringkas apa yang perlu dilakukan

  1. Unduh FastReport Demo
  2. Unduh laporan Kanban yang sudah jadi
  3. Kami membuat satu piring di server
  4. Kami membuat dua fungsi untuk mengelola kartu

hal yang berguna pada proyek, jika Anda menggunakan kode Anda dapat dengan cepat beradaptasi dengan tugas Anda. Dalam artikel berikut, saya akan menunjukkan cara menempatkan laporan di situs sehingga saya sama sekali tidak repot dengan versi Desktop. Laporan ini akan tersedia di tablet dan ponsel manajer proyek keren :), tetap disini ...

Unduh Kanban Report

Source: https://habr.com/ru/post/id472012/


All Articles