Я работал над программным обеспечением для аптек. Я создал индексированную базу данных, используя Dex ie
const productdb = (dbname, table) => {
const db = new Dexie(dbname)
db.version(1).stores(table);
db.open();
return db;
}
let db = productdb("Drugs",{
drugs: `++id, name, MRP, tradeprice, quantity, expiry, seller`
});
Позже я сделал операции CRUD для добавления данных в базу данных.
const getData = (dbtable, fn) =>{
let index = 0;
let obj = {};
dbtable.count((count) =>{
if(count){
dbtable.each(table =>{
obj = Sortobj(table);
fn(obj, index++);
})
}
else{
fn(0);
}
})
const Sortobj = sortobj =>{
let obj = {};
obj = {
id: sortobj.id,
name: sortobj.name,
MRP: sortobj.MRP,
tradeprice: sortobj.tradeprice,
quantity: sortobj.quantity,
seller: sortobj.seller,
expiry: sortobj.expiry,
}
return obj;
}
}
const createEle = (tagname, appendTo, fn) =>{
const element = document.createElement(tagname);
if(appendTo)appendTo.appendChild(element);
if(fn)fn(element);
}
const bulkcreate = (dbtable, data) =>{
let flag = empty(data);
if(flag){
dbtable.bulkAdd([data]);
console.log("Data Inserted");
}
else{
console.log("Please Provide Data");
}
return flag;
}
const empty = object =>{
let flag = false;
for(const value in object){
if(object[value]!="" && object.hasOwnProperty(value)){
flag = true;
}
else{
flag = false;
}
}
return flag;
}
const userid = document.getElementById("userid");
const name = document.getElementById("name");
const MRP = document.getElementById("MRP");
const tradeprice = document.getElementById("tradeprice");
const quantity = document.getElementById("quantity");
const expiry = document.getElementById("expiry");
const seller = document.getElementById("seller");
const btncreate = document.getElementById("btn-create");
const btnread = document.getElementById("btn-read");
const btnupdate = document.getElementById("btn-update");
const notfound = document.getElementById("notfound");
btncreate.onclick = (event) =>{
let flag = bulkcreate(db.drugs, {
name: name.value,
MRP: MRP.value,
tradeprice: tradeprice.value,
quantity: quantity.value,
expiry: expiry.value,
seller: seller.value,
});
name.value = MRP.value = tradeprice.value = quantity.value = expiry.value = seller.value ="";
getData(db.drugs, (data)=>{
userid.value = data.id + 1 || 1;
});
}
btnread.onclick = table;
btnupdate.onclick = () =>{
const id = parseInt(userid.value || 0);
if(id){
db.drugs.update(id,{
name: name.value,
MRP: MRP.value,
tradeprice: tradeprice.value,
quantity: quantity.value,
expiry: expiry.value,
seller: seller.value,
}).then((updated)=>{
let get = updated?'data updated': "could'nt update data.";
console.log(get);
})
}
}
window.onload = ()=>{
textID(userid);
}
function textID(textboxid){
getData(db.drugs, data =>{
textboxid.value = data.id + 1 || 1;
})
}
function table(){
const tbody = document.getElementById("tbody");
while(tbody.hasChildNodes()){
tbody.removeChild(tbody.firstChild);
}
getData(db.drugs, (data)=>{
if(data){
createEle("tr", tbody, tr =>{
for(const value in data){
createEle("td", tr, td =>{
td.textContent = data.price === data[value]?`$ ${data[value]}`: data[value];
})
}
createEle("td", tr, td =>{
createEle("i", td, i =>{
i.className += "fas fa-edit btnedit";
i.setAttribute('data-id', data.id);
i.onclick = editbtn;
})
})
})
}
else{
notfound.textContent = "No Record found in the database."
}
})
}
function editbtn(event){
let id = event.target.dataset.id;
id = Number(id);
db.drugs.get(id, data =>{
userid.value = data.id || 0;
name.value = data.name || "";
MRP.value = data.MRP || "";
tradeprice.value = data.tradeprice || "";
quantity.value = data.quantity || "";
expiry.value = data.expiry || "";
seller.value = data.seller || "";
});
}
Теперь я хочу создать 2 входных текста в ячейках один должен иметь «ID» или «имя», а другой - «необходимое количество». Эти входные данные должны быть показаны в виде таблицы из базы данных. Позже они должны быть проданы по нажатию кнопки «Продать» вместе с внесением изменений в индексированную базу данных, т. Е. Путем изменения количества в базе данных.
ПОЖАЛУЙСТА, ЛЮБОЙ ПОСТАВЬТЕ ОТВЕТ НА ЭТО?