Casella di controllo in maschere continue

di il
23 risposte

23 Risposte - Pagina 2

  • Re: Casella di controllo in maschere continue

    D'accordo.
    Per me sia (quasi) chiaro che non puoi pretendere una gestione matematica degli ImportiFatture e DettagliAnticipi. Dovrai contabilizzarli sempre separatamente sfruttando le relazioni (che sono corrette) che hai impostato.
    Ora ho bisogno che ridescrivi il problema citando nome query, le tabelle coinvolte ecc...quello che vuoi fare (nel frattempo ho perso il filo).
  • Re: Casella di controllo in maschere continue

    Ho creato una maschera continua basata sul query FattureClienti dove elenco le fatture sia già anticipate che no e dove vorrei poter selezionare le fatture per cui voglio richiedere un nuovo anticipo.
    I controlli della maschera sono:
    Cliente,RagioneSociale,NumeroDocumento,DataDocumento,ImportoDocumento,DataScadenza,ImportoAnticipato,ContoBanca e la famigerata casella di controllo.
    I primi campi fino a DataScadenza sono della tabella FattureAnticipo. ImportoAnticipato contiene la somma delle scadenze degli anticipi di quella fattura (AnticipiDettaglio) e ContoBanca lo legge da AnticipiTotale.
    Nel piè di pagina ho messo un pulsante che se premuto deve richiamare un'altra maschera in cui verrà richiesto un nuovo anticipo in base alle fatture selezionate.
    Il query FattureClienti legge le 3 tabelle (in realtà 4 perchè la RagioneSociale la leggo da as400).
    In sql la query sarebbe:
    SELECT WTK60DAT_CGPCO00F.DSCOCP as RagioneSociale, [Fatture anticipo].Importo AS ImportoDoc, [Fatture anticipo].NumeroDocumento, [Fatture anticipo].TipoDocumento, [Fatture anticipo].DataDocumento, [Fatture anticipo].DataScadenza , [Fatture anticipo].Cliente, Sum([Anticipi dettaglio].ImportoAnticipo) AS ImportoAnticipato, [Anticipi totale].ContoBanca, [Fatture anticipo].Anticipata
    FROM ([Anticipi totale] RIGHT JOIN ([Fatture anticipo] LEFT JOIN WTK60DAT_CGPCO00F ON [Fatture anticipo].Cliente = WTK60DAT_CGPCO00F.CONTCP) ON [Anticipi totale].IDAnticipoTotale = [Fatture anticipo].IDAnticipoTotale) LEFT JOIN [Anticipi dettaglio] ON [Anticipi totale].IDAnticipoTotale = [Anticipi dettaglio].IDAnticipoTotale
    GROUP BY WTK60DAT_CGPCO00F.DSCOCP, [Fatture anticipo].Importo, [Fatture anticipo].NumeroDocumento, [Fatture anticipo].TipoDocumento, [Fatture anticipo].DataDocumento, [Fatture anticipo].DataScadenza, [Fatture anticipo].Conto, [Anticipi totale].ContoBanca, [Fatture anticipo].Anticipata
    HAVING ((([Fatture anticipo].TipoDocumento)="C"))
    ORDER BY WTK60DAT_CGPCO00F.DSCOCP, [Fatture anticipo].NumeroDocumento;
  • Re: Casella di controllo in maschere continue

    Io direi che la tabella FattureAnticipi deve contenere un campo IDCliente. Questo deve presupporre una tabella Clienti con i campi:
    IDCliente
    RagioneSociale
    Indirizzo
    ...altri campi
    relazione Clienti.IDCliente uno-a-molti con FattureAnticipi.IDCliente

    Per tutto il resto, non so leggere in SQL. Preferisco che elenchi tutte le tabelle coinvolte nella query e i campi che hai selezionato nella griglia della visualizzazione struttura.
    Penso che un campo Anticipato di tipo Sì/No potresti includerlo nella tabella FattureAnticipi...ma vorrei capirci meglio su tutto il discorso.
  • Re: Casella di controllo in maschere continue

    Ora devo uscire. Se riesco stasera ti posto il tutto.
  • Re: Casella di controllo in maschere continue

    Riassumendo:
    I controlli della maschera sono:
    Cliente,RagioneSociale,NumeroDocumento,DataDocumento,ImportoDocumento,DataScadenza,ImportoAnticipato,ContoBanca e la famigerata casella di controllo Seleziona.
    Nella query leggo le tabelle:
    FattureAnticpo (campi Cliente,NumeroDocumento,DataDocumento,ImportoDocumento,DataScadenza e Seleziona)
    CGPCO00F (campo RagioneSociale)
    AnticipiTotale (campo ContoBanca)
    AnticpiDettaglio (campo ImportoAnticipato)
    Ho messo come formula Somma sul campo ImportoAnticipato e Raggruppamento su tutti gli altri campi.
    Nella maschera però non mi permette di spuntare la casella di controllo.
  • Re: Casella di controllo in maschere continue

    Scusa, non trovo più corrispondenza fra quello che ho capito io finora e quest'ultima descrizione. Io sono fermo al seguente scenario tabelle che tenterò di schematizzare sfruttando terminologie più standard possibili:

    Clienti
    IDCliente (contatore, chiave primaria)
    RagioneSociale
    PIVA
    Indirizzo
    ...altri campi che descrivono il Cliente...

    Fatture
    IDFattura (contatore, chiave primaria)
    IDCliente (numerico)
    NumeroDocumento
    DataEmissioneFattura
    DataScadenzaFattura
    ImportoFattura
    IDAnticipo (numerico)

    Anticipi (ex AnticipiTotali)
    IDAnticipo (contatore, chiave primaria)
    DataAnticipo
    Descrizione
    ContoBanca

    DettagliAnticipi (ex AnticipiDettagli)
    IDDettaglioAnticipo (contatore, chiave primaria)
    ImportoDettaglioAnticipo
    ScadenzaDettaglioAnticipo
    IDAnticipo (numerico)

    Relazioni:
    Clienti.IDCliente uno-a-molti con Fatture.IDCliente
    Anticipi.IDAnticipo uno-a-molti con Fatture.IDAnticipo
    Anticipi.IDAnticipo uno-a-molti con DettagliAnticipi.IDAnticipo

    Per me le cose devono stare così. Poi non capisco perchè hai una maschera con tutti quei campi. La query ancora peggio.
    Cosa devi fare?
  • Re: Casella di controllo in maschere continue

    La mia idea era quella di elencare le fatture per le quali era possibile richiedere un anticipo con la possibilità di selezionarle e mediante un pulsante creare in automatico l'anticipo.
  • Re: Casella di controllo in maschere continue

    maskara ha scritto:


    La mia idea era quella di elencare le fatture per le quali era possibile richiedere un anticipo con la possibilità di selezionarle
    Bisognerebbe considerare almeno un campo di tipo Sì/No che significa RichiestoAnticipo. Però ci sarebbero pure le Fatture liquidate e mai anticipate...non so come vuoi regolarti, se aggiungere un altro campo di tipo Sì/No. In definitiva un filtro o una query che filtra le Fatture con il controllo sul campo Sì/No assolve a questa domanda.

    maskara ha scritto:


    mediante un pulsante creare in automatico l'anticipo.
    A priori questo mi sembra un po' pretenzioso. Mica puoi essere sempre sicura che per ogni Fattura non anticipata, la banca ti concede l'anticipo. Se invece ti riferisci al fatto che di alcune Fatture ciò è già avvenuto e accade nella maggior parte dei casi...comprendo l'automatismo. Ma, dopo il filtro che ti ho detto prima, come vorresti stabilire su 20 fatture anticipate, quali devono essere associate all'Anticipo1, Anticipo2, Anticipo3, Anticipo4?
  • Re: Casella di controllo in maschere continue

    OsvaldoLaviosa ha scritto:


    Bisognerebbe considerare almeno un campo di tipo Sì/No che significa RichiestoAnticipo. Però ci sarebbero pure le Fatture liquidate e mai anticipate...non so come vuoi regolarti, se aggiungere un altro campo di tipo Sì/No. In definitiva un filtro o una query che filtra le Fatture con il controllo sul campo Sì/No assolve a questa domanda.
    Le fatture che visualizzo non sono state pagate in quanto la tabella la genero leggendo le scadenze aperte su as400

    OsvaldoLaviosa ha scritto:


    A priori questo mi sembra un po' pretenzioso. Mica puoi essere sempre sicura che per ogni Fattura non anticipata, la banca ti concede l'anticipo. Se invece ti riferisci al fatto che di alcune Fatture ciò è già avvenuto e accade nella maggior parte dei casi...comprendo l'automatismo. Ma, dopo il filtro che ti ho detto prima, come vorresti stabilire su 20 fatture anticipate, quali devono essere associate all'Anticipo1, Anticipo2, Anticipo3, Anticipo4?
    La mia idea era di generare un anticipo alla volta selezionando quali fatture legare.
    Ora sto provando a fare un'altra cosa che sembra funzionare: una maschera per l'inserimento di un anticipo (tabella AnticipiTotali) con 2 sottomaschere, una per selezionare le fatture da anticipare (tabella FattureAnticipo) e una per inserire le scadenze che avrò verso la banca (tabella AnticipiDettaglio).
Devi accedere o registrarti per scrivere nel forum
23 risposte