Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584

    [C#] Eseguire query con campi e parametri diversi per paese

    ho un programma che gira su diversi paesi
    ogni paese ha uno standard medico diverso quindi vogliono colonne con risultati diversi,
    gli è stato richiesto ad ognuno di fornirci un file excel con le colonne richieste ed il calcolo da fare.

    fatto questo primo passaggio ora rimane da parametrizzare per ognuno ogni volta senza impazzirsi, tecnicamente prevedo anni di modifiche varie.
    ora la domanda:
    esiste un modo, usando ovviamente LINQ che leggo le colonne di un file excel o un file xml già predefinito, e cosi mi eseguo una query diversa per ogni paese ?
    (da notare che ognuno avrà anche join diversi e parametri diversi)
    quindi non voglio ricompilare ogni volta per modificare la query LINQ, ma deve essere dinamica


    quello che voglio fare è dargli uno strumento e dirgli: ecco ora impazzitevi VOI!!!
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    esiste un modo, usando ovviamente LINQ che leggo le colonne di un file excel o un file xml già predefinito, e cosi mi eseguo una query diversa per ogni paese ?
    Se sono i valori a essere dinamici, ovvero se la query va bene per tutti i paesi ma devi usare valori diversi in base al paese, non vedo problemi di sorta: LINQ costruisce espressioni statiche su valori che puoi ottenere da dove vuoi, quindi basta codificare la logica che vada a recuperare il valore corretto da usare in base al paese, mantenendo inalterato il resto.

    Se invece cambia anche l'espressione, ad esempio devi filtrare per un parametro in più e per il relativo valore per un paese, o avere meno parametri in un altro, ecco che le cose cambiano e diventano più complesse: qui potrebbe essere necessario ricorrere alla costruzione dinamica dell'espressione (es. tramite PredicateBuilder) oppure a qualcosa di esterno, ad esempio uno script, che sfrutti il DLR del .NET Framework per passare l'espressione dinamica modificabile "al volo" (es. in un file separato) costruita con un linguaggio di scripting (tipo IronPython), oppure eseguendo codice C# tramite il compilatore.

    Qual è la tua necessità?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ma cambieranno anche le form per l'inserimento dei parametri di ricerca? oppure sono report che una volta definiti girano senza intervento utente?

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584
    Quote Originariamente inviata da alka Visualizza il messaggio
    Se invece cambia anche l'espressione, ad esempio devi filtrare per un parametro in più e per il relativo valore per un paese, o avere meno parametri in un altro, ecco che le cose cambiano e diventano più complesse: qui potrebbe essere necessario ricorrere alla costruzione dinamica dell'espressione (es. tramite PredicateBuilder) oppure a qualcosa di esterno, ad esempio uno script, che sfrutti il DLR del .NET Framework per passare l'espressione dinamica modificabile "al volo" (es. in un file separato) costruita con un linguaggio di scripting (tipo IronPython), oppure eseguendo codice C# tramite il compilatore.
    Qual è la tua necessità?
    si, ogni paese ha filtri diversi ,ma query secche
    ora mi vedo un po il predicateBuilder,sembra buono per i filtri dinamici ma non per aggiungere campi.
    tutto il programma funziona con c# + sql server, ma non abbiamo possibilità di fare stored procedure

    Quote Originariamente inviata da optime Visualizza il messaggio
    ma cambieranno anche le form per l'inserimento dei parametri di ricerca? oppure sono report che una volta definiti girano senza intervento utente?
    ciao, grazie, no, non serve una form per inserire i parametri essi sono già fissi
    il programma in automatico all'avvia a seconda dell'utente sa già chi si è connesso, e da qui deve avviare la query stabilita

    faccio un esempio:
    il sud Africa vuole solo pazienti appartenenti ad un centro che abbiamo sottoscritto etc...
    nei report il Malawi vuole tutte le donne incinta che sono sotto TARV ed hanno fatto 2 esami
    il Nigeria per lo stesso report vuole 2 colonne in piu con "eta, stato avanzamento etc..." ma con il filtro di 6 mesi alla volta
    come vedete i filtri sono diversi
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Dallo scenario che descrivi, a me sembra che tu abbia necessità di gestire nel database delle tabelle di configurazione.
    Ad es. io nostri programmi girano in varie nazioni e nelle tabelle le 'diversità' tra queste vengono gestite con un campo ID che identifica appunto la nazione, quindi uso tabelle con vai parametri come query, filtri e campi che possono variare anche in funzione dei permessi dell'utente. Se è un 'supervisore mondiale' può consultare diverse nazioni insieme, se è un 'responsabile nazionale' ha una grande libertà di movimento (all'interno della nazione), se è un 'sottoposto' può consultare solo le aree a lui permesse, e così via.
    Quelli della sede centrale (italiana), hanno accesso a determinate funzionalità che un'altra nazione può non avere, o averlo con certi limiti operativi.
    In sostanza, tutto il codice è 'guidato' dall'identificato della nazione, per cui una volta impostato tale identificativo all'avvio tutto è automatico.
    A questo aggiungi tutti i mpermessi-utente, anche questi cambiano in base all'ID della nazione, oltre che hai permessi di operatività veri e propri in base al 'grado' dell'utente.

    Onestamente, gestire tutto ciò SOLO a livello di software mi pare molto limitante.

    Tieni presente che i nostri database aziendali sono solamente in Italia (le altre nazioni vi accedono da remoto), quindi la cosa è ancora più articolata e complicata.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.